Controllers/Warehouse/MesItemQtController.cs
@@ -1,24 +1,27 @@
using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.service.@base;
using NewPdaSqlServer.service.Warehouse;
using NewPdaSqlServer.util;
namespace NewPdaSqlServer.Controllers.Warehouse;
/// <summary>
/// 其他出库相关接口
///     其他出库相关接口
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MesItemQtController : ControllerBase
public class MesItemQtController : BaseController
{
    private readonly MesItemQtManager _manager = new();
    private readonly MesPrintMangeer _mCf = new();
    #region 基础CRUD
    /// <summary>
    /// 获取所有
    ///     获取所有
    /// </summary>
    /// <returns>其他出库单列表</returns>
    [HttpPost("GetList")]
@@ -46,11 +49,11 @@
    #region 其他出库业务
    /// <summary>
    /// 获取未完成的退料单号列表
    ///     获取未完成的退料单号列表
    /// </summary>
    /// <returns>退料单号列表</returns>
    /// <remarks>
    /// 获取状态为已审核(Qt015=true)且未完结(Qt014=false)的退料单号列表
    ///     获取状态为已审核(Qt015=true)且未完结(Qt014=false)的退料单号列表
    /// </remarks>
    /// <response code="200">成功获取退料单号列表</response>
    /// <response code="400">获取失败</response>
@@ -60,7 +63,7 @@
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.GetPendingQtList();
            resultInfos.tbBillList = _manager.GetPendingQtList(RequestInfo);
            return new ResponseResult
            {
                status = 0,
@@ -75,20 +78,18 @@
    }
    /// <summary>
    /// 获取待处理的退料单明细列表
    ///     获取待处理的退料单明细列表
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>待处理的退料单明细列表</returns>
    /// <remarks>
    /// 请求示例:
    ///
    ///     POST /api/MesItemQt/GetPendingQtList
    ///     请求示例:
    ///     POST /api/MesItemQt/GetPendingQtDetailList
    ///     {
    ///         "userName": "admin",      // 用户名(必填)
    ///         "billNo": "QT20240101001" // 退料单号(必填)
    ///     "userName": "admin",      // 用户名(必填)
    ///     "billNo": "QT20240101001" // 退料单号(必填)
    ///     }
    ///
    /// 返回未完成的明细记录(Qd007-Qd008>0)
    ///     返回未完成的明细记录(Qd007-Qd008>0)
    /// </remarks>
    /// <response code="200">成功获取退料单明细</response>
    /// <response code="400">获取失败,返回具体错误信息</response>
@@ -98,7 +99,7 @@
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = _manager.GetPendingQtList(query);
            resultInfos.tbBillList = _manager.GetPendingQtDetailList(query, RequestInfo);
            return new ResponseResult
            {
                status = 0,
@@ -113,37 +114,60 @@
    }
    /// <summary>
    /// 扫描条码出库
    ///     扫描条码出库
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>出库结果、待处理明细和提示消息</returns>
    /// <remarks>
    /// 请求示例:
    ///
    ///     请求示例:
    ///     POST /api/MesItemQt/OutScanBarcode
    ///     {
    ///         "billNo": "QT20240101001",  // 退料单号(必填)
    ///         "barcode": "BC001",         // 条码号(必填)
    ///         "userName": "admin"         // 用户名(必填)
    ///     "billNo": "QT20240101001",  // 退料单号(必填)
    ///     "barcode": "BC001",         // 条码号(必填)
    ///     "userName": "admin"         // 用户名(必填)
    ///     }
    ///
    /// 返回数据包含:
    /// - form: 处理结果表单
    /// - item: 待处理明细列表
    /// - message: 处理结果消息
    ///     返回数据包含:
    ///     - form: 处理结果表单
    ///     - item: 待处理明细列表
    ///     - message: 处理结果消息
    /// </remarks>
    /// <response code="200">扫描成功</response>
    /// <response code="400">扫描失败,返回具体错误信息</response>
    [HttpPost("OutScanBarcode")]
    public ResponseResult OutScanBarcode([FromBody] WarehouseQuery query)
    {
        //try
        //{
        //    dynamic resultInfos = new ExpandoObject();
        //    var (form, items, message) = _manager.OutScanBarcode(query);
        //    resultInfos.form = form;
        //    resultInfos.items = items;
        //    resultInfos.message = message;
        //    return new ResponseResult
        //    {
        //        status = 0,
        //        message = "OK",
        //        data = resultInfos
        //    };
        //}
        //catch (Exception ex)
        //{
        //    return ResponseResult.ResponseError(ex);
        //}
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var (form, items, message) = _manager.OutScanBarcode(query);
            resultInfos.form = form;
            resultInfos.items = items;
            resultInfos.message = message;
            resultInfos.tbBillList = _manager.ScanCode(query);
            if (resultInfos.tbBillList.result == "2")
            {
                return new ResponseResult
                {
                    status = Convert.ToInt32(resultInfos.tbBillList.result),
                    message = resultInfos.tbBillList.strMsg,
                    data = resultInfos
                };
            }
            return new ResponseResult
            {
                status = 0,
@@ -158,25 +182,23 @@
    }
    /// <summary>
    /// 打印条码出库
    ///     打印条码出库
    /// </summary>
    /// <param name="query">查询参数</param>
    /// <returns>出库结果、待处理明细和提示消息</returns>
    /// <remarks>
    /// 请求示例:
    ///
    ///     请求示例:
    ///     POST /api/MesItemQt/PrintQtckBarcode
    ///     {
    ///         "userName": "admin",         // 用户名(必填)
    ///         "billNo": "QT20240101001",   // 退料单号(必填)
    ///         "barcode": "BC001",          // 条码号(必填)
    ///         "Fum": 10                    // 发料数量(必填,必须大于0)
    ///     "userName": "admin",         // 用户名(必填)
    ///     "billNo": "QT20240101001",   // 退料单号(必填)
    ///     "barcode": "BC001",          // 条码号(必填)
    ///     "Fum": 10                    // 发料数量(必填,必须大于0)
    ///     }
    ///
    /// 返回数据包含:
    /// - form: 处理结果表单
    /// - item: 待处理明细列表
    /// - message: 处理结果消息
    ///     返回数据包含:
    ///     - form: 处理结果表单
    ///     - item: 待处理明细列表
    ///     - message: 处理结果消息
    /// </remarks>
    /// <response code="200">打印成功</response>
    /// <response code="400">打印失败,返回具体错误信息</response>
@@ -203,5 +225,29 @@
        }
    }
    [HttpPost("ScanCodeCF")]
    public ResponseResult ScanCodeCF(WarehouseQuery query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = new ExpandoObject();
            resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query);
            var scanResult = _manager.ScanCodeCF(query);
            resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    #endregion
}