修复抛异常,但报工数量依然增加

tags/yfai-pcn-ext-v2.5
xiangwei.zhang 5 months ago
parent 872c8d629e
commit 692a6f59e4

@ -512,15 +512,12 @@ public class MesWorkOrderService implements IMesWorkOrderService {
LOGGER.error(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode()));
throw new ImppBusiException(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode()));
}
MesWorkOrder mesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter);
if (mesWorkOrder == null) {
MesWorkOrder oldMesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter);
if (oldMesWorkOrder == null) {
LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn()));
return;
//throw new ImppBusiException(String.format("未找到匹配的加工单"));
}
// 2024-12-12 报工失败但set值依然被update了
MesWorkOrder oldMesWorkOrder = new MesWorkOrder();
BeanUtils.copyProperties(mesWorkOrder, oldMesWorkOrder);
//获取生产版本
MesProductVersion mesProductVersion = getProductVersion(organizeCode, productionRecord.getPartNo(), oldMesWorkOrder.getProductVersion());
@ -545,24 +542,22 @@ public class MesWorkOrderService implements IMesWorkOrderService {
Map<String, Object> propertyMap = new HashMap<>();
LOGGER.info("工单【{}]】报工原数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty());
oldMesWorkOrder.setReportedQty(MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty()));
propertyMap.put("reportedQty", oldMesWorkOrder.getReportedQty());
double reportQty = MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty());
propertyMap.put("reportedQty", reportQty);
if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) {
oldMesWorkOrder.setCompleteQty(oldMesWorkOrder.getReportedQty());
double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty());
oldMesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0);
propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, oldMesWorkOrder.getCompleteQty());
propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, oldMesWorkOrder.getUnCompleteQty());
propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, reportQty);
propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, unCompleteQty);
}
if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) {
//更新工单状态
if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) {
oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else {
oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue());
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, oldMesWorkOrder.getWorkOrderStatus());
}
propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, oldMesWorkOrder.getWorkOrderStatus());
}
//保存数据
@ -585,7 +580,19 @@ public class MesWorkOrderService implements IMesWorkOrderService {
LOGGER.info("汇报类型不存在");
return;
}
oldMesWorkOrder.setCompleteQty(reportQty);
if (propertyMap.containsKey("reportedQty")){
oldMesWorkOrder.setReportedQty(reportQty);
}
if (propertyMap.containsKey(MesPcnExtConstWords.COMPLETE_QTY)){
oldMesWorkOrder.setCompleteQty(Double.valueOf(propertyMap.get(MesPcnExtConstWords.COMPLETE_QTY).toString()));
}
if (propertyMap.containsKey(MesPcnExtConstWords.UN_COMPLETE_QTY)){
oldMesWorkOrder.setUnCompleteQty(Double.valueOf(propertyMap.get(MesPcnExtConstWords.UN_COMPLETE_QTY).toString()));
}
if (propertyMap.containsKey(MesPcnExtConstWords.WORK_ORDER_STATUS)){
oldMesWorkOrder.setWorkOrderStatus(Integer.valueOf(propertyMap.get(MesPcnExtConstWords.WORK_ORDER_STATUS).toString()));
}
LOGGER.info("工单【{}】报工后数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty());
ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName);
oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date()));
@ -609,6 +616,9 @@ public class MesWorkOrderService implements IMesWorkOrderService {
propertyValue[index] = innerEntry.getValue();
index ++;
}
workOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, new Object[]{oldMesWorkOrder.getId(), oldMesWorkOrder.getOrganizeCode()}, propertyName, propertyValue);
LOGGER.info("修改工单数量完成,工单号【{}】", oldMesWorkOrder.getWorkOrderNo());

Loading…
Cancel
Save