hao
2025-05-30 ee6683a1351733a7c5b1e50a7722c96dfd42e2a2
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.util;
using Newtonsoft.Json;
using SqlSugar;
using System.Data;
 
namespace MES.Service.service.QC
{
    public class RetMatService
    {
        public List<dynamic> GetAllDocs()
        {
            var db = SqlSugarHelper.GetInstance();
 
            string sql = @"
                SELECT THL_NO 
                FROM MES_ITEM_THL 
               -- WHERE JY_BS = 0 AND THL012 = 1
            ";
 
            var table = db.Ado.GetDataTable(sql);
            return table.ToDynamic();
        }
 
        public List<dynamic> GetHeader(string docNo)
        {
            var db = SqlSugarHelper.GetInstance();
 
            string sql = @"
                SELECT 
                    a.THL001 AS moNo,
                    a.THL004 AS type,
                    s.ITEM_NO AS productCode,
                    d.DEPARTMENTNAME AS deptName,
                    TO_CHAR(a.THL011, 'yyyy-mm-dd hh24:mi:ss') AS createTime
                FROM MES_ITEM_THL a
                LEFT JOIN MES_ITEMS s ON a.ITEM_ID = s.ID
                LEFT JOIN WOMDAA a0 ON a.THL001 = a0.DAA001
                LEFT JOIN SYS_DEPARTMENT d ON a0.daa013 = d.ID
                WHERE a.THL_NO = :docNo
            ";
 
            var table = db.Ado.GetDataTable(sql, new SugarParameter("docNo", docNo));
            return table.ToDynamic();
        }
 
        public List<dynamic> GetDetailList(string docNo)
        {
            var db = SqlSugarHelper.GetInstance();
 
            string sql = @"
            SELECT 
                s.ITEM_NO AS material,
                s.ITEM_MODEL AS spec,
                a.THLD005 AS qty,
                a.THLD014 AS reason,
                s.ID AS itemId
            FROM MES_ITEM_THL_DETAIL a
            LEFT JOIN MES_ITEM_THL b ON a.THLMID = b.ID
            LEFT JOIN MES_ITEMS s ON a.ITEM_ID = s.ID
            WHERE b.THL_NO = :docNo
        ";
 
            return db.Ado.GetDataTable(sql, new SugarParameter("docNo", docNo)).ToDynamic();
        }
 
        public void UpdateHeader(string docNo, string user)
        {
            var db = SqlSugarHelper.GetInstance();
 
            string sql = @"
                UPDATE MES_ITEM_THL 
                SET JY_BS = 1, 
                    JY_USER = :user, 
                    JY_TIME = SYSDATE 
                WHERE THL_NO = :docNo
            ";
 
            db.Ado.ExecuteCommand(sql,
                new SugarParameter("docNo", docNo),
                new SugarParameter("user", user)
            );
        }
 
/*        public void SaveReviewItem(string docNo, string itemNo, string reason)
        {
            var db = SqlSugarHelper.GetInstance();
 
            string sql = @"
                UPDATE MES_ITEM_THL_DETAIL
                SET THLD014 = :reason
                WHERE THLMID = (
                    SELECT ID FROM MES_ITEM_THL WHERE THL_NO = :docNo
                )
                AND ITEM_ID = (
                    SELECT ID FROM MES_ITEMS WHERE ITEM_NO = :itemNo
                )
            ";
 
            db.Ado.ExecuteCommand(sql,
                new SugarParameter("docNo", docNo),
                new SugarParameter("itemNo", itemNo),
                new SugarParameter("reason", reason)
            );
        }*/
 
        public void SaveReview(string docNo, string user, List<ReviewItem> items)
        {
            var db = SqlSugarHelper.GetInstance();
 
            string json = JsonConvert.SerializeObject(items); // 序列化为 JSON 字符串
 
           
 
            foreach (ReviewItem item in items)
            {
                var parameters = new List<SugarParameter>
{
    new SugarParameter("pi_NO", docNo, System.Data.DbType.String),
    new SugarParameter("pi_user", user, System.Data.DbType.String),
    new SugarParameter("pi_item_ID", item.ItemId, System.Data.DbType.Decimal),  
    new SugarParameter("pi_reason", item.Reason, System.Data.DbType.String)
};
 
 
                db.Ado.UseStoredProcedure()
                .ExecuteCommand("PRC_RET_MAT_AUDIT_ALL", parameters);
            }
 
            
        }
 
 
        public void Reject(string docNo, string user)
        {
            var db = SqlSugarHelper.GetInstance();
 
            string sql = @"
        UPDATE MES_ITEM_THL 
        SET BH_TIME = SYSDATE,
            BH_USER = :pi_user,
            THL010 = '',
            THL011 = '',
            THL012 = 0 
        WHERE THL_NO = :pi_no
    ";
 
            db.Ado.ExecuteCommand(sql,
                new SugarParameter("pi_user", user),
                new SugarParameter("pi_no", docNo)
            );
        }
 
    }
}