三层报工功能调整

master
zhaoxiaolin 12 months ago
parent e37f464ea8
commit 04ee02c8e9

@ -305,6 +305,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
* * = *
* * =
* * =
* * ----------------------------------------
* *
* * =
* * =
* * =
* * =
* @param mesReportWork
* @return
*/
@ -315,7 +321,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
DynamicDataSourceContextHolder.push(mesReportWork.getFactoryCode());// 这是数据源的key
}
//根据belong_work_order找到sap工单
//根据belong_work_order找到sap工单(子子母)
List<MesReportWork> workOrders = mesReportWorkMapper.getSapWorkOrder(mesReportWork.getWorkorderCode());
if (CollectionUtils.isEmpty(workOrders)) {
return R.fail("子母工单信息缺失");
@ -332,7 +338,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
//子工单报工
logger.info("==========================一层工单报工开始");
sapRson = this.reportHzToSap(sHzWorks);
sapRson = this.reportHzToSap(sHzWorks,1);
logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson));
}else if(workOrders.size()==2){
/**(两层报工)子工单先报工,然后母工单报工**/
@ -345,7 +351,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
}
//子工单报工
logger.info("==========================子工单报工开始");
sapRson = this.reportHzToSap(sHzWorks);
sapRson = this.reportHzToSap(sHzWorks,2);
logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson));
if(sapRson.getCode()== 200){
//一定是子单报工成功返回后,再母单报工
@ -363,13 +369,38 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
logger.info("==========================母工单报工开始");
pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback());
pHzWork.setSac1(sHzWorks.getSac1());
R sapR = this.reportHzToSap(pHzWork);
R sapR = this.reportHzToSap(pHzWork,2);
logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR));
return sapR;
}
}else if(workOrders.size()==3){
//20240301 TODO;
}else if(workOrders.size()>=3){
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;
}
@ -379,15 +410,22 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
* @param workOrder
* @return
*/
private R reportHzToSap(MesReportWork workOrder) {
private R reportHzToSap(MesReportWork workOrder,int cengji) {
Date nowTime = DateUtils.getNowDate();
SapRFW sapRFW = new SapRFW();
sapRFW.setAufnr(workOrder.getWorkorderCodeSap());//虚拟工单号
sapRFW.setGamng(workOrder.getQuantityFeedback().toString());//报工数量
SapRFW.lt_gs ltgs = new SapRFW.lt_gs();//生产订单报工工时修改
ltgs.setConf_activity1(workOrder.getSac1());//机器
BigDecimal newMan = new BigDecimal(workOrder.getSac1())
.multiply(new BigDecimal(workOrder.getSac2()));
BigDecimal newMan = null;
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_activity3(workOrder.getSac1());//折旧
ltgs.setConf_activity4(newMan.toString());//其它

Loading…
Cancel
Save