tags/yfai-pcn-ext-v1.0
LML丶 12 months ago
parent b66eb47066
commit 12ea360426

@ -1,5 +1,6 @@
package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi; package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.platform.common.tool.TimeTool;
@ -32,18 +33,11 @@ public class MesJisShippingService implements IMesJisShippingService {
private MesShippingOrderManagementRepository shippingOrderManagementRepository; private MesShippingOrderManagementRepository shippingOrderManagementRepository;
@Autowired @Autowired
private MesShippingOrderManagementDetailRepository shippingOrderManagementDetailRepository; private MesShippingOrderManagementDetailRepository shippingOrderManagementDetailRepository;
@Autowired
private IMesConfigService configService;
public List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList, String org) { public List<MesJisShipping> getJisShipping(MesShippingOrderManagement orderManagement, List<MesShippingOrderManagementDetail> orderManagementDetailList, String org) {
// DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
// DdlPreparedPack.getStringEqualPack(orderManagementDetailList.get(0).getLoadingOrderNo(), "shippingCode", packBean);
// MesShippingOrderManagement originBean = shippingOrderManagementRepository.getByProperty(packBean);
//
// DdlPackBean detailPackBean = DdlPackBean.getDdlPackBean(org);
// DdlPreparedPack.getStringEqualPack(originBean.getShippingCode(), "shippingCode", detailPackBean);
// List<MesShippingOrderManagementDetail> detailDeleteList = shippingOrderManagementDetailRepository.findByHqlWhere(detailPackBean);
List<MesJisShipping> jisShippingList = new ArrayList<>(); List<MesJisShipping> jisShippingList = new ArrayList<>();
orderManagementDetailList.forEach(k -> { orderManagementDetailList.forEach(k -> {
MesJisShipping jisShipping = new MesJisShipping(); MesJisShipping jisShipping = new MesJisShipping();
@ -51,11 +45,15 @@ public class MesJisShippingService implements IMesJisShippingService {
BeanUtils.copyProperties(k, jisShipping, "id"); BeanUtils.copyProperties(k, jisShipping, "id");
jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode()); jisShipping.setFactoryCode(orderManagement.getCustOrganizeCode());
jisShipping.setShippingTime(TimeTool.getNowTime(true)); jisShipping.setShippingTime(TimeTool.getNowTime(true));
jisShipping.setErpWarerhouse(configService.getCfgValue(org, "ERP_WARERHOUSE"));
jisShipping.setErpWarehous(configService.getCfgValue(org, "ERP_WAREHOUS"));
jisShipping.setDock(orderManagement.getSendDockCode()); jisShipping.setDock(orderManagement.getSendDockCode());
jisShipping.setCusCode(orderManagement.getCustCode());
jisShipping.setCusDock(orderManagement.getCustDockCode()); jisShipping.setCusDock(orderManagement.getCustDockCode());
jisShipping.setCustOrderNo(k.getCustOrderNo()); jisShipping.setCustOrderNo(k.getCustOrderNo());
jisShipping.setSerialNumber(k.getBarcode()); jisShipping.setSerialNumber(k.getBarcode());
jisShipping.setQuantityPerCar(orderManagementDetailList.size()); jisShipping.setQuantityPerCar(orderManagementDetailList.size());
jisShipping.setOffTime(TimeTool.getNowTime(true));
jisShipping.setShippingOrderCode(orderManagement.getShippingCode()); jisShipping.setShippingOrderCode(orderManagement.getShippingCode());
ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName()); ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName());
jisShippingList.add(jisShipping); jisShippingList.add(jisShipping);

@ -150,9 +150,10 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//判断是否需要排序校验 默认排序则需要校验 //判断是否需要排序校验 默认排序则需要校验
if (loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) { if (loadingList.getScanSeqWay() == MesExtEnumUtil.SHIPPING_GROUP_SCAN_CONFIRM_SEQ_MODE.DEFAULT_SORT.getValue()) {
//获取明细中最小的 //获取明细中最小的
Long minSeq = model.getDetailList().stream().mapToLong(k -> k.getSeq()).min().getAsLong();
Long minSeq = model.getDetailList().stream().filter(k -> StringUtils.isEmpty(k.getScanSn())).mapToLong(k -> k.getSeq()).min().getAsLong();
//若扫描的不是最小顺序 则报错 //若扫描的不是最小顺序 则报错
if (minSeq != loadingListDetail.getSeq()) { if (minSeq.longValue() != loadingListDetail.getSeq().longValue()) {
throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误请检查数据", model.getShippingCode())); throw new ImppBusiException(String.format("【%s】此发运单扫描顺序错误请检查数据", model.getShippingCode()));
} }
} }

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

Loading…
Cancel
Save