报工问题修改

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

@ -82,15 +82,10 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
LOGGER.error("无加工单加工记录中没有数据,无需处理"); LOGGER.error("无加工单加工记录中没有数据,无需处理");
return; return;
} }
try {
for (MesProductionRecord mesProductionRecord : unReportMesProduceSn) { for (MesProductionRecord mesProductionRecord : unReportMesProduceSn) {
workOrderService.doProductReportByRecord(mesProductionRecord, organizeCode, userName); 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());
}
} }
private void handlerHasOrder(String organizeCode, String userName) { private void handlerHasOrder(String organizeCode, String userName) {
@ -106,8 +101,8 @@ public class MesReportNoSortJob extends BaseMesScheduleJob {
} }
} catch (ImppBusiException e) { } catch (ImppBusiException e) {
LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail()); //LOGGER.error("条码:{}报工失败", unReportMesProduceSn.get(0).getProductSn(), e.getErrorDetail());
productionRecordService.updateProductionRecord(organizeCode, userName, 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.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,13 +456,13 @@ 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
// 根据 // 根据
//根据物料获取已发布的工单 //根据物料获取已发布的工单
try {
LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo()); LOGGER.info("此次报工的条码【{}】,工单【{}】", productionRecord.getProductSn(), productionRecord.getWorkOrderNo());
List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode); List<MesWorkOrder> oldMesWorkOrders = getMesWorkOrders(productionRecord, organizeCode);
if (CollectionUtils.isEmpty(oldMesWorkOrders)) { if (CollectionUtils.isEmpty(oldMesWorkOrders)) {
@ -462,6 +470,15 @@ public class MesWorkOrderService implements IMesWorkOrderService {
return; return;
} }
report(productionRecord, organizeCode, userName, oldMesWorkOrders); 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);
}
} }
@ -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());
} }
/** /**

Loading…
Cancel
Save