diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSamplingPlanController.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSamplingPlanController.java index 7bde4291..ed1efc15 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSamplingPlanController.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/controller/QmsSamplingPlanController.java @@ -4,6 +4,7 @@ import com.nflg.qms.admin.service.QmsSamplingPlanControllerService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.FilterIdQO; +import com.nflg.wms.common.pojo.qo.FilterIdsQO; import com.nflg.wms.common.pojo.qo.QmsSamplingPlanAddQO; import com.nflg.wms.common.pojo.qo.QmsSamplingPlanEditQO; import com.nflg.wms.common.pojo.qo.QmsSamplingPlanSearchQO; @@ -45,6 +46,15 @@ public class QmsSamplingPlanController extends BaseController { return ApiResult.success(); } + /** + * 发布抽样方案 + */ + @PostMapping("publish") + public ApiResult publish(@Valid @RequestBody FilterIdsQO request) { + samplingPlanControllerService.publish(request); + return ApiResult.success(); + } + /** * 删除抽样方案 */ diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java index 9c350247..77345b7b 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsInspectionStandardControllerService.java @@ -17,9 +17,9 @@ import com.nflg.wms.repository.entity.QmsInspectionStandard; import com.nflg.wms.repository.entity.QmsInspectionStandardItem; import com.nflg.wms.repository.entity.QmsInspectionStandardItemContent; import com.nflg.wms.repository.mapper.QmsInspectionStandardMapper; -import com.nflg.wms.repository.service.IQmsInspectionStandardService; import com.nflg.wms.repository.service.IQmsInspectionStandardItemContentService; import com.nflg.wms.repository.service.IQmsInspectionStandardItemService; +import com.nflg.wms.repository.service.IQmsInspectionStandardService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -27,9 +27,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; /** @@ -153,7 +151,6 @@ public class QmsInspectionStandardControllerService { // 填充基础字段 detail.setId(standard.getId()); detail.setMaterialId(standard.getMaterialId()); - detail.setInspectionTaskItemId(standard.getInspectionTaskItemId()); detail.setDrawingUrl(standard.getDrawingUrl()); detail.setVersionNo(standard.getVersion() != null ? standard.getVersion().toString() : null); detail.setIsEnabled(standard.getIsEnabled()); @@ -257,7 +254,6 @@ public class QmsInspectionStandardControllerService { QmsInspectionStandard standard = new QmsInspectionStandard(); standard.setMaterialId(qo.getMaterialId()); - standard.setInspectionTaskItemId(qo.getInspectionTaskItemId()); standard.setDrawingUrl(qo.getDrawingUrl()); standard.setVersion(versionNo); standard.setPackagingMethodId(qo.getPackagingMethodId()); @@ -330,7 +326,6 @@ public class QmsInspectionStandardControllerService { // 3. 更新字段(不修改版本号) standard.setMaterialId(qo.getMaterialId()); - standard.setInspectionTaskItemId(qo.getInspectionTaskItemId()); standard.setDrawingUrl(qo.getDrawingUrl()); standard.setPackagingMethodId(qo.getPackagingMethodId()); standard.setInspectionCycle(qo.getInspectionCycle()); diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSamplingPlanControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSamplingPlanControllerService.java index 3c4fb411..d42cd774 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSamplingPlanControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsSamplingPlanControllerService.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.PageData; +import com.nflg.wms.common.pojo.qo.FilterIdsQO; import com.nflg.wms.common.pojo.qo.QmsSamplingPlanAddQO; import com.nflg.wms.common.pojo.qo.QmsSamplingPlanEditQO; import com.nflg.wms.common.pojo.qo.QmsSamplingPlanSearchQO; @@ -318,6 +319,39 @@ public class QmsSamplingPlanControllerService { } } + /** + * 发布抽样方案(批量) + */ + @Transactional(rollbackFor = Exception.class) + public void publish(FilterIdsQO request) { + List ids = request.getIds(); + + // 1. 批量查询抽样方案 + List plans = samplingPlanService.listByIds(ids); + VUtil.trueThrowBusinessError(plans.size() != ids.size()).throwMessage("存在不存在的抽样方案,请检查后重试"); + + // 2. 校验是否存在已发布的方案 + List alreadyPublished = plans.stream() + .filter(p -> p.getPublishStatus() != null && p.getPublishStatus() == 1) + .map(QmsSamplingPlan::getPlanName) + .collect(Collectors.toList()); + VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(alreadyPublished)) + .throwMessage("以下方案已发布,不能重复发布:" + String.join("、", alreadyPublished)); + + // 3. 批量更新发布状态为已发布 + String operator = UserUtil.getUserName(); + Long operatorId = UserUtil.getUserId(); + LocalDateTime now = LocalDateTime.now(); + + samplingPlanService.lambdaUpdate() + .in(QmsSamplingPlan::getId, ids) + .set(QmsSamplingPlan::getPublishStatus, (short) 1) + .set(QmsSamplingPlan::getUpdateUserId, operatorId) + .set(QmsSamplingPlan::getUpdateUserName, operator) + .set(QmsSamplingPlan::getUpdateTime, now) + .update(); + } + /** * 删除抽样方案 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/FilterIdsQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/FilterIdsQO.java new file mode 100644 index 00000000..ddd5d89c --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/FilterIdsQO.java @@ -0,0 +1,18 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors(chain = true) +public class FilterIdsQO { + + /** + * 主键ID列表 + */ + @NotEmpty + private List ids; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardAddQO.java index 8c1c06b8..ff1b1c99 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/QmsInspectionStandardAddQO.java @@ -15,11 +15,6 @@ public class QmsInspectionStandardAddQO { @NotNull(message = "物料ID不能为空") private Long materialId; - /** - * 检验任务项ID - */ - private Long inspectionTaskItemId; - /** * 图纸URL */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardDetailVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardDetailVO.java index cae95beb..f3442461 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardDetailVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/QmsInspectionStandardDetailVO.java @@ -41,11 +41,6 @@ public class QmsInspectionStandardDetailVO { */ private String drawingNoVer; - /** - * 检验任务项ID - */ - private Long inspectionTaskItemId; - /** * 图纸URL */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandard.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandard.java index d0deeada..301fb28e 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandard.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/QmsInspectionStandard.java @@ -31,11 +31,6 @@ public class QmsInspectionStandard implements Serializable { */ private Long materialId; - /** - * 检验任务项ID - */ - private Long inspectionTaskItemId; - /** * 图纸URL */