Compare commits
No commits in common. "bb80178e2bada36de07bf9917848a37eea36225f" and "93924b741aa5f5756edf6c0a0b810d363f9c7a7f" have entirely different histories.
bb80178e2b
...
93924b741a
|
|
@ -1,24 +0,0 @@
|
|||
package com.nflg.qms.admin.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@Configuration
|
||||
@EnableAsync
|
||||
public class AsyncConfig {
|
||||
|
||||
@Bean("ticketTaskExecutor")
|
||||
public Executor eventTaskExecutor() {
|
||||
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||||
executor.setCorePoolSize(5);
|
||||
executor.setMaxPoolSize(10);
|
||||
executor.setQueueCapacity(100);
|
||||
executor.setThreadNamePrefix("ticket-async-");
|
||||
executor.initialize();
|
||||
return executor;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +1,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.QmsIncomingInspectionTaskNonconformanceSearchQO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskNonconformanceVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.repository.entity.User;
|
||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskNonconformanceService;
|
||||
import com.nflg.wms.repository.service.IUserService;
|
||||
import com.nflg.wms.starter.BaseController;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 来料检验任务不合格管理
|
||||
|
|
@ -24,30 +23,11 @@ public class QmsIncomingInspectionTaskNonconformanceController extends BaseContr
|
|||
@Resource
|
||||
private IQmsIncomingInspectionTaskNonconformanceService nonconformanceService;
|
||||
|
||||
@Resource
|
||||
private IUserService userService;
|
||||
|
||||
@Resource
|
||||
private QmsIssueTicketControllerService issueTicketControllerService;
|
||||
|
||||
/**
|
||||
* 分页查询来料检验任务不合格管理列表
|
||||
*/
|
||||
@PostMapping("search")
|
||||
public ApiResult<PageData<QmsIncomingInspectionTaskNonconformanceVO>> search(@Valid @RequestBody QmsIncomingInspectionTaskNonconformanceSearchQO request) {
|
||||
User user = userService.getById(UserUtil.getUserId());
|
||||
request.setPurchaseGroup(user.getPurchasingGroup());
|
||||
request.setIsWarehouseManager(UserUtil.getRoles().contains("仓库管理员"));
|
||||
return ApiResult.success(nonconformanceService.search(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起工单:通过来料检测任务ID创建IQC检测任务类型质量问题工单
|
||||
* 工单编号自动生成,来源类型固定为0(IQC检测任务)
|
||||
*/
|
||||
@PostMapping("initiate")
|
||||
public ApiResult<Void> initiate(@RequestParam Long taskId) {
|
||||
issueTicketControllerService.initiate(taskId);
|
||||
return ApiResult.success();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
package com.nflg.qms.admin.event;
|
||||
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
/**
|
||||
* 来料检验任务完成事件
|
||||
*/
|
||||
public class IncomingInspectionTaskFinishEvent extends ApplicationEvent {
|
||||
|
||||
private final Long taskId;
|
||||
private final Boolean inspectionResult;
|
||||
private final String traceId;
|
||||
|
||||
public IncomingInspectionTaskFinishEvent(Object source, Long taskId, Boolean inspectionResult, String traceId) {
|
||||
super(source);
|
||||
this.taskId = taskId;
|
||||
this.inspectionResult = inspectionResult;
|
||||
this.traceId = traceId;
|
||||
}
|
||||
|
||||
public Long getTaskId() {
|
||||
return taskId;
|
||||
}
|
||||
|
||||
public Boolean getInspectionResult() {
|
||||
return inspectionResult;
|
||||
}
|
||||
|
||||
public String getTraceId() {
|
||||
return traceId;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
package com.nflg.qms.admin.listener;
|
||||
|
||||
import com.nflg.qms.admin.event.IncomingInspectionTaskFinishEvent;
|
||||
import com.nflg.qms.admin.service.QmsIssueTicketControllerService;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class TicketEventListener {
|
||||
|
||||
@Resource
|
||||
private QmsIssueTicketControllerService issueTicketControllerService;
|
||||
|
||||
@Async("ticketTaskExecutor")
|
||||
@EventListener
|
||||
public void handleIncomingInspectionTaskFinishEvent(IncomingInspectionTaskFinishEvent event) {
|
||||
MDC.put("traceId", event.getTraceId());
|
||||
try {
|
||||
log.info("检验结果:{}", event.getInspectionResult() ? "合格" : "不合格");
|
||||
if (event.getInspectionResult()) {
|
||||
log.info("创建异常处理工单");
|
||||
issueTicketControllerService.initiate(event.getTaskId());
|
||||
}
|
||||
} finally {
|
||||
MDC.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package com.nflg.qms.admin.publisher;
|
||||
|
||||
import com.nflg.qms.admin.event.IncomingInspectionTaskFinishEvent;
|
||||
import com.nflg.wms.common.constant.Constant;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class TicketEventPublisher {
|
||||
|
||||
@Resource
|
||||
private ApplicationEventPublisher eventPublisher;
|
||||
|
||||
public void publishIncomingInspectionTaskFinishEvent(Long taskId, Boolean inspectionResult) {
|
||||
IncomingInspectionTaskFinishEvent event = new IncomingInspectionTaskFinishEvent(
|
||||
this, taskId, inspectionResult, MDC.get(Constant.TRACE_ID));
|
||||
eventPublisher.publishEvent(event);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,8 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.nflg.qms.admin.publisher.TicketEventPublisher;
|
||||
import com.nflg.wms.common.constant.Constant;
|
||||
import com.nflg.wms.common.constant.STATE;
|
||||
import com.nflg.wms.common.exception.NflgException;
|
||||
import com.nflg.wms.common.pojo.qo.*;
|
||||
|
|
@ -18,9 +16,7 @@ import jakarta.annotation.Resource;
|
|||
import jakarta.validation.Valid;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -105,9 +101,6 @@ public class IncomingInspectionTaskControllerService {
|
|||
@Resource
|
||||
private IFileUploadRecordService fileUploadRecordService;
|
||||
|
||||
@Resource
|
||||
private TicketEventPublisher publisher;
|
||||
|
||||
/**
|
||||
* 来料检验申请(对外接口)
|
||||
* 业务规则:
|
||||
|
|
@ -191,7 +184,6 @@ public class IncomingInspectionTaskControllerService {
|
|||
.setDeliveryOrderLine(request.getDeliveryOrderLine())
|
||||
.setPurchaseOrderNo(request.getPurchaseOrderNo())
|
||||
.setPurchaseOrderLine(request.getPurchaseOrderLine())
|
||||
.setPurchaseGroup(request.getPurchaseGroup())
|
||||
.setFactory(request.getFactory())
|
||||
.setInspectionType(request.getInspectionType())
|
||||
.setDataType(0)
|
||||
|
|
@ -952,7 +944,9 @@ public class IncomingInspectionTaskControllerService {
|
|||
|
||||
updateWrapper.update();
|
||||
|
||||
publisher.publishIncomingInspectionTaskFinishEvent(task.getId(), request.getQualified());
|
||||
if (!request.getQualified()) {
|
||||
//TODO
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1028,7 +1022,6 @@ public class IncomingInspectionTaskControllerService {
|
|||
QmsInspectionStandardItemContent content = finalContentMap.get(item.getInspectionStandardItemContentId());
|
||||
if (content != null) {
|
||||
vo.setTestStandard(content.getTestStandard());
|
||||
vo.setLegend(content.getLegend());
|
||||
vo.setJudgmentType(content.getJudgmentType());
|
||||
|
||||
// 根据检验标准项类型设置检测项名称
|
||||
|
|
@ -1081,8 +1074,4 @@ public class IncomingInspectionTaskControllerService {
|
|||
public List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId) {
|
||||
return incomingInspectionTaskRecordItemService.getNonconformanceDataGroups(recordId);
|
||||
}
|
||||
|
||||
public List<QmsIssueTicketInspectionRecordItemSimpleVO> getUnqualifiedRecordItems(Long taskId) {
|
||||
return incomingInspectionTaskRecordItemService.getUnqualifiedRecordItems(taskId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,12 +6,16 @@ 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.*;
|
||||
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.common.util.VUtil;
|
||||
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.entity.VUser;
|
||||
import com.nflg.wms.repository.service.IFileUploadRecordService;
|
||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
||||
import jakarta.annotation.Resource;
|
||||
|
|
@ -21,8 +25,10 @@ import org.springframework.stereotype.Component;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -56,7 +62,7 @@ public class QmsIssueTicketControllerService {
|
|||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 自动生成工单编号
|
||||
String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(37);
|
||||
String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(36);
|
||||
|
||||
QmsIssueTicket entity = new QmsIssueTicket()
|
||||
.setSourceType((short) 2)
|
||||
|
|
@ -85,60 +91,6 @@ public class QmsIssueTicketControllerService {
|
|||
issueTicketService.save(entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过来料检测任务ID发起IQC检测任务类型质量问题工单
|
||||
* 工单编号自动生成,来源类型固定为0(IQC检测任务),状态默认为0(待流转)
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void initiate(Long taskId) {
|
||||
// 校验任务是否存在
|
||||
QmsIncomingInspectionTaskVO detail = incomingInspectionTaskControllerService.getDetail(taskId);
|
||||
VUtil.trueThrowBusinessError(issueTicketService.lambdaQuery().eq(QmsIssueTicket::getProjectNo, detail.getTaskNo()).exists())
|
||||
.throwMessage("该任务已生成质量问题工单");
|
||||
|
||||
Long userId = UserUtil.getUserId();
|
||||
String userName = UserUtil.getUserName();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
|
||||
// 自动生成工单编号
|
||||
String ticketNo = basdeSerialNumberControllerService.generateSerialNumber(36);
|
||||
|
||||
QmsIssueTicket entity = new QmsIssueTicket()
|
||||
.setSourceType((short) 0)
|
||||
.setSourceId(taskId)
|
||||
.setTicketNo(ticketNo)
|
||||
.setTicketTitle(generateTicketTitle(detail.getSupplierName(), detail.getMaterialNo()
|
||||
, detail.getPurchaseOrderNo(), detail.getDeliveryOrderNo(), detail.getStandardVersion()))
|
||||
.setProjectNo(detail.getTaskNo())
|
||||
.setUnqualifiedQty(detail.getUnqualifiedQty())
|
||||
.setCreateUserId(userId)
|
||||
.setCreateUserName(userName)
|
||||
.setCreateTime(now)
|
||||
.setUpdateUserId(userId)
|
||||
.setUpdateUserName(userName)
|
||||
.setUpdateTime(now);
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemSimpleVO> unqualifiedRecordItems = incomingInspectionTaskControllerService.getUnqualifiedRecordItems(taskId);
|
||||
Map<String, List<QmsIssueTicketInspectionRecordItemSimpleVO>> unqualifiedRecordItemsMap = unqualifiedRecordItems.stream()
|
||||
.collect(Collectors.groupingBy(QmsIssueTicketInspectionRecordItemSimpleVO::getTestStandard));
|
||||
unqualifiedRecordItemsMap.forEach((testStandard, items) -> {
|
||||
AtomicReference<Integer> index = new AtomicReference<>(1);
|
||||
entity.setIncidentDescription(entity.getIncidentDescription()
|
||||
+ "检测标准:" + testStandard + "\n"
|
||||
+ items.stream()
|
||||
.map(item -> index.getAndSet(index.get() + 1) + ". " + item.getRemark() + "\n")
|
||||
.collect(Collectors.joining())
|
||||
+ "\n"
|
||||
);
|
||||
});
|
||||
|
||||
issueTicketService.save(entity);
|
||||
}
|
||||
|
||||
private String generateTicketTitle(Object... args) {
|
||||
return StrUtil.join("-", args);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询来料检测任务质量问题工单详情
|
||||
* 包含图片文件信息、来料检测任务详情、检验记录(含子项和样本数据)
|
||||
|
|
|
|||
|
|
@ -71,10 +71,4 @@ public class ExternalIncomingInspectionApplyQO {
|
|||
@NotNull(message = "检验数量不能为空")
|
||||
@Min(value = 1, message = "检验数量必须大于0")
|
||||
private Integer inspectionQty;
|
||||
|
||||
/**
|
||||
* 采购组
|
||||
*/
|
||||
@NotBlank(message = "采购组不能为空")
|
||||
private String purchaseGroup;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package com.nflg.wms.common.pojo.qo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -103,16 +101,4 @@ public class QmsIncomingInspectionTaskNonconformanceSearchQO extends PageQO {
|
|||
* 不合格处理状态:0=待办,1=处理中,2=处理完成
|
||||
*/
|
||||
private Short nonconformanceStatus;
|
||||
|
||||
/**
|
||||
* 采购组
|
||||
*/
|
||||
@JsonIgnore
|
||||
private String purchaseGroup;
|
||||
|
||||
/**
|
||||
* 是否仓库管理员
|
||||
*/
|
||||
@JsonIgnore
|
||||
private Boolean isWarehouseManager;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ import java.time.LocalDateTime;
|
|||
@Data
|
||||
public class QmsIncomingInspectionTaskNonconformanceVO {
|
||||
|
||||
/**
|
||||
* 不合格管理记录ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 来料检验任务ID
|
||||
*/
|
||||
|
|
@ -20,16 +25,6 @@ public class QmsIncomingInspectionTaskNonconformanceVO {
|
|||
*/
|
||||
private String taskNo;
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
*/
|
||||
private String ticketNo;
|
||||
|
||||
/**
|
||||
* 工单标题
|
||||
*/
|
||||
private String ticketTitle;
|
||||
|
||||
/**
|
||||
* 物料id
|
||||
*/
|
||||
|
|
@ -151,7 +146,32 @@ public class QmsIncomingInspectionTaskNonconformanceVO {
|
|||
private Boolean isOverdue;
|
||||
|
||||
/**
|
||||
* 流程状态:0=未发起,1=处理中,2=已完成
|
||||
* 不合格处理状态:0=待办,1=处理中,2=处理完成
|
||||
*/
|
||||
private Short status;
|
||||
private Short nonconformanceStatus;
|
||||
|
||||
/**
|
||||
* 不合格处理状态名称
|
||||
*/
|
||||
private String nonconformanceStatusName;
|
||||
|
||||
/**
|
||||
* 不合格记录创建人ID
|
||||
*/
|
||||
private Long nonconformanceCreateUserId;
|
||||
|
||||
/**
|
||||
* 不合格记录创建人姓名
|
||||
*/
|
||||
private String nonconformanceCreateUserName;
|
||||
|
||||
/**
|
||||
* 不合格记录创建时间
|
||||
*/
|
||||
private LocalDateTime nonconformanceCreateTime;
|
||||
|
||||
/**
|
||||
* 不合格记录更新时间
|
||||
*/
|
||||
private LocalDateTime nonconformanceUpdateTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,11 +36,6 @@ public class QmsIncomingInspectionTaskRecordItemDetailVO {
|
|||
*/
|
||||
private String testStandard;
|
||||
|
||||
/**
|
||||
* 图例
|
||||
*/
|
||||
private String legend;
|
||||
|
||||
/**
|
||||
* 判定类型,0:直接判定;1:测量值
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
package com.nflg.wms.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class QmsIssueTicketInspectionRecordItemSimpleVO {
|
||||
|
||||
private String name;
|
||||
|
||||
private String testStandard;
|
||||
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package com.nflg.wms.repository.entity;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
|
@ -182,11 +181,6 @@ public class QmsIncomingInspectionTask implements Serializable {
|
|||
*/
|
||||
private Integer storageDays;
|
||||
|
||||
/**
|
||||
* 采购组
|
||||
*/
|
||||
private String purchaseGroup;
|
||||
|
||||
/**
|
||||
* 最近更新人id
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nflg.wms.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemSimpleVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||
|
||||
|
|
@ -18,6 +17,4 @@ import java.util.List;
|
|||
public interface QmsIncomingInspectionTaskRecordItemMapper extends BaseMapper<QmsIncomingInspectionTaskRecordItem> {
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId);
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemSimpleVO> getUnqualifiedRecordItems(Long taskId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemSimpleVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||
|
||||
|
|
@ -18,6 +17,4 @@ import java.util.List;
|
|||
public interface IQmsIncomingInspectionTaskRecordItemService extends IService<QmsIncomingInspectionTaskRecordItem> {
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId);
|
||||
|
||||
List<QmsIssueTicketInspectionRecordItemSimpleVO> getUnqualifiedRecordItems(Long taskId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemSimpleVO;
|
||||
import com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemVO;
|
||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecordItem;
|
||||
import com.nflg.wms.repository.mapper.QmsIncomingInspectionTaskRecordItemMapper;
|
||||
|
|
@ -25,9 +24,4 @@ public class QmsIncomingInspectionTaskRecordItemServiceImpl extends ServiceImpl<
|
|||
public List<QmsIssueTicketInspectionRecordItemVO> getNonconformanceDataGroups(Long recordId) {
|
||||
return baseMapper.getNonconformanceDataGroups(recordId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<QmsIssueTicketInspectionRecordItemSimpleVO> getUnqualifiedRecordItems(Long taskId) {
|
||||
return baseMapper.getUnqualifiedRecordItems(taskId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,92 +4,103 @@
|
|||
|
||||
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskNonconformanceVO">
|
||||
SELECT
|
||||
t.id as task_id,
|
||||
t.task_no,
|
||||
it.ticket_no,
|
||||
it.ticket_title,
|
||||
t.material_id,
|
||||
m.material_no,
|
||||
m.material_desc,
|
||||
m.drawing_no_ver,
|
||||
t.supplier_code,
|
||||
t.supplier_name,
|
||||
t.delivery_order_no,
|
||||
t.delivery_order_line,
|
||||
t.purchase_order_no,
|
||||
t.purchase_order_line,
|
||||
t.factory,
|
||||
t.inspection_type,
|
||||
t.inspection_qty,
|
||||
t.qualified_qty,
|
||||
t.unqualified_qty,
|
||||
t.inspection_status,
|
||||
t.inspection_result,
|
||||
t.inspector_id,
|
||||
t.inspector_name,
|
||||
t.submit_time,
|
||||
t.inspection_start_time,
|
||||
t.inspection_finish_time,
|
||||
t.required_finish_time,
|
||||
t.is_overdue,
|
||||
CASE WHEN it.status IS NULL THEN 0 ELSE it.status END AS status
|
||||
FROM qms_incoming_inspection_task t
|
||||
LEFT JOIN qms_issue_ticket it ON it.source_id = t.id
|
||||
n.id,
|
||||
n.task_id,
|
||||
t.task_no,
|
||||
t.material_id,
|
||||
m.material_no,
|
||||
m.material_desc,
|
||||
m.drawing_no_ver,
|
||||
t.supplier_code,
|
||||
t.supplier_name,
|
||||
t.delivery_order_no,
|
||||
t.delivery_order_line,
|
||||
t.purchase_order_no,
|
||||
t.purchase_order_line,
|
||||
t.factory,
|
||||
t.inspection_type,
|
||||
t.inspection_qty,
|
||||
t.qualified_qty,
|
||||
t.unqualified_qty,
|
||||
t.inspection_status,
|
||||
t.inspection_result,
|
||||
t.inspector_id,
|
||||
t.inspector_name,
|
||||
t.submit_time,
|
||||
t.inspection_start_time,
|
||||
t.inspection_finish_time,
|
||||
t.required_finish_time,
|
||||
t.is_overdue,
|
||||
n.status AS nonconformance_status,
|
||||
CASE n.status
|
||||
WHEN 0 THEN '待办'
|
||||
WHEN 1 THEN '处理中'
|
||||
WHEN 2 THEN '处理完成'
|
||||
END AS nonconformance_status_name,
|
||||
n.create_user_id AS nonconformance_create_user_id,
|
||||
n.create_user_name AS nonconformance_create_user_name,
|
||||
n.create_time AS nonconformance_create_time,
|
||||
n.update_time AS nonconformance_update_time
|
||||
FROM qms_incoming_inspection_task_nonconformance n
|
||||
INNER JOIN qms_incoming_inspection_task t ON n.task_id = t.id
|
||||
INNER JOIN qms_qc_material m ON t.material_id = m.id
|
||||
WHERE t.inspection_status=2 and t.inspection_result=false
|
||||
AND ((t.inspection_type=0 and t.purchase_group=#{request.purchaseGroup}) or (t.inspection_type=1 and #{request.isWarehouseManager}=true))
|
||||
<if test="request.dataType != null">
|
||||
AND t.data_type = #{request.dataType}
|
||||
</if>
|
||||
<if test="request.materialNo != null and request.materialNo != ''">
|
||||
AND m.material_no ilike concat('%', #{request.materialNo}, '%')
|
||||
</if>
|
||||
<if test="request.purchaseOrderNo != null and request.purchaseOrderNo != ''">
|
||||
AND t.purchase_order_no ilike concat('%', #{request.purchaseOrderNo}, '%')
|
||||
</if>
|
||||
<if test="request.supplierName != null and request.supplierName != ''">
|
||||
AND t.supplier_name ilike concat('%', #{request.supplierName}, '%')
|
||||
</if>
|
||||
<if test="request.inspectorName != null and request.inspectorName != ''">
|
||||
AND t.inspector_name ilike concat('%', #{request.inspectorName}, '%')
|
||||
</if>
|
||||
<if test="request.inspectionStatus != null">
|
||||
AND t.inspection_status = #{request.inspectionStatus}
|
||||
</if>
|
||||
<if test="request.factory != null and request.factory != ''">
|
||||
AND t.factory = #{request.factory}
|
||||
</if>
|
||||
<if test="request.warehouse != null and request.warehouse != ''">
|
||||
AND t.warehouse = #{request.warehouse}
|
||||
</if>
|
||||
<if test="request.deliveryOrderNo != null and request.deliveryOrderNo != ''">
|
||||
AND t.delivery_order_no ilike concat('%', #{request.deliveryOrderNo}, '%')
|
||||
</if>
|
||||
<if test="request.inspectionResult != null">
|
||||
AND t.inspection_result = #{request.inspectionResult}
|
||||
</if>
|
||||
<if test="request.isOverdue != null">
|
||||
AND t.is_overdue = #{request.isOverdue}
|
||||
</if>
|
||||
<if test="request.submitStartDate != null">
|
||||
AND t.submit_time >= #{request.submitStartDate}
|
||||
</if>
|
||||
<if test="request.submitEndDate != null">
|
||||
AND t.submit_time < #{request.submitEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.inspectionBeginStartDate != null">
|
||||
AND t.inspection_start_time >= #{request.inspectionBeginStartDate}
|
||||
</if>
|
||||
<if test="request.inspectionBeginEndDate != null">
|
||||
AND t.inspection_start_time < #{request.inspectionBeginEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.inspectionStartDate != null">
|
||||
AND t.inspection_finish_time >= #{request.inspectionStartDate}
|
||||
</if>
|
||||
<if test="request.inspectionEndDate != null">
|
||||
AND t.inspection_finish_time < #{request.inspectionEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
ORDER BY t.id DESC
|
||||
<where>
|
||||
<if test="request.dataType != null">
|
||||
AND t.data_type = #{request.dataType}
|
||||
</if>
|
||||
<if test="request.materialNo != null and request.materialNo != ''">
|
||||
AND m.material_no ilike concat('%', #{request.materialNo}, '%')
|
||||
</if>
|
||||
<if test="request.purchaseOrderNo != null and request.purchaseOrderNo != ''">
|
||||
AND t.purchase_order_no ilike concat('%', #{request.purchaseOrderNo}, '%')
|
||||
</if>
|
||||
<if test="request.supplierName != null and request.supplierName != ''">
|
||||
AND t.supplier_name ilike concat('%', #{request.supplierName}, '%')
|
||||
</if>
|
||||
<if test="request.inspectorName != null and request.inspectorName != ''">
|
||||
AND t.inspector_name ilike concat('%', #{request.inspectorName}, '%')
|
||||
</if>
|
||||
<if test="request.inspectionStatus != null">
|
||||
AND t.inspection_status = #{request.inspectionStatus}
|
||||
</if>
|
||||
<if test="request.factory != null and request.factory != ''">
|
||||
AND t.factory = #{request.factory}
|
||||
</if>
|
||||
<if test="request.warehouse != null and request.warehouse != ''">
|
||||
AND t.warehouse = #{request.warehouse}
|
||||
</if>
|
||||
<if test="request.deliveryOrderNo != null and request.deliveryOrderNo != ''">
|
||||
AND t.delivery_order_no ilike concat('%', #{request.deliveryOrderNo}, '%')
|
||||
</if>
|
||||
<if test="request.inspectionResult != null">
|
||||
AND t.inspection_result = #{request.inspectionResult}
|
||||
</if>
|
||||
<if test="request.isOverdue != null">
|
||||
AND t.is_overdue = #{request.isOverdue}
|
||||
</if>
|
||||
<if test="request.submitStartDate != null">
|
||||
AND t.submit_time >= #{request.submitStartDate}
|
||||
</if>
|
||||
<if test="request.submitEndDate != null">
|
||||
AND t.submit_time < #{request.submitEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.inspectionBeginStartDate != null">
|
||||
AND t.inspection_start_time >= #{request.inspectionBeginStartDate}
|
||||
</if>
|
||||
<if test="request.inspectionBeginEndDate != null">
|
||||
AND t.inspection_start_time < #{request.inspectionBeginEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.inspectionStartDate != null">
|
||||
AND t.inspection_finish_time >= #{request.inspectionStartDate}
|
||||
</if>
|
||||
<if test="request.inspectionEndDate != null">
|
||||
AND t.inspection_finish_time < #{request.inspectionEndDate} + INTERVAL '1 day'
|
||||
</if>
|
||||
<if test="request.nonconformanceStatus != null">
|
||||
AND n.status = #{request.nonconformanceStatus}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY n.id DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -9,14 +9,4 @@
|
|||
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>
|
||||
|
||||
<select id="getUnqualifiedRecordItems"
|
||||
resultType="com.nflg.wms.common.pojo.vo.QmsIssueTicketInspectionRecordItemSimpleVO">
|
||||
SELECT case when isi.item_type=0 THEN isi."name" ELSE isic."name" END as name,isic.test_standard,iitri.remark
|
||||
FROM qms_incoming_inspection_task_record iitr
|
||||
INNER JOIN qms_incoming_inspection_task_record_item iitri ON iitr."id"=iitri.record_id
|
||||
INNER JOIN qms_inspection_standard_item_content isic ON isic."id"=iitri.inspection_standard_item_content_id
|
||||
INNER JOIN qms_inspection_standard_item isi ON isic.inspection_standard_item_id=isi."id"
|
||||
WHERE iitr.task_id=#{taskId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue