Merge branch 'uat-temp-copydevorderservice' into uat

tags/yfai-pcn-ext-v2.7
王杰 4 months ago
commit ffdf5491c4

@ -308,8 +308,8 @@ public class MesWorkOrderService implements IMesWorkOrderService {
// 递归展开 BOM // 递归展开 BOM
expendBomChild(organizeCode, mesPart.getPartNo(), bomVersion, bomData); expendBomChild(organizeCode, mesPart.getPartNo(), bomVersion, bomData);
if (bomData.size() == 0) { if (bomData.isEmpty()) {
MesPcnException.throwMesBusiException("零件号 %s 没找找到 ERP 同步的原始 BOM 数据,请检查接口是否正常!", mesPart.getPartNo()); throw new ImppBusiException(String.format("零件号 %s 没找找到 ERP 同步的原始 BOM 数据,请检查接口是否正常!",mesPart.getPartNo()));
} }
Iterator<MesBom> iterator = bomData.iterator(); Iterator<MesBom> iterator = bomData.iterator();
@ -351,7 +351,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
private void expendBomChild(String organizeCode, String partNo, String bomVersion, List<MesBom> bomData) { private void expendBomChild(String organizeCode, String partNo, String bomVersion, List<MesBom> bomData) {
List<MesBom> bomDetails = findMesBomByPartNoAndBomVersion(partNo, organizeCode, bomVersion); List<MesBom> bomDetails = findMesBomByPartNoAndBomVersion(partNo, organizeCode, bomVersion);
if (org.springframework.util.CollectionUtils.isEmpty(bomDetails)) { if (org.springframework.util.CollectionUtils.isEmpty(bomDetails)) {
MesPcnException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion); throw new ImppBusiException(String.format("物料【%s】生产版本【%s】对应bom信息不存在", partNo, bomVersion));
} }
for (MesBom item : bomDetails) { for (MesBom item : bomDetails) {
MesBom newItem = new MesBom(); MesBom newItem = new MesBom();
@ -446,8 +446,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
if (e instanceof ImppBusiException) { if (e instanceof ImppBusiException) {
msg = ((ImppBusiException) e).getErrorMsg(); msg = ((ImppBusiException) e).getErrorMsg();
} }
e.printStackTrace(); LOGGER.error("条码:{}报工失败,{}", productionRecord.getProductSn(), e.getMessage());
LOGGER.error("条码:{}报工失败", productionRecord.getProductSn(), e);
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg); productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg);
} }
} }
@ -480,8 +479,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
if (e instanceof ImppBusiException) { if (e instanceof ImppBusiException) {
msg = ((ImppBusiException) e).getErrorMsg(); msg = ((ImppBusiException) e).getErrorMsg();
} }
e.printStackTrace(); LOGGER.error(String.format("条码:【%s】报工失败原因:[%s]", productionRecord.getProductSn(), e.getMessage()));
LOGGER.error("条码:{}报工失败", productionRecord.getProductSn(), e);
productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg); productionRecordService.updateProductionRecord(organizeCode, userName, productionRecord.getId(), msg);
} }
@ -546,7 +544,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBeanPart); DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBeanPart);
MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart); MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart);
if (null == mesPart) { if (null == mesPart) {
MesPcnException.throwMesBusiException("物料【%s】信息不存在", productionRecord.getPartNo()); throw new ImppBusiException(String.format("物料【%s】信息不存在", productionRecord.getPartNo()));
} }
List<MesBom> mesBoms = findBomList(organizeCode, mesPart, mesProductVersion.getAlternativePartList()); List<MesBom> mesBoms = findBomList(organizeCode, mesPart, mesProductVersion.getAlternativePartList());
@ -565,7 +563,10 @@ public class MesWorkOrderService implements IMesWorkOrderService {
double reportQty = MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty()); double reportQty = MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty());
propertyMap.put("reportedQty", reportQty); propertyMap.put("reportedQty", reportQty);
if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) { if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) {
double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty()); double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), reportQty);
//未完成数减到0之后不能为负数
unCompleteQty = unCompleteQty > 0 ? unCompleteQty : 0;
propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, reportQty); propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, reportQty);
propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, unCompleteQty); propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, unCompleteQty);
} }
@ -769,13 +770,13 @@ public class MesWorkOrderService implements IMesWorkOrderService {
DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean);
MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean);
if (Objects.isNull(mesWorkCenter)) { if (Objects.isNull(mesWorkCenter)) {
MesPcnException.throwMesBusiException("产线【%s】不存在", workCenterCode); throw new ImppBusiException(String.format("产线【%s】不存在",workCenterCode));
} }
List<MesShift> shiftList = mesShiftService.queryMesShift(organizeCode, workCenterCode); List<MesShift> shiftList = mesShiftService.queryMesShift(organizeCode, workCenterCode);
// 如果当前班次是早班 // 如果当前班次是早班
if (CollectionUtils.isEmpty(shiftList)) { if (CollectionUtils.isEmpty(shiftList)) {
MesPcnException.throwFlowException(String.format("班次信息未维护,产线=%s"), workCenterCode); throw new ImppBusiException(String.format("班次信息未维护,产线=%s",workCenterCode));
} }
List<MesShift> shifts = shiftList.stream().filter(mesShift -> Objects.equals(mesShift.getWorkCenterCode(), workCenterCode)).collect(Collectors.toList()); List<MesShift> shifts = shiftList.stream().filter(mesShift -> Objects.equals(mesShift.getWorkCenterCode(), workCenterCode)).collect(Collectors.toList());
@ -1208,7 +1209,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
private MesProductVersion getProductVersion(String organizeCode,String partNo,String productVersion) { private MesProductVersion getProductVersion(String organizeCode,String partNo,String productVersion) {
MesProductVersion mesProductVersion = mesProductVersionService.getMesProductVersion(organizeCode,partNo,productVersion); MesProductVersion mesProductVersion = mesProductVersionService.getMesProductVersion(organizeCode,partNo,productVersion);
if (null == mesProductVersion) { if (null == mesProductVersion) {
MesPcnException.throwMesBusiException("物料【%s】生产版本【%s】信息不存在", partNo, productVersion); throw new ImppBusiException(String.format("物料【%s】生产版本【%s】信息不存在", partNo, productVersion));
} }
return mesProductVersion; return mesProductVersion;
} }
@ -1579,10 +1580,7 @@ public class MesWorkOrderService implements IMesWorkOrderService {
private MesProductVersion getMesProductVersion(Map<String, List<MesProductVersion>> productVersionMap, String reportPartNo, String productVersion) { private MesProductVersion getMesProductVersion(Map<String, List<MesProductVersion>> productVersionMap, String reportPartNo, String productVersion) {
Optional<MesProductVersion> optional = Objects.isNull(productVersionMap) || !productVersionMap.containsKey(reportPartNo) ? Optional.empty() : productVersionMap.get(reportPartNo).stream().filter(t -> t.getProductVersion().equals(productVersion)).findFirst(); Optional<MesProductVersion> optional = Objects.isNull(productVersionMap) || !productVersionMap.containsKey(reportPartNo) ? Optional.empty() : productVersionMap.get(reportPartNo).stream().filter(t -> t.getProductVersion().equals(productVersion)).findFirst();
if (!optional.isPresent()) { return optional.orElse(null);
MesPcnException.throwMesBusiException("零件:【%s】生产版本:【%s】信息不存在", reportPartNo, productVersion);
}
return optional.get();
} }
@Override @Override
@ -1630,8 +1628,11 @@ public class MesWorkOrderService implements IMesWorkOrderService {
newMesProductOffLine.setItemPartNo(mesWorkOrderPart.getPartNo()); newMesProductOffLine.setItemPartNo(mesWorkOrderPart.getPartNo());
newMesProductOffLine.setItemPartName(mesWorkOrderPart.getPartName()); newMesProductOffLine.setItemPartName(mesWorkOrderPart.getPartName());
newMesProductOffLine.setItemQty(mesWorkOrderPart.getItemQty()); newMesProductOffLine.setItemQty(mesWorkOrderPart.getItemQty());
newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint()); if (mesProductVersion != null){
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint()); newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint());
newMesProductOffLine.setStgeLoc(mesProductVersion.getShipInventoryPoint());
newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode());
}
newMesProductOffLine.setQty(1d); newMesProductOffLine.setQty(1d);
newMesProductOffLine.setReportSn(record.getProductSn()); newMesProductOffLine.setReportSn(record.getProductSn());
newMesProductOffLine.setBomVersion(workOrder.getProductVersion()); newMesProductOffLine.setBomVersion(workOrder.getProductVersion());
@ -1642,7 +1643,6 @@ public class MesWorkOrderService implements IMesWorkOrderService {
newMesProductOffLine.setWorkCenterCode(record.getWorkCenterCode()); newMesProductOffLine.setWorkCenterCode(record.getWorkCenterCode());
newMesProductOffLine.setWorkCellCode(record.getWorkCellCode()); newMesProductOffLine.setWorkCellCode(record.getWorkCellCode());
newMesProductOffLine.setReportType(record.getReportType()); newMesProductOffLine.setReportType(record.getReportType());
newMesProductOffLine.setSapWorkCenter(mesProductVersion.getWorkCenterCode());
newMesProductOffLine.setOrganizeCode(model.getOrganizeCode()); newMesProductOffLine.setOrganizeCode(model.getOrganizeCode());
newMesProductOffLine.setDescription(record.getCompleteDateTime()); newMesProductOffLine.setDescription(record.getCompleteDateTime());
ConvertBean.serviceModelInitialize(newMesProductOffLine, model.getUserName()); ConvertBean.serviceModelInitialize(newMesProductOffLine, model.getUserName());

Loading…
Cancel
Save