Merge remote-tracking branch 'origin/qms/develop' into qms/develop

This commit is contained in:
funny 2026-05-12 10:50:09 +08:00
commit 3adf1d11cd
19 changed files with 278 additions and 254 deletions

View File

@ -92,7 +92,6 @@ public class QmsCoaTaskController extends BaseController {
// 推送COA通知
QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
.setIsRead(false)
.setSourceTypeId(dictionaryItemServiceId)
.setSourceId(coaTaskService.lambdaQuery().eq(QmsCoaTask::getMaterialId,qo.getMaterialNo()).one().getId())
.setCreateUserId(UserUtil.getUserId())
@ -120,7 +119,6 @@ public class QmsCoaTaskController extends BaseController {
for (Long taskId : ids) {
QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
.setIsRead(false)
.setSourceTypeId(dictionaryItemServiceId)
.setSourceId(taskId)
.setCreateUserId(currentUserId)

View File

@ -1,7 +1,7 @@
package com.nflg.qms.admin.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.qms.admin.service.TodoItemControllerService;
import com.nflg.qms.admin.service.QmsIssueTicketTodoControllerService;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
@ -11,33 +11,22 @@ import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 待办事项
* 质量问题工单待办
*/
@RestController
@RequestMapping("/todo-item")
public class TodoItemController extends BaseController {
@RequestMapping("/ticket-todo-item")
public class QmsIssueTicketTodoController extends BaseController {
@Resource
private TodoItemControllerService todoItemControllerService;
private QmsIssueTicketTodoControllerService qmsIssueTicketTodoControllerService;
/**
* 分页查询待办事项列表
* 查询
*/
@PostMapping("search")
public ApiResult<PageData<QmsTodoItemVO>> search(@Valid @RequestBody QmsTodoItemSearchQO request) {
IPage<QmsTodoItemVO> page = todoItemControllerService.search(request);
IPage<QmsTodoItemVO> page = qmsIssueTicketTodoControllerService.search(request);
return ApiResult.success(page);
}
/**
* 批量标记已读
*/
@PostMapping("mark-as-read")
public ApiResult<Void> markAsRead(@RequestBody List<Long> ids) {
todoItemControllerService.markAsRead(ids);
return ApiResult.success();
}
}

View File

@ -43,7 +43,6 @@ public class TestController extends BaseController {
VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在");
QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
.setIsRead(false)
.setSourceTypeId(dictionaryItemServiceId)
.setSourceId(0L)
.setCreateUserId(UserUtil.getUserId())

View File

@ -52,7 +52,7 @@ public class QmsIssueTicketControllerService {
private IUserService userService;
@Resource
private IQmsTodoItemService todoItemService;
private IQmsIssueTicketToDoService issueTicketToDoService;
@Resource
private IDictionaryItemService dictionaryItemService;
@ -190,7 +190,7 @@ public class QmsIssueTicketControllerService {
// 5. 为每个处理人创建处理记录并推送待办
List<QmsIssueTicketProcess> processes = new ArrayList<>();
List<QmsTodoItem> todoItems = new ArrayList<>();
List<QmsIssueTicketToDo> todoItems = new ArrayList<>();
for (Long handlerUserId : request.getHandlerUserIds()) {
User handlerUser = handlerUserMap.get(handlerUserId);
@ -203,14 +203,9 @@ public class QmsIssueTicketControllerService {
processes.add(process);
// 创建待办消息
QmsTodoItem todoItem = new QmsTodoItem()
.setCode(ticket.getTicketNo())
.setIsRead(false)
.setSourceTypeId(sourceTypeId)
.setSourceId(process.getId()) // 使用处理记录的ID
.setCreateUserId(handlerUserId)
.setCreateUserName(handlerUser.getUserName())
.setCreateTime(now);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(handlerUserId);
todoItems.add(todoItem);
}
@ -218,12 +213,12 @@ public class QmsIssueTicketControllerService {
issueTicketProcessService.saveBatch(processes);
// 7. 更新处理记录中的sourceId因为saveBatch后才有ID
for (int i = 0; i < processes.size(); i++) {
todoItems.get(i).setSourceId(processes.get(i).getId());
}
// for (int i = 0; i < processes.size(); i++) {
// todoItems.get(i).setSourceId(processes.get(i).getId());
// }
// 8. 批量推送待办消息
todoItemService.saveBatch(todoItems);
issueTicketToDoService.saveBatch(todoItems);
// 9. 如果工单状态是待流转(0)更新为处理中(1)
if (ticket.getStatus() != null && ticket.getStatus() == 0) {
@ -555,6 +550,8 @@ public class QmsIssueTicketControllerService {
}
issueTicketService.updateById(entity);
issueTicketToDoService.processed(entity.getId());
if (request.getApprovalStatus() != 5) {
wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus());
}
@ -1034,16 +1031,12 @@ public class QmsIssueTicketControllerService {
List<User> users = userService.lambdaQuery()
.eq(User::getPurchasingGroup, detail.getPurchaseGroup())
.list();
List<QmsTodoItem> todoItems = users.stream().map(user -> new QmsTodoItem()
.setCode(detail.getTaskNo())
.setSourceTypeId(dictionaryItemService.getIdByCode("MessageType", "IncomingMaterialInspectionApproval"))
.setSourceId(entity.getId())
.setCreateUserId(user.getId())
.setCreateUserName(user.getUserName())
.setCreateTime(LocalDateTime.now())
List<QmsIssueTicketToDo> todoItems = users.stream().map(user -> new QmsIssueTicketToDo()
.setTicketId(entity.getId())
.setHandlerUserId(user.getId())
).toList();
if (CollectionUtil.isNotEmpty(todoItems)) {
todoItemService.saveBatch(todoItems);
issueTicketToDoService.saveBatch(todoItems);
}
}
}

View File

@ -6,19 +6,8 @@ import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessAddQO;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketProcessDraftQO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.Department;
import com.nflg.wms.repository.entity.QmsIssueTicket;
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
import com.nflg.wms.repository.entity.QmsTodoItem;
import com.nflg.wms.repository.entity.User;
import com.nflg.wms.repository.entity.UserInterior;
import com.nflg.wms.repository.service.IDepartmentService;
import com.nflg.wms.repository.service.IDictionaryItemService;
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
import com.nflg.wms.repository.service.IQmsIssueTicketService;
import com.nflg.wms.repository.service.IQmsTodoItemService;
import com.nflg.wms.repository.service.IUserInteriorService;
import com.nflg.wms.repository.service.IUserService;
import com.nflg.wms.repository.entity.*;
import com.nflg.wms.repository.service.*;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.scheduling.annotation.Async;
@ -53,7 +42,7 @@ public class QmsIssueTicketProcessControllerService {
private IQmsIssueTicketService issueTicketService;
@Resource
private IQmsTodoItemService todoItemService;
private IQmsIssueTicketToDoService issueTicketToDoService;
@Resource
private IDictionaryItemService dictionaryItemService;
@ -99,15 +88,10 @@ public class QmsIssueTicketProcessControllerService {
// 推送待办消息
Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "PDIDefectiveProductHandling");
User handlerUser = userService.getById(handlerUserId);
QmsTodoItem todoItem = new QmsTodoItem()
.setCode(ticketNo)
.setIsRead(false)
.setSourceTypeId(sourceTypeId)
.setSourceId(processId)
.setCreateUserId(handlerUserId)
.setCreateUserName(handlerUser != null ? handlerUser.getUserName() : null)
.setCreateTime(LocalDateTime.now());
todoItemService.save(todoItem);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(issueTicketId)
.setHandlerUserId(handlerUserId);
issueTicketToDoService.save(todoItem);
}
private Long doAdd(Long issueTicketId, Long handlerUserId, List<Long> taskResultIds) {
@ -180,16 +164,10 @@ public class QmsIssueTicketProcessControllerService {
if (userInterior != null && userInterior.getDeptId() != null) {
Department department = departmentService.getById(userInterior.getDeptId());
if (department != null && department.getHeadUserId() != null) {
Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "InspectionTaskWorkOrder");
QmsTodoItem todoItem = new QmsTodoItem()
.setCode(ticket.getTicketNo())
.setIsRead(false)
.setSourceTypeId(sourceTypeId)
.setSourceId(process.getId())
.setCreateUserId(department.getHeadUserId())
.setCreateUserName(department.getHeadUserName())
.setCreateTime(now);
todoItemService.save(todoItem);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(department.getHeadUserId());
issueTicketToDoService.save(todoItem);
}
}
} else {
@ -229,15 +207,10 @@ public class QmsIssueTicketProcessControllerService {
// 驳回推送待办给处理人
Long sourceTypeId = dictionaryItemService.getIdByCode("MessageType", "InspectionTaskWorkOrder");
User handler = userService.getById(process.getHandlerUserId());
QmsTodoItem todoItem = new QmsTodoItem()
.setCode(ticket.getTicketNo())
.setIsRead(false)
.setSourceTypeId(sourceTypeId)
.setSourceId(process.getId())
.setCreateUserId(process.getHandlerUserId())
.setCreateUserName(handler != null ? handler.getUserName() : null)
.setCreateTime(now);
todoItemService.save(todoItem);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(process.getHandlerUserId());
issueTicketToDoService.save(todoItem);
} else if (leaderApprovalResult == 1) {
// 同意检查同一工单下所有处理记录是否都已完成
Long issueTicketId = process.getIssueTicketId();
@ -293,15 +266,10 @@ public class QmsIssueTicketProcessControllerService {
if (request.getApprovalStatus() == 1) {
// 驳回推送待办给工单创建人
User creator = userService.getById(ticket.getCreateUserId());
QmsTodoItem todoItem = new QmsTodoItem()
.setCode(ticket.getTicketNo())
.setIsRead(false)
.setSourceTypeId(sourceTypeId)
.setSourceId(process.getId())
.setCreateUserId(ticket.getCreateUserId())
.setCreateUserName(creator != null ? creator.getUserName() : null)
.setCreateTime(now);
todoItemService.save(todoItem);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(ticket.getCreateUserId());
issueTicketToDoService.save(todoItem);
} else if (request.getApprovalStatus() == 0) {
// 通过推送给当前用户所在部门负责人
Long currentUserId = UserUtil.getUserId();
@ -311,17 +279,14 @@ public class QmsIssueTicketProcessControllerService {
if (userInterior != null && userInterior.getDeptId() != null) {
Department department = departmentService.getById(userInterior.getDeptId());
if (department != null && department.getHeadUserId() != null) {
QmsTodoItem todoItem = new QmsTodoItem()
.setCode(ticket.getTicketNo())
.setIsRead(false)
.setSourceTypeId(sourceTypeId)
.setSourceId(process.getId())
.setCreateUserId(department.getHeadUserId())
.setCreateUserName(department.getHeadUserName())
.setCreateTime(now);
todoItemService.save(todoItem);
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
.setTicketId(ticket.getId())
.setHandlerUserId(department.getHeadUserId());
issueTicketToDoService.save(todoItem);
}
}
}
issueTicketToDoService.processed(ticket.getId());
}
}

View File

@ -0,0 +1,53 @@
package com.nflg.qms.admin.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.QmsTodoItemVO;
import com.nflg.wms.repository.entity.QmsIssueTicketProcess;
import com.nflg.wms.repository.service.IQmsIssueTicketProcessService;
import com.nflg.wms.repository.service.IQmsIssueTicketService;
import com.nflg.wms.repository.service.IQmsIssueTicketToDoService;
import com.nflg.wms.repository.service.IQmsTodoItemService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
/**
* 待办事项业务逻辑
*/
@Component
public class QmsIssueTicketTodoControllerService {
@Resource
private IQmsIssueTicketToDoService issueTicketToDoService;
@Resource
private IQmsIssueTicketProcessService issueTicketProcessService;
/**
* 分页查询待办事项列表
*/
public IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request) {
IPage<QmsTodoItemVO> pageData = issueTicketToDoService.search(request);
if (CollectionUtil.isNotEmpty(pageData.getRecords())) {
pageData.getRecords().forEach(item -> {
if (item.getStatus() != 2) {
item.setCurrentHandleUserName(
StrUtil.join(",",
issueTicketProcessService.lambdaQuery()
.select(QmsIssueTicketProcess::getHandlerUserName)
.eq(QmsIssueTicketProcess::getIssueTicketId, item.getTicketId())
.list()
.stream()
.map(QmsIssueTicketProcess::getHandlerUserName)
.toList()
)
);
}
});
}
return pageData;
}
}

View File

@ -1,34 +0,0 @@
package com.nflg.qms.admin.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.QmsTodoItemVO;
import com.nflg.wms.repository.service.IQmsTodoItemService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 待办事项业务逻辑
*/
@Component
public class TodoItemControllerService {
@Resource
private IQmsTodoItemService todoItemService;
/**
* 分页查询待办事项列表
*/
public IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request) {
return todoItemService.search(request);
}
/**
* 批量标记已读
*/
public void markAsRead(List<Long> ids) {
todoItemService.markAsRead(ids);
}
}

View File

@ -11,22 +11,17 @@ import lombok.EqualsAndHashCode;
public class QmsTodoItemSearchQO extends SearchBaseQO {
/**
* 编号
* 来源类型0=IQC检测任务1=PDI检测任务2=巡检
*/
private String code;
private Short sourceType;
/**
* 标题
* 工单标题
*/
private String title;
private String ticketTitle;
/**
* 来源类型ID
* 是否已处理
*/
private Long sourceTypeId;
/**
* 是否已读
*/
private Boolean isRead;
private Boolean hasProcessed;
}

View File

@ -13,62 +13,52 @@ public class QmsTodoItemVO {
private Long id;
/**
* 编号
* 工单id
*/
private String code;
private Long ticketId;
/**
* 标题
* 工单编号
*/
private String title;
private String ticketNo;
/**
* 来源类型ID
* 工单标题
*/
private Long sourceTypeId;
private String ticketTitle;
/**
* 来源类型名称
* 来源类型0=IQC检测任务1=PDI检测任务2=巡检
*/
private String sourceTypeName;
private Short sourceType;
/**
* 来源ID
*/
private Long sourceId;
/**
* 是否已读
*/
private Boolean isRead;
/**
* 创建人ID
*/
private Long createUserId;
/**
* 创建人姓名
* 流程发起人
*/
private String createUserName;
/**
* 创建时间
* 流程发起时间
*/
private LocalDateTime createTime;
/**
* 更新人ID
* 当前节点处理人
*/
private Long updateUserId;
private String currentHandleUserName;
/**
* 更新人姓名
* 流程结束时间
*/
private String updateUserName;
private LocalDateTime completeTime;
/**
* 更新时间
* 状态0=待流转1=处理中2=已完成
*/
private LocalDateTime updateTime;
private Short status;
/**
* 类型0=处理主工单1=处理工单子项2=审核工单子项
*/
private Integer type;
}

View File

@ -0,0 +1,42 @@
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 lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 质量问题工单待办表
* @since 2026
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
@TableName("qms_issue_ticket_todo")
public class QmsIssueTicketToDo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 工单ID
*/
private Long ticketId;
/**
* 是否已处理
*/
private Boolean hasProcessed;
/**
* 处理人ID
*/
private Long handlerUserId;
}

View File

@ -0,0 +1,16 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.QmsTodoItemVO;
import com.nflg.wms.repository.entity.QmsIssueTicketToDo;
/**
* 质量问题工单待办 Mapper 接口
*/
public interface QmsIssueTicketToDoMapper extends BaseMapper<QmsIssueTicketToDo> {
IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request, Long userId, Page<Object> page);
}

View File

@ -12,5 +12,4 @@ import com.nflg.wms.repository.entity.QmsTodoItem;
*/
public interface QmsTodoItemMapper extends BaseMapper<QmsTodoItem> {
IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request, Page<Object> page);
}

View File

@ -0,0 +1,20 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.QmsTodoItemVO;
import com.nflg.wms.repository.entity.QmsIssueTicketToDo;
/**
* 质量问题工单待办 Service
*/
public interface IQmsIssueTicketToDoService extends IService<QmsIssueTicketToDo> {
/**
* 分页查询待办事项列表
*/
IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request);
void processed(Long id);
}

View File

@ -13,14 +13,4 @@ import java.util.List;
*/
public interface IQmsTodoItemService extends IService<QmsTodoItem> {
/**
* 分页查询待办事项列表
*/
IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request);
/**
* 批量标记已读
* @param ids 待办事项ID列表
*/
void markAsRead(List<Long> ids);
}

View File

@ -0,0 +1,39 @@
package com.nflg.wms.repository.service.impl;
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.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.QmsTodoItemVO;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.QmsIssueTicketToDo;
import com.nflg.wms.repository.entity.QmsTodoItem;
import com.nflg.wms.repository.mapper.QmsIssueTicketToDoMapper;
import com.nflg.wms.repository.service.IQmsIssueTicketToDoService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 质量问题工单待办 ServiceImpl
*/
@Service
public class QmsIssueTicketToDoServiceImpl
extends ServiceImpl<QmsIssueTicketToDoMapper, QmsIssueTicketToDo>
implements IQmsIssueTicketToDoService {
@Override
public IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request) {
return baseMapper.search(request, UserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize()));
}
@Override
public void processed(Long id) {
lambdaUpdate()
.set(QmsIssueTicketToDo::getHasProcessed, true)
.eq(QmsIssueTicketToDo::getTicketId, id)
.eq(QmsIssueTicketToDo::getHandlerUserId, UserUtil.getUserId())
.eq(QmsIssueTicketToDo::getHasProcessed, false)
.update();
}
}

View File

@ -20,26 +20,4 @@ import java.util.List;
@Service
public class QmsTodoItemServiceImpl extends ServiceImpl<QmsTodoItemMapper, QmsTodoItem> implements IQmsTodoItemService {
@Override
public IPage<QmsTodoItemVO> search(QmsTodoItemSearchQO request) {
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
}
@Override
public void markAsRead(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return;
}
Long userId = UserUtil.getUserId();
String userName = UserUtil.getUserName();
LocalDateTime now = LocalDateTime.now();
lambdaUpdate()
.eq(QmsTodoItem::getIsRead, false)
.in(QmsTodoItem::getId, ids)
.set(QmsTodoItem::getIsRead, true)
.set(QmsTodoItem::getUpdateUserId, userId)
.set(QmsTodoItem::getUpdateUserName, userName)
.set(QmsTodoItem::getUpdateTime, now)
.update();
}
}

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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.QmsIssueTicketToDoMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsTodoItemVO">
SELECT
CASE
WHEN vit."type" = 0 THEN 0
WHEN vit.handler_user_id = #{userId} THEN 1
WHEN vit.approval_user_id = #{userId} THEN 2
END AS type,
vit.*
FROM qms_issue_ticket_todo itd
INNER JOIN v_qms_issue_ticket vit ON itd.ticket_id = vit.ticket_id
where itd.handler_user_id = #{userId} and (vit.handler_user_id=#{userId} or vit.approval_user_id=#{userId})
<if test="request.sourceType != null">
AND vit.source_type = #{request.sourceType}
</if>
<if test="request.ticketTitle != null and request.ticketTitle != ''">
AND vit.ticket_title ilike concat('%', #{request.ticketTitle}, '%')
</if>
<if test="request.hasProcessed != null">
AND itd.has_processed = #{request.hasProcessed}
</if>
<if test="request.startDate != null">
AND vit.create_time &gt;= #{request.startDate}
</if>
<if test="request.endDate != null">
AND vit.create_time &lt;= #{request.endDate}
</if>
ORDER BY itd.id DESC
</select>
</mapper>

View File

@ -2,43 +2,4 @@
<!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.QmsTodoItemMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsTodoItemVO">
SELECT t.id,
t.code,
t.title,
t.source_type_id,
di.name as source_type_name,
t.source_id,
t.is_read,
t.create_user_id,
t.create_user_name,
t.create_time,
t.update_user_id,
t.update_user_name,
t.update_time
FROM qms_todo_item t
LEFT JOIN dictionary_item di ON t.source_type_id = di.id
<where>
<if test="request.code != null and request.code != ''">
AND t.code ilike concat('%', #{request.code}, '%')
</if>
<if test="request.title != null and request.title != ''">
AND t.title ilike concat('%', #{request.title}, '%')
</if>
<if test="request.sourceTypeId != null">
AND t.source_type_id = #{request.sourceTypeId}
</if>
<if test="request.isRead != null">
AND t.is_read = #{request.isRead}
</if>
<if test="request.startDate != null">
AND t.create_time &gt;= #{request.startDate}
</if>
<if test="request.endDate != null">
AND t.create_time &lt;= #{request.endDate}
</if>
</where>
ORDER BY t.id DESC
</select>
</mapper>

View File

@ -164,7 +164,6 @@ public class PdiTaskOverdueNotifyProcessor implements BasicProcessor {
.setCode(task.getTaskNo())
.setSourceTypeId(sourceTypeId)
.setSourceId(task.getId())
.setIsRead(false)
.setCreateUserId(leaderId)
.setCreateUserName(leader != null ? leader.getUserName() : "未知")
.setCreateTime(now);
@ -205,7 +204,6 @@ public class PdiTaskOverdueNotifyProcessor implements BasicProcessor {
.setCode(task.getTaskNo())
.setSourceTypeId(sourceTypeId)
.setSourceId(task.getId())
.setIsRead(false)
.setCreateUserId(inspectorId)
.setCreateUserName(inspector != null ? inspector.getUserName() : "未知")
.setCreateTime(now);
@ -221,7 +219,6 @@ public class PdiTaskOverdueNotifyProcessor implements BasicProcessor {
.setCode(task.getTaskNo())
.setSourceTypeId(sourceTypeId)
.setSourceId(task.getId())
.setIsRead(false)
.setCreateUserId(assistantId)
.setCreateUserName(assistant != null ? assistant.getUserName() : "未知")
.setCreateTime(now);