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

refs: #20408
This commit is contained in:
YiLiLin 2023-11-23 09:58:24 +08:00
parent 8e95dc1bb4
commit 2ad6b3cfc0
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());
// 初始化區域
int areaQty = ObjectUtil.isNull(inspecDetail.getAreaQty()) ? 1 : inspecDetail.getAreaQty().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);
}
Map<String, String> area = Area.reset(inspecDetail.getAreaQty(), tempArea);
inspecDetail.setAreaInfo(JsonUtils.toString(area));
BigDecimal sampleSize = inspecDetail.getSampleSize();
@ -162,7 +156,8 @@ public class QmsInspecDetailServiceImpl extends ServiceImpl<QmsInspecDetailMappe
QmsInspecDetailDTO inspecDetail = baseMapper.selectDetail(inspecDetailBo);
String inspecJobBo = inspecDetail.getInspecJobBo();
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);
updateJobStatus(inspecJobBo);

View File

@ -277,6 +277,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
createAbn(inspecJobBo, abnGroup, reasonCode, null);
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public void close(InspecJob inspecJob) {
@ -996,7 +997,8 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
BigDecimal max = detail.getMaxValue();
BigDecimal min = detail.getMinValue();
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();
if ("2".equals(itemType)) {
@ -1013,7 +1015,8 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
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) {
case "0":
// 計數

View File

@ -1,9 +1,11 @@
package com.foreverwin.iep.qms.utils;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.Map;
@ -22,4 +24,22 @@ public class Area {
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;
}
}