1.成品入库(初步)
2.仓库入参新增字段备注
3.采购入库,其他入库主表新增仓库id
4.其他出库优化
已修改6个文件
已添加2个文件
228 ■■■■■ 文件已修改
Controllers/Warehouse/MesCprkController.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/service/WarehouseQuery.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesInvItemInCItems.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesInvItemIns.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesCprkManager.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesInvItemInCDetailsManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemQtManager.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemQtrkManager.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesCprkController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
using 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);
        }
    }
}
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; }
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; }
}
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; }
service/Warehouse/MesCprkManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
using 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();
                }
            }
        }
    }
}
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
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)
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();
            // æ£€æŸ¥æ˜¯å¦å®Œå…¨å…¥åº“并更新状态