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 0ae37147..9f2610ca 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 @@ -14,9 +14,11 @@ 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.QmsQcMaterial; 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.IQmsQcMaterialService; import com.nflg.wms.repository.service.IQmsTodoItemService; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; @@ -47,6 +49,9 @@ public class QmsCoaTaskController extends BaseController { @Resource private IDictionaryItemService dictionaryItemService; + @Resource + private IQmsQcMaterialService qcMaterialService; + /** * 新增COA通知任务 * 状态默认为0(待发送) @@ -85,15 +90,16 @@ public class QmsCoaTaskController extends BaseController { @Transactional @PostMapping("publish") public ApiResult publish(@Valid @RequestBody QmsCoaTaskAddQO qo) { - coaTaskService.publish(qo); + Long taskId = coaTaskService.publish(qo); Long dictionaryItemServiceId = dictionaryItemService.getIdByCode("MessageType", "COANotificationSent"); VUtil.trueThrowBusinessError(Objects.isNull(dictionaryItemServiceId)).throwMessage("消息类型不存在"); // 推送COA通知 + QmsQcMaterial qcMaterial = qcMaterialService.getById(qo.getMaterialId()); todoItemService.add(new QmsTodoItem() - .setTitle("COA通知" + qo.getMaterialNo()) + .setTitle("物料" + qcMaterial.getMaterialNo() + "需要上传COA报告") .setCode(basdeSerialNumberControllerService.generateSerialNumber(32)) .setSourceTypeId(dictionaryItemServiceId) - .setSourceId(coaTaskService.lambdaQuery().eq(QmsCoaTask::getMaterialId, qo.getMaterialNo()).one().getId()) + .setSourceId(taskId) .setCreateUserId(UserUtil.getUserId()) .setCreateUserName(UserUtil.getUserName()) .setCreateTime(java.time.LocalDateTime.now()) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsFileControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsFileControllerService.java index 74477be4..550b3c2a 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsFileControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsFileControllerService.java @@ -653,9 +653,9 @@ public class QmsFileControllerService { User lockedUser = userService.getById(lockedUserId); VUtil.trueThrowBusinessError(true).throwMessage("文件已被用户【" + lockedUser.getUserName() + "】锁定"); } + }else { + redisTemplate.opsForValue().setIfAbsent(key, currentUserId, 15, TimeUnit.SECONDS); } - // key 在两次 Redis 操作间隙恰好过期,仍属于锁定失败,需兜底报错 - VUtil.trueThrowBusinessError(true).throwMessage("文件已被锁定"); } else { file.setCurrentLockUserName(UserUtil.getUserName()); fileService.updateById(file); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java index 7cba432a..28c9b097 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsCoaTaskAddQO.java @@ -19,11 +19,17 @@ public class QmsCoaTaskAddQO { @NotBlank(message = "供应商编号不能为空") private String supplierCode; +// /** +// * 物料编号(必传,用于查询 qms_qc_material.id) +// */ +// @NotBlank(message = "物料编号不能为空") +// private String materialNo; + /** - * 物料编号(必传,用于查询 qms_qc_material.id) + * 物料ID */ - @NotBlank(message = "物料编号不能为空") - private String materialNo; + @NotNull(message = "物料ID不能为空") + private Long materialId; /** * 报告要求(必传) diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaTaskService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaTaskService.java index e9d0a4b7..ba3303c6 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaTaskService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IQmsCoaTaskService.java @@ -36,7 +36,7 @@ public interface IQmsCoaTaskService extends IService { /** * 直接发布COA通知任务(状态改为1,填入发送时间) */ - void publish(QmsCoaTaskAddQO qo); + Long publish(QmsCoaTaskAddQO qo); /** * 批量发送(状态改为1,填入发送时间) diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java index cad39428..f58d5afc 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/QmsCoaTaskServiceImpl.java @@ -57,19 +57,19 @@ public class QmsCoaTaskServiceImpl extends ServiceImpl