Commit 8704a2a5 by lijingjing

修改样品:添加电解质标样编码规则;

调整铝成品发送处理逻辑;
铝成品查询优化;
parent 8f117267
......@@ -1453,7 +1453,10 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 处理一级编码的报告文件
handleSampleBrand(ids, finalSampleBrandMap, true);
// 针对铝成品和原铝进行发送ERP数据处理
});
// 针对铝成品和原铝进行发送ERP数据处理
executor1.execute(() -> {
logger.error("{}开始执行发送ERP请求:---->ERP---", DateUtils.toYearMonthDayTime(new Date()));
sendTestDataToErp(Arrays.asList(ids), finalSampleBrandMap);
});
......@@ -1529,7 +1532,8 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
} else {
dataList = entrustSampleItemIndexService.listCpSampleItemIndex(null, ids);
}
// ==
RestAssert.fail(CollectionUtils.isEmpty(dataList), String.format("【%s】要发送的数据为空!", sampleName));
// == search data loop
dataList.forEach(t -> {
Long sampleId = Long.valueOf(t.get("id").toString());
......
......@@ -290,71 +290,81 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
if (HmConst.EXIST_CODE_MATERIALS.equals(parentCategory)) {
sampleCode = sample.getCode().toUpperCase();
} else {
Integer codeTypeVal = (Integer) codeType.getValue();
sampleCode = codeRuleService.getKey(codeTypeVal, codeType.getName(), sample);
// 生成编号,赋予编号规则类型
sample.setCodeRuleType(codeTypeVal);
// 若为外委检测和三级编码,则查询质检编号
if (CodeTypeEnum.SAMPLE_WWJC_CODE == codeType || CodeTypeEnum.SAMPLE_YFL_CODE == codeType) {
List<UserInspectionCode> userInspectionCodeList = userInspectionCodeService.list(Condition.create().eq("user_id", account.getUserId()).eq("type", "ZJ").eq("deleted", 0));
if (CollectionUtils.isNotEmpty(userInspectionCodeList)) {
inspectNo = userInspectionCodeList.get(0).getNo();
// 不为空时处理逻辑:
if (null != codeType) {
Integer codeTypeVal = (Integer) codeType.getValue();
sampleCode = codeRuleService.getKey(codeTypeVal, codeType.getName(), sample);
// 生成编号,赋予编号规则类型
sample.setCodeRuleType(codeTypeVal);
// 若为外委检测和三级编码,则查询质检编号
if (CodeTypeEnum.SAMPLE_WWJC_CODE == codeType || CodeTypeEnum.SAMPLE_YFL_CODE == codeType) {
List<UserInspectionCode> userInspectionCodeList = userInspectionCodeService.list(Condition.create().eq("user_id", account.getUserId()).eq("type", "ZJ").eq("deleted", 0));
if (CollectionUtils.isNotEmpty(userInspectionCodeList)) {
inspectNo = userInspectionCodeList.get(0).getNo();
}
}
}
if (CodeTypeEnum.SAMPLE_YL_CODE == codeType || CodeTypeEnum.SAMPLE_DJZ_CODE == codeType) {
sampleCode += sample.getSlotNo();
}
// 外委检测样品编号
else if (CodeTypeEnum.SAMPLE_WWJC_CODE == codeType) {
sampleCode = phase + sampleCode.substring(1);
secondCode = sampleCode.replace(replaceStr, "");
sampleCode = sampleCode.replace(replaceStr, inspectNo);
}
// 三级编码默认使用第一级别的委托的编码,也就是默认为A
else if (CodeTypeEnum.SAMPLE_YFL_CODE == codeType) {
sampleCode = phase + sampleCode.substring(1);
secondCode = sampleCode.replace("A", "B").replace(replaceStr, inspectNo);
// 进场物资,使用针对进场物资的生成规则
if (1 == entrust.getType()) {
thirdCode = getSampleThirdCode(sample);
} else {
thirdCode = sampleCode.replace("A", "C").replace(replaceStr, "HY");
if (CodeTypeEnum.SAMPLE_YL_CODE == codeType || CodeTypeEnum.SAMPLE_DJZ_CODE == codeType) {
sampleCode += sample.getSlotNo();
}
sampleCode = sampleCode.replace(replaceStr, inspectNo);
}
// 原铝散样样品编号处理
else if (CodeTypeEnum.AL_BULK_SAMPLE_CODE == codeType) {
// 替换班次BC
sampleCode = sampleCode.replace("BC", DateKit.getShiftByNow());
// YYMMDD+(A/C/E)+SN(1)+ 槽号(4)
// String queryKey = sampleCode.substring(0, 7) + "_" + sampleCode.substring(8);
// sampleCode = entrustSampleService.getNewCode(queryKey, 7, 1);
// 初始时,处理可能因a,b,c时间段重复编号
EntrustSample example = new EntrustSample();
example.setId(sample.getId());
example.setCode(sampleCode).setCodeRuleType(codeType.getIntValue());
// example.setFirstCode(sampleCode.replaceAll("(A|B|C)", "_"));
String newSampleCode = entrustSampleService.getCompatibleCode(example);
if (!sampleCode.equals(newSampleCode)) {
sampleCode = newSampleCode;
// 外委检测样品编号
else if (CodeTypeEnum.SAMPLE_WWJC_CODE == codeType) {
sampleCode = phase + sampleCode.substring(1);
secondCode = sampleCode.replace(replaceStr, "");
sampleCode = sampleCode.replace(replaceStr, inspectNo);
}
// 三级编码默认使用第一级别的委托的编码,也就是默认为A
else if (CodeTypeEnum.SAMPLE_YFL_CODE == codeType) {
sampleCode = phase + sampleCode.substring(1);
secondCode = sampleCode.replace("A", "B").replace(replaceStr, inspectNo);
// 进场物资,使用针对进场物资的生成规则
if (1 == entrust.getType()) {
thirdCode = getSampleThirdCode(sample);
} else {
thirdCode = sampleCode.replace("A", "C").replace(replaceStr, "HY");
}
sampleCode = sampleCode.replace(replaceStr, inspectNo);
}
// 原铝散样样品编号处理
else if (CodeTypeEnum.AL_BULK_SAMPLE_CODE == codeType) {
// 替换班次BC
sampleCode = sampleCode.replace("BC", DateKit.getShiftByNow());
// YYMMDD+(A/C/E)+SN(1)+ 槽号(4)
// String queryKey = sampleCode.substring(0, 7) + "_" + sampleCode.substring(8);
// sampleCode = entrustSampleService.getNewCode(queryKey, 7, 1);
// 初始时,处理可能因a,b,c时间段重复编号
EntrustSample example = new EntrustSample();
example.setId(sample.getId());
example.setCode(sampleCode).setCodeRuleType(codeType.getIntValue());
// example.setFirstCode(sampleCode.replaceAll("(A|B|C)", "_"));
String newSampleCode = entrustSampleService.getCompatibleCode(example);
if (!sampleCode.equals(newSampleCode)) {
sampleCode = newSampleCode;
}
}
// 电解质散样样品编号处理
// else if (CodeTypeEnum.ELECT_BULK_SAMPLE_CODE == codeType) {
// // D+@yyMMdd&-&${et.slotNo}
// String queryKey = sampleCode.substring(0, sampleCode.length() - 3);
// sampleCode = entrustSampleService.getNewCode(queryKey, 3);
// }
//== 原铝重取样品编号处理
// add by meazty on 2022-01-06 14:42〔原铝重取不再根据以下规则生成,使用默认规则即可〕
// else if (CodeTypeEnum.AL_RETAKE_SAMPLE_CODE == codeType) {
// // 替换槽号CH
// sampleCode = sampleCode.replace("CH", sample.getSlotNo());
// // @yyMMdd&CH&C&SN len(SN) = 1
// String queryKey = sampleCode.substring(0, sampleCode.length() - 1);
// sampleCode = entrustSampleService.getNewCode(queryKey, 1);
// }
} else {
// 默认年月日,有槽号,带上槽号
sampleCode = DateUtils.dateTransfer(new Date(), "yyyyMMdd");
if (StringUtils.isNotBlank(sample.getSlotNo())) {
sampleCode += "-" + sample.getSlotNo();
}
}
// 电解质散样样品编号处理
// else if (CodeTypeEnum.ELECT_BULK_SAMPLE_CODE == codeType) {
// // D+@yyMMdd&-&${et.slotNo}
// String queryKey = sampleCode.substring(0, sampleCode.length() - 3);
// sampleCode = entrustSampleService.getNewCode(queryKey, 3);
// }
//== 原铝重取样品编号处理
// add by meazty on 2022-01-06 14:42〔原铝重取不再根据以下规则生成,使用默认规则即可〕
// else if (CodeTypeEnum.AL_RETAKE_SAMPLE_CODE == codeType) {
// // 替换槽号CH
// sampleCode = sampleCode.replace("CH", sample.getSlotNo());
// // @yyMMdd&CH&C&SN len(SN) = 1
// String queryKey = sampleCode.substring(0, sampleCode.length() - 1);
// sampleCode = entrustSampleService.getNewCode(queryKey, 1);
// }
}
if (StringUtils.isNotBlank(sampleCode)) {
......
......@@ -170,6 +170,7 @@
<!--查询铝成品要发送ERP数据-->
<select id="selectCpSampleItemIndex" resultType="java.util.Map">
SELECT
s.id,
s.code "sample_code",
s.name "sample_name",
s.sample_from,
......@@ -205,7 +206,7 @@
</foreach>
</if>
group by
s.code,s.name,s.sample_from,s.sample_grading
s.id,s.code,s.name,s.sample_from,s.sample_grading
</select>
<delete id="physicalDeleteByItemIds">
......
......@@ -710,7 +710,7 @@
JOIN entrust_sample s ON s.ID = i.entrust_sample_id
WHERE
ii.deleted = 0
AND is_numeric ( ii.test_value )
AND TRIM(ii.test_value) ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$'
AND s.NAME = '铝成品'
AND s.entrust_id = #{entrustId}
GROUP BY
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment