1.增加产品编码批量查找关联的工艺信息接口
2.增加根据工艺信息(工艺路线编码)批量查找关联工序集合接口
3.增加工单批量绑定工艺接口
| | |
| | | using VueWebCoreApi.DLL.BLL; |
| | | using VueWebCoreApi.Models; |
| | | using VueWebCoreApi.Models.RolePermission; |
| | | using VueWebCoreApi.Models.WorkData; |
| | | using VueWebCoreApi.Tools; |
| | | using static VueWebCoreApi.Models.RolePermission.RolePermissionSava; |
| | | |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[产åç¼ç æ¹éæ¥æ¾å
³èçå·¥èºä¿¡æ¯] |
| | | /// <summary> |
| | | /// 产åç¼ç æ¹éæ¥æ¾å
³èçå·¥èºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="list">产åç¼ç éå</param> |
| | | /// <returns></returns> |
| | | [Route(template: "PartSelectRputeList")] |
| | | [HttpPost] |
| | | public JsonResult PartSelectRputeList(List<PartRouteList> list) |
| | | { |
| | | var token = HttpContext.Request.Headers["Token"].ToString(); |
| | | User us = JwtTools.Denocode(token.ToString()); |
| | | mes = BasicSettingBLL.PartSelectRputeList(list, us); |
| | | return Json(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[æ ¹æ®å·¥èºä¿¡æ¯(å·¥èºè·¯çº¿ç¼ç )æ¹éæ¥æ¾å
³èå·¥åºéå] |
| | | /// <summary> |
| | | /// æ ¹æ®å·¥èºä¿¡æ¯(å·¥èºè·¯çº¿ç¼ç )æ¹éæ¥æ¾å
³èå·¥åºéå |
| | | /// </summary> |
| | | /// <param name="list">产åç¼ç ,å·¥èºè·¯çº¿ç¼ç éå</param> |
| | | /// <returns></returns> |
| | | [Route(template: "RouteSelectStepList")] |
| | | [HttpPost] |
| | | public JsonResult RouteSelectStepList(List<PartRouteStepList> list) |
| | | { |
| | | |
| | | mes = BasicSettingBLL.RouteSelectStepList(list); |
| | | return Json(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[èæå·¥ä»·æ¥è¯¢] |
| | | /// <summary> |
| | | /// èæå·¥ä»·æ¥è¯¢ |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[MES工忹éç»å®è·åå·¥åºæ°æ®] |
| | | /// <summary> |
| | | /// MES工忹éç»å®è·åå·¥åºæ°æ® |
| | | /// </summary> |
| | | /// <param name="worksteplist">æ¥è¯¢åæ°ç»</param> |
| | | /// <returns></returns> |
| | | [Route(template: "UpdateMesOrderStepListSearch")] |
| | | [HttpPost] |
| | | public JsonResult UpdateMesOrderStepListSearch(List<WorkStepList> worksteplist) |
| | | { |
| | | mes = WorkOrderBLL.UpdateMesOrderStepListSearch(worksteplist); |
| | | return Json(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[MES工忰å¢ãç¼è¾æ¹éç»å®æäº¤] |
| | | /// <summary> |
| | | /// MES工忰å¢ãç¼è¾æ¹éç»å®æäº¤ |
| | | /// </summary> |
| | | /// <param name="OperType">æä½ç±»å</param> |
| | | /// <param name="json">æäº¤æ°æ®</param> |
| | | /// <returns></returns> |
| | | [Route(template: "AddUpdateMesOrderList")] |
| | | [HttpPost] |
| | | public JsonResult AddUpdateMesOrderList(List<WorkList> json, string OperType) |
| | | { |
| | | var token = HttpContext.Request.Headers["Token"].ToString(); |
| | | User us = JwtTools.Denocode(token.ToString()); |
| | | mes = WorkOrderBLL.AddUpdateMesOrderList(OperType, json, us); |
| | | return Json(mes); |
| | | } |
| | | #endregion |
| | | |
| | | #region[MESå·¥åå é¤] |
| | | /// <summary> |
| | | /// MESå·¥åå é¤ |
| | |
| | | using VueWebCoreApi.DLL.DAL; |
| | | using VueWebCoreApi.Models; |
| | | using VueWebCoreApi.Models.RolePermission; |
| | | using VueWebCoreApi.Models.WorkData; |
| | | using VueWebCoreApi.Tools; |
| | | using static VueWebCoreApi.Models.RolePermission.RolePermissionSava; |
| | | |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[产åç¼ç æ¹éæ¥æ¾å
³èçå·¥èºä¿¡æ¯] |
| | | public static ToMessage PartSelectRputeList(List<PartRouteList> list, User us) |
| | | { |
| | | return BasicSettingDAL.PartSelectRputeList(list, us); |
| | | } |
| | | #endregion |
| | | |
| | | #region[æ ¹æ®å·¥èºä¿¡æ¯(å·¥èºè·¯çº¿ç¼ç )æ¹éæ¥æ¾å
³èå·¥åºéå] |
| | | public static ToMessage RouteSelectStepList(List<PartRouteStepList> list) |
| | | { |
| | | return BasicSettingDAL.RouteSelectStepList(list); |
| | | } |
| | | #endregion |
| | | |
| | | #region[èæå·¥ä»·æ¥è¯¢] |
| | | public static ToMessage BeatRateSearch(string partcode, string routecode, string stepcode, User us, int startNum, int endNum, string prop, string order) |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[MES工忹éç»å®è·åå·¥åºæ°æ®] |
| | | public static ToMessage UpdateMesOrderStepListSearch(List<WorkStepList> worksteplist) |
| | | { |
| | | return WorkOrderDAL.UpdateMesOrderStepListSearch(worksteplist); |
| | | } |
| | | #endregion |
| | | |
| | | #region[MES工忰å¢ãç¼è¾æ¹éç»å®æäº¤] |
| | | public static ToMessage AddUpdateMesOrderList(string OperType, List<WorkList> json, User us) |
| | | { |
| | | return WorkOrderDAL.AddUpdateMesOrderList(OperType, json, us); |
| | | } |
| | | #endregion |
| | | |
| | | #region[MESå·¥åå é¤] |
| | | public static ToMessage DeleteMesOrder(string souceid, string wocode, string m_po, string orderqty, User us) |
| | | { |
| | |
| | | using VueWebCoreApi.DLL.BLL; |
| | | using VueWebCoreApi.Models; |
| | | using VueWebCoreApi.Models.RolePermission; |
| | | using VueWebCoreApi.Models.WorkData; |
| | | using VueWebCoreApi.Tools; |
| | | using static VueWebCoreApi.Models.RolePermission.RolePermission; |
| | | using static VueWebCoreApi.Models.RolePermission.RolePermissionSava; |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[产åç¼ç æ¹éæ¥æ¾å
³èçå·¥èºä¿¡æ¯] |
| | | public static ToMessage PartSelectRputeList(List<PartRouteList> list, User us) |
| | | { |
| | | string sql = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | List<Dictionary<object, object>> dir = new List<Dictionary<object, object>>(); |
| | | try |
| | | { |
| | | dynamic dynObj = JObject.Parse(us.mesSetting); |
| | | bool route = dynObj.route; |
| | | if (route) //å·¥èºè·¯çº¿ç |
| | | { |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | // å建ä¸ä¸ªæ°çåå
¸ |
| | | Dictionary<object, object> dict = new Dictionary<object, object>(); |
| | | //éè¿äº§åç¼ç æ¥æ¾å
³èçå·¥èºè·¯çº¿ä¿¡æ¯ |
| | | sql = @"select A.route_code,B.name as route_name |
| | | from TMateriel_Route A |
| | | inner join TFlw_Rout B on A.route_code=B.code |
| | | where A.materiel_code=@partcode and B.is_delete<>'1' and A.is_delete<>'1'"; |
| | | dynamicParams.Add("@partcode", list[i].partcode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | // ååå
¸ä¸æ·»å æ°æ® |
| | | dict.Add("routedata", data); |
| | | // å°åå
¸æ·»å å°åè¡¨ä¸ |
| | | dir.Add(dict); |
| | | } |
| | | } |
| | | else //å·¥åºç |
| | | { |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | // å建ä¸ä¸ªæ°çåå
¸ |
| | | Dictionary<object, object> dict = new Dictionary<object, object>(); |
| | | //éè¿äº§åç¼ç æ¥æ¾å
³èçå·¥åºä¿¡æ¯ |
| | | sql = @"select A.step_seq,A.step_code as stepcode,S.stepname as stepname,A.unprice as stepprice,A.isbott,A.isend |
| | | from ( |
| | | select S.materiel_code,R.step_seq,S.step_code,S.unprice,R.isbott,R.isend from TPrteEqp_Stad S |
| | | inner join TMateriel_Step R on S.materiel_code=R.materiel_code and S.step_code=R.step_code |
| | | where S.materiel_code=@partcode |
| | | union all |
| | | select materiel_code,step_seq,step_code,'0' as unprice,isbott,isend from TMateriel_Step |
| | | where materiel_code=@partcode and materiel_code+step_code |
| | | not in(select materiel_code+step_code from TPrteEqp_Stad |
| | | where materiel_code=@partcode) |
| | | ) as A |
| | | left join TStep S on A.step_code=S.stepcode"; |
| | | dynamicParams.Add("@partcode", list[i].partcode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | // ååå
¸ä¸æ·»å æ°æ® |
| | | dict.Add("stepdata", data); |
| | | // å°åå
¸æ·»å å°åè¡¨ä¸ |
| | | dir.Add(dict); |
| | | } |
| | | } |
| | | |
| | | mes.code = "200"; |
| | | mes.message = "æ¥è¯¢æå!"; |
| | | mes.count = dir.Count; |
| | | mes.data = dir; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | return mes; |
| | | } |
| | | #endregion |
| | | |
| | | #region[æ ¹æ®å·¥èºä¿¡æ¯(å·¥èºè·¯çº¿ç¼ç )æ¹éæ¥æ¾å
³èå·¥åºéå] |
| | | public static ToMessage RouteSelectStepList(List<PartRouteStepList> list) |
| | | { |
| | | string sql = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | List<Dictionary<object, object>> dir = new List<Dictionary<object, object>>(); |
| | | try |
| | | { |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | // å建ä¸ä¸ªæ°çåå
¸ |
| | | Dictionary<object, object> dict = new Dictionary<object, object>(); |
| | | //éè¿å·¥èºè·¯çº¿ç¼ç æ¥æ¾å
³èçå·¥åºä¿¡æ¯ |
| | | sql = @"select A.step_seq,A.step_code as stepcode,S.stepname as stepname,A.unprice as stepprice,A.isbott,A.isend |
| | | from ( |
| | | select S.materiel_code,R.seq as step_seq,S.step_code,S.unprice,R.first_choke as isbott,R.last_choke as isend from TPrteEqp_Stad S |
| | | inner join TFlw_Rtdt R on S.route_code=R.rout_code and S.step_code=R.step_code |
| | | where S.materiel_code=@partcode and S.route_code=@route_code |
| | | union all |
| | | select @partcode as materiel_code,B.seq as step_seq,B.step_code,'0' as unprice,B.first_choke as isbott,B.last_choke as isend from TFlw_Rout A |
| | | inner join TFlw_Rtdt B on A.code=B.rout_code |
| | | where A.code=@route_code and @partcode+A.code+B.step_code |
| | | not in(select materiel_code+rout_code+step_code from TPrteEqp_Stad |
| | | where materiel_code=@partcode and route_code=@route_code) |
| | | ) as A |
| | | left join TStep S on A.step_code=S.stepcode"; |
| | | dynamicParams.Add("@partcode", list[i].partcode); |
| | | dynamicParams.Add("@route_code", list[i].routecode); |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | // ååå
¸ä¸æ·»å æ°æ® |
| | | dict.Add("stepdata", data); |
| | | // å°åå
¸æ·»å å°åè¡¨ä¸ |
| | | dir.Add(dict); |
| | | } |
| | | |
| | | mes.code = "200"; |
| | | 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[èæå·¥ä»·æ¥è¯¢] |
| | | public static ToMessage BeatRateSearch(string partcode, string routecode, string stepcode, User us, int startNum, int endNum, string prop, string order) |
| | | { |
| | |
| | | var sql = @"select top 100 percent AA.saleOrderCode,AA.m_po,AA.wkshp_code,AA.wkshp_name,AA.wo_code,AA.status,AA.lm_date, |
| | | AA.partcode,AA.partname,AA.partspec,AA.plan_qty,left(AA.concat_name,len(concat_name)-1) as concat_name |
| | | from ( |
| | | select E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name as wkshp_name, |
| | | select W.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name as wkshp_name, |
| | | case when W.status='START' then 'æ§è¡ä¸' when W.status='CLOSED' then '已宿' else 'æªå¼å§' end as status, |
| | | W.lm_date, |
| | | P.partcode,P.partname,P.partspec,W.plan_qty, |
| | |
| | | where n.wo_code=W.wo_code for xml path('') |
| | | ) as concat_name |
| | | from TK_Wrk_Man W |
| | | left join ( |
| | | select wo,saleOrderCode from TKimp_Ewo |
| | | ) as E on W.m_po=E.wo |
| | | left join TMateriel_Info P on W.materiel_code=p.partcode |
| | | left join TOrganization F on W.wkshp_code=F.torg_code |
| | | group by E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name,W.status,W.lm_date,P.partcode,P.partname,P.partspec,W.plan_qty |
| | | group by W.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name,W.status,W.lm_date,P.partcode,P.partname,P.partspec,W.plan_qty |
| | | ) as AA where AA.concat_name is not null " + search; |
| | | var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total); |
| | | mes.code = "200"; |
| | |
| | | AA.status as å·¥åç¶æ,AA.lm_date as åæ®æ¥æ |
| | | AA.partcode as 产åç¼ç ,AA.partname as 产ååç§°,AA.partspec as 产åè§æ ¼,AA.plan_qty as 任塿°é,left(AA.concat_name,len(concat_name)-1) as ç产è¿åº¦ |
| | | from ( |
| | | select E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name as wkshp_name, |
| | | select W.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name as wkshp_name, |
| | | case when W.status='START' then 'æ§è¡ä¸' when W.status='CLOSED' then '已宿' else 'æªå¼å§' end as status, |
| | | W.lm_date, |
| | | P.partcode,P.partname,P.partspec,W.plan_qty, |
| | |
| | | where n.wo_code=W.wo_code for xml path('') |
| | | ) as concat_name |
| | | from TK_Wrk_Man W |
| | | left join ( |
| | | select wo,saleOrderCode from TKimp_Ewo |
| | | ) as E on W.m_po=E.wo |
| | | left join TMateriel_Info P on W.materiel_code=p.partcode |
| | | left join TOrganization F on W.wkshp_code=F.torg_code |
| | | group by E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name,W.status,W.lm_date,P.partcode,P.partname,P.partspec,W.plan_qty |
| | | group by W.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.torg_name,W.status,W.lm_date,P.partcode,P.partname,P.partspec,W.plan_qty |
| | | ) as AA |
| | | where where AA.concat_name is not null " + search; |
| | | DataTable data = DapperHelper.selectdata(sql, dynamicParams); |
| | |
| | | } |
| | | #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, //æ æºåæ¶èµå¼NULL |
| | | m_po = json[i].sourcewo, |
| | | saleOrderDeliveryDate = json[i].deliverydate, |
| | | plan_startdate = json[i].paystartdate, |
| | | plan_enddate = json[i].payenddate, |
| | | orderlev = "3",//ä¼å
级ï¼ç¹çº§ï¼1ï¼ ç´§æ¥ï¼2ï¼ æ£å¸¸ï¼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, //æ æºåæ¶èµå¼NULL |
| | | 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);//æ°çä¸è¾¾æ°é=åå§ä¸è¾¾æ°é+å·®å¼(æ£è´) |
| | | 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) |
| | | { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace VueWebCoreApi.Models.WorkData |
| | | { |
| | | public class PartRouteList |
| | | { |
| | | /// <summary> |
| | | /// 产åç¼ç |
| | | /// </summary> |
| | | public string partcode { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace VueWebCoreApi.Models.WorkData |
| | | { |
| | | public class PartRouteStepList |
| | | { |
| | | /// <summary> |
| | | /// 产åç¼ç |
| | | /// </summary> |
| | | public string partcode { get; set; } |
| | | /// <summary> |
| | | /// å·¥èºè·¯çº¿ç¼ç |
| | | /// </summary> |
| | | public string routecode { get; set; } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace VueWebCoreApi.Models.WorkData |
| | | { |
| | | public class WorkStepList |
| | | { |
| | | /// <summary> |
| | | /// æºåid |
| | | /// </summary> |
| | | public string sourceid { get; set; } |
| | | /// <summary> |
| | | /// æºååå· |
| | | /// </summary> |
| | | public string sourcewo { get; set; } |
| | | /// <summary> |
| | | /// å·¥åå· |
| | | /// </summary> |
| | | public string wocode { get; set; } |
| | | /// <summary> |
| | | /// æ°æ®æ¥æºï¼ERP/MES |
| | | /// </summary> |
| | | public string data_sources { get; set; } |
| | | } |
| | | } |