|
|
|
@ -4,25 +4,23 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesJisShippingService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesSortShippingCheckService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesSortShippingCheckModel;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.util.MesPcnConstWords;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.repository.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.auth.AuthUtil;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ImppRedis;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Description :
|
|
|
|
@ -45,10 +43,10 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPartShippingGroupRepository partShippingGroupRepository;
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesLoadingVehiclesOrderRepository vehiclesOrderRepository;
|
|
|
|
|
private MesLoadingListRepository ListRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesLoadingVehiclesOrderDetailRepository vehiclesOrderDetailRepository;
|
|
|
|
|
private MesLoadingListDetailRepository listDetailRepository;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesJisShippingRepository jisShippingRepository;
|
|
|
|
@ -56,25 +54,21 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesJisShippingService jisShippingService;
|
|
|
|
|
|
|
|
|
|
@Resource(name = MesPcnConstWords.REDIS_RES_PCN)
|
|
|
|
|
private ImppRedis redisMesPcn;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public MesSortShippingCheckModel queryShippingOrderNo(MesShippingOrderManagement shippingOrderManagement) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//校验装车单是否存在
|
|
|
|
|
//校验发运单是否存在
|
|
|
|
|
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingOrderNo(), "shippingOrderNo", orderManagementPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingCode(), "shippingCode", orderManagementPackBean);
|
|
|
|
|
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(orderManagementPackBean);
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单不存在,请检查数据!", shippingOrderManagement.getShippingOrderNo()));
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单不存在,请检查数据!", shippingOrderManagement.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//校验装车单状态 必须是未装车条码
|
|
|
|
|
if (orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue()) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】状态的发运单", shippingOrderManagement.getShippingOrderNo(), orderManagement.getStatus(),
|
|
|
|
|
//校验发运单状态 必须是未装车条码
|
|
|
|
|
if (orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue() && orderManagement.getStatus() != MesExtEnumUtil.SHIPPING_ORDER_STATUS.PUBLISHED.getValue()) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单状态为【%s】,请选择状态为【%s】状态的发运单", shippingOrderManagement.getShippingCode(), orderManagement.getStatus(),
|
|
|
|
|
MesExtEnumUtil.SHIPPING_ORDER_STATUS.CREATE.getValue()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -82,28 +76,24 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
|
|
|
|
|
if (orderManagement.getIsLoading() == MesCommonConstant.TRUE_INTEGER) {
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement.getLoadingOrderNo())) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没绑定装车单号,请检查数据!", shippingOrderManagement.getShippingOrderNo()));
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement.getOrderCode())) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没绑定装车单号,请检查数据!", shippingOrderManagement.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingOrderNo(), "shippingOrderNo", orderDetailPackBean);
|
|
|
|
|
MesLoadingVehiclesOrderDetail vehiclesOrderDetail = vehiclesOrderDetailRepository.getByProperty(orderDetailPackBean);
|
|
|
|
|
if (StringUtils.isEmpty(vehiclesOrderDetail)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingOrderNo()));
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getOrderCode(), "orderCode", orderDetailPackBean);
|
|
|
|
|
MesLoadingList loadingList = ListRepository.getByProperty(orderDetailPackBean);
|
|
|
|
|
if (StringUtils.isEmpty(loadingList)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//判断是否先装车
|
|
|
|
|
if (orderManagement.getIsFirstInstall() == MesCommonConstant.TRUE_INTEGER) {
|
|
|
|
|
|
|
|
|
|
//是否进行完装车校验
|
|
|
|
|
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(vehiclesOrderDetail.getLoadingOrderNo(), "loadingOrderNo", orderPackBean);
|
|
|
|
|
MesLoadingVehiclesOrder vehiclesOrder = vehiclesOrderRepository.getByProperty(orderPackBean);
|
|
|
|
|
//若没进行装车校验,则提示【%s】此发运单对应的【%s】此装车单状态为【%s】,请选择状态为【%s】的数据
|
|
|
|
|
if (vehiclesOrder.getStatus() != MesExtEnumUtil.LOADING_ORDER_STATUS.LOADED.getValue()) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单对应的【%s】此装车单状态为【%s】,请选择状态为【%s】的数据!", shippingOrderManagement.getShippingOrderNo(),
|
|
|
|
|
vehiclesOrder.getLoadingOrderNo(), vehiclesOrder.getStatus(), MesExtEnumUtil.LOADING_ORDER_STATUS.LOADED.getDescription()));
|
|
|
|
|
if (loadingList.getStatus() != MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.LOADED.getValue()) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单对应的【%s】此装车单状态为【%s】,请选择状态为【%s】的数据!", shippingOrderManagement.getShippingCode(),
|
|
|
|
|
loadingList.getOrderCode(), MesExtEnumUtil.LOADING_ORDER_STATUS.valueOfDescription(loadingList.getStatus()), MesExtEnumUtil.LOADING_ORDER_STATUS.LOADED.getDescription()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -115,7 +105,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(shippingOrderManagement.organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingOrderNo(), "shippingOrderNo", orderDetailPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(shippingOrderManagement.getShippingCode(), "shippingCode", orderDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> detailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderDetailPackBean);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -126,10 +116,10 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
MesShippingOrderManagement recentlyVehiclesOrder = shippingOrderManagementRepository.getByProperty(recentlyOrderPackBean);
|
|
|
|
|
|
|
|
|
|
model.setDetailList(detailList);
|
|
|
|
|
model.setShippingOrderNo(orderManagement.getShippingOrderNo());
|
|
|
|
|
model.setShippingCode(orderManagement.getShippingCode());
|
|
|
|
|
if (!StringUtils.isEmpty(recentlyVehiclesOrder)) {
|
|
|
|
|
|
|
|
|
|
model.setRecentlyScanShippingOrderNo(recentlyVehiclesOrder.getShippingOrderNo());
|
|
|
|
|
model.setRecentlyScanShippingCode(recentlyVehiclesOrder.getShippingCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
@ -152,6 +142,22 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
detail.setBarcode(produceSn.getSerialNumber());
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
|
|
|
|
|
detail.setIsScanFlg(MesCommonConstant.TRUE_INTEGER);
|
|
|
|
|
|
|
|
|
|
//根据是否启动记忆判断 若启用记忆,则根据保存数据库
|
|
|
|
|
if (orderManagement.getIsEnableMemory() == MesCommonConstant.TRUE_INTEGER) {
|
|
|
|
|
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(orderManagement, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
shippingOrderManagementRepository.save(orderManagement);
|
|
|
|
|
|
|
|
|
|
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
shippingOrderManagementDetailRepository.save(detail);
|
|
|
|
|
|
|
|
|
|
produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
produceSnRepository.save(produceSn);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -227,9 +233,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private MesProduceSn checkMesProduceSn(MesSortShippingCheckModel model, String org) {
|
|
|
|
|
DdlPackBean productPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getSn(), "serialNumber", productPackBean);
|
|
|
|
|
MesProduceSn produceSn = produceSnRepository.getByProperty(productPackBean);
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean);
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
|
|
|
|
|
MesProduceSn produceSn = produceSnRepository.getByProperty(packBean);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isEmpty(produceSn)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此产品条码不存在,请检查数据!", model.getSn()));
|
|
|
|
@ -255,10 +263,10 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
private MesShippingOrderManagement checkMesShippingOrderManagement(MesSortShippingCheckModel model, String org) {
|
|
|
|
|
//校验发运单是否存在
|
|
|
|
|
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getShippingOrderNo(), "shippingOrderNo", orderManagementPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getShippingCode(), "shippingCode", orderManagementPackBean);
|
|
|
|
|
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(orderManagementPackBean);
|
|
|
|
|
if (StringUtils.isEmpty(orderManagement)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单不存在,请检查数据!", model.getShippingOrderNo()));
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单不存在,请检查数据!", model.getShippingCode()));
|
|
|
|
|
}
|
|
|
|
|
return orderManagement;
|
|
|
|
|
}
|
|
|
|
@ -266,244 +274,40 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
|
|
|
|
|
public void saveDate(MesShippingOrderManagement orderManagement, MesSortShippingCheckModel model, String org) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
|
|
|
|
|
if (orderManagement.getIsLoading() == MesCommonConstant.TRUE_INTEGER) {
|
|
|
|
|
//发运单状态修改为校验完成
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
|
|
|
|
|
|
|
|
|
|
//发运单明细状态修改为校验完成
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(), "shippingCode", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
|
|
|
|
|
DdlPackBean orderDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(model.getShippingOrderNo(), "shippingOrderNo", orderDetailPackBean);
|
|
|
|
|
MesLoadingVehiclesOrderDetail vehiclesOrderDetail = vehiclesOrderDetailRepository.getByProperty(orderDetailPackBean);
|
|
|
|
|
if (StringUtils.isEmpty(vehiclesOrderDetail)) {
|
|
|
|
|
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", model.getShippingOrderNo()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//判断是否先装车
|
|
|
|
|
if (orderManagement.getIsFirstInstall() == MesCommonConstant.TRUE_INTEGER) {
|
|
|
|
|
|
|
|
|
|
//是先装车
|
|
|
|
|
//判断此装车单下所有的发运单扫描完成
|
|
|
|
|
//修改对应装车单 装车单明细 发运单 发运明细 条码数据 报工给wms。
|
|
|
|
|
List<MesProduceSn> produceSnList = new ArrayList<>();
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : orderManagementDetailList) {
|
|
|
|
|
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
|
|
|
|
|
//剩余的发运单号
|
|
|
|
|
DdlPackBean orderManagementAllPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getLoadingOrderNo(), "loadingOrderNo", orderManagementAllPackBean);
|
|
|
|
|
List<MesShippingOrderManagement> orderManagementAllList = shippingOrderManagementRepository.findByHqlWhere(orderManagementAllPackBean);
|
|
|
|
|
//根据扫描的条码查询条码是否存在
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(detail.getBarcode(), "productSn", packBean);
|
|
|
|
|
DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
|
|
|
|
|
MesProduceSn produceSn = produceSnRepository.getByProperty(packBean);
|
|
|
|
|
|
|
|
|
|
//排序校验完成的发运单数量
|
|
|
|
|
Long completed =
|
|
|
|
|
orderManagementAllList.stream().filter(k -> k.getStatus() == MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue()).count();
|
|
|
|
|
produceSn.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue());
|
|
|
|
|
ConvertBean.serviceModelUpdate(detail, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
produceSnList.add(produceSn);
|
|
|
|
|
|
|
|
|
|
//若剩余的发运单号都校验完成
|
|
|
|
|
if (completed.intValue() + 1 == orderManagementAllList.size()) {
|
|
|
|
|
|
|
|
|
|
//修改对应装车单 装车单明细 发运单 发运明细 条码数据 报工给wms。
|
|
|
|
|
|
|
|
|
|
//发运单状态修改为校验完成
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
|
|
|
|
|
//发运单明细状态修改为校验完成
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingOrderNo(), "shippingOrderNo", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
|
|
|
|
|
List<String> snList = new ArrayList<>();
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : orderManagementDetailList) {
|
|
|
|
|
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
Optional<MesShippingOrderManagementDetail> optional1 =
|
|
|
|
|
model.getDetailList().stream().filter(k -> k.getShippingOrderNo().equals(detail.getShippingOrderNo())).findFirst();
|
|
|
|
|
detail.setBarcode(optional1.get().getBarcode());
|
|
|
|
|
snList.add(optional1.get().getBarcode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DdlPackBean producePackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getInPackList(snList, "serialNumber", producePackBean);
|
|
|
|
|
List<MesProduceSn> produceSnList = produceSnRepository.findByHqlWhere(producePackBean);
|
|
|
|
|
//条码校验完成
|
|
|
|
|
produceSnList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.CHECKED.getValue()));
|
|
|
|
|
|
|
|
|
|
//修改当前发运单状态
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
|
|
|
|
|
|
|
|
|
|
//修改当前发运单明细状态
|
|
|
|
|
orderManagementDetailList.forEach(k -> k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()));
|
|
|
|
|
|
|
|
|
|
//当前发运单明细 需要报工的数据
|
|
|
|
|
List<MesJisShipping> jisShippingList = jisShippingService.getJisShipping(orderManagementDetailList, org);
|
|
|
|
|
|
|
|
|
|
//修改当前发运单明细条码状态
|
|
|
|
|
produceSnList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()));
|
|
|
|
|
|
|
|
|
|
//装车单
|
|
|
|
|
DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getLoadingOrderNo(), "loadingOrderNo", orderPackBean);
|
|
|
|
|
MesLoadingVehiclesOrder vehiclesOrder = vehiclesOrderRepository.getByProperty(orderPackBean);
|
|
|
|
|
vehiclesOrder.setStatus(MesExtEnumUtil.LOADING_ORDER_STATUS.SHIPPING.getValue());
|
|
|
|
|
|
|
|
|
|
//装车单明细
|
|
|
|
|
DdlPackBean vehiclesOrderDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(vehiclesOrder.getLoadingOrderNo(), "loadingOrderNo", vehiclesOrderDetailPackBean);
|
|
|
|
|
List<MesLoadingVehiclesOrderDetail> vehiclesOrderDetailList = vehiclesOrderDetailRepository.findByHqlWhere(vehiclesOrderDetailPackBean);
|
|
|
|
|
vehiclesOrderDetailList.forEach(k -> {
|
|
|
|
|
k.setStatus(MesExtEnumUtil.LOADING_DETAIL_ORDER_STATUS.SHIPPING.getValue());
|
|
|
|
|
k.setShippingStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//此发运单所在装车单对应剩余发运单
|
|
|
|
|
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringNoEqualPack(model.getShippingOrderNo(), "shippingOrderNo", orderManagementPackBean);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getLoadingOrderNo(), "loadingOrderNo", orderManagementPackBean);
|
|
|
|
|
List<MesShippingOrderManagement> orderManagementtSurplusList = shippingOrderManagementRepository.findByHqlWhere(orderManagementPackBean);
|
|
|
|
|
orderManagementtSurplusList.forEach(k -> k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()));
|
|
|
|
|
|
|
|
|
|
//此发运单所在装车单对应剩余发运单明细
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailSurplusList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementPackBean);
|
|
|
|
|
orderManagementDetailSurplusList.forEach(k -> k.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue()));
|
|
|
|
|
|
|
|
|
|
//剩余发运单明细的条码
|
|
|
|
|
List<String> snSurplusList = orderManagementDetailSurplusList.stream().map(k -> k.getBarcode()).collect(Collectors.toList());
|
|
|
|
|
producePackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getInPackList(snSurplusList, "serialNumber", producePackBean);
|
|
|
|
|
List<MesProduceSn> produceSnSurplusList = produceSnRepository.findByHqlWhere(producePackBean);
|
|
|
|
|
produceSnSurplusList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()));
|
|
|
|
|
|
|
|
|
|
//剩余发运单明细 需要报工的数据
|
|
|
|
|
List<MesJisShipping> jisShippingSurplusList = jisShippingService.getJisShipping(orderManagementDetailSurplusList, org);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//保存当前发运单明细报工
|
|
|
|
|
jisShippingRepository.saveAll(jisShippingList);
|
|
|
|
|
//保存剩余发运单明细报工
|
|
|
|
|
jisShippingRepository.saveAll(jisShippingSurplusList);
|
|
|
|
|
|
|
|
|
|
//保存剩余发运单
|
|
|
|
|
shippingOrderManagementRepository.saveAll(orderManagementtSurplusList);
|
|
|
|
|
//保存当前发运单
|
|
|
|
|
shippingOrderManagementRepository.save(orderManagement);
|
|
|
|
|
//保存剩余发运单明细
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailSurplusList);
|
|
|
|
|
//保存当前发运单明细
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
|
|
|
|
|
//保存剩余发运单条码
|
|
|
|
|
produceSnRepository.saveAll(produceSnSurplusList);
|
|
|
|
|
//保存当前发运单条码
|
|
|
|
|
produceSnRepository.saveAll(produceSnList);
|
|
|
|
|
//保存装车单明细
|
|
|
|
|
vehiclesOrderDetailRepository.saveAll(vehiclesOrderDetailList);
|
|
|
|
|
//保存装车单
|
|
|
|
|
vehiclesOrderRepository.save(vehiclesOrder);
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//发运单状态修改为校验完成
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
|
|
|
|
|
//发运单明细状态修改为校验完成
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingOrderNo(), "shippingOrderNo", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
|
|
|
|
|
List<String> snList = new ArrayList<>();
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : orderManagementDetailList) {
|
|
|
|
|
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
Optional<MesShippingOrderManagementDetail> optional1 =
|
|
|
|
|
model.getDetailList().stream().filter(k -> k.getShippingOrderNo().equals(detail.getShippingOrderNo())).findFirst();
|
|
|
|
|
detail.setBarcode(optional1.get().getBarcode());
|
|
|
|
|
snList.add(optional1.get().getBarcode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DdlPackBean producePackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getInPackList(snList, "serialNumber", producePackBean);
|
|
|
|
|
List<MesProduceSn> produceSnList = produceSnRepository.findByHqlWhere(producePackBean);
|
|
|
|
|
//条码校验完成
|
|
|
|
|
produceSnList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.CHECKED.getValue()));
|
|
|
|
|
|
|
|
|
|
produceSnRepository.saveAll(produceSnList);
|
|
|
|
|
shippingOrderManagementRepository.save(orderManagement);
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
//发运单状态修改为校验完成
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
|
|
|
|
|
//发运单明细状态修改为校验完成
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingOrderNo(), "shippingOrderNo", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
|
|
|
|
|
List<String> snList = new ArrayList<>();
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : orderManagementDetailList) {
|
|
|
|
|
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
Optional<MesShippingOrderManagementDetail> optional1 =
|
|
|
|
|
model.getDetailList().stream().filter(k -> k.getShippingOrderNo().equals(detail.getShippingOrderNo())).findFirst();
|
|
|
|
|
detail.setBarcode(optional1.get().getBarcode());
|
|
|
|
|
snList.add(optional1.get().getBarcode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DdlPackBean producePackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getInPackList(snList, "serialNumber", producePackBean);
|
|
|
|
|
List<MesProduceSn> produceSnList = produceSnRepository.findByHqlWhere(producePackBean);
|
|
|
|
|
//条码校验完成
|
|
|
|
|
produceSnList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.CHECKED.getValue()));
|
|
|
|
|
|
|
|
|
|
produceSnRepository.saveAll(produceSnList);
|
|
|
|
|
shippingOrderManagementRepository.save(orderManagement);
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
//否装车
|
|
|
|
|
|
|
|
|
|
//发运单状态修改为校验完成
|
|
|
|
|
orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.SHIPPED.getValue());
|
|
|
|
|
|
|
|
|
|
//发运单明细状态修改为校验完成
|
|
|
|
|
DdlPackBean orderManagementDetailPackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingOrderNo(), "shippingOrderNo", orderManagementDetailPackBean);
|
|
|
|
|
List<MesShippingOrderManagementDetail> orderManagementDetailList = shippingOrderManagementDetailRepository.findByHqlWhere(orderManagementDetailPackBean);
|
|
|
|
|
|
|
|
|
|
List<String> snList = new ArrayList<>();
|
|
|
|
|
for (MesShippingOrderManagementDetail detail : orderManagementDetailList) {
|
|
|
|
|
detail.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.VERIFICATION_COMPLETED.getValue());
|
|
|
|
|
Optional<MesShippingOrderManagementDetail> optional1 =
|
|
|
|
|
model.getDetailList().stream().filter(k -> k.getShippingOrderNo().equals(detail.getShippingOrderNo())).findFirst();
|
|
|
|
|
detail.setBarcode(optional1.get().getBarcode());
|
|
|
|
|
snList.add(optional1.get().getBarcode());
|
|
|
|
|
}
|
|
|
|
|
DdlPackBean producePackBean = DdlPackBean.getDdlPackBean(org);
|
|
|
|
|
DdlPreparedPack.getInPackList(snList, "serialNumber", producePackBean);
|
|
|
|
|
List<MesProduceSn> produceSnList = produceSnRepository.findByHqlWhere(producePackBean);
|
|
|
|
|
produceSnList.forEach(k -> k.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.SHIPPED.getValue()));
|
|
|
|
|
|
|
|
|
|
//当前发运单明细 需要报工的数据
|
|
|
|
|
List<MesJisShipping> jisShippingList = jisShippingService.getJisShipping(orderManagementDetailList, org);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
produceSnRepository.saveAll(produceSnList);
|
|
|
|
|
shippingOrderManagementRepository.save(orderManagement);
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
|
|
|
|
|
//当前发运单明细 需要报工的数据
|
|
|
|
|
List<MesJisShipping> jisShippingList = jisShippingService.getJisShipping(orderManagementDetailList, org);
|
|
|
|
|
|
|
|
|
|
produceSnRepository.saveAll(produceSnList);
|
|
|
|
|
shippingOrderManagementRepository.save(orderManagement);
|
|
|
|
|
shippingOrderManagementDetailRepository.saveAll(orderManagementDetailList);
|
|
|
|
|
|
|
|
|
|
//保存当前发运单明细报工
|
|
|
|
|
jisShippingRepository.saveAll(jisShippingList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//保存当前发运单明细报工
|
|
|
|
|
jisShippingRepository.saveAll(jisShippingList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// private List<MesJisShipping> getJisShipping(List<MesShippingOrderManagementDetail> orderManagementDetailList, String org) {
|
|
|
|
|
//
|
|
|
|
|
// List<MesJisShipping> shippingList = new ArrayList<>();
|
|
|
|
|
// for (MesShippingOrderManagementDetail detail : orderManagementDetailList) {
|
|
|
|
|
// MesJisShipping jisShipping = new MesJisShipping();
|
|
|
|
|
// jisShipping.setOrganizeCode(org);
|
|
|
|
|
// jisShipping.setSerialNumber(detail.getSn());
|
|
|
|
|
// jisShipping.setPartNo(detail.getPartNo());
|
|
|
|
|
// ConvertBean.serviceModelInitialize(jisShipping, AuthUtil.getSessionUser().getUserName());
|
|
|
|
|
// shippingList.add(jisShipping);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// return shippingList;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|