From f43b7df8400f4fcffc9f19dca0888d61e2b33d5f Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 12 三月 2025 18:41:52 +0800
Subject: [PATCH] WMS系统添加PDA权限,PDA程序

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs |   62 +++++++++++++++++++++++++++++--
 1 files changed, 58 insertions(+), 4 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs"
index 9da56d3..eb0d255 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs"
@@ -1,4 +1,5 @@
 锘縰sing AutoMapper;
+using Microsoft.IdentityModel.Tokens;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -72,14 +73,28 @@
                 if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
                 #endregion
 
+                List<string> LocationCodes = orderAddDTO.Details
+                    .Where(x => !string.IsNullOrEmpty(x.LocationCode))
+                    .Select(x => x.LocationCode).ToList();
+
                 Dt_InboundOrder inboundOrder = _mapper.Map<Dt_InboundOrder>(orderAddDTO);
-                inboundOrder.OrderNo=DateTime.Now.ToString("yyMMddHHmmss");
+                //inboundOrder.OrderNo = DateTime.Now.ToString("yyMMddHHmmss");
                 inboundOrder.OrderStatus = InboundStatusEnum.鏈紑濮�.ObjToInt();
-                bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
+                Db.Ado.BeginTran();
+                if (LocationCodes.Any())
+                {
+                    content = _basicService.LocationInfoService.UpdateStatus(LocationCodes, LocationStatusEnum.PalletLock.ObjToInt());
+                    if (!content.Status)
+                        throw new Exception(content.Message);
+                }
+                    
+                BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
+                Db.Ado.CommitTran();
                 content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                Db.Ado.RollbackTran();
                 content = WebResponseContent.Instance.Error(ex.Message);
             }
             finally
@@ -91,12 +106,51 @@
 
         public override WebResponseContent UpdateData(SaveModel saveModel)
         {
-            return base.UpdateData(saveModel);
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (saveModel.DetailData == null || saveModel.DetailData.Count == 0) throw new Exception($"鍏ュ簱鍗曟槑缁嗕笉鑳戒负绌�");
+                List<InboundOrderDetailAddDTO> inboundOrderDetail = saveModel.DetailData.DicToIEnumerable<InboundOrderDetailAddDTO>();
+                if (inboundOrderDetail.FirstOrDefault(x => x.OrderDetailStatus > 0) != null) throw new Exception($"璁㈠崟宸插紑濮嬬粍鐩樺叆搴�");
+                var inboundOrderDetails = _inboundOrderDetailService.Db.Queryable<Dt_InboundOrderDetail>().Where(x => saveModel.DelKeys.Contains(x.Id)).ToList();
+                if (inboundOrderDetails.Count > 0)
+                {
+                    if (inboundOrderDetails.FirstOrDefault(x => x.OrderDetailStatus != OrderDetailStatusEnum.New.ObjToInt()) != null)
+                        throw new Exception($"瀛樺湪宸茬粍鐩樺伐鍗曪紝宸插厛瑙g洏");
+                }
+                content = base.UpdateData(saveModel);
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
         }
 
         public override WebResponseContent DeleteData(object[] keys)
         {
-            return base.DeleteData(keys);
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var inboundOrders = BaseDal.QueryData(x => keys.Contains(x.Id));
+                if (inboundOrders.FirstOrDefault(x => x.OrderStatus != InboundStatusEnum.鏈紑濮�.ObjToInt()) != null)
+                    throw new Exception($"鍏ュ簱鍗曞瓨鍦ㄧ粍鐩樺叆搴撲俊鎭�");
+                foreach (var inboundOrder in inboundOrders)
+                {
+                    var inboundOrderDetails = BaseDal.Db.Queryable<Dt_InboundOrder>().Includes(x => x.Details).First(x => x.OrderNo == inboundOrder.OrderNo).Details;
+                    if (inboundOrderDetails != null || inboundOrderDetails.Count > 0)
+                    {
+                        if (inboundOrderDetails.FirstOrDefault(x => x.OrderDetailStatus != OrderDetailStatusEnum.New.ObjToInt()) != null)
+                            throw new Exception($"鍏ュ簱鍗曘�恵inboundOrder.OrderNo}銆戝瓨鍦ㄧ粍鐩樺叆搴撲俊鎭�");
+                    }
+                }
+                content = base.DeleteData(keys);
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
         }
         /// <summary>
         /// 楠岃瘉鍗曟嵁娣诲姞DTO瀵硅薄

--
Gitblit v1.9.3