Compare commits

..

No commits in common. "bb80178e2bada36de07bf9917848a37eea36225f" and "93924b741aa5f5756edf6c0a0b810d363f9c7a7f" have entirely different histories.

18 changed files with 147 additions and 371 deletions

View File

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

View File

@ -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检测任务类型质量问题工单
* 工单编号自动生成来源类型固定为0IQC检测任务
*/
@PostMapping("initiate")
public ApiResult<Void> initiate(@RequestParam Long taskId) {
issueTicketControllerService.initiate(taskId);
return ApiResult.success();
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -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检测任务类型质量问题工单
* 工单编号自动生成来源类型固定为0IQC检测任务状态默认为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);
}
/**
* 查询来料检测任务质量问题工单详情
* 包含图片文件信息来料检测任务详情检验记录含子项和样本数据

View File

@ -71,10 +71,4 @@ public class ExternalIncomingInspectionApplyQO {
@NotNull(message = "检验数量不能为空")
@Min(value = 1, message = "检验数量必须大于0")
private Integer inspectionQty;
/**
* 采购组
*/
@NotBlank(message = "采购组不能为空")
private String purchaseGroup;
}

View File

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

View File

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

View File

@ -36,11 +36,6 @@ public class QmsIncomingInspectionTaskRecordItemDetailVO {
*/
private String testStandard;
/**
* 图例
*/
private String legend;
/**
* 判定类型0直接判定1测量值
*/

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 &gt;= #{request.submitStartDate}
</if>
<if test="request.submitEndDate != null">
AND t.submit_time &lt; #{request.submitEndDate} + INTERVAL '1 day'
</if>
<if test="request.inspectionBeginStartDate != null">
AND t.inspection_start_time &gt;= #{request.inspectionBeginStartDate}
</if>
<if test="request.inspectionBeginEndDate != null">
AND t.inspection_start_time &lt; #{request.inspectionBeginEndDate} + INTERVAL '1 day'
</if>
<if test="request.inspectionStartDate != null">
AND t.inspection_finish_time &gt;= #{request.inspectionStartDate}
</if>
<if test="request.inspectionEndDate != null">
AND t.inspection_finish_time &lt; #{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 &gt;= #{request.submitStartDate}
</if>
<if test="request.submitEndDate != null">
AND t.submit_time &lt; #{request.submitEndDate} + INTERVAL '1 day'
</if>
<if test="request.inspectionBeginStartDate != null">
AND t.inspection_start_time &gt;= #{request.inspectionBeginStartDate}
</if>
<if test="request.inspectionBeginEndDate != null">
AND t.inspection_start_time &lt; #{request.inspectionBeginEndDate} + INTERVAL '1 day'
</if>
<if test="request.inspectionStartDate != null">
AND t.inspection_finish_time &gt;= #{request.inspectionStartDate}
</if>
<if test="request.inspectionEndDate != null">
AND t.inspection_finish_time &lt; #{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>

View File

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