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.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 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.RestController;
|
||||
|
||||
|
|
@ -14,6 +23,36 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
@RequestMapping("/issueTicket")
|
||||
public class QmsIssueTicketController extends BaseController {
|
||||
|
||||
@Resource
|
||||
private IQmsIssueTicketService issueTicketService;
|
||||
|
||||
@Resource
|
||||
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()
|
||||
.setId(item.getId())
|
||||
.setRecordId(record.getId())
|
||||
.setInspectionQty(request.getInspectionQty())
|
||||
.setQualifiedQty(item.getQualifiedQty())
|
||||
.setUnqualifiedQty(item.getUnqualifiedQty())
|
||||
.setRemark(item.getRemark())
|
||||
.setInspectionStandardItemContentId(item.getInspectionStandardItemContentId());
|
||||
allItemEntities.add(ditem);
|
||||
|
|
@ -833,7 +836,7 @@ public class IncomingInspectionTaskControllerService {
|
|||
.setItemId(ditem.getId())
|
||||
.setQualified(data.getQualified())
|
||||
.setMeasuredValue(data.getMeasuredValue())
|
||||
.setImages(imageIds);
|
||||
.setImageIds(imageIds);
|
||||
if (data.getId() == null) {
|
||||
insertDatas.add(ddata);
|
||||
} else {
|
||||
|
|
@ -1047,10 +1050,10 @@ public class IncomingInspectionTaskControllerService {
|
|||
dataVO.setItemId(data.getItemId());
|
||||
dataVO.setMeasuredValue(data.getMeasuredValue());
|
||||
dataVO.setQualified(data.getQualified());
|
||||
if (StrUtil.isNotBlank(data.getImages())) {
|
||||
if (StrUtil.isNotBlank(data.getImageIds())) {
|
||||
dataVO.setImages(
|
||||
fileUploadRecordService.lambdaQuery()
|
||||
.in(FileUploadRecord::getId, StrUtil.split(data.getImages(), ","))
|
||||
.in(FileUploadRecord::getId, StrUtil.split(data.getImageIds(), ","))
|
||||
.list()
|
||||
.stream()
|
||||
.map(file -> new FileUploadVO()
|
||||
|
|
@ -1067,4 +1070,8 @@ public class IncomingInspectionTaskControllerService {
|
|||
return vo;
|
||||
}).toList();
|
||||
}
|
||||
|
||||
public List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId) {
|
||||
return incomingInspectionTaskRecordItemService.getNonconformanceDataGroups(recordId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,172 @@
|
|||
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 jakarta.annotation.Resource;
|
||||
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
|
||||
* 质量问题工单 业务逻辑
|
||||
*/
|
||||
@Service
|
||||
@Component
|
||||
public class QmsIssueTicketControllerService {
|
||||
|
||||
@Resource
|
||||
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不能为空")
|
||||
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 Integer inspectionQty;
|
||||
|
||||
/**
|
||||
* 合格数量
|
||||
*/
|
||||
private Integer qualifiedQty;
|
||||
|
||||
/**
|
||||
* 不合格数量
|
||||
*/
|
||||
private Integer unqualifiedQty;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,5 +51,5 @@ public class QmsIncomingInspectionTaskRecordItemData {
|
|||
/**
|
||||
* 图片id列表,多个逗号分隔
|
||||
*/
|
||||
private String images;
|
||||
private String imageIds;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 来料检验任务检验记录子项 Mapper 接口
|
||||
|
|
@ -13,4 +16,5 @@ import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
|||
*/
|
||||
public interface QmsIncomingInspectionTaskRecordItemMapper extends BaseMapper<QmsIncomingInspectionTaskRecordItem> {
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 来料检验任务检验记录子项 服务类
|
||||
|
|
@ -13,4 +16,5 @@ import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
|||
*/
|
||||
public interface IQmsIncomingInspectionTaskRecordItemService extends IService<QmsIncomingInspectionTaskRecordItem> {
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
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.nflg.wms.repository.entity.QmsIssueTicket;
|
||||
|
||||
|
|
@ -7,4 +10,9 @@ import com.nflg.wms.repository.entity.QmsIssueTicket;
|
|||
* 质量问题工单 Service
|
||||
*/
|
||||
public interface IQmsIssueTicketService extends IService<QmsIssueTicket> {
|
||||
|
||||
/**
|
||||
* 分页查询质量问题工单列表
|
||||
*/
|
||||
PageData<QmsIssueTicketVO> search(QmsIssueTicketSearchQO request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
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.mapper.QmsIncomingInspectionTaskRecordItemMapper;
|
||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordItemService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 来料检验任务检验记录子项 服务实现类
|
||||
|
|
@ -17,4 +20,8 @@ import org.springframework.stereotype.Service;
|
|||
@Service
|
||||
public class QmsIncomingInspectionTaskRecordItemServiceImpl extends ServiceImpl<QmsIncomingInspectionTaskRecordItemMapper, QmsIncomingInspectionTaskRecordItem>
|
||||
implements IQmsIncomingInspectionTaskRecordItemService {
|
||||
@Override
|
||||
public List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId) {
|
||||
return baseMapper.getNonconformanceDataGroups(recordId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,23 @@
|
|||
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.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.mapper.QmsIssueTicketMapper;
|
||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 质量问题工单 ServiceImpl
|
||||
*/
|
||||
|
|
@ -13,4 +25,34 @@ import org.springframework.stereotype.Service;
|
|||
public class QmsIssueTicketServiceImpl
|
||||
extends ServiceImpl<QmsIssueTicketMapper, QmsIssueTicket>
|
||||
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.required_finish_time,
|
||||
t.is_overdue,
|
||||
t.related_task_no,
|
||||
t2.task_no as related_task_no,
|
||||
t.update_user_id,
|
||||
t.update_user_name,
|
||||
t.update_time
|
||||
FROM qms_incoming_inspection_task t
|
||||
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_incoming_inspection_task t2 ON t.related_task_id = t2.id
|
||||
<where>
|
||||
<if test="request.dataType != null">
|
||||
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">
|
||||
<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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue