Merge branch 'merge-yili' into 'master'

fix: 检验任务作业—点完成检验任务单时报空指针

See merge request industry-solutions/industry-solutions-division/iep/iep-qms!6
This commit is contained in:
林益立 2023-11-23 08:30:31 +00:00
commit 197d4a9b9d
3 changed files with 35 additions and 17 deletions

View File

@ -70,13 +70,7 @@ public class QmsInspecDetailServiceImpl extends ServiceImpl<QmsInspecDetailMappe
Map<String, String> tempArea = Area.formatter(inspecDetail.getAreaInfo()); Map<String, String> tempArea = Area.formatter(inspecDetail.getAreaInfo());
// 初始化區域 // 初始化區域
int areaQty = ObjectUtil.isNull(inspecDetail.getAreaQty()) ? 1 : inspecDetail.getAreaQty().intValue(); Map<String, String> area = Area.reset(inspecDetail.getAreaQty(), tempArea);
Map<String, String> area = new LinkedHashMap<>();
for (int i = 1; i <= areaQty; i++) {
String key = String.valueOf(i);
String name = tempArea.getOrDefault(key, "");
area.put(key, name);
}
inspecDetail.setAreaInfo(JsonUtils.toString(area)); inspecDetail.setAreaInfo(JsonUtils.toString(area));
BigDecimal sampleSize = inspecDetail.getSampleSize(); BigDecimal sampleSize = inspecDetail.getSampleSize();
@ -162,7 +156,8 @@ public class QmsInspecDetailServiceImpl extends ServiceImpl<QmsInspecDetailMappe
QmsInspecDetailDTO inspecDetail = baseMapper.selectDetail(inspecDetailBo); QmsInspecDetailDTO inspecDetail = baseMapper.selectDetail(inspecDetailBo);
String inspecJobBo = inspecDetail.getInspecJobBo(); String inspecJobBo = inspecDetail.getInspecJobBo();
String itemType = inspecDetail.getItemType(); String itemType = inspecDetail.getItemType();
Map<String, String> areaMap = Area.formatter(inspecDetail.getAreaInfo()); Map<String, String> tempArea = Area.formatter(inspecDetail.getAreaInfo());
Map<String, String> areaMap = Area.reset(inspecDetail.getAreaQty(), tempArea);
remove(inspecDetailBo); remove(inspecDetailBo);
updateJobStatus(inspecJobBo); updateJobStatus(inspecJobBo);

View File

@ -136,9 +136,9 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
IPage<QmsInspecJobDTO> response = baseMapper.selectIQC(page, dto); IPage<QmsInspecJobDTO> response = baseMapper.selectIQC(page, dto);
response.getRecords().forEach(qmsInspecJobDTO -> { response.getRecords().forEach(qmsInspecJobDTO -> {
List<QmsInspecDetailDTO> detailList = qmsInspecDetailService.selectAll(qmsInspecJobDTO.getHandle()); List<QmsInspecDetailDTO> detailList = qmsInspecDetailService.selectAll(qmsInspecJobDTO.getHandle());
if(detailList.stream().noneMatch(x->x.getResult() == null)){ if (detailList.stream().noneMatch(x -> x.getResult() == null)) {
qmsInspecJobDTO.setInspecResult(detailList.stream() qmsInspecJobDTO.setInspecResult(detailList.stream()
.allMatch(x -> "1".equals(x.getResult())) ? "OK" : "NG"); .allMatch(x -> "1".equals(x.getResult())) ? "OK" : "NG");
} }
if (StrUtil.isNotBlank(qmsInspecJobDTO.getReasonCodeBo())) { if (StrUtil.isNotBlank(qmsInspecJobDTO.getReasonCodeBo())) {
qmsInspecJobDTO.setReasonCode(HandleBoProcessor.trimHandle(qmsInspecJobDTO.getReasonCodeBo())); qmsInspecJobDTO.setReasonCode(HandleBoProcessor.trimHandle(qmsInspecJobDTO.getReasonCodeBo()));
@ -277,6 +277,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
createAbn(inspecJobBo, abnGroup, reasonCode, null); createAbn(inspecJobBo, abnGroup, reasonCode, null);
} }
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void close(InspecJob inspecJob) { public void close(InspecJob inspecJob) {
@ -301,7 +302,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
.set(QmsInspecJob::getTestsampleQty, testSampleQty) .set(QmsInspecJob::getTestsampleQty, testSampleQty)
.eq(QmsInspecJob::getHandle, inspecJobBo)); .eq(QmsInspecJob::getHandle, inspecJobBo));
if("1".equals(inspecType)){ if ("1".equals(inspecType)) {
remoteWmsReceiptDetailService.updateInspecResult(targetBo, "1"); remoteWmsReceiptDetailService.updateInspecResult(targetBo, "1");
} }
} }
@ -854,7 +855,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
BigDecimal returnQty = inspecJob.getReturnQty() == null ? BigDecimal.ZERO : inspecJob.getReturnQty(); BigDecimal returnQty = inspecJob.getReturnQty() == null ? BigDecimal.ZERO : inspecJob.getReturnQty();
BigDecimal destructiveQty = inspecJob.getDestructiveQty() == null ? BigDecimal.ZERO : inspecJob.getDestructiveQty(); BigDecimal destructiveQty = inspecJob.getDestructiveQty() == null ? BigDecimal.ZERO : inspecJob.getDestructiveQty();
BigDecimal testsampleQty = inspecJob.getTestsampleQty() == null ? BigDecimal.ZERO : inspecJob.getTestsampleQty(); BigDecimal testsampleQty = inspecJob.getTestsampleQty() == null ? BigDecimal.ZERO : inspecJob.getTestsampleQty();
QmsInspecJob qmsInspecJob = getById(inspecJobBo); QmsInspecJob qmsInspecJob = getById(inspecJobBo);
R<WmsReceiptDetailDTO> wmsReceiptDetailDTO = remoteWmsReceiptDetailService.getById(qmsInspecJob.getTargetBo()); R<WmsReceiptDetailDTO> wmsReceiptDetailDTO = remoteWmsReceiptDetailService.getById(qmsInspecJob.getTargetBo());
InspecJob job = new InspecJob(); InspecJob job = new InspecJob();
@ -890,10 +891,10 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
@Override @Override
@Transactional @Transactional
public void closeByTargetBo( String targetBo ) { public void closeByTargetBo(String targetBo) {
List<QmsInspecJob> jobList = super.list(Wrappers.<QmsInspecJob>lambdaQuery() List<QmsInspecJob> jobList = super.list(Wrappers.<QmsInspecJob>lambdaQuery()
.eq(QmsInspecJob::getTargetBo, targetBo)); .eq(QmsInspecJob::getTargetBo, targetBo));
jobList.forEach(job->{ jobList.forEach(job -> {
InspecJob inspecJob = new InspecJob(); InspecJob inspecJob = new InspecJob();
BeanUtil.copyProperties(job, inspecJob); BeanUtil.copyProperties(job, inspecJob);
close(inspecJob); close(inspecJob);
@ -975,7 +976,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
break; break;
} }
if(NG.equals(detail.getResult())){ if (NG.equals(detail.getResult())) {
hasNG = true; hasNG = true;
} }
updateDetailResult(detailBo, detail.getResult(), String.join("|", oocRemarkList)); updateDetailResult(detailBo, detail.getResult(), String.join("|", oocRemarkList));
@ -996,7 +997,8 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
BigDecimal max = detail.getMaxValue(); BigDecimal max = detail.getMaxValue();
BigDecimal min = detail.getMinValue(); BigDecimal min = detail.getMinValue();
QmsInspecDetailDTO inspecDetail = qmsInspecDetailService.getDetailResult(detailBo); QmsInspecDetailDTO inspecDetail = qmsInspecDetailService.getDetailResult(detailBo);
Map<String, String> areaMap = Area.formatter(inspecDetail.getAreaInfo()); Map<String, String> tempArea = Area.formatter(inspecDetail.getAreaInfo());
Map<String, String> areaMap = Area.reset(inspecDetail.getAreaQty(), tempArea);
List<Map<String, Object>> resultList = inspecDetail.getResultList(); List<Map<String, Object>> resultList = inspecDetail.getResultList();
if ("2".equals(itemType)) { if ("2".equals(itemType)) {
@ -1013,7 +1015,8 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
value = k; value = k;
} }
BigDecimal result = new BigDecimal((String) objectMap.get(value)); String resultValue = (String) objectMap.get(value);
BigDecimal result = new BigDecimal(StrUtil.isBlank(resultValue) ? "0" : resultValue);
switch (itemType) { switch (itemType) {
case "0": case "0":
// 計數 // 計數

View File

@ -1,9 +1,11 @@
package com.foreverwin.iep.qms.utils; package com.foreverwin.iep.qms.utils;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
import java.math.BigDecimal;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
@ -22,4 +24,22 @@ public class Area {
return JSONObject.parseObject(areaInfo, new TypeReference<LinkedHashMap<String, String>>() { return JSONObject.parseObject(areaInfo, new TypeReference<LinkedHashMap<String, String>>() {
}); });
} }
/**
* 重置區域
*
* @param areaCnt
* @param tempArea
* @return
*/
public static Map<String, String> reset(BigDecimal areaCnt, Map<String, String> tempArea) {
int areaQty = ObjectUtil.isNull(areaCnt) ? 1 : areaCnt.intValue();
Map<String, String> area = new LinkedHashMap<>();
for (int i = 1; i <= areaQty; i++) {
String key = String.valueOf(i);
String name = tempArea.getOrDefault(key, "");
area.put(key, name);
}
return area;
}
} }