南骏 池
14 小时以前 5df60eb35037611aaa977428c5cd41ad391f72af
1.生产补料拆分
2.拆分通用存储过程调用
已修改3个文件
296 ■■■■■ 文件已修改
Controllers/Warehouse/MesItemBlController.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemBlManager.cs 260 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/BillNo.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesItemBlController.cs
@@ -1,7 +1,9 @@
using System.Dynamic;
using Masuit.Tools.Win32.AntiVirus;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.@base;
using NewPdaSqlServer.service.Warehouse;
using NewPdaSqlServer.util;
@@ -15,6 +17,7 @@
public class MesItemBlController : ControllerBase
{
    private readonly MesItemBlManager _manager = new();
    private readonly MesPrintMangeer _mCf = new();
    /***进入模版管理可以修改模版***/
@@ -201,9 +204,12 @@
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var (success, pendingList) = _manager.SplitBarcode(query);
            resultInfos.success = success;
            resultInfos.pendingList = pendingList;
            resultInfos.tbBillList = new ExpandoObject();
            resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query);
            var scanResult = _manager.SplitBarcode(query);
            resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult);
            //resultInfos.success = success;
            //resultInfos.pendingList = pendingList;
            return new ResponseResult
            {
                status = 0,
service/Warehouse/MesItemBlManager.cs
@@ -487,7 +487,7 @@
    ///     - Num: 发料数量(必填,必须大于0)
    ///     - blNo: 补料单号(必填)
    /// </remarks>
    public (bool success, List<MesItemBlDetail> pendingList) SplitBarcode(
    public ProductionPickDto SplitBarcode(
        WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.userName))
@@ -543,134 +543,135 @@
            // 拆分条码
            if (totalQty > query.Num)
            {
                var mesItems = db.Queryable<MesItems>()
                    .Where(s => s.Id == stockBarcode.ItemId).First();
                newBarcode = BillNo.ExecuteBarcodeSplit(query.userName, query.barcode, query.Num);
                //var mesItems = db.Queryable<MesItems>()
                //    .Where(s => s.Id == stockBarcode.ItemId).First();
                // 生成新条码号
                newBarcode = BillNo.GetBillNo("TM(条码)", mesItems.ItemNo);
                //// 生成新条码号
                //newBarcode = BillNo.GetBillNo("TM(条码)", mesItems.ItemNo);
                // 写入新条码
                executeCommand += db.Insertable(new MesInvItemBarcodes
                {
                    Guid = Guid.NewGuid(),
                    ItemBarcode = newBarcode,
                    CustNo = stockBarcode.CustomerNo,
                    // ProductCode = stockBarcode.ProductCode,
                    // ItemBarcode2 = stockBarcode.ItemBarcode2,
                    // ItemCode = stockBarcode.ItemCode,
                    ItemNo = stockBarcode.ItemNo,
                    LotNo = stockBarcode.LotNo,
                    Quantity = query.Num,
                    EpFlag = true,
                    TaskNo = stockBarcode.TaskNo,
                    CreateBy = query.userName,
                    CreateDate = DateTime.Now,
                    LastupdateBy = query.userName,
                    LastupdateDate = DateTime.Now,
                    OldItemBarcode = query.barcode,
                    // Mblnr = stockBarcode.Mblnr,
                    // Zeile = stockBarcode.Zeile,
                    // RohInId = stockBarcode.RohInId,
                    Barcodestatus = false,
                    Oldqty = query.Num as long?,
                    // Unit = stockBarcode.Unit,
                    // WeightUnit = stockBarcode.WeightUnit,
                    Factory = stockBarcode.Factory,
                    Company = stockBarcode.Company,
                    BillNo = stockBarcode.BillNo,
                    BoardStyle = stockBarcode.BoardStyle,
                    // ColorName = stockBarcode.ColorName,
                    WorkNo = stockBarcode.WorkNo,
                    WorkLine = stockBarcode.WorkLine,
                    // MemoBad = stockBarcode.MemoBad,
                    ComeFlg = 5,
                    // Memo = stockBarcode.Memo,
                    SuppId = stockBarcode.SuppId,
                    SuppNo = stockBarcode.SuppNo,
                    InsDate = stockBarcode.IndepDate, // Added InsDate
                    ItemId = stockBarcode.ItemId
                    // ItemUnit = stockBarcode.ItemUnit // Added ItemUnit
                }).IgnoreColumns(true).ExecuteCommand();
                //// 写入新条码
                //executeCommand += db.Insertable(new MesInvItemBarcodes
                //{
                //    Guid = Guid.NewGuid(),
                //    ItemBarcode = newBarcode,
                //    CustNo = stockBarcode.CustomerNo,
                //    // ProductCode = stockBarcode.ProductCode,
                //    // ItemBarcode2 = stockBarcode.ItemBarcode2,
                //    // ItemCode = stockBarcode.ItemCode,
                //    ItemNo = stockBarcode.ItemNo,
                //    LotNo = stockBarcode.LotNo,
                //    Quantity = query.Num,
                //    EpFlag = true,
                //    TaskNo = stockBarcode.TaskNo,
                //    CreateBy = query.userName,
                //    CreateDate = DateTime.Now,
                //    LastupdateBy = query.userName,
                //    LastupdateDate = DateTime.Now,
                //    OldItemBarcode = query.barcode,
                //    // Mblnr = stockBarcode.Mblnr,
                //    // Zeile = stockBarcode.Zeile,
                //    // RohInId = stockBarcode.RohInId,
                //    Barcodestatus = false,
                //    Oldqty = query.Num as long?,
                //    // Unit = stockBarcode.Unit,
                //    // WeightUnit = stockBarcode.WeightUnit,
                //    Factory = stockBarcode.Factory,
                //    Company = stockBarcode.Company,
                //    BillNo = stockBarcode.BillNo,
                //    BoardStyle = stockBarcode.BoardStyle,
                //    // ColorName = stockBarcode.ColorName,
                //    WorkNo = stockBarcode.WorkNo,
                //    WorkLine = stockBarcode.WorkLine,
                //    // MemoBad = stockBarcode.MemoBad,
                //    ComeFlg = 5,
                //    // Memo = stockBarcode.Memo,
                //    SuppId = stockBarcode.SuppId,
                //    SuppNo = stockBarcode.SuppNo,
                //    InsDate = stockBarcode.IndepDate, // Added InsDate
                //    ItemId = stockBarcode.ItemId
                //    // ItemUnit = stockBarcode.ItemUnit // Added ItemUnit
                //}).IgnoreColumns(true).ExecuteCommand();
                // 更新原条码数量
                executeCommand += db.Updateable<MesInvItemBarcodes>()
                    .SetColumns(it => it.Quantity == it.Quantity - query.Num)
                    .Where(it => it.ItemBarcode == query.barcode)
                    .ExecuteCommand();
                // 更新原条码数量
                executeCommand += db.Updateable<MesInvItemStocks>()
                    .SetColumns(it => it.Quantity == it.Quantity - query.Num)
                    .Where(it => it.ItemBarcode == query.barcode)
                    .ExecuteCommand();
                //// 删除原条码库存记录
                //executeCommand += db.Deleteable<MesInvItemStocks>()
                //// 更新原条码数量
                //executeCommand += db.Updateable<MesInvItemBarcodes>()
                //    .SetColumns(it => it.Quantity == it.Quantity - query.Num)
                //    .Where(it => it.ItemBarcode == query.barcode)
                //    .ExecuteCommand();
                // 插入剩余条码数量的新库存记录
                executeCommand += db.Insertable(new MesInvItemStocks
                {
                    Guid = Guid.NewGuid(),
                    TaskNo = stockBarcode.TaskNo,
                    ItemBarcode = newBarcode,
                    ItemNo = stockBarcode.ItemNo,
                    LotNo = stockBarcode.LotNo,
                    Quantity = query.Num,
                    EpFlag = stockBarcode.EpFlag,
                    CustomerNo = stockBarcode.CustomerNo,
                    ItemWt = stockBarcode.ItemWt,
                    DepotsCode = stockBarcode.DepotsCode,
                    DepotsId = stockBarcode.DepotsId,
                    DepotSectionsCode = stockBarcode.DepotSectionsCode,
                    CheckDate = stockBarcode.CheckDate,
                    ItemType = stockBarcode.ItemType,
                    IndepDate = stockBarcode.IndepDate,
                    Factory = stockBarcode.Factory,
                    Company = stockBarcode.Company,
                    IqcStatus = stockBarcode.IqcStatus,
                    BoardStyle = stockBarcode.BoardStyle,
                    WorkNo = stockBarcode.WorkNo,
                    WorkLine = stockBarcode.WorkLine,
                    SuppNo = stockBarcode.SuppNo,
                    ItemId = stockBarcode.ItemId
                    // UnitId = stockBarcode.ItemUnit
                }).IgnoreColumns(true).ExecuteCommand();
                //// 更新原条码数量
                //executeCommand += db.Updateable<MesInvItemStocks>()
                //    .SetColumns(it => it.Quantity == it.Quantity - query.Num)
                //    .Where(it => it.ItemBarcode == query.barcode)
                //    .ExecuteCommand();
                // 写入新条码的交易记录
                executeCommand += db.Insertable(new MesInvBusiness2
                {
                    Guid = Guid.NewGuid(),
                    Status = 1,
                    BillTypeId = 200, // p_bill_type_id
                    TransactionCode = "209", // p_transaction_no
                    BusinessType = 0,
                    ItemBarcode = newBarcode,
                    ItemNo = stockBarcode.ItemNo,
                    LotNo = stockBarcode.LotNo,
                    EpFlag = true,
                    Quantity = query.Num,
                    FromInvDepotsCode = null,
                    FromInvDepotSectionsCode = null,
                    ToInvDepotsCode = stockBarcode.DepotsCode,
                    ToInvDepotSectionsCode = stockBarcode.DepotSectionsCode,
                    Description = query.Type + "拆分生成",
                    CreateBy = query.userName,
                    CreateDate = DateTime.Now,
                    LastupdateBy = query.userName,
                    LastupdateDate = DateTime.Now,
                    Factory = stockBarcode.Factory,
                    Company = stockBarcode.Company,
                    TaskNo = stockBarcode.TaskNo,
                    BillNo = stockBarcode.BillNo,
                    WorkNo = stockBarcode.WorkNo,
                    WorkLine = stockBarcode.WorkLine,
                    SuppNo = stockBarcode.SuppNo,
                    SuppId = stockBarcode.SuppId,
                    ItemId = stockBarcode.ItemId
                    // CkDepot = stockBarcode.DepotsId
                }).IgnoreColumns(true).ExecuteCommand();
                ////// 删除原条码库存记录
                ////executeCommand += db.Deleteable<MesInvItemStocks>()
                ////    .Where(it => it.ItemBarcode == query.barcode)
                ////    .ExecuteCommand();
                //// 插入剩余条码数量的新库存记录
                //executeCommand += db.Insertable(new MesInvItemStocks
                //{
                //    Guid = Guid.NewGuid(),
                //    TaskNo = stockBarcode.TaskNo,
                //    ItemBarcode = newBarcode,
                //    ItemNo = stockBarcode.ItemNo,
                //    LotNo = stockBarcode.LotNo,
                //    Quantity = query.Num,
                //    EpFlag = stockBarcode.EpFlag,
                //    CustomerNo = stockBarcode.CustomerNo,
                //    ItemWt = stockBarcode.ItemWt,
                //    DepotsCode = stockBarcode.DepotsCode,
                //    DepotsId = stockBarcode.DepotsId,
                //    DepotSectionsCode = stockBarcode.DepotSectionsCode,
                //    CheckDate = stockBarcode.CheckDate,
                //    ItemType = stockBarcode.ItemType,
                //    IndepDate = stockBarcode.IndepDate,
                //    Factory = stockBarcode.Factory,
                //    Company = stockBarcode.Company,
                //    IqcStatus = stockBarcode.IqcStatus,
                //    BoardStyle = stockBarcode.BoardStyle,
                //    WorkNo = stockBarcode.WorkNo,
                //    WorkLine = stockBarcode.WorkLine,
                //    SuppNo = stockBarcode.SuppNo,
                //    ItemId = stockBarcode.ItemId
                //    // UnitId = stockBarcode.ItemUnit
                //}).IgnoreColumns(true).ExecuteCommand();
                //// 写入新条码的交易记录
                //executeCommand += db.Insertable(new MesInvBusiness2
                //{
                //    Guid = Guid.NewGuid(),
                //    Status = 1,
                //    BillTypeId = 200, // p_bill_type_id
                //    TransactionCode = "209", // p_transaction_no
                //    BusinessType = 0,
                //    ItemBarcode = newBarcode,
                //    ItemNo = stockBarcode.ItemNo,
                //    LotNo = stockBarcode.LotNo,
                //    EpFlag = true,
                //    Quantity = query.Num,
                //    FromInvDepotsCode = null,
                //    FromInvDepotSectionsCode = null,
                //    ToInvDepotsCode = stockBarcode.DepotsCode,
                //    ToInvDepotSectionsCode = stockBarcode.DepotSectionsCode,
                //    Description = query.Type + "拆分生成",
                //    CreateBy = query.userName,
                //    CreateDate = DateTime.Now,
                //    LastupdateBy = query.userName,
                //    LastupdateDate = DateTime.Now,
                //    Factory = stockBarcode.Factory,
                //    Company = stockBarcode.Company,
                //    TaskNo = stockBarcode.TaskNo,
                //    BillNo = stockBarcode.BillNo,
                //    WorkNo = stockBarcode.WorkNo,
                //    WorkLine = stockBarcode.WorkLine,
                //    SuppNo = stockBarcode.SuppNo,
                //    SuppId = stockBarcode.SuppId,
                //    ItemId = stockBarcode.ItemId
                //    // CkDepot = stockBarcode.DepotsId
                //}).IgnoreColumns(true).ExecuteCommand();
            }
            else if (totalQty < query.Num)
            {
@@ -847,7 +848,7 @@
            {
                Guid = Guid.NewGuid(),
                ItemOutId = outId,
                ItemBarcode = newBarcode ?? query.barcode,
                ItemBarcode = newBarcode ,
                ItemNo = stockBarcode.ItemNo,
                LotNo = stockBarcode.LotNo,
                Quantity = query.Num,
@@ -882,7 +883,7 @@
                BillTypeId = 200, // p_bill_type_id
                TransactionCode = "209", // p_transaction_no 
                BusinessType = 1,
                ItemBarcode = newBarcode ?? query.barcode,
                ItemBarcode = newBarcode ,
                ItemNo = stockBarcode.ItemNo,
                LotNo = stockBarcode.LotNo,
                EpFlag = true,
@@ -961,7 +962,7 @@
            // 创建 插入日志
            var logService = new LogService();
            var LogMsg = "[PDA]" + query.Type + "。条码【" + query.barcode + "】 出库单号【" + outNo + "】";
            var LogMsg = "[PDA]" + query.Type + "。条码【" + newBarcode + "】 出库单号【" + outNo + "】";
            logService.CreateLog(db, query.userName, womdaa.Guid.ToString(), "WOMDAA", LogMsg, womdaa.Daa001);
@@ -984,7 +985,14 @@
            })
            .ToList();
        return (success, pendingList);
        var dto = new ProductionPickDto
        {
            daa001 = query.billNo,
            barcode = query.barcode,//原条码
            cfBarcode = newBarcode//拆分后条码
        };
        return dto;
    }
    #endregion
util/BillNo.cs
@@ -29,4 +29,26 @@
        return str;
    }
}
    public static string ExecuteBarcodeSplit(string cUser, string oldBarcode, decimal? qty)
    {
        var sbSql = new StringBuilder();
        sbSql.Append("DECLARE @outMsg nvarchar(2000), @outSum int, @barcodeNew varchar(200) ");
        sbSql.Append("EXEC prc_pda_bar_cf '").Append(cUser).Append("', '")
              .Append(oldBarcode).Append("', ").Append(qty)
              .Append(", @outMsg OUTPUT, @outSum OUTPUT, @barcodeNew OUTPUT ");
        sbSql.Append("SELECT @barcodeNew");
        var str = "";
        try
        {
            str =  DbHelperSQL.GetSingle(sbSql.ToString())?.ToString();
        }
        catch (Exception ex)
        {
            // 记录日志或处理异常
             str = "";
        }
        return str;
    }
}