From a06049a177a20285013c32fba254a09d1cd3cc48 Mon Sep 17 00:00:00 2001
From: hudong <Administrator@PC-20250329JZUF>
Date: 星期三, 11 六月 2025 17:23:38 +0800
Subject: [PATCH] 1.生成出库单逻辑修改(判断是否同一个仓库)
2.入库单接口优化

---
 /dev/null                    |   41 -------------
 api/WmsSpaHelper.cs          |   73 +++++++++++++++---------
 models/TN_Inbound_Order.cs   |    8 +-
 HH.WCS.Mobox3.pinggao.csproj |    2 
 4 files changed, 49 insertions(+), 75 deletions(-)

diff --git a/HH.WCS.Mobox3.pinggao.csproj b/HH.WCS.Mobox3.pinggao.csproj
index cc61d9c..f4cc209 100644
--- a/HH.WCS.Mobox3.pinggao.csproj
+++ b/HH.WCS.Mobox3.pinggao.csproj
@@ -197,8 +197,6 @@
     <Compile Include="models\SapRoot.cs" />
     <Compile Include="models\TN_DPRECORD.cs" />
     <Compile Include="models\TN_GENERATE_ORDER.cs" />
-    <Compile Include="models\TN_In_Detail.cs" />
-    <Compile Include="models\TN_In_Order.cs" />
     <Compile Include="models\TN_Location_Ext.cs" />
     <Compile Include="models\TN_Ll_detail.cs" />
     <Compile Include="models\TN_Ll_Order.cs" />
diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs
index 31509e9..2a8c992 100644
--- a/api/WmsSpaHelper.cs
+++ b/api/WmsSpaHelper.cs
@@ -673,7 +673,6 @@
                     result.WLPZBH = items.HEAD.WLPZH;
                     result.WLPZND = items.HEAD.WLPZND;
                     result.resultCode = 0;
-                    result.resultMsg = "";
                     db.CommitTran();
                     simpleResults.Add(result);
                 }
@@ -1880,28 +1879,36 @@
                         else if (!string.IsNullOrEmpty(model.item_code))
                         {
                             var starts = db.Queryable<CntrItemRel>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault();
-                            LogHelper.Info($"starts{starts}");
-                            var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE== starts.S_CNTR_CODE).ToList().FirstOrDefault();
-                            LogHelper.Info($"starts1{starts12}");
-                            start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE== starts12.S_LOC_CODE).ToList().FirstOrDefault();
-                            LogHelper.Info($"starts2{start}");
+                            if (starts!=null)
+                            {
+                                LogHelper.Info($"starts{starts}");
+                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == starts.S_CNTR_CODE).ToList().FirstOrDefault();
+                                LogHelper.Info($"starts1{starts12}");
+                                start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault();
+                                LogHelper.Info($"starts2{start}");
 
-                            model.cntr_code = starts12?.S_CNTR_CODE;
+                                model.cntr_code = starts12?.S_CNTR_CODE;
+                            }
+                            else
+                            {
+                                var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
+                                var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray();
+                                start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault();
+
+
+
+
+                                var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault();
+
+
+                                model.cntr_code = starts12?.S_CNTR_CODE;
+                            }
+                           
                         }
                         else
                         {
                             #region MyRegion
-                            var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
-                            var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s => !list.Contains(s.S_CNTR_CODE)).Select(s => s.S_LOC_CODE).ToArray();
-                            start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault();
-
-
-                       
-
-                            var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault();
-
-
-                            model.cntr_code = starts12?.S_CNTR_CODE;
+                          
                             #endregion
                         }
                         if (start == null)
@@ -3687,8 +3694,13 @@
                         var po1 = new TN_Outbound_Order { S_NO = WMSHelper.GenerateShippNo(), UNAME = po.UNAME, S_FACTORY = po.S_FACTORY, S_CBZX = po.S_CBZX, S_ZZKM = po.S_ZZKM, S_LRZX = po.S_LRZX, BLDAT = po.BLDAT, BUDAT = po.BUDAT, S_OUT_TYPE = po.S_OUT_TYPE, S_BS_TYPE = po.S_BS_TYPE, S_AREA_CODE = po.S_AREA_CODE, S_BS_NO = po.S_NO };
                         List<TN_Ll_detail> tN_Ll_Details = new List<TN_Ll_detail>();
                         po1.Details = new List<TN_Outbound_Detail>();
+                        var list = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY).Select(s => s.S_ITEM_CODE).Distinct().ToArray();
+                        var Sitemlist = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).Select(s => s.S_ITEM_CODE).ToArray();
+
+                        po.Details = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY && Sitemlist.Contains(s.S_ITEM_CODE)).ToList();
                         if (po.Details.Count() > 0)
                         {
+                          
                             foreach (var a in po.Details)
                             {
                                 if (a.F_QTY > a.F_ACC_D_QTY)
@@ -3749,7 +3761,12 @@
                                 return result;
                             }
                         }
-
+                        else
+                        {
+                            result.code = 1;
+                            result.msg = $"棰嗘枡鍗晎po.S_NO}鎵句笉鍒板搴斿簱瀛樼墿鏂欎俊鎭�;
+                            return result;
+                        }
                     }
                     db.CommitTran();
                 }
@@ -4382,25 +4399,25 @@
                         List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>();
                         foreach (var item in po.Details)
                         {
-                            var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault();
+                           // var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault();
                             JHWBackDto.ITEM ckbitem = new JHWBackDto.ITEM();
                             ckbitem.WLBH = item.S_ITEM_CODE;
                             ckbitem.GC = po.S_FACTORY;
-                            ckbitem.XSDD = podetail?.S_XSDD;
-                            ckbitem.XSDDHXM = podetail?.S_XSDDXMBH;
+                            ckbitem.XSDD = item?.S_XSDD;
+                            ckbitem.XSDDHXM = item?.S_XSDDXMBH;
                             ckbitem.SL = item.F_QTY;
-                            ckbitem.DW = podetail?.S_UOM;
-                            ckbitem.DDH = podetail?.S_DDH;
+                            ckbitem.DW = item?.S_UOM;
+                            ckbitem.DDH = item?.S_DDH;
                             //ckbitem.PH = podetail?.S_PH;
                             // ckbitem.TSKCBS = podetail?.S_TSKCBS;
                             //ckbitem.DDHXM = (podetail?.N_ROW_NO);
-                            ckbitem.WBS = podetail?.S_WBS;
-                            ckbitem.KCDD = podetail?.S_KCDD;
-                            ckbitem.PC = podetail?.S_BATCH_NO;
+                            ckbitem.WBS = item?.S_WBS;
+                            ckbitem.KCDD = item?.S_KCDD;
+                            ckbitem.PC = item?.S_BATCH_NO;
                             #region MyRegion
                             // List<JHWBackDto.ITEM1> listitem1 = new List<JHWBackDto.ITEM1>();
                             JHWBackDto.ITEM1 listitem1 = new JHWBackDto.ITEM1();
-                            listitem1.XLH = podetail?.S_SERIAL_NO.Split(',').ToList();
+                            listitem1.XLH = item?.S_SERIAL_NO.Split(',').ToList();
                             ////string[] xlhValues = item.S_SERIAL_NO.Split(',');
                             //var serialNos = string.Join(",", CntrItemRels
                             //                .Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE)
diff --git a/models/TN_In_Detail.cs b/models/TN_In_Detail.cs
deleted file mode 100644
index b69af65..0000000
--- a/models/TN_In_Detail.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-
-using HH.WCS.Mobox3.pinggao.models;
-using SqlSugar;
-using System;
-
-namespace HH.WCS.Mobox3.pinggao
-{
-    [SugarTable("TN_InOrderDetail")]
-
-    public class TN_InOrder_Detail : BaseModel
-    {
-        public string S_IO_NO { get; set; }
-        public string N_ROW_NO { get; set; }
-        public string S_ITEM_CODE { get; set; }
-        public int N_ITEM_STATE { get; set; }
-        public string S_ITEM_NAME { get; set; }
-        public string S_ITEM_STATE { get; set; }
-        public string S_BATCH_NO { get; set; } = "";
-        public string S_ITEM_SPEC { get; set; }
-        public string S_SERIAL_NO { get; set; } = "";
-        public string D_PRD_DATE { get; set; }
-        public string D_EXP_DATE { get; set; }
-        public string S_NOTE { get; set; }
-        public double F_QTY { get; set; }
-        public string S_UOM { get; set; } = "kg";
-        public double F_ACC_C_QTY { get; set; }
-        public double F_ACC_B_QTY { get; set; }
-        public int N_B_STATE { get; set; }
-        public string S_BS_NO { get; set; }
-        public string S_BS_TYPE { get; set; }
-        //public double F_NET_WEIGHT { get; set; }
-        //public double F_GROSS_WEIGHT { get; set; }
-        public string S_SUPPLIER_NO { get; set; }
-        //public string S_WU { get; set; }
-        ///// <summary>
-        ///// 来源单行号
-        ///// </summary>
-        //public string N_BS_ROW_NO { get; set; }
-        /// <summary>
-        /// 货主
-        /// </summary>
-        public string S_OWNER { get; set; }
-        /// <summary>
-        /// ERP仓库
-        /// </summary>
-        public string S_ERP_WH_CODE { get; set; }
-
-
-        // 库存地点
-
-        public string S_KCDD { get; set; }
-
-        // 检验批编号
-
-        public string S_JYPBH { get; set; }
-        public string S_KJPZSSRQ { get; set; }
-
-        // 输入时间
-
-        public DateTime T_SRSJ { get; set; }
-
-        // 会计凭证日期
-
-        public string S_KJPZSRRQ { get; set; }
-
-        // 采购凭证号
-
-        public string S_CGPZH { get; set; }
-
-        // 采购凭证的项目编号
-
-        public string S_CGPZXMBH { get; set; }
-
-        // 借方/贷方标识
-
-        public string S_JDBS { get; set; }
-
-        // 参考凭证的凭证号
-
-        public string S_CKPZH { get; set; }
-
-        // 参考凭证会计年度
-
-        public string S_CKPZKJND { get; set; }
-        public string S_KJPZSRSJ { get; set; }
-
-        // 参考凭证项目
-
-        public string S_CKPZXM { get; set; }
-
-        // 冲销物料凭证编号
-
-        public string S_CXWLPZBH { get; set; }
-        public string S_CXPZNF { get; set; }
-        public string S_CXWLPZHXM { get; set; }
-        public string S_HWSJJYZT { get; set; }
-        public string S_GYSZHH { get; set; }
-
-        public string S_PH { get; set; }
-        public string S_TSKCBS { get; set; }
-        public string S_XSDDXMBH { get; set; }
-        public string S_DDH { get; set; }
-        public string S_WBS { get; set; }
-        public string S_XSDD { get; set; }
-
-    }
-}
diff --git a/models/TN_In_Order.cs b/models/TN_In_Order.cs
deleted file mode 100644
index 69eb43e..0000000
--- a/models/TN_In_Order.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using HH.WCS.Mobox3.pinggao.models;
-using SqlSugar;
-using System;
-using System.Collections.Generic;
-
-namespace HH.WCS.Mobox3.pinggao
-{
-    [SugarTable("TN_Inbound_Order")]
-    public class TN_Inbound_Order : BaseModel
-    {
-        public string S_NO { get; set; }
-        public string BUDAT { get; set; }
-        public string BLDAT { get; set; }
-        public string UNAME { get; set; }
-        public string BKTXT { get; set; }
-        public string SOBKZ   { get; set; }
-        //public string S_RECEIPT_NO { get; set; }
-        public string S_SUPPLIER_NO { get; set; }
-        public string S_WLPZNF { get; set; }
-        public string S_SUPPLIER_NAME { get; set; }
-        public string S_FACTORY { get; set; }
-        public string S_WH_CODE { get; set; }
-        public string S_NOTE { get; set; }
-        public string S_AREA_CODE { get; set; }
-        public string S_BS_TYPE { get; set; }
-        public string S_IN_TYPE { get; set; }
-        public string S_BS_NO { get; set; }
-        public int N_B_STATE { get; set; }
-        public string S_WLPZ { get; set; }
-
-        /// <summary>
-        /// 物料凭证年度
-        /// </summary>
-        public string S_WLPZND { get; set; }/// <summary>
-                                         /// 编号
-                                         /// </summary>
-        [SugarColumn(IsIgnore = true)]
-        [Navigate(NavigateType.OneToMany, nameof(TN_Inbound_Detail.S_IO_NO), nameof(S_NO))]
-        public List<TN_Inbound_Detail> Details { get; set; }
-    }
-}
diff --git a/models/TN_Inbound_Order.cs b/models/TN_Inbound_Order.cs
index 5aa0352..69eb43e 100644
--- a/models/TN_Inbound_Order.cs
+++ b/models/TN_Inbound_Order.cs
@@ -5,8 +5,8 @@
 
 namespace HH.WCS.Mobox3.pinggao
 {
-    [SugarTable("TN_In_Order")]
-    public class TN_In_Order : BaseModel
+    [SugarTable("TN_Inbound_Order")]
+    public class TN_Inbound_Order : BaseModel
     {
         public string S_NO { get; set; }
         public string BUDAT { get; set; }
@@ -35,7 +35,7 @@
                                          /// 编号
                                          /// </summary>
         [SugarColumn(IsIgnore = true)]
-        [Navigate(NavigateType.OneToMany, nameof(TN_InOrder_Detail.S_IO_NO), nameof(S_NO))]
-        public List<TN_InOrder_Detail> Details { get; set; }
+        [Navigate(NavigateType.OneToMany, nameof(TN_Inbound_Detail.S_IO_NO), nameof(S_NO))]
+        public List<TN_Inbound_Detail> Details { get; set; }
     }
 }

--
Gitblit v1.9.1