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());
// 初始化區域
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

@ -136,9 +136,9 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
IPage<QmsInspecJobDTO> response = baseMapper.selectIQC(page, dto);
response.getRecords().forEach(qmsInspecJobDTO -> {
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()
.allMatch(x -> "1".equals(x.getResult())) ? "OK" : "NG");
.allMatch(x -> "1".equals(x.getResult())) ? "OK" : "NG");
}
if (StrUtil.isNotBlank(qmsInspecJobDTO.getReasonCodeBo())) {
qmsInspecJobDTO.setReasonCode(HandleBoProcessor.trimHandle(qmsInspecJobDTO.getReasonCodeBo()));
@ -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) {
@ -301,7 +302,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
.set(QmsInspecJob::getTestsampleQty, testSampleQty)
.eq(QmsInspecJob::getHandle, inspecJobBo));
if("1".equals(inspecType)){
if ("1".equals(inspecType)) {
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 destructiveQty = inspecJob.getDestructiveQty() == null ? BigDecimal.ZERO : inspecJob.getDestructiveQty();
BigDecimal testsampleQty = inspecJob.getTestsampleQty() == null ? BigDecimal.ZERO : inspecJob.getTestsampleQty();
QmsInspecJob qmsInspecJob = getById(inspecJobBo);
QmsInspecJob qmsInspecJob = getById(inspecJobBo);
R<WmsReceiptDetailDTO> wmsReceiptDetailDTO = remoteWmsReceiptDetailService.getById(qmsInspecJob.getTargetBo());
InspecJob job = new InspecJob();
@ -890,10 +891,10 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
@Override
@Transactional
public void closeByTargetBo( String targetBo ) {
public void closeByTargetBo(String targetBo) {
List<QmsInspecJob> jobList = super.list(Wrappers.<QmsInspecJob>lambdaQuery()
.eq(QmsInspecJob::getTargetBo, targetBo));
jobList.forEach(job->{
jobList.forEach(job -> {
InspecJob inspecJob = new InspecJob();
BeanUtil.copyProperties(job, inspecJob);
close(inspecJob);
@ -975,7 +976,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
break;
}
if(NG.equals(detail.getResult())){
if (NG.equals(detail.getResult())) {
hasNG = true;
}
updateDetailResult(detailBo, detail.getResult(), String.join("|", oocRemarkList));
@ -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;
}
}