|
|
@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
import java.util.Comparator;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Optional;
|
|
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
|
|
|
@ -73,8 +74,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
|
|
|
|
|
|
|
//校验发运单状态 必须是未装车条码
|
|
|
|
//校验发运单状态 必须是未装车条码
|
|
|
|
if (orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue() && orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) {
|
|
|
|
if (orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue() && orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) {
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】或【%s】状态的发运单", shippingOrderManagement.getShippingCode(), orderManagement.getStatus(),
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】或【%s】状态的发运单", shippingOrderManagement.getShippingCode(),
|
|
|
|
MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue(),MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()));
|
|
|
|
MesExtEnumUtil.SHIPPING_ORDER_STATUS.valueOfDescription(orderManagement.getStatus()),
|
|
|
|
|
|
|
|
MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getDescription(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getDescription()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -116,12 +118,12 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
statusList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue());
|
|
|
|
statusList.add(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPING.getValue());
|
|
|
|
DdlPackBean sortOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
|
|
|
|
DdlPackBean sortOrderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
|
|
|
|
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "loadingListId", sortOrderPackBean);
|
|
|
|
DdlPreparedPack.getNumEqualPack(loadingList.getId(), "loadingListId", sortOrderPackBean);
|
|
|
|
DdlPreparedPack.getNumEqualPack(statusList, "status", sortOrderPackBean);
|
|
|
|
DdlPreparedPack.getInPackList(statusList, "status", sortOrderPackBean);
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, sortOrderPackBean);
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"seq"}, sortOrderPackBean);
|
|
|
|
MesShippingOrderManagement sortTempOrder = shippingOrderManagementRepository.getByProperty(sortOrderPackBean);
|
|
|
|
MesShippingOrderManagement sortTempOrder = shippingOrderManagementRepository.getByProperty(sortOrderPackBean);
|
|
|
|
|
|
|
|
|
|
|
|
//若没有最小的,则此装车单 没有发运单扫描完成
|
|
|
|
//若没有最小的,则此装车单 没有发运单扫描完成
|
|
|
|
if (sortTempOrder.getId() != orderManagement.getId()) {
|
|
|
|
if (sortTempOrder.getId().longValue() != orderManagement.getId().longValue()) {
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请扫描【%s】发运单!",
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误,请扫描【%s】发运单!",
|
|
|
|
shippingOrderManagement.getShippingCode(), sortTempOrder.getOrderCode()));
|
|
|
|
shippingOrderManagement.getShippingCode(), sortTempOrder.getOrderCode()));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -180,19 +182,22 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
boolean scanFlg = false;
|
|
|
|
boolean scanFlg = false;
|
|
|
|
for (MesShippingOrderManagementDetail detail : model.getDetailList()) {
|
|
|
|
for (MesShippingOrderManagementDetail detail : model.getDetailList()) {
|
|
|
|
if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode())) {
|
|
|
|
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()) {
|
|
|
|
if (orderManagement.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
|
|
|
|
//获取明细中最小的
|
|
|
|
//获取明细中最小的
|
|
|
|
Long minSeq = model.getDetailList().stream().mapToLong(k -> k.getCustInfoSeq()).min().getAsLong();
|
|
|
|
Optional<String> minPartNO = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getBarcode()))
|
|
|
|
|
|
|
|
.min(Comparator.comparingLong(k -> k.getCustInfoSeq())).map(k -> k.getPartNo());
|
|
|
|
//若扫描的不是最小顺序 则报错
|
|
|
|
//若扫描的不是最小顺序 则报错
|
|
|
|
if (minSeq != detail.getCustInfoSeq()) {
|
|
|
|
if (!minPartNO.get().equals(produceSn.getPartNo())) {
|
|
|
|
throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误,请检查数据!", model.getSn()));
|
|
|
|
throw new ImppBusiException(String.format("【%s】此条码扫描顺序错误,请检查数据!", model.getSn()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
scanFlg = true;
|
|
|
|
|
|
|
|
detail.setBarcode(produceSn.getSerialNumber());
|
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
|
|
|
|
if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
|
|
|
|
detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
|
|
|
|
|
|
|
|