报工问题修改

tags/yfai-pcn-ext-v1.0
微笑着面对明天 10 months ago
parent b63e6c585c
commit 183209b62a

@ -82,15 +82,10 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
LOGGER.error("无加工单加工记录中没有数据,无需处理");
return;
}
try {
for (MesProductionRecord mesProductionRecord : unReportMesProduceSn) {
workOrderService.doProductReportByRecord(mesProductionRecord, organizeCode, userName);
}
} catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
productionRecordService.updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
for (MesProductionRecord mesProductionRecord : unReportMesProduceSn) {
workOrderService.doProductReportByRecord(mesProductionRecord, organizeCode, userName);
}
}
private void handlerHasOrder(String organizeCode, String userName) {
@ -106,8 +101,8 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
}
} catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
productionRecordService.updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
//LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
//productionRecordService.updateProductionRecord(organizeCode, userName, unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
}
}

@ -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.IMesShiftService;
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.IMesWorkOrderService;
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.factory.annotation.Autowired;
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 java.text.ParseException;
@ -100,6 +104,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
@Autowired
private MesPartSapRepository partSapRepository;
@Autowired
private IMesProductionRecordService productionRecordService;
@Override
public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) {
@ -437,6 +444,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
new Object[]{userName, TimeTool.getNowTime(true)},ddlPackBean);
}
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW,isolation= Isolation.READ_COMMITTED,readOnly = false,rollbackFor = Exception.class)
public void doProductReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
//新增初始化 todo
// 根据
@ -448,20 +456,29 @@ public class MesWorkOrderService implements IMesWorkOrderService {
}
report(productionRecord, organizeCode, userName, oldMesWorkOrderList);
}
@Override
public void doProductHasOrderReportByRecord(MesProductionRecord productionRecord, String organizeCode, String userName) {
//新增初始化 todo
// 根据
//根据物料获取已发布的工单
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode);
if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
updateProductionRecord(organizeCode, userName, productionRecord.getProductSn());
return;
try {
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode);
if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
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);
LOGGER.info("工单报工原数量【{}】", oldMesWorkOrder.getReportedQty());
oldMesWorkOrder.setReportedQty(MathOperation.add(oldMesWorkOrder.getNum(), oldMesWorkOrder.getReportedQty()));
if (oldMesWorkOrder.getCompleteQty() == 0) {
if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) {
oldMesWorkOrder.setCompleteQty(oldMesWorkOrder.getReportedQty());
}
//更新SAP计划完成数量
@ -604,6 +621,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime","workOrderNo", "reportStatus"},
new Object[]{userName, TimeTool.getNowTime(true), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()},snDdlPackBean);
LOGGER.info("条码【{}】报工成功,报工工单【{}】",productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo());
}
/**

Loading…
Cancel
Save