完善发送COA发布通知功能

This commit is contained in:
funny 2026-04-21 14:14:53 +08:00
parent bf09bca3cb
commit 514080a0f9
1 changed files with 32 additions and 14 deletions

View File

@ -12,9 +12,12 @@ import com.nflg.wms.common.pojo.vo.QmsCoaTaskDetailVO;
import com.nflg.wms.common.pojo.vo.QmsCoaTaskMaterialVO; import com.nflg.wms.common.pojo.vo.QmsCoaTaskMaterialVO;
import com.nflg.wms.common.pojo.vo.QmsCoaTaskVO; import com.nflg.wms.common.pojo.vo.QmsCoaTaskVO;
import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.QmsCoaTask; import com.nflg.wms.repository.entity.QmsCoaTask;
import com.nflg.wms.repository.entity.QmsTodoItem; import com.nflg.wms.repository.entity.QmsTodoItem;
import com.nflg.wms.repository.service.IDictionaryItemService;
import com.nflg.wms.repository.service.IQmsCoaTaskService; import com.nflg.wms.repository.service.IQmsCoaTaskService;
import com.nflg.wms.repository.service.IQmsTodoItemService;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid; import jakarta.validation.Valid;
@ -23,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* COA通知管理 * COA通知管理
@ -37,9 +41,15 @@ public class QmsCoaTaskController extends BaseController {
@Resource @Resource
private List<ISendMessageService> sendMessageServices; private List<ISendMessageService> sendMessageServices;
@Resource
private IQmsTodoItemService todoItemService;
@Resource @Resource
private BasdeSerialNumberControllerService basdeSerialNumberControllerService; private BasdeSerialNumberControllerService basdeSerialNumberControllerService;
@Resource
private IDictionaryItemService dictionaryItemService;
/** /**
* 新增COA通知任务 * 新增COA通知任务
* 状态默认为0待发送 * 状态默认为0待发送
@ -80,22 +90,23 @@ public class QmsCoaTaskController extends BaseController {
@PostMapping("publish") @PostMapping("publish")
public ApiResult<Void> publish(@Valid @RequestBody QmsCoaTaskAddQO qo) { public ApiResult<Void> publish(@Valid @RequestBody QmsCoaTaskAddQO qo) {
coaTaskService.publish(qo); coaTaskService.publish(qo);
Long dictionaryItemServiceId = dictionaryItemService.getId("消息类型", "COANotificationSent");
VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在");
// 推送COA通知 // 推送COA通知
QmsTodoItem qmsTodoItem = new QmsTodoItem() QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) .setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
.setIsRead(false) .setIsRead(false)
.setSourceTypeId(2046157760401182721L) .setSourceTypeId(dictionaryItemServiceId)
.setSourceId(coaTaskService.lambdaQuery().eq(QmsCoaTask::getMaterialId,qo.getMaterialNo()).one().getId()) .setSourceId(coaTaskService.lambdaQuery().eq(QmsCoaTask::getMaterialId,qo.getMaterialNo()).one().getId())
.setCreateUserId(UserUtil.getUserId()) .setCreateUserId(UserUtil.getUserId())
.setCreateUserName(UserUtil.getUserName()) .setCreateUserName(UserUtil.getUserName())
.setCreateTime(java.time.LocalDateTime.now()); .setCreateTime(java.time.LocalDateTime.now());
sendMessageServices.forEach(service -> service.sendSystemMessage(qmsTodoItem)); todoItemService.save(qmsTodoItem);
return ApiResult.success(); return ApiResult.success();
} }
/** /**
* 批量发送状态改为1已发送填入发送时间 * 批量发送状态改为1已发送填入发送时间每条任务单独推送一条待办消息
* *
* @param ids 任务ID列表 * @param ids 任务ID列表
*/ */
@ -103,16 +114,23 @@ public class QmsCoaTaskController extends BaseController {
@PostMapping("send") @PostMapping("send")
public ApiResult<Void> send(@RequestBody List<Long> ids) { public ApiResult<Void> send(@RequestBody List<Long> ids) {
coaTaskService.send(ids); coaTaskService.send(ids);
// 推送COA通知 Long dictionaryItemServiceId = dictionaryItemService.getId("消息类型", "COANotificationSent");
QmsTodoItem qmsTodoItem = new QmsTodoItem() VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在");
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) Long currentUserId = UserUtil.getUserId();
.setIsRead(false) String currentUserName = UserUtil.getUserName();
.setSourceTypeId(2046157760401182721L) java.time.LocalDateTime now = java.time.LocalDateTime.now();
.setSourceId(0L) // 每个任务ID单独推送一条待办消息
.setCreateUserId(UserUtil.getUserId()) for (Long taskId : ids) {
.setCreateUserName(UserUtil.getUserName()) QmsTodoItem qmsTodoItem = new QmsTodoItem()
.setCreateTime(java.time.LocalDateTime.now()); .setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
sendMessageServices.forEach(service -> service.sendSystemMessage(qmsTodoItem)); .setIsRead(false)
.setSourceTypeId(dictionaryItemServiceId)
.setSourceId(taskId)
.setCreateUserId(currentUserId)
.setCreateUserName(currentUserName)
.setCreateTime(now);
todoItemService.save(qmsTodoItem);
}
return ApiResult.success(); return ApiResult.success();
} }