From 5c272c606bdf2da3577dbaa5f48d0ee163f1e7d2 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 26 三月 2026 10:35:24 +0800
Subject: [PATCH] 纸张淋膜半成品入库逻辑优化

---
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs |   52 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 10 deletions(-)

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 d343c54..ce74bab 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"
@@ -15,6 +15,7 @@
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_IPackInfoRepository;
 using WIDESEAWCS_ITaskInfoRepository;
@@ -59,12 +60,14 @@
                     {
                         return content.Error($"鏈壘鍒版潯鐮亄barCode}");
                     }
-                    List<Dt_StationPackInfo> stationPackInfos = _stationPackInfoRepository.QueryData();
+                    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)
                     {
-                        Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask()
+                        packaxisTask = new Dt_PackaxisTask()
                         {
                             DeviceCode = deviceCode,
                             SourceAddress = "2421",
@@ -82,22 +85,21 @@
                         stationPackInfo.AssignNum += 1;
                         stationPackInfo.ExecutingNum += 1;
                         packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
-                        _unitOfWorkManage.BeginTran();
+                        
                         //鏇存柊鐮佸灈鎵ц宸ヤ綅
                         _stationPackInfoRepository.UpdateData(stationPackInfo);
                         //鏇存柊寰呯爜鍨涗俊鎭〃
                         _packinfoRepository.UpdateData(packinfo);
                         //娣诲姞鐮佸灈浠诲姟
                         BaseDal.AddData(packaxisTask);
-                        _unitOfWorkManage.CommitTran();
-                        return content.OK(barCode, 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.QueryData(x => x.PackType == packinfo.PackType && stations.Contains(x.StationCode));
+                        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("鏈壘鍒板彲鍒嗛厤鐮佸灈閰嶇疆");
@@ -113,7 +115,7 @@
                         packInfoAssign.MakeCode = packinfo.MakeCode;
                         packInfoAssign.MaterielCode = packInfoAssign.MaterielCode;
                         packInfoAssign.PackNum = packaxes.FirstOrDefault(x => x.StationCode == packInfoAssign.StationCode).PackNum;
-                        Dt_PackaxisTask packaxisTask = new Dt_PackaxisTask()
+                        packaxisTask = new Dt_PackaxisTask()
                         {
                             DeviceCode = deviceCode,
                             SourceAddress = "2421",
@@ -131,16 +133,15 @@
                         packInfoAssign.AssignNum += 1;
                         packInfoAssign.ExecutingNum += 1;
                         packinfo.PackStatus = StationOccupiedEnum.Sure.ObjToInt();
-                        _unitOfWorkManage.BeginTran();
                         //鏇存柊鐮佸灈鎵ц宸ヤ綅
                         _stationPackInfoRepository.UpdateData(packInfoAssign);
                         //鏇存柊寰呯爜鍨涗俊鎭〃
                         _packinfoRepository.UpdateData(packinfo);
                         //娣诲姞鐮佸灈浠诲姟
                         BaseDal.AddData(packaxisTask);
-                        _unitOfWorkManage.CommitTran();
-                        return content.OK(barCode, packaxisTask);
                     }
+                    _unitOfWorkManage.CommitTran();
+                    return content.OK(barCode, packaxisTask);
                 }
                 catch (Exception ex)
                 {
@@ -251,6 +252,37 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+        /// <summary>
+        /// 鍒犻櫎鐮佸灈浠诲姟淇℃伅
+        /// </summary>
+        /// <param name="packTaskNum"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public WebResponseContent PickaixsTaskDele(int PackTaskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                    Dt_PackaxisTask packaxisTask = BaseDal.QueryFirst(x => x.PackTaskNum == PackTaskNum);
+                    if(packaxisTask == null)
+                    {
+                        return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔�");
+                    }
+                    else 
+                    {
+                        Dt_Packinfo packinfo = _packinfoRepository.QueryFirst(x => x.BarCode == packaxisTask.BarCode);
+                        packinfo.PackStatus = 0;
+                        _packinfoRepository.UpdateData(packinfo);
+                        BaseDal.DeleteAndMoveIntoHty(packaxisTask, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐鍒犻櫎);
+                      content.Status = true;
+                    }
+            }
+            catch (Exception e)
+            {
+                return WebResponseContent.Instance.Error(e.Message);
+            }
+            return content;
+        }
     }
     public class MDCount
     {

--
Gitblit v1.9.3