Merge branch 'uat-temp-wj-chongqingdaqu-prod-temp-46503' into yfai-20250418-dev

uat-temp-nht-2505020000-shippingkanban
王杰 3 months ago
commit a049b715c2

@ -41,4 +41,7 @@ public interface IMesSortShippingCheckService {
void saveSecondShipScanOrder(MesSortShippingCheckModel model);
@ApiOperation(value = "待发运列表")
MesSortShippingCheckModel getSortShippingQueueList(MesSortShippingCheckModel model);
}

@ -75,6 +75,8 @@ public class MesSortShippingCheckController {
ConvertBean.serviceModelUpdate(shippingOrderManagement, userInfo);
long start = System.currentTimeMillis();
MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement);
//待发运列表
model = sortShippingCheckService.getSortShippingQueueList(model);
long end = System.currentTimeMillis();
scanLogUtil.info("扫描发运单执行结束", end - start);
return ResultBean.success(model != null ? model.getMsg() : "").setResultObject(model);

@ -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;
}
}

@ -54,12 +54,23 @@ public class MesSortShippingCheckModel {
@ApiParam("提示引导信息")
private String msg;
@ApiParam("发运单顺序号")
private Long shippingSeq;
@ApiParam("料架条码")
private String volvoRackNo;
@ApiParam("待发运列表")
private List<MesSortShippingListModel> sortShippingListModelList;
public void setDetailList(List<MesShippingOrderManagementDetail> detailList) {
this.detailList = detailList;
this.isScanCount = (int) detailList.stream().filter(k -> Objects.equals(k.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)).count();
}
public MesSortShippingCheckModel() {}
public MesSortShippingCheckModel(String organizeCode) {
this.organizeCode = organizeCode;
}
}

@ -0,0 +1,38 @@
package cn.estsh.i3plus.ext.mes.pcn.pojo.model;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.springframework.util.CollectionUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @Description : MODEL
**/
@Data
public class MesSortShippingListModel implements Serializable {
private static final long serialVersionUID = 4209064017242032556L;
@ApiParam("发运单号")
private String shippingCode;
@ApiParam("客户订单号")
private String custOrderNo;
@ApiParam("零件号")
private String partNo;
@ApiParam("客户零件号")
private String custPartNo;
@ApiParam("车型代码")
private String carModelCode;
@ApiParam("车型名称")
private String carModelName;
}

@ -361,6 +361,8 @@ public class MesPcnExtConstWords {
public static final String LAST_PRINT_TIME = "lastPrintTime";
//发运组名称
public static final String SHIPPING_GROUP_NAME = "shippingGroupName";
//顺序号
public static final String SEQ = "seq";
//队列状态
public static final String QUEUE_STATUS = "queueStatus";
//目标工位

Loading…
Cancel
Save