三层报工功能调整

master
zhaoxiaolin 12 months ago
parent e37f464ea8
commit 04ee02c8e9

@ -305,6 +305,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
* * = * * * = *
* * = * * =
* * = * * =
* * ----------------------------------------
* *
* * =
* * =
* * =
* * =
* @param mesReportWork * @param mesReportWork
* @return * @return
*/ */
@ -315,7 +321,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key
} }
//根据belong_work_order找到sap工单 //根据belong_work_order找到sap工单(子子母)
List<MesReportWork> workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode()); List<MesReportWork> workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode());
if (CollectionUtils.isEmpty(workOrders)) { if (CollectionUtils.isEmpty(workOrders)) {
return R.fail("子母工单信息缺失"); return R.fail("子母工单信息缺失");
@ -332,7 +338,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
} }
//子工单报工 //子工单报工
logger.info("==========================一层工单报工开始"); logger.info("==========================一层工单报工开始");
sapRson = this.reportHzToSap(sHzWorks); sapRson = this.reportHzToSap(sHzWorks,1);
logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson)); logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson));
}else if(workOrders.size()==2){ }else if(workOrders.size()==2){
/**(两层报工)子工单先报工,然后母工单报工**/ /**(两层报工)子工单先报工,然后母工单报工**/
@ -345,7 +351,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
} }
//子工单报工 //子工单报工
logger.info("==========================子工单报工开始"); logger.info("==========================子工单报工开始");
sapRson = this.reportHzToSap(sHzWorks); sapRson = this.reportHzToSap(sHzWorks,2);
logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson));
if(sapRson.getCode()== 200){ if(sapRson.getCode()== 200){
//一定是子单报工成功返回后,再母单报工 //一定是子单报工成功返回后,再母单报工
@ -363,13 +369,38 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
logger.info("==========================母工单报工开始"); logger.info("==========================母工单报工开始");
pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback());
pHzWork.setSac1(sHzWorks.getSac1()); pHzWork.setSac1(sHzWorks.getSac1());
R sapR = this.reportHzToSap(pHzWork); R sapR = this.reportHzToSap(pHzWork,2);
logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR));
return sapR; return sapR;
} }
}else if(workOrders.size()==3){ }else if(workOrders.size()>=3){
//20240301 TODO; for(MesReportWork workOrder:workOrders){
mesReportWork.setUploadStatus("1");//除了1报工成功的都需要报工
mesReportWork.setProdType("prod");
mesReportWork.setWorkorderCode(workOrder.getWorkorderCode());
MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork);
if (sHzWorks == null) {
return R.fail(workOrder.getWorkorderCode()+"未查询到报工单");
}
//三层以上工单报工
logger.info("==========================三层以上工单("+sHzWorks.getWorkorderCodeSap()+")报工开始");
sapRson = this.reportHzToSap(sHzWorks,3);
logger.info("==========================三层以上工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:"
+ JSONObject.toJSONString(sapRson));
if (sapRson.getCode() == 200) {
try {
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
//最终报工标识且sap报工成功关闭子母工单
//MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork);
}else{
//报工不成功跳出循环
break;
}
}
} }
return sapRson; return sapRson;
} }
@ -379,15 +410,22 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
* @param workOrder * @param workOrder
* @return * @return
*/ */
private R reportHzToSap(MesReportWork workOrder) { private R reportHzToSap(MesReportWork workOrder,int cengji) {
Date nowTime = DateUtils.getNowDate(); Date nowTime = DateUtils.getNowDate();
SapRFW sapRFW = new SapRFW(); SapRFW sapRFW = new SapRFW();
sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号 sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号
sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量 sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量
SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改 SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改
ltgs.setConf_activity1(workOrder.getSac1());//机器 ltgs.setConf_activity1(workOrder.getSac1());//机器
BigDecimal newMan = new BigDecimal(workOrder.getSac1()) BigDecimal newMan = null;
.multiply(new BigDecimal(workOrder.getSac2())); if(cengji == 3){
//订单是三层的情况
newMan = new BigDecimal(workOrder.getSac2());
}else{
//订单是一层、二层的情况
newMan = new BigDecimal(workOrder.getSac1())
.multiply(new BigDecimal(workOrder.getSac2()));
}
ltgs.setConf_activity2(newMan.toString());//人工 ltgs.setConf_activity2(newMan.toString());//人工
ltgs.setConf_activity3(workOrder.getSac1());//折旧 ltgs.setConf_activity3(workOrder.getSac1());//折旧
ltgs.setConf_activity4(newMan.toString());//其它 ltgs.setConf_activity4(newMan.toString());//其它

Loading…
Cancel
Save