diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java index 1126a7cc..d829590e 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsCoaTaskController.java @@ -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) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TodoItemController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketTodoController.java similarity index 52% rename from nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TodoItemController.java rename to nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketTodoController.java index da343bd1..be242e93 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TodoItemController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsIssueTicketTodoController.java @@ -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> search(@Valid @RequestBody QmsTodoItemSearchQO request) { - IPage page = todoItemControllerService.search(request); + IPage page = qmsIssueTicketTodoControllerService.search(request); return ApiResult.success(page); } - - /** - * 批量标记已读 - */ - @PostMapping("mark-as-read") - public ApiResult markAsRead(@RequestBody List ids) { - todoItemControllerService.markAsRead(ids); - return ApiResult.success(); - } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TestController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TestController.java index c8cb9072..387c731a 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TestController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/TestController.java @@ -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()) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java index 89defff8..2eee5c23 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketControllerService.java @@ -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 processes = new ArrayList<>(); - List todoItems = new ArrayList<>(); + List 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 users = userService.lambdaQuery() .eq(User::getPurchasingGroup, detail.getPurchaseGroup()) .list(); - List 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 todoItems = users.stream().map(user -> new QmsIssueTicketToDo() + .setTicketId(entity.getId()) + .setHandlerUserId(user.getId()) ).toList(); if (CollectionUtil.isNotEmpty(todoItems)) { - todoItemService.saveBatch(todoItems); + issueTicketToDoService.saveBatch(todoItems); } } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java index 03f1f76c..4f9964f4 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketProcessControllerService.java @@ -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 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()); } } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketTodoControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketTodoControllerService.java new file mode 100644 index 00000000..45a7bd64 --- /dev/null +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsIssueTicketTodoControllerService.java @@ -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 search(QmsTodoItemSearchQO request) { + IPage 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; + } +} diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/TodoItemControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/TodoItemControllerService.java deleted file mode 100644 index d8b684b7..00000000 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/TodoItemControllerService.java +++ /dev/null @@ -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 search(QmsTodoItemSearchQO request) { - return todoItemService.search(request); - } - - /** - * 批量标记已读 - */ - public void markAsRead(List ids) { - todoItemService.markAsRead(ids); - } -} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsTodoItemSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsTodoItemSearchQO.java index 3328efae..c26e5bd5 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsTodoItemSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsTodoItemSearchQO.java @@ -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; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTodoItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTodoItemVO.java index 00cc7859..83c37c99 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTodoItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsTodoItemVO.java @@ -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; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicketToDo.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicketToDo.java new file mode 100644 index 00000000..e30f0d57 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsIssueTicketToDo.java @@ -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; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIssueTicketToDoMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIssueTicketToDoMapper.java new file mode 100644 index 00000000..4549ee15 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsIssueTicketToDoMapper.java @@ -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 { + + IPage search(QmsTodoItemSearchQO request, Long userId, Page page); +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsTodoItemMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsTodoItemMapper.java index ca830cb3..6c8de57f 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsTodoItemMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/QmsTodoItemMapper.java @@ -12,5 +12,4 @@ import com.nflg.wms.repository.entity.QmsTodoItem; */ public interface QmsTodoItemMapper extends BaseMapper { - IPage search(QmsTodoItemSearchQO request, Page page); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIssueTicketToDoService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIssueTicketToDoService.java new file mode 100644 index 00000000..98cb7806 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsIssueTicketToDoService.java @@ -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 { + + /** + * 分页查询待办事项列表 + */ + IPage search(QmsTodoItemSearchQO request); + + void processed(Long id); +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsTodoItemService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsTodoItemService.java index 11eebaed..90b6a246 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsTodoItemService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsTodoItemService.java @@ -13,14 +13,4 @@ import java.util.List; */ public interface IQmsTodoItemService extends IService { - /** - * 分页查询待办事项列表 - */ - IPage search(QmsTodoItemSearchQO request); - - /** - * 批量标记已读 - * @param ids 待办事项ID列表 - */ - void markAsRead(List ids); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketToDoServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketToDoServiceImpl.java new file mode 100644 index 00000000..2839e14e --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsIssueTicketToDoServiceImpl.java @@ -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 + implements IQmsIssueTicketToDoService { + + @Override + public IPage 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(); + } +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsTodoItemServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsTodoItemServiceImpl.java index b4438e80..c74b775a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsTodoItemServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsTodoItemServiceImpl.java @@ -20,26 +20,4 @@ import java.util.List; @Service public class QmsTodoItemServiceImpl extends ServiceImpl implements IQmsTodoItemService { - @Override - public IPage search(QmsTodoItemSearchQO request) { - return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); - } - - @Override - public void markAsRead(List 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(); - } } diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsIssueTicketToDoMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsIssueTicketToDoMapper.xml new file mode 100644 index 00000000..3838d1fc --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/QmsIssueTicketToDoMapper.xml @@ -0,0 +1,34 @@ + + + + + + + diff --git a/nflg-wms-repository/src/main/resources/mapper/QmsTodoItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/QmsTodoItemMapper.xml index ec9872e1..ed57d57c 100644 --- a/nflg-wms-repository/src/main/resources/mapper/QmsTodoItemMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/QmsTodoItemMapper.xml @@ -2,43 +2,4 @@ - - diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/PdiTaskOverdueNotifyProcessor.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/PdiTaskOverdueNotifyProcessor.java index 9807784f..b7458d61 100644 --- a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/PdiTaskOverdueNotifyProcessor.java +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/PdiTaskOverdueNotifyProcessor.java @@ -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);