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 55dff5a5..47ef8d3c 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 @@ -1,5 +1,7 @@ package com.nflg.qms.admin.controller; +import com.nflg.qms.admin.service.BasdeSerialNumberControllerService; +import com.nflg.qms.admin.service.ISendMessageService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.QmsCoaTaskAddQO; @@ -9,6 +11,9 @@ import com.nflg.wms.common.pojo.qo.QmsCoaTaskUpdateQO; 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.repository.entity.QmsCoaTask; +import com.nflg.wms.repository.entity.QmsTodoItem; import com.nflg.wms.repository.service.IQmsCoaTaskService; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; @@ -29,6 +34,12 @@ public class QmsCoaTaskController extends BaseController { @Resource private IQmsCoaTaskService coaTaskService; + @Resource + private List sendMessageServices; + + @Resource + private BasdeSerialNumberControllerService basdeSerialNumberControllerService; + /** * 新增COA通知任务 * 状态默认为0(待发送) @@ -69,6 +80,17 @@ public class QmsCoaTaskController extends BaseController { @PostMapping("publish") public ApiResult publish(@Valid @RequestBody QmsCoaTaskAddQO qo) { coaTaskService.publish(qo); + +// 推送COA通知 + QmsTodoItem qmsTodoItem = new QmsTodoItem() + .setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) + .setIsRead(false) + .setSourceTypeId(2046157760401182721L) + .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)); return ApiResult.success(); } @@ -81,6 +103,16 @@ public class QmsCoaTaskController extends BaseController { @PostMapping("send") public ApiResult send(@RequestBody List ids) { coaTaskService.send(ids); +// 推送COA通知 + 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)); return ApiResult.success(); } diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java index 6506c8f8..6b2f9432 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSupplierSqeController.java @@ -49,7 +49,7 @@ public class QmsSupplierSqeController extends BaseController { } /** - * 设置用户(为选中供应商绑定用户,多对多,以供应商为主体) + * 设置用户(为选中供应商全量替换负责人,以供应商为主体) */ @Transactional @PostMapping("setUser") diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java index 02c18a50..116dd42c 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsSupplierSqeMapServiceImpl.java @@ -125,28 +125,25 @@ public class QmsSupplierSqeMapServiceImpl extends ServiceImpl userIds) { - // 查询该供应商已存在的用户ID集合 - Set existUserIds = lambdaQuery() + // 先删除该供应商所有负责人关联 + lambdaUpdate() .eq(QmsSupplierSqeMap::getSupplierId, supplierId) - .list() - .stream() - .map(QmsSupplierSqeMap::getUserId) - .collect(Collectors.toSet()); - // 只插入不存在的记录,跳过重复的 - String operator = UserUtil.getUserName(); - LocalDateTime now = LocalDateTime.now(); - List toAdd = userIds.stream() - .filter(userId -> !existUserIds.contains(userId)) - .map(userId -> new QmsSupplierSqeMap() - .setSupplierId(supplierId) - .setUserId(userId) - .setEnable(true) - .setCreateBy(operator) - .setCreateTime(now) - .setUpdateBy(operator) - .setUpdateTime(now)) - .collect(Collectors.toList()); - if (!toAdd.isEmpty()) { + .remove(); + + // 再全量插入传入的用户列表 + if (!CollectionUtils.isEmpty(userIds)) { + String operator = UserUtil.getUserName(); + LocalDateTime now = LocalDateTime.now(); + List toAdd = userIds.stream() + .map(userId -> new QmsSupplierSqeMap() + .setSupplierId(supplierId) + .setUserId(userId) + .setEnable(true) + .setCreateBy(operator) + .setCreateTime(now) + .setUpdateBy(operator) + .setUpdateTime(now)) + .collect(Collectors.toList()); saveBatch(toAdd); } }