南骏 池
2025-03-07 9440c4980e1f2415fdc0d61005b7d245fc16483e
1.受托入库,初步完成
已添加4个文件
543 ■■■■■ 文件已修改
Controllers/Warehouse/MesStrkController.cs 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesShouTuo.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesShouTuoDetail.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesStrkManager.cs 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesStrkController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,255 @@
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;
/// <summary>
///     ç”Ÿäº§è¡¥æ–™ç›¸å…³æŽ¥å£
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MesStrkController : ControllerBase
{
    private readonly MesStrkManager _manager = new();
    #region åŸºç¡€
    /***进入模版管理可以修改模版***/
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [HttpPost("GetList")]
    public ResponseResult GetList()
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.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 = _manager.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 = _manager.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] MesItemBl data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.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] MesItemBl data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.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] MesItemBl data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    #endregion
    /// <summary>
    ///     èŽ·å–å—æ‰˜å…¥åº“ç”³è¯·åˆ—è¡¨
    /// </summary>
    /// <returns>受托入库申请列表</returns>
    [HttpPost("GetStrkBillNo")]
    public ResponseResult GetStrkBillNo(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.GetStrkBillNo(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ ¹æ®å•号获取受托入库单明细
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>受托入库单明细列表</returns>
    [HttpPost("GetMesItemDetailByBillNo")]
    public ResponseResult GetMesItemDetailByBillNo(
        [FromBody] WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.GetMesItemDetailByBillNo(query);
            if (resultInfos.tbBillList.Count < 1)
            {
                return new ResponseResult
                {
                    status = 1,
                    message = "该申请单号不存在或未审核!!!",
                    data = ""
                };
            }
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     èŽ·å–æ¡ç ä¿¡æ¯å’Œç‰©æ–™ä¿¡æ¯
    /// </summary>
    /// <returns></returns>
    [HttpPost("XsthScanBarcode")]
    public ResponseResult XsthScanBarcode(WarehouseQuery unity)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.XsthScanBarcode(unity);
            return new ResponseResult
            {
                status = 0,
                message = resultInfos.tbBillList,
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
entity/MesShouTuo.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     å—托入库申请
/// </summary>
[SugarTable("Mes_SHOU_TUO")]
public class MesShouTuo
{
    /// <summary>
    ///     ä¸»é”®
    /// </summary>
    [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid? Guid { get; set; }
    /// <summary>
    ///     å•据编号
    /// </summary>
    [SugarColumn(ColumnName = "billNo")]
    public string? BillNo { get; set; }
    /// <summary>
    ///     å®¢æˆ·ID
    /// </summary>
    [SugarColumn(ColumnName = "FCustId")]
    public string? FCustId { get; set; }
    /// <summary>
    ///     åº“存组织ID
    /// </summary>
    [SugarColumn(ColumnName = "FStockOrgId")]
    public string? FStockOrgId { get; set; }
    /// <summary>
    ///     å»ºç«‹æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "createDate")]
    public DateTime? CreateDate { get; set; }
    /// <summary>
    ///     å»ºç«‹è€…
    /// </summary>
    [SugarColumn(ColumnName = "createBy")]
    public string? CreateBy { get; set; }
    /// <summary>
    ///     æ›´æ–°è€…
    /// </summary>
    [SugarColumn(ColumnName = "lastupdateBy")]
    public string? LastUpdateBy { get; set; }
    /// <summary>
    ///     æ›´æ–°æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "lastupdateDate")]
    public DateTime? LastUpdateDate { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "remark")]
    public string? Remark { get; set; }
    /// <summary>
    ///     æ”¶è´§ä»“库
    /// </summary>
    [SugarColumn(ColumnName = "FStockId")]
    public string? FStockId { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "checkBy")]
    public string? CheckBy { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¶é—´
    /// </summary>
    [SugarColumn(ColumnName = "checkDate")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///     æ˜¯å¦å®¡æ ¸
    /// </summary>
    [SugarColumn(ColumnName = "isCheck")]
    public bool? IsCheck { get; set; }
    /// <summary>
    ///     æ˜¯å¦å®Œæˆ
    /// </summary>
    [SugarColumn(ColumnName = "isFinish")]
    public bool? IsFinish { get; set; }
}
entity/MesShouTuoDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
using SqlSugar;
namespace MES.Service.Models;
/// <summary>
///     å—托入库申请明细
/// </summary>
[SugarTable("Mes_SHOU_TUO_DETAIL")]
public class MesShouTuoDetail
{
    /// <summary>
    ///     ä¸»é”®
    /// </summary>
    [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid? Guid { get; set; }
    /// <summary>
    ///     å¤–é”®
    /// </summary>
    [SugarColumn(ColumnName = "pGuid")]
    public Guid? PGuid { get; set; }
    /// <summary>
    ///     ç‰©æ–™ID
    /// </summary>
    [SugarColumn(ColumnName = "FMaterialId")]
    public string? FMaterialId { get; set; }
    /// <summary>
    ///     å®žæ”¶æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "FQty")]
    public decimal? FQty { get; set; }
    /// <summary>
    ///     åº“存单位
    /// </summary>
    [SugarColumn(ColumnName = "FUintId")]
    public string? FUintId { get; set; }
    /// <summary>
    ///     æ‰¹å·
    /// </summary>
    [SugarColumn(ColumnName = "FLot")]
    public string? FLot { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "Remark")]
    public string? Remark { get; set; }
    /// <summary>
    ///     æŽ’序
    /// </summary>
    [SugarColumn(ColumnName = "Fidx")]
    public int? FIdx { get; set; }
    /// <summary>
    ///     å·²æ‰«æ•°é‡
    /// </summary>
    [SugarColumn(ColumnName = "SQty")]
    public decimal? SQty { get; set; }
}
service/Warehouse/MesStrkManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
using Masuit.Tools;
using MES.Service.Models;
using MES.Service.Modes;
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.util;
using OracleInternal.Sharding;
using SqlSugar;
using SqlSugar.Extensions;
using System.Data;
using System.Data.SqlClient;
namespace NewPdaSqlServer.service.Warehouse;
public class MesStrkManager : Repository<MesItemBl>
{
    /// <summary>
    ///     èŽ·å–å—æ‰˜å…¥åº“ç”³è¯·åˆ—è¡¨
    /// </summary>
    /// <returns>受托入库申请列表</returns>
    public List<string> GetStrkBillNo(WarehouseQuery query)
    {
        var list = Db.Queryable<MesShouTuo>()
            .Where(s => s.IsCheck == true && s.IsFinish == false)
            .Select(s => s.BillNo).ToList();
        return list;
    }
    /// <summary>
    ///     æ ¹æ®å•号获取MES物料表明细
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>物料明细列表</returns>
    public List<ItemDetailModel> GetMesItemDetailByBillNo(
        WarehouseQuery query)
    {
        // å…³è”查询物料表、物料明细表和物料基础信息表
        var mesItemTblDetails = Db
            .Queryable<MesShouTuo, MesShouTuoDetail, MesItems>(
                (a, b, c) => new JoinQueryInfos(
                    JoinType.Left,
                    a.Guid == b.PGuid,
                    JoinType.Left,
                    b.FMaterialId == c.Id.ToString())
            ).Where((a, b, c) => a.BillNo == query.billNo && a.IsCheck == true)
            .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel
            {
                ItemNo = c.ItemNo,
                ItemName = c.ItemName,
                ItemModel = c.ItemModel,
                FQty = b.FQty, // ç”³è¯·æ•°é‡
                SQty = b.SQty, // å·²æ‰«æ•°é‡
                Pid = b.PGuid.ToString(),
                FMaterialId = b.FMaterialId,
                Id = b.Guid.ToString()
            }).ToList();
        // ç­›é€‰å‡ºå¾…退数量大于已退数量的记录
        //var itemTblDetails = mesItemTblDetails
        //    .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList();
        return mesItemTblDetails;
    }
    /// <summary>
    /// å—托入库入库
    /// </summary>
    /// <param name="unity"></param>
    /// <returns></returns>
    /// <exception cref="Exception"></exception>
    public string XsthScanBarcode(WarehouseQuery unity)
    {
        var _strMsg = "";
        var _intSum = "";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            if (unity.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
            if (unity.sectionCode.IsNullOrEmpty()) throw new Exception("库位编号不允许为空");
            if (unity.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
            if (unity.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空");
            using (var cmd = new SqlCommand("[prc_pda_inv_strk]", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@po_outMsg", SqlDbType.NVarChar, 300),
                        new("@po_outSum", SqlDbType.NVarChar, 300),
                        //new("@po_womInBarSum", SqlDbType.NVarChar, 300),
                        new("@pi_user", unity.userName),
                        new("@pi_barcode", unity.barcode),
                        new("@pi_sectionCode", unity.sectionCode),
                        new("@pi_billno", unity.billNo),
                    };
                    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();
                }
            }
        }
    }
}