111
cnf
2025-04-14 88a1ab54409ebf39c0bfa269aa7d513a7ac9219e
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
157
158
159
160
161
162
163
164
using MES.Service.DB;
using MES.Service.Dto.webApi.QcIssueResult;
using MES.Service.Dto.webApi.ZuHeRequestOrder;
using MES.Service.Modes.QcIssueResult;
using MES.Service.Modes.ZuHeRequestOrder;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace MES.Service.service.ZuHeRequestOrder;
 
public class ZuHeRequestOrderManager : Repository<ZuHeRequestOrders>
{
    /**
   * 组合来料检验申请单
   */
    public dynamic SaveZHBS(ZuHeRequestsOrder zuHeRequestsOrder )
    {
 
        var mesZuHeRequestsOrder = GetMesQcIssueResults(zuHeRequestsOrder);
 
        return UseTransaction(db =>
        {
            return SaveOrUpdateData(db, mesZuHeRequestsOrder) ? 1 : 0;
        }) > 0;
    }
 
    public ZuHeRequestOrders GetMesQcIssueResults(ZuHeRequestsOrder zuHeRequestsOrder)
    {
        // 从 ComboSingle 中提取所有 RELEASE_NO
        var releaseNoList = zuHeRequestsOrder.ComboSingle.Select(item => item.RELEASE_NO).ToList();
 
        var mesQcIssueResults = new ZuHeRequestOrders
        {
            ReleaseNo = string.Join(",", releaseNoList) // 将所有 RELEASE_NO 拼接成一个字符串
        };
 
        return mesQcIssueResults;
    }
 
    /**
  * 解除来料检验申请单组合
  */
    public dynamic deleateZHBS(ZuHeRequestsOrder zuHeRequestsOrder)
    {
 
        var mesZuHeRequestsOrder = GetMesQcIssueResults(zuHeRequestsOrder);
 
        return UseTransaction(db =>
        {
            return ReleaseData(db, mesZuHeRequestsOrder) ? 1 : 0;
        }) > 0;
    }
 
    /**
    * 更新数据库表进行组合
    */
    private bool SaveOrUpdateData(SqlSugarScope db, ZuHeRequestOrders zuHeRequestOrders )
    {
 
        try
        {
            // 从 ReleaseNo 中提取所有 RELEASE_NO
            var releaseNoList = zuHeRequestOrders.ReleaseNo.Split(',').ToList();
 
            var firstReleaseNo = zuHeRequestOrders.ReleaseNo.Split(',').FirstOrDefault();
 
            foreach (var releaseNo in releaseNoList)
            {
                // 查询 ZuHeRequestOrders 表中是否存在匹配的记录
                var existingQcIssueResult = db.Queryable<ZuHeRequestOrders>()
                    .Where(t => t.ReleaseNo == releaseNo)
                    .First();
 
                if (existingQcIssueResult != null)
                {
                    // 更新 ZuHeRequestOrders 表中的字段
                    var updateResult = db.Updateable<ZuHeRequestOrders>()
                        .SetColumns(t => new ZuHeRequestOrders
                        {
                            ZH_BS = firstReleaseNo,
                        })
                        .Where(t =>  t.ReleaseNo == releaseNo)
                        .ExecuteCommand();
 
                    if (updateResult <= 0)
                    {
                        throw new Exception($"更新 ZuHeRequestOrders 表失败,ReleaseNo: {releaseNo}");
                    }
                }
                else
                {
                        throw new Exception($"未找到检验单号,ReleaseNo: {releaseNo}");
                }
            }
 
            return true;
        }
        catch (Exception ex)
        {
            Debug.WriteLine($"错误: {ex.Message}");
            throw;
        }
 
    }
 
    /**
  * 更新数据库表进行组合
  */
    private bool ReleaseData(SqlSugarScope db, ZuHeRequestOrders zuHeRequestOrders)
    {
 
        try
        {
            // 从 ReleaseNo 中提取所有 RELEASE_NO
            var releaseNoList = zuHeRequestOrders.ReleaseNo.Split(',').ToList();
 
            var firstReleaseNo = zuHeRequestOrders.ReleaseNo.Split(',').FirstOrDefault();
 
            foreach (var releaseNo in releaseNoList)
            {
                // 查询 ZuHeRequestOrders 表中是否存在匹配的记录
                var existingQcIssueResult = db.Queryable<ZuHeRequestOrders>()
                    .Where(t => t.ReleaseNo == releaseNo)
                    .First();
 
                if (existingQcIssueResult != null)
                {
                    // 更新 ZuHeRequestOrders 表中的字段
                    var updateResult = db.Updateable<ZuHeRequestOrders>()
                        .SetColumns(t => new ZuHeRequestOrders
                        {
                            ZH_BS = null,
                        })
                        .Where(t => t.ReleaseNo == releaseNo)
                        .ExecuteCommand();
 
                    if (updateResult <= 0)
                    {
                        throw new Exception($"更新 ZuHeRequestOrders 表失败,ReleaseNo: {releaseNo}");
                    }
                }
                else
                {
                    throw new Exception($"未找到检验单号,ReleaseNo: {releaseNo}");
                }
            }
 
            return true;
        }
        catch (Exception ex)
        {
            Debug.WriteLine($"错误: {ex.Message}");
            throw;
        }
 
    }
 
}