出货检验产品条码由serialNumber改为productSn

dev
yxw 2 years ago
parent 6b3614703b
commit 59958cafae

@ -132,6 +132,16 @@ public interface IJxOqcCheckService {
List<MesOqcCheck> getOqcCheckListBySn(String organizeCode, String workOrderNo, String serialNumber);
/**
* ,
* @param organizeCode
* @param workOrderNo
* @param productSn
* @return
*/
@ApiOperation(value = "根据生产工单号,产品条码查询出货检验单据主表集合数据", notes = "根据生产工单号,产品条码查询出货检验单据主表集合数据")
List<MesOqcCheck> 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

@ -168,6 +168,17 @@ public class JxOqcCheckService implements IJxOqcCheckService {
}
@Override
public List<MesOqcCheck> 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;

@ -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<MesOqcCheck> oqcCheckList = oqcCheckService.getOqcCheckListBySn(result.getOrganizeCode(), result.getWorkOrderNo(), result.getSerialNumber());
List<MesOqcCheck> 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<MesOqcCheck> 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<MesOqcCheck> 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<MesOqcCheckPackageDetail> oqcCheckPackageDetailList = oqcCheckService.getOqcCheckPackageDetailListByOrderNoAndWorkTime(result.getOrganizeCode(), result.getWorkOrderNo(), result.getWorkTime(), result.getShiftCode());
@ -617,7 +618,7 @@ public class JxOqcManageService implements IJxOqcManageService {
}
private Double getProdMapListSizeWithoutChecked(List<Map<String, String>> prodMapList, List<MesOqcCheckPackageDetail> oqcCheckPackageDetailList) {
List<String> snList = oqcCheckPackageDetailList.stream().filter(o -> null != o).map(MesOqcCheckPackageDetail::getSerialNumber).collect(Collectors.toList());
List<String> 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<MesOqcCheck> oqcCheckList = oqcCheckService.getOqcCheckListBySn(result.getOrganizeCode(), result.getWorkOrderNo(), result.getSerialNumber());
List<MesOqcCheck> 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<MesOqcCheck> 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<String> getOqcCheckedSnList(String organizeCode, String workOrderNo, String workTime, String shiftCode) {
List<MesOqcCheckPackageDetail> 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<Map<String, String>> 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<Map<String, String>> snOp = prodMapList.stream().filter(o -> (null != o && result.getSerialNumber().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).findFirst();
Optional<Map<String, String>> 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<Map<String, String>> snOp = prodMapList.stream().filter(o -> (null != o && result.getSerialNumber().equals(o.get(MesPcnExtConstWords.PRODUCT_SN)))).findFirst();
Optional<Map<String, String>> 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<MesOqcCheckPackageDetail> 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<String> 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<Map<String, String>> prodMapList = dataFromPcn.getProdMapList();

Loading…
Cancel
Save