装车单支持多发运组

uat-temp-nht-2504090000-46216
jason 3 months ago
parent 845a7aba45
commit b3e340d251

@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail; import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel; import cn.estsh.i3plus.pojo.mes.model.MesShippingOrderManagementModel;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
@ -32,4 +33,6 @@ public interface IMesPartShippingGroupService {
@ApiOperation(value = "发运组明细") @ApiOperation(value = "发运组明细")
MesPartShippingGroupDetail getMesPartShippingGroupDetailByPartNo(String organizeCode, String shippingGroupCode, String partNo); MesPartShippingGroupDetail getMesPartShippingGroupDetailByPartNo(String organizeCode, String shippingGroupCode, String partNo);
boolean isFirstInstall(MesPartShippingGroup shippingGroup, MesLoadingList loadingList);
} }

@ -8,14 +8,14 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords;
import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService; import cn.estsh.i3plus.mes.pcn.api.iservice.base.IConfigService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.base.util.StringUtil;
import cn.estsh.i3plus.pojo.mes.bean.MesConfig; import cn.estsh.i3plus.pojo.mes.bean.*;
import cn.estsh.i3plus.pojo.mes.bean.MesLabelTemplate; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesLoadingList;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroup;
import cn.estsh.i3plus.pojo.mes.bean.MesPartShippingGroupDetail;
import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement; import cn.estsh.i3plus.pojo.mes.bean.shipping.MesShippingOrderManagement;
import cn.estsh.i3plus.pojo.mes.repository.IMesLoadingGroupRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesConfigRepository; import cn.estsh.i3plus.pojo.mes.repository.MesConfigRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupDetailRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupDetailRepository;
import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository; import cn.estsh.i3plus.pojo.mes.repository.MesPartShippingGroupRepository;
@ -29,6 +29,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
import java.util.Objects;
@Service @Service
@Slf4j @Slf4j
@ -49,6 +50,9 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService
@Autowired @Autowired
private MesConfigRepository mesConfigRao; private MesConfigRepository mesConfigRao;
@Autowired
private IMesLoadingGroupRepository loadingGroupRDao;
public List<MesPartShippingGroup> findAll(MesPartShippingGroup partShippingGroup) { public List<MesPartShippingGroup> findAll(MesPartShippingGroup partShippingGroup) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(partShippingGroup.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(partShippingGroup.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(partShippingGroup.getShippingGroupCode(), MesPcnExtConstWords.SHIPPING_GROUP_CODE, packBean); DdlPreparedPack.getStringEqualPack(partShippingGroup.getShippingGroupCode(), MesPcnExtConstWords.SHIPPING_GROUP_CODE, packBean);
@ -109,4 +113,15 @@ public class MesPartShippingGroupService implements IMesPartShippingGroupService
return mesPartShippingGroupDetailRepository.getByProperty(packBean); return mesPartShippingGroupDetailRepository.getByProperty(packBean);
} }
@Override
public boolean isFirstInstall(MesPartShippingGroup shippingGroup, MesLoadingList loadingList) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(loadingList.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(loadingList.getLoadingGroupNo(), "loadingGroupNo", packBean);
MesLoadingGroup loadingGroup = loadingGroupRDao.getByProperty(packBean);
if (loadingGroup != null && loadingGroup.getIsFirstInstall() != null) {
return Objects.equals(loadingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
}
return Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
}
} }

@ -159,6 +159,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
checkLoadingList(model, organizeCode, loadingList); checkLoadingList(model, organizeCode, loadingList);
//查询零件发运组 //查询零件发运组
MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode()); MesPartShippingGroup shippingGroup = getMesPartShippingGroup(organizeCode, loadingList.getPartShippingGroupCode());
final boolean isFirstInstall = mesPartShippingGroupService.isFirstInstall(shippingGroup, loadingList);
boolean scanflg = false; boolean scanflg = false;
for (MesLoadingListDetail loadingListDetail : model.getDetailList()) { for (MesLoadingListDetail loadingListDetail : model.getDetailList()) {
if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) { if (loadingListDetail.getShippingCode().equals(model.getShippingCode())) {
@ -187,7 +188,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS
//根据扫描的装车单找到是否先装车配置 //根据扫描的装车单找到是否先装车配置
//若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。 //若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。
if (!Objects.equals(shippingGroup.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { if (!isFirstInstall) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean); DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean);
MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean); MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean);

@ -134,6 +134,9 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
@Autowired @Autowired
private MesCimVolvoJisRackIdDetailRepository rackIdDetailRDao; private MesCimVolvoJisRackIdDetailRepository rackIdDetailRDao;
@Autowired
private IMesLoadingGroupRepository mesLoadingGroupRDao;
@Override @Override
public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) { public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) {
//返回数据组装 //返回数据组装
@ -144,10 +147,11 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
model.setMsg(String.format("发运单【%s】已跳过请扫描下一个发运单",shippingOrderManagement.getShippingCode())); model.setMsg(String.format("发运单【%s】已跳过请扫描下一个发运单",shippingOrderManagement.getShippingCode()));
return model; return model;
} }
MesPartShippingGroup partShippingGroup = getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode());
//校验发运单扫描顺序 //校验发运单扫描顺序
checkShippingOrderSeq(shippingOrderManagement, orderManagement); checkShippingOrderSeq(shippingOrderManagement, orderManagement);
//根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据! //根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据!
checkLoadingList(shippingOrderManagement, orderManagement); checkLoadingList(shippingOrderManagement, orderManagement, partShippingGroup);
if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) {
model.setIsScanLocationCode(true); model.setIsScanLocationCode(true);
} }
@ -155,7 +159,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
//发运单号 //发运单号
model.setShippingCode(orderManagement.getShippingCode()); model.setShippingCode(orderManagement.getShippingCode());
//零件发运组 //零件发运组
model.setMesPartShippingGroup(getMesPartShippingGroup(orderManagement.getOrganizeCode(),orderManagement.getShippingGroupCode())); model.setMesPartShippingGroup(partShippingGroup);
//发运单明细 //发运单明细
model.setDetailList(getMesShippingOrderManagementDetails(orderManagement,model.getMesPartShippingGroup())); model.setDetailList(getMesShippingOrderManagementDetails(orderManagement,model.getMesPartShippingGroup()));
//最近扫描完成的发运单号 //最近扫描完成的发运单号
@ -446,7 +450,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
} }
} }
private void checkLoadingList(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement) { private void checkLoadingList(MesShippingOrderManagement shippingOrderManagement, MesShippingOrderManagement orderManagement, MesPartShippingGroup partShippingGroup) {
if (Objects.equals(orderManagement.getIsLoading(), MesCommonConstant.TRUE_INTEGER)) { if (Objects.equals(orderManagement.getIsLoading(), MesCommonConstant.TRUE_INTEGER)) {
//查询装车单明细 //查询装车单明细
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
@ -462,7 +466,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode())); throw new ImppBusiException(String.format("【%s】此发运单配置是否装车为是,但没生成装车单,请检查数据!", shippingOrderManagement.getShippingCode()));
} }
//判断是否先装车 //判断是否先装车
if (Objects.equals(orderManagement.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { if (mesPartShippingGroupService.isFirstInstall(partShippingGroup, loadingList)) {
//若没进行装车校验,则提示【%s】此发运单对应的【%s】此装车单状态为【%s】请选择状态为【%s】的数据 //若没进行装车校验,则提示【%s】此发运单对应的【%s】此装车单状态为【%s】请选择状态为【%s】的数据
if (loadingList.getStatus() != MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue()) { if (loadingList.getStatus() != MesExtEnumUtil.MES_LOADING_STATUS.SCANNED.getValue()) {
throw new ImppBusiException(String.format("【%s】此发运单对应的【%s】此装车单状态为【%s】请选择状态为【%s】的数据请检查数据", throw new ImppBusiException(String.format("【%s】此发运单对应的【%s】此装车单状态为【%s】请选择状态为【%s】的数据请检查数据",
@ -585,7 +589,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
// throw new ImppBusiException(String.format("【%s】此条码已经扫描过请检查数据", model.getSn())); // throw new ImppBusiException(String.format("【%s】此条码已经扫描过请检查数据", model.getSn()));
// } // }
DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPackBean packBean = DdlPackBean.getDdlPackBean(org);
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); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean);
MesProduceSn produceSn = produceSnRepository.getByProperty(packBean); MesProduceSn produceSn = produceSnRepository.getByProperty(packBean);
@ -639,27 +643,30 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
orderManagement.setStartScanTime(TimeTool.getNowTime(true)); orderManagement.setStartScanTime(TimeTool.getNowTime(true));
} }
MesLoadingList loadingList = null; MesLoadingList loadingList = null;
// 获取装车单
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean);
MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean);
if(!Objects.isNull(listDetail)){
packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean);
loadingList = listRepository.getByProperty(packBean);
}
//零件发运组 //零件发运组
MesPartShippingGroup shippingGroup = Objects.isNull(model.getMesPartShippingGroup()) ? getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode()) : model.getMesPartShippingGroup(); MesPartShippingGroup shippingGroup = Objects.isNull(model.getMesPartShippingGroup()) ? getMesPartShippingGroup(orderManagement.getOrganizeCode(), orderManagement.getShippingGroupCode()) : model.getMesPartShippingGroup();
final boolean isFirstInstall = mesPartShippingGroupService.isFirstInstall(shippingGroup, loadingList);
//根据发运单查询装车单明细信息 //根据发运单查询装车单明细信息
if (Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())) { if (isFirstInstall) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode()); //反填装车单信息到发运单
DdlPreparedPack.getStringEqualPack(orderManagement.getShippingCode(),"shippingCode",packBean); if(!Objects.isNull(loadingList)){
MesLoadingListDetail listDetail = listDetailRepository.getByProperty(packBean); orderManagement.setOrderCode(loadingList.getOrderCode());
if(!Objects.isNull(listDetail)){ orderManagement.setLoadingListId(loadingList.getId());
packBean = DdlPackBean.getDdlPackBean(orderManagement.getOrganizeCode());
DdlPreparedPack.getNumEqualPack(listDetail.getPid(), "id", packBean);
loadingList = listRepository.getByProperty(packBean);
//反填装车单信息到发运单
if(!Objects.isNull(loadingList)){
orderManagement.setOrderCode(loadingList.getOrderCode());
orderManagement.setLoadingListId(loadingList.getId());
}
//更新装车单明细对应的发运单状态=发运
listDetail.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
ConvertBean.serviceModelUpdate(listDetail, userInfo);
listDetailRepository.update(listDetail);
} }
//更新装车单明细对应的发运单状态=发运
listDetail.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue());
ConvertBean.serviceModelUpdate(listDetail, userInfo);
listDetailRepository.update(listDetail);
} }
//发运单状态修改为校验完成 //发运单状态修改为校验完成
orderManagement.setSystemSyncStatus(CommonEnumUtil.FALSE); orderManagement.setSystemSyncStatus(CommonEnumUtil.FALSE);
@ -753,7 +760,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService
if (!CollectionUtils.isEmpty(mesJisShippings)) { if (!CollectionUtils.isEmpty(mesJisShippings)) {
shippingList.addAll(mesJisShippings); shippingList.addAll(mesJisShippings);
} }
} else if (Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())){ } else if (isFirstInstall){
//查询装车单明细 //查询装车单明细
DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getNumEqualPack(orderManagement.getLoadingListId(),"pid",orderManagementPackBean); DdlPreparedPack.getNumEqualPack(orderManagement.getLoadingListId(),"pid",orderManagementPackBean);

Loading…
Cancel
Save