|
|
|
@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.shippingscan.IMes
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingListModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingModel;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
@ -137,10 +138,13 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesLoadingGroupRepository mesLoadingGroupRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
protected MesCustomerCarModelRepository customerCarModelRepository;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) {
|
|
|
|
|
//返回数据组装
|
|
|
|
|
MesSortShippingCheckModel model = new MesSortShippingCheckModel();
|
|
|
|
|
MesSortShippingCheckModel model = new MesSortShippingCheckModel(shippingOrderManagement.getOrganizeCode());
|
|
|
|
|
//校验发运单
|
|
|
|
|
MesShippingOrderManagement orderManagement = getMesShippingOrderManagement(shippingOrderManagement);
|
|
|
|
|
if(Objects.isNull(orderManagement)){
|
|
|
|
@ -149,7 +153,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
}
|
|
|
|
|
MesPartShippingGroup partShippingGroup = getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode());
|
|
|
|
|
//校验发运单扫描顺序
|
|
|
|
|
checkShippingOrderSeq(shippingOrderManagement, orderManagement);
|
|
|
|
|
checkShippingOrderSeq(shippingOrderManagement, orderManagement, model);
|
|
|
|
|
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
|
|
|
|
|
checkLoadingList(shippingOrderManagement, orderManagement, partShippingGroup);
|
|
|
|
|
if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
|
|
|
|
@ -425,7 +429,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
return orderManagement;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkShippingOrderSeq(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement) {
|
|
|
|
|
private void checkShippingOrderSeq(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement, MesSortShippingCheckModel model) {
|
|
|
|
|
//最后一个扫描完成的发运单信息
|
|
|
|
|
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getNumberSmallerPack(orderManagement.getSeq(), "seq", orderManagementPackBean);
|
|
|
|
@ -454,6 +458,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
orderManagement.getShippingCode(), orderManagement.getSeq(),shippingOrder.getShippingCode(),shippingOrder.getSeq()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
model.setShippingSeq(orderManagement.getSeq());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkLoadingList(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement, MesPartShippingGroup partShippingGroup) {
|
|
|
|
@ -1073,4 +1078,67 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
}
|
|
|
|
|
return shippingGroup.getConfirmPartType();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesSortShippingCheckModel getSortShippingQueueList(MesSortShippingCheckModel model) {
|
|
|
|
|
if (null == model || null == model.getMesPartShippingGroup()) return model;
|
|
|
|
|
Integer showQueueNum = model.getMesPartShippingGroup().getShowQueueNum();
|
|
|
|
|
if (StringUtils.isEmpty(showQueueNum) || showQueueNum.compareTo(MesPcnExtConstWords.ZERO) <= 0) return model;
|
|
|
|
|
//查询当前发运单后面的未发运的单据
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getNumberBiggerPack(model.getShippingSeq(), MesPcnExtConstWords.SEQ, packBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getMesPartShippingGroup().getShippingGroupCode(), MesPcnExtConstWords.SHIPPING_GROUP_CODE, packBean);
|
|
|
|
|
DdlPreparedPack.getInPackList(Stream.of(MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue(), MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()).collect(Collectors.toList()), MesPcnExtConstWords.STATUS, packBean);
|
|
|
|
|
DdlPreparedPack.getOrderBy(MesPcnExtConstWords.SEQ, CommonEnumUtil.ASC_OR_DESC.ASC.getValue(), packBean);
|
|
|
|
|
List<MesShippingOrderManagement> shippingOrderList = shippingOrderManagementRepository.findByHqlTopWhere(packBean, showQueueNum);
|
|
|
|
|
if (CollectionUtils.isEmpty(shippingOrderList)) return model;
|
|
|
|
|
//查询发运单明细数据
|
|
|
|
|
List<Long> idList = shippingOrderList.stream().filter(o -> null != o).map(MesShippingOrderManagement::getId).collect(Collectors.toList());
|
|
|
|
|
packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
if (idList.size() == 1) DdlPreparedPack.getNumEqualPack(idList.get(0), MesPcnExtConstWords.PID, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(idList, MesPcnExtConstWords.PID, packBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> detailList = shippingOrderManagementDetailRepository.findByHqlWhere(packBean);
|
|
|
|
|
Map<Long, List<MesShippingOrderManagementDetail>> detailMap = CollectionUtils.isEmpty(detailList) ? null :
|
|
|
|
|
detailList.stream().filter(o -> null != o).collect(Collectors.groupingBy(MesShippingOrderManagementDetail::getPid));
|
|
|
|
|
List<String> custPartNoList = CollectionUtils.isEmpty(detailList) ? null :
|
|
|
|
|
(detailList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCustPartNo()))).map(MesShippingOrderManagementDetail::getCustPartNo)
|
|
|
|
|
.collect(Collectors.toList())).stream().filter(o -> !StringUtils.isEmpty(o)).distinct().collect(Collectors.toList());
|
|
|
|
|
//查询车型
|
|
|
|
|
Map<String, List<MesCustomerCarModel>> carModelCodeMap = null;
|
|
|
|
|
if (!CollectionUtils.isEmpty(custPartNoList)) {
|
|
|
|
|
packBean = DdlPackBean.getDdlPackBean(model.getOrganizeCode());
|
|
|
|
|
if (custPartNoList.size() == 1) DdlPreparedPack.getStringEqualPack(custPartNoList.get(0), MesPcnExtConstWords.CUST_PART_NO, packBean);
|
|
|
|
|
else DdlPreparedPack.getInPackList(custPartNoList, MesPcnExtConstWords.CUST_PART_NO, packBean);
|
|
|
|
|
List<MesCustomerCarModel> customerCarModelList = customerCarModelRepository.findByHqlWhere(packBean);
|
|
|
|
|
carModelCodeMap = CollectionUtils.isEmpty(customerCarModelList) ? null :
|
|
|
|
|
customerCarModelList.stream().filter(o -> (null != o && !StringUtils.isEmpty(o.getCarModelCode()))).collect(Collectors.groupingBy(MesCustomerCarModel::getCustPartNo));
|
|
|
|
|
}
|
|
|
|
|
//返回待发运列表数据
|
|
|
|
|
List<MesSortShippingListModel> sortShippingListModelList = new ArrayList<>();
|
|
|
|
|
for (MesShippingOrderManagement shippingOrderManagement : shippingOrderList) {
|
|
|
|
|
if (null == shippingOrderManagement) continue;
|
|
|
|
|
List<MesShippingOrderManagementDetail> details = CollectionUtils.isEmpty(detailMap) ? null : detailMap.get(shippingOrderManagement.getId());
|
|
|
|
|
if (CollectionUtils.isEmpty(details)) {
|
|
|
|
|
MesSortShippingListModel shippingListModel = new MesSortShippingListModel();
|
|
|
|
|
shippingListModel.setShippingCode(shippingOrderManagement.getShippingCode());
|
|
|
|
|
sortShippingListModelList.add(shippingListModel);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : details) {
|
|
|
|
|
if (null == detail) continue;
|
|
|
|
|
MesSortShippingListModel shippingListModel = new MesSortShippingListModel();
|
|
|
|
|
shippingListModel.setShippingCode(shippingOrderManagement.getShippingCode());
|
|
|
|
|
shippingListModel.setCustOrderNo(detail.getCustOrderNo());
|
|
|
|
|
shippingListModel.setPartNo(detail.getPartNo());
|
|
|
|
|
shippingListModel.setCustPartNo(detail.getCustPartNo());
|
|
|
|
|
if (!CollectionUtils.isEmpty(carModelCodeMap) && carModelCodeMap.containsKey(detail.getCustPartNo())) {
|
|
|
|
|
shippingListModel.setCarModelCode(carModelCodeMap.get(detail.getCustPartNo()).get(0).getCarModelCode());
|
|
|
|
|
shippingListModel.setCarModelName(carModelCodeMap.get(detail.getCustPartNo()).get(0).getCarModelName());
|
|
|
|
|
}
|
|
|
|
|
sortShippingListModelList.add(shippingListModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
model.setSortShippingListModelList(sortShippingListModelList);
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|