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

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())); LOGGER.error(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode()));
throw new ImppBusiException(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode())); throw new ImppBusiException(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode()));
} }
MesWorkOrder mesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter); MesWorkOrder oldMesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter);
if (mesWorkOrder == null) { if (oldMesWorkOrder == null) {
LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn())); LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn()));
return; return;
//throw new ImppBusiException(String.format("未找到匹配的加工单")); //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()); MesProductVersion mesProductVersion = getProductVersion(organizeCode, productionRecord.getPartNo(), oldMesWorkOrder.getProductVersion());
@ -545,24 +542,22 @@ public class MesWorkOrderService implements IMesWorkOrderService {
Map<String, Object> propertyMap = new HashMap<>(); Map<String, Object> propertyMap = new HashMap<>();
LOGGER.info("工单【{}]】报工原数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty()); LOGGER.info("工单【{}]】报工原数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty());
oldMesWorkOrder.setReportedQty(MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty())); double reportQty = MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty());
propertyMap.put("reportedQty", oldMesWorkOrder.getReportedQty()); propertyMap.put("reportedQty", reportQty);
if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) { if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) {
oldMesWorkOrder.setCompleteQty(oldMesWorkOrder.getReportedQty());
double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty()); double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty());
oldMesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, reportQty);
propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, oldMesWorkOrder.getCompleteQty()); propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, unCompleteQty);
propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, oldMesWorkOrder.getUnCompleteQty());
} }
if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) { if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) {
//更新工单状态 //更新工单状态
if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) { if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) {
oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else { } 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("汇报类型不存在"); LOGGER.info("汇报类型不存在");
return; 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()); LOGGER.info("工单【{}】报工后数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty());
ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName);
oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); 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(); propertyValue[index] = innerEntry.getValue();
index ++; index ++;
} }
workOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, new Object[]{oldMesWorkOrder.getId(), oldMesWorkOrder.getOrganizeCode()}, propertyName, propertyValue); workOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, new Object[]{oldMesWorkOrder.getId(), oldMesWorkOrder.getOrganizeCode()}, propertyName, propertyValue);
LOGGER.info("修改工单数量完成,工单号【{}】", oldMesWorkOrder.getWorkOrderNo()); LOGGER.info("修改工单数量完成,工单号【{}】", oldMesWorkOrder.getWorkOrderNo());

Loading…
Cancel
Save