南骏 池
2025-05-08 64e2f748cd194ec9e6e8f6e6ce1ca27374c3f686
1.PDA拆分领料打印条码
已添加2个文件
已修改1个文件
159 ■■■■■ 文件已修改
Controllers/Wom/WomdaaController.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/base/MesPrintController.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/base/MesPrintMangeer.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Wom/WomdaaController.cs
@@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.@base;
using NewPdaSqlServer.service.Wom;
using NewPdaSqlServer.util;
@@ -12,6 +13,7 @@
public class WomdaaController : ControllerBase
{
    private readonly WomdaaManager m = new();
    private readonly MesPrintMangeer _mCf = new();
    #region ç”Ÿäº§é¢†æ–™
@@ -102,7 +104,10 @@
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.ScanCodeCF(query);
            resultInfos.tbBillList = new ExpandoObject();
            resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query);
            var scanResult = m.ScanCodeCF(query);
            resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult);
            return new ResponseResult
            {
                status = 0,
Controllers/base/MesPrintController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.@base;
using NewPdaSqlServer.service.Wom;
using NewPdaSqlServer.util;
namespace NewPdaSqlServer.Controllers.@base;
/// <summary>
///     ç”Ÿäº§æŠ¥å·¥ç›¸å…³æŽ¥å£
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MesPrintController : ControllerBase
{
    private readonly MesPrintMangeer _manager = new();
    /// <summary>
    ///     æ‰«ææ³¨å¡‘码,获取工单和条码信息
    /// </summary>
    /// <returns></returns>
    [HttpPost("getPrintInfo")]
    public ResponseResult getPrintInfo([FromBody] dynamic query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            // å…ˆåˆå§‹åŒ–tbBillList属性
            resultInfos.tbBillList = new ExpandoObject();
            resultInfos.tbBillList = _manager.getPrintInfo(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ‰«ææ³¨å¡‘码,获取工单和条码信息
    /// </summary>
    /// <returns></returns>
    [HttpPost("getCfInfo")]
    public ResponseResult getCfInfo([FromBody] dynamic query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            // å…ˆåˆå§‹åŒ–tbBillList属性
            resultInfos.tbBillList = new ExpandoObject();
            resultInfos.tbBillList = _manager.getCfInfo(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}
service/base/MesPrintMangeer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
namespace NewPdaSqlServer.service.@base
{
    using NewPdaSqlServer.Dto.service;
    using NewPdaSqlServer.entity;
    using SqlSugar;
    using System;
    using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
    using System.Data;
    using NewPdaSqlServer.DB;
    using System.Data;
    using System.Data.SqlClient;
    using Microsoft.EntityFrameworkCore.Metadata.Internal;
    public class MesPrintMangeer : Repository<dynamic>
    {
        public dynamic getPrintInfo(dynamic query)
        {
            // ä½¿ç”¨å‚数化查询防止SQL注入
            var sqlParams = new List<SugarParameter> { new("@userAccount", query.userName) };
            var sql1 = @"SELECT TOP 1 ip,port fROM print_info A
         left join SYS_USER_BIND B on A.guid = B.aboutGuid
         left join SYS_USER C ON C.GUID = B.userGuid
WHERE C.ACCOUNT = @userAccount AND B.fType = '打印机'";
            var printInfo = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams);
            if (printInfo.Count < 1 ) throw new Exception("当前用户未绑定打印机,请维护后使用拆分功能!");
            return printInfo;
        }
        public dynamic getCfInfo(dynamic query) // ä½¿ç”¨å…·ä½“类型替代dynamic
        {
            // å‚数校验
            if (string.IsNullOrEmpty(query?.cfBarcode))
                throw new ArgumentException("拆分条码不能为空");
            if (string.IsNullOrEmpty(query?.barcode))
                throw new ArgumentException("原始条码不能为空");
            // ä½¿ç”¨å¼ºç±»åž‹å‚æ•°
            var sqlParams = new List<SugarParameter> {
                new("@cfBar", query.cfBarcode.Trim()),
                new("@oldBar", query.barcode.Trim())
            };
            var sql = @"SELECT TOP 1 C.ITEM_NO,C.item_name,C.item_model,B.OLDQTY as QUANTITY,B.CREATE_DATE, '拆分条码' AS BarType,A.ITEM_BARCODE,GETDATE() as print_date
            FROM MES_INV_ITEM_STOCKS A
            LEFT JOIN MES_INV_ITEM_BARCODES B ON A.ITEM_BARCODE = B.ITEM_BARCODE
            LEFT JOIN MES_ITEMS C ON C.item_id = B.ITEM_ID
            WHERE A.ITEM_BARCODE = @cfBar
            UNION ALL
            SELECT TOP 1 C.ITEM_NO,C.item_name,C.item_model,A.QUANTITY as QUANTITY,B.CREATE_DATE, '原始条码' AS BarType,A.ITEM_BARCODE,GETDATE() as print_date
            FROM MES_INV_ITEM_STOCKS A
            LEFT JOIN MES_INV_ITEM_BARCODES B ON A.ITEM_BARCODE = B.ITEM_BARCODE
            LEFT JOIN MES_ITEMS C ON C.item_id = B.ITEM_ID
            WHERE A.ITEM_BARCODE = @oldBar";
            var mergedData = Db.Ado.SqlQuery<dynamic>(sql, sqlParams);
            if (mergedData.Count < 2) throw new Exception("条码信息存在异常,请联系管理员!");
            return mergedData;
        }
        // // çŽ°åœºæ”¶æ–™å±•ç¤ºåˆ—è¡¨
        // public class PrintBarInfo
        // {
        //     public List<dynamic> cfBarInfo { get; set; }
        //     public List<dynamic> oldBarInfo { get; set; }
        // }
    }
}