43661 排序发运扫描条码时,同序号的零件也需要校验扫描顺序

tags/yfai-pcn-ext-v2.3
jun 8 months ago
parent f3cc04669f
commit dccae499f3

@ -174,7 +174,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
} }
//判断是否需要排序校验 默认排序则需要校验 //判断是否需要排序校验 默认排序则需要校验
if (!StringUtils.isEmpty(loadingList.getScanSeqWay()) && loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { if (!StringUtils.isEmpty(loadingList.getScanSeqWay()) && loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE_10.getValue()) {
//获取明细中最小的 //获取明细中最小的
long minSeq = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn()) && !Objects.equals(k.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).mapToLong(MesLoadingListDetail::getSeq).min().getAsLong(); long minSeq = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn()) && !Objects.equals(k.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).mapToLong(MesLoadingListDetail::getSeq).min().getAsLong();

@ -118,7 +118,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//零件发运组 //零件发运组
model.setMesPartShippingGroup(getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode())); model.setMesPartShippingGroup(getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode()));
//发运单明细 //发运单明细
model.setDetailList(getMesShippingOrderManagementDetails(orderManagement)); model.setDetailList(getMesShippingOrderManagementDetails(orderManagement,model.getMesPartShippingGroup()));
//最近扫描完成的发运单号 //最近扫描完成的发运单号
MesShippingOrderManagement lastShippingOrder = getLastShippingOrder(orderManagement.getOrganizeCode()); MesShippingOrderManagement lastShippingOrder = getLastShippingOrder(orderManagement.getOrganizeCode());
if (!Objects.isNull(lastShippingOrder)) { if (!Objects.isNull(lastShippingOrder)) {
@ -290,7 +290,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
} }
} }
private List<MesShippingOrderManagementDetail> getMesShippingOrderManagementDetails(MesShippingOrderManagement orderManagement) { private List<MesShippingOrderManagementDetail> getMesShippingOrderManagementDetails(MesShippingOrderManagement orderManagement,MesPartShippingGroup mesPartShippingGroup) {
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean); DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean);
DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),"status",orderDetailPackBean); DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.CLOSE.getValue(),"status",orderDetailPackBean);
@ -305,9 +305,41 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
k.setIsScanFlg(MesCommonConstant.TRUE_INTEGER); k.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
} }
}); });
//序号,总成类型顺序
if(!Objects.isNull(mesPartShippingGroup.getScanSeqWay()) && !StringUtil.isEmpty(mesPartShippingGroup.getPartType()) && mesPartShippingGroup.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE_40.getValue()){
return mesShippingOrderManagementDetailsSort(mesPartShippingGroup, detailList);
}
return detailList; return detailList;
} }
private List<MesShippingOrderManagementDetail> mesShippingOrderManagementDetailsSort(MesPartShippingGroup mesPartShippingGroup, List<MesShippingOrderManagementDetail> detailList) {
List<MesShippingOrderManagementDetail> resultDetails = new ArrayList<>();
Map<Long, List<MesShippingOrderManagementDetail>> detailMap = detailList.stream().collect(Collectors.groupingBy(MesShippingOrderManagementDetail::getCustInfoSeq));
List<String> partTypeList = Arrays.asList(mesPartShippingGroup.getPartType().split(MesPcnExtConstWords.COMMA));
for (Long seq : detailMap.keySet()) {
List<MesShippingOrderManagementDetail> details = detailMap.get(seq);
if (details.size() > MesPcnExtConstWords.ONE) {
Map<String, List<MesShippingOrderManagementDetail>> containsMap = details.stream().filter(t -> partTypeList.contains(t.getPartTypeCode())).collect(Collectors.groupingBy(MesShippingOrderManagementDetail::getPartTypeCode));
List<MesShippingOrderManagementDetail> noContains = details.stream().filter(t -> !partTypeList.contains(t.getPartTypeCode())).collect(Collectors.toList());
//按照维护的总成类型显示
for (String type : partTypeList){
if (!Objects.isNull(containsMap) && containsMap.containsKey(type)){
resultDetails.addAll(containsMap.get(type));
}
}
//相同seq总成类型未维护放在最后面显示
if (!CollectionUtils.isEmpty(noContains)){
resultDetails.addAll(noContains);
}
} else {
resultDetails.addAll(details);
}
}
return resultDetails;
}
private MesShippingOrderManagement getLastShippingOrder(String organizeCode) { private MesShippingOrderManagement getLastShippingOrder(String organizeCode) {
DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), "status", recentlyOrderPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue(), "status", recentlyOrderPackBean);

@ -160,7 +160,7 @@ public class MesShippingScanSnAndOrderStrategyServiceImpl implements IMesShippin
} }
} }
//判断是否需要排序校验 默认排序则需要校验 //判断是否需要排序校验 默认排序则需要校验
if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE_10.getValue()) {
//获取明细中最小的 //获取明细中最小的
Optional<String> minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) Optional<String> minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER))
.min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getCustPartNo); .min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getCustPartNo);

@ -98,12 +98,10 @@ public class MesShippingScanSnStrategyServiceImpl implements IMesShippingScanStr
} }
} }
//判断是否需要排序校验 默认排序则需要校验 //判断是否需要排序校验 默认排序则需要校验
if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { if (!StringUtils.isEmpty(orderManagement.getScanSeqWay()) && !Objects.isNull(MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.valueOfDescription(orderManagement.getScanSeqWay()))) {
//获取明细中最小的 //按照页面显示顺序校验
Optional<String> minPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) Optional<String> nextPartNo = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()) && !Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).findFirst().map(MesShippingOrderManagementDetail::getPartNo);
.min(Comparator.comparingLong(MesShippingOrderManagementDetail::getCustInfoSeq)).map(MesShippingOrderManagementDetail::getPartNo); if (nextPartNo.isPresent() && !nextPartNo.get().equals(produceSn.getPartNo())) {
//若扫描的不是最小顺序 则报错
if (minPartNo.isPresent() && !minPartNo.get().equals(produceSn.getPartNo())) {
throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误请检查数据", model.getSn())); throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误请检查数据", model.getSn()));
} }
} }

Loading…
Cancel
Save