yl
2025-11-17 8d46fbb3dcdc7831757800ae78f5aabaac1d4195
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.DLL.BLL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.UnitMaterial;
using VueWebCoreApi.Tools;
 
namespace VueWebCoreApi.Controllers
{
    [ApiExplorerSettings(GroupName = "物料管理")]
    [ApiController]
    [Route("api/[controller]")]
    [ChannelActionFilter]
    public class ProductModelController : Controller
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisCommon redis = new RedisCommon();
 
        #region[计量单位组信息]
        /// <summary>
        /// 计量单位组信息
        /// </summary>
        /// <returns></returns>
        [Route(template: "TUnitGroup")]
        [HttpGet]
        public JsonResult TUnitGroup()
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TUnitGroup();
            return Json(mes);
        }
        #endregion
 
        #region[计量单位信息列表]
        /// <summary>
        /// 计量单位信息列表
        /// </summary>
        /// <param name="tunittype">单计量(S)  多计量(M)</param>
        /// <param name="tunitgroupcode">计量单位组编码</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "TUnitData")]
        [HttpGet]
        public JsonResult TUnitData(string tunittype,string tunitgroupcode, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ProductModelBLL.TUnitData(tunittype,tunitgroupcode, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
 
        #region[计量单位编辑获取组明细]
        /// <summary>
        /// 计量单位编辑获取组明细
        /// </summary>
        /// <param name="unitcode">计量单位编码</param>
        /// <param name="isgroup">是否计量组:0(否)1(是)</param>
        /// <returns></returns>
        [Route(template: "TUnitGroupProject")]
        [HttpGet]
        public JsonResult TUnitGroupProject(string unitcode,string isgroup)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TUnitGroupProject(unitcode,isgroup,us);
            return Json(mes);
        }
        #endregion
 
        #region[计量单位新增、编辑保存]
        /// <summary>
        /// 计量单位新增、编辑保存
        /// </summary>
        /// <param name="data_sources">数据来源:ERP/MES</param>
        /// <param name="tunittype">单计量(S)  多计量(M)</param>
        /// <param name="tunitgroupcode">计量单位组编码</param>
        /// <param name="OperType">操作类型:Add/Update</param>
        /// <param name="listjson">提交数据</param>
        /// <returns></returns>
        [Route(template: "AddUpdateTUnit")]
        [HttpPost]
        public JsonResult AddUpdateTUnit(string data_sources, string tunittype,string tunitgroupcode,string OperType, List<Unit> listjson)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            var menucode = HttpContext.Request.Headers["Menucode"].ToString(); //菜单编码
            mes = ProductModelBLL.AddUpdateTUnit(menucode, data_sources,tunittype, tunitgroupcode, OperType, listjson, us);
            return Json(mes);
        }
        #endregion
 
        #region[计量单位删除]
        /// <summary>
        /// 计量单位删除
        /// </summary>
        /// <param name="data_sources">数据来源:ERP/MES</param>
        /// <param name="tunittype">单计量(S)  多计量(M)</param>
        /// <param name="tunitgroupcode">计量单位组编码</param>
        /// <param name="tunitcode">计量单位编码</param>
        /// <returns></returns>
        [Route(template: "DeleteTUnit")]
        [HttpPost]
        public JsonResult DeleteTUnit(string data_sources, string tunittype, string tunitgroupcode, string tunitcode)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.DeleteTUnit(data_sources, tunittype, tunitgroupcode, tunitcode, us);
            return Json(mes);
        }
        #endregion
 
 
 
        #region[存货分类信息]
        /// <summary>
        /// 存货分类信息
        /// </summary>
        /// <returns></returns>
        [Route(template: "TMaterielClassTree")]
        [HttpGet]
        public JsonResult TMaterielClassTree()
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TMaterielClassTree();
            return Json(mes);
        }
        #endregion
 
        #region[存货分类新增/编辑提交]
        /// <summary>
        /// 存货分类新增/编辑提交
        /// </summary>
        /// <param name="data_sources">数据来源:ERP/MES</param>
        /// <param name="inventoryclasscode">存货分类编码</param>
        /// <param name="inventoryclassname">存货分类名称</param>
        /// <param name="parentcode">上级分类编码</param>
        /// <param name="OperType">操作类型:Add/Update</param>
        /// <returns></returns>
        [Route(template: "TMaterielClassTreeAddUpdate")]
        [HttpPost]
        public JsonResult TMaterielClassTreeAddUpdate(string data_sources, string inventoryclasscode, string inventoryclassname,string parentcode,string OperType)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TMaterielClassTreeAddUpdate(data_sources,inventoryclasscode, inventoryclassname, parentcode, OperType, us);
            return Json(mes);
        }
        #endregion
 
        #region[存货分类删除]
        /// <summary>
        /// 存货分类删除
        /// </summary>
        /// <param name="inventoryclasscode">存货分类编码字串集</param>
        /// <returns></returns>
        [Route(template: "TMaterielClassTreeDelete")]
        [HttpPost]
        public JsonResult TMaterielClassTreeDelete(string inventoryclasscode)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TMaterielClassTreeDelete(inventoryclasscode,us);
            return Json(mes);
        }
        #endregion
 
        #region[存货信息列表]
        /// <summary>
        /// 存货信息列表
        /// </summary>
        /// <param name="inventoryclasscode">存货分类编码字符串集</param>
        /// <param name="partcode">存货编码</param>
        /// <param name="partname">存货名称</param>
        /// <param name="partspec">存货规格</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "TMaterielData")]
        [HttpGet]
        public JsonResult TMaterielData(string inventoryclasscode,string partcode,string partname,string partspec, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ProductModelBLL.TMaterielData(inventoryclasscode, partcode,partname,partspec, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
 
        #region[存货信息新增/编辑保存]
        /// <summary>
        /// 存货信息新增/编辑保存
        /// </summary>
        /// <param name="obj">提交数据</param>
        /// <returns></returns>
        [Route(template: "TMaterielAddUpdate")]
        [HttpPost]
        public JsonResult TMaterielAddUpdate([FromBody] JObject obj)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            string data_sources = obj["data_sources"].ToString(); //数据来源:ERP/MES
            string partcode = obj["partcode"].ToString(); //存货编码
            string partname = obj["partname"].ToString(); //存货名称
            string partspec = obj["partspec"].ToString(); //规格型号
            string inventoryclasscode = obj["inventoryclasscode"].ToString(); //存货类型编码
            string unittypcode = obj["unittypcode"].ToString(); //计量方式(0:多计量1:单计量)
            string unitcode = obj["unitcode"].ToString(); //计量单位编码/计量单位组编码
            string unitsubcode = obj["unitsubcode"].ToString(); //计量单位组子项编码
            string idSubUnitByReport= obj["idSubUnitByReport"].ToString(); //报表辅单位编码
            string idUnitByStock = obj["idUnitByStock"].ToString(); //库存常用单位编码
            string idUnitByPurchase = obj["idUnitByPurchase"].ToString(); //采购常用单位编码
            string idUnitBySale = obj["idUnitBySale"].ToString(); //销售常用单位编码
            string idunitbymanufacture= obj["idunitbymanufacture"].ToString(); //生产常用单位
            string isPurchase= obj["isPurchase"].ToString(); //是否外购:0(否)1(是)
            string isSale = obj["isSale"].ToString(); //是否销售:0(否)1(是)
            string isMadeSelf = obj["isMadeSelf"].ToString(); //是否自制:0(否)1(是)
            string isMaterial = obj["isMaterial"].ToString(); //是否生产耗用:0(否)1(是)
            string isMadeRequest = obj["isMadeRequest"].ToString(); //是否委外:0(否)1(是)
            string idwarehouse= obj["idwarehouse"].ToString(); //仓库编码
            string status=obj["status"].ToString(); //使用状态:正常(0)停用(1)
            string OperType = obj["OperType"].ToString();  //操作类型
            mes = ProductModelBLL.TMaterielAddUpdate(data_sources,partcode,partname,partspec, inventoryclasscode, unittypcode, unitcode, unitsubcode, idSubUnitByReport,
                idUnitByStock, idUnitByPurchase,idUnitBySale, idunitbymanufacture, isPurchase, isSale, isMadeSelf, isMaterial, isMadeRequest, idwarehouse, status, OperType,us);
            return Json(mes);
        }
        #endregion
 
        #region[存货信息删除]
        /// <summary>
        /// 存货信息删除
        /// </summary>
        /// <param name="data_sources">数据来源:ERP/MES</param>
        /// <param name="partcode">物料编码</param>
        /// <returns></returns>
        [Route(template: "TMaterielDelete")]
        [HttpPost]
        public JsonResult TMaterielDelete(string data_sources,string partcode)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TMaterielDelete(data_sources, partcode, us);
            return Json(mes);
        }
        #endregion
 
        #region[存货档案关联工艺(工艺路线/工序)查询]
        /// <summary>
        /// 存货档案关联工艺(工艺路线/工序)查询
        /// </summary>
        /// <param name="partcode">物料编码</param>
        /// <returns></returns>
        [Route(template: "TMaterielFileAssociationRoute")]
        [HttpGet]
        public JsonResult TMaterielFileAssociationRoute(string partcode)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.TMaterielFileAssociationRoute(partcode, us);
            return Json(mes);
        }
        #endregion
 
        #region[存货档案关联工艺(工艺路线或工序)提交]
        /// <summary>
        /// 存货档案关联工艺(工艺路线或工序)提交
        /// </summary>
        /// <param name="json">提交数据对象</param>
        /// <returns></returns>
        [Route(template: "SaveTMaterielFile")]
        [HttpPost]
        public JsonResult SaveTMaterielFile(List<MaterialCraftsSave> json)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ProductModelBLL.SaveTMaterielFile(us, json);
            return Json(mes);
        }
        #endregion
 
 
 
        #region[工单产品信息下拉框查询]
        /// <summary>
        /// 工单产品信息下拉框查询
        /// </summary>
        /// <returns></returns>
        [Route(template: "PartSelect")]
        [HttpGet]
        public JsonResult PartSelect()
        {
            try
            {
                mes = ProductModelBLL.PartSelect();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.message = e.Message;
            }
            return Json(mes);
        }
        #endregion
    }
}