Merge remote-tracking branch 'origin/uat-temp-nht-2503130000-chengdu-shipping' into uat-temp-wj-chongqingdaqu-prod-chengdu

uat-temp-wj-chongqingdaqu-prod-chengdu
王杰 5 months ago
commit e9eb65ae58

@ -13,6 +13,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesJisShipping;
import cn.estsh.i3plus.pojo.mes.bean.MesLoadingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingListDetail;
@ -28,6 +29,8 @@ import org.springframework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.LongStream;
/**
* @Description :
@ -54,6 +57,8 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
@Autowired
private MesPartShippingGroupService mesPartShippingGroupService;
@Autowired
private IMesLoadingGroupRepository mesLoadingGroupRDao;
@Autowired
private IMesSortShippingCheckService mesSortShippingCheckService;
@ -159,6 +164,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
checkLoadingList(model, organizeCode, loadingList);
//查询零件发运组
MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode());
MesLoadingGroup loadingGroup = loadingList.getLoadingGroupId() != null ? mesLoadingGroupRDao.getById(loadingList.getLoadingGroupId()) : null;
boolean scanflg = false;
for (MesLoadingListDetail loadingListDetail : model.getDetailList()) {
if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) {
@ -184,10 +190,27 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误请检查数据", model.getShippingCode()));
}
}
if (loadingGroup != null && loadingGroup.getLoadingSeq() != null) {
IntStream scanSeqStream = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn()) && !Objects.equals(k.getTempStatus(), MesCommonConstant.TRUE_INTEGER)).mapToInt(MesLoadingListDetail::getScanSeq);
if (loadingGroup.getLoadingSeq() == MesExtEnumUtil.LOADING_SEQ_TYPE.POSITIVE_SEQ.getValue()) {
Integer minSeq = scanSeqStream.min().orElse(0);
//若扫描的不是最小顺序 则报错
if (!Objects.equals(minSeq, loadingListDetail.getScanSeq())) {
throw new ImppBusiException(String.format("【%s】此发运单应按装车扫描顺序正序扫描请检查数据", model.getShippingCode()));
}
} else if (loadingGroup.getLoadingSeq() == MesExtEnumUtil.LOADING_SEQ_TYPE.REVERSE_SEQ.getValue()) {
Integer maxSeq = scanSeqStream.max().orElse(0);
//若扫描的不是最小顺序 则报错
if (!Objects.equals(maxSeq, loadingListDetail.getScanSeq())) {
throw new ImppBusiException(String.format("【%s】此发运单应按装车扫描顺序倒序扫描请检查数据", model.getShippingCode()));
}
}
}
//根据扫描的装车单找到是否先装车配置
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
if (Objects.equals(loadingList.getIsFirstInstall(), MesCommonConstant.FALSE_INTEGER)) {
if (!Objects.equals(loadingList.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean);
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean);

@ -17,7 +17,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder;
import cn.estsh.i3plus.pojo.mes.bean.edi.cd.MesCimVolvoJisRackIdDetail;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesCustSortInfo;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagementDetail;
@ -46,7 +45,7 @@ import java.util.stream.Stream;
**/
@Service
@Slf4j
public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements IMesShippingScanStrategyService {
public class MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements IMesShippingScanStrategyService {
@Autowired
private MesShippingOrderManagementRepository shippingOrderManagementRepository;
@Autowired
@ -177,7 +176,7 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements
throw new ImppBusiException(String.format("【%s】此条码已经扫描过请检查数据", model.getSn()));
}
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean);
DdlPreparedPack.getStringEqualPack(model.getSn(), "custSn", packBean);
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
MesProduceSn produceSn = produceSnRepository.getByProperty(packBean);
if (!StringUtils.isEmpty(produceSn)) {
@ -243,7 +242,7 @@ public class mesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements
private void updateOrderManagementDetails(MesProduceSn produceSn, MesShippingOrderManagement orderManagement, MesShippingOrderManagementDetail detail, MesWorkOrder workOrder, String userInfo) {
// if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
detail.setBarcode(produceSn.getProductSn());
detail.setBarcode(produceSn.getCustSn());
detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
detail.setRemark("扫描完成");

@ -44,7 +44,7 @@ import java.util.stream.Stream;
**/
@Service
@Slf4j
public class mesShippingScanOrderStrategyServiceImpl implements IMesShippingScanStrategyService {
public class MesShippingScanOrderStrategyServiceImpl implements IMesShippingScanStrategyService {
@Autowired
private MesShippingOrderManagementRepository shippingOrderManagementRepository;
@Autowired
Loading…
Cancel
Save