|
|
|
@ -61,6 +61,9 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPackageResultRepository mesPackageResultRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MesPackageSnRepository mesPackageSnRDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ListPager<MesPackageDetail> queryMesPackageDetailByPager(MesPackage mesPackage, Pager pager) {
|
|
|
|
|
|
|
|
|
@ -79,24 +82,36 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
MesPackage mesPackage = getMesPackage(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getPackageNo());
|
|
|
|
|
if (Objects.nonNull(mesPackage)) {
|
|
|
|
|
return mesPackage;
|
|
|
|
|
}else{
|
|
|
|
|
MesPart mesPart;
|
|
|
|
|
Double qty;
|
|
|
|
|
String packageOneCode = "";
|
|
|
|
|
//获取包装定义
|
|
|
|
|
MesPackingDefine packingDefine = getMesPackingDefine(mesPackageDetail);
|
|
|
|
|
//WMS打印的条码信息
|
|
|
|
|
MesPackageSn mesPackageSn = getMesPackageSn(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getPackageNo());
|
|
|
|
|
if(!Objects.isNull(mesPackageSn)){
|
|
|
|
|
mesPart = getPart(mesPackageSn.getOrganizeCode(),mesPackageSn.getPartNo());
|
|
|
|
|
qty = mesPackageSn.getQty();
|
|
|
|
|
packageOneCode = mesPackageSn.getPackageOneCode();
|
|
|
|
|
}else{
|
|
|
|
|
//解析获取信息保存
|
|
|
|
|
if (StringUtils.isEmpty(packingDefine.getSplitChar())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("箱类别代号【%s】分隔符不能为空", packingDefine.getPackCode());
|
|
|
|
|
}
|
|
|
|
|
String[] split = mesPackageDetail.getPackageNo().split("\\" + packingDefine.getSplitChar());
|
|
|
|
|
//获取序列号
|
|
|
|
|
checkSerial(packingDefine, split);
|
|
|
|
|
//工厂校验
|
|
|
|
|
checkOrganizeCode(mesPackageDetail, packingDefine, split);
|
|
|
|
|
//获取物料信息是否存在
|
|
|
|
|
mesPart = getMesPart(mesPackageDetail, packingDefine, split);
|
|
|
|
|
//获取数量信息是否存在
|
|
|
|
|
qty = getQty(packingDefine, split);
|
|
|
|
|
}
|
|
|
|
|
MesPackage packages = getMesPackage(mesPackageDetail, mesPart, qty, packingDefine,packageOneCode);
|
|
|
|
|
return mesPackageRDao.insert(packages);
|
|
|
|
|
}
|
|
|
|
|
//获取包装定义
|
|
|
|
|
MesPackingDefine packingDefine = getMesPackingDefine(mesPackageDetail);
|
|
|
|
|
//解析获取信息保存
|
|
|
|
|
if (StringUtils.isEmpty(packingDefine.getSplitChar())) {
|
|
|
|
|
MesPcnException.throwMesBusiException("箱类别代号【%s】分隔符不能为空", packingDefine.getPackCode());
|
|
|
|
|
}
|
|
|
|
|
String[] split = mesPackageDetail.getPackageNo().split("\\" + packingDefine.getSplitChar());
|
|
|
|
|
//获取序列号
|
|
|
|
|
checkSerial(packingDefine, split);
|
|
|
|
|
//工厂校验
|
|
|
|
|
checkOrganizeCode(mesPackageDetail, packingDefine, split);
|
|
|
|
|
//获取物料信息是否存在
|
|
|
|
|
MesPart mesPart = getMesPart(mesPackageDetail, packingDefine, split);
|
|
|
|
|
//获取数量信息是否存在
|
|
|
|
|
Double qty = getQty(packingDefine, split);
|
|
|
|
|
MesPackage packages = getMesPackage(mesPackageDetail, mesPart, qty, packingDefine);
|
|
|
|
|
return mesPackageRDao.insert(packages);
|
|
|
|
|
} else {
|
|
|
|
|
checkNotNull(mesPackageDetail);
|
|
|
|
|
//校验过程条码是否存在
|
|
|
|
@ -425,7 +440,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
return Double.parseDouble(split[packingDefine.getQtyIndex() - 1]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesPackage getMesPackage(MesPackageDetail mesPackageDetail, MesPart mesPart, Double qty, MesPackingDefine packingDefine) {
|
|
|
|
|
private MesPackage getMesPackage(MesPackageDetail mesPackageDetail, MesPart mesPart, Double qty, MesPackingDefine packingDefine,String packageOneCode) {
|
|
|
|
|
//保存包装信息
|
|
|
|
|
MesPackage packages = new MesPackage();
|
|
|
|
|
packages.setPackageNo(mesPackageDetail.getPackageNo());
|
|
|
|
@ -436,6 +451,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
packages.setIsSealed(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue());
|
|
|
|
|
packages.setPrintStatus(MesPcnEnumUtil.PACKAGE_PRINT_STATUS.UNPRINTED.getValue());
|
|
|
|
|
packages.setPackageSn(packingDefine.getPackCode());
|
|
|
|
|
packages.setPackageOneCode(packageOneCode);
|
|
|
|
|
packages.setOrganizeCode(mesPackageDetail.getOrganizeCode());
|
|
|
|
|
ConvertBean.serviceModelInitialize(packages, mesPackageDetail.getCreateUser());
|
|
|
|
|
return packages;
|
|
|
|
@ -447,6 +463,12 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer
|
|
|
|
|
return mesPackageRDao.getByProperty(packBean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesPackageSn getMesPackageSn(String organizeCode, String packageNo) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(packageNo, "packageNo", packBean);
|
|
|
|
|
return mesPackageSnRDao.getByProperty(packBean);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private MesPackingDefine getMesPackingDefine(MesPackageDetail mesPackageDetail) {
|
|
|
|
|
DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesPackageDetail.getOrganizeCode());
|
|
|
|
|
DdlPreparedPack.getStringEqualPack(mesPackageDetail.getScanType(), "scanType", packBean);
|
|
|
|
|