From 8747c355e51d09473efd30107e18303bb092a1ad Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 16 八月 2024 14:31:48 +0800
Subject: [PATCH] 1.新增工单新增、编辑时通过产品找物料清单接口 2、修改工单新增、编辑接口(通过bom计算工单用料清单)
---
VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs | 7 +
VueWebCoreApi/DLL/DAL/ProductModelDAL.cs | 96 +++++++++++++++++++++++
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs | 108 +++++++++++++++++++-------
VueWebCoreApi/Controllers/WorkOrderController.cs | 15 +++
4 files changed, 195 insertions(+), 31 deletions(-)
diff --git a/VueWebCoreApi/Controllers/WorkOrderController.cs b/VueWebCoreApi/Controllers/WorkOrderController.cs
index 56173f8..69afe6d 100644
--- a/VueWebCoreApi/Controllers/WorkOrderController.cs
+++ b/VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -248,6 +248,21 @@
}
#endregion
+ #region[MES宸ュ崟鏂板缂栬緫鏃�,鏍规嵁浜у搧鑾峰彇Bom鐗╂枡娓呭崟]
+ /// <summary>
+ /// MES宸ュ崟鏂板缂栬緫鏃�,鏍规嵁浜у搧鑾峰彇Bom鐗╂枡娓呭崟
+ /// </summary>
+ /// <param name="partnumber">浜у搧缂栫爜</param>
+ /// <returns></returns>
+ [Route(template: "MesOrderAddUpdateBomVison")]
+ [HttpGet]
+ public JsonResult MesOrderAddUpdateBomVison(string partnumber)
+ {
+ mes = WorkOrderBLL.MesOrderAddUpdateBomVison(partnumber);
+ return Json(mes);
+ }
+ #endregion
+
#region[MES宸ュ崟鏂板銆佺紪杈戞彁浜
/// <summary>
/// MES宸ュ崟鏂板銆佺紪杈戞彁浜�
diff --git a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
index 6820ea0..7edc4b8 100644
--- a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
@@ -81,6 +81,13 @@
}
#endregion
+ #region[MES宸ュ崟鏂板缂栬緫鏃�,鏍规嵁浜у搧鑾峰彇Bom鐗╂枡娓呭崟]
+ public static ToMessage MesOrderAddUpdateBomVison(string partnumber)
+ {
+ return WorkOrderDAL.MesOrderAddUpdateBomVison(partnumber);
+ }
+ #endregion
+
#region[MES宸ュ崟鏂板銆佺紪杈戞彁浜
public static ToMessage AddUpdateMesOrder(string OperType, WorkList json, User us)
{
diff --git a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
index aff4bdf..933919f 100644
--- a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
@@ -1352,6 +1352,7 @@
parents[i].children = children.ToList();
}
mes.code = "200";
+ mes.count = total;
mes.message = "鏌ヨ鎴愬姛!";
mes.data = parents;
}
@@ -1847,7 +1848,100 @@
#region[鐗╂枡娓呭崟鍒犻櫎鎻愪氦-T+鐣呮嵎閫氭ā寮廬
public static ToMessage TBomDelete(BomDate bom, User us)
{
- throw new NotImplementedException();
+ string sql = "";
+ List<object> list = new List<object>();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ //鏌ヨ褰撳墠鍒犻櫎鐗╂枡娓呭崟鐖朵欢缂栫爜闈炴湰娆℃槸鍚﹀瓨鍦ㄥ涓増鏈�,瀛樺湪澶氫釜鐗堟湰鏃�,濡傛灉褰撳墠鏄粯璁OM鍒欎笉鍏佽鍒犻櫎
+ sql = @"select * from TBom_Main S where S.materiel_code=@materiel_code and version<>@version";
+ dynamicParams.Add("@materiel_code", bom.materiel_code);
+ dynamicParams.Add("@version", bom.version);
+ var data1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data1.Rows.Count > 0)
+ {
+ if (bom.isdefaultbom == "1")
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "[" + bom.materiel_name + "-" + bom.version + "]榛樿BOM涓嶅厑璁稿垹闄�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+
+ //鏌ヨ褰撳墠鍒犻櫎鐗╂枡娓呭崟鐖朵欢缂栫爜(ID)鍦ㄧ墿鏂欐竻鍗曞瓙琛ㄤ腑鏄惁瀛樺湪
+ sql = @"select * from TBom_Deta S
+ left join TMateriel_Info M on S.materiel_code=M.partcode
+ where S.materiel_code=@materiel_code";
+ dynamicParams.Add("@materiel_code", bom.materiel_code);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "[" + data0.Rows[0]["partname"].ToString() + "-"+bom.version+ "]宸蹭娇鐢ㄧ殑璁板綍涓嶅厑璁稿垹闄わ紒[鐗╂枡娓呭崟瀛愪欢]";
+ mes.data = null;
+ return mes;
+ }
+ //鏌ヨ褰撳墠鍒犻櫎鐨勭墿鏂欐竻鍗曠埗浠剁紪鐮�(ID)鏄惁琚伐鍗曞紩鐢�
+ sql = @"select * from TK_Wrk_Man where bom_id=@bom_id";
+ dynamicParams.Add("@bom_id", bom.id);
+ var data_1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data_1.Rows.Count > 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠鍓岯OM宸茬粡琚伐鍗曞紩鐢�,涓嶅彲鍒犻櫎!";
+ mes.data = null;
+ return mes;
+ }
+ //鍒犻櫎鐗╂枡娓呭崟瀛愯〃
+ sql = @"delete TBom_Deta where m_id=@m_id";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = bom.id
+ }
+ });
+ //鍒犻櫎鐗╂枡娓呭崟涓昏〃
+ sql = @"delete TBom_Main where id=@id";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ id = bom.id
+ }
+ });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "鍒犻櫎浜嗙墿鏂欐竻鍗曪細" + bom.materiel_code + "锛岀増鏈彿涓�:" + bom.version, us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.message = "鍒犻櫎鎿嶄綔鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鍒犻櫎鎿嶄綔澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
}
#endregion
diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 5478ff5..8f3f50d 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -867,6 +867,31 @@
}
#endregion
+ #region[MES宸ュ崟鏂板缂栬緫鏃�,鏍规嵁浜у搧鑾峰彇Bom鐗╂枡娓呭崟]
+ public static ToMessage MesOrderAddUpdateBomVison(string partnumber)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ sql = @" select id,version from TBom_Main where materiel_code=@partnumber and status='Y' order by version desc ";
+ dynamicParams.Add("@partnumber", partnumber);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ mes.code = "200";
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.data = data;
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
#region[MES宸ュ崟鏂板銆佺紪杈戞彁浜
public static ToMessage AddUpdateMesOrder(string operType, WorkList json, User us)
{
@@ -892,41 +917,24 @@
}
if (operType == "Add")
{
- //鍐欏叆宸ュ崟琛�
- sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
- values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- wo_code = json.wocode,
- wotype = json.wotype,
- status = json.wostatus,
- wkshp_code = json.wkshopcode,
- plan_qty = json.woqty,
- lm_user = us.usercode,
- lm_date = DateTime.Now.ToString(),
- materiel_code = json.partcode,
- route_code = route_code,
- sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
- m_po = json.sourcewo,
- saleOrderDeliveryDate = json.deliverydate,
- plan_startdate = json.paystartdate,
- plan_enddate = json.payenddate,
- orderlev = "3",//浼樺厛绾э細鐗圭骇锛�1锛� 绱ф�ワ紙2锛� 姝e父锛�3锛�
- isaps = "N", //鏄惁鎺掍骇,榛樿N Y=鏄� N=鍚�
- data_sources = json.data_sources,
- isstep = json.isstep //鏄惁鍏宠仈宸ュ簭
- }
- });
// 鍋囪浣犲凡缁忔湁浜嗘彃鍏ヤ富琛ㄥ拰瀛愯〃鐨凷QL璇彞
+ //鍐欏叆宸ュ崟琛�
string workSql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
+ //鍐欏叆宸ュ崟宸ュ簭琛�
string masterInsertSql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,route_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
values(@wo_code,@seq,@step_code,@route_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date); SELECT CAST(SCOPE_IDENTITY() AS INT)";
+ //鍐欏叆宸ュ崟宸ュ簭璁惧琛�
string detailInsertSql = @"insert into TK_Wrk_StepEqp(m_id,eqp_code,eqpprice)
values(@m_id,@eqp_code,@eqpprice)";
+ //鍐欏叆宸ュ崟鐢ㄦ枡琛�
+ string workall = @"insert into TK_Wrk_Allo(wo_code,seq,materiel_code,qty,status,bom_id,stck_code,stopfeed,base_quantity,total_quantity,m_quantity,loss_quantity)
+ select @wocode,A.seq,A.materiel_code,(convert(decimal(18, 0), @woqty)*A.Base_Quantity*(1+A.LOSS_QUANTITY/100))/C.quantity,
+ 'NEW',A.m_id,'','N',A.base_quantity,A.total_quantity,C.quantity,A.loss_quantity
+ from TBom_Deta A
+ left join TBom_Main C on A.m_Id=C.id
+ left join TMateriel_Info B on A.materiel_code = B.partcode
+ where A.m_id=@bom_id";
// 鎻掑叆宸ュ崟琛�
var workParam = new DynamicParameters();
@@ -979,6 +987,15 @@
conn.Execute(detailInsertSql, detailParam, transaction);
}
}
+ //鍐欏叆宸ュ崟鐢ㄦ枡琛�(瀛愪欢)
+ if (json.bomid != "" && json != null)
+ {
+ var workallParam = new DynamicParameters();
+ workallParam.Add("@wocode", json.wocode);
+ workallParam.Add("@woqty", json.woqty);
+ workallParam.Add("@bom_id", json.bomid);
+ conn.Execute(workall, workallParam, transaction);
+ }
// 鎵�鏈夋彃鍏ユ垚鍔燂紝鎻愪氦浜嬪姟
transaction.Commit();
@@ -997,16 +1014,33 @@
var data = DapperHelper.selectdata(sql, dynamicParams);
// 鍋囪浣犲凡缁忔湁浜嗘彃鍏ヤ富琛ㄥ拰瀛愯〃鐨凷QL璇彞
+ //淇敼宸ュ崟琛�
string workSql = @"update TK_Wrk_Man set wotype=@wotype,wkshp_code=@wkshp_code,plan_qty=@plan_qty,lm_user=@lm_user,lm_date=@lm_date,
materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
where wo_code=@wo_code";
+ //鍒犻櫎宸ュ崟宸ュ簭璁惧琛�
string deleteWrkStepEqp = @"delete TK_Wrk_StepEqp where m_id=@m_id";
+ //鍒犻櫎宸ュ崟宸ュ簭琛�
string deleteWrkStep = @"delete TK_Wrk_Step where wo_code=@wo_code";
+ //鍒犻櫎宸ュ崟鐢ㄦ枡琛�
+ string deleteWrkALL = @"delete TK_Wrk_Allo where wo_code=@wo_code";
+ //鍐欏叆宸ュ崟宸ュ簭琛�
string masterInsertSql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,route_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
values(@wo_code,@seq,@step_code,@route_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date); SELECT CAST(SCOPE_IDENTITY() AS INT)";
+ //鍐欏叆宸ュ崟宸ュ簭璁惧琛�
string detailInsertSql = @"insert into TK_Wrk_StepEqp(m_id,eqp_code,eqpprice)
values(@m_id,@eqp_code,@eqpprice)";
+ //鍐欏叆宸ュ崟鐢ㄦ枡琛�
+ string InsertWorkALL = @"insert into TK_Wrk_Allo(wo_code,seq,materiel_code,qty,status,bom_id,stck_code,stopfeed,base_quantity,total_quantity,m_quantity,loss_quantity)
+ select @wocode,A.seq,A.materiel_code,(convert(decimal(18, 0), @woqty)*A.Base_Quantity*(1+A.LOSS_QUANTITY/100))/C.quantity,
+ 'NEW',A.m_id,'','N',A.base_quantity,A.total_quantity,C.quantity,A.loss_quantity
+ from TBom_Deta A
+ left join TBom_Main C on A.m_Id=C.id
+ left join TMateriel_Info B on A.materiel_code = B.partcode
+ where A.m_id=@bom_id";
+ //淇敼鐢熶骇璁㈠崟琛ㄧ姸鎬併�佸凡涓嬭揪鏁伴噺
string EwoStatusSql = @"update TKimp_Ewo set status=@status,relse_qty=@relse_qty where id=@sourceid and wo=@sourcewo";
+
// 淇敼宸ュ崟琛�
var workParam = new DynamicParameters();
@@ -1040,6 +1074,11 @@
workStepParam.Add("@wo_code", json.wocode);
conn.Execute(deleteWrkStep, workStepParam, transaction);
+ //鍒犻櫎宸ュ崟鐢ㄦ枡琛�
+ var deleteWrkALLParam = new DynamicParameters();
+ deleteWrkALLParam.Add("@wo_code", json.wocode);
+ conn.Execute(deleteWrkALL, deleteWrkALLParam, transaction);
+
//鍐欏叆宸ュ崟宸ュ簭琛�
for (int i = 0; i < json.WorkListSub.Count; i++)
{
@@ -1068,6 +1107,15 @@
detailParam.Add("@eqpprice", detail.unprice);
conn.Execute(detailInsertSql, detailParam, transaction);
}
+ }
+ //鍐欏叆宸ュ崟鐢ㄦ枡琛�
+ if (json.bomid != "" && json.bomid != null)
+ {
+ var InsertWorkALLParam = new DynamicParameters();
+ InsertWorkALLParam.Add("@wocode", json.wocode);
+ InsertWorkALLParam.Add("@woqty", json.woqty);
+ InsertWorkALLParam.Add("@bom_id", json.bomid);
+ conn.Execute(InsertWorkALL, InsertWorkALLParam, transaction);
}
//鍒ゆ柇婧愬ご鍗曟嵁鏄惁鏉ユ簮ERP
if (json.data_sources == "ERP")
@@ -1176,8 +1224,8 @@
list.Add(new { str = sql, parm = new { wocode = wocode } });
//鍒犻櫎鍔犲伐鍗曠敤鏂欒〃(瀛愪欢)
- //sql = @"delete TK_Wrk_Allo where wo_code=@wocode";
- //list.Add(new { str = sql, parm = new { wocode = wocode } });
+ sql = @"delete TK_Wrk_Allo where wo_code=@wocode";
+ list.Add(new { str = sql, parm = new { wocode = wocode } });
//鍒犻櫎宸ュ崟琛�
sql = @"delete TK_Wrk_Man where wo_code=@wocode";
--
Gitblit v1.9.3