From 3571d8b2231e06e46774af86be502014d6974e1d Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 07 四月 2026 16:16:53 +0800
Subject: [PATCH] 优化ERP接收单据逻辑,一期领料变更逻辑修改

---
 项目资料/变更管理/龙利得项目需求变更确认书-20260327.doc                                     |    0 
 项目代码/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs      |   88 ++++++---
 项目代码/WMS/WMSServices/WIDESEA_InboundService/PurchaseOrderService.cs     |  100 +++++++----
 项目代码/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs        |    4 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs      |   25 ++
 项目代码/BigScreen/src/views/index.vue                                      |   32 +-
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs          |   11 +
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPH.cs        |    5 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs     |   10 
 项目资料/变更管理/龙利得项目需求变更确认书-20260401.doc                                     |    0 
 项目代码/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs   |    5 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs  |  186 ++++++++++----------
 项目代码/WMS/WMSServices/WIDESEA_External/Model/BSTProInResponse.cs         |   66 +++++++
 项目资料/变更管理/龙利得项目需求变更确认书-20260402.doc                                     |    0 
 项目资料/变更管理/龙利得项目需求变更确认书-20260323 .doc                                    |    0 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_ReturnOutOrder.cs |    1 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs    |    3 
 17 files changed, 336 insertions(+), 200 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/index.vue"
index e8d5763..106ee5f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/BigScreen/src/views/index.vue"
@@ -173,10 +173,13 @@
                     // 1. 鎸夌焊鍗锋潯鐮佸垎缁�
                     const groupedData = {};
                     res.data.data.forEach((x) => {
-                        if (!groupedData[x.palletCode]) {
+                        console.log(x);
+                        if (x.taskNum) {
+                            if (!groupedData[x.palletCode]) {
                             groupedData[x.palletCode] = [];
+                            }
+                            groupedData[x.palletCode].push(x);
                         }
-                        groupedData[x.palletCode].push(x);
                     });
                     
                     // 2. 澶勭悊鏁版嵁锛氬皢姣忕粍鐩稿悓绾稿嵎鏉$爜鐨勮褰曞悎骞朵负涓�鏉�
@@ -196,7 +199,6 @@
                                 uniquePalletCodes.add(item.palletCode);
                             }
                         });
-                        this.showMsg = uniquePalletCodes.size;
                         
                         // 鐩存帴澶勭悊姣忔潯璁板綍锛屼笉杩涜鍒嗙粍
                         group.forEach((item) => {
@@ -216,26 +218,26 @@
                         
                         // 鍒涘缓鍚堝苟鍚庣殑鍗曟潯璁板綍
                         var item = [
-                            '<span style="color:#FF4500; font-size:85px;">' + palletCode + '</span>',
+                            '<span style="color:#FF4500; font-size:90px;">' + palletCode + '</span>',
                             //'<span style="color:#FF4500; font-size:55px;">' + orderNos + '</span>',
-                            '<span style="color:#FF4500; font-size:85px;">' + firstItem.materielCode + '</span>',
-                            '<span style="color:#FF4500; font-size:85px;">' + machineLastChar + '</span>',
-                            '<span style="color:#FF4500; font-size:85px;">' + materialWide + '</span>',
-                            '<span style="color:#FF4500; font-size:85px;;">' + originalQuantity + '</span>',
-                            '<span style="color:#FF4500; font-size:85px;">' + parseInt(totalOrderQuantity) + '</span>',
+                            '<span style="color:#FF4500; font-size:90px;">' + firstItem.materielCode + '</span>',
+                            '<span style="color:#FF4500; font-size:90px;">' + machineLastChar + '</span>',
+                            '<span style="color:#FF4500; font-size:90px;">' + materialWide + '</span>',
+                            '<span style="color:#FF4500; font-size:90px;;">' + originalQuantity + '</span>',
+                            '<span style="color:#FF4500; font-size:90px;">' + parseInt(totalOrderQuantity) + '</span>',
                         ];
                         arr.push(item);
                     });
                     if (this.IsDetail) {
                         this.config = {
                             header: [
-                            '<span style="font-size:63px;">绾稿嵎鏉$爜</span>',
+                            '<span style="font-size:68px;">绾稿嵎鏉$爜</span>',
                             //'<span style="font-size:50px;">宸ュ崟鍙�</span>',
-                            '<span style="font-size:63px;">浠g爜</span>',
-                            '<span style="font-size:63px;">涓婃満浣�</span>',
-                            '<span style="font-size:63px;">瀹藉箙</span>',
-                            '<span style="font-size:63px;">绾稿嵎闀�</span>',
-                            '<span style="font-size:63px;">闇�鐢ㄧ焊闀�</span>'
+                            '<span style="font-size:68px;">浠g爜</span>',
+                            '<span style="font-size:68px;">涓婃満浣�</span>',
+                            '<span style="font-size:68px;">瀹藉箙</span>',
+                            '<span style="font-size:68px;">绾稿嵎闀�</span>',
+                            '<span style="font-size:68px;">闇�鐢ㄧ焊闀�</span>'
                             ],
                             data: arr,
                             headerHeight: 60,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs"
index ce74bab..bfe700b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs"
@@ -41,7 +41,6 @@
             _stationMangerRepository = stationMangerRepository;
             _unitOfWorkManage = unitOfWorkManage;
         }
-        private static object lock_reqPackTask = new object();
         /// <summary>
         /// 鍒嗛厤鐮佸灈浠诲姟
         /// </summary>
@@ -50,106 +49,103 @@
         /// <returns></returns>
         public WebResponseContent ReqPackTask(string barCode,string deviceCode)
         {
-            lock (lock_reqPackTask)
+            WebResponseContent content = new WebResponseContent();
+            try
             {
-                WebResponseContent content = new WebResponseContent();
-                try
+                Dt_Packinfo packinfo = _packinfoRepository.QueryFirst(x => x.BarCode == barCode && x.PackStatus == StationOccupiedEnum.None.ObjToInt());
+                if (packinfo == null)
                 {
-                    Dt_Packinfo packinfo = _packinfoRepository.QueryFirst(x => x.BarCode == barCode && x.PackStatus == StationOccupiedEnum.None.ObjToInt());
-                    if (packinfo == null)
-                    {
-                        return content.Error($"鏈壘鍒版潯鐮亄barCode}");
-                    }
-                    List<Dt_StationPackInfo> stationPackInfos = _stationPackInfoRepository.Db.Queryable<Dt_StationPackInfo>().ToList();
-                    Dt_StationPackInfo? stationPackInfo = stationPackInfos.FirstOrDefault(x => x.PackType == packinfo.PackType && x.OrderNo == packinfo.OrderNo && x.AssignNum < x.PackNum);
-                    Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask();
-                    //濡傛灉璁㈠崟鐩稿悓銆佸灈鍨嬩竴鑷村苟涓斿垎閰嶆暟閲忓皯浜庣爜鍨涚粨鎵樻暟閲忓垯鍒嗛厤鍒颁竴璧�
-                    _unitOfWorkManage.BeginTran();
-                    if (stationPackInfo != null)
-                    {
-                        packaxisTask = new Dt_PackaxisTask()
-                        {
-                            DeviceCode = deviceCode,
-                            SourceAddress = "2421",
-                            BarCode = barCode,
-                            CurrentAddress = "2421",
-                            TargetAddress = stationPackInfo.StationCode,
-                            NextAddress = stationPackInfo.LineCode,
-                            TaskState = TaskStatusEnum.Line_Executing.ObjToInt(),
-                            PackLength = packinfo.Length,
-                            PackWidth = packinfo.Width,
-                            PackHeight = packinfo.Height,
-                            PackType = packinfo.PackType,
-                            Dispatchertime = DateTime.Now,
-                        };
-                        stationPackInfo.AssignNum += 1;
-                        stationPackInfo.ExecutingNum += 1;
-                        packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
-                        
-                        //鏇存柊鐮佸灈鎵ц宸ヤ綅
-                        _stationPackInfoRepository.UpdateData(stationPackInfo);
-                        //鏇存柊寰呯爜鍨涗俊鎭〃
-                        _packinfoRepository.UpdateData(packinfo);
-                        //娣诲姞鐮佸灈浠诲姟
-                        BaseDal.AddData(packaxisTask);
-                        
-                    }
-                    else//鍒嗛厤鏂板伐浣�
-                    {
-                        //鑾峰彇褰撳墠绌虹洏鍑嗗鐨勭爜鍨涘伐浣�
-                        List<string> stations = _stationMangerRepository.QueryData(x => x.StationDeviceCode == "CLC_CP" && x.IsOccupied == StationOccupiedEnum.None.ObjToInt()).Select(x => x.StationCode).ToList();
-                        //鑾峰彇鐮佸灈閰嶇疆琛ㄦ煡璇㈠彲鍒嗛厤骞跺凡閰嶇疆鐨勭爜鍨涘伐浣�
-                        List<Dt_Packaxis> packaxes = _packaxisRepository.Db.Queryable<Dt_Packaxis>().Where(x => x.PackType == packinfo.PackType && stations.Contains(x.StationCode)).ToList();
-                        if (packaxes.Count == 0)
-                        {
-                            return content.Error("鏈壘鍒板彲鍒嗛厤鐮佸灈閰嶇疆");
-                        }
-                        List<string> packStations = packaxes.Select(x => x.StationCode).ToList();
-                        Dt_StationPackInfo? packInfoAssign = stationPackInfos.Where(x => x.PackType == 0 && x.AssignNum == 0 && packStations.Contains(x.StationCode)).OrderBy(x => x.OrderIndex).FirstOrDefault();
-                        if (packInfoAssign == null)
-                        {
-                            return content.Error("鏈壘鍒板彲鍒嗛厤鍨涗綅");
-                        }
-                        packInfoAssign.PackType = packinfo.PackType;
-                        packInfoAssign.OrderNo = packinfo.OrderNo;
-                        packInfoAssign.MakeCode = packinfo.MakeCode;
-                        packInfoAssign.MaterielCode = packInfoAssign.MaterielCode;
-                        packInfoAssign.PackNum = packaxes.FirstOrDefault(x => x.StationCode == packInfoAssign.StationCode).PackNum;
-                        packaxisTask = new Dt_PackaxisTask()
-                        {
-                            DeviceCode = deviceCode,
-                            SourceAddress = "2421",
-                            BarCode = barCode,
-                            CurrentAddress = "2421",
-                            TargetAddress = packInfoAssign.StationCode,
-                            NextAddress = packInfoAssign.LineCode,
-                            TaskState = TaskStatusEnum.Line_Executing.ObjToInt(),
-                            PackLength = packinfo.Length,
-                            PackWidth = packinfo.Width,
-                            PackHeight = packinfo.Height,
-                            PackType = packinfo.PackType,
-                            Dispatchertime = DateTime.Now,
-                        };
-                        packInfoAssign.AssignNum += 1;
-                        packInfoAssign.ExecutingNum += 1;
-                        packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
-                        //鏇存柊鐮佸灈鎵ц宸ヤ綅
-                        _stationPackInfoRepository.UpdateData(packInfoAssign);
-                        //鏇存柊寰呯爜鍨涗俊鎭〃
-                        _packinfoRepository.UpdateData(packinfo);
-                        //娣诲姞鐮佸灈浠诲姟
-                        BaseDal.AddData(packaxisTask);
-                    }
-                    _unitOfWorkManage.CommitTran();
-                    return content.OK(barCode, packaxisTask);
+                    return content.Error($"鏈壘鍒版潯鐮亄barCode}");
                 }
-                catch (Exception ex)
+                List<Dt_StationPackInfo> stationPackInfos = _stationPackInfoRepository.Db.Queryable<Dt_StationPackInfo>().ToList();
+                Dt_StationPackInfo? stationPackInfo = stationPackInfos.FirstOrDefault(x => x.PackType == packinfo.PackType && x.OrderNo == packinfo.OrderNo && x.AssignNum < x.PackNum);
+                Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask();
+                //濡傛灉璁㈠崟鐩稿悓銆佸灈鍨嬩竴鑷村苟涓斿垎閰嶆暟閲忓皯浜庣爜鍨涚粨鎵樻暟閲忓垯鍒嗛厤鍒颁竴璧�
+                _unitOfWorkManage.BeginTran();
+                if (stationPackInfo != null)
                 {
-                    _unitOfWorkManage.RollbackTran();
-                    content.Error(ex.Message);
+                    packaxisTask = new Dt_PackaxisTask()
+                    {
+                        DeviceCode = deviceCode,
+                        SourceAddress = "2421",
+                        BarCode = barCode,
+                        CurrentAddress = "2421",
+                        TargetAddress = stationPackInfo.StationCode,
+                        NextAddress = stationPackInfo.LineCode,
+                        TaskState = TaskStatusEnum.Line_Executing.ObjToInt(),
+                        PackLength = packinfo.Length,
+                        PackWidth = packinfo.Width,
+                        PackHeight = packinfo.Height,
+                        PackType = packinfo.PackType,
+                        Dispatchertime = DateTime.Now,
+                    };
+                    stationPackInfo.AssignNum += 1;
+                    stationPackInfo.ExecutingNum += 1;
+                    packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
+
+                    //鏇存柊鐮佸灈鎵ц宸ヤ綅
+                    _stationPackInfoRepository.UpdateData(stationPackInfo);
+                    //鏇存柊寰呯爜鍨涗俊鎭〃
+                    _packinfoRepository.UpdateData(packinfo);
+                    //娣诲姞鐮佸灈浠诲姟
+                    BaseDal.AddData(packaxisTask);
+
                 }
-                return content;
+                else//鍒嗛厤鏂板伐浣�
+                {
+                    //鑾峰彇褰撳墠绌虹洏鍑嗗鐨勭爜鍨涘伐浣�
+                    List<string> stations = _stationMangerRepository.QueryData(x => x.StationDeviceCode == "CLC_CP" && x.IsOccupied == StationOccupiedEnum.None.ObjToInt()).Select(x => x.StationCode).ToList();
+                    //鑾峰彇鐮佸灈閰嶇疆琛ㄦ煡璇㈠彲鍒嗛厤骞跺凡閰嶇疆鐨勭爜鍨涘伐浣�
+                    List<Dt_Packaxis> packaxes = _packaxisRepository.Db.Queryable<Dt_Packaxis>().Where(x => x.PackType == packinfo.PackType && stations.Contains(x.StationCode)).ToList();
+                    if (packaxes.Count == 0)
+                    {
+                        return content.Error("鏈壘鍒板彲鍒嗛厤鐮佸灈閰嶇疆");
+                    }
+                    List<string> packStations = packaxes.Select(x => x.StationCode).ToList();
+                    Dt_StationPackInfo? packInfoAssign = stationPackInfos.Where(x => x.PackType == 0 && x.AssignNum == 0 && packStations.Contains(x.StationCode)).OrderBy(x => x.OrderIndex).FirstOrDefault();
+                    if (packInfoAssign == null)
+                    {
+                        return content.Error("鏈壘鍒板彲鍒嗛厤鍨涗綅");
+                    }
+                    packInfoAssign.PackType = packinfo.PackType;
+                    packInfoAssign.OrderNo = packinfo.OrderNo;
+                    packInfoAssign.MakeCode = packinfo.MakeCode;
+                    packInfoAssign.MaterielCode = packInfoAssign.MaterielCode;
+                    packInfoAssign.PackNum = packaxes.FirstOrDefault(x => x.StationCode == packInfoAssign.StationCode).PackNum;
+                    packaxisTask = new Dt_PackaxisTask()
+                    {
+                        DeviceCode = deviceCode,
+                        SourceAddress = "2421",
+                        BarCode = barCode,
+                        CurrentAddress = "2421",
+                        TargetAddress = packInfoAssign.StationCode,
+                        NextAddress = packInfoAssign.LineCode,
+                        TaskState = TaskStatusEnum.Line_Executing.ObjToInt(),
+                        PackLength = packinfo.Length,
+                        PackWidth = packinfo.Width,
+                        PackHeight = packinfo.Height,
+                        PackType = packinfo.PackType,
+                        Dispatchertime = DateTime.Now,
+                    };
+                    packInfoAssign.AssignNum += 1;
+                    packInfoAssign.ExecutingNum += 1;
+                    packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
+                    //鏇存柊鐮佸灈鎵ц宸ヤ綅
+                    _stationPackInfoRepository.UpdateData(packInfoAssign);
+                    //鏇存柊寰呯爜鍨涗俊鎭〃
+                    _packinfoRepository.UpdateData(packinfo);
+                    //娣诲姞鐮佸灈浠诲姟
+                    BaseDal.AddData(packaxisTask);
+                }
+                _unitOfWorkManage.CommitTran();
+                return content.OK(barCode, packaxisTask);
             }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
         }
         /// <summary>
         /// 鐮佸灈缁撴墭骞朵笂浼犵爜鍨涘伐浣嶇爜鍨涙槑缁嗘暟鎹�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 0afff24..7b23449 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -103,6 +103,17 @@
             }
         }
         private readonly static object lockerCompleted = new object();
+        public override WebResponseContent DeleteData(object[] keys)
+        {
+            int[] intKeys = keys.Select(x => Convert.ToInt32(x)).ToArray();
+            List<Dt_Task> tasks = BaseDal.QueryData(x=> intKeys.Contains(x.TaskId));
+            foreach (var task in tasks)
+            {
+                task.TaskState = TaskStatusEnum.Cancel.ObjToInt();
+                BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+            }
+            return WebResponseContent.Instance.OK();
+        }
         /// <summary>
         /// 浠诲姟瀹屾垚
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
index a03c18f..1c9a8c6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
@@ -158,6 +158,7 @@
                                                             }
                                                             #endregion
                                                         }
+                                                        Thread.Sleep(200);
                                                     }
                                                 }
                                                 else
@@ -171,7 +172,7 @@
                                     catch (Exception ex)
                                     {
                                         WriteInfo($"绾跨▼ {Thread.CurrentThread.ManagedThreadId}鍒嗗灈鍙�", $"寮傚父:{ex.Message}");
-                                        Thread.Sleep(1500);
+                                        Thread.Sleep(3000);
                                         shouldRestart = true;
                                     }
                                 }
@@ -236,7 +237,7 @@
                                     catch (Exception ex)
                                     {
                                         WriteInfo($"绾跨▼ {Thread.CurrentThread.ManagedThreadId}鐮佸灈鍙�", $"寮傚父:{ex.Message}");
-                                        Thread.Sleep(1500);
+                                        Thread.Sleep(3000);
                                         shouldRestart = true;
                                     }
                                 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs"
index e57f1b0..6ca6aaf 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Base/MaterielInfoService.cs"
@@ -159,9 +159,7 @@
                     Dt_MaterielInfo materielInfo = _mapper.Map<Dt_MaterielInfo>(eRPMaterialDTO);
                     materielInfo.WarehouseId = warehouse.WarehouseId;
                     materielInfo.Id = ExistMaterial.Id;
-                    _unitOfWorkManage.BeginTran();
                     BaseDal.UpdateData(materielInfo);
-                    _unitOfWorkManage.CommitTran();
                 }
                 else if (eRPMaterialDTO.OperateType == 3)
                 {
@@ -171,9 +169,7 @@
                     {
                         return content.Error($"鏇存柊鐗╂枡{eRPMaterialDTO.MaterielNo}涓嶅瓨鍦�");
                     }
-                    _unitOfWorkManage.BeginTran();
                     BaseDal.DeleteData(ExistMaterial);
-                    _unitOfWorkManage.CommitTran();
                 }
                 else
                 {
@@ -184,7 +180,6 @@
             }
             catch (Exception ex)
             {
-                _unitOfWorkManage.RollbackTran();
                 content.Error(ex.Message);
             }
             return content;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs"
index 01f191f..751dd31 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/SupplierInfoService.cs"
@@ -152,9 +152,7 @@
                     Dt_SupplierInfo supplierInfo = _mapper.Map<Dt_SupplierInfo>(eRPSupplierDTO);
                     supplierInfo.Id = ExistsupplierInfo.Id;
                     //鏇存柊
-                    _unitOfWorkManage.BeginTran();
                     BaseDal.UpdateData(supplierInfo);
-                    _unitOfWorkManage.CommitTran();
                 }
                 else if (eRPSupplierDTO.OperateType == 3)
                 {
@@ -164,9 +162,7 @@
                     {
                         return content.Error($"鏇存柊渚涘簲鍟唟eRPSupplierDTO.SupplierCode}涓嶅瓨鍦�");
                     }
-                    _unitOfWorkManage.BeginTran();
                     BaseDal.DeleteData(ExistsupplierInfo);
-                    _unitOfWorkManage.CommitTran();
                 }
                 else
                 {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTProInResponse.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTProInResponse.cs"
new file mode 100644
index 0000000..3c6cb15
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/Model/BSTProInResponse.cs"
@@ -0,0 +1,66 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_External.Model
+{
+    public class ResponseInfo
+    {
+        /// <summary>
+        /// 鍏ュ簱鐗╂枡鏉$爜鎬绘暟
+        /// </summary>
+        public int Total { get; set; }
+        /// <summary>
+        /// 鎴愬姛鏁�
+        /// </summary>
+        public int SuccessCount { get; set; }
+        /// <summary>
+        /// 澶辫触鏁�
+        /// </summary>
+        public int FailCount { get; set; }
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        public string Message { get; set; }
+        /// <summary>
+        /// 澶辫触璇︾粏淇℃伅
+        /// </summary>
+        public List<string> FailMessages { get; set; }
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        public string SuccessMsg { get; set; }
+    }
+    /// <summary>
+    /// 鎴愬搧杩斿洖淇℃伅
+    /// </summary>
+    public class BSTProInResponse
+    {
+        /// <summary>
+        /// 杩斿洖鐮�
+        /// </summary>
+        public int Code { get; set; }
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        public string Message { get; set; }
+        /// <summary>
+        /// 璇︾粏淇℃伅
+        /// </summary>
+        public ResponseInfo Data { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public long Timestamp { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public long RequestTime { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public int ExecuteTime { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs"
index a615e70..26620b4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundOrderService.cs"
@@ -43,6 +43,10 @@
                 {
                     return content.Error("鍏ュ簱淇℃伅涓嶈兘浼犲叆涓虹┖");
                 }
+                if (eRPInboundOrderDTO.InboundDetail == null || eRPInboundOrderDTO.InboundDetail.Count <= 0)
+                {
+                    return content.Error("鍏ュ簱鏄庣粏淇℃伅涓嶈兘浼犲叆涓虹┖");
+                }
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == eRPInboundOrderDTO.WarehouseCode);
                 if (warehouse == null)
                 {
@@ -79,7 +83,7 @@
                         }
                         if (inboundOrderDetailsOld.FirstOrDefault(t=>t.BarCode==x.BarCode)!=null)
                         {
-                            throw new Exception($"鍏ュ簱鍗晎inboundOrder.UpperOrderNo}{x.MaterialCode}鏉$爜{x.BarCode}宸插瓨鍦�");
+                            throw new Exception($"鍏ュ簱鍗晎inboundOrder.UpperOrderNo}鏉$爜{x.BarCode}宸插瓨鍦�");
                         }
                         x.MaterialName = materielInfo?.MaterielName;
                         x.Unit = materielInfo?.MaterielUnit;
@@ -89,39 +93,57 @@
                     inboundOrder.WarehouseId = warehouse.WarehouseId;
                     //鏂板
                     BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
-
                 }
-                //else if (eRPPurchaseOrderDTO.OperateType == 2)
-                //{
-                //    //鍒ゆ柇鏄惁瀛樺湪
-                //    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
-                //    if (userInfoOld == null)
-                //    {
-                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}涓嶅瓨鍦�");
-                //    }
-                //    Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO);
-                //    userInfo.Id = userInfoOld.Id;
-                //    Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code);
-                //    if (userInfoOld == null)
-                //    {
-                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}锛學MS璐﹀彿涓嶅瓨鍦�");
-                //    }
-                //    user.Enable = (byte)userInfo.State;
-                //    user.UserTrueName = userInfo.Name;
-                //    //鏇存柊
-                //    BaseDal.UpdateData(userInfo);
-                //    _userRepository.UpdateData(user);
-                //}
-                //else if (eRPPurchaseOrderDTO.OperateType == 3)
-                //{
-                //    //鍒ゆ柇鏄惁瀛樺湪
-                //    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
-                //    if (userInfoOld == null)
-                //    {
-                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}涓嶅瓨鍦�");
-                //    }
-                //    BaseDal.DeleteData(userInfoOld);
-                //}
+                else if (eRPInboundOrderDTO.OperateType == 2)
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    Dt_InboundOrder? inboundOrderOld = inboundOrdersOld.FirstOrDefault(x => x.UpperOrderNo == eRPInboundOrderDTO.InboundCode);
+                    if (inboundOrderOld == null)
+                    {
+                        return content.Error($"鍏ュ簱鍗曞崟鍙穥eRPInboundOrderDTO.InboundCode}淇℃伅涓嶅瓨鍦�");
+                    }
+                    if (inboundOrderOld.InboundOrderStatus != InOrderStatusEnum.鏈紑濮�.ObjToInt())
+                    {
+                        return content.Error($"鍏ュ簱鍗曞崟鍙穥inboundOrderOld.InboundOrderNo}鐘舵�佷负{(InOrderStatusEnum)inboundOrderOld.InboundOrderStatus}");
+                    }
+                    List<string> barCodesOld = inboundOrderOld.Details.Select(x => x.BarCode).ToList();
+                    List<Dt_InboundOrderDetail> inboundOrderDetails = eRPInboundOrderDTO.InboundDetail.Select(x => _mapper.Map<Dt_InboundOrderDetail>(x)).ToList();
+                    Dt_InboundOrder inboundOrder = _mapper.Map<Dt_InboundOrder>(eRPInboundOrderDTO);
+                    inboundOrderDetails.ForEach(x =>
+                    {
+                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode);
+                        if (warehouse.WarehouseCode == WarehouseEnum.LLDYL.ToString() && x.MaterialThick <= 0)
+                        {
+                            throw new Exception($"鐗╂枡{x.MaterialCode}鏉$爜{x.BarCode}鐩村緞闇�澶т簬0");
+                        }
+                        if (inboundOrderDetailsOld.FirstOrDefault(t => t.BarCode == x.BarCode) != null && !barCodesOld.Contains(x.BarCode))
+                        {
+                            throw new Exception($"鍏ュ簱鍗晎inboundOrder.UpperOrderNo}鏉$爜{x.BarCode}宸插瓨鍦�");
+                        }
+                        x.MaterialName = materielInfo?.MaterielName;
+                        x.Unit = materielInfo?.MaterielUnit;
+                        x.MaterialSpec = materielInfo.MaterielSpec;
+                    });
+                    inboundOrder.Details = inboundOrderDetails;
+                    inboundOrder.WarehouseId = warehouse.WarehouseId;
+                    //鏇存柊
+                    BaseDal.Db.UpdateNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
+                }
+                else if (eRPInboundOrderDTO.OperateType == 3)
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    Dt_InboundOrder? inboundOrderOld = inboundOrdersOld.FirstOrDefault(x => x.UpperOrderNo == eRPInboundOrderDTO.InboundCode);
+                    if (inboundOrderOld == null)
+                    {
+                        return content.Error($"鍏ュ簱鍗曞崟鍙穥eRPInboundOrderDTO.InboundCode}淇℃伅涓嶅瓨鍦�");
+                    }
+                    if (inboundOrderOld.InboundOrderStatus != InOrderStatusEnum.鏈紑濮�.ObjToInt())
+                    {
+                        return content.Error($"鍏ュ簱鍗曞崟鍙穥inboundOrderOld.InboundOrderNo}鐘舵�佷负{(InOrderStatusEnum)inboundOrderOld.InboundOrderStatus}");
+                    }
+                    //鍒犻櫎
+                    BaseDal.Db.DeleteNav(inboundOrderOld).Include(x => x.Details).ExecuteCommand();
+                }
                 else
                 {
                     return content.Error("鏈壘鍒版搷浣滅被鍨�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseOrderService.cs"
index ee38920..bef080a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/PurchaseOrderService.cs"
@@ -93,6 +93,10 @@
                 {
                     return content.Error("閲囪喘淇℃伅涓嶈兘浼犲叆涓虹┖");
                 }
+                if (eRPPurchaseOrderDTO.PurchaseInDetail == null || eRPPurchaseOrderDTO.PurchaseInDetail.Count <= 0)
+                {
+                    return content.Error("閲囪喘鏄庣粏淇℃伅涓嶈兘浼犲叆涓虹┖");
+                }
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==eRPPurchaseOrderDTO.WarehouseCode);
                 if (warehouse==null)
                 {
@@ -129,14 +133,18 @@
                     Dt_PurchaseOrder purchaseOrder = _mapper.Map<Dt_PurchaseOrder>(eRPPurchaseOrderDTO);
                     purchaseOrderDetails.ForEach(x =>
                     {
-                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode);
-                        if (materielInfo != null)
+                        if (warehouse.WarehouseCode == WarehouseEnum.LLDYL.ToString() && x.PurchaseDetailThickness <= 0)
                         {
-
+                            throw new Exception($"鐗╂枡{x.MaterialCode}鏉$爜{x.BarCode}鐩村緞闇�澶т簬0");
                         }
+                        if (purchaseOrderDetailsOld.FirstOrDefault(t => t.BarCode == x.BarCode) != null)
+                        {
+                            throw new Exception($"閲囪喘鍗曞崟鍙穥purchaseOrder.PurchaseOrderNo}鏉$爜{x.BarCode}宸插瓨鍦�");
+                        }
+                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode);
                         x.MaterielName = materielInfo?.MaterielName;
                         x.Unit = materielInfo?.MaterielUnit;
-                        x.MaterielSpec=  materielInfo?.MaterielSpec;
+                        x.MaterielSpec = materielInfo?.MaterielSpec;
                     });
                     purchaseOrder.Details = purchaseOrderDetails;
                     purchaseOrder.WarehouseId = warehouse.WarehouseId;
@@ -144,37 +152,57 @@
                     BaseDal.Db.InsertNav(purchaseOrder).Include(x=>x.Details).ExecuteCommand();
 
                 }
-                //else if (eRPPurchaseOrderDTO.OperateType == 2)
-                //{
-                //    //鍒ゆ柇鏄惁瀛樺湪
-                //    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
-                //    if (userInfoOld == null)
-                //    {
-                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}涓嶅瓨鍦�");
-                //    }
-                //    Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO);
-                //    userInfo.Id = userInfoOld.Id;
-                //    Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code);
-                //    if (userInfoOld == null)
-                //    {
-                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}锛學MS璐﹀彿涓嶅瓨鍦�");
-                //    }
-                //    user.Enable = (byte)userInfo.State;
-                //    user.UserTrueName = userInfo.Name;
-                //    //鏇存柊
-                //    BaseDal.UpdateData(userInfo);
-                //    _userRepository.UpdateData(user);
-                //}
-                //else if (eRPPurchaseOrderDTO.OperateType == 3)
-                //{
-                //    //鍒ゆ柇鏄惁瀛樺湪
-                //    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
-                //    if (userInfoOld == null)
-                //    {
-                //        return content.Error($"鏇存柊宸ュ彿{eRPUserInfoDTO.StaffCode}锛屽憳宸eRPUserInfoDTO.StaffName}涓嶅瓨鍦�");
-                //    }
-                //    BaseDal.DeleteData(userInfoOld);
-                //}
+                else if (eRPPurchaseOrderDTO.OperateType == 2)
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    Dt_PurchaseOrder? purchaseOrderOld = purchaseOrdersOld.FirstOrDefault(x => x.PurchaseOrderNo == eRPPurchaseOrderDTO.PurchaseInCode);
+                    if (purchaseOrderOld == null)
+                    {
+                        return content.Error($"閲囪喘鍗曞崟鍙穥eRPPurchaseOrderDTO.PurchaseInCode}淇℃伅涓嶅瓨鍦�");
+                    }
+                    if (purchaseOrderOld.PurchaseOrderStatus != InOrderStatusEnum.鏈紑濮�.ObjToInt())
+                    {
+                        return content.Error($"閲囪喘鍗曞崟鍙穥purchaseOrderOld.PurchaseOrderNo}鐘舵�佷负{(InOrderStatusEnum)purchaseOrderOld.PurchaseOrderStatus}");
+                    }
+                    List<string> barCodesOld = purchaseOrderOld.Details.Select(x => x.BarCode).ToList();
+                    List<Dt_PurchaseOrderDetail> purchaseOrderDetails = eRPPurchaseOrderDTO.PurchaseInDetail.Select(x => _mapper.Map<Dt_PurchaseOrderDetail>(x)).ToList();
+                    Dt_PurchaseOrder purchaseOrder = _mapper.Map<Dt_PurchaseOrder>(eRPPurchaseOrderDTO);
+                    purchaseOrder.Id = purchaseOrderOld.Id;
+                    purchaseOrderDetails.ForEach(x =>
+                    {
+                        if (warehouse.WarehouseCode == WarehouseEnum.LLDYL.ToString() && x.PurchaseDetailThickness <= 0)
+                        {
+                            throw new Exception($"鐗╂枡{x.MaterialCode}鏉$爜{x.BarCode}鐩村緞闇�澶т簬0");
+                        }
+                        if (purchaseOrderDetailsOld.FirstOrDefault(t => t.BarCode == x.BarCode) != null && !barCodesOld.Contains(x.BarCode))
+                        {
+                            throw new Exception($"閲囪喘鍗曞崟鍙穥purchaseOrder.PurchaseOrderNo}鏉$爜{x.BarCode}宸插瓨鍦�");
+                        }
+                        Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode);
+                        x.MaterielName = materielInfo?.MaterielName;
+                        x.Unit = materielInfo?.MaterielUnit;
+                        x.MaterielSpec = materielInfo?.MaterielSpec;
+                    });
+                    purchaseOrder.Details = purchaseOrderDetails;
+                    purchaseOrder.WarehouseId = warehouse.WarehouseId;
+                    //鏇存柊
+                    BaseDal.Db.UpdateNav(purchaseOrder).Include(x => x.Details).ExecuteCommand();
+                }
+                else if (eRPPurchaseOrderDTO.OperateType == 3)
+                {
+                    //鍒ゆ柇鏄惁瀛樺湪
+                    Dt_PurchaseOrder? purchaseOrderOld = purchaseOrdersOld.FirstOrDefault(x => x.PurchaseOrderNo == eRPPurchaseOrderDTO.PurchaseInCode);
+                    if (purchaseOrderOld == null)
+                    {
+                        return content.Error($"閲囪喘鍗曞崟鍙穥eRPPurchaseOrderDTO.PurchaseInCode}淇℃伅涓嶅瓨鍦�");
+                    }
+                    if (purchaseOrderOld.PurchaseOrderStatus != InOrderStatusEnum.鏈紑濮�.ObjToInt())
+                    {
+                        return content.Error($"閲囪喘鍗曞崟鍙穥purchaseOrderOld.PurchaseOrderNo}鐘舵�佷负{(InOrderStatusEnum)purchaseOrderOld.PurchaseOrderStatus}");
+                    }
+                    //鍒犻櫎
+                    BaseDal.Db.DeleteNav(purchaseOrderOld).Include(x => x.Details).ExecuteCommand();
+                }
                 else
                 {
                     return content.Error("鏈壘鍒版搷浣滅被鍨�");
@@ -223,7 +251,7 @@
                     Dt_ReturnOutOrder? returnOutOrderOld = returnOutOrdersOld.FirstOrDefault(x => x.ReturnNo == eRPReturnOrderDTO.ReturnCode);
                     if (returnOutOrderOld != null)
                     {
-                        return content.Error($"閫�璐�   鍗曞彿{returnOutOrderOld.ReturnNo}淇℃伅宸插瓨鍦�");
+                        return content.Error($"閫�璐у崟鍙穥returnOutOrderOld.ReturnNo}淇℃伅宸插瓨鍦�");
                     }
                     List<Dt_ReturnOutOrderDetail> returnOutOrderDetails = eRPReturnOrderDTO.ReturnDetail.Select(x => _mapper.Map<Dt_ReturnOutOrderDetail>(x)).ToList();
                     Dt_ReturnOutOrder returnOutOrderAdd = _mapper.Map<Dt_ReturnOutOrder>(eRPReturnOrderDTO);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_ReturnOutOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_ReturnOutOrder.cs"
index 07bb9e8..40bbf1f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_ReturnOutOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_ReturnOutOrder.cs"
@@ -53,7 +53,6 @@
         [SugarColumn(IsNullable = false, ColumnDescription = "閫�鏂欏崟鍏ュ簱鐘舵��")]
         public int ReturnOrderStatus { get; set; }
 
-
         /// <summary>
         /// 澶囨敞
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs"
index c14c34e..dc34604 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutLineViewService.cs"
@@ -60,9 +60,28 @@
             try
             {
                 //鑾峰彇褰撳墠鑰佸巶缂撳瓨鎵�鏈夌焊鍗蜂俊鎭�
-                List<Dt_OutLineView> outLineViews = BaseDal.QueryData();
-                List<Dt_OutLineView> outLineViewsAdd = outStockLockInfos.Select(x => _mapper.Map<Dt_OutLineView>(x)).ToList();
-                BaseDal.AddData(outLineViewsAdd);
+                //List<Dt_OutLineView> outLineViews = BaseDal.QueryData();
+                //List<Dt_OutLineView> outLineViewsAdd = outStockLockInfos.Select(x => _mapper.Map<Dt_OutLineView>(x)).ToList();
+                //BaseDal.AddData(outLineViewsAdd);
+                List<Dt_OutLineView> outLineViews = BaseDal.QueryData(x => x.TaskNum != null);
+                int? outLineCount = outLineViews?.Select(x => x.PalletCode).Distinct().Count();
+                if (outLineViews == null || outLineViews.Count <= 0 || outLineCount <= 2)
+                {
+                    List<Dt_OutLineView> outLineViewsAdd = outStockLockInfos.Select(x => _mapper.Map<Dt_OutLineView>(x)).ToList();
+                    BaseDal.AddData(outLineViewsAdd);
+                }
+                else
+                {
+                    string? code = outLineViews.FirstOrDefault()?.PalletCode;
+                    List<Dt_OutLineView> outLineViewsUpdate = outLineViews.Where(x => x.PalletCode == code).ToList();
+                    outLineViewsUpdate.ForEach(x =>
+                    {
+                        x.TaskNum = null;
+                    });
+                    List<Dt_OutLineView> outLineViewsAdd = outStockLockInfos.Select(x => _mapper.Map<Dt_OutLineView>(x)).ToList();
+                    BaseDal.UpdateData(outLineViewsUpdate);
+                    BaseDal.AddData(outLineViewsAdd);
+                }
                 content.OK("鎴愬姛");
             }
             catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 1b3794c..7ec02fc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -1073,7 +1073,7 @@
                             }
                             proInUpModel.PB_INV_PRODUCT_IN= pRODUCT_INItems;
                             string request = _invokeERPService.ERPProInUp(proInUpModel) ?? throw new Exception("鎴愬搧鍏ュ簱鎺ュ彛璇锋眰澶辫触");
-                            if (!request.Contains("Success"))
+                            if (!request.Contains("success"))
                             {
                                 throw new Exception($"鎴愬搧鍏ュ簱澶辫触");
                             }
@@ -1960,7 +1960,7 @@
                     string request = _invokeERPService.ERPSemiProInUp(
                             new ERPProInUpModel()
                             {
-                                PB_INV_PRODUCT_IN= pRODUCT_INItems
+                                PB_INV_PRODUCT_IN = pRODUCT_INItems
                             }) ?? throw new Exception("鍗婃垚鍝佸叆搴撴帴鍙h姹傚け璐�");
                     //鐢熸垚鍗婃垚鍝佸叆搴�
                     List<Dt_MESProInOrderInfo> semiProInOrderInfos = mESProInOrderInfos.Where(x => x.MESProInStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt() && x.WarehouseId==WarehouseEnum.LLDYL.ObjToInt()).ToList();
@@ -2012,7 +2012,6 @@
                 {
                     return content.Error("浼犲叆淇℃伅涓虹┖");
                 }
-                
                 List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData();
                 List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
                 List<Dt_Task> tasks = new List<Dt_Task>();
@@ -2089,10 +2088,11 @@
                         nameof(StationAreaEnum.涓�妤煎嵃鍒�) => TaskTypeEnum.PrintYLInbound,
                         nameof(StationAreaEnum.涓�妤煎垎鍒�) => TaskTypeEnum.PartOffInbound,
                         nameof(StationAreaEnum.涓�妤肩焊寮犳穻鑶�) => TaskTypeEnum.PaperFilmInbound,
-                        nameof(StationAreaEnum.涓�妤兼棤绾烘穻鑶�) => TaskTypeEnum.WFBYLInbound,
+                        nameof(StationAreaEnum.涓�妤兼棤绾虹粐甯�) => TaskTypeEnum.WFBYLInbound,
+                        nameof(StationAreaEnum.涓�妤兼棤绾烘穻鑶�) => TaskTypeEnum.WFBLMYLInbound,
                         _ => throw new Exception("鏈壘鍒板搴斾换鍔�")
                     };
-                    if (taskTypeEnum == TaskTypeEnum.WFBYLInbound)
+                    if (taskTypeEnum == TaskTypeEnum.WFBYLInbound || taskTypeEnum == TaskTypeEnum.WFBLMYLInbound)
                     {
                         Dt_AGVStationInfo? stationInfo = AssignWFBStation(_AGVStationInfos?.Select(x => x.AGVStationCode).ToList()) ?? throw new Exception("鏈壘鍒板彲鐢ㄦ棤绾哄竷鏆傚瓨鏋�");
                         newTask.NextAddress = stationInfo.AGVStationCode;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 2128eda..f97e01a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -902,7 +902,7 @@
                 #region 棰嗘枡閫昏緫
                 foreach (var item in stockInfos)
                 {
-                    if (item.StockStatus==StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt() || item.StockStatus==StockStatusEmun.鑰佸巶閫�鏂欐殏瀛�.ObjToInt())
+                    if (item.StockStatus==StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt() || item.StockStatus == StockStatusEmun.鑰佸巶閫�鏂欐殏瀛�.ObjToInt())
                     {
                         item.StockLength = 0;
                         item.MaterielWeight = 0;
@@ -1177,6 +1177,7 @@
             }
             catch (Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
                 content.Error(ex.Message);
             }
             return content;
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260323 .doc" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260323 .doc"
index 9595218..ceeaf7b 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260323 .doc"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260323 .doc"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260327.doc" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260327.doc"
index df73023..4650fcb 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260327.doc"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260327.doc"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260401.doc" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260401.doc"
new file mode 100644
index 0000000..f46ee08
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260401.doc"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260402.doc" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260402.doc"
new file mode 100644
index 0000000..b452c4b
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\345\217\230\346\233\264\347\256\241\347\220\206/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\351\234\200\346\261\202\345\217\230\346\233\264\347\241\256\350\256\244\344\271\246-20260402.doc"
Binary files differ

--
Gitblit v1.9.3