From fb5c3be6709ba89053dc75c9fabfb94cb89c6be1 Mon Sep 17 00:00:00 2001
From: hudong <Administrator@PC-20250329JZUF>
Date: 星期三, 18 六月 2025 16:14:18 +0800
Subject: [PATCH] 修改重点逻辑修改 定时充电优化

---
 dispatch/NDC.cs              |    5 +
 Program.cs                   |    2 
 api/WmsSpaHelper.cs          |  102 ++++++++++++++++++++++-----------
 models/CGRels.cs             |   23 +++++++
 process/TaskProcess.cs       |   31 ++++++++--
 core/WCSCore.cs              |    9 ++
 HH.WCS.Mobox3.pinggao.csproj |    1 
 7 files changed, 129 insertions(+), 44 deletions(-)

diff --git a/HH.WCS.Mobox3.pinggao.csproj b/HH.WCS.Mobox3.pinggao.csproj
index 1ac1a38..0e4a772 100644
--- a/HH.WCS.Mobox3.pinggao.csproj
+++ b/HH.WCS.Mobox3.pinggao.csproj
@@ -190,6 +190,7 @@
     <Compile Include="HH\WCS\Mobox3\pinggao\models\SapRo1ot.cs" />
     <Compile Include="models\BaseModel.cs" />
     <Compile Include="models\Area.cs" />
+    <Compile Include="models\CGRels.cs" />
     <Compile Include="models\DAPING.cs" />
     <Compile Include="models\MaterialVoucher.cs" />
     <Compile Include="models\OutboundRecord.cs" />
diff --git a/Program.cs b/Program.cs
index e9e3307..7f9984b 100644
--- a/Program.cs
+++ b/Program.cs
@@ -116,6 +116,8 @@
                 tasks.Add(GetTask(WMSCore.CheckDistributionCNTROrder));
                 //tasks.Add(GetTask(WMSCore.TransportTask));
                 tasks.Add(GetTask(WCSCore.Dispatch));
+                //瀹氭椂閲嶇疆
+                tasks.Add(GetTask(WCSCore.DSCZ));
                 tasks.Add(GetTask(WCSCore.Dispatch1));
                 //娣诲姞鑷畾涔夌嚎绋� 
diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs
index cf42f12..4a2f148 100644
--- a/api/WmsSpaHelper.cs
+++ b/api/WmsSpaHelper.cs
@@ -1895,11 +1895,16 @@
                         }
                         else if (!string.IsNullOrEmpty(model.item_code))
                         {
-                            var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault();
-                            if (starts!=null)
+                         var khsta=   db.Queryable<CGRels>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault();
+
+
+                      
+
+
+                            if (khsta != null)
                             {
-                                LogHelper.Info($"starts{starts}");
-                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == starts.S_CNTR_CODE).ToList().FirstOrDefault();
+                                LogHelper.Info($"starts{khsta}");
+                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == khsta.S_CNTR_CODE).ToList().FirstOrDefault();
                                 LogHelper.Info($"starts1{starts12}");
                                 start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault();
                                 LogHelper.Info($"starts2{start}");
@@ -1908,17 +1913,27 @@
                             }
                             else
                             {
-                                var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
-                                var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray();
-                                start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault();
+                                var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault();
+
+                                if (starts!=null)
+                                {
+                                    LogHelper.Info($"{model.cntr_code}瀹瑰櫒璐у搧瀛樺湪璇ョ墿鏂欙紝璇烽厤缃墿鏂欏鍣�);
+                                    result.resultMsg = $"瀹瑰櫒璐у搧瀛樺湪璇ョ墿鏂欙紝璇烽厤缃墿鏂欏鍣�;
+                                    result.resultCode = 1;
+                                    return result;
+
+                                }
+                                else
+                                {
+                                    var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
+                                    var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray();
+                                    start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault();
+                                    var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault();
 
 
-
-
-                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault();
-
-
-                                model.cntr_code = starts12?.S_CNTR_CODE;
+                                    model.cntr_code = starts12?.S_CNTR_CODE;
+                                }
+                                    
                             }
                            
                         }
@@ -3143,6 +3158,23 @@
                                 #endregion
                                 if (cntr != null)
                                 {
+                                    #region 瀹㈡埛鎸囧畾瀹瑰櫒琛�+                                    var cir2 = db.Queryable<CGRels>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.N_BS_ROW_NO == item.N_ROW_NO ).First();
+
+                                    if (cir2 != null)
+                                    {
+                                        cir2.S_CNTR_TYPE = S_CNTR_TYPE;
+                                        db.Updateable(cir2).UpdateColumns(it => new {  it.S_CNTR_TYPE }).ExecuteCommand();
+                                    }
+                                    else
+                                    {
+                                        //2.鎻掑叆鏂扮殑瀹瑰櫒鐗╂枡淇℃伅锛堝鍣ㄥ彿涓嶅彉S_SERIAL_NO = item.S_SERIAL_NO,锛�+                                        cir2 = new CGRels { S_CNTR_TYPE = S_CNTR_TYPE, S_CNTR_CODE = cntr.S_CODE.Trim(), N_BS_ROW_NO = item.N_ROW_NO, S_ITEM_CODE = item.item_code };
+                                        db.Insertable<CGRels>(cir2).ExecuteCommand();
+                                    }
+                                    #endregion
+
+
                                     #region 1.鏌ョ湅鏄惁鏈夌浉鍚岀墿鏂欐壒娆$殑淇℃伅锛屽鏋滄湁瑕佺疮鍔狅紝涓嶅悓鎵规鐨勫彲浠ュ垎寮�                                     var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.S_BATCH_NO == item.S_BATCH_NO && a.N_BS_ROW_NO == item.N_ROW_NO && a.S_BS_NO == item.arrival_no).First();
                                     if (cir != null)
@@ -3252,7 +3284,7 @@
                                         S_DO_NO = itemscddll.LLDH,
                                         S_AREA_CODE = "HJQ",
                                         N_ROW_NO = "",
-                                        S_ITEM_CODE = a.WLBM,
+                                        S_ITEM_CODE = a.ZJBM,
                                         S_ITEM_NAME = "",
                                         F_QTY = a.XQSL,
                                         S_ZJBM = a.ZJBM,
@@ -3354,7 +3386,7 @@
                     db.BeginTran();
                     foreach (var itemscddll in model.ROOT.SCDDLL)
                     {
-                        var wlbmList = itemscddll.ITEM.Select(x => x.WLBM).Distinct().ToList();
+                        var wlbmList = itemscddll.ITEM.Select(x => x.ZJBM).Distinct().ToList();
                         var itemlist = db.Queryable<TN_Material>()
                         .Where(it => wlbmList.Contains(it.S_ITEM_CODE))  // 浣跨敤 IN 鏌ヨ
                         .ToList();
@@ -3377,13 +3409,13 @@
                             {
                                 foreach (var a in itemscddll.ITEM)
                                 {
-                                    var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault();
+                                    var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault();
                                     if (item == null)
                                     {
                                         lLDReturnRoots.GC = itemscddll.GC;
                                         lLDReturnRoots.LLDH = itemscddll.LLDH;
                                         lLDReturnRoots.MSGCODE = 1;
-                                        lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
+                                        lLDReturnRoots.MSGDESP = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
                                         iTEMs.Add(lLDReturnRoots);
 
                                         continue;
@@ -3393,7 +3425,7 @@
                                         S_DO_NO = itemscddll.LLDH,
                                         S_AREA_CODE = "HJQ",
                                         N_ROW_NO = "",
-                                        S_ITEM_CODE = a.WLBM,
+                                        S_ITEM_CODE = a.ZJBM,
                                         S_ITEM_NAME = item?.S_ITEM_NAME,
                                         F_QTY = a.XQSL,
                                         S_ZJBM = a.ZJBM,
@@ -3468,21 +3500,21 @@
                                         lLDReturnRoots.GC = itemscddll.GC;
                                         lLDReturnRoots.LLDH = itemscddll.LLDH;
                                         lLDReturnRoots.MSGCODE = 1;
-                                        lLDReturnRoots.MSGDESP = $"鎵ц涓鏂欏崟锛岀墿鏂檣a.WLBM}鐗╂枡涓嶅厑璁稿垹闄�;
+                                        lLDReturnRoots.MSGDESP = $"鎵ц涓鏂欏崟锛岀墿鏂檣a.ZJBM}鐗╂枡涓嶅厑璁稿垹闄�;
                                         iTEMs.Add(lLDReturnRoots);
                                         continue;
                                     }
-                                    var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList();
+                                    var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).ToList();
                                     if (po1.Count() == 0)  //鏃犲垯鏂板鐗╂枡鏄庣粏
                                     {
-                                        var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault();
+                                        var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault();
                                         if (item == null)
                                         {
                                             ;
                                             lLDReturnRoots.GC = itemscddll.GC;
                                             lLDReturnRoots.LLDH = itemscddll.LLDH;
                                             lLDReturnRoots.MSGCODE = 1;
-                                            lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
+                                            lLDReturnRoots.MSGDESP = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
                                             iTEMs.Add(lLDReturnRoots);
                                             continue;
                                         }
@@ -3491,7 +3523,7 @@
                                             S_DO_NO = itemscddll.LLDH,
                                             S_AREA_CODE = "HJQ",
                                             N_ROW_NO = "",
-                                            S_ITEM_CODE = a.WLBM,
+                                            S_ITEM_CODE = a.ZJBM,
                                             S_ITEM_NAME = item.S_ITEM_NAME,
                                             F_QTY = a.XQSL,
                                             S_ZJBM = a.ZJBM,
@@ -3524,7 +3556,7 @@
                                             lLDReturnRoots.GC = itemscddll.GC;
                                             lLDReturnRoots.LLDH = itemscddll.LLDH;
                                             lLDReturnRoots.MSGCODE = 1;
-                                            lLDReturnRoots.MSGDESP = $"鏇存柊澶辫触锛屾洿鏂版暟閲忓繀椤诲ぇ浜庡綋鍓嶇墿鏂欐暟閲弡a.WLBM}";
+                                            lLDReturnRoots.MSGDESP = $"鏇存柊澶辫触锛屾洿鏂版暟閲忓繀椤诲ぇ浜庡綋鍓嶇墿鏂欐暟閲弡a.ZJBM}";
                                             iTEMs.Add(lLDReturnRoots);
                                             continue;
                                         }
@@ -3538,40 +3570,40 @@
                                 {
                                     if (a.LLDSCBS == "Y")//濡傛灉鏄垹闄ゆ爣璇嗗垯鍒犻櫎褰撳墠鎵�睘鍑哄簱鍗曟槑缁�涓嶆槸鍒犻櫎鏍囪 鍒欒繘琛屽鏀瑰垽鏂�                                     {
-                                        var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).FirstOrDefault();
+                                        var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).FirstOrDefault();
                                         if (po1 != null)  //鏃犲垯鏂板鐗╂枡鏄庣粏
                                         {
                                             tN_Ll_Details.Add(po1);
-                                            //   db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.WLBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand();
+                                            //   db.Deleteable<TN_Ll_detail>().Where(it => it.S_ITEM_CODE == a.ZJBM && it.S_DO_NO == po1.First().S_DO_NO).ExecuteCommand();
                                         }
                                         else
                                         {
                                             //result.code = 1;
-                                            //result.msg = $"鐗╂枡{a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎";
-                                            //throw new Exception($"鐗╂枡{a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎");
+                                            //result.msg = $"鐗╂枡{a.ZJBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎";
+                                            //throw new Exception($"鐗╂枡{a.ZJBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎");
                                             lLDReturnRoots.GC = itemscddll.GC;
                                             lLDReturnRoots.LLDH = itemscddll.LLDH;
                                             lLDReturnRoots.MSGCODE = 1;
-                                            lLDReturnRoots.MSGDESP = $"鍒犻櫎鐨勭墿鏂檣a.WLBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎";
+                                            lLDReturnRoots.MSGDESP = $"鍒犻櫎鐨勭墿鏂檣a.ZJBM}鐗╂枡鏁版嵁涓嶅瓨鍦�鏃犳硶鍒犻櫎";
                                             iTEMs.Add(lLDReturnRoots);
                                             continue;
                                         }
                                     }
                                     else
                                     {
-                                        var po1 = po.Details.Where(s => a.WLBM == s.S_ITEM_CODE).ToList();
+                                        var po1 = po.Details.Where(s => a.ZJBM == s.S_ITEM_CODE).ToList();
                                         if (po1.Count() == 0)  //鏃犲垯鏂板鐗╂枡鏄庣粏
                                         {
-                                            var item = itemlist.Where(it => it.S_ITEM_CODE == a.WLBM).FirstOrDefault();
+                                            var item = itemlist.Where(it => it.S_ITEM_CODE == a.ZJBM).FirstOrDefault();
                                             if (item == null)
                                             {
                                                 //result.code = 1;
-                                                //result.msg = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
-                                                //throw new Exception($"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�);
+                                                //result.msg = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
+                                                //throw new Exception($"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�);
                                                 lLDReturnRoots.GC = itemscddll.GC;
                                                 lLDReturnRoots.LLDH = itemscddll.LLDH;
                                                 lLDReturnRoots.MSGCODE = 1;
-                                                lLDReturnRoots.MSGDESP = $"鐗╂枡{a.WLBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
+                                                lLDReturnRoots.MSGDESP = $"鐗╂枡{a.ZJBM}鐗╂枡涓绘暟鎹笉瀛樺湪璇ョ墿鏂�;
                                                 iTEMs.Add(lLDReturnRoots);
                                                 continue;
                                             }
@@ -3580,7 +3612,7 @@
                                                 S_DO_NO = itemscddll.LLDH,
                                                 S_AREA_CODE = "HJQ",
                                                 N_ROW_NO = "",
-                                                S_ITEM_CODE = a.WLBM,
+                                                S_ITEM_CODE = a.ZJBM,
                                                 S_ITEM_NAME = item.S_ITEM_NAME,
                                                 F_QTY = a.XQSL,
                                                 S_ZJBM = a.ZJBM,
diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index c60542f..a2519c7 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -141,11 +141,18 @@
 
 
             }
-        } internal static void Dispatch1() {
+        } 
+        internal static void Dispatch1() {
             //鏌ヨ浠诲姟
             //鑾峰彇鎵�湁绛夊緟鐨勪换鍔�             TaskProcess.SendCd();
         }
+        internal static void DSCZ()
+        {
+            //鏌ヨ浠诲姟
+            //鑾峰彇鎵�湁绛夊緟鐨勪换鍔�+            TaskProcess.SendCZ();
+        }
 
         /// <summary>
         /// 鏉ゥ鍫嗗灈鏈轰俊鍙峰弽棣�diff --git a/dispatch/NDC.cs b/dispatch/NDC.cs
index ae83b31..3d55e6e 100644
--- a/dispatch/NDC.cs
+++ b/dispatch/NDC.cs
@@ -79,11 +79,12 @@
             }
 
         }
+      
         private static string GetReqStr(int ts, Dictionary<string, string> param)
         {
             //< Order  TS = '60'  Pri = '" + mst.CN_N_PRIORITY.ToString() + "' From = '" + start.CN_N_AGV_TN_Location + "' To = '" + end.CN_N_AGV_TN_Location + "'  No = '" + mst.S_CODE + "_1' Ext1 = '1' Ext2 = '" + Constants.TN_MID_COMMANDEQ_CALLAGVOrderCommandType + "'  N_CNTR_COUNT = ''   FRow = '" + sFloor + "'  TRow = '" + eFloor + "' />
             var sb = new StringBuilder();
-            sb.Append($"<Req> ");
+            sb.Append($"<Req><Order ");
             if (ts != 0)
             {
                 sb.Append($"TS='{ts}'");
@@ -95,7 +96,7 @@
             sb.Append("/></Req>");
             return sb.ToString();
         }
-
+      
         private static string GetReqStrcd(int ts, Dictionary<string, string> param)
         {
             //< Order  TS = '60'  Pri = '" + mst.CN_N_PRIORITY.ToString() + "' From = '" + start.CN_N_AGV_TN_Location + "' To = '" + end.CN_N_AGV_TN_Location + "'  No = '" + mst.S_CODE + "_1' Ext1 = '1' Ext2 = '" + Constants.TN_MID_COMMANDEQ_CALLAGVOrderCommandType + "'  N_CNTR_COUNT = ''   FRow = '" + sFloor + "'  TRow = '" + eFloor + "' />
diff --git a/models/CGRels.cs b/models/CGRels.cs
new file mode 100644
index 0000000..46cc0d6
--- /dev/null
+++ b/models/CGRels.cs
@@ -0,0 +1,23 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HH.WCS.Mobox3.pinggao.models
+{
+    [SugarTable("TN_CG_DETAILS")]
+    public class CGRels : BaseModel
+    {
+        //public string S_CG_ID { get; set; }
+        /// <summary>
+        /// 浜у搧搴忓垪鍙�+        /// </summary>
+        public string S_CNTR_TYPE { get; set; }
+        public string S_CNTR_CODE { get; set; }
+        public string N_BS_ROW_NO { get; set; }
+        public string S_ITEM_CODE { get; set; }
+  
+    }
+}
diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index 31ea7fe..bf342fc 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -588,12 +588,7 @@
                 DateTime currentDate = DateTime.Now;
                 // 鏍煎紡鍖栬緭鍑烘椂鍒嗛儴鍒�                 string currentHourMinute = currentDate.ToString("HH:mm");
-                if (currentHourMinute == "00:00")
-                {
-
-                    dstart.N_STATE = 0;
-                    db.Updateable<TN_CD>(dstart).UpdateColumns(a => new { a.N_STATE }).ExecuteCommand();
-                }
+             
                 if (dstart.S_TIME == currentHourMinute)
                 {
                     var dic = new Dictionary<string, string>();
@@ -636,6 +631,30 @@
 
             return result;
         }
+
+        public static bool SendCZ()
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            var dstart = db.Queryable<TN_CD>().Where(s => s.N_STATE == 1).First();
+
+            var result = false;
+            if (dstart != null)
+            {
+                DateTime currentDate = DateTime.Now;
+                // 鏍煎紡鍖栬緭鍑烘椂鍒嗛儴鍒�+                string currentHourMinute = currentDate.ToString("HH:mm");
+                if (currentHourMinute == "00:00")
+                {
+
+                    dstart.N_STATE = 0;
+                    db.Updateable<TN_CD>(dstart).UpdateColumns(a => new { a.N_STATE }).ExecuteCommand();
+                }
+                result = true;
+
+            }
+
+            return result;
+        }
         /// <summary>
         /// 鎺ㄩ�浠诲姟
         /// </summary>

--
Gitblit v1.9.1