Merge branch 'qms/develop' into qms/yf
# Conflicts: # nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketController.java # nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java
This commit is contained in:
commit
8f25bf27f2
|
|
@ -2,8 +2,17 @@ package com.nflg.qms.admin.controller;
|
||||||
|
|
||||||
import com.nflg.qms.admin.service.QmsIssueTicketControllerService;
|
import com.nflg.qms.admin.service.QmsIssueTicketControllerService;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketDetailVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketVO;
|
||||||
|
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||||
import com.nflg.wms.starter.BaseController;
|
import com.nflg.wms.starter.BaseController;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
|
@ -14,6 +23,36 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
@RequestMapping("/issueTicket")
|
@RequestMapping("/issueTicket")
|
||||||
public class QmsIssueTicketController extends BaseController {
|
public class QmsIssueTicketController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IQmsIssueTicketService issueTicketService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private QmsIssueTicketControllerService issueTicketControllerService;
|
private QmsIssueTicketControllerService issueTicketControllerService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增质量问题工单
|
||||||
|
* 工单编号自动生成,来源类型固定为2(巡检)
|
||||||
|
*/
|
||||||
|
@PostMapping("add")
|
||||||
|
public ApiResult<Void> add(@Valid @RequestBody QmsIssueTicketAddQO request) {
|
||||||
|
issueTicketControllerService.add(request);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询来料检测任务质量问题工单详情
|
||||||
|
* 含来料检测任务详情及来料检验任务检验记录子项样本列表
|
||||||
|
*/
|
||||||
|
@GetMapping("detail")
|
||||||
|
public ApiResult<QmsIssueTicketDetailVO> detail(@NotNull(message = "ID不能为空") Long id) {
|
||||||
|
return ApiResult.success(issueTicketControllerService.getDetail(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询质量问题工单列表
|
||||||
|
*/
|
||||||
|
@PostMapping("search")
|
||||||
|
public ApiResult<PageData<QmsIssueTicketVO>> search(@Valid @RequestBody QmsIssueTicketSearchQO request) {
|
||||||
|
return ApiResult.success(issueTicketService.search(request));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -799,6 +799,9 @@ public class IncomingInspectionTaskControllerService {
|
||||||
QmsIncomingInspectionTaskRecordItem ditem = new QmsIncomingInspectionTaskRecordItem()
|
QmsIncomingInspectionTaskRecordItem ditem = new QmsIncomingInspectionTaskRecordItem()
|
||||||
.setId(item.getId())
|
.setId(item.getId())
|
||||||
.setRecordId(record.getId())
|
.setRecordId(record.getId())
|
||||||
|
.setInspectionQty(request.getInspectionQty())
|
||||||
|
.setQualifiedQty(item.getQualifiedQty())
|
||||||
|
.setUnqualifiedQty(item.getUnqualifiedQty())
|
||||||
.setRemark(item.getRemark())
|
.setRemark(item.getRemark())
|
||||||
.setInspectionStandardItemContentId(item.getInspectionStandardItemContentId());
|
.setInspectionStandardItemContentId(item.getInspectionStandardItemContentId());
|
||||||
allItemEntities.add(ditem);
|
allItemEntities.add(ditem);
|
||||||
|
|
@ -833,7 +836,7 @@ public class IncomingInspectionTaskControllerService {
|
||||||
.setItemId(ditem.getId())
|
.setItemId(ditem.getId())
|
||||||
.setQualified(data.getQualified())
|
.setQualified(data.getQualified())
|
||||||
.setMeasuredValue(data.getMeasuredValue())
|
.setMeasuredValue(data.getMeasuredValue())
|
||||||
.setImages(imageIds);
|
.setImageIds(imageIds);
|
||||||
if (data.getId() == null) {
|
if (data.getId() == null) {
|
||||||
insertDatas.add(ddata);
|
insertDatas.add(ddata);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1047,10 +1050,10 @@ public class IncomingInspectionTaskControllerService {
|
||||||
dataVO.setItemId(data.getItemId());
|
dataVO.setItemId(data.getItemId());
|
||||||
dataVO.setMeasuredValue(data.getMeasuredValue());
|
dataVO.setMeasuredValue(data.getMeasuredValue());
|
||||||
dataVO.setQualified(data.getQualified());
|
dataVO.setQualified(data.getQualified());
|
||||||
if (StrUtil.isNotBlank(data.getImages())) {
|
if (StrUtil.isNotBlank(data.getImageIds())) {
|
||||||
dataVO.setImages(
|
dataVO.setImages(
|
||||||
fileUploadRecordService.lambdaQuery()
|
fileUploadRecordService.lambdaQuery()
|
||||||
.in(FileUploadRecord::getId, StrUtil.split(data.getImages(), ","))
|
.in(FileUploadRecord::getId, StrUtil.split(data.getImageIds(), ","))
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.map(file -> new FileUploadVO()
|
.map(file -> new FileUploadVO()
|
||||||
|
|
@ -1067,4 +1070,8 @@ public class IncomingInspectionTaskControllerService {
|
||||||
return vo;
|
return vo;
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId) {
|
||||||
|
return incomingInspectionTaskRecordItemService.getNonconformanceDataGroups(recordId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,172 @@
|
||||||
package com.nflg.qms.admin.service;
|
package com.nflg.qms.admin.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.nflg.wms.common.constant.STATE;
|
||||||
|
import com.nflg.wms.common.exception.NflgException;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketAddQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.FileUploadVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketDetailVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskRecordItemDetailVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskRecordVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||||
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
|
import com.nflg.wms.repository.entity.FileUploadRecord;
|
||||||
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord;
|
||||||
|
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||||
|
import com.nflg.wms.repository.service.IFileUploadRecordService;
|
||||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 质量问题工单 ControllerService
|
* 质量问题工单 ControllerService
|
||||||
|
* 质量问题工单 业务逻辑
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Component
|
||||||
public class QmsIssueTicketControllerService {
|
public class QmsIssueTicketControllerService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IQmsIssueTicketService issueTicketService;
|
private IQmsIssueTicketService issueTicketService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BasdeSerialNumberControllerService basdeSerialNumberControllerService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IFileUploadRecordService fileUploadRecordService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IncomingInspectionTaskControllerService incomingInspectionTaskControllerService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增质量问题工单
|
||||||
|
* 工单编号自动生成,来源类型固定为2(巡检),状态默认为0(待流转)
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void add(@Valid QmsIssueTicketAddQO request) {
|
||||||
|
Long userId = UserUtil.getUserId();
|
||||||
|
String userName = UserUtil.getUserName();
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
// 自动生成工单编号
|
||||||
|
String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(36);
|
||||||
|
|
||||||
|
QmsIssueTicket entity = new QmsIssueTicket()
|
||||||
|
.setSourceType((short) 2)
|
||||||
|
.setTicketNo(ticketNo)
|
||||||
|
.setTicketTitle(request.getTicketTitle())
|
||||||
|
.setProjectNo(request.getProjectNo())
|
||||||
|
.setIncidentType(request.getIncidentType())
|
||||||
|
.setExceptionCode(request.getExceptionCode())
|
||||||
|
.setUnqualifiedQty(request.getUnqualifiedQty())
|
||||||
|
.setIncidentLocation(request.getIncidentLocation())
|
||||||
|
.setIncidentDescription(request.getIncidentDescription())
|
||||||
|
.setIncidentReason(request.getIncidentReason())
|
||||||
|
.setIncidentConsequence(request.getIncidentConsequence())
|
||||||
|
.setImageIds(request.getImages() == null
|
||||||
|
? ""
|
||||||
|
: StrUtil.join(",", request.getImages().stream().map(FileUploadVO::getId).toList())
|
||||||
|
)
|
||||||
|
.setRemark(request.getRemark())
|
||||||
|
.setCreateUserId(userId)
|
||||||
|
.setCreateUserName(userName)
|
||||||
|
.setCreateTime(now)
|
||||||
|
.setUpdateUserId(userId)
|
||||||
|
.setUpdateUserName(userName)
|
||||||
|
.setUpdateTime(now);
|
||||||
|
|
||||||
|
issueTicketService.save(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询来料检测任务质量问题工单详情
|
||||||
|
* 包含图片文件信息、来料检测任务详情、检验记录(含子项和样本数据)
|
||||||
|
*/
|
||||||
|
public QmsIssueTicketDetailVO getDetail(Long id) {
|
||||||
|
QmsIssueTicket entity = issueTicketService.getById(id);
|
||||||
|
if (Objects.isNull(entity)) {
|
||||||
|
throw new NflgException(STATE.BusinessError, "质量问题工单不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
QmsIssueTicketDetailVO vo = BeanUtil.copyProperties(entity, QmsIssueTicketDetailVO.class);
|
||||||
|
|
||||||
|
// 解析图片ID列表并查询文件信息
|
||||||
|
if (StrUtil.isNotBlank(entity.getImageIds())) {
|
||||||
|
List<Long> imageIdList = Arrays.stream(entity.getImageIds().split(","))
|
||||||
|
.filter(StrUtil::isNotBlank)
|
||||||
|
.map(Long::valueOf)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isNotEmpty(imageIdList)) {
|
||||||
|
List<FileUploadRecord> records = fileUploadRecordService.lambdaQuery()
|
||||||
|
.in(FileUploadRecord::getId, imageIdList)
|
||||||
|
.list();
|
||||||
|
vo.setImages(records.stream()
|
||||||
|
.map(file -> new FileUploadVO()
|
||||||
|
.setId(file.getId())
|
||||||
|
.setFileName(file.getFileName())
|
||||||
|
.setUrl(file.getUrl())
|
||||||
|
)
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询关联的来料检测任务详情及检验记录
|
||||||
|
if (Objects.nonNull(entity.getSourceId())) {
|
||||||
|
// 来料检测任务详情
|
||||||
|
QmsIncomingInspectionTaskVO taskDetail = incomingInspectionTaskControllerService.getDetail(entity.getSourceId());
|
||||||
|
vo.setTaskDetail(taskDetail);
|
||||||
|
|
||||||
|
List<QmsIssueTicketInspectionRecordItemVO> datas = incomingInspectionTaskControllerService.getNonconformanceDataGroups(entity.getSourceId());
|
||||||
|
List<QmsIssueTicketInspectionRecordItemVO> records = new ArrayList<>();
|
||||||
|
datas.forEach(record -> {
|
||||||
|
QmsIssueTicketInspectionRecordItemVO r = records.stream()
|
||||||
|
.filter(item -> item.getId().equals(record.getId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElseGet(() -> {
|
||||||
|
QmsIssueTicketInspectionRecordItemVO r1 = new QmsIssueTicketInspectionRecordItemVO()
|
||||||
|
.setId(record.getId())
|
||||||
|
.setName(record.getName())
|
||||||
|
.setLegend(record.getLegend())
|
||||||
|
.setUnqualifiedQty(0)
|
||||||
|
.setImageIds(record.getImageIds());
|
||||||
|
records.add(r1);
|
||||||
|
return r1;
|
||||||
|
});
|
||||||
|
r.setUnqualifiedQty(r.getUnqualifiedQty() + record.getUnqualifiedQty());
|
||||||
|
r.setImageIds(StrUtil.join(",", r.getImageIds(), record.getImageIds()));
|
||||||
|
});
|
||||||
|
records.stream()
|
||||||
|
.filter(record -> StrUtil.isNotBlank(record.getImageIds()))
|
||||||
|
.forEach(record -> {
|
||||||
|
record.setImages(fileUploadRecordService.lambdaQuery()
|
||||||
|
.in(FileUploadRecord::getId, StrUtil.split(record.getImageIds(), ","))
|
||||||
|
.list()
|
||||||
|
.stream()
|
||||||
|
.map(file -> new FileUploadVO()
|
||||||
|
.setId(file.getId())
|
||||||
|
.setFileName(file.getFileName())
|
||||||
|
.setUrl(file.getUrl())
|
||||||
|
)
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
});
|
||||||
|
vo.setRecords(records);
|
||||||
|
}
|
||||||
|
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,18 @@ public class QmsIncomingInspectionTaskTodoCheckSubmitItemQO {
|
||||||
@NotNull(message = "检验标准项内容ID不能为空")
|
@NotNull(message = "检验标准项内容ID不能为空")
|
||||||
private Long inspectionStandardItemContentId;
|
private Long inspectionStandardItemContentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合格数量
|
||||||
|
*/
|
||||||
|
@NotNull(message = "合格数量不能为空")
|
||||||
|
private Integer qualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
@NotNull(message = "不合格数量不能为空")
|
||||||
|
private Integer unqualifiedQty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.vo.FileUploadVO;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质量问题工单 新增参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsIssueTicketAddQO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单标题
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "工单标题不能为空")
|
||||||
|
private String ticketTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程编号
|
||||||
|
*/
|
||||||
|
private String projectNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事故类型:0=一般,1=较严重,2=严重
|
||||||
|
*/
|
||||||
|
@NotNull(message = "事故类型不能为空")
|
||||||
|
private Short incidentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常代码
|
||||||
|
*/
|
||||||
|
private String exceptionCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private Integer unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件地点
|
||||||
|
*/
|
||||||
|
private String incidentLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件描述
|
||||||
|
*/
|
||||||
|
private String incidentDescription;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件原因
|
||||||
|
*/
|
||||||
|
private String incidentReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件后果
|
||||||
|
*/
|
||||||
|
private String incidentConsequence;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片列表
|
||||||
|
*/
|
||||||
|
private List<FileUploadVO> images;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质量问题工单 列表查询参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class QmsIssueTicketSearchQO extends PageQO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单编号(模糊匹配)
|
||||||
|
*/
|
||||||
|
private String ticketNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单标题(模糊匹配)
|
||||||
|
*/
|
||||||
|
private String ticketTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程编号(模糊匹配)
|
||||||
|
*/
|
||||||
|
private String projectNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常代码(精确匹配)
|
||||||
|
*/
|
||||||
|
private String exceptionCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单类型/来源类型:0=IQC检测任务,1=PDI检测任务,2=巡检
|
||||||
|
*/
|
||||||
|
private Short ticketType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单状态:0=待流转,1=处理中,2=已完成
|
||||||
|
*/
|
||||||
|
private Short status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事故类型:0=一般,1=较严重,2=严重
|
||||||
|
*/
|
||||||
|
private Short incidentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间开始日期
|
||||||
|
*/
|
||||||
|
private LocalDate createTimeStart;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间结束日期
|
||||||
|
*/
|
||||||
|
private LocalDate createTimeEnd;
|
||||||
|
}
|
||||||
|
|
@ -61,5 +61,5 @@ public class QmsIncomingInspectionTaskRecordVO {
|
||||||
/**
|
/**
|
||||||
* 检验记录项列表
|
* 检验记录项列表
|
||||||
*/
|
*/
|
||||||
private List<QmsIncomingInspectionTaskRecordItemVO> items;
|
private List<QmsIssueTicketInspectionRecordItemVO> items;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,140 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质量问题工单 详情视图对象
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsIssueTicketDetailVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源类型:0=IQC检测任务,1=PDI检测任务,2=巡检
|
||||||
|
*/
|
||||||
|
private Short sourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源ID,关联对应检测任务表
|
||||||
|
*/
|
||||||
|
private Long sourceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单编号
|
||||||
|
*/
|
||||||
|
private String ticketNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单标题
|
||||||
|
*/
|
||||||
|
private String ticketTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程编号
|
||||||
|
*/
|
||||||
|
private String projectNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事故类型:0=一般,1=较严重,2=严重
|
||||||
|
*/
|
||||||
|
private Short incidentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常代码
|
||||||
|
*/
|
||||||
|
private String exceptionCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private Integer unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件地点
|
||||||
|
*/
|
||||||
|
private String incidentLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件描述
|
||||||
|
*/
|
||||||
|
private String incidentDescription;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件原因
|
||||||
|
*/
|
||||||
|
private String incidentReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件后果
|
||||||
|
*/
|
||||||
|
private String incidentConsequence;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片列表
|
||||||
|
*/
|
||||||
|
private List<FileUploadVO> images;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态:0=待流转,1=处理中,2=已完成
|
||||||
|
*/
|
||||||
|
private Short status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批状态:0=通过,1=驳回,2=重检,3=报废,4=维修,5=挑选使用,6=让渡使用
|
||||||
|
*/
|
||||||
|
private Short approvalStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批意见
|
||||||
|
*/
|
||||||
|
private String approvalOpinion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批人姓名
|
||||||
|
*/
|
||||||
|
private String approvalUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime approvalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
private String createUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人姓名
|
||||||
|
*/
|
||||||
|
private String updateUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来料检测任务详情
|
||||||
|
*/
|
||||||
|
private QmsIncomingInspectionTaskVO taskDetail;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来料检验任务检验记录不合格列表
|
||||||
|
*/
|
||||||
|
private List<QmsIssueTicketInspectionRecordItemVO> records;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质量问题工单 - 来料检验记录子项及样本合并VO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class QmsIssueTicketInspectionRecordItemVO {
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测项名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图例
|
||||||
|
*/
|
||||||
|
private String legend;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private Integer unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片列表
|
||||||
|
*/
|
||||||
|
@JsonIgnore
|
||||||
|
private String imageIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 图片列表
|
||||||
|
*/
|
||||||
|
private List<FileUploadVO> images=new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质量问题工单 列表视图对象
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class QmsIssueTicketVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源类型:0=IQC检测任务,1=PDI检测任务,2=巡检
|
||||||
|
*/
|
||||||
|
private Short sourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 来源ID
|
||||||
|
*/
|
||||||
|
private Long sourceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单编号
|
||||||
|
*/
|
||||||
|
private String ticketNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工单标题
|
||||||
|
*/
|
||||||
|
private String ticketTitle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程编号
|
||||||
|
*/
|
||||||
|
private String projectNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事故类型:0=一般,1=较严重,2=严重
|
||||||
|
*/
|
||||||
|
private Short incidentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 异常代码
|
||||||
|
*/
|
||||||
|
private String exceptionCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private Integer unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 事件地点
|
||||||
|
*/
|
||||||
|
private String incidentLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态:0=待流转,1=处理中,2=已完成
|
||||||
|
*/
|
||||||
|
private Short status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批状态:0=通过,1=驳回,2=重检,3=报废,4=维修,5=挑选使用,6=让渡使用
|
||||||
|
*/
|
||||||
|
private Short approvalStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批人姓名
|
||||||
|
*/
|
||||||
|
private String approvalUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime approvalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
private String createUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新人姓名
|
||||||
|
*/
|
||||||
|
private String updateUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
||||||
|
|
@ -44,4 +44,19 @@ public class QmsIncomingInspectionTaskRecordItem implements Serializable {
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 样本数量
|
||||||
|
*/
|
||||||
|
private Integer inspectionQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合格数量
|
||||||
|
*/
|
||||||
|
private Integer qualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private Integer unqualifiedQty;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,5 +51,5 @@ public class QmsIncomingInspectionTaskRecordItemData {
|
||||||
/**
|
/**
|
||||||
* 图片id列表,多个逗号分隔
|
* 图片id列表,多个逗号分隔
|
||||||
*/
|
*/
|
||||||
private String images;
|
private String imageIds;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
package com.nflg.wms.repository.mapper;
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 来料检验任务检验记录子项 Mapper 接口
|
* 来料检验任务检验记录子项 Mapper 接口
|
||||||
|
|
@ -13,4 +16,5 @@ import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||||
*/
|
*/
|
||||||
public interface QmsIncomingInspectionTaskRecordItemMapper extends BaseMapper<QmsIncomingInspectionTaskRecordItem> {
|
public interface QmsIncomingInspectionTaskRecordItemMapper extends BaseMapper<QmsIncomingInspectionTaskRecordItem> {
|
||||||
|
|
||||||
|
List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
package com.nflg.wms.repository.service;
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 来料检验任务检验记录子项 服务类
|
* 来料检验任务检验记录子项 服务类
|
||||||
|
|
@ -13,4 +16,5 @@ import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||||
*/
|
*/
|
||||||
public interface IQmsIncomingInspectionTaskRecordItemService extends IService<QmsIncomingInspectionTaskRecordItem> {
|
public interface IQmsIncomingInspectionTaskRecordItemService extends IService<QmsIncomingInspectionTaskRecordItem> {
|
||||||
|
|
||||||
|
List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package com.nflg.wms.repository.service;
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketVO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||||
|
|
||||||
|
|
@ -7,4 +10,9 @@ import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||||
* 质量问题工单 Service
|
* 质量问题工单 Service
|
||||||
*/
|
*/
|
||||||
public interface IQmsIssueTicketService extends IService<QmsIssueTicket> {
|
public interface IQmsIssueTicketService extends IService<QmsIssueTicket> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询质量问题工单列表
|
||||||
|
*/
|
||||||
|
PageData<QmsIssueTicketVO> search(QmsIssueTicketSearchQO request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
package com.nflg.wms.repository.service.impl;
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||||
import com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskRecordItemMapper;
|
import com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskRecordItemMapper;
|
||||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordItemService;
|
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordItemService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 来料检验任务检验记录子项 服务实现类
|
* 来料检验任务检验记录子项 服务实现类
|
||||||
|
|
@ -17,4 +20,8 @@ import org.springframework.stereotype.Service;
|
||||||
@Service
|
@Service
|
||||||
public class QmsIncomingInspectionTaskRecordItemServiceImpl extends ServiceImpl<QmsIncomingInspectionTaskRecordItemMapper, QmsIncomingInspectionTaskRecordItem>
|
public class QmsIncomingInspectionTaskRecordItemServiceImpl extends ServiceImpl<QmsIncomingInspectionTaskRecordItemMapper, QmsIncomingInspectionTaskRecordItem>
|
||||||
implements IQmsIncomingInspectionTaskRecordItemService {
|
implements IQmsIncomingInspectionTaskRecordItemService {
|
||||||
|
@Override
|
||||||
|
public List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId) {
|
||||||
|
return baseMapper.getNonconformanceDataGroups(recordId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,23 @@
|
||||||
package com.nflg.wms.repository.service.impl;
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
|
import com.nflg.wms.common.pojo.qo.QmsIssueTicketSearchQO;
|
||||||
|
import com.nflg.wms.common.pojo.vo.QmsIssueTicketVO;
|
||||||
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||||
import com.nflg.wms.repository.mapper.QmsIssueTicketMapper;
|
import com.nflg.wms.repository.mapper.QmsIssueTicketMapper;
|
||||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 质量问题工单 ServiceImpl
|
* 质量问题工单 ServiceImpl
|
||||||
*/
|
*/
|
||||||
|
|
@ -13,4 +25,34 @@ import org.springframework.stereotype.Service;
|
||||||
public class QmsIssueTicketServiceImpl
|
public class QmsIssueTicketServiceImpl
|
||||||
extends ServiceImpl<QmsIssueTicketMapper, QmsIssueTicket>
|
extends ServiceImpl<QmsIssueTicketMapper, QmsIssueTicket>
|
||||||
implements IQmsIssueTicketService {
|
implements IQmsIssueTicketService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageData<QmsIssueTicketVO> search(QmsIssueTicketSearchQO request) {
|
||||||
|
Page<QmsIssueTicket> page = new Page<>(request.getPage(), request.getPageSize());
|
||||||
|
|
||||||
|
var query = lambdaQuery()
|
||||||
|
.like(StrUtil.isNotBlank(request.getTicketNo()), QmsIssueTicket::getTicketNo, request.getTicketNo())
|
||||||
|
.like(StrUtil.isNotBlank(request.getTicketTitle()), QmsIssueTicket::getTicketTitle, request.getTicketTitle())
|
||||||
|
.like(StrUtil.isNotBlank(request.getProjectNo()), QmsIssueTicket::getProjectNo, request.getProjectNo())
|
||||||
|
.eq(StrUtil.isNotBlank(request.getExceptionCode()), QmsIssueTicket::getExceptionCode, request.getExceptionCode())
|
||||||
|
.eq(request.getTicketType() != null, QmsIssueTicket::getSourceType, request.getTicketType())
|
||||||
|
.eq(request.getStatus() != null, QmsIssueTicket::getStatus, request.getStatus())
|
||||||
|
.eq(request.getIncidentType() != null, QmsIssueTicket::getIncidentType, request.getIncidentType())
|
||||||
|
.ge(request.getCreateTimeStart() != null, QmsIssueTicket::getCreateTime, request.getCreateTimeStart().atStartOfDay())
|
||||||
|
.le(request.getCreateTimeEnd() != null, QmsIssueTicket::getCreateTime, request.getCreateTimeEnd().atTime(LocalTime.MAX))
|
||||||
|
.orderByDesc(QmsIssueTicket::getCreateTime);
|
||||||
|
|
||||||
|
IPage<QmsIssueTicket> result = query.page(page);
|
||||||
|
|
||||||
|
List<QmsIssueTicketVO> voList = result.getRecords().stream()
|
||||||
|
.map(entity -> BeanUtil.copyProperties(entity, QmsIssueTicketVO.class))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
PageData<QmsIssueTicketVO> pageData = new PageData<>();
|
||||||
|
pageData.setPage((int) result.getCurrent());
|
||||||
|
pageData.setPageSize((int) result.getSize());
|
||||||
|
pageData.setTotal((int) result.getTotal());
|
||||||
|
pageData.setItems(voList);
|
||||||
|
return pageData;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,14 @@
|
||||||
t.inspection_finish_time,
|
t.inspection_finish_time,
|
||||||
t.required_finish_time,
|
t.required_finish_time,
|
||||||
t.is_overdue,
|
t.is_overdue,
|
||||||
t.related_task_no,
|
t2.task_no as related_task_no,
|
||||||
t.update_user_id,
|
t.update_user_id,
|
||||||
t.update_user_name,
|
t.update_user_name,
|
||||||
t.update_time
|
t.update_time
|
||||||
FROM qms_incoming_inspection_task t
|
FROM qms_incoming_inspection_task t
|
||||||
LEFT JOIN qms_qc_material m ON t.material_id = m.id
|
LEFT JOIN qms_qc_material m ON t.material_id = m.id
|
||||||
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
|
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
|
||||||
|
LEFT JOIN qms_incoming_inspection_task t2 ON t.related_task_id = t2.id
|
||||||
<where>
|
<where>
|
||||||
<if test="request.dataType != null">
|
<if test="request.dataType != null">
|
||||||
AND t.data_type = #{request.dataType}
|
AND t.data_type = #{request.dataType}
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,11 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskRecordItemMapper">
|
<mapper namespace="com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskRecordItemMapper">
|
||||||
|
|
||||||
|
<select id="getNonconformanceDataGroups"
|
||||||
|
resultType="com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO">
|
||||||
|
SELECT isic."id",CASE WHEN isi.item_type=0 THEN isi.name ELSE isic."name" END,isic.legend,iitri.unqualified_qty
|
||||||
|
FROM qms_incoming_inspection_task_record_item iitri
|
||||||
|
INNER JOIN qms_inspection_standard_item_content isic ON iitri.inspection_standard_item_content_id=isic."id"
|
||||||
|
INNER JOIN qms_inspection_standard_item isi ON isic.inspection_standard_item_id=isi."id"
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue