From be14322d1b20857082dd47aeb895bd976dca13e0 Mon Sep 17 00:00:00 2001
From: liuying <1427574514@qq.com>
Date: 周六, 30 11月 2024 17:40:50 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/LA24030-LuLI_PackageLine

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs      |   45 +++
 CC/iWareSql/DataAccess/TaskHandler.cs                                                                      |   24 +
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/Dto/UnlineForNGPackageInput.cs  |   23 +
 CC/iWareCC_ASRS/App.config                                                                                 |    2 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/DataProcess_RobotBuffer_ModeChange.cs                       |    4 
 CC/iWareCC_ASRS/ThreadService/01_BZ01工位(清灰,洗板后工位)/DataProcess_BZ01.cs                                      |    2 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/2、DataProcess_RobotBuffer_FinishTask.cs             |   28 +
 CC/iWareCC_ASRS/ThreadService/05_BZ30(齐套验证)/DataProcess_ValidateQiTao.cs                                   |   84 -----
 SDA/iWareSda/App.config                                                                                    |    4 
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Inbound/1、DataProcess_BZ39.cs                               |   22 -
 CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs                                                            |  406 ++++++----------------------
 SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs                                               |   46 +-
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/2、DataProcess_RobotBuffer_IssueOutboundTask.cs     |   28 +-
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/3、DataProcess_RobotBuffer_FinishTaskForOutbound.cs |   22 +
 CC/iWareCC_ASRS/ThreadService/02_BZ39工位(补板后工位)/Outbound/1、DataProcess_RobotBuffer_AutoQiTaoOutbound.cs     |    4 
 CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/DataProcess_BZ21.cs                                         |   88 +++---
 16 files changed, 322 insertions(+), 510 deletions(-)

diff --git a/CC/iWareCC_ASRS/App.config b/CC/iWareCC_ASRS/App.config
index 3325369..04c8529 100644
--- a/CC/iWareCC_ASRS/App.config
+++ b/CC/iWareCC_ASRS/App.config
@@ -35,7 +35,7 @@
     <add key="IsEnableNewInStorePlace" value="false"/>
   </appSettings>
   <connectionStrings>
-    <add name="WmsDBModel" connectionString="data source=localhost;initial catalog=LA24030_LuLiPackageLine;persist security info=True;user id=sa;password=123abc.com;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/>
+    <add name="WmsDBModel" connectionString="data source=172.17.1.111;initial catalog=LA24030_LuLiPackageLine;persist security info=True;user id=sa;password=admin@123;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient"/>
  </connectionStrings>
   <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
diff --git a/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs b/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
index 224b85c..a1b91dc 100644
--- a/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
+++ b/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -1,9 +1,11 @@
-锘縰sing iWareCommon.Common.Globle;
+锘縰sing Admin.NET.Application;
+using iWareCommon.Common.Globle;
 using iWareCommon.Utils;
 using iWareModel;
 using iWareModel.EnumType.XiGangPublicCommon;
 using iWareSql.DataAccess;
 using iWareSql.DBModel;
+using iWareSql.WmsDBModel;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -20,6 +22,91 @@
     /// </summary>
     public class MyExtendHelper
     {
+
+        /// <summary>
+        /// 澶勭悊 琛� mes_order_gather
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <param name="package"></param>
+        /// <param name="qitaoValue"></param>
+        /// <param name="_UnlinePerson"></param>
+        /// <param name="errMsg"></param>
+        /// <returns></returns>
+        public static bool HandlerOrderGather(WmsDBModel wmsDB, mes_package_gather package, string qitaoValue, string _UnlinePerson, out string errMsg)
+        {
+            errMsg = "";
+            //澶勭悊琛�  mes_order_gather
+            if (package == null) {
+                return true;
+            }
+            var isAddOrder = false;
+            var packageList = wmsDB.mes_package_gather.Where(x => x.Info5 == package.Info5).ToList();
+            if (packageList == null || packageList?.Count == 0)
+            {
+                errMsg = $"娌℃湁鎵惧埌鐢熶骇鍗曞彿{package.Info5}鐨勬眹鎬绘暟鎹�";
+                return false;
+            }
+            var order = wmsDB.mes_order_gather.Where(x => x.Info5 == package.Info5).FirstOrDefault();
+            if (order != null)
+            {
+
+            }
+            else
+            {
+                order = new mes_order_gather()
+                {
+                    Id = Yitter.IdGenerator.YitIdHelper.NextId(),
+                    Info5 = package.Info5,
+                    OrderId = package.OrderId,
+                    PlanNo = package.PlanNo,
+                };
+                isAddOrder = true;
+            }
+            order.PackageNum = packageList.Count();
+            order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾�).Count();
+            order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum;
+
+            order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13));
+            order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾�).Sum(x => Convert.ToDecimal(x.Info13));
+            order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea;
+            order.IsKitting = qitaoValue == "榻愬" ? true : false;
+
+            var order_unLine = false;
+            //鏌ヨ涓嬩竴涓寘鏄笉鏄睘浜庤璁㈠崟
+            var newLineQueue = wmsDB.mes_package_linequeue.OrderBy(x => x.Id).FirstOrDefault();
+            if (newLineQueue != null && newLineQueue.Info5 != order.Info5)
+            {
+                //琛ㄧず鏄� 鍒囨崲 鏂拌鍗曚簡锛岃璁㈠崟瑕佹洿鏂颁负 宸蹭笅绾裤��
+                order_unLine = true;
+            }
+            else
+            {
+                //鍒ゆ柇璇ヨ鍗曟槸鍚﹀凡涓嬬嚎
+                if (order.PackageNum == order.UnLinePackageNum)
+                {
+                    order_unLine = true;
+                }
+            }
+            //鍒ゆ柇璇ヨ鍗曟槸鍚﹀凡涓嬬嚎
+            if (order_unLine)
+            {
+                order.IsUnline = true;
+                order.UnlineTime = DateTime.Now;
+                order.UnlinePerson = _UnlinePerson;
+            }
+            else
+            {
+                order.IsUnline = false;
+            }
+
+            if (isAddOrder)
+            {
+                wmsDB.mes_order_gather.Add(order);
+            }
+
+            return true;
+        }
+
 
         /// <summary>
         /// 閰嶇疆缂烘枡鍘熷洜
@@ -517,270 +604,6 @@
         #endregion
 
         /// <summary>
-        /// 鏂板缓杞繍浠诲姟
-        /// </summary>
-        /// <param name="flag">1:杞Щ鍒�1014浣嶇疆 2:杞Щ鍒扮珛浣撳簱涓�  3:1009鍒�1011 4:绔嬩綋搴撳埌1014浣嶇疆 </param>
-        /// <param name="rgvEDevice">RGV璁惧鍙�</param>
-        /// <param name="user"></param>
-        /// <param name="store"></param>
-        /// <returns></returns>
-        public static FunRetEntity AddTransferTask(AddTransferTaskEnum flag, EDevice rgvEDevice, SysUser user, V_AllStore store)
-        {
-            FunRetEntity fr = new FunRetEntity();
-            var errMsg = "";
-            var remark = "鏂板杞繍浠诲姟";
-            try
-            {
-                #region 浜嬪姟
-                #endregion
-                using (DbModel edm = new DbModel())
-                {
-                    //澧炲姞楠岃瘉 銆怑ditBy shaocx,2022-04-28銆�
-                    switch (flag)
-                    {
-                        case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆:
-                        case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�:
-                            //鍘绘帀杩欎釜楠岃瘉锛屽墠闈㈠厑璁稿垱寤轰换鍔″氨鍒涘缓鍚� 銆怑ditBy shaocx,2022-05-15銆�
-                            /*    
-                            var isAllow = IsAllowCreateTaskForInStore(edm, ref errMsg);
-                                if (!isAllow)
-                                {
-                                    return FunRetEntity.Fail(errMsg);
-                                }
-                                //*/
-                            break;
-                    }
-
-                    using (var trans = edm.Database.BeginTransaction())
-                    {
-                        try
-                        {
-                            Task_Main mainTask = new Task_Main();
-                            mainTask.IsVirtual = false;//闈炶櫄鎷熷叆搴�
-                            mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("TR");
-                            mainTask.TaskName = "绌烘墭杞繍";
-
-
-
-                            #region 鑾峰彇浠诲姟璧风偣
-
-                            //璧风偣
-                            var realSourcePlace = "";
-                            Base_Station sourcePlace = null;
-                            if (flag == AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆)
-                            {//4:绔嬩綋搴撳埌1014浣嶇疆
-                                var srmStore = MyExtendHelper.FindStoreForEmptySalverTo1014(edm, ref errMsg);
-                                if (srmStore == null)
-                                {
-                                    return FunRetEntity.Fail(errMsg);
-                                }
-                                store = ClassHelper.RotationMapping<V_AllStore, V_Store>(srmStore);
-                                sourcePlace = StationHandler.GetPlaceByPlaceId(store.StationId, edm);
-                                realSourcePlace = sourcePlace.SrmStationCode;
-
-                                //璁板綍鍖哄煙 [EditBy shaocx,2022-05-02]
-                                var device = BusinessHelper.GetSrmDeviceByPlaceNo(sourcePlace.SrmStationCode);
-                                mainTask.Area = ((int)device).ToString();
-                            }
-                            else if (flag == AddTransferTaskEnum.浣嶇疆1014鍒�1020)
-                            {//5:浣嶇疆1014鍒�1020
-                                sourcePlace = StationHandler.GetPlaceByPlaceId(store.StationId, edm);
-                                realSourcePlace = sourcePlace.RgvStationCode;
-                            }
-                            else
-                            {
-                                var getSourcePlaceResult = StationHandler.GetTargtStationForAddTransferTask(edm, rgvEDevice, ref errMsg, ref sourcePlace);
-                                if (getSourcePlaceResult.result == false) return getSourcePlaceResult;
-                                realSourcePlace = sourcePlace.RgvStationCode;
-                            }
-                            mainTask.SourcePlace = sourcePlace.Id;
-                            mainTask.RealSourcePlace = realSourcePlace;
-
-                            #endregion
-
-                            #region 鑾峰彇涓棿鐐瑰拰鐩爣鐐�
-
-                            Base_Station toPlace = null;
-                            Base_Station midPlace = null;
-                            var getMidToPlaceResult = MainTaskHandler.GetMidToPlaceForAddTransferTask(sourcePlace, flag, edm, ref errMsg, ref toPlace, ref midPlace, ref mainTask);
-                            if (getMidToPlaceResult.result == false) return getMidToPlaceResult;
-
-                            #endregion
-
-                            SetTaskTypeStateAndInOutFlagForMainTask(flag, ref mainTask);
-
-                            Base_Salver salver = null;
-                            Base_Material newMaterial = null;
-                            if (store == null)
-                            {//鏂板缓鐗╂枡锛屾柊寤烘墭鐩橈紝鏂板缓缁戝畾鍏崇郴
-                                //缁戝畾鎵樼洏鍜岀珯鐐圭殑鍏崇郴
-                                //鏂板缓鐗╂枡
-                                var salverStackCount = GetSalverStackCountForBackToStore();
-                                if (salverStackCount == 0)
-                                {
-                                    //鎶ラ敊
-                                    return FunRetEntity.Fail("鏍规嵁1009绔欑偣鐨勫厜鐢佃幏鍙栬繑鍥炵珛浣撳簱鐨勬墭鐩樻暟涓�0");
-                                }
-
-                                newMaterial = MaterialHandler.CreateEmptySlaverMaterial(edm, "绌烘墭鐩樿浆杩愭椂鍒涘缓", salverStackCount);
-                                //鍒ゆ柇鎵樼洏鏄惁瀛樺湪锛屽鏋滃瓨鍦紝灏变笉闇�瑕侀噸寤猴紝濡傛灉涓嶅瓨鍦紝灏辨柊寤烘墭鐩�
-                                salver = SalverHandler.CreateVirtualSalver(edm, "绌烘墭鐩樿浆杩�");
-                                if (!string.IsNullOrEmpty(errMsg))
-                                {
-                                    return FunRetEntity.Fail(errMsg);
-                                }
-                                //缁戝畾鎵樼洏鍜岀墿鏂欑殑鍏崇郴
-                                Salver_Material_Handler.CreateCvIRelation(edm, user.Name, salver, newMaterial, remark);
-                                //缁戝畾鎵樼洏鍜岀珯鐐圭殑鍏崇郴
-                                Salver_Station_Handler.CreateCvPRelation(edm, user.Name, salver, sourcePlace, Salver_V_Station_StateEnum.鍏ュ簱缁戝畾, remark);
-                            }
-                            else
-                            {
-                                salver = SalverHandler.GetSalveById(edm, store.SalverId);
-                                newMaterial = MaterialHandler.GetMaterialById(edm, store.MaterialId);
-                            }
-
-                            mainTask.SalverId = salver.Id;
-                            mainTask.SalverCode = salver.SalverCode;
-                            mainTask.MaterialId = newMaterial.Id;
-                            //鐗╂枡淇℃伅
-                            MainTaskHandler.SetMaterialForMainTask(ref mainTask, newMaterial);
-
-                            //搴忓垪鍙峰拰璁㈣揣鍙疯祴鍊�  [Editby shaocx,2022-04-05]
-                            mainTask.SerialNumber = "";
-                            mainTask.OrderNo = "";
-
-                            mainTask.CreateTime = mainTask.ModifyTime = mainTask.StartTime = DateTime.Now;
-                            mainTask.CreateBy = mainTask.ModifyBy = user.Name;
-                            mainTask.CreateId = mainTask.ModifyId = user.ID;
-                            mainTask.OperationRemark = "娣诲姞";
-
-                            string taskSequenceGuid = "";
-                            mainTask.TaskSequence = MainTaskHandler.GenerateTaskSequence(edm, ref taskSequenceGuid);//鐢熸垚浠诲姟搴忓垪鍙�
-                            mainTask.TaskSequenceGuid = taskSequenceGuid;
-
-                            edm.Task_Main.Add(mainTask);
-                            edm.SaveChanges();//淇濆瓨涓�娆★紝姝ゆ椂mainTask鐨勮嚜澧濱D灏辨湁鍊间簡
-
-                            var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
-                            var createTime = DateTime.Now;
-
-                            if (flag == AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆)
-                            {//杞Щ鍒�1014浣嶇疆
-                                //鍒涘缓RGV浠诲姟
-                                FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.绌烘墭杞繍鍒版媶鐩樻満鍏ュ彛, mainTask, salver, sourcePlace, toPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                            }
-                            else if (flag == AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�)
-                            {//杞Щ鍒扮珛浣撳簱涓�
-                                //鍒涘缓RGV浠诲姟
-                                FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.绌烘墭杞繍鍒扮珛浣撳簱, mainTask, salver, sourcePlace, midPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                                //鍒涘缓鍫嗗灈鏈轰换鍔�
-                                fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.鍫嗗灈鏈�, user.Name, 2, DeviceTaskTypeEnum.绌烘墭杞繍鍒扮珛浣撳簱, mainTask, salver, midPlace, toPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                            }
-                            else if (flag == AddTransferTaskEnum.浣嶇疆1009鍒颁綅缃�1011)
-                            {// 3:1009鍒�1011 
-                                //鍒涘缓RGV浠诲姟
-                                FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.绌烘墭缂撳瓨浣嶈浆杩�, mainTask, salver, sourcePlace, toPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                            }
-                            else if (flag == AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆)
-                            {//4:绔嬩綋搴撳埌1014浣嶇疆
-
-                                //鍒涘缓鍫嗗灈鏈轰换鍔�
-                                FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.鍫嗗灈鏈�, user.Name, 1, DeviceTaskTypeEnum.绔嬪簱绌烘墭鍒版媶鐩樻満鍏ュ彛, mainTask, salver, sourcePlace, midPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                                //鍒涘缓RGV浠诲姟
-                                fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 2, DeviceTaskTypeEnum.绔嬪簱绌烘墭鍒版媶鐩樻満鍏ュ彛, mainTask, salver, midPlace, toPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                            }
-                            else if (flag == AddTransferTaskEnum.浣嶇疆1014鍒�1020)
-                            {//5:1014鍒�1020浣嶇疆
-                                //鍒涘缓RGV浠诲姟
-                                FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.鎷嗙洏鏈哄叆鍙e埌鎷嗙洏鏈�, mainTask, salver, sourcePlace, toPlace, remark);
-                                if (fre.result == false)
-                                {
-                                    throw new Exception(fr.resMsg);
-                                }
-                            }
-
-                            edm.SaveChanges();//绗簩娆′繚瀛�
-
-                            trans.Commit();//浜嬪姟鎻愪氦
-                        }
-                        catch (Exception ex)
-                        {
-                            trans.Rollback();
-                            throw ex;
-                        }
-                    }
-                    return FunRetEntity.Success("鎴愬姛");
-                }
-            }
-            catch (System.Exception ex)
-            {
-                throw ex;
-            }
-        }
-
-        private static void SetTaskTypeStateAndInOutFlagForMainTask(AddTransferTaskEnum flag, ref Task_Main mainTask)
-        {
-            var _InOutFlag = default(MainInOutFlagEnum);
-            var _taskType = default(MainTaskTypeEnum);
-            var _taskState = default(MainTaskStatusEnum);
-            switch (flag)
-            {
-                case AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆:
-                    _taskType = MainTaskTypeEnum.鑷姩鍑哄簱;
-                    _taskState = MainTaskStatusEnum.鍑哄簱涓�;
-                    _InOutFlag = MainInOutFlagEnum.鍑哄簱;
-                    break;
-                case AddTransferTaskEnum.浣嶇疆1009鍒颁綅缃�1011:
-                case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆:
-                case AddTransferTaskEnum.浣嶇疆1014鍒�1020:
-                    _taskType = MainTaskTypeEnum.绌烘墭杞繍;
-                    _taskState = MainTaskStatusEnum.寰呰浆杩�;
-                    _InOutFlag = MainInOutFlagEnum.杞繍;
-                    break;
-                case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�:
-                    _taskType = MainTaskTypeEnum.鑷姩鍏ュ簱;
-                    _taskState = MainTaskStatusEnum.鍏ュ簱涓�;
-                    _InOutFlag = MainInOutFlagEnum.鍏ュ簱;
-                    break;
-                default:
-                    throw new Exception("涓嶆敮鎸佺殑绫诲瀷");
-            }
-            mainTask.TaskType = Convert.ToInt32(_taskType);
-            mainTask.TaskTypeName = _taskType.ToString();
-            mainTask.TaskState = Convert.ToInt32(_taskState);
-            mainTask.TaskStateName = _taskState.ToString();
-
-            mainTask.InOutFlag = (int)_InOutFlag;
-            mainTask.InOutFlagName = _InOutFlag.ToString();
-        }
-
-
-        /// <summary>
         /// 鏄惁鍏佽缁�1014鍙戦�佺洰鏍囩偣鏄�1014鐨勪换鍔�
         /// </summary>
         /// <param name="context"></param>
@@ -889,58 +712,7 @@
 
         public static FunRetEntity DoHandler(DbModel context, V_AllStore store, EDevice rgvStationCode)
         {
-            try
-            {
-                SysUser user = new SysUser()
-                {
-                    ID = 0,
-                    Name = SysGloble.WCSSystem
-                };
-                if (rgvStationCode == EDevice.绌烘墭缂撳瓨1011)
-                {
-                    //鍒ゆ柇1014鏄惁鏈夌┖浣�
-                    var queryRgvStationCode = ((int)EDevice.鎷嗙洏鏈哄叆鍙�1014).ToString();
-                    V_AllStore my1014Store = null;
-                    var isAllow = MyExtendHelper.IsAllowSendTaskToPlace1014(context, queryRgvStationCode, ref my1014Store);
-                    if (isAllow)
-                    {
-                        return AddTransferTask(AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆, rgvStationCode, user, store);
-                    }
-                    else
-                    {
-                        //瀵绘壘绔嬩綋搴撴槸鍚︽湁搴撳瓨
-                        return AddTransferTask(AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�, rgvStationCode, user, store);
-                    }
-                    //*/
-                    //var isGD_HasCatogryForRgvStattion = IsGD_HasCatogryForRgvStattion(queryRgvStationCode);
-                    //var store_1014_count = context.V_AllStore.Where(x => x.RgvStationCode == queryRgvStationCode).Count();
-                    //if (store_1014_count > 0 || isGD_HasCatogryForRgvStattion)
-                    //{
-
-                    //}
-                    //else
-                    //{//1014鏃犺揣锛屽垱寤轰换鍔�
-                    //    return MainTaskHandler.AddTransferTask(AddTransferTaskEnum.杞Щ鍒�1014浣嶇疆, rgvStationCode, user, store);
-                    //}
-                }
-                else if (rgvStationCode == EDevice.绌烘墭缂撳瓨1009)
-                {
-                    return AddTransferTask(AddTransferTaskEnum.浣嶇疆1009鍒颁綅缃�1011, rgvStationCode, user, store);
-                }
-                else if (rgvStationCode == EDevice.鎷嗙洏鏈哄叆鍙�1014)
-                {//鎷嗙洏鏈哄叆鍙�1014澶勬柊寤轰粠绔嬩綋搴撳彨鎵樼洏浠诲姟
-                    return AddTransferTask(AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆, rgvStationCode, user, store);
-                }
-                else if (rgvStationCode == EDevice.鎷嗙洏鏈�1020)
-                {// 浠�1014鍒�1020
-                    return AddTransferTask(AddTransferTaskEnum.浣嶇疆1014鍒�1020, rgvStationCode, user, store);
-                }
-                return null;
-            }
-            catch (Exception ex)
-            {
-                return FunRetEntity.Fail("鏂板绌烘墭鐩樿浆杩愪换鍔″紓甯�:" + ex.Message);
-            }
+            return null;
         }
 
         /// <summary>
diff --git "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs" "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
index e2c6727..20eec66 100644
--- "a/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/01_BZ01\345\267\245\344\275\215\357\274\210\346\270\205\347\201\260\357\274\214\346\264\227\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_BZ01.cs"
@@ -37,7 +37,7 @@
                 SystemWarningMsg._lbl_alert_DataProcess_BZ01 = string.Empty;
                 try
                 {
-                    if (SystemValue.isAllowRuning_DataProcess_BZ01 && SystemValue.isStartedModel)
+                    if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ01 &&
                     {
                         if (FormCC.IsAllowRunOutMode == true)
                         {
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
index 57420bc..e89e4a8 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/DataProcess_RobotBuffer_ModeChange.cs"
@@ -33,8 +33,8 @@
                 Thread.Sleep(2000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆�
                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_ModeChange = string.Empty;
                 try
-                {
-                    if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_ModeChange && SystemValue.isStartedModel)
+                {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_ModeChange &&
+                    if ( SystemValue.isStartedModel)
                     {
                         var rgvLocation = StationLocationEnum.BZ39.ToString();
                         if (FormCC.IsAllowRunOutMode)
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs"
index 6c3ed53..ebe49de 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/1\343\200\201DataProcess_BZ39.cs"
@@ -34,7 +34,7 @@
                 SystemWarningMsg._lbl_alert_DataProcess_BZ39 = string.Empty;
                 try
                 {
-                    if (SystemValue.isAllowRuning_DataProcess_BZ39 && SystemValue.isStartedModel)
+                    if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_BZ39 &&
                     {
                         var rgvLocation = StationLocationEnum.BZ39.ToString();
                         /*
@@ -55,15 +55,15 @@
                             using (WmsDBModel wmsDB = new WmsDBModel())
                             {
                                 //涓嶅啀鎷︽埅 
-                                /*
+
                                 //瑕佹槸鏈夊凡涓嬪彂鐨勪换鍔★紝灏变笉瑕佹墽琛�
-                                var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB);
+                                var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB,upiCode);
                                 if (!isValidate)
                                 {
                                     SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-鏈夆�樺凡涓嬪彂鈥欑殑浠诲姟锛屼笉鑳藉鐞�,姝ゆ寰幆缁撴潫";
                                     continue;
                                 }
-                                //*/
+                                //
                                 var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault();
                                 if (upiObj == null)
                                 {
@@ -112,20 +112,6 @@
 
                                 using (StationServiceClient client = new StationServiceClient())
                                 {
-                                    //涓嶅啀鎷︽埅 
-                                    /*
-                                    //棣栧厛鍏堟竻鐞�
-                                    var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation);
-                                    if (!res.result)
-                                    {
-                                        SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,InboundFinishConfirmAsync 杩斿洖:{res.resMsg}";
-                                        continue;
-                                    }
-                                    else
-                                    {
-                                        Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 鎴愬姛,InboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
-                                    }
-                                    //*/
 
                                     var res = await client.WriteInStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, place.PlaceCode,
                                        (short)upiObj.Length,
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs"
index c61372e..206c13d 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Inbound/2\343\200\201DataProcess_RobotBuffer_FinishTask.cs"
@@ -34,7 +34,7 @@
                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = string.Empty;
                 try
                 {
-                    if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask && SystemValue.isStartedModel)
+                    if ( SystemValue.isStartedModel)//SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTask &&
                     {
                         var rgvLocation = StationLocationEnum.BZ39.ToString();
                         var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
@@ -62,11 +62,23 @@
                                 var task = wmsDB.wms_rbline_task.Where(x =>
                                  x.TaskNo == obj.R_Inbound_TaskID.ToString()
                                 && x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟
-                                && x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�).FirstOrDefault();
+                                ).OrderByDescending(x=>x.Id).FirstOrDefault();
                                 if (task == null)
                                 {
                                     SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTask = $"{rgvLocation.ToString()},鏍规嵁 R_InboundNumber:{obj.R_InboundNumber}娌℃湁鎵惧埌宸蹭笅鍙戠殑浠诲姟 ";
                                     continue;
+                                }
+                                else 
+                                {
+                                    if (task.TaskStatus == (int)TaskStatusEnum.宸插畬鎴�)
+                                    {
+                                        using (StationServiceClient client = new StationServiceClient())
+                                        {
+                                            var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation);
+                             
+                                        }
+                                        continue;
+                                    }
                                 }
 
                                 var upiCode = task.UPI;
@@ -125,6 +137,18 @@
                                 wmsDB.SaveChanges();
                             }
                         }
+                        else
+                        {
+                            //涓嶅啀鎷︽埅 
+
+                            //棣栧厛鍏堟竻鐞�
+                            using (StationServiceClient client = new StationServiceClient())
+                            {
+                                var res = await client.InboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation);
+
+                            }
+
+                        }
                     }
                 }
                 catch (Exception ex)
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/1\343\200\201DataProcess_RobotBuffer_AutoQiTaoOutbound.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/1\343\200\201DataProcess_RobotBuffer_AutoQiTaoOutbound.cs"
index d4a4924..c879823 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/1\343\200\201DataProcess_RobotBuffer_AutoQiTaoOutbound.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/1\343\200\201DataProcess_RobotBuffer_AutoQiTaoOutbound.cs"
@@ -26,8 +26,8 @@
                 Thread.Sleep(2000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆�
                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_AutoQiTaoOutbound = string.Empty;
                 try
-                {
-                    if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound && SystemValue.isStartedModel)
+                {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_AutoQiTaoOutbound && 
+                    if (SystemValue.isStartedModel)
                     {
 
                         using (WmsDBModel wmsDB = new WmsDBModel())
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs"
index 72ebdb7..3810906 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/2\343\200\201DataProcess_RobotBuffer_IssueOutboundTask.cs"
@@ -34,8 +34,8 @@
                 Thread.Sleep(1000);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆�
                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = string.Empty;
                 try
-                {
-                    if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_IssueOutboundTask && SystemValue.isStartedModel)
+                {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_IssueOutboundTask &&
+                    if ( SystemValue.isStartedModel)
                     {
                         var rgvLocation = StationLocationEnum.BZ39.ToString();
                         /*
@@ -46,7 +46,7 @@
                         using (WmsDBModel wmsDB = new WmsDBModel())
                         {
                             //瑕佹槸鏈夊凡涓嬪彂鐨勪换鍔★紝灏变笉瑕佹墽琛�
-                            var isValidate = TaskHandler.ValidateIssueTaskForRobotBuffer(wmsDB);
+                            var isValidate = TaskHandler.ValidateIssueOutTaskForRobotBuffer(wmsDB);
                             if (!isValidate)
                             {
                                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_IssueOutboundTask = $"{rgvLocation.ToString()}-鏈夆�樺凡涓嬪彂鈥欑殑浠诲姟锛屼笉鑳藉鐞�,姝ゆ寰幆缁撴潫";
@@ -98,18 +98,18 @@
                             using (StationServiceClient client = new StationServiceClient())
                             {
                                 //棣栧厛瑕佹竻鐞�
-                                var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation);
-                                if (!res.result)
-                                {
-                                    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,OutboundFinishConfirmAsync 杩斿洖:{res.resMsg}";
-                                    continue;
-                                }
-                                else
-                                {
-                                    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,OutboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
-                                }
+                                //var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, false, rgvLocation);
+                                //if (!res.result)
+                                //{
+                                //    SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,OutboundFinishConfirmAsync 杩斿洖:{res.resMsg}";
+                                //    continue;
+                                //}
+                                //else
+                                //{
+                                //    Log4NetHelper.WriteInfoLog(logType, $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 鎴愬姛,OutboundFinishConfirmAsync锛屽弬鏁�: 绔欑偣{rgvLocation}");
+                                //}
 
-                                res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo));
+                              var  res = await client.WriteOutStoreTaskInfoAsync((int)EDevice.Station, rgvLocation, doTask.PlaceCode, Convert.ToInt32(doTask.TaskNo));
                                 if (!res.result)
                                 {
                                     SystemWarningMsg._lbl_alert_DataProcess_BZ39 = $"{rgvLocation.ToString()}-涓嬪彂鍑哄簱浠诲姟 澶辫触,WriteOutStoreTaskInfoAsync 杩斿洖:{res.resMsg}";
diff --git "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs" "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs"
index be10ec7..a6fe956 100644
--- "a/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/02_BZ39\345\267\245\344\275\215\357\274\210\350\241\245\346\235\277\345\220\216\345\267\245\344\275\215\357\274\211/Outbound/3\343\200\201DataProcess_RobotBuffer_FinishTaskForOutbound.cs"
@@ -25,8 +25,8 @@
                 Thread.Sleep(500);//浼戠湢2绉掞紝灏嗕紤鐪犲啓鍒板墠闈紝鏄负浜嗕笅闈㈢殑continue鏂规硶鎵ц鍚庝笉鏄剧ず閿欒淇℃伅鐨勬彁绀猴紒锛侊紒銆怑ditBy shaocx,2022-05-24銆�
                 SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = string.Empty;
                 try
-                {
-                    if (SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTaskForOutbound && SystemValue.isStartedModel)
+                {//SystemValue.isAllowRuning_DataProcess_RobotBuffer_FinishTaskForOutbound &&
+                    if (SystemValue.isStartedModel)
                     {
                         var rgvLocation = StationLocationEnum.BZ39.ToString();
                         var obj = FormCC.stationView.R_StationForReadCommList.Where(x => x.StationCode == rgvLocation.ToString()).FirstOrDefault();
@@ -53,11 +53,23 @@
                                 var task = wmsDB.wms_rbline_task.Where(x =>
                                  x.TaskNo == obj.R_Outbound_TaskID.ToString()
                                 && x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
-                                && x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�).FirstOrDefault();
+                                ).OrderByDescending(x => x.Id).FirstOrDefault();
                                 if (task == null)
                                 {
                                     SystemWarningMsg._lbl_Alert_DataProcess_RobotBuffer_FinishTaskForOutbound = $"{rgvLocation.ToString()},鏍规嵁 R_OutboundNumber:{obj.R_OutboundNumber}娌℃湁鎵惧埌宸蹭笅鍙戠殑浠诲姟 ";
                                     continue;
+                                }
+                                else
+                                {
+                                    if (task.TaskStatus == (int)TaskStatusEnum.宸插畬鎴�)
+                                    {
+                                        //using (StationServiceClient client = new StationServiceClient())
+                                        //{
+                                        //    var res = await client.OutboundFinishConfirmAsync((int)EDevice.Station, true, rgvLocation);
+                                        //}
+                                        continue;
+                                    }
+
                                 }
 
                                 var upiCode = task.UPI;
@@ -96,6 +108,10 @@
                                 wmsDB.SaveChanges();
                             }
                         }
+                        else
+                        {
+                
+                        }
                     }
                 }
                 catch (Exception ex)
diff --git "a/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs" "b/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs"
index 6543fb2..5778a5c 100644
--- "a/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs"
@@ -1,4 +1,5 @@
 锘縰sing Admin.NET.Application;
+using iWareCC.Common.Helper;
 using iWareCC.StationService;
 using iWareCommon.Common.Globle;
 using iWareCommon.Utils;
@@ -82,48 +83,48 @@
                                     SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()},鏍规嵁UPI:{result}娌℃湁鎵惧埌瀵硅薄 ";
                                     continue;
                                 }
-                                string upi = "LS070700101B0001GS";
-                                //璋冪敤鍑虹焊鏈烘帴鍙�
-                                var res =new HTTPService("http://172.17.1.22:44374/api/LuLi/").getContent<Respone>("cartons-machine?PackageCode="+upi, Guid.NewGuid(),10000);
-                                if (res.iState == 0)
-                                {
-                                    var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault();
-                                    if (papertable != null)
-                                    {
-                                        papertable.PushStatus = (int)PushStatusEnum.PushSuccess;
-                                        papertable.ApiMessage = res.message;
-                                        papertable.PushNum++;
-                                    }
-                                    else
-                                    {
-                                        var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj);
-                                        papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-                                        papercut.ApiMessage = res.message;
-                                        papercut.PushNum = 0;
-                                        papercut.PushStatus = (int)PushStatusEnum.PushSuccess;
-                                        wmsDB.mes_push_papercut.Add(papercut);
-                                    }
-                                }
-                                else
-                                {
-                                    var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault();
-                                    if (papertable != null)
-                                    {
-                                        papertable.PushStatus = (int)PushStatusEnum.PushFail;
-                                        papertable.ApiMessage = res.message;
-                                        papertable.PushNum++;
-                                    }
-                                    else
-                                    {
-                                        var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj);
-                                        papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId();
-                                        papercut.ApiMessage = res.message;
-                                        papercut.PushNum = 0;
-                                        papercut.PushStatus = (int)PushStatusEnum.PushFail;
-                                        wmsDB.mes_push_papercut.Add(papercut);
-                                    }
-                                    continue;
-                                }
+                                //string upi = "LS070700101B0001GS";
+                                ////璋冪敤鍑虹焊鏈烘帴鍙�
+                                //var res =new HTTPService("http://172.17.1.22:44374/api/LuLi/").getContent<Respone>("cartons-machine?PackageCode="+upi, Guid.NewGuid(),10000);
+                                //if (res.iState == 0)
+                                //{
+                                //    var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault();
+                                //    if (papertable != null)
+                                //    {
+                                //        papertable.PushStatus = (int)PushStatusEnum.PushSuccess;
+                                //        papertable.ApiMessage = res.message;
+                                //        papertable.PushNum++;
+                                //    }
+                                //    else
+                                //    {
+                                //        var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj);
+                                //        papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+                                //        papercut.ApiMessage = res.message;
+                                //        papercut.PushNum = 0;
+                                //        papercut.PushStatus = (int)PushStatusEnum.PushSuccess;
+                                //        wmsDB.mes_push_papercut.Add(papercut);
+                                //    }
+                                //}
+                                //else
+                                //{
+                                //    var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault();
+                                //    if (papertable != null)
+                                //    {
+                                //        papertable.PushStatus = (int)PushStatusEnum.PushFail;
+                                //        papertable.ApiMessage = res.message;
+                                //        papertable.PushNum++;
+                                //    }
+                                //    else
+                                //    {
+                                //        var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj);
+                                //        papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+                                //        papercut.ApiMessage = res.message;
+                                //        papercut.PushNum = 0;
+                                //        papercut.PushStatus = (int)PushStatusEnum.PushFail;
+                                //        wmsDB.mes_push_papercut.Add(papercut);
+                                //    }
+                                //    continue;
+                                //}
                                 //鏇存柊琛�
                                 var mesgather = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault();
                                 if (mesgather != null)
@@ -191,6 +192,7 @@
                                 print.PrintNum= 0;
                                 print.PrintStatus = (int)PrintStatuEnum.鏈墦鍗�;
                                 print.IsAllowPrint= true;
+                                print.CreateTime = print.UpdateTime = DateTime.Now;
                                 wmsDB.wms_record_print.Add(print);
                                 wms_record_print printtwo = print;
                                 printtwo.Id= Yitter.IdGenerator.YitIdHelper.NextId();
@@ -203,7 +205,7 @@
                                 //澶勭悊琛�  mes_order_gather
                                 var errmsg = "";
                                 var package = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault();
-                                var resultAlert = DataProcess_ValidateQiTao.HandlerOrderGather(wmsDB, package, "", "", out errmsg);
+                                var resultAlert = MyExtendHelper.HandlerOrderGather(wmsDB, package, "", "", out errmsg);
                                 if (resultAlert == false)
                                 {
                                     SystemWarningMsg._lbl_alert_DataProcess_BZ21 = errmsg;
diff --git "a/CC/iWareCC_ASRS/ThreadService/05_BZ30\050\351\275\220\345\245\227\351\252\214\350\257\201\051/DataProcess_ValidateQiTao.cs" "b/CC/iWareCC_ASRS/ThreadService/05_BZ30\050\351\275\220\345\245\227\351\252\214\350\257\201\051/DataProcess_ValidateQiTao.cs"
index 9757dee..a88ad98 100644
--- "a/CC/iWareCC_ASRS/ThreadService/05_BZ30\050\351\275\220\345\245\227\351\252\214\350\257\201\051/DataProcess_ValidateQiTao.cs"
+++ "b/CC/iWareCC_ASRS/ThreadService/05_BZ30\050\351\275\220\345\245\227\351\252\214\350\257\201\051/DataProcess_ValidateQiTao.cs"
@@ -105,7 +105,7 @@
 
                             //澶勭悊琛�  mes_order_gather
                             var errmsg = "";
-                            var result = HandlerOrderGather(wmsDB, package, qitaoValue, _UnlinePerson, out errmsg);
+                            var result = MyExtendHelper.HandlerOrderGather(wmsDB, package, qitaoValue, _UnlinePerson, out errmsg);
                             if (result == false)
                             {
                                 SystemWarningMsg._lbl_Alert_DataProcess_ValidateQiTao = errmsg;
@@ -136,86 +136,6 @@
             }
         }
 
-        /// <summary>
-        /// 澶勭悊 琛� mes_order_gather
-        /// </summary>
-        /// <param name="wmsDB"></param>
-        /// <param name="package"></param>
-        /// <param name="qitaoValue"></param>
-        /// <param name="_UnlinePerson"></param>
-        /// <param name="errMsg"></param>
-        /// <returns></returns>
-        public static bool HandlerOrderGather(WmsDBModel wmsDB, mes_package_gather package, string qitaoValue, string _UnlinePerson, out string errMsg)
-        {
-            errMsg = "";
-            //澶勭悊琛�  mes_order_gather
-            var isAddOrder = false;
-            var packageList = wmsDB.mes_package_gather.Where(x => x.Info5 == package.Info5).ToList();
-            if (packageList == null || packageList?.Count == 0)
-            {
-                errMsg = $"娌℃湁鎵惧埌鐢熶骇鍗曞彿{package.Info5}鐨勬眹鎬绘暟鎹�";
-                return false;
-            }
-            var order = wmsDB.mes_order_gather.Where(x => x.Info5 == package.Info5).FirstOrDefault();
-            if (order != null)
-            {
-
-            }
-            else
-            {
-                order = new mes_order_gather()
-                {
-                    Id = Yitter.IdGenerator.YitIdHelper.NextId(),
-                    Info5 = package.Info5,
-                    OrderId = package.OrderId,
-                    PlanNo = package.PlanNo,
-                };
-                isAddOrder = true;
-            }
-            order.PackageNum = packageList.Count();
-            order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾�).Count();
-            order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum;
-
-            order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13));
-            order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾�).Sum(x => Convert.ToDecimal(x.Info13));
-            order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea;
-            order.IsKitting = qitaoValue == "榻愬" ? true : false;
-
-            var order_unLine = false;
-            //鏌ヨ涓嬩竴涓寘鏄笉鏄睘浜庤璁㈠崟
-            var newLineQueue = wmsDB.mes_package_linequeue.OrderBy(x => x.Id).FirstOrDefault();
-            if (newLineQueue != null && newLineQueue.Info5 != order.Info5)
-            {
-                //琛ㄧず鏄� 鍒囨崲 鏂拌鍗曚簡锛岃璁㈠崟瑕佹洿鏂颁负 宸蹭笅绾裤��
-                order_unLine = true;
-            }
-            else
-            {
-                //鍒ゆ柇璇ヨ鍗曟槸鍚﹀凡涓嬬嚎
-                if (order.PackageNum == order.UnLinePackageNum)
-                {
-                    order_unLine = true;
-                }
-            }
-            //鍒ゆ柇璇ヨ鍗曟槸鍚﹀凡涓嬬嚎
-            if (order_unLine)
-            {
-                order.IsUnline = true;
-                order.UnlineTime = DateTime.Now;
-                order.UnlinePerson = _UnlinePerson;
-            }
-            else
-            {
-                order.IsUnline = false;
-            }
-
-            if (isAddOrder)
-            {
-                wmsDB.mes_order_gather.Add(order);
-            }
-
-            return true;
-        }
-
+   
     }
 }
diff --git a/CC/iWareSql/DataAccess/TaskHandler.cs b/CC/iWareSql/DataAccess/TaskHandler.cs
index 5ac39ba..55ab793 100644
--- a/CC/iWareSql/DataAccess/TaskHandler.cs
+++ b/CC/iWareSql/DataAccess/TaskHandler.cs
@@ -18,14 +18,14 @@
         /// </summary>
         /// <param name="wmsDB"></param>
         /// <returns></returns>
-        public static bool ValidateIssueTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB)
+        public static bool ValidateIssueTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB,string UPI)
         {
             var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
                 && (
                   x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟
                   ||
                    x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
-                )
+                )&&x.UPI== UPI
               ).ToList();
 
             if (isExist?.Count() > 0)
@@ -34,7 +34,27 @@
             }
             return true;
         }
+        /// <summary>
+        /// 楠岃瘉 鏈哄櫒浜虹紦瀛樺矝鏄惁瀛樺湪宸蹭笅鍙戠殑浠诲姟
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns></returns>
+        public static bool ValidateIssueOutTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
+                && (
+                  x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟
+                  ||
+                   x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
+                ) 
+              ).ToList();
 
+            if (isExist?.Count() > 0)
+            {
+                return false;
+            }
+            return true;
+        }
         /// <summary>
         /// 楠岃瘉 鐮佹澘鏄惁鏈夋墽琛屼腑浠诲姟
         /// </summary>
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/Dto/UnlineForNGPackageInput.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/Dto/UnlineForNGPackageInput.cs
new file mode 100644
index 0000000..8ef7bca
--- /dev/null
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/Dto/UnlineForNGPackageInput.cs
@@ -0,0 +1,23 @@
+锘縰sing Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace Admin.NET.Application;
+
+
+public class UnlineForNGPackageInput
+{
+
+    /// <summary>
+    /// 鍖呰鍙�
+    /// </summary>
+    public virtual string PackageCode { get; set; }
+
+
+    /// <summary>
+    /// NG鍘熷洜
+    /// </summary>
+    public virtual string Reason { get; set; }
+
+}
+
+
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
index 9554f49..0de0c10 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -199,6 +199,51 @@
     }
 
 
+    /// <summary>
+    /// NG鍖呬笅绾�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [ApiDescriptionSettings(Name = "UnlineForNGPackage")]
+    [Description("WmsOperationTask/UnlineForNGPackage")]
+    public async Task UnlineForNGPackage(UnlineForNGPackageInput input)
+    {
+        //if (input == null)
+        //{
+        //    throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
+        //}
+        //if (string.IsNullOrEmpty(input.PackageCode))
+        //{
+        //    throw Oops.Oh("鍖呭彿涓嶈兘涓虹┖");
+        //}
+        //if (string.IsNullOrEmpty(input.Reason))
+        //{
+        //    throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖");
+        //}
+        //List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>();
+        //foreach (var item in input.PackageCodeList)
+        //{
+        //    var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync();
+        //    var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.榻愬寘寰呭嚭搴�).Count();
+        //    if (isExist > 0)
+        //    {
+        //        throw Oops.Oh($"鍖厈item}涓叾涓湁鏉跨姸鎬佹槸'{StockStatusEnum.榻愬寘寰呭嚭搴�.ToString()}'锛屼笉鍏佽寮哄埗鍑哄簱");
+        //    }
+
+        //    鏇存柊鐘舵��
+        //    foreach (var quan in quanList)
+        //    {
+        //        quan.StockStatus = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�;
+        //        quan.UpdateTime = DateTime.Now;
+        //        quan.OperReason = "浜哄伐寮哄埗寰呭嚭搴�";
+        //    }
+        //    updateQuanList.AddRange(quanList);
+        //}
+
+        //await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList);
+
+    }
 
 }
 
diff --git a/SDA/iWareSda/App.config b/SDA/iWareSda/App.config
index 98ac5e6..6cc8c0b 100644
--- a/SDA/iWareSda/App.config
+++ b/SDA/iWareSda/App.config
@@ -4,8 +4,8 @@
     <!-- 璇█閰嶇疆 閰嶇疆  0 涓枃 1 鑻辨枃 -->
     <add key="LanguageFlg" value="0"/>
     <!-- 绔欑偣鐨凱LC 閰嶇疆 -->
-	  <!--<add key="Station_Address" value="172.17.51.202"/> -->
-     <add key="Station_Address" value="192.168.10.100"/>
+	  <add key="Station_Address" value="172.17.51.202"/> 
+     <!--<add key="Station_Address" value="192.168.10.100"/>-->
     <add key="Station_Rack" value="0"/>
     <add key="Station_Slot" value="1"/>
     <add key="Station_Port" value="102"/>
diff --git a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
index 99a3dab..90dac1a 100644
--- a/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
+++ b/SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -278,28 +278,32 @@
                     return false;
                 }
 
+                if (value)
+                {
+                    b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, false, view_stationObj.W_ReqOut);
+                    if (!b2.result)
+                    {
+                        msg = string.Format("鍚慡tation W_ReqOut 鍦板潃{0} 鍐�  " + false + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                            stationObj.W_ReqOut);
+                        return false;
+                    }
+                    b2 = this.plcService.WriteValuePoint(stationObj.W_Destination_Out, 0, view_stationObj.W_Destination_Out);
+                    if (!b2.result)
+                    {
+                        msg = string.Format("鍚慡tation W_Destination_Out 鍦板潃{0} 鍐�  " + 0 + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                            stationObj.W_Destination_Out);
+                        return false;
+                    }
+                    b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, 0, view_stationObj.W_Outbound_TaskID);
+                    if (!b2.result)
+                    {
+                        msg = string.Format("鍚慡tation W_Outbound_TaskID 鍦板潃{0} 鍐�  " + 0 + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
+                            stationObj.W_Outbound_TaskID);
+                        return false;
+                    }
+                }
 
-                b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, false, view_stationObj.W_ReqOut);
-                if (!b2.result)
-                {
-                    msg = string.Format("鍚慡tation W_ReqOut 鍦板潃{0} 鍐�  " + false + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
-                        stationObj.W_ReqOut);
-                    return false;
-                }
-                b2 = this.plcService.WriteValuePoint(stationObj.W_Destination_Out, 0, view_stationObj.W_Destination_Out);
-                if (!b2.result)
-                {
-                    msg = string.Format("鍚慡tation W_Destination_Out 鍦板潃{0} 鍐�  " + 0 + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
-                        stationObj.W_Destination_Out);
-                    return false;
-                }
-                b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, 0, view_stationObj.W_Outbound_TaskID);
-                if (!b2.result)
-                {
-                    msg = string.Format("鍚慡tation W_Outbound_TaskID 鍦板潃{0} 鍐�  " + 0 + "澶辫触,杩斿洖缁撴灉:" + b2.resMsg,
-                        stationObj.W_Outbound_TaskID);
-                    return false;
-                }
+
 
 
                 return true;

--
Gitblit v1.9.3