新框架PDA后端(祈禧6月初版本)
南骏 池
5 天以前 fca0719af6948fe8fa1e4f094f8e7dba339c7428
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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; }
        // }
 
 
    }
}