From 716435e1177c454a9cd652fae35769a0ef9a3b7c Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期四, 13 二月 2025 10:10:39 +0800
Subject: [PATCH] 1.成品入库(初步) 2.仓库入参新增字段备注 3.采购入库,其他入库主表新增仓库id 4.其他出库优化

---
 entity/MesInvItemIns.cs                          |   15 +++
 service/Warehouse/MesCprkManager.cs              |   83 ++++++++++++++++++++
 service/Warehouse/MesItemQtManager.cs            |   17 ++--
 entity/MesInvItemInCItems.cs                     |    6 +
 Dto/service/WarehouseQuery.cs                    |    2 
 service/Warehouse/MesInvItemInCDetailsManager.cs |    2 
 Controllers/Warehouse/MesCprkController.cs       |   73 ++++++++++++++++++
 service/Warehouse/MesItemQtrkManager.cs          |   30 +++++--
 8 files changed, 208 insertions(+), 20 deletions(-)

diff --git a/Controllers/Warehouse/MesCprkController.cs b/Controllers/Warehouse/MesCprkController.cs
new file mode 100644
index 0000000..a22d2aa
--- /dev/null
+++ b/Controllers/Warehouse/MesCprkController.cs
@@ -0,0 +1,73 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.service.Warehouse;
+using NewPdaSqlServer.util;
+
+namespace NewPdaSqlServer.Controllers.Warehouse;
+
+[ApiController]
+[Route("api/[controller]")]
+public class MesCprkController : ControllerBase
+{
+    private readonly MesCprkManager m = new();
+
+    /// <summary>
+    ///     鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetBarInfo")]
+    public ResponseResult GetBarInfo(WarehouseQuery unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetBarInfo(unity);
+            if(resultInfos.tbBillList == null)
+            {
+                return new ResponseResult
+                {
+                    status = -1,
+                    message = "姝ゆ潯鐮佷笉瀛樺湪锛侊紒锛�",
+                    data = resultInfos
+                };
+            }
+            resultInfos.tbMesItems = m.GetItemNo(resultInfos.tbBillList.ItemId);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鑾峰彇鏉$爜淇℃伅鍜岀墿鏂欎俊鎭�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("CPRK")]
+    public ResponseResult CPRK(WarehouseQuery unity)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            //resultInfos.tbBillList = m.CPRK(unity);
+            return new ResponseResult
+            {
+                status = 0,
+                message = resultInfos.tbBillList,
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file
diff --git a/Dto/service/WarehouseQuery.cs b/Dto/service/WarehouseQuery.cs
index a16ba74..ac13440 100644
--- a/Dto/service/WarehouseQuery.cs
+++ b/Dto/service/WarehouseQuery.cs
@@ -7,6 +7,7 @@
     public string? blNo { get; set; } //琛ユ枡鍗曞彿
     public string? id { get; set; }
     public string? sectionCode { get; set; }
+    //鏉$爜缂栧彿
     public string? barcode { get; set; }
     public string? userName { get; set; }
     public string? billNo { get; set; }
@@ -14,6 +15,7 @@
     public DateTime? date { get; set; }
     public string? Type { get; set; }
 
+    //搴撲綅缂栫爜
     public string? DepotCode { get; set; }
 
     public string? DepotSectionName { get; set; }
diff --git a/entity/MesInvItemInCItems.cs b/entity/MesInvItemInCItems.cs
index bef4fa1..50b649f 100644
--- a/entity/MesInvItemInCItems.cs
+++ b/entity/MesInvItemInCItems.cs
@@ -164,5 +164,11 @@
     [SugarColumn(ColumnName = "ITEM_ID")]
     public long? ItemId { get; set; }
 
+    /// <summary>
+    ///     浠撳簱id
+    /// </summary>
+    [SugarColumn(ColumnName = "depot_id")]
+    public string? DepotId { get; set; }
+
     [SugarColumn(ColumnName = "SUPP_ID")] public string? SuppId { get; set; }
 }
\ No newline at end of file
diff --git a/entity/MesInvItemIns.cs b/entity/MesInvItemIns.cs
index b1a8dc6..8585581 100644
--- a/entity/MesInvItemIns.cs
+++ b/entity/MesInvItemIns.cs
@@ -106,6 +106,7 @@
     public DateTime? CheckDate { get; set; }
 
     /// <summary>
+    /// 鍏ュ簱鍗曞搴旂殑鐢宠鍗曞彿锛堟病鏈夌敵璇锋祦绋嬬殑灏变负绌猴級
     /// </summary>
     [SugarColumn(ColumnName = "TASK_NO")]
     public string? TaskNo { get; set; }
@@ -258,7 +259,7 @@
     public string? IqcReleaseNo { get; set; }
 
     /// <summary>
-    ///     鍒拌揣鍗曞彿/鍏跺畠鍏ュ簱鍗曞彿
+    ///     鍏ュ簱鍗曠殑鐩稿叧鍗曞彿锛堢敓浜х浉鍏冲瓨 鎸囦护鍗曞彿 -1锛岄噰璐浉鍏崇殑瀛樺埌璐у崟鍙凤級
     /// </summary>
     [SugarColumn(ColumnName = "CBILL_NO")]
     public string? CbillNo { get; set; }
@@ -305,6 +306,18 @@
     [SugarColumn(ColumnName = "ReceiveOrgId")]
     public string? ReceiveOrgId { get; set; }
 
+    /// <summary>
+    ///     鍏ュ簱鍗曠殑鐩稿叧鍗曞彿锛堢敓浜х浉鍏冲瓨 鎸囦护鍗曞彿 -1锛岄噰璐浉鍏崇殑瀛樺埌璐у崟鍙凤級
+    /// </summary>
+    [SugarColumn(ColumnName = "work_no")]
+    public string? WorkNo { get; set; }
+
+    /// <summary>
+    ///     鍏ュ簱绫诲埆锛堜簨鍔$被鍨嬪悕绉帮級
+    /// </summary>
+    [SugarColumn(ColumnName = "in_type")]
+    public string? InType { get; set; }
+
 
     //鍦ㄦ暟鎹簱鏌ヨ鏃跺拷鐣ヨ繖涓瓧娈�
     [SugarColumn(IsIgnore = true)] public string? DepotName { get; set; }
diff --git a/service/Warehouse/MesCprkManager.cs b/service/Warehouse/MesCprkManager.cs
new file mode 100644
index 0000000..354be65
--- /dev/null
+++ b/service/Warehouse/MesCprkManager.cs
@@ -0,0 +1,83 @@
+锘縰sing System.Data;
+using System.Data.SqlClient;
+using Masuit.Tools;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using SqlSugar;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+
+namespace NewPdaSqlServer.service.Warehouse;
+
+public class MesCprkManager : Repository<MesCgthSq>
+{
+    public MesInvItemBarcodes GetBarInfo(WarehouseQuery unity)
+    {
+        return Db.Queryable<MesInvItemBarcodes>()
+            .Where(s => s.ItemBarcode == unity.barcode)
+            .First(); // 杩斿洖绗竴琛屾暟鎹紝濡傛灉娌℃湁鍒欒繑鍥� null
+    }
+
+    public MesItems GetItemNo(decimal strItemId)
+    {
+        return Db.Queryable<MesItems>()
+            .Where(s => s.Id == strItemId)
+            .First();
+    }
+
+    public string CPRK(WarehouseQuery unity)
+    {
+        var _strMsg = "";
+        var _intSum = "";
+        using (var conn = new SqlConnection(DbHelperSQL.strConn))
+        {
+            if (unity.userName.IsNullOrEmpty()) throw new Exception("鐢ㄦ埛鍚嶄笉鍏佽涓虹┖");
+            if (unity.CfNum <= 0) throw new Exception("鎷嗗垎鏁伴噺闇�澶т簬绛変簬0");
+            if (unity.barcode.IsNullOrEmpty()) throw new Exception("鏉$爜涓嶅厑璁镐负绌�");
+
+            using (var cmd = new SqlCommand("[prc_pda_bar_cf]", conn))
+            {
+                try
+                {
+                    conn.Open();
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    SqlParameter[] parameters =
+                    {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.NVarChar, 300),
+                        new("@barcode_new", SqlDbType.NVarChar, 300),
+                        new("@c_user", unity.userName),
+                        new("@p_old_barcode", unity.barcode),
+                        new("@p_qty", unity.CfNum),
+
+                    };
+                    parameters[0].Direction = ParameterDirection.Output;
+                    parameters[1].Direction = ParameterDirection.Output;
+                    parameters[2].Direction = ParameterDirection.Output;
+
+                    foreach (var parameter in parameters)
+                        cmd.Parameters.Add(parameter);
+                    cmd.ExecuteNonQuery();
+                    _strMsg = parameters[0].Value.ToString();
+                    _intSum = parameters[1].Value.ToString();
+
+                    var result = Convert.ToInt32(_intSum);
+                    if (result <= 0) throw new Exception(_strMsg);
+
+                    return _strMsg;
+
+                    //return 0;
+
+                }
+                catch (Exception ex)
+                {
+                    throw new Exception(ex.Message);
+                }
+                finally
+                {
+                    conn.Close();
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/service/Warehouse/MesInvItemInCDetailsManager.cs b/service/Warehouse/MesInvItemInCDetailsManager.cs
index cf0c551..13296d4 100644
--- a/service/Warehouse/MesInvItemInCDetailsManager.cs
+++ b/service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -126,7 +126,7 @@
         UseTransaction(db =>
         {
             var existingRecord = db.Queryable<MesInvItemIns>()
-                .Where(it => it.InsDate.Value.Date == DateTime.Now.Date
+                .Where(it => it.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
                              && it.Status == 0
                              && it.TransctionNo == transactionNo
                              && it.BillNo == itemBarcodeDetails.BillNo
diff --git a/service/Warehouse/MesItemQtManager.cs b/service/Warehouse/MesItemQtManager.cs
index 83730c5..a67d156 100644
--- a/service/Warehouse/MesItemQtManager.cs
+++ b/service/Warehouse/MesItemQtManager.cs
@@ -142,9 +142,9 @@
             throw new Exception($"鍏朵粬鍑哄簱鐢宠鍗� {p_bill_no} 涓嶅瓨鍦紝璇风‘璁わ紒");
 
         // 妫�鏌ヤ粨搴撴槸鍚︿竴鑷�
-        if (mesItemQt.Qt011 != stock.DepotsCode)
+        if (Convert.ToInt32(mesItemQt.Qt008)  != stock.DepotId)
             throw new Exception(
-                $"鎵爜鍑鸿揣浠撳簱{stock.DepotsCode}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟mesItemQt.Qt011}涓嶄竴鑷达紝璇锋牳瀵癸紒");
+                $"鎵爜鍑鸿揣浠撳簱id{mesItemQt.Qt008}涓庡叾浠栧嚭搴撶敵璇蜂粨搴搟stock.DepotId}涓嶄竴鑷达紝璇锋牳瀵癸紒");
 
         // 鑾峰彇鍑哄簱鍗曟槑缁�
         var qtDetail = Db.Queryable<MesItemQtDatall>()
@@ -199,7 +199,7 @@
 
             // 鏌ユ壘褰撳ぉ鏄惁宸插瓨鍦ㄥ嚭搴撳崟
             var existingOut = Db.Queryable<MesInvItemOuts>()
-                .Where(it => it.PbillNo == p_bill_no
+                .Where(it => it.TaskNo == p_bill_no
                              // && it.DepotCode == stock.DepotsCode
                              && it.DepotId == stock.DepotId
                              && it.OutDate.Value.Date.ToString("yyyy-MM-dd") ==
@@ -216,7 +216,7 @@
             {
                 // 鍒涘缓鏂扮殑鍑哄簱鍗�
                 outId = Guid.NewGuid();
-                outNo = BillNo.GetBillNo("INV_OUT_OTHER");
+                outNo = BillNo.GetBillNo("QTCK(鍏朵粬鍑哄簱鍗�)");
 
                 var mesItemQt = Db.Queryable<MesItemQt>()
                     .Where(it => it.Qtck == p_bill_no)
@@ -240,9 +240,9 @@
                         : null,
                     OutPart = mesItemQt.Qt012,
                     FType = 0,
-                    WorkNo = p_bill_no,
+                    //WorkNo = p_bill_no,
                     OutType = "鍏朵粬鍑哄簱",
-                    PbillNo = p_bill_no,
+                    //PbillNo = p_bill_no,
                     OutDate = DateTime.Now,
                     Nflag = 0,
                     Reason = mesItemQt.Qt010,
@@ -281,7 +281,8 @@
                     Guid = Guid.NewGuid(),
                     ItemOutId = outId,
                     ItemNo = qtDetail.Qd002,
-                    Quantity = stock.Quantity,
+                    Quantity = qtDetail.Qd007,
+                    TlQty = stock.Quantity,
                     CreateBy = c_user,
                     CreateDate = DateTime.Now,
                     LastupdateBy = c_user,
@@ -308,7 +309,7 @@
                 // 鏇存柊宸插瓨鍦ㄧ殑鍑哄簱鐗╂枡璁板綍鏁伴噺
                 commit += db.Updateable<MesInvItemOutItems>()
                     .SetColumns(it =>
-                        it.Quantity == (it.Quantity ?? 0) + stock.Quantity)
+                        it.TlQty == (it.TlQty ?? 0) + stock.Quantity)
                     .Where(it => it.ItemOutId == outId &&
                                  it.ItemId == barcode.ItemId &&
                                  it.QtOutId == qtDetail.Guid)
diff --git a/service/Warehouse/MesItemQtrkManager.cs b/service/Warehouse/MesItemQtrkManager.cs
index 2d13b92..8c75e6d 100644
--- a/service/Warehouse/MesItemQtrkManager.cs
+++ b/service/Warehouse/MesItemQtrkManager.cs
@@ -170,11 +170,14 @@
             // 鏌ヨ鏄惁瀛樺湪鏈叆搴撶殑鍏ュ簱鍗�
             var existingInv = db.Queryable<MesInvItemIns>()
                 .Where(x => x.Status == 0
+                            && x.InsDate.Value.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")
                             && x.TransctionNo == transactionNo.ToString()
-                            && x.CbillNo == p_bill_no
-                            && x.SuppNo == barcode.SuppNo
+                            && x.TaskNo == p_bill_no
+                            //&& x.CbillNo == p_bill_no
+                            && x.BillTypeId == billTypeId
+                            && x.DepotsId == Convert.ToInt64(c_depot_id))
                             // && x.DepotsCode == c_depot_code)
-                            && x.DepotsId == c_depot_id)
+                            //&& x.SuppNo == barcode.SuppNo)
                 .First();
 
             var newId = Guid.Empty;
@@ -183,7 +186,7 @@
             if (existingInv == null)
             {
                 newId = Guid.NewGuid();
-                billNo = BillNo.GetBillNo("INV_IN_OTHER");
+                billNo = BillNo.GetBillNo("QTRK(鍏朵粬鍏ュ簱鍗�)");
 
                 barcode.UrgentFlag ??= false;
 
@@ -204,7 +207,11 @@
                     CbillNo = p_bill_no,
                     Fstatus = 0,
                     Status = 0,
-                    Reason = qtrk.Qt010
+                    Reason = qtrk.Qt010,
+                    TaskNo = p_bill_no,
+                    DepotsId = Convert.ToInt64(c_depot_id) ,
+                    InType = "鍏朵粬鍏ュ簱"
+
                 }).IgnoreColumns(true).ExecuteCommand();
             }
             else
@@ -217,8 +224,9 @@
             var existingItem = db.Queryable<MesInvItemInCItems>()
                 .Where(x => x.ItemInId == newId
                             && x.ItemId == barcode.ItemId
-                            && x.WorkNo == barcode.WorkNo
-                            && x.WorkLine == barcode.WorkLine)
+                            && x.DepotId == c_depot_id.ToString()
+                             )
+                //&& x.DepotCode =
                 .First();
 
             if (existingItem == null)
@@ -246,7 +254,8 @@
                     Remark = barcode.Memo,
                     EbelnK3id = barcode.EbelnK3id,
                     LineK3id = barcode.LineK3id,
-                    ItemId = barcode.ItemId
+                    ItemId = barcode.ItemId,
+                    DepotId = c_depot_id.ToString()
                 }).IgnoreColumns(true).ExecuteCommand();
             else
                 // 瀛樺湪鍒欐洿鏂版暟閲�
@@ -274,7 +283,7 @@
                 LotNo = barcode.LotNo,
                 SuppId = barcode.SuppId,
                 SuppNo = barcode.SuppNo,
-                DepotId = c_depot_id,
+                DepotId = Convert.ToInt64(c_depot_id),
                 DepotCode = c_depot_code,
                 DepotSectionCode = p_section_code,
                 ItemSname = barcode.ItemSname,
@@ -377,7 +386,8 @@
             // 鏇存柊鐢宠鍗曟槑缁嗗凡鍏ュ簱鏁伴噺
             res += db.Updateable<MesItemQtrrDetail>()
                 .SetColumns(x => x.Qd008 == (x.Qd008 ?? 0) + barcode.Quantity)
-                .Where(x => x.Guid == barcode.Guid)
+                .Where(x => x.QtrkGuid == qtrk.Guid &&
+                x.ItemId == barcode.ItemId.ToString())
                 .ExecuteCommand();
 
             // 妫�鏌ユ槸鍚﹀畬鍏ㄥ叆搴撳苟鏇存柊鐘舵��

--
Gitblit v1.9.3