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:
funny 2026-04-27 15:49:40 +08:00
commit 8f25bf27f2
19 changed files with 725 additions and 6 deletions

View File

@ -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));
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -18,6 +18,18 @@ public class QmsIncomingInspectionTaskTodoCheckSubmitItemQO {
@NotNull(message = "检验标准项内容ID不能为空")
private Long inspectionStandardItemContentId;
/**
* 合格数量
*/
@NotNull(message = "合格数量不能为空")
private Integer qualifiedQty;
/**
* 不合格数量
*/
@NotNull(message = "不合格数量不能为空")
private Integer unqualifiedQty;
/**
* 备注
*/

View File

@ -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;
}

View File

@ -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;
}

View File

@ -61,5 +61,5 @@ public class QmsIncomingInspectionTaskRecordVO {
/**
* 检验记录项列表
*/
private List<QmsIncomingInspectionTaskRecordItemVO> items;
private List<QmsIssueTicketInspectionRecordItemVO> items;
}

View File

@ -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;
}

View File

@ -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<>();
}

View File

@ -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;
}

View File

@ -44,4 +44,19 @@ public class QmsIncomingInspectionTaskRecordItem implements Serializable {
* 备注
*/
private String remark;
/**
* 样本数量
*/
private Integer inspectionQty;
/**
* 合格数量
*/
private Integer qualifiedQty;
/**
* 不合格数量
*/
private Integer unqualifiedQty;
}

View File

@ -51,5 +51,5 @@ public class QmsIncomingInspectionTaskRecordItemData {
/**
* 图片id列表多个逗号分隔
*/
private String images;
private String imageIds;
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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}

View File

@ -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>