tags/yfai-pcn-ext-v1.0
LML丶 12 months ago
parent d32a698bb1
commit 633a7c32c6

@ -59,11 +59,10 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//校验装车单
MesLoadingList loadingListResult = checkLoadingList(loadingList.getOrderCode(), loadingList.getOrganizeCode());
//若生成装车单,则一定有装车单明细
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(loadingList.organizeCode);
DdlPreparedPack.getNumEqualPack(loadingListResult.getId(), "pid", orderDetailPackBean);
// DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, orderDetailPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, orderDetailPackBean);
List<MesLoadingListDetail> detailList = vehiclesOrderDetailRepository.findByHqlWhere(orderDetailPackBean);
//是否逆转
@ -117,7 +116,6 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//查询最近需要扫描的装车单号
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(org);
// DdlPreparedPack.getStringEqualPack(shippingGroupNo, "partShippingGroupCode", orderPackBean);
DdlPreparedPack.getInPackList(statusList, "status", orderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, orderPackBean);
MesLoadingList loadingList = vehiclesOrderRepository.getByProperty(orderPackBean);
@ -148,6 +146,17 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
if (loadingListDetail.getTempStatus() == MesCommonConstant.TRUE_INTEGER) {
throw new ImppBusiException(String.format("【%s】此发运单已经扫描过请检查数据", model.getShippingCode()));
}
//判断是否需要排序校验 默认排序则需要校验
if (loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
//获取明细中最小的
Long minSeq = model.getDetailList().stream().mapToLong(k -> k.getSeq()).min().getAsLong();
//若扫描的不是最小顺序 则报错
if (minSeq != loadingListDetail.getSeq()) {
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误请检查数据", model.getShippingCode()));
}
}
loadingListDetail.setScanSn(model.getShippingCode());
loadingListDetail.setTempStatus(MesCommonConstant.TRUE_INTEGER);
loadingListDetail.setTempStatusVal("扫描完成");

@ -48,7 +48,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
@Autowired
private MesPartShippingGroupRepository partShippingGroupRepository;
@Autowired
private MesLoadingListRepository ListRepository;
private MesLoadingListRepository listRepository;
@Autowired
private MesLoadingListDetailRepository listDetailRepository;
@ -64,7 +64,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//校验发运单是否存在
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingCode(), "shippingCode", orderManagementPackBean);
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(orderManagementPackBean);
if (StringUtils.isEmpty(orderManagement)) {
@ -81,17 +81,19 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
if (orderManagement.getIsLoading() == MesCommonConstant.TRUE_INTEGER) {
if (StringUtils.isEmpty(orderManagement.getOrderCode())) {
if (StringUtils.isEmpty(orderManagement.getLoadingListId()) || orderManagement.getLoadingListId() == 0) {
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没绑定装车单号,请检查数据!", shippingOrderManagement.getShippingCode()));
}
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(orderManagement.getLoadingListId(), "id", orderDetailPackBean);
MesLoadingList loadingList = ListRepository.getByProperty(orderDetailPackBean);
MesLoadingList loadingList = listRepository.getByProperty(orderDetailPackBean);
if (StringUtils.isEmpty(loadingList)) {
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode()));
}
//判断是否先装车
if (orderManagement.getIsFirstInstall() == MesCommonConstant.TRUE_INTEGER) {
@ -103,6 +105,29 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getDescription()));
}
}
//判断是否需要排序校验 默认排序则需要校验
if (loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
//获取此装车单中 状态为创建 已发布 发运中 seq最小的
List<Integer> statusList = new ArrayList<>();
statusList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue());
statusList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue());
statusList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue());
DdlPackBean sortOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "loadingListId", sortOrderPackBean);
DdlPreparedPack.getNumEqualPack(statusList, "status", sortOrderPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, sortOrderPackBean);
MesShippingOrderManagement sortTempOrder = shippingOrderManagementRepository.getByProperty(sortOrderPackBean);
//若没有最小的,则此装车单 没有发运单扫描完成
if (sortTempOrder.getId() != orderManagement.getId()) {
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误请扫描【%s】发运单",
shippingOrderManagement.getShippingCode(), sortTempOrder.getOrderCode()));
}
}
}
MesSortShippingCheckModel model = new MesSortShippingCheckModel();
@ -111,8 +136,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
}
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(orderManagement.getId(), "pid", orderDetailPackBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"custInfoSeq"}, orderDetailPackBean);
List<MesShippingOrderManagementDetail> detailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderDetailPackBean);
detailList.forEach(k -> {
@ -125,7 +151,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
model.setIsScanCount(count.intValue());
//查询最近扫描完成的装车单号
DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
DdlPackBean recentlyOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
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);
@ -149,12 +175,24 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//校验发运单是否存在
MesShippingOrderManagement orderManagement = checkMesShippingOrderManagement(model, org);
//根据条码找到对应的物料号若物料号一致则修改扫描flg将flg改为true.
boolean scanFlg = false;
for (MesShippingOrderManagementDetail detail : model.getDetailList()) {
if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode())) {
scanFlg = true;
detail.setBarcode(produceSn.getSerialNumber());
//判断是否需要排序校验 默认排序则需要校验
if (orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
//获取明细中最小的
Long minSeq = model.getDetailList().stream().mapToLong(k -> k.getCustInfoSeq()).min().getAsLong();
//若扫描的不是最小顺序 则报错
if (minSeq != detail.getCustInfoSeq()) {
throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误请检查数据", model.getSn()));
}
}
if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);

Loading…
Cancel
Save