43770 装箱防错需要增加工艺防错

master
jun 7 months ago
parent d7587a5bb6
commit 50c46a27e4

@ -26,10 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.*;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -82,6 +79,8 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
@Override @Override
public MesPackage doScan(MesPackageDetail mesPackageDetail) { public MesPackage doScan(MesPackageDetail mesPackageDetail) {
//获取包装定义
MesPackingDefine packingDefine = getMesPackingDefine(mesPackageDetail);
//扫描的是包装 //扫描的是包装
if (mesPackageDetail.getIsScanPackageBoolean()) { if (mesPackageDetail.getIsScanPackageBoolean()) {
checkNotNull(mesPackageDetail); checkNotNull(mesPackageDetail);
@ -92,8 +91,6 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
MesPart mesPart; MesPart mesPart;
Double qty; Double qty;
String packageOneCode = ""; String packageOneCode = "";
//获取包装定义
MesPackingDefine packingDefine = getMesPackingDefine(mesPackageDetail);
//WMS打印的条码信息 //WMS打印的条码信息
MesPackageSn mesPackageSn = getMesPackageSn(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getPackageNo()); MesPackageSn mesPackageSn = getMesPackageSn(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getPackageNo());
if(!Objects.isNull(mesPackageSn)){ if(!Objects.isNull(mesPackageSn)){
@ -103,7 +100,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
}else{ }else{
//解析获取信息保存 //解析获取信息保存
if (StringUtils.isEmpty(packingDefine.getSplitChar())) { if (StringUtils.isEmpty(packingDefine.getSplitChar())) {
MesPcnException.throwMesBusiException("箱类别代号【%s】分隔符不能为空", packingDefine.getPackCode()); MesPcnException.throwMesBusiException("箱类别代号【%s】分隔符不能为空,请检查数据!", packingDefine.getPackCode());
} }
String[] split = mesPackageDetail.getPackageNo().split("\\" + packingDefine.getSplitChar()); String[] split = mesPackageDetail.getPackageNo().split("\\" + packingDefine.getSplitChar());
//获取序列号 //获取序列号
@ -122,16 +119,16 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
checkNotNull(mesPackageDetail); checkNotNull(mesPackageDetail);
//校验过程条码是否存在 //校验过程条码是否存在
if (StringUtils.isEmpty(mesPackageDetail.getSerialNumber())) { if (StringUtils.isEmpty(mesPackageDetail.getSerialNumber())) {
MesPcnException.throwMesBusiException("过程条码不允许为空"); MesPcnException.throwMesBusiException("过程条码不允许为空,请检查数据!");
} }
//校验包装条码信息 //校验包装条码信息
MesPackage mesPackage = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode()); MesPackage mesPackage = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode());
//校验是否已关闭 //校验是否已关闭
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) {
MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码"); MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码,请检查数据!");
} }
//校验条码规则 //校验条码规则
MesPart mesPart = getMesPart(mesPackageDetail, mesPackage); MesPart mesPart = getMesPart(mesPackageDetail, mesPackage, packingDefine);
//包装规格明细 //包装规格明细
MesPackageDetail saveMesPackageDetail = getPackageDetail(mesPackageDetail, mesPart); MesPackageDetail saveMesPackageDetail = getPackageDetail(mesPackageDetail, mesPart);
if (mesPackageDetail.getIsMemoryBoolean()) { if (mesPackageDetail.getIsMemoryBoolean()) {
@ -152,7 +149,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
MesPackage mesPackage = getMesPackageAndCheck(packageDetail.getPackageNo(), packageDetail.getOrganizeCode()); MesPackage mesPackage = getMesPackageAndCheck(packageDetail.getPackageNo(), packageDetail.getOrganizeCode());
//校验是否已关闭 //校验是否已关闭
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) {
MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码"); MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码,请检查数据!");
} }
//去掉重复零件条码 //去掉重复零件条码
List<MesPackageDetail> saveMesPackageDetailList = new ArrayList<>(); List<MesPackageDetail> saveMesPackageDetailList = new ArrayList<>();
@ -171,26 +168,26 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
public ResultBean updateMesPackage(MesPackage mesPackage) { public ResultBean updateMesPackage(MesPackage mesPackage) {
String userName = mesPackage.getModifyUser(); String userName = mesPackage.getModifyUser();
if (Objects.isNull(CommonEnumUtil.TRUE_OR_FALSE.valueOfDescription(mesPackage.getIsSealed()))) { if (Objects.isNull(CommonEnumUtil.TRUE_OR_FALSE.valueOfDescription(mesPackage.getIsSealed()))) {
MesPcnException.throwMesBusiException("是否封箱不能为空"); MesPcnException.throwMesBusiException("是否封箱不能为空,请检查数据!");
} }
//查询包装条码信息 //查询包装条码信息
MesPackage mesPackageDb = getMesPackageAndCheck(mesPackage.getPackageNo(), mesPackage.getOrganizeCode()); MesPackage mesPackageDb = getMesPackageAndCheck(mesPackage.getPackageNo(), mesPackage.getOrganizeCode());
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) {
if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackageDb.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackageDb.getIsSealed()) {
MesPcnException.throwMesBusiException("箱条码【%s】状态为已关箱请勿重复操作", mesPackage.getPackageNo()); MesPcnException.throwMesBusiException("箱条码【%s】状态为已关箱请勿重复操作,请检查数据!", mesPackage.getPackageNo());
} }
//校验是否存在包装明细 //校验是否存在包装明细
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackage.getOrganizeCode()); DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackage.getOrganizeCode());
DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), "packageNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), "packageNo", ddlPackBean);
if (!mesPackageDetailRDao.isExitByHql(ddlPackBean)) { if (!mesPackageDetailRDao.isExitByHql(ddlPackBean)) {
MesPcnException.throwMesBusiException("箱条码【%s】下不存在零件条码不允许关箱", mesPackage.getPackageNo()); MesPcnException.throwMesBusiException("箱条码【%s】下不存在零件条码不允许关箱,请检查数据!", mesPackage.getPackageNo());
} }
//关箱 //关箱
updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true); updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true);
return ResultBean.success("关箱成功"); return ResultBean.success("关箱成功");
} else { } else {
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) {
MesPcnException.throwMesBusiException("箱条码【%s】状态不为已关箱不需要拆箱", mesPackage.getPackageNo()); MesPcnException.throwMesBusiException("箱条码【%s】状态不为已关箱不需要拆箱,请检查数据!", mesPackage.getPackageNo());
} }
//拆箱 //拆箱
unboxing(mesPackage, userName, mesPackageDb); unboxing(mesPackage, userName, mesPackageDb);
@ -203,17 +200,17 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
//查询包装条码信息 //查询包装条码信息
MesPackage mesPackageDb = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode()); MesPackage mesPackageDb = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode());
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) {
MesPcnException.throwMesBusiException("箱条码【%s】不为已关箱状态不允许操作替换条码", mesPackageDetail.getPackageNo()); MesPcnException.throwMesBusiException("箱条码【%s】不为已关箱状态不允许操作替换条码,请检查数据!", mesPackageDetail.getPackageNo());
} }
//校验是否重复扫描 //校验是否重复扫描
List<MesPackageDetail> mesPackageDetails = getMesPackageDetailList(mesPackageDetail); List<MesPackageDetail> mesPackageDetails = getMesPackageDetailList(mesPackageDetail);
//校验条码是否符合规则 //校验条码是否符合规则
MesPart mesPart = getMesPart(mesPackageDetail, mesPackageDb); MesPart mesPart = getMesPart(mesPackageDetail, mesPackageDb, null);
boolean exist = false; boolean exist = false;
for (MesPackageDetail packageDetail : mesPackageDetails) { for (MesPackageDetail packageDetail : mesPackageDetails) {
//替换条码是否已经存在 //替换条码是否已经存在
if (packageDetail.getSerialNumber().equals(mesPackageDetail.getSerialNumber())) { if (packageDetail.getSerialNumber().equals(mesPackageDetail.getSerialNumber())) {
MesPcnException.throwMesBusiException("零件条码【%s】已存在存在", mesPackageDetail.getSerialNumber()); MesPcnException.throwMesBusiException("零件条码【%s】已存在存在,请检查数据!", mesPackageDetail.getSerialNumber());
} }
//替换条码 //替换条码
if (packageDetail.getSerialNumber().equals(mesPackageDetail.getOldSerialNumber())) { if (packageDetail.getSerialNumber().equals(mesPackageDetail.getOldSerialNumber())) {
@ -226,7 +223,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
} }
} }
if(!exist){ if(!exist){
MesPcnException.throwMesBusiException("原零件条码【%s】不存在", mesPackageDetail.getOldSerialNumber()); MesPcnException.throwMesBusiException("原零件条码【%s】不存在,请检查数据!", mesPackageDetail.getOldSerialNumber());
} }
mesPackageDetailRDao.saveAll(mesPackageDetails); mesPackageDetailRDao.saveAll(mesPackageDetails);
} }
@ -238,7 +235,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
DdlPreparedPack.getInPackArray(serialNumberList, "serialNumber", ddlPackBean); DdlPreparedPack.getInPackArray(serialNumberList, "serialNumber", ddlPackBean);
List<MesPackageDetail> mesPackageDetails = mesPackageDetailRDao.findByHqlWhere(ddlPackBean); List<MesPackageDetail> mesPackageDetails = mesPackageDetailRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(mesPackageDetails)) { if (CollectionUtils.isEmpty(mesPackageDetails)) {
MesPcnException.throwMesBusiException("零件条码【%s】不存在", mesPackageDetail.getOldSerialNumber()); MesPcnException.throwMesBusiException("零件条码【%s】不存在,请检查数据!", mesPackageDetail.getOldSerialNumber());
} }
return mesPackageDetails; return mesPackageDetails;
} }
@ -247,11 +244,11 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
public void unLock(String organizeCode, String pwd) { public void unLock(String organizeCode, String pwd) {
String cfgValue = configService.getCfgValue(organizeCode, MesCommonConstant.BOXING_ERROR_PROOFING_PWD); String cfgValue = configService.getCfgValue(organizeCode, MesCommonConstant.BOXING_ERROR_PROOFING_PWD);
if (!Objects.equals(cfgValue, pwd)) { if (!Objects.equals(cfgValue, pwd)) {
MesPcnException.throwMesBusiException("解锁失败密码错误"); MesPcnException.throwMesBusiException("解锁失败密码错误,请检查数据!");
} }
} }
private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackage mesPackage) { private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackage mesPackage, MesPackingDefine packingDefine) {
//校验是否重复扫描 //校验是否重复扫描
checkSerialNumber(mesPackageDetail); checkSerialNumber(mesPackageDetail);
//获取包装定义明细 //获取包装定义明细
@ -259,7 +256,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
//校验是否包含 //校验是否包含
String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails); String partNo = getPartNo(mesPackageDetail, mesPackage, defineDetails);
//校验条码信息 //校验条码信息
checkSnStatus(mesPackageDetail); checkSn(mesPackageDetail, packingDefine);
//物料信息 //物料信息
return getPart(mesPackageDetail.getOrganizeCode(), partNo); return getPart(mesPackageDetail.getOrganizeCode(), partNo);
} }
@ -269,7 +266,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
DdlPreparedPack.getStringEqualPack(mesPackageDetail.getPackageNo(), "packageNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesPackageDetail.getPackageNo(), "packageNo", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mesPackageDetail.getSerialNumber(), "serialNumber", ddlPackBean); DdlPreparedPack.getStringEqualPack(mesPackageDetail.getSerialNumber(), "serialNumber", ddlPackBean);
if (mesPackageDetailRDao.isExitByHql(ddlPackBean)) { if (mesPackageDetailRDao.isExitByHql(ddlPackBean)) {
MesPcnException.throwMesBusiException("零件条码【%s】已存在该箱不允许重复扫描", mesPackageDetail.getSerialNumber()); MesPcnException.throwMesBusiException("零件条码【%s】已存在该箱不允许重复扫描,请检查数据!", mesPackageDetail.getSerialNumber());
} }
} }
@ -278,7 +275,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
DdlPreparedPack.getStringEqualPack(packCode, "packCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(packCode, "packCode", ddlPackBean);
List<MesPackingDefineDetails> defineDetails = mesPackingDefineDetailsRDao.findByHqlWhere(ddlPackBean); List<MesPackingDefineDetails> defineDetails = mesPackingDefineDetailsRDao.findByHqlWhere(ddlPackBean);
if (CollectionUtils.isEmpty(defineDetails)) { if (CollectionUtils.isEmpty(defineDetails)) {
MesPcnException.throwMesBusiException("箱类别代号【%s】包装定义明细未维护", packCode); MesPcnException.throwMesBusiException("箱类别代号【%s】包装定义明细未维护,请检查数据!", packCode);
} }
return defineDetails; return defineDetails;
} }
@ -302,7 +299,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
private MesPackage getMesPackageAndCheck(String packageNo, String organizeCode) { private MesPackage getMesPackageAndCheck(String packageNo, String organizeCode) {
MesPackage mesPackageDb = getMesPackage(organizeCode, packageNo); MesPackage mesPackageDb = getMesPackage(organizeCode, packageNo);
if (Objects.isNull(mesPackageDb)) { if (Objects.isNull(mesPackageDb)) {
MesPcnException.throwMesBusiException("箱条码【%s】信息不存在", packageNo); MesPcnException.throwMesBusiException("箱条码【%s】信息不存在,请检查数据!", packageNo);
} }
return mesPackageDb; return mesPackageDb;
} }
@ -367,12 +364,23 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
return saveMesPackageDetail; return saveMesPackageDetail;
} }
private void checkSnStatus(MesPackageDetail mesPackageDetail) { private void checkSn(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine) {
List<MesProduceSn> produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); List<MesProduceSn> produceSnList = mesProduceSnExtService.getProduceSnList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber());
if (!CollectionUtils.isEmpty(produceSnList)) { if (!CollectionUtils.isEmpty(produceSnList)) {
MesProduceSn nextMesProduceSn = produceSnList.stream().sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()).iterator().next(); 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())) { 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())); MesPcnException.throwMesBusiException("条码【%s】状态【%s】质量状态【%s】不允许操作装箱防错请检查数据", mesPackageDetail.getSerialNumber(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(nextMesProduceSn.getSnStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(nextMesProduceSn.getQcStatus()));
}
//工艺校验
if(!Objects.isNull(packingDefine) && !Objects.isNull(packingDefine.getCheckCraftFlag()) && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == packingDefine.getCheckCraftFlag()){
if(StringUtils.isEmpty(packingDefine.getCraft())){
MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺为空请检查数据", mesPackageDetail.getSerialNumber());
}
//校验条码是否经过该工艺
Optional<MesProduceSn> produceSnOptional = produceSnList.stream().filter(t -> !StringUtils.isEmpty(t.getCraftCode()) && packingDefine.getCraft().equals(t.getCraftCode())).findFirst();
if(!produceSnOptional.isPresent()){
MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺【%s】失败请检查数据", mesPackageDetail.getSerialNumber(),packingDefine.getCraft());
}
} }
} }
} }
@ -383,7 +391,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
for (MesPackingDefineDetails defineDetail : defineDetails) { for (MesPackingDefineDetails defineDetail : defineDetails) {
//条码规则为空 //条码规则为空
if (StringUtils.isEmpty(defineDetail.getPackageBarcodeRule())) { if (StringUtils.isEmpty(defineDetail.getPackageBarcodeRule())) {
MesPcnException.throwMesBusiException("箱类别代号【%s】零件号【%s】条码规则未维护", mesPackage.getPackageSn(), defineDetail.getPartNo()); MesPcnException.throwMesBusiException("箱类别代号【%s】零件号【%s】条码规则未维护,请检查数据!", mesPackage.getPackageSn(), defineDetail.getPartNo());
} }
packageBarcodeRule = defineDetail.getPackageBarcodeRule().replace("*", ""); packageBarcodeRule = defineDetail.getPackageBarcodeRule().replace("*", "");
//包含箱条码 //包含箱条码
@ -393,24 +401,24 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
} }
} }
if (Objects.isNull(partNo)) { if (Objects.isNull(partNo)) {
MesPcnException.throwMesBusiException("零件条码【%s】未匹配到符合条码规则的数据", mesPackageDetail.getSerialNumber()); MesPcnException.throwMesBusiException("零件条码【%s】未匹配到符合条码规则的数据,请检查数据!", mesPackageDetail.getSerialNumber());
} }
return partNo; return partNo;
} }
private void checkNotNull(MesPackageDetail mesPackageDetail) { private void checkNotNull(MesPackageDetail mesPackageDetail) {
if (StringUtils.isEmpty(mesPackageDetail.getPackageNo())) { if (StringUtils.isEmpty(mesPackageDetail.getPackageNo())) {
MesPcnException.throwMesBusiException("包装编码不能为空"); MesPcnException.throwMesBusiException("包装编码不能为空,请检查数据!");
} }
if (StringUtils.isEmpty(mesPackageDetail.getScanType())) { if (StringUtils.isEmpty(mesPackageDetail.getScanType())) {
MesPcnException.throwMesBusiException("客户条码规则不能为空"); MesPcnException.throwMesBusiException("客户条码规则不能为空,请检查数据!");
} }
} }
private void checkSerial(MesPackingDefine packingDefine, String[] split) { private void checkSerial(MesPackingDefine packingDefine, String[] split) {
if (StringUtils.isEmpty(packingDefine.getSerialIdIndex()) || packingDefine.getSerialIdIndex() > split.length if (StringUtils.isEmpty(packingDefine.getSerialIdIndex()) || packingDefine.getSerialIdIndex() > split.length
|| StringUtils.isEmpty(split[packingDefine.getSerialIdIndex() - 1])) { || StringUtils.isEmpty(split[packingDefine.getSerialIdIndex() - 1])) {
MesPcnException.throwMesBusiException("序列号所在位置不存在"); MesPcnException.throwMesBusiException("序列号所在位置不存在,请检查数据!");
} }
String serialNo = split[packingDefine.getSerialIdIndex() - 1]; String serialNo = split[packingDefine.getSerialIdIndex() - 1];
} }
@ -418,18 +426,18 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
private void checkOrganizeCode(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine, String[] split) { private void checkOrganizeCode(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine, String[] split) {
if (StringUtils.isEmpty(packingDefine.getOrganizeIndex()) || packingDefine.getOrganizeIndex() > split.length if (StringUtils.isEmpty(packingDefine.getOrganizeIndex()) || packingDefine.getOrganizeIndex() > split.length
|| StringUtils.isEmpty(split[packingDefine.getOrganizeIndex() - 1])) { || StringUtils.isEmpty(split[packingDefine.getOrganizeIndex() - 1])) {
MesPcnException.throwMesBusiException("工厂所在位置不存在"); MesPcnException.throwMesBusiException("工厂所在位置不存在,请检查数据!");
} }
String organizeCode = split[packingDefine.getOrganizeIndex() - 1]; String organizeCode = split[packingDefine.getOrganizeIndex() - 1];
if (!Objects.equals(organizeCode, mesPackageDetail.getOrganizeCode())) { if (!Objects.equals(organizeCode, mesPackageDetail.getOrganizeCode())) {
MesPcnException.throwMesBusiException("箱条码工厂【%s】和当前工厂【%s】不匹配", organizeCode, mesPackageDetail.getOrganizeCode()); MesPcnException.throwMesBusiException("箱条码工厂【%s】和当前工厂【%s】不匹配,请检查数据!", organizeCode, mesPackageDetail.getOrganizeCode());
} }
} }
private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine, String[] split) { private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine, String[] split) {
if (StringUtils.isEmpty(packingDefine.getPartNoIndex()) || packingDefine.getPartNoIndex() > split.length if (StringUtils.isEmpty(packingDefine.getPartNoIndex()) || packingDefine.getPartNoIndex() > split.length
|| StringUtils.isEmpty(split[packingDefine.getPartNoIndex() - 1])) { || StringUtils.isEmpty(split[packingDefine.getPartNoIndex() - 1])) {
MesPcnException.throwMesBusiException("物料号所在位置不存在"); MesPcnException.throwMesBusiException("物料号所在位置不存在,请检查数据!");
} }
return getPart(mesPackageDetail.getOrganizeCode(), split[packingDefine.getPartNoIndex() - 1]); return getPart(mesPackageDetail.getOrganizeCode(), split[packingDefine.getPartNoIndex() - 1]);
} }
@ -439,7 +447,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
DdlPreparedPack.getStringEqualPack(partNo, "partNo", packBean); DdlPreparedPack.getStringEqualPack(partNo, "partNo", packBean);
MesPart mesPart = partRDao.getByProperty(packBean); MesPart mesPart = partRDao.getByProperty(packBean);
if (Objects.isNull(mesPart)) { if (Objects.isNull(mesPart)) {
MesPcnException.throwMesBusiException("物料【%s】信息不存在", partNo); MesPcnException.throwMesBusiException("物料【%s】信息不存在,请检查数据!", partNo);
} }
return mesPart; return mesPart;
} }
@ -447,11 +455,11 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
private Double getQty(MesPackingDefine packingDefine, String[] split) { private Double getQty(MesPackingDefine packingDefine, String[] split) {
if (StringUtils.isEmpty(packingDefine.getQtyIndex()) || packingDefine.getQtyIndex() > split.length if (StringUtils.isEmpty(packingDefine.getQtyIndex()) || packingDefine.getQtyIndex() > split.length
|| StringUtils.isEmpty(split[packingDefine.getQtyIndex() - 1])) { || StringUtils.isEmpty(split[packingDefine.getQtyIndex() - 1])) {
MesPcnException.throwMesBusiException("数量所在位置不存在"); MesPcnException.throwMesBusiException("数量所在位置不存在,请检查数据!");
} }
//校验是否数字 //校验是否数字
if (!CheckTool.isNumber(split[packingDefine.getQtyIndex() - 1])) { if (!CheckTool.isNumber(split[packingDefine.getQtyIndex() - 1])) {
MesPcnException.throwMesBusiException("数量所在位置不为数字类型"); MesPcnException.throwMesBusiException("数量所在位置不为数字类型,请检查数据!");
} }
return Double.parseDouble(split[packingDefine.getQtyIndex() - 1]); return Double.parseDouble(split[packingDefine.getQtyIndex() - 1]);
} }
@ -490,7 +498,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
DdlPreparedPack.getStringEqualPack(mesPackageDetail.getScanType(), "scanType", packBean); DdlPreparedPack.getStringEqualPack(mesPackageDetail.getScanType(), "scanType", packBean);
MesPackingDefine packingDefine = mesPackingDefineRDao.getByProperty(packBean); MesPackingDefine packingDefine = mesPackingDefineRDao.getByProperty(packBean);
if (Objects.isNull(packingDefine)) { if (Objects.isNull(packingDefine)) {
MesPcnException.throwFlowException("客户条码规则在包装定义界面未维护"); MesPcnException.throwFlowException("客户条码规则在包装定义界面未维护,请检查数据!");
} }
return packingDefine; return packingDefine;
} }

Loading…
Cancel
Save