|
|
|
@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesBoxingErrorProofingService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesConfigService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException;
|
|
|
|
|
import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant;
|
|
|
|
|
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
|
|
|
@ -17,6 +18,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
|
|
|
|
|
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.util.ResultBean;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
@ -25,6 +27,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Comparator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -64,6 +67,9 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPackageSnRepository mesPackageSnRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IMesProduceSnExtService mesProduceSnExtService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ListPager<MesPackageDetail> queryMesPackageDetailByPager(MesPackage mesPackage, Pager pager) {
|
|
|
|
|
|
|
|
|
@ -252,6 +258,8 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
List<MesPackingDefineDetails> defineDetails = getMesPackingDefineDetails(mesPackageDetail.getOrganizeCode(), mesPackage.getPackageSn());
|
|
|
|
|
//校验是否包含
|
|
|
|
|
String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails);
|
|
|
|
|
//校验条码信息
|
|
|
|
|
checkSnStatus(mesPackageDetail);
|
|
|
|
|
//物料信息
|
|
|
|
|
return getPart(mesPackageDetail.getOrganizeCode(), partNo);
|
|
|
|
|
}
|
|
|
|
@ -359,6 +367,16 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
return saveMesPackageDetail;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkSnStatus(MesPackageDetail mesPackageDetail) {
|
|
|
|
|
List<MesProduceSn> produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber());
|
|
|
|
|
if (!CollectionUtils.isEmpty(produceSnList)) {
|
|
|
|
|
MesProduceSn nextMesProduceSn = produceSnList.stream().sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()).iterator().next();
|
|
|
|
|
if (!MesExtEnumUtil.PRODUCE_SN_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getSnStatus()) || !MesExtEnumUtil.PRODUCE_QC_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getQcStatus())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("条码【%s】状态【%s】质量状态【%s】不允许操作装箱防错", mesPackageDetail.getSerialNumber(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(nextMesProduceSn.getSnStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(nextMesProduceSn.getQcStatus()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String getPartNo(MesPackageDetail mesPackageDetail, MesPackage mesPackage, List<MesPackingDefineDetails> defineDetails) {
|
|
|
|
|
String packageBarcodeRule;
|
|
|
|
|
String partNo = null;
|
|
|
|
@ -413,8 +431,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
|| StringUtils.isEmpty(split[packingDefine.getPartNoIndex() - 1])) {
|
|
|
|
|
MesPcnException.throwMesBusiException("物料号所在位置不存在");
|
|
|
|
|
}
|
|
|
|
|
MesPart mesPart = getPart(mesPackageDetail.getOrganizeCode(), split[packingDefine.getPartNoIndex() - 1]);
|
|
|
|
|
return mesPart;
|
|
|
|
|
return getPart(mesPackageDetail.getOrganizeCode(), split[packingDefine.getPartNoIndex() - 1]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesPart getPart(String organizeCode, String partNo) {
|
|
|
|
|