|
|
@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesPartService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesShiftService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProductionRecordService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderService;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
@ -33,6 +34,9 @@ import org.slf4j.LoggerFactory;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Isolation;
|
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
import java.text.ParseException;
|
|
|
@ -100,6 +104,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private MesPartSapRepository partSapRepository;
|
|
|
|
private MesPartSapRepository partSapRepository;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IMesProductionRecordService productionRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) {
|
|
|
|
public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) {
|
|
|
|
|
|
|
|
|
|
|
@ -437,6 +444,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true)},ddlPackBean);
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true)},ddlPackBean);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
|
|
|
|
@Transactional(propagation= Propagation.REQUIRES_NEW,isolation= Isolation.READ_COMMITTED,readOnly = false,rollbackFor = Exception.class)
|
|
|
|
public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
|
|
|
|
public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
|
|
|
|
//新增初始化 todo
|
|
|
|
//新增初始化 todo
|
|
|
|
// 根据
|
|
|
|
// 根据
|
|
|
@ -448,20 +456,29 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
report(productionRecord, organizeCode, userName, oldMesWorkOrderList);
|
|
|
|
report(productionRecord, organizeCode, userName, oldMesWorkOrderList);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
|
|
|
|
public void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
|
|
|
|
//新增初始化 todo
|
|
|
|
//新增初始化 todo
|
|
|
|
// 根据
|
|
|
|
// 根据
|
|
|
|
//根据物料获取已发布的工单
|
|
|
|
//根据物料获取已发布的工单
|
|
|
|
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
|
|
|
|
try {
|
|
|
|
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode);
|
|
|
|
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
|
|
|
|
if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
|
|
|
|
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode);
|
|
|
|
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
|
|
|
|
if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
|
|
|
|
return;
|
|
|
|
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
report(productionRecord, organizeCode, userName, oldMesWorkOrders);
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
String msg = e.getMessage();
|
|
|
|
|
|
|
|
if (e instanceof ImppBusiException) {
|
|
|
|
|
|
|
|
msg = ((ImppBusiException) e).getErrorMsg();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
LOGGER.error("条码:{}报工失败", productionRecord.getProductSn(), e);
|
|
|
|
|
|
|
|
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getProductSn(), msg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
report(productionRecord, organizeCode, userName, oldMesWorkOrders);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -540,7 +557,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
oldMesWorkOrder.setNum(oldMesWorkOrder.getNum() == null ? 1 : oldMesWorkOrder.getNum() + 1);
|
|
|
|
oldMesWorkOrder.setNum(oldMesWorkOrder.getNum() == null ? 1 : oldMesWorkOrder.getNum() + 1);
|
|
|
|
LOGGER.info("工单报工原数量【{}】", oldMesWorkOrder.getReportedQty());
|
|
|
|
LOGGER.info("工单报工原数量【{}】", oldMesWorkOrder.getReportedQty());
|
|
|
|
oldMesWorkOrder.setReportedQty(MathOperation.add(oldMesWorkOrder.getNum(), oldMesWorkOrder.getReportedQty()));
|
|
|
|
oldMesWorkOrder.setReportedQty(MathOperation.add(oldMesWorkOrder.getNum(), oldMesWorkOrder.getReportedQty()));
|
|
|
|
if (oldMesWorkOrder.getCompleteQty() == 0) {
|
|
|
|
if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) {
|
|
|
|
oldMesWorkOrder.setCompleteQty(oldMesWorkOrder.getReportedQty());
|
|
|
|
oldMesWorkOrder.setCompleteQty(oldMesWorkOrder.getReportedQty());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//更新SAP计划完成数量
|
|
|
|
//更新SAP计划完成数量
|
|
|
@ -604,6 +621,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
|
|
|
|
|
|
|
|
|
|
|
|
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","workOrderNo", "reportStatus"},
|
|
|
|
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","workOrderNo", "reportStatus"},
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()},snDdlPackBean);
|
|
|
|
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()},snDdlPackBean);
|
|
|
|
|
|
|
|
LOGGER.info("条码【{}】报工成功,报工工单【{}】",productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo());
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|