43012 关闭工单时,试制单和试制零件不允许回传SAP

tags/yfai-mes-ext-v1.9
jun 8 months ago
parent a586b636ef
commit 27d697c382

@ -664,6 +664,10 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
}
item.setWorkCenterCode(mesWorkCenter.getWorkCenterCode());
item.setErpWorkCenter(mesWorkCenter.getErpWorkCenter());
//校验产线零件是否存在
if (!checkWorkCenterPartRelation(item.getWorkCenterCode(),item.getPartNo()) && (StringUtil.isEmpty(item.getOrderFlag()) || !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag()))){
MesException.throwMesBusiException(String.format("工单产线【%s】与工单零件【%s】没有维护产线零件关系",mesWorkCenter.getWorkCenterCode(),item.getPartNo()));
}
//获取客户物料信息
MesCustomerPart customerPart = null == mesCustomerPartMap ? null : mesCustomerPartMap.get(item.getPartNo());
if (!Objects.isNull(customerPart)) {
@ -1038,8 +1042,12 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
return;
}
log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()));
//查询自制件零件
List<String> partNoList = mesPartSapService.findMesPartSapByPartNoList(mesWorkOrderList.stream().map(MesWorkOrder::getPartNo).distinct().collect(Collectors.toList()), organizeCode).stream().filter(t -> t.getIsTestPiece() == CommonEnumUtil.FALSE).map(MesPartSap::getPartNo).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(partNoList)) {
//关闭工单回传
List<String> partNoAndDataKey = mesWorkOrderList.stream().map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList());
List<String> partNoAndDataKey = mesWorkOrderList.stream().filter(t -> !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(t.getOrderFlag()) && partNoList.contains(t.getPartNo())).map(t -> new StringJoiner(MesExtConstWords.COMMA).add(t.getPartNo()).add(t.getProductVersion()).add(t.getPlanStartTime().substring(0, 10)).toString()).distinct().collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(partNoAndDataKey)) {
List<MesWorkOrderToSap> mesWorkOrderToSapList = new ArrayList<>();
for (String partNoAndData : partNoAndDataKey) {
MesWorkOrderToSap orderToSap = new MesWorkOrderToSap(organizeCode, partNoAndData.split(MesExtConstWords.COMMA)[0], partNoAndData.split(MesExtConstWords.COMMA)[1], 0d, partNoAndData.split(MesExtConstWords.COMMA)[2]);
@ -1047,6 +1055,8 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesWorkOrderToSapList.add(orderToSap);
}
mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList);
}
}
//关闭工单
baseRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderStatus","systemSyncStatus"},
new Object[]{userName, TimeTool.getNowTime(true), MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(),CommonEnumUtil.FALSE}, ddlPackBean);

Loading…
Cancel
Save