ERP
cjs
2025-06-03 c8ff461116306749ed4135fbb1e32a7d6777d5f0
ERP
3个文件已添加
5个文件已修改
241 ■■■■ 已修改文件
.vs/VSWorkspaceState.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/荆门格林美南区/v17/.wsuo 补丁 | 查看 | 原始文档 | blame | 历史
.vs/荆门格林美南区/v17/DocumentLayout.backup.json 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/FileContentIndex/bf82eed7-d03a-4773-8615-e25b89253835.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VSWorkspaceState.json
@@ -2,6 +2,6 @@
  "ExpandedNodes": [
    ""
  ],
  "SelectedNode": "\\C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A",
  "SelectedNode": "\\Hanhe.iWCS.JingmenGEMTwoProtocol.sln",
  "PreviewInSolutionExplorer": false
}
.vs/¾£ÃŸñÁÖÃÀÄÏÇø/v17/.wsuo
Binary files differ
.vs/¾£ÃŸñÁÖÃÀÄÏÇø/v17/DocumentLayout.backup.json
New file
@@ -0,0 +1,65 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\",
  "Documents": [],
  "DocumentGroupContainers": [
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 16,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            }
          ]
        },
        {
          "DockedWidth": 18,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
            }
          ]
        }
      ]
    }
  ]
}
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/FileContentIndex/bf82eed7-d03a-4773-8615-e25b89253835.vsidx
Binary files differ
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json
New file
@@ -0,0 +1,65 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoProtocol\\",
  "Documents": [],
  "DocumentGroupContainers": [
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 16,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            }
          ]
        },
        {
          "DockedWidth": 18,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}"
            }
          ]
        }
      ]
    }
  ]
}
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json
@@ -8,7 +8,7 @@
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "DockedWidth": 16,
          "SelectedChildIndex": -1,
          "Children": [
            {
@@ -42,7 +42,7 @@
          ]
        },
        {
          "DockedWidth": 22,
          "DockedWidth": 18,
          "SelectedChildIndex": -1,
          "Children": [
            {
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);
                            }
                        });
                    }
                }
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -128,7 +128,8 @@
                                                    if (trayCode.errCode == 0 && trayCode.result.Length == 80)
                                                    {
                                                        //获取托盘码等信息  è¯»å–通道 10、11、12的数据作为托盘码   è¯»å–其它通道 é‡é‡ å åŒ…等信息 æ‰€æœ‰æ•°æ®å­˜å…¥MachineInfo表
                                                        GetMachineData(pmInfo, trayCode.result);
                                                        string location = "";
                                                        GetMachineData(pmInfo,ref location, trayCode.result);
                                                        var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo");
                                                        if (tray != null && tray.addState == 0)
                                                        {
@@ -182,7 +183,16 @@
                                                if (trayCode.errCode == 0 && trayCode.result.Length == 95)
                                                {
                                                    //获取托盘码等信息  è¯»å–通道 11、12、13的数据作为托盘码   è¯»å–其它通道 é‡é‡ å åŒ…等信息 æ‰€æœ‰æ•°æ®å­˜å…¥MachineInfo表
                                                    GetMachineData(pmInfo, trayCode.result, false, "1");
                                                    string flLoc = "";
                                                    string location = "";
                                                    GetMachineData(pmInfo,ref location, trayCode.result, false, "1");
                                                    if (pmInfo.location.Contains("FLZT"))
                                                    {
                                                        flLoc = pmInfo.location;
                                                        pmInfo.location = location;
                                                    }
                                                    var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo");
                                                    if (tray != null)
                                                    {
@@ -219,6 +229,7 @@
                                                            {
                                                                CMMLog.Info($"物料编码:{tray.materialCode},批次号:{tray.lotNo}");
                                                                string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
                                                                pmInfo.location = !string.IsNullOrEmpty(flLoc) ? flLoc : pmInfo.location;
                                                                HHAmsExecuteResult req = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), pmInfo.location, PlcBit02, "3楼包装取料", 0, tray.trayCode, timeStamp);
                                                                ProcessHelper.deleteInfo(pmInfo.location + "-包装下线");
                                                                //包装取料卸货完成,设备生产数量加一
@@ -378,7 +389,8 @@
                                                    if (trayCode.errCode == 0 && trayCode.result.Length == 80)
                                                    {
                                                        //获取托盘码等信息  è¯»å–通道 10、11、12的数据作为托盘码   è¯»å–其它通道 é‡é‡ å åŒ…等信息 æ‰€æœ‰æ•°æ®å­˜å…¥MachineInfo表
                                                        GetMachineData(pmInfo, trayCode.result);
                                                        string location = "";
                                                        GetMachineData(pmInfo,ref location, trayCode.result);
                                                        var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo");
                                                        if (tray != null && tray.addState == 0)
                                                        {
@@ -432,7 +444,14 @@
                                                if (trayCode.errCode == 0 && trayCode.result.Length == 95)
                                                {
                                                    //获取托盘码等信息  è¯»å–通道 11、12、13的数据作为托盘码   è¯»å–其它通道 é‡é‡ å åŒ…等信息 æ‰€æœ‰æ•°æ®å­˜å…¥MachineInfo表
                                                    GetMachineData(pmInfo, trayCode.result, false, "2");
                                                    string flLoc = "";
                                                    string location = "";
                                                    GetMachineData(pmInfo,ref location, trayCode.result, false, "2");
                                                    if (pmInfo.location.Contains("FLZT"))
                                                    {
                                                        flLoc = pmInfo.location;
                                                        pmInfo.location = location;
                                                    }
                                                    var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo");
                                                    if (tray != null)
                                                    {
@@ -468,6 +487,7 @@
                                                            {
                                                                CMMLog.Info($"物料编码:{tray.materialCode},批次号:{tray.lotNo}");
                                                                string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1);
                                                                pmInfo.location = !string.IsNullOrEmpty(flLoc) ? flLoc : pmInfo.location;
                                                                HHAmsExecuteResult req;
                                                                if (pmInfo.deviceType == "22")
                                                                {
@@ -2747,7 +2767,7 @@
        /// <param name="info"></param>
        /// <param name="result"></param>
        /// <param name="noPack">true : MES交互方式  false : æ— MES交互方式</param>
        private static void GetMachineData(Settings.PlcInfo pmInfo,int[] result ,bool noPack = true,string isOne = "")
        private static void GetMachineData(Settings.PlcInfo pmInfo, ref string loc, int[] result ,bool noPack = true,string isOne = "")
        {
            //Console.WriteLine($"进入数据处理流程!");
            CMMLog.Info($"进入数据处理流程!");
@@ -2755,6 +2775,7 @@
            string empCode = RemoveNull(GetTrayCode(result.Take(5).ToArray()));//员工编码
            string trayCode = RemoveNull(GetTrayCode(result.Skip(5).Take(3).ToArray()));//托盘码
            string location = RemoveNull(GetTrayCode(result.Skip(8).Take(1).ToArray()));//设备货位编码
            loc = location;
            #region 2024-12-30 å˜æ›´ åŠ å…¥mes生产订单编号 åˆ†å½•ID   å˜æ›´æ³¨é‡Š
            string orderCode = ""; //生产订单编号
            int fEntryID = 0; //分录ID