From 8de87213db233b968683bf39d9593396ee842bfb Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期四, 27 三月 2025 13:29:16 +0800
Subject: [PATCH] 1.增加产品编码批量查找关联的工艺信息接口 2.增加根据工艺信息(工艺路线编码)批量查找关联工序集合接口 3.增加工单批量绑定工艺接口
---
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs | 298 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 298 insertions(+), 0 deletions(-)
diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 6ffebf1..bba2abd 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -1058,6 +1058,304 @@
}
#endregion
+ #region[MES宸ュ崟鎵归噺缁戝畾鑾峰彇宸ュ簭鏁版嵁]
+ public static ToMessage UpdateMesOrderStepListSearch(List<WorkStepList> worksteplist)
+ {
+ string sql = ""; decimal canupdate_qty = 0;
+ var dynamicParams = new DynamicParameters();
+ List<Dictionary<object, object>> dir = new List<Dictionary<object, object>>();
+ try
+ {
+ for (int i = 0; i < worksteplist.Count; i++)
+ {
+ // 鍒涘缓涓�涓柊鐨勫瓧鍏�
+ Dictionary<object, object> dict = new Dictionary<object, object>();
+
+ if (worksteplist[i].data_sources == "ERP") //鏁版嵁鏉ユ簮ERP
+ {
+
+ //鏌ヨ褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鎬绘暟-宸蹭笅杈惧伐鍗曟�绘暟
+ sql = @"select isnull(plan_qty,0) as plan_qty from TK_Wrk_Man
+ where sourceid=@sourceid and m_po=@sourcewo and wo_code=@wocode";
+ dynamicParams.Add("@sourceid", worksteplist[i].sourceid);
+ dynamicParams.Add("@sourcewo", worksteplist[i].sourcewo);
+ dynamicParams.Add("@wocode", worksteplist[i].wocode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ //褰撳墠宸ュ崟鏁伴噺
+ canupdate_qty = decimal.Parse(data.Rows[0]["plan_qty"].ToString());
+ }
+ if (worksteplist[i].data_sources == "MES") //鏁版嵁鏉ユ簮MES
+ {
+ if (worksteplist[i].sourceid == "" || worksteplist[i].sourceid == null) //鏃犳簮鍗�
+ {
+ //鏌ヨ褰撳墠宸ュ崟鍙慨鏀规暟閲�=宸ュ崟鎬绘暟
+ sql = @"select plan_qty from TK_Wrk_Man where wo_code=@wo_code";
+ dynamicParams.Add("@wo_code", worksteplist[i].wocode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ //褰撳墠宸ュ崟宸ュ崟鏁伴噺
+ canupdate_qty = decimal.Parse(data.Rows[0]["plan_qty"].ToString());
+ }
+ else //鏈夋簮鍗�(鎶ュ簾琛ュ崟)
+ {
+ //涓嶆帶鍒� 鏍囪瘑涓�-1
+ canupdate_qty = -1;
+ }
+ }
+ //鑾峰彇宸ュ簭淇℃伅
+ sql = @"select S.wo_code,S.seq,S.step_code as stepcode,T.stepname,S.stepprice,(isnull(S.good_qty,0)+isnull(S.ng_qty,0)+isnull(S.laborbad_qty,0)+isnull(S.materielbad_qty,0)) as produceq_qty,
+ S.good_qty,S.ng_qty,S.laborbad_qty,S.materielbad_qty,S.plan_qty,(isnull(S.plan_qty,0)-(isnull(S.good_qty,0)+isnull(S.ng_qty,0)+isnull(S.laborbad_qty,0)+isnull(S.materielbad_qty,0))) as delive_qty,S.isbott,S.isend
+ from TK_Wrk_Step S
+ left join TStep T on S.step_code=T.stepcode
+ where S.wo_code=@wocode order by S.seq ";
+ dynamicParams.Add("@wocode", worksteplist[i].wocode);
+ var data1 = DapperHelper.selectdata(sql, dynamicParams);
+
+ // 鍚戝瓧鍏镐腑娣诲姞鏁版嵁
+ dict.Add("canupdate_qty", canupdate_qty);
+ dict.Add("stepdata", data1);
+ // 灏嗗瓧鍏告坊鍔犲埌鍒楄〃涓�
+ dir.Add(dict);
+ mes.code = "200";
+ mes.count = dir.Count;
+ mes.message = "鏌ヨ鎴愬姛";
+ mes.data = dir;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[MES宸ュ崟鏂板銆佺紪杈戞壒閲忕粦瀹氭彁浜
+ public static ToMessage AddUpdateMesOrderList(string operType, List<WorkList> json, User us)
+ {
+ string sql = "", route_code = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ dynamic dynObj = JObject.Parse(us.mesSetting);
+ bool route = dynObj.route;
+ if (!route) //宸ュ簭鐗�
+ {
+ route_code = null;
+ }
+ if (operType == "Add")
+ {
+ for (int i = 0; i < json.Count; i++)
+ {
+ route_code = json[i].routecode;
+ //鍐欏叆宸ュ崟琛�
+ 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[i].wocode,
+ wotype = json[i].wotype,
+ status = json[i].wostatus,
+ wkshp_code = json[i].wkshopcode,
+ plan_qty = json[i].woqty,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString(),
+ materiel_code = json[i].partcode,
+ route_code = route_code,
+ sourceid = json[i].sourceid == "" ? null : json[i].sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+ m_po = json[i].sourcewo,
+ saleOrderDeliveryDate = json[i].deliverydate,
+ plan_startdate = json[i].paystartdate,
+ plan_enddate = json[i].payenddate,
+ orderlev = "3",//浼樺厛绾э細鐗圭骇锛�1锛� 绱ф�ワ紙2锛� 姝e父锛�3锛�
+ isaps = "N", //鏄惁鎺掍骇,榛樿N Y=鏄� N=鍚�
+ data_sources = json[i].data_sources,
+ isstep = json[i].isstep //鏄惁鍏宠仈宸ュ簭
+ }
+ });
+ //鍐欏叆宸ュ簭浠诲姟琛�
+ for (int j = 0; j < json[i].WorkListSub.Count; j++)
+ {
+ sql = @"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)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wo_code = json[i].wocode,
+ seq = json[i].WorkListSub[j].stepseq,
+ step_code = json[i].WorkListSub[j].stepcode,
+ route_code = route_code,
+ stepprice = json[i].WorkListSub[j].stepprice,
+ plan_qty = json[i].woqty,
+ status = json[i].wostatus,
+ isbott = json[i].WorkListSub[j].isbott,
+ isend = json[i].WorkListSub[j].isend,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
+ }
+ });
+ }
+ }
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鏂板", "鏂板浜嗗伐鍗�:" + json[0].wocode, us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.message = "MES宸ュ崟鏂板缓鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "MES宸ュ崟鏂板缓澶辫触!";
+ mes.data = null;
+ }
+ }
+ if (operType == "Update")
+ {
+ for (int i = 0; i < json.Count; i++)
+ {
+ route_code = json[i].routecode;
+ //淇敼宸ュ崟琛�
+ sql = @"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";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wo_code = json[i].wocode,
+ wotype = json[i].wotype,
+ wkshp_code = json[i].wkshopcode,
+ plan_qty = json[i].woqty,
+ materiel_code = json[i].partcode,
+ route_code = route_code,
+ sourceid = json[i].sourceid == "" ? null : json[i].sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+ m_po = json[i].sourcewo,
+ saleOrderDeliveryDate = json[i].deliverydate,
+ plan_startdate = json[i].paystartdate,
+ plan_enddate = json[i].payenddate,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString(),
+ isstep = json[i].isstep //鏄惁鍏宠仈宸ュ簭
+ }
+ });
+ //鍒犻櫎宸ュ崟宸ュ簭琛�
+ sql = @"delete TK_Wrk_Step where wo_code=@wo_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wo_code = json[i].wocode
+ }
+ });
+ //鍐欏叆宸ュ崟宸ュ簭琛�
+ for (int j = 0; j < json[i].WorkListSub.Count; j++)
+ {
+ sql = @"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)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wo_code = json[i].wocode,
+ seq = json[i].WorkListSub[j].stepseq,
+ step_code = json[i].WorkListSub[j].stepcode,
+ route_code = route_code,
+ stepprice = json[i].WorkListSub[j].stepprice,
+ plan_qty = json[i].woqty,
+ status = json[i].wostatus,
+ isbott = json[i].WorkListSub[j].isbott,
+ isend = json[i].WorkListSub[j].isend,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
+ }
+ });
+ }
+ //鍒ゆ柇婧愬ご鍗曟嵁鏄惁鏉ユ簮ERP
+ if (json[i].data_sources == "ERP")
+ {
+ //鍒ゆ柇宸ュ崟淇敼鏁伴噺宸�兼槸鍚︿负0
+ if (json[i].difference != "0")
+ {
+ string staus = "";
+ //鏌ヨ璁㈠崟鎬绘暟,宸蹭笅杈炬暟閲�
+ sql = @"select qty,relse_qty from TKimp_Ewo where id=@sourceid and wo=@sourcewo";
+ dynamicParams.Add("@sourceid", json[i].sourceid);
+ dynamicParams.Add("@sourcewo", json[i].sourcewo);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ //褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鏁伴噺-闈炲綋鍓嶅伐鍗曟�讳笅杈惧伐鍗曟暟閲�
+ decimal qty = decimal.Parse(data0.Rows[0]["qty"].ToString());//璁㈠崟鎬绘暟
+ decimal relse_qty = decimal.Parse(data0.Rows[0]["relse_qty"].ToString());//璁㈠崟宸蹭笅杈炬�绘暟
+ relse_qty = relse_qty + decimal.Parse(json[i].difference);//鏂扮殑涓嬭揪鏁伴噺=鍘熷涓嬭揪鏁伴噺+宸��(姝h礋)
+ if (qty == relse_qty)
+ {
+ staus = "CREATED"; //鍏ㄩ儴涓嬭揪
+ }
+ else
+ {
+ staus = "CREATING";//閮ㄥ垎涓嬭揪
+ }
+ //鏇存柊璁㈠崟琛ㄧ姸鎬併�佸凡涓嬭揪鏁伴噺
+ sql = @"update TKimp_Ewo set status=@status,relse_qty=@relse_qty where id=@sourceid and wo=@sourcewo";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ status = staus,
+ relse_qty = relse_qty,
+ sourceid = json[i].sourceid,
+ sourcewo = json[i].sourcewo
+ }
+ });
+ }
+ }
+ }
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "淇敼", "淇敼浜嗗伐鍗�:" + string.Join(",", json.Select(j => j.wocode.ToString())), 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
+
#region[MES宸ュ崟鍒犻櫎]
public static ToMessage DeleteMesOrder(string souceid, string wocode, string m_po, string orderqty, User us)
{
--
Gitblit v1.9.3