11
啊鑫
2025-01-08 7e4085b2b97386abb8b7dc5626953dc79b1f1b45
11
已添加4个文件
已修改9个文件
1190 ■■■■ 文件已修改
Controllers/Warehouse/MesCgthSqController.cs 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesItemBlController.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/TransferOutController.cs 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Dto/service/OutItemDto.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesCgthSq.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesCgthSqDetail.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesInvItemArn.cs 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesInvItemIns.cs 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesCgthSqManager.cs 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesInvItemInCDetailsManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesInvItemOutsManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesItemTblManager.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/TransferOutManager.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesCgthSqController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,234 @@
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 MesCgthSqController : ControllerBase
{
    private readonly MesCgthSqManager m = new();
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰å·²ç»å®¡æ ¸çš„ç”³è¯·å•
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetMesCgthSq")]
    public ResponseResult GetMesCgthSq()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetMesCgthSq();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰å·²ç»å®¡æ ¸çš„ç”³è¯·å•
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetSumItem")]
    public ResponseResult GetSumItem(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetSumItem(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    //ScanCode
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰å·²ç»å®¡æ ¸çš„ç”³è¯·å•
    /// </summary>
    /// <returns></returns>
    [HttpPost("ScanCode")]
    public ResponseResult ScanCode(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.ScanCode(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetList();
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetById")]
    public ResponseResult GetById(int id)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetById(id);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤
    /// </summary>
    /// <returns></returns>
    [HttpPost("DeleteByIds")]
    public ResponseResult DeleteByIds([FromBody] object[] ids)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.DeleteByIds(ids);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ 
    /// </summary>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] MesCgthSq data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ è¿”å›žè‡ªå¢ž
    /// </summary>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity([FromBody] MesCgthSq data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹
    /// </summary>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] MesCgthSq data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
Controllers/Warehouse/MesItemBlController.cs
@@ -163,38 +163,35 @@
    }
    /// <summary>
    /// ç”Ÿäº§è¡¥æ–™å•条码拆分
    ///     ç”Ÿäº§è¡¥æ–™å•条码拆分
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>拆分结果和待处理列表</returns>
    /// <remarks>
    /// è¯·æ±‚示例:
    ///
    ///     è¯·æ±‚示例:
    ///     POST /api/MesItemBl/SplitBarcode
    ///     {
    ///         "billNo": "WO202401010001",  // å·¥å•号(必填)
    ///         "barcode": "BC001",          // æ¡ç å·(必填)
    ///         "userName": "admin",          // ç”¨æˆ·å(必填)
    ///         "blNo": "BL202401010001",    // è¡¥æ–™å•号(必填)
    ///         "Num": 10                    // æ‹†åˆ†æ•°é‡(必填,必须大于0)
    ///     "billNo": "WO202401010001",  // å·¥å•号(必填)
    ///     "barcode": "BC001",          // æ¡ç å·(必填)
    ///     "userName": "admin",          // ç”¨æˆ·å(必填)
    ///     "blNo": "BL202401010001",    // è¡¥æ–™å•号(必填)
    ///     "Num": 10                    // æ‹†åˆ†æ•°é‡(必填,必须大于0)
    ///     }
    ///
    /// ä¸šåŠ¡å¤„ç†ï¼š
    /// - éªŒè¯è¡¥æ–™å•状态
    /// - éªŒè¯æ¡ç åº“存信息
    /// - éªŒè¯æ‹†åˆ†æ•°é‡æ˜¯å¦åˆç†
    /// - æ‰§è¡Œæ¡ç æ‹†åˆ†äº‹åŠ¡å¤„ç†
    /// - æ›´æ–°å·¥å•和补料单相关数量
    ///
    /// è¿”回数据包含:
    /// - success: æ‹†åˆ†æ˜¯å¦æˆåŠŸ
    /// - pendingList: å¾…处理明细列表,包含:
    ///   * Bld012: ç‰©æ–™ID
    ///   * Bld002: ç‰©æ–™ç¼–号
    ///   * Bld003: ç‰©æ–™åç§°
    ///   * Bld004: ç‰©æ–™è§„æ ¼
    ///   * Bld007: è®¡åˆ’数量
    ///   * Bld008: å·²è¡¥æ•°é‡
    ///     ä¸šåŠ¡å¤„ç†ï¼š
    ///     - éªŒè¯è¡¥æ–™å•状态
    ///     - éªŒè¯æ¡ç åº“存信息
    ///     - éªŒè¯æ‹†åˆ†æ•°é‡æ˜¯å¦åˆç†
    ///     - æ‰§è¡Œæ¡ç æ‹†åˆ†äº‹åŠ¡å¤„ç†
    ///     - æ›´æ–°å·¥å•和补料单相关数量
    ///     è¿”回数据包含:
    ///     - success: æ‹†åˆ†æ˜¯å¦æˆåŠŸ
    ///     - pendingList: å¾…处理明细列表,包含:
    ///     * Bld012: ç‰©æ–™ID
    ///     * Bld002: ç‰©æ–™ç¼–号
    ///     * Bld003: ç‰©æ–™åç§°
    ///     * Bld004: ç‰©æ–™è§„æ ¼
    ///     * Bld007: è®¡åˆ’数量
    ///     * Bld008: å·²è¡¥æ•°é‡
    /// </remarks>
    /// <response code="200">拆分成功</response>
    /// <response code="400">拆分失败,返回具体错误信息</response>
Controllers/Warehouse/TransferOutController.cs
@@ -7,7 +7,7 @@
namespace NewPdaSqlServer.Controllers.Warehouse;
/// <summary>
/// è°ƒæ‹¨å‡ºåº“相关接口
///     è°ƒæ‹¨å‡ºåº“相关接口
/// </summary>
[Route("api/[controller]")]
[ApiController]
@@ -18,7 +18,7 @@
    #region åŸºç¡€CRUD
    /// <summary>
    /// èŽ·å–æ‰€æœ‰è°ƒæ‹¨å‡ºåº“å•
    ///     èŽ·å–æ‰€æœ‰è°ƒæ‹¨å‡ºåº“å•
    /// </summary>
    /// <returns>调拨出库单列表</returns>
    [HttpPost("GetList")]
@@ -46,11 +46,11 @@
    #region è°ƒæ‹¨å‡ºåº“业务
    /// <summary>
    /// èŽ·å–æœªå®Œæˆçš„è°ƒæ‹¨å‡ºåº“å•å·åˆ—è¡¨
    ///     èŽ·å–æœªå®Œæˆçš„è°ƒæ‹¨å‡ºåº“å•å·åˆ—è¡¨
    /// </summary>
    /// <returns>未完成的调拨出库单号列表</returns>
    /// <remarks>
    /// èŽ·å–ç”³è¯·æ•°é‡(sq)不等于已扫数量(ys)的调拨出库单号列表
    ///     èŽ·å–ç”³è¯·æ•°é‡(sq)不等于已扫数量(ys)的调拨出库单号列表
    /// </remarks>
    /// <response code="200">成功获取调拨出库单号列表</response>
    /// <response code="400">获取失败</response>
@@ -75,33 +75,33 @@
    }
    /// <summary>
    /// æ ¹æ®å•据号获取待处理的调拨出库明细列表
    ///     æ ¹æ®å•据号获取待处理的调拨出库明细列表
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>待处理的调拨出库明细列表</returns>
    /// <remarks>
    /// è¯·æ±‚示例:
    ///
    ///     è¯·æ±‚示例:
    ///     POST /api/TransferOut/GetTransferOutDetailListByBillNo
    ///     {
    ///         "billNo": "DB202401010001"  // è°ƒæ‹¨å•号(必填)
    ///     "billNo": "DB202401010001"  // è°ƒæ‹¨å•号(必填)
    ///     }
    ///
    /// è¿”回未完成的明细记录(ShNum-YsNum>0),包含:
    /// - ItemNo: ç‰©æ–™ç¼–号
    /// - ItemModel: ç‰©æ–™è§„æ ¼
    /// - ShNum: ç”³è¯·æ•°é‡
    /// - YsNum: å·²æ‰«æ•°é‡
    ///     è¿”回未完成的明细记录(ShNum-YsNum>0),包含:
    ///     - ItemNo: ç‰©æ–™ç¼–号
    ///     - ItemModel: ç‰©æ–™è§„æ ¼
    ///     - ShNum: ç”³è¯·æ•°é‡
    ///     - YsNum: å·²æ‰«æ•°é‡
    /// </remarks>
    /// <response code="200">成功获取调拨出库明细</response>
    /// <response code="400">获取失败,返回具体错误信息</response>
    [HttpPost("GetTransferOutDetailListByBillNo")]
    public ResponseResult GetTransferOutDetailListByBillNo([FromBody] WarehouseQuery query)
    public ResponseResult GetTransferOutDetailListByBillNo(
        [FromBody] WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.GetTransferOutDetailListByBillNo(query);
            resultInfos.tbBillList =
                _manager.GetTransferOutDetailListByBillNo(query);
            return new ResponseResult
            {
                status = 0,
@@ -116,30 +116,27 @@
    }
    /// <summary>
    /// æ‰«ææ¡ç è¿›è¡Œè°ƒæ‹¨å‡ºåº“处理
    ///     æ‰«ææ¡ç è¿›è¡Œè°ƒæ‹¨å‡ºåº“处理
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>处理结果和待处理明细</returns>
    /// <remarks>
    /// è¯·æ±‚示例:
    ///
    ///     è¯·æ±‚示例:
    ///     POST /api/TransferOut/ScanMoveBarcode
    ///     {
    ///         "billNo": "DB202401010001",  // è°ƒæ‹¨å•号(必填)
    ///         "userName": "admin",          // ç”¨æˆ·å(必填)
    ///         "barcode": "BC001"           // æ¡ç å·(必填)
    ///     "billNo": "DB202401010001",  // è°ƒæ‹¨å•号(必填)
    ///     "userName": "admin",          // ç”¨æˆ·å(必填)
    ///     "barcode": "BC001"           // æ¡ç å·(必填)
    ///     }
    ///
    /// ä¸šåŠ¡å¤„ç†ï¼š
    /// - éªŒè¯è°ƒæ‹¨å•状态
    /// - éªŒè¯æ¡ç åº“存信息
    /// - éªŒè¯ä»“库一致性
    /// - éªŒè¯æ•°é‡æ˜¯å¦è¶…出未扫数量
    /// - æ‰§è¡Œè°ƒæ‹¨å‡ºåº“事务处理
    ///
    /// è¿”回数据包含:
    /// - form: å¤„理结果表单
    /// - items: å¾…处理明细列表
    ///     ä¸šåŠ¡å¤„ç†ï¼š
    ///     - éªŒè¯è°ƒæ‹¨å•状态
    ///     - éªŒè¯æ¡ç åº“存信息
    ///     - éªŒè¯ä»“库一致性
    ///     - éªŒè¯æ•°é‡æ˜¯å¦è¶…出未扫数量
    ///     - æ‰§è¡Œè°ƒæ‹¨å‡ºåº“事务处理
    ///     è¿”回数据包含:
    ///     - form: å¤„理结果表单
    ///     - items: å¾…处理明细列表
    /// </remarks>
    /// <response code="200">扫描成功</response>
    /// <response code="400">扫描失败,返回具体错误信息</response>
Dto/service/OutItemDto.cs
@@ -12,5 +12,5 @@
    public decimal? Quantity { get; set; }
    public List<MesInvItemOutItems>? SumItem { get; set; }
    public List<MesCgthSqDetail>? SumItem { get; set; }
}
entity/MesCgthSq.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
using SqlSugar;
namespace NewPdaSqlServer.entity;
/// <summary>
///     é‡‡è´­é€€è´§ç”³è¯·
/// </summary>
[SugarTable("MES_CGTH_SQ")]
public class MesCgthSq
{
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "ID")]
    public Guid Id { get; set; }
    /// <summary>
    ///     å•据编码
    /// </summary>
    [SugarColumn(ColumnName = "BILL_NO")]
    public string BillNo { get; set; }
    /// <summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string CreateBy { get; set; }
    /// <summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     æœ€åŽè·Ÿæ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "LAST_UPDATE_USER")]
    public string LastUpdateUser { get; set; }
    /// <summary>
    ///     æœ€åŽä¿®æ”¹æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LAST_UPDATE_TIME")]
    public DateTime? LastUpdateTime { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_USER")]
    public string CheckUser { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_DATE")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///     å®¡æ ¸çŠ¶æ€
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public bool? Status { get; set; }
    /// <summary>
    ///     æ˜¯å¦å®Œæˆ
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "IS_FINISH")]
    public bool? IsFinish { get; set; }
    /// <summary>
    ///     é€€æ–™æ–¹å¼
    /// </summary>
    [SugarColumn(ColumnName = "RETURN_METHOD")]
    public string ReturnMethod { get; set; }
    /// <summary>
    ///     é€€æ–™ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "RETURN_TYPE")]
    public string ReturnType { get; set; }
    /// <summary>
    ///     ä»“库id
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_ID")]
    public int? DepotId { get; set; }
    /// <summary>
    ///     ä¾›åº”商id
    /// </summary>
    [SugarColumn(ColumnName = "SUPP_ID")]
    public int? SuppId { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string Remark { get; set; }
    /// <summary>
    ///     å§”外标识
    /// </summary>
    [SugarColumn(ColumnName = "IS_OUT")]
    public bool? IsOut { get; set; }
    /// <summary>
    ///     é€€è´§ç»„织ID
    /// </summary>
    [SugarColumn(ColumnName = "TH_ORG_ID")]
    public string ThOrgId { get; set; }
}
entity/MesCgthSqDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
using SqlSugar;
namespace NewPdaSqlServer.entity;
/// <summary>
///     é‡‡è´­é€€è´§ç”³è¯·æ˜Žç»†
/// </summary>
[SugarTable("MES_CGTH_SQ_DETAIL")]
public class MesCgthSqDetail
{
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public Guid Id { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "MID")]
    public Guid? Mid { get; set; }
    /// <summary>
    ///     å…¥åº“单号
    /// </summary>
    [SugarColumn(ColumnName = "INV_BILL_NO")]
    public string InvBillNo { get; set; }
    /// <summary>
    ///     å…¥åº“单行号
    /// </summary>
    [SugarColumn(ColumnName = "INV_WORK_LINE")]
    public int? InvWorkLine { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•
    /// </summary>
    [SugarColumn(ColumnName = "EBELN")]
    public string Ebeln { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•id
    /// </summary>
    [SugarColumn(ColumnName = "EID")]
    public int? Eid { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•行id
    /// </summary>
    [SugarColumn(ColumnName = "ERPID")]
    public int? Erpid { get; set; }
    /// <summary>
    ///     ç‰©æ–™id
    /// </summary>
    [SugarColumn(ColumnName = "ITEM_ID")]
    public int? ItemId { get; set; }
    /// <summary>
    ///     ç”³è¯·æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "SQ_NUM")]
    public decimal? SqNum { get; set; }
    /// <summary>
    ///     å·²æ‰«æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "YS_NUM")]
    public decimal? YsNum { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string Remark { get; set; }
    /// <summary>
    ///     æ˜¯å¦å®Œæˆ
    /// </summary>
    [SugarColumn(ColumnName = "IS_FINISH")]
    public bool? IsFinish { get; set; }
    /// <summary>
    ///     åºå·
    /// </summary>
    [SugarColumn(ColumnName = "ORDER_NO")]
    public int? OrderNo { get; set; }
    /// <summary>
    ///     å…¥åº“明细的guid
    /// </summary>
    [SugarColumn(ColumnName = "RKMX_GUID")]
    public Guid? RkmxGuid { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemName { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemModel { get; set; }
    [SugarColumn(IsIgnore = true)] public string? ItemNo { get; set; }
}
entity/MesInvItemArn.cs
@@ -8,243 +8,243 @@
public class MesInvItemArn
{
    /// <summary>
    /// ä¸»é”®
    /// é»˜è®¤å€¼: (newid())
    ///</summary>
    ///     ä¸»é”®
    ///     é»˜è®¤å€¼: (newid())
    /// </summary>
    [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
    /// <summary>
    /// åˆ°è´§å•号
    ///</summary>
    ///     åˆ°è´§å•号
    /// </summary>
    [SugarColumn(ColumnName = "bill_no")]
    public string? BillNo { get; set; }
    /// <summary>
    /// çŠ¶æ€|0-未审核1-审核入库\结案
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     çŠ¶æ€|0-未审核1-审核入库\结案
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "status")]
    public int? Status { get; set; }
    /// <summary>
    /// åŽŸå› 
    ///</summary>
    ///     åŽŸå› 
    /// </summary>
    [SugarColumn(ColumnName = "reason")]
    public string? Reason { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    ///</summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "create_by")]
    public string? CreateBy { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    ///</summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "create_date")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    /// æœ€åŽæ›´æ–°äºº
    ///</summary>
    ///     æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "lastupdate_by")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    /// æœ€åŽæ›´æ–°æ—¶é—´
    ///</summary>
    ///     æœ€åŽæ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "lastupdate_date")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    /// å•据类型ID
    ///</summary>
    ///     å•据类型ID
    /// </summary>
    [SugarColumn(ColumnName = "bill_type_id")]
    public int? BillTypeId { get; set; }
    /// <summary>
    /// äº‹åŠ¡ç±»åž‹ID
    ///</summary>
    ///     äº‹åŠ¡ç±»åž‹ID
    /// </summary>
    [SugarColumn(ColumnName = "transaction_id")]
    public int? TransactionId { get; set; }
    /// <summary>
    /// å¤‡æ³¨
    ///</summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "remark")]
    public string? Remark { get; set; }
    /// <summary>
    /// é€è´§å•号
    ///</summary>
    ///     é€è´§å•号
    /// </summary>
    [SugarColumn(ColumnName = "paper_bill_no")]
    public string? PaperBillNo { get; set; }
    /// <summary>
    /// é€€æ–™äººå·¥å·
    ///</summary>
    ///     é€€æ–™äººå·¥å·
    /// </summary>
    [SugarColumn(ColumnName = "user_no_back")]
    public string? UserNoBack { get; set; }
    /// <summary>
    /// æäº¤äºº
    ///</summary>
    ///     æäº¤äºº
    /// </summary>
    [SugarColumn(ColumnName = "check_user")]
    public string? CheckUser { get; set; }
    /// <summary>
    /// æäº¤æ—¥æœŸ
    ///</summary>
    ///     æäº¤æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "check_date")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    /// å…¥åº“日期
    ///</summary>
    ///     å…¥åº“日期
    /// </summary>
    [SugarColumn(ColumnName = "ins_date")]
    public DateTime? InsDate { get; set; }
    /// <summary>
    /// æ£€éªŒç»“æžœ
    ///</summary>
    ///     æ£€éªŒç»“æžœ
    /// </summary>
    [SugarColumn(ColumnName = "check_res")]
    public string? CheckRes { get; set; }
    /// <summary>
    /// å·²æ¡æ•°é‡
    ///</summary>
    ///     å·²æ¡æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "check_qty")]
    public int? CheckQty { get; set; }
    /// <summary>
    /// ä»“库id
    ///</summary>
    ///     ä»“库id
    /// </summary>
    [SugarColumn(ColumnName = "depots_id")]
    public string? DepotsId { get; set; }
    /// <summary>
    /// äº‹åŠ¡ç±»åž‹ç¼–ç 
    ///</summary>
    ///     äº‹åŠ¡ç±»åž‹ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "transction_no")]
    public string? TransctionNo { get; set; }
    /// <summary>
    /// ä¾›åº”商id
    ///</summary>
    ///     ä¾›åº”商id
    /// </summary>
    [SugarColumn(ColumnName = "supp_id")]
    public string? SuppId { get; set; }
    /// <summary>
    /// æäº¤çŠ¶æ€
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     æäº¤çŠ¶æ€
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "fstatus")]
    public bool? Fstatus { get; set; }
    /// <summary>
    /// å·¥åŽ‚ç¼–ç 
    ///</summary>
    ///     å·¥åŽ‚ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "factory")]
    public string? Factory { get; set; }
    /// <summary>
    /// æ˜¯å¦å·²å›žå†™SAP
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     æ˜¯å¦å·²å›žå†™SAP
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "sapstatus")]
    public int? Sapstatus { get; set; }
    /// <summary>
    /// æ˜¯å¦æ£€éªŒ
    ///</summary>
    ///     æ˜¯å¦æ£€éªŒ
    /// </summary>
    [SugarColumn(ColumnName = "ischeck")]
    public bool? Ischeck { get; set; }
    /// <summary>
    /// å®¡æ ¸å…¥åº“人
    ///</summary>
    ///     å®¡æ ¸å…¥åº“人
    /// </summary>
    [SugarColumn(ColumnName = "insby")]
    public string? Insby { get; set; }
    /// <summary>
    /// å…¬å¸ä»£ç 
    ///</summary>
    ///     å…¬å¸ä»£ç 
    /// </summary>
    [SugarColumn(ColumnName = "company")]
    public string? Company { get; set; }
    /// <summary>
    /// æ€¥æ–™æ ‡è¯†
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     æ€¥æ–™æ ‡è¯†
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "urgent_flag")]
    public bool? UrgentFlag { get; set; }
    /// <summary>
    /// å†²é”€äº‹åŠ¡ç±»åž‹ç¼–ç 
    ///</summary>
    ///     å†²é”€äº‹åŠ¡ç±»åž‹ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "mttransction_no")]
    public int? MttransctionNo { get; set; }
    /// <summary>
    /// IQC检验单号
    ///</summary>
    ///     IQC检验单号
    /// </summary>
    [SugarColumn(ColumnName = "iqc_release_no")]
    public string? IqcReleaseNo { get; set; }
    /// <summary>
    /// æ˜¯å¦æ˜¾ç¤º
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     æ˜¯å¦æ˜¾ç¤º
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "is_visual")]
    public int? IsVisual { get; set; }
    /// <summary>
    /// 0=采购,1=委外
    /// é»˜è®¤å€¼: ((1))
    ///</summary>
    ///     0=采购,1=委外
    ///     é»˜è®¤å€¼: ((1))
    /// </summary>
    [SugarColumn(ColumnName = "f_type")]
    public bool? FType { get; set; }
    /// <summary>
    /// ERP到货单ID
    ///</summary>
    ///     ERP到货单ID
    /// </summary>
    [SugarColumn(ColumnName = "ebeln_k3id")]
    public string? EbelnK3id { get; set; }
    /// <summary>
    /// æ¡ç æ¡å°è¿›åº¦
    ///</summary>
    ///     æ¡ç æ¡å°è¿›åº¦
    /// </summary>
    [SugarColumn(ColumnName = "barcode_ratio")]
    public int? BarcodeRatio { get; set; }
    /// <summary>
    /// ERP单号
    ///</summary>
    ///     ERP单号
    /// </summary>
    [SugarColumn(ColumnName = "erpno")]
    public string? Erpno { get; set; }
    /// <summary>
    /// æ˜¯å¦å·²é€€è´§0-未退货,1-退货
    ///</summary>
    ///     æ˜¯å¦å·²é€€è´§0-未退货,1-退货
    /// </summary>
    [SugarColumn(ColumnName = "thstatus")]
    public int? Thstatus { get; set; }
    /// <summary>
    /// ERP退货单号
    ///</summary>
    ///     ERP退货单号
    /// </summary>
    [SugarColumn(ColumnName = "erpthno")]
    public string? Erpthno { get; set; }
    /// <summary>
    /// ç»„织编码
    ///</summary>
    ///     ç»„织编码
    /// </summary>
    [SugarColumn(ColumnName = "organize_code")]
    public string? OrganizeCode { get; set; }
    /// <summary>
    /// æ”¶æ–™ç»„织
    ///</summary>
    ///     æ”¶æ–™ç»„织
    /// </summary>
    [SugarColumn(ColumnName = "ReceiveOrgId")]
    public string? ReceiveOrgId { get; set; }
entity/MesInvItemIns.cs
@@ -9,321 +9,299 @@
public class MesInvItemIns
{
    /// <summary>
    /// ID(SEQ_INV_ID)
    /// é»˜è®¤å€¼: (newid())
    ///</summary>
    ///     ID(SEQ_INV_ID)
    ///     é»˜è®¤å€¼: (newid())
    /// </summary>
    [SugarColumn(ColumnName = "GUID", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
    /// <summary>
    /// å…¥åº“单号
    ///</summary>
    ///     å…¥åº“单号
    /// </summary>
    [SugarColumn(ColumnName = "BILL_NO")]
    public string? BillNo { get; set; }
    /// <summary>
    /// çŠ¶æ€|0-未审核1-审核入库\\结案
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     çŠ¶æ€|0-未审核1-审核入库\\结案
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "STATUS")]
    public byte? Status { get; set; }
    /// <summary>
    /// ä»“库
    ///</summary>
    ///     ä»“库
    /// </summary>
    [SugarColumn(ColumnName = "DEPOTS_ID")]
    public long? DepotsId { get; set; }
    /// <summary>
    /// åŽŸå› 
    ///</summary>
    ///     åŽŸå› 
    /// </summary>
    [SugarColumn(ColumnName = "REASON")]
    public string? Reason { get; set; }
    /// <summary>
    /// åˆ›å»ºäºº
    ///</summary>
    ///     åˆ›å»ºäºº
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_BY")]
    public string? CreateBy { get; set; }
    /// <summary>
    /// åˆ›å»ºæ—¶é—´
    ///</summary>
    ///     åˆ›å»ºæ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    /// æœ€åŽæ›´æ–°äºº
    ///</summary>
    ///     æœ€åŽæ›´æ–°äºº
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_BY")]
    public string? LastupdateBy { get; set; }
    /// <summary>
    /// æœ€åŽæ›´æ–°æ—¶é—´
    ///</summary>
    ///     æœ€åŽæ›´æ–°æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
    public DateTime? LastupdateDate { get; set; }
    /// <summary>
    /// å•据类型ID
    ///</summary>
    ///     å•据类型ID
    /// </summary>
    [SugarColumn(ColumnName = "BILL_TYPE_ID")]
    public long? BillTypeId { get; set; }
    /// <summary>
    /// äº‹åŠ¡ç±»åž‹ID
    ///</summary>
    ///     äº‹åŠ¡ç±»åž‹ID
    /// </summary>
    [SugarColumn(ColumnName = "TRANSACTION_ID")]
    public long? TransactionId { get; set; }
    /// <summary>
    /// å¤‡æ³¨
    ///</summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "REMARK")]
    public string? Remark { get; set; }
    /// <summary>
    /// é€è´§å•号
    ///</summary>
    ///     é€è´§å•号
    /// </summary>
    [SugarColumn(ColumnName = "PAPER_BILL_NO")]
    public string? PaperBillNo { get; set; }
    /// <summary>
    /// é€€æ–™äººå·¥å·
    ///</summary>
    ///     é€€æ–™äººå·¥å·
    /// </summary>
    [SugarColumn(ColumnName = "USER_NO_BACK")]
    public string? UserNoBack { get; set; }
    /// <summary>
    /// å®¡æ ¸äºº
    ///</summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_USER")]
    public string? CheckUser { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_DATE")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "TASK_NO")]
    public string? TaskNo { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "INS_DATE")]
    public DateTime? InsDate { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_RES")]
    public string? CheckRes { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_QTY")]
    public long? CheckQty { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "MMLIST")]
    public string? Mmlist { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "EBELN")]
    public string? Ebeln { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "DEPOTS_CODE")]
    public string? DepotsCode { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "TRANSCTION_NO")]
    public string? TransctionNo { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "SUPP_NO")]
    public string? SuppNo { get; set; }
    /// <summary>
    /// çŠ¶æ€ | 0-未审核 1-审核入库/结案
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     çŠ¶æ€ | 0-未审核 1-审核入库/结案
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "FSTATUS")]
    public byte? Fstatus { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "FACTORY")]
    public string? Factory { get; set; }
    /// <summary>
    ///
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "SAPSTATUS")]
    public byte? Sapstatus { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "SAPNO")]
    public string? Sapno { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "SAPYEAR")]
    public short? Sapyear { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "SAPTEXT")]
    public string? Saptext { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "ISCHECK")]
    public byte? Ischeck { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "INSBY")]
    public string? Insby { get; set; }
    /// <summary>
    ///
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "IS_VISUAL")]
    public byte? IsVisual { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "COMPANY")]
    public string? Company { get; set; }
    /// <summary>
    ///
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "URGENT_FLAG")]
    public byte? UrgentFlag { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "LINE_NO")]
    public string? LineNo { get; set; }
    /// <summary>
    /// å†²é”€äº‹åŠ¡ç±»åž‹ç¼–ç 
    ///</summary>
    ///     å†²é”€äº‹åŠ¡ç±»åž‹ç¼–ç 
    /// </summary>
    [SugarColumn(ColumnName = "MTTRANSCTION_NO")]
    public long? MttransctionNo { get; set; }
    /// <summary>
    /// å·¥å•行号
    ///</summary>
    ///     å·¥å•行号
    /// </summary>
    [SugarColumn(ColumnName = "TASK_LINO")]
    public string? TaskLino { get; set; }
    /// <summary>
    /// æŠ•料通知单单号
    ///</summary>
    ///     æŠ•料通知单单号
    /// </summary>
    [SugarColumn(ColumnName = "FBILLNO")]
    public string? Fbillno { get; set; }
    /// <summary>
    /// æŠ•料单行号
    ///</summary>
    ///     æŠ•料单行号
    /// </summary>
    [SugarColumn(ColumnName = "FBILL_LINO")]
    public string? FbillLino { get; set; }
    /// <summary>
    /// å®¢æˆ·ç¼–号
    ///</summary>
    ///     å®¢æˆ·ç¼–号
    /// </summary>
    [SugarColumn(ColumnName = "CUST_NO")]
    public string? CustNo { get; set; }
    /// <summary>
    /// å®¢æˆ·åç§°
    ///</summary>
    ///     å®¢æˆ·åç§°
    /// </summary>
    [SugarColumn(ColumnName = "CUST_NAME")]
    public string? CustName { get; set; }
    /// <summary>
    /// IQC检验单号
    ///</summary>
    ///     IQC检验单号
    /// </summary>
    [SugarColumn(ColumnName = "IQC_RELEASE_NO")]
    public string? IqcReleaseNo { get; set; }
    /// <summary>
    /// åˆ°è´§å•号/其它入库单号
    ///</summary>
    ///     åˆ°è´§å•号/其它入库单号
    /// </summary>
    [SugarColumn(ColumnName = "CBILL_NO")]
    public string? CbillNo { get; set; }
    /// <summary>
    /// 0 ç”³è¯·å•,1入库单标识
    /// é»˜è®¤å€¼: ((0))
    ///</summary>
    ///     0 ç”³è¯·å•,1入库单标识
    ///     é»˜è®¤å€¼: ((0))
    /// </summary>
    [SugarColumn(ColumnName = "PICK_INS")]
    public byte? PickIns { get; set; }
    /// <summary>
    /// å…¥åº“审核人
    ///</summary>
    ///     å…¥åº“审核人
    /// </summary>
    [SugarColumn(ColumnName = "FCHECK_USER")]
    public string? FcheckUser { get; set; }
    /// <summary>
    /// å…¥åº“审核日期
    ///</summary>
    ///     å…¥åº“审核日期
    /// </summary>
    [SugarColumn(ColumnName = "FCHECK_DATE")]
    public DateTime? FcheckDate { get; set; }
    /// <summary>
    /// ä»»åŠ¡æ±‡æŠ¥å•/工单号(成品入库、退料)
    ///</summary>
    ///     ä»»åŠ¡æ±‡æŠ¥å•/工单号(成品入库、退料)
    /// </summary>
    [SugarColumn(ColumnName = "RBILL_NO")]
    public string? RbillNo { get; set; }
    /// <summary>
    /// æŠ¥å·¥äºº
    ///</summary>
    ///     æŠ¥å·¥äºº
    /// </summary>
    [SugarColumn(ColumnName = "BGR")]
    public string? Bgr { get; set; }
    /// <summary>
    ///
    ///</summary>
    /// </summary>
    [SugarColumn(ColumnName = "SUPP_ID")]
    public string? SuppId { get; set; }
    /// <summary>
    /// æ”¶æ–™ç»„织
    ///</summary>
    ///     æ”¶æ–™ç»„织
    /// </summary>
    [SugarColumn(ColumnName = "ReceiveOrgId")]
    public string? ReceiveOrgId { get; set; }
service/Warehouse/MesCgthSqManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@
using System.Data;
using System.Data.SqlClient;
using Masuit.Tools;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using SqlSugar;
namespace NewPdaSqlServer.service.Warehouse;
public class MesCgthSqManager : Repository<MesCgthSq>
{
    public List<MesCgthSq> GetMesCgthSq()
    {
        return Db.Queryable<MesCgthSq>()
            .Where(s => s.Status == true)
            .ToList();
    }
    public OutItemDto GetSumItem(WarehouseQuery query)
    {
        var mesInvItemOuts = base.GetSingle(it => it.BillNo == query.billNo);
        if (mesInvItemOuts == null) throw new Exception("采购退货申请单不存在");
        var dto = new OutItemDto();
        dto.SumItem = GetItems(query);
        var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
            .Where(a => a.ItemBarcode == query.barcode).Single();
        if (mesInvItemStocks == null) return dto;
        var mesItems = Db.Queryable<MesItems>()
            .Where(s => s.Id == mesInvItemStocks.ItemId).Single();
        dto.ItemNo = mesItems.ItemNo;
        dto.Quantity = mesInvItemStocks.Quantity;
        return dto;
    }
    public List<MesCgthSqDetail> GetItems(WarehouseQuery query)
    {
        // å°è¯•å°†query.id转换为Guid类型,如果转换失败,则抛出异常
        var parsedGuid = Guid.Empty;
        if (string.IsNullOrEmpty(query.id))
            return new List<MesCgthSqDetail>(); // å¦‚æžœquery.id为空,则返回空列表
        var isValid = Guid.TryParse(query.id, out parsedGuid);
        if (!isValid)
            throw new ApplicationException("GUID转换错误"); // å¦‚果转换失败,则抛出异常
        // ä½¿ç”¨SqlSugar框架查询MesInvItemOutItems和MesItems表,根据ItemId进行内连接
        var mesInvItemOutItemsList = Db.Queryable<MesCgthSqDetail, MesItems>(
                (c, s) => new object[]
                {
                    JoinType.Inner, c.ItemId == s.Id // å†…连接条件
                }).Where((c, s) => c.Mid == parsedGuid) // æ ¹æ®ItemOutId过滤
            .Select<MesCgthSqDetail>((c, s) =>
                new MesCgthSqDetail // é€‰æ‹©å¹¶æ˜ å°„到MesInvItemOutItems对象
                {
                    Id = c.Id,
                    Mid = c.Mid,
                    InvBillNo = c.InvBillNo,
                    InvWorkLine = c.InvWorkLine,
                    Ebeln = c.Ebeln,
                    Eid = c.Eid,
                    Erpid = c.Erpid,
                    SqNum = c.SqNum,
                    YsNum = c.YsNum,
                    RkmxGuid = c.RkmxGuid,
                    Remark = c.Remark,
                    ItemNo = s.ItemNo, // ä»ŽMesItems表中获取ItemNo
                    ItemName = s.ItemName, // ä»ŽMesItems表中获取ItemName
                    ItemModel = s.ItemModel, // ä»ŽMesItems表中获取ItemModel
                    ItemId = c.ItemId,
                }).ToList(); // å°†æŸ¥è¯¢ç»“果转换为列表
        return mesInvItemOutItemsList; // è¿”回处理后的列表
    }
    public ProductionPickDto ScanCode(WarehouseQuery query)
    {
        var _strMsg = "";
        var _intSum = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            if (query.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
            if (query.billNo.IsNullOrEmpty()) throw new Exception("领料单号不允许为空");
            if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
            using (var cmd = new SqlCommand("[prc_pda_CGTH]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@outMsg", SqlDbType.NVarChar, 300),
                        new("@outSum", SqlDbType.NVarChar, 300),
                        new("@barcode_num", SqlDbType.NVarChar, 300),
                        new("@split_num", SqlDbType.NVarChar, 300),
                        new("@c_User", query.userName),
                        new("@p_biLL_no", query.billNo),
                        new("@p_item_barcode", query.barcode)
                    };
                    parameters[0].Direction = ParameterDirection.Output;
                    parameters[1].Direction = ParameterDirection.Output;
                    parameters[2].Direction = ParameterDirection.Output;
                    parameters[3].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 barcodeNum = parameters[2].Value.ToString();
                    var splitNum = parameters[3].Value.ToString();
                    var result = Convert.ToInt32(_intSum);
                    if (result <= 0) throw new Exception(_strMsg);
                    var dto = new ProductionPickDto
                    {
                        daa001 = query.daa001,
                        barcodeNum = barcodeNum,
                        splitNum = splitNum,
                        barcode = query.barcode
                    };
                    return dto;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
}
service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -48,7 +48,7 @@
        //                  && it.EbelnLine == itemBarcodeDetails.WorkLine
        //                  && it.Ebeln == itemBarcodeDetails.WorkNo)
        //     .First();
        var inventoryDetails = Db.Queryable<MesInvItemArnDetail>()
            .Where(it => it.Guid == itemBarcodeDetails.AboutGuid)
            .First();
service/Warehouse/MesInvItemOutsManager.cs
@@ -405,7 +405,7 @@
        var dto = new OutItemDto();
        dto.SumItem = GetItems(query);
        //dto.SumItem = GetItems(query);
        var mesInvItemStocks = Db.Queryable<MesInvItemStocks>()
            .Where(a => a.ItemBarcode == query.barcode).Single();
service/Warehouse/MesItemTblManager.cs
@@ -8,12 +8,12 @@
namespace NewPdaSqlServer.service.Warehouse;
/// <summary>
/// MES物料表管理类
///     MES物料表管理类
/// </summary>
public class MesItemTblManager : Repository<MesItemTbl>
{
    /// <summary>
    /// èŽ·å–ç”Ÿäº§é€€æ–™å•å·åˆ—è¡¨
    ///     èŽ·å–ç”Ÿäº§é€€æ–™å•å·åˆ—è¡¨
    /// </summary>
    /// <returns>退料单号列表</returns>
    public List<string> GetSCTLBillNo(WarehouseQuery query)
@@ -28,7 +28,7 @@
    }
    /// <summary>
    /// æ ¹æ®å•号获取MES物料表明细
    ///     æ ¹æ®å•号获取MES物料表明细
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>物料明细列表</returns>
@@ -65,7 +65,7 @@
    }
    /// <summary>
    /// ç”Ÿäº§é€€æ–™æ‰«æåº“位
    ///     ç”Ÿäº§é€€æ–™æ‰«æåº“位
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>库位信息</returns>
@@ -92,7 +92,7 @@
    }
    /// <summary>
    /// ç”Ÿäº§é€€æ–™æ‰«ææ¡ç 
    ///     ç”Ÿäº§é€€æ–™æ‰«ææ¡ç 
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>处理结果</returns>
@@ -445,8 +445,9 @@
            // æ£€æŸ¥å¿…要的插入操作是否都成功执行
            var minimumExpectedOperations = 3; // è‡³å°‘需要执行的插入操作数
            if (totalResult < minimumExpectedOperations)
                throw new Exception($"关键数据插入失败,预期至少{minimumExpectedOperations}个操作,实际执行{totalResult}个操作");
            if (totalResult < minimumExpectedOperations)
                throw new Exception(
                    $"关键数据插入失败,预期至少{minimumExpectedOperations}个操作,实际执行{totalResult}个操作");
            return totalResult;
        });
@@ -458,7 +459,7 @@
    /// <summary>
    /// å§”外退料扫描条码(生产退料的逻辑,只是调整了几个字段)
    ///     å§”外退料扫描条码(生产退料的逻辑,只是调整了几个字段)
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>处理结果</returns>
@@ -527,7 +528,7 @@
        var C_MES_ITEM_TBL = Db.Queryable<MesItemTbl>()
            .Where(a => a.BillNo == c_mes_inv_item_barcodes.BillNo
                        && (a.Tbl013 ?? 0) == 1).First();
        if (C_MES_ITEM_TBL == null) throw new Exception("申请单已撤回,无法扫码!");
        if (C_MES_ITEM_TBL.Tbl020 == 1) throw new Exception("扫码完成,申请单已完结!");
@@ -811,8 +812,9 @@
            // æ£€æŸ¥å¿…要的插入操作是否都成功执行
            var minimumExpectedOperations = 3; // è‡³å°‘需要执行的插入操作数
            if (totalResult < minimumExpectedOperations)
                throw new Exception($"关键数据插入失败,预期至少{minimumExpectedOperations}个操作,实际执行{totalResult}个操作");
            if (totalResult < minimumExpectedOperations)
                throw new Exception(
                    $"关键数据插入失败,预期至少{minimumExpectedOperations}个操作,实际执行{totalResult}个操作");
            return totalResult;
        });
service/Warehouse/TransferOutManager.cs
@@ -7,13 +7,13 @@
namespace NewPdaSqlServer.service.Warehouse;
/// <summary>
/// è°ƒæ‹¨å‡ºåº“管理类
/// è´Ÿè´£å¤„理调拨出库相关的业务逻辑
///     è°ƒæ‹¨å‡ºåº“管理类
///     è´Ÿè´£å¤„理调拨出库相关的业务逻辑
/// </summary>
public class TransferOutManager : Repository<TransferOut>
{
    /// <summary>
    /// èŽ·å–æœªå®Œæˆçš„è°ƒæ‹¨å‡ºåº“å•å·åˆ—è¡¨
    ///     èŽ·å–æœªå®Œæˆçš„è°ƒæ‹¨å‡ºåº“å•å·åˆ—è¡¨
    /// </summary>
    /// <returns>未完成的调拨出库单号列表</returns>
    public List<string> GetTransferOutNoList()
@@ -28,8 +28,8 @@
            .Select(g => new
            {
                pid = g.Key,
                sq = g.Sum(x => x.ShNum),  // ç”³è¯·æ•°é‡åˆè®¡
                ys = g.Sum(x => x.YsNum)   // å·²æ‰«æ•°é‡åˆè®¡
                sq = g.Sum(x => x.ShNum), // ç”³è¯·æ•°é‡åˆè®¡
                ys = g.Sum(x => x.YsNum) // å·²æ‰«æ•°é‡åˆè®¡
            })
            .Where(x => (x.sq ?? 0) != (x.ys ?? 0))
            .Select(x => x.pid)
@@ -45,7 +45,7 @@
    }
    /// <summary>
    /// æ ¹æ®å•据号获取待处理的调拨出库明细列表
    ///     æ ¹æ®å•据号获取待处理的调拨出库明细列表
    /// </summary>
    /// <param name="query">查询参数,包含单据号</param>
    /// <returns>待处理的调拨出库明细列表</returns>
@@ -62,16 +62,16 @@
                    JoinType.Left, b.Pid == a.Guid,
                    JoinType.Left, b.ItemId == s.Id))
            .Where((b, a, s) =>
                (b.ShNum ?? 0) - (b.YsNum ?? 0) > 0  // æœªå®Œæˆæ•°é‡å¤§äºŽ0
                && a.BillNo == p_bill_no             // åŒ¹é…å•据号
                && a.Status == 1)                    // å•据已审核
                (b.ShNum ?? 0) - (b.YsNum ?? 0) > 0 // æœªå®Œæˆæ•°é‡å¤§äºŽ0
                && a.BillNo == p_bill_no // åŒ¹é…å•据号
                && a.Status == 1) // å•据已审核
            .OrderBy((b, a, s) => s.ItemNo)
            .Select((b, a, s) => new TransferOutDetail
            {
                ItemNo = s.ItemNo,
                ItemModel = s.ItemModel,
                ShNum = b.ShNum,      // ç”³è¯·æ•°é‡
                YsNum = b.YsNum,      // å·²æ‰«æ•°é‡
                ShNum = b.ShNum, // ç”³è¯·æ•°é‡
                YsNum = b.YsNum, // å·²æ‰«æ•°é‡
                // ä¿ç•™å…¶ä»–必要字段...
                Pid = b.Pid,
                ItemId = b.ItemId,
@@ -83,7 +83,7 @@
    }
    /// <summary>
    /// æ‰«ææ¡ç è¿›è¡Œè°ƒæ‹¨å‡ºåº“处理
    ///     æ‰«ææ¡ç è¿›è¡Œè°ƒæ‹¨å‡ºåº“处理
    /// </summary>
    /// <param name="query">包含单据号、用户名和条码信息的查询参数</param>
    /// <returns>处理后的表单和待处理明细列表</returns>
@@ -94,23 +94,17 @@
        var c_user = query.userName;
        var p_item_barcode = query.barcode;
        var p_bill_type_id = 300;     // å•据类型ID
        var p_transaction_no = 301;    // äº¤æ˜“编号
        var p_bill_type_id = 300; // å•据类型ID
        var p_transaction_no = 301; // äº¤æ˜“编号
        // éªŒè¯å•据号
        if (string.IsNullOrEmpty(p_bill_no))
        {
            throw new Exception("请选取单据号!");
        }
        if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请选取单据号!");
        // æŸ¥è¯¢å‡ºåº“单并验证状态
        var transferOut = Db.Queryable<TransferOut>()
            .Where(x => x.BillNo == p_bill_no && x.Status == 1)
            .First();
        if (transferOut == null)
        {
            throw new Exception("未找到调拨申请单或者调拨申请单没审核");
        }
        if (transferOut == null) throw new Exception("未找到调拨申请单或者调拨申请单没审核");
        // æŸ¥è¯¢æ¡ç åº“存信息并验证
        var stock = Db.Queryable<MesInvItemStocks>()
@@ -118,42 +112,29 @@
                        && x.Quantity > 0
                        && !string.IsNullOrEmpty(x.DepotsCode))
            .First();
        if (stock == null)
        {
            throw new Exception($"库存中无此条码,请核对!{p_item_barcode}");
        }
        if (stock == null) throw new Exception($"库存中无此条码,请核对!{p_item_barcode}");
        // éªŒè¯ä»“库一致性
        if (stock.DepotsCode != transferOut.InvCode)
        {
            throw new Exception(
                $"条码库存仓库{stock.DepotsCode}和申请仓库不一致{transferOut.InvCode}");
        }
        // æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
        var item = Db.Queryable<MesItems>()
            .Where(x => x.Id == stock.ItemId)
            .First();
        if (item == null)
        {
            throw new Exception("未找到物料");
        }
        if (item == null) throw new Exception("未找到物料");
        // æŸ¥è¯¢è°ƒæ‹¨æ˜Žç»†å¹¶éªŒè¯
        var detail = Db.Queryable<TransferOutDetail>()
            .Where(x => x.ItemId == stock.ItemId && x.Pid == transferOut.Guid)
            .First();
        if (detail == null)
        {
            throw new Exception("未找到条码物料相应的调拨申请");
        }
        if (detail == null) throw new Exception("未找到条码物料相应的调拨申请");
        // éªŒè¯æ•°é‡æ˜¯å¦è¶…出未扫数量
        if ((detail.ShNum ?? 0) - (detail.YsNum ?? 0) < stock.Quantity)
        {
            throw new Exception("条码数量大于申请未扫数量,请拆分了再扫码");
        }
        // ä½¿ç”¨äº‹åŠ¡å¤„ç†æ•°æ®æ›´æ–°
        UseTransaction(db =>
        {
@@ -164,7 +145,7 @@
                            && (x.Status ?? 0) == 0)
                .First();
            var commit = 0;  // è®°å½•更新操作次数
            var commit = 0; // è®°å½•更新操作次数
            var c_id = Guid.Empty;
            // å¤„理移库主表记录
@@ -241,7 +222,7 @@
                SuppNo = stock.SuppNo,
                ItemId = stock.ItemId,
                EbelnK3id = stock.EbelnK3id,
                LineK3id = stock.LineK3id,
                LineK3id = stock.LineK3id
                // RkDepot = transferOut.RkDepot,
                // CkDepot = transferOut.CkDepot
            };
@@ -284,7 +265,7 @@
                SuppNo = stock.SuppNo,
                ItemId = (int)stock.ItemId,
                EbelnK3id = stock.EbelnK3id,
                LineK3id = stock.LineK3id,
                LineK3id = stock.LineK3id
                // RkDepot = transferOut.RkDepot,
                // CkDepot = transferOut.CkDepot
            };
@@ -321,7 +302,7 @@
                    WorkLine = stock.WorkLine,
                    EbelnK3id = (int)stock.EbelnK3id,
                    LineK3id = (int)stock.LineK3id,
                    Quantity = stock.Quantity,
                    Quantity = stock.Quantity
                    // Unit = stock.ItemUnit
                };
@@ -342,35 +323,31 @@
                    .Where(x => x.Guid == detail.Guid)
                    .ExecuteCommand();
            }
            // æ£€æŸ¥æ˜¯å¦æ‰€æœ‰æ˜Žç»†éƒ½å·²å®Œæˆ
            var totals = db.Queryable<TransferOutDetail, TransferOut>((b, a) =>
                new JoinQueryInfos(JoinType.Left, b.Pid == a.Guid))
            var totals = db.Queryable<TransferOutDetail, TransferOut>((b, a) =>
                    new JoinQueryInfos(JoinType.Left, b.Pid == a.Guid))
                .Where((b, a) => a.BillNo == p_bill_no)
                .Select((b, a) => new {
                    ShNum = SqlFunc.AggregateSum(b.ShNum),  // ç”³è¯·æ€»æ•°é‡
                    YsNum = SqlFunc.AggregateSum(b.YsNum)   // å·²æ‰«æ€»æ•°é‡
                .Select((b, a) => new
                {
                    ShNum = SqlFunc.AggregateSum(b.ShNum), // ç”³è¯·æ€»æ•°é‡
                    YsNum = SqlFunc.AggregateSum(b.YsNum) // å·²æ‰«æ€»æ•°é‡
                })
                .First();
            // å¦‚果申请数量等于已扫数量,更新单据完成状态
            if (totals.ShNum == totals.YsNum)
            {
                commit += db.Updateable<TransferOut>()
                    .SetColumns(x => x.IsWc == 1)
                    .Where(x => x.BillNo == p_bill_no)
                    .ExecuteCommand();
            }
            // æ›´æ–°è¿”回参数
            query.itemNo = item.ItemNo;
            query.Num = stock.Quantity;
            // éªŒè¯æ›´æ–°æ“ä½œæ˜¯å¦å…¨éƒ¨æˆåŠŸ
            if (commit < 4)
            {
                throw new Exception("更新失败");
            }
            if (commit < 4) throw new Exception("更新失败");
            return commit;
        });