合并广州代码

tags/yfai-pcn-ext-v2.3
xiangwei.zhang 9 months ago
parent a2c4488860
commit f30dea31ba

@ -303,78 +303,6 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), "status", recentlyOrderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"modifyDatetime"}, recentlyOrderPackBean);
MesShippingOrderManagement recentlyVehiclesOrder = shippingOrderManagementRepository.getByProperty(recentlyOrderPackBean);
model.setDetailList(detailList);
model.setShippingCode(orderManagement.getShippingCode());
if (!StringUtils.isEmpty(recentlyVehiclesOrder)) {
model.setRecentlyScanShippingCode(recentlyVehiclesOrder.getShippingCode());
}
return model;
}
@Override
public MesSortShippingCheckModel saveSn(MesSortShippingCheckModel model, String organizeCode, String userInfo) {
//校验发运单是否存在
MesShippingOrderManagement orderManagement = checkMesShippingOrderManagement(model, organizeCode);
//零件发运组
MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, orderManagement.getShippingGroupCode());
//根据条码找到对应的物料号若物料号一致则修改扫描flg将flg改为true.
//根据扫描的发运单以及前端传的发运单明细,进行匹配,若没有找到扫描的发运单,则提示扫描的发运单号不在此装车单中,请检查数据!。
//1 跳过
if(!Objects.isNull(model.getIsPass()) && Objects.equals(MesPcnExtConstWords.ONE,model.getIsPass())){
Optional<MesShippingOrderManagementDetail> shippingOrderManagementDetailOptional = model.getDetailList().stream().filter(t -> !Objects.equals(t.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).findFirst();
if(shippingOrderManagementDetailOptional.isPresent()){
MesShippingOrderManagementDetail mesShippingOrderManagementDetail = shippingOrderManagementDetailOptional.get();
MesProduceSn produceSn = new MesProduceSn();
produceSn.setProductSn(model.getSn());
updateOrderManagementDetails(userInfo, produceSn, orderManagement, mesShippingOrderManagementDetail,MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SKIP.getValue(),MesPcnExtConstWords.SHIP_PASS);
}else{
throw new ImppBusiException(String.format("【%s】明细已全部扫描完成请检查数据", orderManagement.getShippingCode()));
}
}else{
//校验条码
MesProduceSn produceSn = checkSn(model, organizeCode);
boolean scanFlg = false;
for (MesShippingOrderManagementDetail detail : model.getDetailList()) {
if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(detail.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) {
//校验发运单明细顺序
if(!StringUtils.isEmpty(shippingGroup.getIsEnableShippingFailSafe()) && CommonEnumUtil.VALID == shippingGroup.getIsEnableShippingFailSafe()){
Optional<MesShippingOrderManagementDetail> first = model.getDetailList().stream().filter(k -> k.getCustInfoSeq().compareTo(detail.getCustInfoSeq()) < 0 && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).findFirst();
if(first.isPresent()){
throw new ImppBusiException(String.format("发运单【%s】启用明细顺序防错序号【%s】前还有未扫描的发运单明细请检查数据", orderManagement.getShippingCode(), detail.getCustInfoSeq()));
}
}
//判断是否需要排序校验 默认排序则需要校验
if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
//获取明细中最小的
Optional<String> minPartNO = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER))
.min(Comparator.comparingLong(k -> k.getCustInfoSeq())).map(k -> k.getPartNo());
//若扫描的不是最小顺序 则报错
if (minPartNO.isPresent() && !minPartNO.get().equals(produceSn.getPartNo())) {
throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误请检查数据", model.getSn()));
}
}
//校验客户零件信息是否存在
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getStringEqualPack(detail.getPartNo(), "erpPartNo", packBean);
DdlPreparedPack.getStringEqualPack(detail.getCustPartNo(), "custPartNo", packBean);
if(!mesCustomerPartRepository.isExitByHql(packBean)){
throw new ImppBusiException(String.format("零件号【%s】客户零件号【%s】关系不存在请检查数据", detail.getPartNo(),detail.getCustPartNo()));
}
scanFlg = true;
updateOrderManagementDetails(userInfo, produceSn, orderManagement, detail,MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue(),"扫描完成");
break;
}
}
if (!scanFlg) {
throw new ImppBusiException(String.format("【%s】此条码对应的【%s】物料号与发运单中物料号不匹配请检查数据", model.getSn(), produceSn.getPartNo()));
}
}
return shippingOrderManagementRepository.getByProperty(recentlyOrderPackBean);
}
@ -550,7 +478,6 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//更新发运单
ConvertBean.serviceModelUpdate(orderManagement,userInfo);
update(orderManagement);
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
//不记忆时更新明细
if (!StringUtils.isEmpty(orderManagement.getIsEnableMemory()) && !Objects.equals(orderManagement.getIsEnableMemory(), MesCommonConstant.TRUE_INTEGER)){
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
@ -600,13 +527,6 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
MesEquipmentVariable mesEquipmentVariable = mesEquipmentExtService.getMesEquipmentVariable(organizeCode, rule.getEquipmentCode(), rule.getEquipVariableId());
if (Objects.isNull(mesEquipmentVariable)) {
MesPcnException.throwMesBusiException("设备【%s】设备变量ID【%s】信息不存在请检查", rule.getEquipmentCode(), rule.getEquipVariableId());
//更新装车单状态
if (!StringUtils.isEmpty(loadingList)) {
loadingList.setSystemSyncStatus(CommonEnumUtil.FALSE);
loadingList.setStatus(MesExtEnumUtil.MES_LOADING_STATUS.ASN.getValue());
ConvertBean.serviceModelUpdate(loadingList, userInfo);
shippingLoadingCheckService.update(loadingList);
}
}
//设备通道
MesEquipmentChannel mesEquipmentChannel = mesEquipmentExtService.getMesEquipmentChannel(organizeCode, rule.getEquipmentCode(), mesEquipmentVariable.getChannel());

Loading…
Cancel
Save