parent
ab200cdffc
commit
d73674d374
@ -1,9 +1,13 @@
|
|||||||
package com.foreverwin.iep.qms.dto;
|
package com.foreverwin.iep.qms.dto;
|
||||||
|
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecDetail;
|
import com.foreverwin.iep.qms.entity.QmsInspecDetail;
|
||||||
|
import com.foreverwin.iep.qms.entity.QmsInspecResult;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class QmsInspecDetailDTO extends QmsInspecDetail {
|
public class QmsInspecDetailDTO extends QmsInspecDetail {
|
||||||
@ -14,8 +18,19 @@ public class QmsInspecDetailDTO extends QmsInspecDetail {
|
|||||||
|
|
||||||
private String itemType;
|
private String itemType;
|
||||||
|
|
||||||
|
private String controlMode;
|
||||||
|
|
||||||
private String samplePlan;
|
private String samplePlan;
|
||||||
|
|
||||||
private String samplePlanType;
|
private String samplePlanType;
|
||||||
|
|
||||||
|
private String areaInfo;
|
||||||
|
|
||||||
|
private String contentDesc;
|
||||||
|
|
||||||
|
private List<Map<String, Object>> resultList;
|
||||||
|
|
||||||
|
private QmsInspecResult contentResult;
|
||||||
|
|
||||||
|
private List<QmsInspecFactorDTO> factorList;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package com.foreverwin.iep.qms.dto;
|
||||||
|
|
||||||
|
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class QmsInspecFactorDTO extends QmsInspecFactor {
|
||||||
|
|
||||||
|
private String factor;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package com.foreverwin.iep.qms.dto;
|
||||||
|
|
||||||
|
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class QmsInspecResultNccodeDTO extends QmsInspecResultNccode {
|
||||||
|
|
||||||
|
private String ncCode;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
}
|
||||||
@ -5,12 +5,11 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import com.foreverwin.iep.common.utils.HandleBoProcessor;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.io.Serializable;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 要因主表
|
* 要因主表
|
||||||
@ -69,4 +68,7 @@ public class QmsFactor extends Model<QmsFactor> {
|
|||||||
@ApiModelProperty(value="是否预设")
|
@ApiModelProperty(value="是否预设")
|
||||||
private String isDefault;
|
private String isDefault;
|
||||||
|
|
||||||
|
public static String genHandle(String site, String factor) {
|
||||||
|
return HandleBoProcessor.genHandle("FactorBO:", site, factor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,6 +44,4 @@ public class QmsInspecFactor extends Model<QmsInspecFactor> {
|
|||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "要因值")
|
@ApiModelProperty(value = "要因值")
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.foreverwin.iep.qms.controller;
|
|||||||
|
|
||||||
import com.foreverwin.iep.common.base.FrontPage;
|
import com.foreverwin.iep.common.base.FrontPage;
|
||||||
import com.foreverwin.iep.qms.domain.InspecJob;
|
import com.foreverwin.iep.qms.domain.InspecJob;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecDetailDTO;
|
||||||
import com.foreverwin.iep.qms.dto.QmsInspecJobDTO;
|
import com.foreverwin.iep.qms.dto.QmsInspecJobDTO;
|
||||||
import com.foreverwin.iep.qms.service.QmsInspecDetailService;
|
import com.foreverwin.iep.qms.service.QmsInspecDetailService;
|
||||||
import com.foreverwin.iep.qms.service.QmsInspecJobService;
|
import com.foreverwin.iep.qms.service.QmsInspecJobService;
|
||||||
@ -72,4 +73,23 @@ public class QmsInspecJobController {
|
|||||||
qmsInspecJobService.operate(inspecJob);
|
qmsInspecJobService.operate(inspecJob);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "檢驗任務明細-檢驗項目查詢", notes = "檢驗任務明細-檢驗項目查詢")
|
||||||
|
@GetMapping("/detail/result/{inspecDetailBo}")
|
||||||
|
public R getDetailResult(@PathVariable("inspecDetailBo") String inspecDetailBo) {
|
||||||
|
return R.ok(qmsInspecDetailService.getDetailResult(inspecDetailBo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "檢驗任務明細-檢驗項目結果保存", notes = "檢驗任務明細-檢驗項目結果保存")
|
||||||
|
@PostMapping("/detail/result")
|
||||||
|
public R saveDetailResult(@RequestBody QmsInspecDetailDTO dto) {
|
||||||
|
qmsInspecDetailService.saveResult(dto);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "檢驗任務-不合格代碼", notes = "檢驗任務-不合格代碼")
|
||||||
|
@GetMapping("/nc/{inspecJobBo}")
|
||||||
|
public R getNc(@PathVariable("inspecJobBo") String inspecJobBo) {
|
||||||
|
return R.ok(qmsInspecJobService.getNc(inspecJobBo));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,4 +15,8 @@ import java.util.List;
|
|||||||
public interface QmsInspecDetailService extends IService<QmsInspecDetail> {
|
public interface QmsInspecDetailService extends IService<QmsInspecDetail> {
|
||||||
|
|
||||||
List<QmsInspecDetailDTO> selectAll(String inspecJobBo);
|
List<QmsInspecDetailDTO> selectAll(String inspecJobBo);
|
||||||
|
|
||||||
|
QmsInspecDetailDTO getDetailResult(String inspecDetailBo);
|
||||||
|
|
||||||
|
void saveResult(QmsInspecDetailDTO dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.foreverwin.iep.qms.service;
|
package com.foreverwin.iep.qms.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecFactorDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-要因
|
* 检验任务-要因
|
||||||
*
|
*
|
||||||
@ -10,4 +13,6 @@ import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
|||||||
* @date 2023-07-17 09:29:13
|
* @date 2023-07-17 09:29:13
|
||||||
*/
|
*/
|
||||||
public interface QmsInspecFactorService extends IService<QmsInspecFactor> {
|
public interface QmsInspecFactorService extends IService<QmsInspecFactor> {
|
||||||
|
|
||||||
|
List<QmsInspecFactorDTO> selectAll(String inspecDetailBo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,12 +3,15 @@ package com.foreverwin.iep.qms.service;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.foreverwin.iep.common.base.FrontPage;
|
import com.foreverwin.iep.common.base.FrontPage;
|
||||||
|
import com.foreverwin.iep.prd.entity.NcBasis;
|
||||||
import com.foreverwin.iep.qms.domain.InspecJob;
|
import com.foreverwin.iep.qms.domain.InspecJob;
|
||||||
import com.foreverwin.iep.qms.domain.Item;
|
import com.foreverwin.iep.qms.domain.Item;
|
||||||
import com.foreverwin.iep.qms.domain.Resource;
|
import com.foreverwin.iep.qms.domain.Resource;
|
||||||
import com.foreverwin.iep.qms.dto.QmsInspecJobDTO;
|
import com.foreverwin.iep.qms.dto.QmsInspecJobDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecJob;
|
import com.foreverwin.iep.qms.entity.QmsInspecJob;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 产品检验任务作业-主文件
|
* 产品检验任务作业-主文件
|
||||||
*
|
*
|
||||||
@ -28,4 +31,6 @@ public interface QmsInspecJobService extends IService<QmsInspecJob> {
|
|||||||
void update(InspecJob inspecJob);
|
void update(InspecJob inspecJob);
|
||||||
|
|
||||||
void operate(InspecJob inspecJob);
|
void operate(InspecJob inspecJob);
|
||||||
|
|
||||||
|
List<NcBasis> getNc(String inspecJobBo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,12 @@
|
|||||||
package com.foreverwin.iep.qms.service;
|
package com.foreverwin.iep.qms.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.foreverwin.iep.prd.entity.NcBasis;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecResultNccodeDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-不合格代码
|
* 检验任务-不合格代码
|
||||||
*
|
*
|
||||||
@ -10,4 +14,8 @@ import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
|||||||
* @date 2023-07-17 09:32:45
|
* @date 2023-07-17 09:32:45
|
||||||
*/
|
*/
|
||||||
public interface QmsInspecResultNccodeService extends IService<QmsInspecResultNccode> {
|
public interface QmsInspecResultNccodeService extends IService<QmsInspecResultNccode> {
|
||||||
|
|
||||||
|
List<QmsInspecResultNccodeDTO> selectAll(String inspecResultSid);
|
||||||
|
|
||||||
|
List<NcBasis> selectNc(String operationBo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,36 @@
|
|||||||
package com.foreverwin.iep.qms.service.impl;
|
package com.foreverwin.iep.qms.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson.TypeReference;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.foreverwin.iep.common.utils.ListUtils;
|
||||||
|
import com.foreverwin.iep.common.utils.SidUtils;
|
||||||
|
import com.foreverwin.iep.prd.entity.NcBasis;
|
||||||
import com.foreverwin.iep.qms.dto.QmsInspecDetailDTO;
|
import com.foreverwin.iep.qms.dto.QmsInspecDetailDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecDetail;
|
import com.foreverwin.iep.qms.dto.QmsInspecFactorDTO;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecResultNccodeDTO;
|
||||||
|
import com.foreverwin.iep.qms.entity.*;
|
||||||
import com.foreverwin.iep.qms.mapper.QmsInspecDetailMapper;
|
import com.foreverwin.iep.qms.mapper.QmsInspecDetailMapper;
|
||||||
import com.foreverwin.iep.qms.service.QmsInspecDetailService;
|
import com.foreverwin.iep.qms.service.*;
|
||||||
|
import com.foreverwin.mom.common.data.tenant.TenantContextHolder;
|
||||||
|
import com.foreverwin.mom.common.security.util.SecurityUtils;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-明细
|
* 检验任务-明细
|
||||||
@ -20,8 +42,320 @@ import java.util.List;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class QmsInspecDetailServiceImpl extends ServiceImpl<QmsInspecDetailMapper, QmsInspecDetail> implements QmsInspecDetailService {
|
public class QmsInspecDetailServiceImpl extends ServiceImpl<QmsInspecDetailMapper, QmsInspecDetail> implements QmsInspecDetailService {
|
||||||
|
|
||||||
|
private QmsInspecJobService getQmsInspecJobService() {
|
||||||
|
return SpringUtil.getBean(QmsInspecJobService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final QmsInspecSnService qmsInspecSnService;
|
||||||
|
private final QmsInspecResultService qmsInspecResultService;
|
||||||
|
private final QmsQcPlanDetailService qmsQcPlanDetailService;
|
||||||
|
private final QmsInspecFactorService qmsInspecFactorService;
|
||||||
|
private final QmsInspecResultNccodeService qmsInspecResultNccodeService;
|
||||||
|
|
||||||
|
private static final String OK = "1";
|
||||||
|
private static final String NG = "0";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<QmsInspecDetailDTO> selectAll(String inspecJobBo) {
|
public List<QmsInspecDetailDTO> selectAll(String inspecJobBo) {
|
||||||
return baseMapper.selectAll(inspecJobBo);
|
return baseMapper.selectAll(inspecJobBo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QmsInspecDetailDTO getDetailResult(String inspecDetailBo) {
|
||||||
|
QmsInspecDetailDTO inspecDetail = baseMapper.selectDetail(inspecDetailBo);
|
||||||
|
String itemType = inspecDetail.getItemType();
|
||||||
|
Map<String, String> area = area(inspecDetail.getAreaInfo());
|
||||||
|
BigDecimal sampleSize = inspecDetail.getSampleSize();
|
||||||
|
BigDecimal dieQty = inspecDetail.getDieQty();
|
||||||
|
|
||||||
|
List<QmsInspecSn> inspecSns = qmsInspecSnService.list(Wrappers.lambdaQuery(QmsInspecSn.class)
|
||||||
|
.eq(QmsInspecSn::getInspecDetailBo, inspecDetailBo));
|
||||||
|
List<QmsInspecResult> inspecResults = qmsInspecResultService.list(Wrappers.lambdaQuery(QmsInspecResult.class)
|
||||||
|
.eq(QmsInspecResult::getInspecDetailBo, inspecDetailBo));
|
||||||
|
|
||||||
|
inspecDetail.setFactorList(qmsInspecFactorService.selectAll(inspecDetailBo));
|
||||||
|
// 內文
|
||||||
|
if ("2".equals(itemType)) {
|
||||||
|
QmsQcPlanDetail qcPlanDetail = qmsQcPlanDetailService.getById(inspecDetail.getQcPlanDetailBo());
|
||||||
|
inspecDetail.setContentDesc(qcPlanDetail.getContent());
|
||||||
|
if (!ListUtils.isEmpty(inspecResults)) {
|
||||||
|
inspecDetail.setContentResult(inspecResults.get(0));
|
||||||
|
}
|
||||||
|
return inspecDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 計數
|
||||||
|
// 計量
|
||||||
|
int size = sampleSize.intValue();
|
||||||
|
int die = 1;
|
||||||
|
if (ObjectUtil.isNotNull(dieQty)) {
|
||||||
|
die = dieQty.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
int seq = i + 1;
|
||||||
|
QmsInspecSn sn = filterSn(inspecSns, String.valueOf(seq));
|
||||||
|
String snValue = null;
|
||||||
|
if (ObjectUtil.isNotNull(sn)) {
|
||||||
|
snValue = sn.getSn();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int j = 0; j < die; j++) {
|
||||||
|
int series = j + 1;
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
map.put("seq", seq);
|
||||||
|
map.put("sn", snValue);
|
||||||
|
|
||||||
|
area.forEach((k, v) -> {
|
||||||
|
String value = v;
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
value = k;
|
||||||
|
}
|
||||||
|
|
||||||
|
QmsInspecResult result = filtersResult(inspecResults, String.valueOf(seq), Integer.parseInt(k), series);
|
||||||
|
String resultValue = null;
|
||||||
|
List<QmsInspecResultNccodeDTO> resultNcCodeList = new ArrayList<>();
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotNull(result)) {
|
||||||
|
resultValue = result.getResult().stripTrailingZeros().toPlainString();
|
||||||
|
resultNcCodeList = qmsInspecResultNccodeService.selectAll(result.getSid());
|
||||||
|
}
|
||||||
|
map.put(value, resultValue);
|
||||||
|
map.put(String.format("%s$%s", value, "NC"), resultNcCodeList);
|
||||||
|
});
|
||||||
|
map.put("series", series);
|
||||||
|
resultList.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
inspecDetail.setResultList(resultList);
|
||||||
|
return inspecDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public void saveResult(QmsInspecDetailDTO dto) {
|
||||||
|
String site = TenantContextHolder.getTenantId();
|
||||||
|
String inspecDetailBo = dto.getHandle();
|
||||||
|
List<Map<String, Object>> resultList = dto.getResultList();
|
||||||
|
List<QmsInspecFactorDTO> factorList = dto.getFactorList();
|
||||||
|
|
||||||
|
QmsInspecDetailDTO inspecDetail = baseMapper.selectDetail(inspecDetailBo);
|
||||||
|
String inspecJobBo = inspecDetail.getInspecJobBo();
|
||||||
|
String itemType = inspecDetail.getItemType();
|
||||||
|
BigDecimal max = inspecDetail.getMaxValue();
|
||||||
|
BigDecimal min = inspecDetail.getMinValue();
|
||||||
|
Map<String, String> areaMap = area(inspecDetail.getAreaInfo());
|
||||||
|
|
||||||
|
remove(inspecDetailBo);
|
||||||
|
updateJobStatus(inspecJobBo);
|
||||||
|
saveFactor(inspecDetailBo, factorList);
|
||||||
|
|
||||||
|
// 內文
|
||||||
|
if ("2".equals(itemType)) {
|
||||||
|
QmsInspecResult inspecResult = new QmsInspecResult();
|
||||||
|
inspecResult.setSid(SidUtils.genSid());
|
||||||
|
inspecResult.setInspecDetailBo(inspecDetailBo);
|
||||||
|
inspecResult.setContent(dto.getContentResult().getContent());
|
||||||
|
qmsInspecResultService.save(inspecResult);
|
||||||
|
|
||||||
|
updateResult(inspecDetailBo, OK);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 計數
|
||||||
|
// 計量
|
||||||
|
saveSn(inspecDetailBo, resultList);
|
||||||
|
|
||||||
|
AtomicBoolean flag = new AtomicBoolean(true);
|
||||||
|
List<String> oocRemarkList = new ArrayList<>();
|
||||||
|
|
||||||
|
List<QmsInspecResult> inspecResultList = new ArrayList<>();
|
||||||
|
List<QmsInspecResultNccode> inspecResultNcList = new ArrayList<>();
|
||||||
|
resultList.forEach(objectMap -> {
|
||||||
|
String seq = String.valueOf(objectMap.get("seq"));
|
||||||
|
int series = (int) objectMap.get("series");
|
||||||
|
|
||||||
|
areaMap.forEach((k, v) -> {
|
||||||
|
QmsInspecResult inspecResult = new QmsInspecResult();
|
||||||
|
inspecResult.setSid(SidUtils.genSid());
|
||||||
|
inspecResult.setInspecDetailBo(inspecDetailBo);
|
||||||
|
inspecResult.setSeq(seq);
|
||||||
|
inspecResult.setArea(Integer.parseInt(k));
|
||||||
|
inspecResult.setSeries(series);
|
||||||
|
|
||||||
|
String value = v;
|
||||||
|
if (StrUtil.isBlank(value)) {
|
||||||
|
value = k;
|
||||||
|
}
|
||||||
|
|
||||||
|
BigDecimal result = new BigDecimal((String) objectMap.get(value));
|
||||||
|
inspecResult.setResult(result);
|
||||||
|
inspecResultList.add(inspecResult);
|
||||||
|
|
||||||
|
switch (itemType) {
|
||||||
|
case "0":
|
||||||
|
Object ncValue = objectMap.get(String.format("%s$%s", value, "NC"));
|
||||||
|
if (ObjectUtil.isNotNull(ncValue)) {
|
||||||
|
List<QmsInspecResultNccodeDTO> resultNcList = (List<QmsInspecResultNccodeDTO>) ncValue;
|
||||||
|
if (!ListUtils.isEmpty(resultNcList)) {
|
||||||
|
Map<String, Integer> count = new HashMap<>();
|
||||||
|
resultNcList.forEach(resultNc -> {
|
||||||
|
String ncCode = resultNc.getNcCode();
|
||||||
|
|
||||||
|
QmsInspecResultNccode inspecResultNc = new QmsInspecResultNccodeDTO();
|
||||||
|
inspecResultNc.setSid(SidUtils.genSid());
|
||||||
|
inspecResultNc.setInspecResultSid(inspecResult.getSid());
|
||||||
|
inspecResultNc.setNcBasisBo(NcBasis.genHandle(site, ncCode));
|
||||||
|
inspecResultNcList.add(inspecResultNc);
|
||||||
|
|
||||||
|
Integer qty = count.getOrDefault(ncCode, 0);
|
||||||
|
count.put(ncCode, qty + 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
count.forEach((nc, qty) -> {
|
||||||
|
oocRemarkList.add(String.format("%s:%%nc.description%%, %%nc.judge.qty%% %s", nc, qty));
|
||||||
|
});
|
||||||
|
flag.set(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "1":
|
||||||
|
int spec = 0;
|
||||||
|
if (ObjectUtil.isNotNull(min) && min.compareTo(result) > 0) {
|
||||||
|
spec = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotNull(max) && max.compareTo(result) < 0) {
|
||||||
|
spec = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spec > 0) {
|
||||||
|
String remark = String.format("OOS: %s", result.stripTrailingZeros().toPlainString());
|
||||||
|
switch (spec) {
|
||||||
|
case 1:
|
||||||
|
remark = String.format("%s %%out.of.spec.min%% %s", remark, min.stripTrailingZeros()
|
||||||
|
.toPlainString());
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
remark = String.format("%s %%out.of.spec.max%% %s", remark, max.stripTrailingZeros()
|
||||||
|
.toPlainString());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
oocRemarkList.add(remark);
|
||||||
|
flag.set(false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
String result = flag.get() ? OK : NG;
|
||||||
|
updateResult(inspecDetailBo, result, String.join("|", oocRemarkList));
|
||||||
|
qmsInspecResultService.saveBatch(inspecResultList);
|
||||||
|
qmsInspecResultNccodeService.saveBatch(inspecResultNcList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private QmsInspecSn filterSn(List<QmsInspecSn> inspecSns, String seq) {
|
||||||
|
return inspecSns.stream()
|
||||||
|
.filter(filters -> filters.getSeq().equals(seq))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private QmsInspecResult filtersResult(List<QmsInspecResult> inspecResults, String seq, int area, int series) {
|
||||||
|
return inspecResults.stream()
|
||||||
|
.filter(filters -> filters.getSeq().equals(seq) &&
|
||||||
|
filters.getArea() == area &&
|
||||||
|
filters.getSeries() == series)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void remove(String inspecDetailBo) {
|
||||||
|
qmsInspecSnService.remove(Wrappers.lambdaQuery(QmsInspecSn.class)
|
||||||
|
.eq(QmsInspecSn::getInspecDetailBo, inspecDetailBo));
|
||||||
|
qmsInspecResultService.remove(Wrappers.lambdaQuery(QmsInspecResult.class)
|
||||||
|
.eq(QmsInspecResult::getInspecDetailBo, inspecDetailBo));
|
||||||
|
qmsInspecFactorService.remove(Wrappers.lambdaQuery(QmsInspecFactor.class)
|
||||||
|
.eq(QmsInspecFactor::getInspecDetailBo, inspecDetailBo));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateJobStatus(String inspecJobBo) {
|
||||||
|
getQmsInspecJobService().update(Wrappers.lambdaUpdate(QmsInspecJob.class)
|
||||||
|
.set(QmsInspecJob::getStatus, "2")
|
||||||
|
.eq(QmsInspecJob::getHandle, inspecJobBo));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateResult(String inspecDetailBo, String result) {
|
||||||
|
updateResult(inspecDetailBo, result, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateResult(String inspecDetailBo, String result, String oocRemark) {
|
||||||
|
update(Wrappers.lambdaUpdate(QmsInspecDetail.class)
|
||||||
|
.set(QmsInspecDetail::getResult, result)
|
||||||
|
.set(StrUtil.isNotBlank(oocRemark), QmsInspecDetail::getOocRemark, oocRemark)
|
||||||
|
.eq(QmsInspecDetail::getHandle, inspecDetailBo));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveFactor(String inspecDetailBo, List<QmsInspecFactorDTO> factors) {
|
||||||
|
String site = TenantContextHolder.getTenantId();
|
||||||
|
qmsInspecFactorService.saveBatch(factors.stream()
|
||||||
|
.map(dto -> {
|
||||||
|
String factor = dto.getFactor();
|
||||||
|
|
||||||
|
QmsInspecFactor inspecFactor = new QmsInspecFactor();
|
||||||
|
BeanUtils.copyProperties(dto, inspecFactor);
|
||||||
|
|
||||||
|
inspecFactor.setSid(SidUtils.genSid());
|
||||||
|
inspecFactor.setInspecDetailBo(inspecDetailBo);
|
||||||
|
inspecFactor.setFactorBo(QmsFactor.genHandle(site, factor));
|
||||||
|
return inspecFactor;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveSn(String inspecDetailBo, List<Map<String, Object>> resultList) {
|
||||||
|
String user = SecurityUtils.getUserName();
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
List<QmsInspecSn> inspecSnList = new ArrayList<>();
|
||||||
|
Map<String, List<Map<String, Object>>> snMap = resultList.stream()
|
||||||
|
.collect(Collectors.groupingBy(group -> String.valueOf(group.get("seq"))));
|
||||||
|
snMap.forEach((seq, v) -> {
|
||||||
|
Map<String, Object> objectMap = v.stream()
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
if (ObjectUtil.isNotNull(objectMap)) {
|
||||||
|
String sn = String.valueOf(objectMap.get("sn"));
|
||||||
|
if ("null".equals(sn) || StrUtil.isBlank(sn)) {
|
||||||
|
sn = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
QmsInspecSn inspecSn = new QmsInspecSn();
|
||||||
|
inspecSn.setSid(SidUtils.genSid());
|
||||||
|
inspecSn.setInspecDetailBo(inspecDetailBo);
|
||||||
|
inspecSn.setSeq(seq);
|
||||||
|
inspecSn.setSn(sn);
|
||||||
|
inspecSn.setCreator(user);
|
||||||
|
inspecSn.setDateCreate(now);
|
||||||
|
inspecSnList.add(inspecSn);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
qmsInspecSnService.saveBatch(inspecSnList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> area(String areaInfo) {
|
||||||
|
if (StrUtil.isBlank(areaInfo)) {
|
||||||
|
areaInfo = "{}";
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject object = JSONObject.parseObject(areaInfo);
|
||||||
|
if (object.isEmpty()) {
|
||||||
|
object.put("1", "");
|
||||||
|
areaInfo = object.toJSONString();
|
||||||
|
}
|
||||||
|
return JSONObject.parseObject(areaInfo, new TypeReference<Map<String, String>>() {
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,15 @@
|
|||||||
package com.foreverwin.iep.qms.service.impl;
|
package com.foreverwin.iep.qms.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecFactorDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
||||||
import com.foreverwin.iep.qms.mapper.QmsInspecFactorMapper;
|
import com.foreverwin.iep.qms.mapper.QmsInspecFactorMapper;
|
||||||
import com.foreverwin.iep.qms.service.QmsInspecFactorService;
|
import com.foreverwin.iep.qms.service.QmsInspecFactorService;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-要因
|
* 检验任务-要因
|
||||||
*
|
*
|
||||||
@ -16,4 +19,9 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class QmsInspecFactorServiceImpl extends ServiceImpl<QmsInspecFactorMapper, QmsInspecFactor> implements QmsInspecFactorService {
|
public class QmsInspecFactorServiceImpl extends ServiceImpl<QmsInspecFactorMapper, QmsInspecFactor> implements QmsInspecFactorService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<QmsInspecFactorDTO> selectAll(String inspecDetailBo) {
|
||||||
|
return baseMapper.selectAll(inspecDetailBo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.foreverwin.iep.common.constant.BaseConstants;
|
|||||||
import com.foreverwin.iep.common.utils.HandleBoProcessor;
|
import com.foreverwin.iep.common.utils.HandleBoProcessor;
|
||||||
import com.foreverwin.iep.common.utils.ListUtils;
|
import com.foreverwin.iep.common.utils.ListUtils;
|
||||||
import com.foreverwin.iep.common.utils.SidUtils;
|
import com.foreverwin.iep.common.utils.SidUtils;
|
||||||
|
import com.foreverwin.iep.prd.entity.NcBasis;
|
||||||
import com.foreverwin.iep.prd.entity.Operation;
|
import com.foreverwin.iep.prd.entity.Operation;
|
||||||
import com.foreverwin.iep.production.dto.GenerateNextNumberRequest;
|
import com.foreverwin.iep.production.dto.GenerateNextNumberRequest;
|
||||||
import com.foreverwin.iep.production.dto.GenerateNextNumberResponse;
|
import com.foreverwin.iep.production.dto.GenerateNextNumberResponse;
|
||||||
@ -65,6 +66,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
|
|||||||
private final QmsQcItemFactorService qmsQcItemFactorService;
|
private final QmsQcItemFactorService qmsQcItemFactorService;
|
||||||
private final QmsInspecDetailService qmsInspecDetailService;
|
private final QmsInspecDetailService qmsInspecDetailService;
|
||||||
private final QmsInspecFactorService qmsInspecFactorService;
|
private final QmsInspecFactorService qmsInspecFactorService;
|
||||||
|
private final QmsInspecResultNccodeService qmsInspecResultNccodeService;
|
||||||
private final RemoteRoleService remoteRoleService;
|
private final RemoteRoleService remoteRoleService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -253,6 +255,12 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<NcBasis> getNc(String inspecJobBo) {
|
||||||
|
QmsInspecJob inspecJob = getById(inspecJobBo);
|
||||||
|
return qmsInspecResultNccodeService.selectNc(inspecJob.getOperationBo());
|
||||||
|
}
|
||||||
|
|
||||||
private LotState validation(InspecJob inspecJob) {
|
private LotState validation(InspecJob inspecJob) {
|
||||||
String lotNo = inspecJob.getLotNo();
|
String lotNo = inspecJob.getLotNo();
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,16 @@
|
|||||||
package com.foreverwin.iep.qms.service.impl;
|
package com.foreverwin.iep.qms.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.foreverwin.iep.prd.entity.NcBasis;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecResultNccodeDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
||||||
import com.foreverwin.iep.qms.mapper.QmsInspecResultNccodeMapper;
|
import com.foreverwin.iep.qms.mapper.QmsInspecResultNccodeMapper;
|
||||||
import com.foreverwin.iep.qms.service.QmsInspecResultNccodeService;
|
import com.foreverwin.iep.qms.service.QmsInspecResultNccodeService;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-不合格代码
|
* 检验任务-不合格代码
|
||||||
*
|
*
|
||||||
@ -16,4 +20,14 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class QmsInspecResultNccodeServiceImpl extends ServiceImpl<QmsInspecResultNccodeMapper, QmsInspecResultNccode> implements QmsInspecResultNccodeService {
|
public class QmsInspecResultNccodeServiceImpl extends ServiceImpl<QmsInspecResultNccodeMapper, QmsInspecResultNccode> implements QmsInspecResultNccodeService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<QmsInspecResultNccodeDTO> selectAll(String inspecResultSid) {
|
||||||
|
return baseMapper.selectAll(inspecResultSid);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<NcBasis> selectNc(String operationBo) {
|
||||||
|
return baseMapper.selectNcByOperation(operationBo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,5 +18,10 @@
|
|||||||
<artifactId>qms-api</artifactId>
|
<artifactId>qms-api</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.foreverwin</groupId>
|
||||||
|
<artifactId>mes-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@ -18,4 +18,6 @@ import java.util.List;
|
|||||||
public interface QmsInspecDetailMapper extends BaseMapper<QmsInspecDetail> {
|
public interface QmsInspecDetailMapper extends BaseMapper<QmsInspecDetail> {
|
||||||
|
|
||||||
List<QmsInspecDetailDTO> selectAll(@Param("inspecJobBo") String inspecJobBo);
|
List<QmsInspecDetailDTO> selectAll(@Param("inspecJobBo") String inspecJobBo);
|
||||||
|
|
||||||
|
QmsInspecDetailDTO selectDetail(@Param("inspecDetailBo") String inspecDetailBo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,12 @@
|
|||||||
package com.foreverwin.iep.qms.mapper;
|
package com.foreverwin.iep.qms.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecFactorDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
import com.foreverwin.iep.qms.entity.QmsInspecFactor;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-要因
|
* 检验任务-要因
|
||||||
@ -13,4 +17,5 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface QmsInspecFactorMapper extends BaseMapper<QmsInspecFactor> {
|
public interface QmsInspecFactorMapper extends BaseMapper<QmsInspecFactor> {
|
||||||
|
|
||||||
|
List<QmsInspecFactorDTO> selectAll(@Param("inspecDetailBo") String inspecDetailBo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,13 @@
|
|||||||
package com.foreverwin.iep.qms.mapper;
|
package com.foreverwin.iep.qms.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.foreverwin.iep.prd.entity.NcBasis;
|
||||||
|
import com.foreverwin.iep.qms.dto.QmsInspecResultNccodeDTO;
|
||||||
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
import com.foreverwin.iep.qms.entity.QmsInspecResultNccode;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检验任务-不合格代码
|
* 检验任务-不合格代码
|
||||||
@ -13,4 +18,7 @@ import org.apache.ibatis.annotations.Mapper;
|
|||||||
@Mapper
|
@Mapper
|
||||||
public interface QmsInspecResultNccodeMapper extends BaseMapper<QmsInspecResultNccode> {
|
public interface QmsInspecResultNccodeMapper extends BaseMapper<QmsInspecResultNccode> {
|
||||||
|
|
||||||
|
List<QmsInspecResultNccodeDTO> selectAll(@Param("inspecResultSid") String inspecResultSid);
|
||||||
|
|
||||||
|
List<NcBasis> selectNcByOperation(@Param("operationBo") String operationBo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,8 +27,10 @@
|
|||||||
<result property="qcItem" column="QC_ITEM"/>
|
<result property="qcItem" column="QC_ITEM"/>
|
||||||
<result property="qcItemDesc" column="QC_ITEM_DESC"/>
|
<result property="qcItemDesc" column="QC_ITEM_DESC"/>
|
||||||
<result property="itemType" column="ITEM_TYPE"/>
|
<result property="itemType" column="ITEM_TYPE"/>
|
||||||
|
<result property="controlMode" column="CONTROL_MODE"/>
|
||||||
<result property="samplePlan" column="SAMPLE_PLAN"/>
|
<result property="samplePlan" column="SAMPLE_PLAN"/>
|
||||||
<result property="samplePlanType" column="SAMPLE_PLAN_TYPE"/>
|
<result property="samplePlanType" column="SAMPLE_PLAN_TYPE"/>
|
||||||
|
<result property="areaInfo" column="AREA_INFO"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<select id="selectAll" resultMap="full">
|
<select id="selectAll" resultMap="full">
|
||||||
@ -44,4 +46,20 @@
|
|||||||
left join qms_sample_plan d on b.SAMPLE_PLAN_BO = d.HANDLE
|
left join qms_sample_plan d on b.SAMPLE_PLAN_BO = d.HANDLE
|
||||||
WHERE a.INSPEC_JOB_BO = #{inspecJobBo}
|
WHERE a.INSPEC_JOB_BO = #{inspecJobBo}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectDetail" resultMap="full">
|
||||||
|
select a.*,
|
||||||
|
c.QC_ITEM,
|
||||||
|
c.DESCRIPTION QC_ITEM_DESC,
|
||||||
|
c.ITEM_TYPE,
|
||||||
|
c.CONTROL_MODE,
|
||||||
|
d.SAMPLE_PLAN,
|
||||||
|
d.SAMPLE_PLAN_TYPE,
|
||||||
|
d.AREA_INFO
|
||||||
|
from qms_inspec_detail a
|
||||||
|
join qms_qc_plan_detail b on a.QC_PLAN_DETAIL_BO = b.HANDLE
|
||||||
|
join qms_qc_item c on b.QC_ITEM_BO = c.HANDLE
|
||||||
|
left join qms_sample_plan d on b.SAMPLE_PLAN_BO = d.HANDLE
|
||||||
|
WHERE a.HANDLE = #{inspecDetailBo}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -10,4 +10,15 @@
|
|||||||
<result property="factorBo" column="FACTOR_BO"/>
|
<result property="factorBo" column="FACTOR_BO"/>
|
||||||
<result property="value" column="VALUE"/>
|
<result property="value" column="VALUE"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
<resultMap id="full" type="com.foreverwin.iep.qms.dto.QmsInspecFactorDTO" extends="qmsInspecFactorMap">
|
||||||
|
<result property="factor" column="FACTOR"/>
|
||||||
|
<result property="description" column="DESCRIPTION"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectAll" resultMap="full">
|
||||||
|
select a.*, b.FACTOR, b.DESCRIPTION
|
||||||
|
from qms_inspec_factor a
|
||||||
|
join qms_factor b on a.FACTOR_BO = b.HANDLE
|
||||||
|
where a.INSPEC_DETAIL_BO = #{inspecDetailBo}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -10,4 +10,23 @@
|
|||||||
<result property="seq" column="SEQ"/>
|
<result property="seq" column="SEQ"/>
|
||||||
<result property="ncBasisBo" column="NC_BASIS_BO"/>
|
<result property="ncBasisBo" column="NC_BASIS_BO"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
<resultMap id="full" type="com.foreverwin.iep.qms.dto.QmsInspecResultNccodeDTO" extends="qmsInspecResultNccodeMap">
|
||||||
|
<result property="ncCode" column="NC_CODE"/>
|
||||||
|
<result property="description" column="DESCRIPTION"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectAll" resultMap="full">
|
||||||
|
select a.*, b.NC_CODE, b.DESCRIPTION
|
||||||
|
from qms_inspec_result_nccode a
|
||||||
|
join nc_basis b on a.NC_BASIS_BO = b.HANDLE
|
||||||
|
where a.INSPEC_RESULT_SID = #{inspecResultSid}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectNcByOperation" resultMap="com.foreverwin.iep.prd.mapper.NcBasisMapper.ncBasisMap">
|
||||||
|
select distinct c.HANDLE, c.NC_CODE, c.DESCRIPTION
|
||||||
|
from NC_GROUP_VALID_OPER a
|
||||||
|
join nc_group_member b on a.NC_GROUP_BO = b.NC_GROUP_BO
|
||||||
|
join nc_basis c on b.NC_CODE_OR_GROUP_GBO = c.HANDLE
|
||||||
|
where a.OPERATION_BO = #{operationBo}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user