|
|
|
@ -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,15 +1042,21 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
log.info("关闭工单个数{},工单:{}",mesWorkOrderList.size(),mesWorkOrderList.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList()));
|
|
|
|
|
//关闭工单回传
|
|
|
|
|
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<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]);
|
|
|
|
|
ConvertBean.serviceModelInitialize(orderToSap,userName);
|
|
|
|
|
mesWorkOrderToSapList.add(orderToSap);
|
|
|
|
|
}
|
|
|
|
|
mesWorkOrderToSapRepository.saveAll(mesWorkOrderToSapList);
|
|
|
|
|
//查询自制件零件
|
|
|
|
|
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().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]);
|
|
|
|
|
ConvertBean.serviceModelInitialize(orderToSap, userName);
|
|
|
|
|
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);
|
|
|
|
|