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