diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/IJxOqcCheckService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/IJxOqcCheckService.java index f470c03..d5c454a 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/IJxOqcCheckService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/jx/IJxOqcCheckService.java @@ -132,6 +132,16 @@ public interface IJxOqcCheckService { List getOqcCheckListBySn(String organizeCode, String workOrderNo, String serialNumber); /** + * 根据生产工单号,产品条码查询出货检验单据主表集合数据 + * @param organizeCode 组织代码 + * @param workOrderNo 生产工单号 + * @param productSn 产品条码 + * @return 出货检验单据主表集合数据 + */ + @ApiOperation(value = "根据生产工单号,产品条码查询出货检验单据主表集合数据", notes = "根据生产工单号,产品条码查询出货检验单据主表集合数据") + List getOqcCheckListByProductSn(String organizeCode, String workOrderNo, String productSn); + + /** * 根据工单号,产品条码查询出货检验单据条码关联数据 * @param organizeCode 组织代码 * @param workOrderNo 生产工单号 @@ -142,6 +152,16 @@ public interface IJxOqcCheckService { MesOqcCheckPackageDetail getOqcCheckPackageDetailByOrderNoAndSn(String organizeCode, String workOrderNo, String serialNumber); /** + * 根据工单号,产品条码查询出货检验单据条码关联数据 + * @param organizeCode 组织代码 + * @param workOrderNo 生产工单号 + * @param productSn 产品条码 + * @return + */ + @ApiOperation(value = "根据工单号,产品条码查询出货检验单据条码关联数据", notes = "根据工单号,产品条码查询出货检验单据条码关联数据") + MesOqcCheckPackageDetail getOqcCheckPackageDetailByOrderNoAndProductSn(String organizeCode, String workOrderNo, String productSn); + + /** * 根据工单号,包装条码查询出货检验单据条码关联数据 * @param organizeCode 组织代码 * @param workOrderNo 生产工单号 diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcCheckService.java index 3dfa64f..b9a91c9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcCheckService.java @@ -168,6 +168,17 @@ public class JxOqcCheckService implements IJxOqcCheckService { } @Override + public List getOqcCheckListByProductSn(String organizeCode, String workOrderNo, String productSn) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo) || StringUtils.isEmpty(productSn)) { + return null; + } + return oqcCheckRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.PRODUCT_SN}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, productSn}, + " order by modifyDatetime desc "); + } + + @Override public MesOqcCheckPackageDetail getOqcCheckPackageDetailByOrderNoAndSn(String organizeCode, String workOrderNo, String serialNumber) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo) || StringUtils.isEmpty(serialNumber)) { return null; @@ -178,6 +189,16 @@ public class JxOqcCheckService implements IJxOqcCheckService { } @Override + public MesOqcCheckPackageDetail getOqcCheckPackageDetailByOrderNoAndProductSn(String organizeCode, String workOrderNo, String productSn) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo) || StringUtils.isEmpty(productSn)) { + return null; + } + return oqcCheckPackageDetailRepository.getByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO, MesPcnExtConstWords.PRODUCT_SN}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo, productSn}); + } + + @Override public MesOqcCheckPackageDetail getOqcCheckPackageDetailByOrderNoAndPackageNo(String organizeCode, String workOrderNo, String packageNo) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo) || StringUtils.isEmpty(packageNo)) { return null; diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcManageService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcManageService.java index 343106c..e3a3562 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcManageService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/jx/JxOqcManageService.java @@ -111,7 +111,7 @@ public class JxOqcManageService implements IJxOqcManageService { log.info("出货检验主数据 --- result[{}] --- 线程ID[{}]", result.toBaseString(), Thread.currentThread().getName()); //初始化界面 - if (StringUtils.isEmpty(result.getSn()) && StringUtils.isEmpty(result.getSerialNumber()) && StringUtils.isEmpty(result.getIdStr())) return noDetailResult(result, model); + if (StringUtils.isEmpty(result.getSn()) && StringUtils.isEmpty(result.getProductSn()) && StringUtils.isEmpty(result.getIdStr())) return noDetailResult(result, model); //组件 if (!StringUtils.isEmpty(result.getIdStr())) return queryOqcManageDataById(result, lastScanInfo, key, model); @@ -150,7 +150,7 @@ public class JxOqcManageService implements IJxOqcManageService { if (!StringUtils.isEmpty(lastScanInfo)) { if (lastScanInfo instanceof String) { String[] snArr = lastScanInfo.toString().split(MesPcnExtConstWords.COMMA); - result.setSerialNumber(snArr[0]); + //result.setSerialNumber(snArr[0]); result.setProductSn(snArr[0]); if (snArr.length > 1) { result.setGoodsCode(snArr[1]); @@ -165,7 +165,7 @@ public class JxOqcManageService implements IJxOqcManageService { result.setIdStr(lastScanInfo.toString()); } } - if (StringUtils.isEmpty(result.getSn()) && StringUtils.isEmpty(result.getSerialNumber()) && StringUtils.isEmpty(result.getIdStr())) { + if (StringUtils.isEmpty(result.getSn()) && StringUtils.isEmpty(result.getProductSn()) && StringUtils.isEmpty(result.getIdStr())) { result.setMsg("请扫描产品条码"); } } @@ -299,7 +299,7 @@ public class JxOqcManageService implements IJxOqcManageService { private void checkSnIsNull(JxOqcManageModel result, String oqcNo) { if (StringUtils.isEmpty(result.getSn())) { if (StringUtils.isEmpty(result.getGoodsCode())) { - result.setMsg(String.format("继上次扫描,产品条码[%s],请继续扫描商品码", result.getSerialNumber())); + result.setMsg(String.format("继上次扫描,产品条码[%s],请继续扫描商品码", result.getProductSn())); } //else if (StringUtils.isEmpty(result.getPackageNo())) { // result.setMsg(String.format("继上次扫描,产品条码[%s]商品码[%s],请继续扫描包装条码", result.getSerialNumber(), result.getGoodsCode())); @@ -307,9 +307,9 @@ public class JxOqcManageService implements IJxOqcManageService { // result.setMsg(String.format("继上次扫描,产品条码[%s]商品码[%s]包装条码[%s],请继续扫描商品码", result.getSerialNumber(), result.getGoodsCode(), result.getPackageNo())); //} } else { - if (!StringUtils.isEmpty(result.getGoodsCode2())) { - result.setMsg("请先点击重置,再重新扫描"); - } + //if (!StringUtils.isEmpty(result.getGoodsCode2())) { + // result.setMsg("请先点击重置,再重新扫描"); + //} } if (StringUtils.isEmpty(result.getMsg())) result.setOqcNo(oqcNo); @@ -323,7 +323,7 @@ public class JxOqcManageService implements IJxOqcManageService { params.put(MesPcnExtConstWords.CLASS_NAME, clazz); if (StringUtils.isEmpty(result.getIdStr())) { //成品 - params.put(MesPcnExtConstWords.VALUE, !StringUtils.isEmpty(result.getSerialNumber()) ? result.getSerialNumber() : result.getSn()); + params.put(MesPcnExtConstWords.VALUE, !StringUtils.isEmpty(result.getProductSn()) ? result.getProductSn() : result.getSn()); params.put(MesPcnExtConstWords.DATA_TYPE, (MesPcnExtEnumUtil.OQC_CHECK_TYPE.TEARDOWN_INSPECTION.getValue() == result.getOqcNoType() || !StringUtils.isEmpty(result.getOqcNo())) ? MesPcnExtEnumUtil.TRUE_OR_FALSE.FALSE.getValueStr() : MesPcnExtEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr()); } else { @@ -335,9 +335,9 @@ public class JxOqcManageService implements IJxOqcManageService { } private void checkScanIsFinish(JxOqcManageModel result, SxBuOqcDataModel dataFromPcn, Object lastScanInfo, String key) { - if (StringUtils.isEmpty(result.getSerialNumber())) { - result.setSerialNumber(result.getSn()); - result.setMsg(String.format("产品条码[%s]扫描成功,请继续扫描商品码", result.getSerialNumber())); + if (StringUtils.isEmpty(result.getProductSn())) { + result.setProductSn(result.getSn()); + result.setMsg(String.format("产品条码[%s]扫描成功,请继续扫描商品码", result.getProductSn())); } else { result.setGoodsCode(result.getSn()); } @@ -345,7 +345,7 @@ public class JxOqcManageService implements IJxOqcManageService { //验证物料 MesPartExt partDb = checkPartValidBySn(result, dataFromPcn.getPartNo(), lastScanInfo); //验证商品码 - checkGoodsCodeValid(partDb, result.getGoodsCode(), result.getSerialNumber()); + checkGoodsCodeValid(partDb, result.getGoodsCode(), result.getProductSn()); //缓存用户扫描信息 if (!StringUtils.isEmpty(result.getSn())) redisMesPcn.putHash(key, result.getUserId(), @@ -368,28 +368,28 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]不存在%s", result.getSerialNumber(), partNo, msg) + .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]不存在%s", result.getProductSn(), partNo, msg) .build(); } if (StringUtils.isEmpty(partDb.getCategoryCode3()) || !partDb.getCategoryCode3().equals(MesPcnExtEnumUtil.OQC_MANAGE_ACTION_TYPE.SERIAL_NUMBER.getValue())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]的产品类型不是成品%s", result.getSerialNumber(), partNo, msg) + .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]的产品类型不是成品%s", result.getProductSn(), partNo, msg) .build(); } if (StringUtils.isEmpty(partDb.getIsOqc()) || CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == partDb.getIsOqc()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]不支持出货检验%s", result.getSerialNumber(), partNo, msg) + .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]不支持出货检验%s", result.getProductSn(), partNo, msg) .build(); } if (StringUtils.isEmpty(partDb.getGoodsCode())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]未维护商品码%s", result.getSerialNumber(), partNo, msg) + .setErrorDetail("出货检验:产品条码[%s]关联的物料编码[%s]未维护商品码%s", result.getProductSn(), partNo, msg) .build(); } return partDb; @@ -439,6 +439,7 @@ public class JxOqcManageService implements IJxOqcManageService { result.setCompleteQty(dataFromPcn.getCompleteQty()); result.setIdStr(dataFromPcn.getIdStr()); result.setSerialNumber(dataFromPcn.getSerialNumber()); + result.setProductSn(dataFromPcn.getProductSn()); } private JxOqcManageModel queryOqcManageDataBySn(JxOqcManageModel result, JxOqcManageParamModel model, SxBuOqcDataModel dataFromPcn) { @@ -448,7 +449,7 @@ public class JxOqcManageService implements IJxOqcManageService { MesOutPutStatisticsOqc outPutStatisticsOqcDb = getOutPutStatisticsOqcBySn(result, "出货检验"); //获取出货检验单据集合 - List oqcCheckList = oqcCheckService.getOqcCheckListBySn(result.getOrganizeCode(), result.getWorkOrderNo(), result.getSerialNumber()); + List oqcCheckList = oqcCheckService.getOqcCheckListByProductSn(result.getOrganizeCode(), result.getWorkOrderNo(), result.getProductSn()); log.info("MES_PCN出货检验主数据 --- 成品出货检验 --- oqcCheckList.size[{}] --- 线程ID[{}]", CollectionUtils.isEmpty(oqcCheckList) ? 0 : oqcCheckList.size(), Thread.currentThread().getName()); @@ -472,7 +473,7 @@ public class JxOqcManageService implements IJxOqcManageService { .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) .setErrorDetail("%s:产品条码[%s]作业时间[%s]班次代码[%s]关联的%s[%s]未查询到产量统计出货检验关联数据", - msg, result.getSerialNumber(), result.getWorkTime(), result.getShiftCode(), result.getWorkOrderTypeName(), result.getWorkOrderNo()) + msg, result.getProductSn(), result.getWorkTime(), result.getShiftCode(), result.getWorkOrderTypeName(), result.getWorkOrderNo()) .build(); } return outPutStatisticsOqcDb; @@ -487,7 +488,7 @@ public class JxOqcManageService implements IJxOqcManageService { private MesOqcCheck getOqcCheckBySn(JxOqcManageModel result, List oqcCheckList, String oqcNo) { if (CollectionUtils.isEmpty(oqcCheckList)) { //验证是否已关联检验单 - checkSnIsChecked(result.getOrganizeCode(), result.getWorkOrderNo(), result.getSerialNumber(), "出货检验"); + checkSnIsChecked(result.getOrganizeCode(), result.getWorkOrderNo(), result.getProductSn(), "出货检验"); } else { if (StringUtils.isEmpty(oqcNo)) { List unFinishOqcCheckList = oqcCheckList.stream().filter(o -> (null != o && @@ -512,22 +513,22 @@ public class JxOqcManageService implements IJxOqcManageService { return null; } - private void checkSnIsChecked(String organizeCode, String workOrderNo, String serialNumber, String msg) { - MesOqcCheckPackageDetail oqcCheckPackageDetail = oqcCheckService.getOqcCheckPackageDetailByOrderNoAndSn(organizeCode, workOrderNo, serialNumber); + private void checkSnIsChecked(String organizeCode, String workOrderNo, String productSn, String msg) { + MesOqcCheckPackageDetail oqcCheckPackageDetail = oqcCheckService.getOqcCheckPackageDetailByOrderNoAndProductSn(organizeCode, workOrderNo, productSn); if (null != oqcCheckPackageDetail) { MesOqcCheck oqcCheck = oqcCheckService.getOqcCheckByOqcNo(organizeCode, oqcCheckPackageDetail.getOqcNo()); if (null == oqcCheck) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("%s:产品条码[%s]已关联到出货检验单[%s],但是单据信息不存在", msg, serialNumber, oqcCheckPackageDetail.getOqcNo()) + .setErrorDetail("%s:产品条码[%s]已关联到出货检验单[%s],但是单据信息不存在", msg, productSn, oqcCheckPackageDetail.getOqcNo()) .build(); } throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorDetail("%s:产品条码[%s]已关联到%s出货检验单[%s],可以扫描产品条码[%s]查询详情", - msg, serialNumber, MesPcnExtEnumUtil.OQC_TYPE.NORMAL.getValue() == oqcCheck.getOqcType() ? "" : "手动检验", oqcCheckPackageDetail.getOqcNo(), oqcCheck.getSerialNumber()) + msg, productSn, MesPcnExtEnumUtil.OQC_TYPE.NORMAL.getValue() == oqcCheck.getOqcType() ? "" : "手动检验", oqcCheckPackageDetail.getOqcNo(), oqcCheck.getProductSn()) .build(); } } @@ -585,9 +586,9 @@ public class JxOqcManageService implements IJxOqcManageService { private void packInitResultBySn(JxOqcManageModel result, SxBuOqcDataModel dataFromPcn) { if (!StringUtils.isEmpty(result.getSn())) { - result.setMsg(String.format("商品码[%s]扫描成功,产品条码[%s]可生成出货检验单", result.getSn(), result.getSerialNumber())); + result.setMsg(String.format("商品码[%s]扫描成功,产品条码[%s]可生成出货检验单", result.getSn(), result.getProductSn())); } else { - result.setMsg(String.format("继上次扫描,产品条码[%s]商品码[%s],可生成出货检验单", result.getSerialNumber(), result.getGoodsCode())); + result.setMsg(String.format("继上次扫描,产品条码[%s]商品码[%s],可生成出货检验单", result.getProductSn(), result.getGoodsCode())); } List oqcCheckPackageDetailList = oqcCheckService.getOqcCheckPackageDetailListByOrderNoAndWorkTime(result.getOrganizeCode(), result.getWorkOrderNo(), result.getWorkTime(), result.getShiftCode()); @@ -617,7 +618,7 @@ public class JxOqcManageService implements IJxOqcManageService { } private Double getProdMapListSizeWithoutChecked(List> prodMapList, List oqcCheckPackageDetailList) { - List snList = oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getSerialNumber).collect(Collectors.toList()); + List snList = oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getProductSn).collect(Collectors.toList()); //boolean isNeedBigPackFlag = false; //if(!CollectionUtils.isEmpty(prodMapList.stream().filter(o -> (null != o && o.get(MesPcnExtConstWords.IS_NEED_BIG_PACK_NO) != null)).collect(Collectors.toList()))){ // isNeedBigPackFlag = true; @@ -972,11 +973,11 @@ public class JxOqcManageService implements IJxOqcManageService { if (!StringUtils.isEmpty(result.getIdStr())) insertOqcManageDataNormalById(result, model); //成品 - if (!StringUtils.isEmpty(result.getSerialNumber())) insertOqcManageDataNormalBySn(result, model); + if (!StringUtils.isEmpty(result.getProductSn())) insertOqcManageDataNormalBySn(result, model); } private void checkCachedDataIsWhole(JxOqcManageModel result) { - if (StringUtils.isEmpty(result.getIdStr()) && (StringUtils.isEmpty(result.getSerialNumber()) || + if (StringUtils.isEmpty(result.getIdStr()) && (StringUtils.isEmpty(result.getProductSn()) || StringUtils.isEmpty(result.getGoodsCode()))) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) @@ -1147,7 +1148,7 @@ public class JxOqcManageService implements IJxOqcManageService { log.info("MES_PCN出货检验生成检验单 --- 成品出货检验 --- result[{}] --- 线程ID[{}]", result.toString(), Thread.currentThread().getName()); //获取出货检验单据集合 - List oqcCheckList = oqcCheckService.getOqcCheckListBySn(result.getOrganizeCode(), result.getWorkOrderNo(), result.getSerialNumber()); + List oqcCheckList = oqcCheckService.getOqcCheckListByProductSn(result.getOrganizeCode(), result.getWorkOrderNo(), result.getProductSn()); //验证当前条码是否可以生成单据 checkSnIsAllowGenOqc(result, oqcCheckList); @@ -1170,14 +1171,14 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]不存在,请点击重置", result.getSerialNumber(), dataFromPcn.getPartNo()) + .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]不存在,请点击重置", result.getProductSn(), dataFromPcn.getPartNo()) .build(); } if (StringUtils.isEmpty(partDb.getCategoryCode3()) || !partDb.getCategoryCode3().equals(MesPcnExtEnumUtil.OQC_MANAGE_ACTION_TYPE.SERIAL_NUMBER.getValue())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]的产品类型不是成品,请点击重置", result.getSerialNumber(), dataFromPcn.getPartNo()) + .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]的产品类型不是成品,请点击重置", result.getProductSn(), dataFromPcn.getPartNo()) .build(); } @@ -1185,14 +1186,14 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]不支持出货检验,请点击重置", result.getSerialNumber(), dataFromPcn.getPartNo()) + .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]不支持出货检验,请点击重置", result.getProductSn(), dataFromPcn.getPartNo()) .build(); } if (StringUtils.isEmpty(partDb.getGoodsCode())) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]未维护商品码,请点击重置", result.getSerialNumber(), dataFromPcn.getPartNo()) + .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]未维护商品码,请点击重置", result.getProductSn(), dataFromPcn.getPartNo()) .build(); } if (!partDb.getGoodsCode().equals(result.getGoodsCode())) { @@ -1200,7 +1201,7 @@ public class JxOqcManageService implements IJxOqcManageService { .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorDetail("生成检验单:产品条码[%s]关联的物料编码[%s]当前维护的商品码[%s]与上次扫描的商品码[%s]不一致,请点击重置", - result.getSerialNumber(), dataFromPcn.getPartNo(), partDb.getGoodsCode(), result.getGoodsCode()) + result.getProductSn(), dataFromPcn.getPartNo(), partDb.getGoodsCode(), result.getGoodsCode()) .build(); } return partDb; @@ -1211,7 +1212,7 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]已经重新关联返工工单号[%s],请点击重置", result.getSerialNumber(), result.getWorkOrderNo()) + .setErrorDetail("生成检验单:产品条码[%s]已经重新关联返工工单号[%s],请点击重置", result.getProductSn(), result.getWorkOrderNo()) .build(); } } @@ -1233,7 +1234,7 @@ public class JxOqcManageService implements IJxOqcManageService { private void checkSnIsAllowGenOqc(JxOqcManageModel result, List oqcCheckList) { //验证是否已关联检验单 - if (CollectionUtils.isEmpty(oqcCheckList)) checkSnIsChecked(result.getOrganizeCode(), result.getWorkOrderNo(), result.getSerialNumber(), "生成检验单"); + if (CollectionUtils.isEmpty(oqcCheckList)) checkSnIsChecked(result.getOrganizeCode(), result.getWorkOrderNo(), result.getProductSn(), "生成检验单"); //根据工单号查询出货检验单据主表非拆机的一条数据 MesOqcCheck oqcCheckDb = oqcCheckService.getUnTeardownOqcCheckByWorkOrderNo(result.getOrganizeCode(), result.getWorkOrderNo()); @@ -1244,14 +1245,14 @@ public class JxOqcManageService implements IJxOqcManageService { .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorDetail("生成检验单:产品条码[%s]还未生成%s类型的检验单,操作失败", - result.getSerialNumber(), null == oqcCheckDb ? "日常检验或空洞检验" : MesPcnExtEnumUtil.OQC_CHECK_TYPE.valueOfDescription(oqcCheckDb.getOqcNoType())) + result.getProductSn(), null == oqcCheckDb ? "日常检验或空洞检验" : MesPcnExtEnumUtil.OQC_CHECK_TYPE.valueOfDescription(oqcCheckDb.getOqcNoType())) .build(); } else { if (oqcCheckList.size() > 1) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]已存在拆机检验类型的检验单,操作失败", result.getSerialNumber()) + .setErrorDetail("生成检验单:产品条码[%s]已存在拆机检验类型的检验单,操作失败", result.getProductSn()) .build(); } } @@ -1261,7 +1262,7 @@ public class JxOqcManageService implements IJxOqcManageService { .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorDetail("生成检验单:产品条码[%s]已存在%s类型的检验单,操作失败", - result.getSerialNumber(), MesPcnExtEnumUtil.OQC_CHECK_TYPE.valueOfDescription(oqcCheckList.get(0).getOqcNoType())) + result.getProductSn(), MesPcnExtEnumUtil.OQC_CHECK_TYPE.valueOfDescription(oqcCheckList.get(0).getOqcNoType())) .build(); } else { if (null != oqcCheckDb && oqcCheckDb.getOqcNoType().compareTo(result.getOqcNoType()) != 0) { @@ -1269,7 +1270,7 @@ public class JxOqcManageService implements IJxOqcManageService { .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) .setErrorDetail("生成检验单:产品条码[%s]不能生成%s类型的检验单,操作失败", - result.getSerialNumber(), MesPcnExtEnumUtil.OQC_CHECK_TYPE.valueOfDescription(result.getOqcNoType())) + result.getProductSn(), MesPcnExtEnumUtil.OQC_CHECK_TYPE.valueOfDescription(result.getOqcNoType())) .build(); } } @@ -1283,7 +1284,7 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]当前剩余未抽检批次范围为[0],操作失败", result.getSerialNumber()) + .setErrorDetail("生成检验单:产品条码[%s]当前剩余未抽检批次范围为[0],操作失败", result.getProductSn()) .build(); } } @@ -1327,7 +1328,7 @@ public class JxOqcManageService implements IJxOqcManageService { private List getOqcCheckedSnList(String organizeCode, String workOrderNo, String workTime, String shiftCode) { List oqcCheckPackageDetailList = oqcCheckService.getOqcCheckPackageDetailListByOrderNoAndWorkTime(organizeCode, workOrderNo, workTime, shiftCode); return CollectionUtils.isEmpty(oqcCheckPackageDetailList) ? null : - oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getSerialNumber).collect(Collectors.toList()); + oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getProductSn).collect(Collectors.toList()); } private void checkProdMapListBySn(List> prodMapList, JxOqcManageModel result) { @@ -1335,19 +1336,19 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:产品条码[%s]关联的生产工单[%s]下已无可抽检的产品,请点击重置", result.getSerialNumber(), result.getWorkOrderNo()) + .setErrorDetail("生成检验单:产品条码[%s]关联的生产工单[%s]下已无可抽检的产品,请点击重置", result.getProductSn(), result.getWorkOrderNo()) .build(); } - Optional> snOp = prodMapList.stream().filter(o -> (null != o && result.getSerialNumber().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).findFirst(); + Optional> snOp = prodMapList.stream().filter(o -> (null != o && result.getProductSn().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).findFirst(); if (null == snOp || !snOp.isPresent()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("生成检验单:工单[%s]筛除已经抽检完成的批次条码后不包含当前扫描的产品条码[%s],操作失败", result.getWorkOrderNo(), result.getSerialNumber()) + .setErrorDetail("生成检验单:工单[%s]筛除已经抽检完成的批次条码后不包含当前扫描的产品条码[%s],操作失败", result.getWorkOrderNo(), result.getProductSn()) .build(); } - prodMapList = prodMapList.stream().filter(o -> (null != o && !result.getSerialNumber().equals(o.get(MesPcnExtConstWords.SERIAL_NUMBER)))).collect(Collectors.toList()); + prodMapList = prodMapList.stream().filter(o -> (null != o && !result.getProductSn().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).collect(Collectors.toList()); if (CollectionUtils.isEmpty(prodMapList)) prodMapList = new ArrayList<>(); @@ -1359,15 +1360,15 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("检验单不合格:产品条码[%s]关联的生产工单[%s]下已无可抽检的产品,操作失败", result.getSerialNumber(), result.getWorkOrderNo()) + .setErrorDetail("检验单不合格:产品条码[%s]关联的生产工单[%s]下已无可抽检的产品,操作失败", result.getProductSn(), result.getWorkOrderNo()) .build(); } - Optional> snOp = prodMapList.stream().filter(o -> (null != o && result.getSerialNumber().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).findFirst(); + Optional> snOp = prodMapList.stream().filter(o -> (null != o && result.getProductSn().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).findFirst(); if (null == snOp || !snOp.isPresent()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("检验单不合格:工单[%s]筛除已经抽检完成的批次条码后不包含当前扫描的产品条码[%s],操作失败", result.getWorkOrderNo(), result.getSerialNumber()) + .setErrorDetail("检验单不合格:工单[%s]筛除已经抽检完成的批次条码后不包含当前扫描的产品条码[%s],操作失败", result.getWorkOrderNo(), result.getProductSn()) .build(); } @@ -1375,11 +1376,11 @@ public class JxOqcManageService implements IJxOqcManageService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES_PCN.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("检验单不合格:工单[%s]当前扫描条码[%s]工单号与当前工单号不一致,操作失败", result.getWorkOrderNo(), result.getSerialNumber()) + .setErrorDetail("检验单不合格:工单[%s]当前扫描条码[%s]工单号与当前工单号不一致,操作失败", result.getWorkOrderNo(), result.getProductSn()) .build(); } - prodMapList = prodMapList.stream().filter(o -> (null != o && !result.getSerialNumber().equals(o.get(MesPcnExtConstWords.SERIAL_NUMBER)))).collect(Collectors.toList()); + prodMapList = prodMapList.stream().filter(o -> (null != o && !result.getProductSn().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).collect(Collectors.toList()); prodMapList = prodMapList.stream().filter(o -> (null != o && snOp.get().get(MesPcnExtConstWords.OUT_WC_TIME).compareTo(o.get(MesPcnExtConstWords.OUT_WC_TIME)) >= 0)).collect(Collectors.toList()); @@ -1461,6 +1462,7 @@ public class JxOqcManageService implements IJxOqcManageService { outPutStatisticsOqcDb.setSpotCheckQty( MathOperation.add(StringUtils.isEmpty(outPutStatisticsOqcDb.getSpotCheckQty()) ? new Double(0) : outPutStatisticsOqcDb.getSpotCheckQty(), oqcCheck.getSpotCheckQty())); ConvertBean.serviceModelUpdate(outPutStatisticsOqcDb, oqcCheck.getModifyUser()); + outPutStatisticsOqcDb.setSystemSyncStatus(MesPcnExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); outPutStatisticsOqcRepository.save(outPutStatisticsOqcDb); } } @@ -1492,7 +1494,7 @@ public class JxOqcManageService implements IJxOqcManageService { List oqcCheckPackageDetailList = oqcCheckService.getOqcCheckPackageDetailListByOqcNo(model.getOrganizeCode(), model.getOqcNo()); if (StringUtils.isEmpty(model.getSn())) { - oqcCheckPackageDetailList.stream().map(MesOqcCheckPackageDetail::getSerialNumber).collect(Collectors.toList()); + oqcCheckPackageDetailList.stream().map(MesOqcCheckPackageDetail::getProductSn).collect(Collectors.toList()); model.getSn(); } @@ -1529,7 +1531,7 @@ public class JxOqcManageService implements IJxOqcManageService { //获取当前班次作业时间内已经关联出货检验的条码集合 List snList = CollectionUtils.isEmpty(oqcCheckPackageDetailList) ? null : - oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getSerialNumber).collect(Collectors.toList()); + oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getProductSn).collect(Collectors.toList()); //获取当前班次作业时间内未关联出货检验的条码集合 List> prodMapList = dataFromPcn.getProdMapList();