1
2
3
4
5
using Hh.Mes.Common.log ;
using Hh.Mes.Common.Request ;
using Hh.Mes.POJO.Entity ;
using Hh.Mes.POJO.Response ;
using Hh.Mes.Service.Repository ;
HuXiYu
authored
about a year ago
6
using NPOI.SS.Formula.Functions ;
7
using Org.BouncyCastle.Crypto ;
8
9
10
11
using SqlSugar ;
using System ;
using System.Collections.Generic ;
using System.Data ;
12
using System.Linq ;
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
using System.Text ;
using System.Threading.Tasks ;
namespace Hh.Mes.Service.Material
{
public class MaterialCallService : RepositorySqlSugar < dynamic >
{
/// < summary >
/// 物料呼叫,需求库位
/// </ summary >
/// < returns ></ returns >
public Task < DataSet > GetSelectData ()
{
string sql = @" SELECT t1 . code , srmCode FROM [ dbo ].[ base_location ] t1 WHERE type = 'A' OR type = 'B'
select WorkshopId , WorkshopCode , LineCode , LineName , Id from Line " ;
return base . Context . Ado . GetDataSetAllAsync ( sql );
}
/// < summary >
/// 获取物料
/// </ summary >
public Response GetMaterialList ( PageReq pageReq , base_material entity )
{
var result = new Response ();
string orderBy = ( pageReq == null || string . IsNullOrEmpty ( pageReq . field )) ? " id desc" : $ "{pageReq.field} {pageReq.order} " ;
string sqlWhere = SqlMateriaWhere ( entity );
var stringBuilder = new StringBuilder ();
// 页码,页数
// Exel ture 不分页
if (! entity . Exel && pageReq != null )
{
stringBuilder . Append ( "declare @pageIndex int,@pageSize int,@offset int" );
stringBuilder . AppendLine ( $ " select @pageIndex={pageReq.page}, @pageSize={pageReq.limit}, @offset=(@pageIndex - 1) * @pageSize" );
}
49
stringBuilder . AppendLine ( $@" select t3 . quantityRate , t2 . mtTypeName materialtypeName , t1 .*
50
from base_material t1 with ( nolock )
51
left join base_material_type t2 with ( nolock ) on t1 . MtTypeCode = t2 . mtTypeCode
52
left join base_material_rate t3 with ( nolock ) on t1 . materialCode = t3 . materialCode
53
54
55
56
57
58
59
where { sqlWhere } order by { orderBy } " );
// Exel ture 不分页
if (! entity . Exel )
{
stringBuilder . AppendLine ( " offset @offset row fetch next @pageSize row only " );
stringBuilder . Append ( $@" select rowTotal = count (*) from base_material t1 with ( nolock )
60
left join base_material_type t2 with ( nolock ) on t1 . MtTypeCode = t2 . mtTypeCode where { sqlWhere } " );
61
62
63
64
65
66
}
var parameters = new List < SugarParameter >(){
new SugarParameter ( "@mtTypeCode" , entity . mtTypeCode ),
new SugarParameter ( "@materialName" , entity . materialName ),
new SugarParameter ( "@materialCode" , entity . materialCode ),
HuXiYu
authored
about a year ago
67
68
new SugarParameter ( "@codeOrName" , entity . codeOrName ),
new SugarParameter ( "@plmeId" , entity . plmeId )
69
70
71
72
73
74
75
76
77
78
79
80
};
var ds = base . Context . Ado . GetDataSetAll ( stringBuilder . ToString (), parameters );
result . Result = ds . Tables [ 0 ];
result . Count = entity . Exel ? ( int ) result . Result . Rows . Count : ( int ) ds . Tables [ 1 ]. Rows [ 0 ][ "rowTotal" ];
return result ;
}
public string SqlMateriaWhere ( base_material model )
{
var stringBuilder = new StringBuilder ();
stringBuilder . Append ( " 1=1 " );
HuXiYu
authored
about a year ago
81
82
83
84
if (! string . IsNullOrEmpty ( model . plmeId ))
{
stringBuilder . Append ( " and t1.plmeId=@plmeId " );
}
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
if (! string . IsNullOrEmpty ( model . mtTypeCode ))
{
stringBuilder . Append ( " and t1.mtTypeCode = @mtTypeCode " );
}
if (! string . IsNullOrEmpty ( model . materialName ))
{
stringBuilder . Append ( " and t1.materialName like '%'+@materialName+'%' " );
}
if (! string . IsNullOrEmpty ( model . materialCode ))
{
stringBuilder . Append ( " and t1.materialCode like '%'+@materialCode+'%' " );
}
// 下拉弹出搜索框
if (! string . IsNullOrEmpty ( model . codeOrName ))
{
stringBuilder . Append ( $ " and (t1.materialCode like '%'+@codeOrName+'%' or t1.materialName like '%'+@codeOrName+'%' ) " );
}
return stringBuilder . ToString ();
}
106
107
108
109
110
public dynamic Ins ( base_material entity )
{
return ExceptionsHelp . Instance . ExecuteT (() =>
{
var response = new Response ();
111
entity . keys = Guid . NewGuid ();
赖素文
authored
about a year ago
112
entity . createBy = sysWebUser . Account ;
113
entity . createTime = DateTime . Now ;
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
var rate = new base_material_rate
{
materialCode = entity . materialCode ,
materialName = entity . materialName ,
mtClassify = entity . mtClassify ,
unitCode = entity . unitCode ,
specifications = entity . specifications ,
materialKeys = entity . keys ,
quantityRate = 1 ,
createBy = sysWebUser ?. Account ,
createTime = DateTime . Now
};
赖素文
authored
about a year ago
129
130
131
Context . Insertable ( entity ). AddQueue ();
Context . Insertable ( rate ). AddQueue ();
Context . SaveQueues ();
132
133
134
135
136
137
return response ;
});
}
138
/// < summary >
139
/// 更新 物料
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/// </ summary >
public dynamic Upd ( base_material model )
{
var response = new Response ();
return ExceptionsHelp . Instance . ExecuteT (() =>
{
model . updateBy = sysWebUser ?. Account ;
model . updateTime = DateTime . Now ;
response . Status = Context . Updateable ( model ). Where ( u => u . id == model . id ). ExecuteCommand () > 0 ;
if (! response . Status ) response . Message = "更新失败" ;
return response ;
});
}
154
155
156
157
158
/// < summary >
/// 删除 物料
/// </ summary >
/// < param name = "ids" ></ param >
/// < returns ></ returns >
赖素文
authored
about a year ago
159
public dynamic DelByIds ( Guid [] ids )
160
161
162
163
{
return ExceptionsHelp . Instance . ExecuteT (() =>
{
var response = new Response ();
赖素文
authored
about a year ago
164
165
Context . Deleteable < base_material >( t => ids . Contains ( t . keys )). ExecuteCommand ();
Context . Deleteable < base_material_rate >( t => ids . Contains ( t . materialKeys )). ExecuteCommand ();
166
167
168
return response ;
});
}
169
170
171
172
173
174
175
176
177
178
179
180
181
/// < summary >
/// 左侧列表
/// </ summary >
public DataTable GetTreeList ()
{
string sql = @" select t1 . id , name = t1 . mtTypeName , t1 . mtTypeCode , t1 . keys , parentId = t1 . parentTypeId
from base_material_type t1 " ;
var dt = base . Context . Ado . GetDataTable ( sql );
return dt == null || dt . Rows . Count == 0 ? null : dt ;
}
182
183
184
185
186
187
188
189
190
191
/// < summary >
/// 编辑 物料比例表数据
/// </ summary >
public dynamic EditRate ( base_material_rate model )
{
var response = new Response ();
return ExceptionsHelp . Instance . ExecuteT (() =>
{
model . updateBy = sysWebUser ?. Account ;
model . updateTime = DateTime . Now ;
赖素文
authored
about a year ago
192
193
194
response . Status = Context . Updateable ( model )
. UpdateColumns ( t => new { t . oprSequenceCode , t . quantityRate })
. Where ( u => u . id == model . id ). ExecuteCommand () > 0 ;
195
196
197
198
199
200
201
202
203
if (! response . Status ) response . Message = "更新失败" ;
return response ;
});
}
/// < summary >
/// 查找比率数据
/// </ summary >
/// < returns ></ returns >
赖素文
authored
about a year ago
204
public dynamic GetMaterialRateByCode ( Guid materialKeys )
205
206
207
208
209
{
var response = new Response ();
return ExceptionsHelp . Instance . ExecuteT (() =>
{
var result = base . Context . Queryable < base_material_rate >()
赖素文
authored
about a year ago
210
. Where ( x => x . materialKeys == materialKeys ). ToList ();
211
212
213
214
215
response . Result = result ;
return response ;
});
}
216
217
}
}