111
cjs
2025-06-18 d1d953d574cdeaf1c582c99e85a16c9b903392c1
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs
@@ -500,10 +500,10 @@
                    {
                        // 先根据任务批次号字段获取时间戳中间表-TimeCuoInfoCom 数据,并进行后续调用,处理成功删除时间戳中间表-TimeCuoInfoCom 数据
                        //int n = 0; //行号
                        int n = 0; //行号
                        sendERPTaskInfoList.ForEach(a =>
                        {
                            //n = n + 1;
                            n = n + 1;
                            #region 计算单据编号
                            string FBillNO = "";
                            int num = 0;
@@ -538,43 +538,57 @@
                            CMMLog.Info($"SendERPTaskCompleteFunc: {FBillNO}");
                            #endregion
                            CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','1','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','1','0')");
                            string sql = $"INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','1','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','1','0')";
                            if(new SqlHelper<object>().ExecuteSql(sql, false))
                            if(!string.IsNullOrEmpty(a.orderCode) && a.orderCode.Length >= 2 && a.orderCode.Substring(0,2) == "MO")
                            {
                                #region 反馈信息给mes 对接文档 https://365.kdocs.cn/l/cltzoEaznLco
                                bool result = sendMes(a, true);
                                if (!result)
                                CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','1','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','1','0')");
                                string sql = $"INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','1','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','1','0')";
                                if (new SqlHelper<object>().ExecuteSql(sql, false))
                                {
                                    //将数据存入中间表,重新发送
                                    MongoDBSingleton.Instance.Insert<SendMESTaskInfoTable>(new SendMESTaskInfoTable
                                    #region 反馈信息给mes 对接文档 https://365.kdocs.cn/l/cltzoEaznLco
                                    bool result = sendMes(a, true);
                                    if (!result)
                                    {
                                        taskNo = a.taskNo,
                                        Bit = a.Bit,
                                        packingMachineNumber = a.packingMachineNumber,
                                        materiCode = a.materiCode,
                                        materiName = a.materiName,
                                        materialSpec = a.materialSpec,
                                        totalWeight = a.totalWeight,
                                        lotCode = a.lotCode,
                                        timeStamp = a.timeStamp,
                                        productTime = a.productTime,
                                        invalidationTime = a.invalidationTime,
                                        isFinish = a.isFinish,
                                        dateTime = a.dateTime,
                                        orderCode = a.orderCode,
                                        totalNeedWeight = a.totalNeedWeight,
                                        netWeight = a.netWeight,
                                        FEntryID = a.FEntryID
                                    });
                                        //将数据存入中间表,重新发送
                                        MongoDBSingleton.Instance.Insert<SendMESTaskInfoTable>(new SendMESTaskInfoTable
                                        {
                                            taskNo = a.taskNo,
                                            Bit = a.Bit,
                                            packingMachineNumber = a.packingMachineNumber,
                                            materiCode = a.materiCode,
                                            materiName = a.materiName,
                                            materialSpec = a.materialSpec,
                                            totalWeight = a.totalWeight,
                                            lotCode = a.lotCode,
                                            timeStamp = a.timeStamp,
                                            productTime = a.productTime,
                                            invalidationTime = a.invalidationTime,
                                            isFinish = a.isFinish,
                                            dateTime = a.dateTime,
                                            orderCode = a.orderCode,
                                            totalNeedWeight = a.totalNeedWeight,
                                            netWeight = a.netWeight,
                                            FEntryID = a.FEntryID
                                        });
                                    }
                                    #endregion
                                    //插入成功 清除中间表
                                    MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None);
                                    MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None);
                                }
                                #endregion
                            }
                            else
                            {
                                CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_SPInStockADD (FBillNO,FStockOrgNumber,FPrdOrgNumber,FSeq,FMaterialNumber,Flot,FInStockType,FMustQty,FStockNumber,FWorkShopNumber,FStockStatus,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','02','02','{n}','{a.materiCode}','{a.lotCode}','1','{a.totalWeight}','CK020','BM000161','1','{a.productTime}','{a.invalidationTime}','{a.taskNo}',{sendERPTaskInfoList.Count},'0')");
                                string sql = $"INSERT INTO T_JY_SPInStockADD (FBillNO,FStockOrgNumber,FPrdOrgNumber,FSeq,FMaterialNumber,Flot,FInStockType,FMustQty,FStockNumber,FWorkShopNumber,FStockStatus,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','02','02','{n}','{a.materiCode}','{a.lotCode}','1','{a.totalWeight}','CK020','BM000161','1','{a.productTime}','{a.invalidationTime}','{a.taskNo}',{sendERPTaskInfoList.Count},'0')";
                                new SqlHelper<object>().ExecuteSql(sql, false);
                                //插入成功 清除中间表
                                MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None);
                                MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None);
                            }
                        });
                    }
                }