From 617634e5e18c7c02f689de40353da113907da9a8 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 05 十月 2024 14:25:18 +0800
Subject: [PATCH] 工单同步接口更新,箱盒二维码更新

---
 Tiger.Business.MES/iERP/U9C_MES.cs         |   67 +++++++++++++++++++++++++++++++++
 Tiger.Business.MES/Transaction/Position.cs |    2 
 2 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index 30ef901..8c96810 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -659,7 +659,7 @@
             var Display = WorkBatch.Product.ExtInfo.Display;
             var Remark = WorkBatch.Product.ExtInfo.Remark;
 
-            return $"{code}|{itemCode}|{wo}|\r\n{snList}|{weight}|鍨嬪彿:{model},杈撳叆:{Input},鏄剧ず:{Display},杈撳嚭:{OutPut},鐢垫簮:{Power},绮惧害:{Accuracy},澶囨敞:{Remark}";
+            return $"{code}|{itemCode}|{wo}|\r\n{snList}|{weight}{unit}|鍨嬪彿:{model},杈撳叆:{Input},鏄剧ず:{Display},杈撳嚭:{OutPut},鐢垫簮:{Power},绮惧害:{Accuracy},澶囨敞:{Remark}";
         }
 
         /// <summary>
diff --git a/Tiger.Business.MES/iERP/U9C_MES.cs b/Tiger.Business.MES/iERP/U9C_MES.cs
index d2fed86..c1e912d 100644
--- a/Tiger.Business.MES/iERP/U9C_MES.cs
+++ b/Tiger.Business.MES/iERP/U9C_MES.cs
@@ -14,6 +14,8 @@
 using Tiger.Model.Minsun;
 using Org.BouncyCastle.Asn1.Tsp;
 using Tiger.Model.Entitys.MES.Position;
+using Apache.NMS.ActiveMQ.Commands;
+using System.Security.Cryptography;
 
 namespace Tiger.Business.MES
 {
@@ -186,7 +188,7 @@
                             CUST_PREFIX = di["OutBarHead"] == null ? "" : di["OutBarHead"].ToString(),
                             SALES_CONTRACT = di["Contracts"] == null ? "" : di["Contracts"].ToString(),
                         };
-                        if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > 0 || x.ROUTE_STATUS > 0)))
+                        if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > BIZ_MES_WO.STATUSs.Init.GetValue() || x.ROUTE_STATUS > BIZ_MES_WO.ROUTE_STATUSs.WaitSet.GetValue())))
                         {
                             items.Add(woItem);
                         }
@@ -235,6 +237,69 @@
                 Logger.Scheduler.Error(action.Message);
             }
             Logger.Scheduler.Info($"宸ュ崟淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]");
+
+            if (action.IsSuccessed && items.Count > 0)
+            {
+                //寮傛璺戠粦瀹氬伐鑹鸿矾绾�
+                Work.DoAsync(() =>
+                {
+                    List<BIZ_MES_WO> woList = new();
+                    foreach (var wo in items) {
+                        //鍙湁宸ュ崟鐘舵�佷负鍒濆鍖栧拰宸ヨ壓鐘舵�佷负寰呴厤缃墠鑷姩缁戝畾宸ヨ壓璺嚎
+                        if (wo.STATUS == BIZ_MES_WO.STATUSs.Init.GetValue() && wo.ROUTE_STATUS == BIZ_MES_WO.ROUTE_STATUSs.WaitSet.GetValue()) {
+                            try
+                            {
+                                var rot = Biz.Db.Queryable<MES_PROD_OPER>()
+                                .GroupBy(x => new { x.PROD_CODE, x.ROT_ID})
+                                .Where(q => q.PROD_CODE == wo.ITEM_CODE)
+                                .Select(it => new {
+                                    PROD_CODE = it.PROD_CODE,
+                                    ROT_ID = it.ROT_ID
+                                })
+                                .First();
+                                if (rot != null)
+                                {
+                                    SugarParameter[] pars = Biz.Db.Ado.GetParameters(new { ROT_ID = rot.ROT_ID, WO = wo.ORDER_NO, ERR_CODE = 0, ERR_MSG = "" });
+                                    pars[2].Direction = System.Data.ParameterDirection.Output;
+                                    pars[3].Direction = System.Data.ParameterDirection.Output;
+                                    Biz.Db.Ado.UseStoredProcedure().ExecuteCommand("SP_MES_PROD2WO", pars);
+                                    if (pars[2].Value.ToInt32() == 0)
+                                    {
+                                        Logger.Scheduler.Info($"宸ュ崟[{wo.ORDER_NO}]缁戝畾宸ヨ壓璺嚎[{rot.ROT_ID}]鎴愬姛,{pars[3].Value.ToString()}");
+                                        wo.ROUTE_STATUS = BIZ_MES_WO.ROUTE_STATUSs.Finish.GetValue();
+                                        woList.Add(wo);
+                                    }
+                                    else
+                                    {
+                                        Logger.Scheduler.Error(pars[3].Value.ToString());
+                                    }
+                                }
+                            }
+                            catch (System.Exception ex)
+                            {
+                                Logger.Scheduler.Error(ex.Message);
+                            }
+                        }
+                    }
+                    var _db = Biz.Db;
+                    var dbTran = _db.UseTran(() =>
+                    {
+                        if (woList.Any())
+                        {
+                            var s = _db.Storageable(woList, "U9C")
+                                   .WhereColumns(t => new { t.ORDER_NO, t.GHOST_ROW })
+                                   .ToStorage();
+                            s.AsInsertable.ExecuteCommand();
+                            s.AsUpdateable.IgnoreColumns(x => x.ID).UpdateColumns(x => new { x.ROUTE_STATUS}).ExecuteCommand();
+                        }
+
+                    });
+                    if (!dbTran.IsSuccess)
+                    {
+                        Logger.Scheduler.Error(dbTran.ErrorException.Message);
+                    }
+                });
+            }
             return action;
         }
 

--
Gitblit v1.9.3