From 4a68e02a9dbffe0b215ceb1d9758ccb17329e523 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 18 12月 2024 10:49:30 +0800
Subject: [PATCH] 222

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs |  169 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 108 insertions(+), 61 deletions(-)

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 05fade2..66c1fd6 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -29,6 +29,7 @@
     private readonly SqlSugarRepository<Mes_Upi_LineQueue> _mes_Upi_LineQueueRep;
     private readonly SqlSugarRepository<Mes_Package_LineQueue> _mes_Package_LineQueueRep;
     private readonly SqlSugarRepository<WmsRecordUpiNg> _wmsRecordUpiNgRep;
+    private readonly SqlSugarRepository<Mes_Package_UnLine_Record> _mes_Package_UnLine_RecordRep;
     private readonly WmsCommonnQueryService _wmsCommonnQueryService;
 
     public WmsOperationTaskService(
@@ -43,6 +44,7 @@
         , SqlSugarRepository<WmsRecordUpiNg> wmsRecordUpiNgRep
         , WmsCommonnQueryService wmsCommonnQueryService
         , SqlSugarRepository<Mes_Package_LineQueue> mes_Package_LineQueueRep
+        , SqlSugarRepository<Mes_Package_UnLine_Record> mes_Package_UnLine_RecordRep
         )
     {
         _mes_Package_LineQueueRep = mes_Package_LineQueueRep;
@@ -57,6 +59,7 @@
         _wmsRecordUpiProcessRep = wmsRecordUpiProcessRep;
         _wmsRecordPackageProcessRep = wmsRecordPackageProcessRep;
         _mes_Upi_LineQueueRep = mes_Upi_LineQueueRep;
+        _mes_Package_UnLine_RecordRep = mes_Package_UnLine_RecordRep;
     }
 
 
@@ -216,7 +219,7 @@
     }
 
     /// <summary>
-    /// 鍒ゆ柇榻愬
+    /// 涓嬬嚎鏀捐
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
@@ -238,81 +241,55 @@
             throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�");
         }
 
-
-
-        var sysConfig = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.WmsBZ30_QiTao);
-        if (sysConfig == null)
+        if (package.UpiStatus == UpiStatusEnum.宸蹭笅绾�)
         {
-            throw Oops.Oh($"娌℃湁閰嶇疆 鍒ゆ柇榻愬 鍊�");
-        }
-        if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value.Trim() != "鏃�")
-        {
-            throw Oops.Oh($"鍒ゆ柇榻愬鍊煎凡缁忓瓨鍦ㄥ�納sysConfig.Value},涓嶅厑璁告搷浣�");
+            throw Oops.Oh($"鍖厈input.PackageCode}宸蹭笅绾�");
         }
 
-        //璁板綍宸ヤ綔鏃堕棿鍜屽伐浣滀汉
-        var curUserName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+        var unlineObj = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
+        if (unlineObj != null)
+        {
+            throw Oops.Oh($"鍖呭彿{input.PackageCode}宸茬粡涓嬬嚎");
+        }
 
-        var setValue = "";
+        //鍒ゆ柇鏄惁鏄柊鐢熶骇璁㈠崟
         var _QiTaoReuslt = "";
-
-        bool isNeedQueryQiTao = true;
-        var order = await _mesOrderGatherRep.AsQueryable().Where(x => x.Info5 == package.Info5).FirstAsync();
-        if (order == null)
-        {
-
+        bool isNewOrder = false;
+        string _location = "BZ-33";
+        var lastPackageUnline = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.UpiFlag == UpiFlagEnum.姝e父).OrderByDescending(x => x.Id).FirstAsync();
+        if (lastPackageUnline == null)
+        {//璁や负鏄柊鐢熶骇璁㈠崟
+            isNewOrder = true;
         }
         else
         {
-            if (order.IsKitting != null)
-            {
-                _QiTaoReuslt = (bool)order.IsKitting ? "榻愬" : "涓嶉綈濂�";
-                isNeedQueryQiTao = false;
-            }
-        }
-        if (isNeedQueryQiTao)
-        {
-            var other_orderList = await _mesPackageGatherRep.AsQueryable().Where(x => x.Info5 == package.Info5 && x.PackageCode != input.PackageCode).ToListAsync();
-            var num = other_orderList.Where(x => x.UpiStatus == UpiStatusEnum.鍒濆).Count();
-            if (num > 0)
-            {
-                //涓嶉綈濂�
-                _QiTaoReuslt = "涓嶉綈濂�";
+            if (lastPackageUnline.Info5 != package.Info5)
+            {//璁や负鏄柊鐢熶骇璁㈠崟
+                isNewOrder = true;
+                if (lastPackageUnline.Location == "BZ-33")
+                {
+                    _location = "BZ-32";
+                }
+                else
+                {
+                    _location = "BZ-33";
+                }
             }
             else
             {
-                _QiTaoReuslt = "榻愬";
+                _location = lastPackageUnline.Location;
             }
         }
-        setValue = $"{input.PackageCode}|{_QiTaoReuslt}|" + curUserName;
-
-        if (package.UpiStatus == UpiStatusEnum.宸蹭笅绾�)
-        {
-            throw Oops.Oh($"鍖呭凡涓嬬嚎,榻愬缁撴灉[{_QiTaoReuslt}]");
+        if (string.IsNullOrEmpty(_location))
+        {//榛樿
+            _location = "BZ-33";
         }
 
-        if (order == null)
-        {
-            Mes_Order_Gather newOrder = new Mes_Order_Gather()
-            {
-                Info5 = package.Info5,
-                IsKitting = _QiTaoReuslt == "榻愬" ? true : false,
-                PlanNo = package.PlanNo,
-                OrderId = package.OrderId
-            };
-            await _mesOrderGatherRep.InsertAsync(newOrder);
-        }
-        else
-        {
-            order.IsKitting = _QiTaoReuslt == "榻愬" ? true : false;
-            await _mesOrderGatherRep.UpdateAsync(order);
-        }
+        _QiTaoReuslt = (bool)isNewOrder ? "鏂拌鍗�" : "褰撳墠璁㈠崟";
 
 
-        sysConfig.Value = setValue;
-        await _sysConfigRep.UpdateAsync(sysConfig);
-        //*/
-
+        //璁板綍宸ヤ綔鏃堕棿鍜屽伐浣滀汉
+        var curUserName = App.User.FindFirst(ClaimConst.RealName)?.Value;
 
         var sysConfig_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_oper);
         if (sysConfig_wms_unline_oper == null)
@@ -334,8 +311,78 @@
         }
 
 
+
+        //璇锋眰PLC
+        //鍒ゆ柇鏂瑰悜
+        bool myLocation = false;
+        if (_location == "BZ-33")
+        {
+            myLocation = false;
+        }
+        else
+        {
+            myLocation = true;
+        }
+        var client = await WCFServiceHelper.GetWCFService_SAPCC_Client(_sysConfigRep);
+        var res = await client.WriteQiTaoInfoAsync(myLocation);
+        if (res.result == false)
+        {
+            throw Oops.Oh(res.resMsg);
+        }
+
+
+        //鏇存柊鏁版嵁
+        package.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
+        package.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
+        await _mesPackageGatherRep.UpdateAsync(package);
+
+        var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync();
+        foreach (var item in upiList)
+        {
+            item.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
+            item.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
+            item.UpdateTime = DateTime.Now;
+        }
+        await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
+        //鍒犻櫎闃熷垪淇℃伅
+        var lineQueue = await _mes_Package_LineQueueRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
+        if (lineQueue != null)
+        {
+            await _mes_Package_LineQueueRep.DeleteAsync(lineQueue);
+        }
+        //澶勭悊琛�  mes_order_gather
+        await UpdateOrderGather(package, false);
+
+        var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+
+        //鏂板涓嬬嚎璁板綍琛�
+        var all_upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.Info5 == package.Info5).ToListAsync();
+        var all_unlineList = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.Info5 == package.Info5).ToListAsync();
+        Mes_Package_UnLine_Record record = new Mes_Package_UnLine_Record();
+        record = package.Adapt<Mes_Package_UnLine_Record>();
+        record.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        record.Location = _location;
+        record.AllPackageNum = all_upiList.GroupBy(x => x.PackageCode).Count();
+        record.CurUnlineIndexPackageNum = all_unlineList.GroupBy(x => x.PackageCode).Count() + 1;
+        record.CreateTime = DateTime.Now;
+        record.CreateUserName = _cretaorName;
+        await _mes_Package_UnLine_RecordRep.InsertAsync(record);
+
+        //璁板綍鍖呭饱鍘�
+        WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
+        wmsRecordPackage = package.Adapt<WmsRecordPackageProcess>();
+        wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+        wmsRecordPackage.Location = "";
+        wmsRecordPackage.OperRemark = "姝e父涓嬬嚎";
+        wmsRecordPackage.CreateTime = DateTime.Now;
+        wmsRecordPackage.CreateUserName = _cretaorName;
+        await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
+
+
         output = package.Adapt<ValidateQiTaoOutput>();
-        output.QiTaoReuslt = _QiTaoReuslt;
+        output.QiTaoReuslt = _QiTaoReuslt + $",绗瑊record.CurUnlineIndexPackageNum}鍖呬笅绾�,鍏眥record.AllPackageNum}鍖�";
+        output.IsNewOrder = isNewOrder;
+        //output.IsNewOrder = false;
         return output;
     }
 
@@ -518,7 +565,7 @@
     }
 
     /// <summary>
-    /// 涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹�
+    /// 鍏叡-涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹�
     /// </summary>
     /// <param name="singlePackage"></param>
     /// <returns></returns>

--
Gitblit v1.9.3