diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/enums/MoldRecordStatusEnum.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/enums/MoldRecordStatusEnum.java index 57652c768..00dae91ff 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/enums/MoldRecordStatusEnum.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/enums/MoldRecordStatusEnum.java @@ -14,8 +14,7 @@ public enum MoldRecordStatusEnum { PENDING(0, "待完成"), COMPLETED(1, "已完成"), - // 可以根据需要添加其他状态 - CANCELED(2, "已取消"); + REJECTED(2, "已驳回"); @JsonValue private final Integer code; @@ -33,4 +32,4 @@ public enum MoldRecordStatusEnum { } return null; } -} \ No newline at end of file +} diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageReqVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageReqVO.java index fd6ea9bbf..a51b6b883 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageReqVO.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageReqVO.java @@ -56,7 +56,7 @@ public class MoldRepairPageReqVO extends PageParam { @Schema(description = "维修结果") private String repairResult; - @Schema(description = "维修人员") + @Schema(description = "维修人员,传单个用户 ID 可匹配多选记录") private String acceptedBy; @Schema(description = "报修人员") diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java index 435ab2494..a86f49db8 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairPageRespVO.java @@ -24,6 +24,9 @@ public class MoldRepairPageRespVO { @Schema(description = "已完成数量 (status=1)") private Long finishedCount; + @Schema(description = "已驳回数量 (status=2)") + private Long rejectedCount; + @Schema(description = "待维修数量 (repairStatus=0)") private Long pendingRepairCount; diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRejectReqVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRejectReqVO.java new file mode 100644 index 000000000..68877dca3 --- /dev/null +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRejectReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 模具维修记录驳回 Req VO") +@Data +public class MoldRepairRejectReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809") + @NotNull(message = "ID 不能为空") + private Long id; + + @Schema(description = "驳回理由", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "驳回理由不能为空") + private String rejectReason; + +} diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRespVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRespVO.java index af588a608..8d4a32467 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRespVO.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairRespVO.java @@ -74,7 +74,7 @@ public class MoldRepairRespVO { @ExcelProperty("维修结果") private String repairResult; - @Schema(description = "维修人员") + @Schema(description = "维修人员,多个用户 ID 用逗号分隔") @ExcelProperty("维修人员") private String acceptedBy; @@ -100,6 +100,16 @@ public class MoldRepairRespVO { @ExcelProperty("备注") private String remark; + @Schema(description = "驳回理由") + private String rejectReason; + + @Schema(description = "驳回时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime rejectTime; + + @Schema(description = "驳回人") + private String rejectBy; + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") @ColumnWidth(20) diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairSaveReqVO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairSaveReqVO.java index 9afa38124..37ea03f92 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairSaveReqVO.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/controller/admin/moldrepair/vo/MoldRepairSaveReqVO.java @@ -63,7 +63,7 @@ public class MoldRepairSaveReqVO { @Schema(description = "维修结果") private String repairStatus; - @Schema(description = "维修人员") + @Schema(description = "维修人员,多个用户 ID 用逗号分隔") private String acceptedBy; @Schema(description = "报修人员") diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/dataobject/moldrepair/MoldRepairDO.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/dataobject/moldrepair/MoldRepairDO.java index 03fddf99a..c071ba403 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/dataobject/moldrepair/MoldRepairDO.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/dataobject/moldrepair/MoldRepairDO.java @@ -102,6 +102,21 @@ public class MoldRepairDO extends BaseDO { */ private String remark; + /** + * 驳回理由 + */ + private String rejectReason; + + /** + * 驳回时间 + */ + private LocalDateTime rejectTime; + + /** + * 驳回人 + */ + private String rejectBy; + /** * 模具类型 1-模具 2-关键件 */ diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java index d7c7f3740..f316e917f 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/moldrepair/MoldRepairMapper.java @@ -40,7 +40,6 @@ public interface MoldRepairMapper extends BaseMapperX { .betweenIfPresent(MoldRepairDO::getConfirmDate, reqVO.getConfirmDate()) .eqIfPresent(MoldRepairDO::getRepairStatus, reqVO.getRepairStatus()) .eqIfPresent(MoldRepairDO::getRepairResult, reqVO.getRepairResult()) - .eqIfPresent(MoldRepairDO::getAcceptedBy, reqVO.getAcceptedBy()) .eqIfPresent(MoldRepairDO::getRepairReporter, reqVO.getRepairReporter()) .eqIfPresent(MoldRepairDO::getConfirmBy, reqVO.getConfirmBy()) .eqIfPresent(MoldRepairDO::getStatus, reqVO.getStatus()) @@ -56,6 +55,14 @@ public interface MoldRepairMapper extends BaseMapperX { .collect(Collectors.toList()); moldRepairDOLambdaQueryWrapperX.in(MoldRepairDO::getId, idList); } + if (StringUtils.isNotBlank(reqVO.getAcceptedBy())) { + String acceptedBy = reqVO.getAcceptedBy().trim(); + moldRepairDOLambdaQueryWrapperX.and(wrapper -> wrapper + .eq(MoldRepairDO::getAcceptedBy, acceptedBy) + .or().likeRight(MoldRepairDO::getAcceptedBy, acceptedBy + ",") + .or().like(MoldRepairDO::getAcceptedBy, "," + acceptedBy + ",") + .or().likeLeft(MoldRepairDO::getAcceptedBy, "," + acceptedBy)); + } return selectPage(reqVO,moldRepairDOLambdaQueryWrapperX ); } diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/enums/MoldBrandStatusEnum.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/enums/MoldBrandStatusEnum.java index 1b120d588..fcc46a2b8 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/enums/MoldBrandStatusEnum.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/enums/MoldBrandStatusEnum.java @@ -14,7 +14,8 @@ public enum MoldBrandStatusEnum implements IntArrayValuable { STANDBY(1, "待用"), REPAIRING(2, "维修"), SCRAPPED(3, "报废"), - IN_STOCK(4, "在库"); + IN_STOCK(4, "在库"), + OUTSOURCED(5, "外发"); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MoldBrandStatusEnum::getStatus).toArray(); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandPageRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandPageRespVO.java index b42328b39..1139607f6 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandPageRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandPageRespVO.java @@ -29,4 +29,7 @@ public class MoldBrandPageRespVO { @Schema(description = "报废数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Long scrappedCount; + @Schema(description = "外发数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private Long outsourcedCount; + } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandStatusStatisticsRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandStatusStatisticsRespVO.java index 9e43f6fd9..53b9fd6c3 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandStatusStatisticsRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/mold/vo/MoldBrandStatusStatisticsRespVO.java @@ -25,4 +25,7 @@ public class MoldBrandStatusStatisticsRespVO { @Schema(description = "报废数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") private Long scrappedCount; + @Schema(description = "外发数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + private Long outsourcedCount; + } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java index 92290552b..355f2f1fb 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java @@ -236,6 +236,7 @@ public class MoldBrandServiceImpl implements MoldBrandService { respVO.setInStockCount(statistics.getInStockCount()); respVO.setRepairingCount(statistics.getRepairingCount()); respVO.setScrappedCount(statistics.getScrappedCount()); + respVO.setOutsourcedCount(statistics.getOutsourcedCount()); return respVO; } @@ -254,6 +255,7 @@ public class MoldBrandServiceImpl implements MoldBrandService { respVO.setInStockCount(countByStatus(list, MoldBrandStatusEnum.IN_STOCK.getStatus())); respVO.setRepairingCount(countByStatus(list, MoldBrandStatusEnum.REPAIRING.getStatus())); respVO.setScrappedCount(countByStatus(list, MoldBrandStatusEnum.SCRAPPED.getStatus())); + respVO.setOutsourcedCount(countByStatus(list, MoldBrandStatusEnum.OUTSOURCED.getStatus())); return respVO; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java index 75b80d3e4..62761ed82 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java @@ -118,8 +118,7 @@ public class DvRepairController { List dvRepairRespVOList = BeanUtils.toBean(list, DvRepairRespVO.class); for (DvRepairRespVO dvSubjectRespVO : dvRepairRespVOList) { if (dvSubjectRespVO.getAcceptedBy() !=null) { - AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getAcceptedBy())); - dvSubjectRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); + dvSubjectRespVO.setAcceptedBy(buildUserNames(dvSubjectRespVO.getAcceptedBy())); } if (dvSubjectRespVO.getRepairReporter() != null) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getRepairReporter())); @@ -179,6 +178,14 @@ public class DvRepairController { return success(true); } + @PutMapping("/reject") + @Operation(summary = "驳回设备维修记录") + @PreAuthorize("@ss.hasPermission('mes:dv-repair:update')") + public CommonResult rejectDvRepair(@Valid @RequestBody DvRepairRejectReqVO rejectReqVO) { + dvRepairService.rejectDvRepair(rejectReqVO); + return success(true); + } + @PutMapping("/batchUpdate") @Operation(summary = "批量更新维修检验结果") @@ -235,10 +242,7 @@ public class DvRepairController { private PageResult buildCreatorName(PageResult dvSubjectRespVOPageResult) { for (DvRepairRespVO dvSubjectRespVO : dvSubjectRespVOPageResult.getList()) { if (dvSubjectRespVO.getAcceptedBy() !=null) { - AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getAcceptedBy())); - if (user !=null ){ - dvSubjectRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); - } + dvSubjectRespVO.setAcceptedBy(buildUserNames(dvSubjectRespVO.getAcceptedBy())); } if (dvSubjectRespVO.getRepairReporter() != null) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getRepairReporter())); @@ -252,6 +256,12 @@ public class DvRepairController { dvSubjectRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); } } + if (dvSubjectRespVO.getRejectBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getRejectBy())); + if (user != null) { + dvSubjectRespVO.setRejectBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } } return dvSubjectRespVOPageResult; @@ -260,10 +270,7 @@ public class DvRepairController { private List buildCreatorName(List dvRepairRespVOList) { for (DvRepairRespVO dvRepairRespVO : dvRepairRespVOList) { if (dvRepairRespVO.getAcceptedBy() != null) { - AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvRepairRespVO.getAcceptedBy())); - if (user != null) { - dvRepairRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); - } + dvRepairRespVO.setAcceptedBy(buildUserNames(dvRepairRespVO.getAcceptedBy())); } if (dvRepairRespVO.getRepairReporter() != null) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvRepairRespVO.getRepairReporter())); @@ -277,9 +284,37 @@ public class DvRepairController { dvRepairRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); } } + if (dvRepairRespVO.getRejectBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvRepairRespVO.getRejectBy())); + if (user != null) { + dvRepairRespVO.setRejectBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } } return dvRepairRespVOList; } + private String buildUserNames(String userIds) { + if (userIds == null || userIds.trim().isEmpty()) { + return userIds; + } + return Arrays.stream(userIds.split(",")) + .map(String::trim) + .filter(userId -> !userId.isEmpty()) + .map(this::buildUserName) + .collect(Collectors.joining(",")); + } + + private String buildUserName(String userId) { + try { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(userId)); + if (user != null) { + return "(" + user.getUsername() + ")" + user.getNickname(); + } + } catch (NumberFormatException ignored) { + } + return userId; + } + } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/MoldRecordStatusEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/MoldRecordStatusEnum.java index 94e888d03..6c5e8845f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/MoldRecordStatusEnum.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/MoldRecordStatusEnum.java @@ -14,8 +14,7 @@ public enum MoldRecordStatusEnum { PENDING(0, "待完成"), COMPLETED(1, "已完成"), - // 可以根据需要添加其他状态 - CANCELED(2, "已取消"); + REJECTED(2, "已驳回"); @JsonValue private final Integer code; @@ -33,4 +32,4 @@ public enum MoldRecordStatusEnum { } return null; } -} \ No newline at end of file +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/RepairStatusEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/RepairStatusEnum.java index 4ecebdead..0412a59b4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/RepairStatusEnum.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/RepairStatusEnum.java @@ -16,7 +16,8 @@ import java.util.stream.Collectors; public enum RepairStatusEnum { PENDING(0, "待完成"), - COMPLETED(1, "已完成"); + COMPLETED(1, "已完成"), + REJECTED(2, "已驳回"); private final Integer code; private final String description; @@ -84,4 +85,4 @@ public enum RepairStatusEnum { } return map; } -} \ No newline at end of file +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java index c0dc24899..52a3c1313 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java @@ -60,7 +60,7 @@ public class DvRepairPageReqVO extends PageParam { @Schema(description = "故障等级 1-一般 2-严重 3-紧急", example = "1") private Integer faultLevel; - @Schema(description = "维修人员") + @Schema(description = "维修人员,传单个用户 ID 可匹配多选记录") private String acceptedBy; @Schema(description = "报修人员") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java index 1cddaddaf..e394f576e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageRespVO.java @@ -24,6 +24,9 @@ public class DvRepairPageRespVO { @Schema(description = "已完成数量 (status=1)") private Long finishedCount; + @Schema(description = "已驳回数量 (status=2)") + private Long rejectedCount; + @Schema(description = "待维修数量 (repairStatus=0)") private Long pendingRepairCount; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRejectReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRejectReqVO.java new file mode 100644 index 000000000..6d9c58a79 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRejectReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 设备维修记录驳回 Req VO") +@Data +public class DvRepairRejectReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809") + @NotNull(message = "ID 不能为空") + private Long id; + + @Schema(description = "驳回理由", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "驳回理由不能为空") + private String rejectReason; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java index 7c9fdb1da..b96776d80 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java @@ -124,7 +124,7 @@ public class DvRepairRespVO { @Schema(description = "维修后图片,多个用逗号分隔") private String repairedImages; - @Schema(description = "维修人员") + @Schema(description = "维修人员,多个用户 ID 用逗号分隔") @ExcelProperty("维修人员") private String acceptedBy; @@ -147,6 +147,18 @@ public class DvRepairRespVO { // @ExcelProperty("备注") private String remark; + @Schema(description = "驳回理由") + private String rejectReason; + + @Schema(description = "驳回时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime rejectTime; + + @Schema(description = "驳回人") + private String rejectBy; + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") @ColumnWidth(20) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java index aaf9f3677..1d480916e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java @@ -90,7 +90,7 @@ public class DvRepairSaveReqVO { @Schema(description = "维修后图片,多个用逗号分隔") private String repairedImages; - @Schema(description = "维修人员") + @Schema(description = "维修人员,多个用户 ID 用逗号分隔") private String acceptedBy; @Schema(description = "报修人员") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java index 4c0687adb..386746ae6 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldrepair/MoldRepairController.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairL import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairLineSaveReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairUpdateReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.*; +import cn.iocoder.yudao.module.common.controller.admin.moldrepair.enums.MoldRecordStatusEnum; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairDO; import cn.iocoder.yudao.module.common.dal.dataobject.moldrepair.MoldRepairLineDO; import cn.iocoder.yudao.module.mes.service.moldrepair.MoldRepairService; @@ -119,8 +120,7 @@ public class MoldRepairController { List moldRepairRespVOList = BeanUtils.toBean(list, MoldRepairRespVO.class); for (MoldRepairRespVO moldSubjectRespVO : moldRepairRespVOList) { if (moldSubjectRespVO.getAcceptedBy() !=null) { - AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getAcceptedBy())); - moldSubjectRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); + moldSubjectRespVO.setAcceptedBy(buildUserNames(moldSubjectRespVO.getAcceptedBy())); } if (moldSubjectRespVO.getRepairReporter() != null) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getRepairReporter())); @@ -133,8 +133,8 @@ public class MoldRepairController { moldSubjectRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); } if (moldSubjectRespVO.getStatus() !=null) { - moldSubjectRespVO.setStatusName(moldSubjectRespVO.getStatus() != null ? - (moldSubjectRespVO.getStatus() == 0 ? "待完成" : "已完成") : null); + MoldRecordStatusEnum statusEnum = MoldRecordStatusEnum.getByCode(moldSubjectRespVO.getStatus()); + moldSubjectRespVO.setStatusName(statusEnum != null ? statusEnum.getName() : null); } if (moldSubjectRespVO.getRepairStatus() !=null) { moldSubjectRespVO.setRepairStatusName(moldSubjectRespVO.getRepairStatus() != null ? @@ -172,6 +172,14 @@ public class MoldRepairController { return success(true); } + @PutMapping("/reject") + @Operation(summary = "驳回模具维修记录") + @PreAuthorize("@ss.hasPermission('mes:mold-repair:update')") + public CommonResult rejectMoldRepair(@Valid @RequestBody MoldRepairRejectReqVO rejectReqVO) { + moldRepairService.rejectMoldRepair(rejectReqVO); + return success(true); + } + @PutMapping("/batchUpdate") @Operation(summary = "批量更新维修检验结果") @@ -224,10 +232,7 @@ public class MoldRepairController { private PageResult buildCreatorName(PageResult moldSubjectRespVOPageResult) { for (MoldRepairRespVO moldSubjectRespVO : moldSubjectRespVOPageResult.getList()) { if (moldSubjectRespVO.getAcceptedBy() !=null) { - AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getAcceptedBy())); - if (user!=null) { - moldSubjectRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); - } + moldSubjectRespVO.setAcceptedBy(buildUserNames(moldSubjectRespVO.getAcceptedBy())); } if (moldSubjectRespVO.getRepairReporter() != null) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getRepairReporter())); @@ -241,6 +246,12 @@ public class MoldRepairController { moldSubjectRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); } } + if (moldSubjectRespVO.getRejectBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldSubjectRespVO.getRejectBy())); + if (user != null) { + moldSubjectRespVO.setRejectBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } } return moldSubjectRespVOPageResult; @@ -249,10 +260,7 @@ public class MoldRepairController { private List buildCreatorName(List moldRepairRespVOList) { for (MoldRepairRespVO moldRepairRespVO : moldRepairRespVOList) { if (moldRepairRespVO.getAcceptedBy() != null) { - AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldRepairRespVO.getAcceptedBy())); - if (user != null) { - moldRepairRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); - } + moldRepairRespVO.setAcceptedBy(buildUserNames(moldRepairRespVO.getAcceptedBy())); } if (moldRepairRespVO.getRepairReporter() != null) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldRepairRespVO.getRepairReporter())); @@ -266,9 +274,37 @@ public class MoldRepairController { moldRepairRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); } } + if (moldRepairRespVO.getRejectBy() != null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(moldRepairRespVO.getRejectBy())); + if (user != null) { + moldRepairRespVO.setRejectBy("(" + user.getUsername() + ")" + user.getNickname()); + } + } } return moldRepairRespVOList; } + private String buildUserNames(String userIds) { + if (userIds == null || userIds.trim().isEmpty()) { + return userIds; + } + return Arrays.stream(userIds.split(",")) + .map(String::trim) + .filter(userId -> !userId.isEmpty()) + .map(this::buildUserName) + .collect(Collectors.joining(",")); + } + + private String buildUserName(String userId) { + try { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(userId)); + if (user != null) { + return "(" + user.getUsername() + ")" + user.getNickname(); + } + } catch (NumberFormatException ignored) { + } + return userId; + } + } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java index 37d071199..371a5026e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java @@ -158,6 +158,21 @@ public class DvRepairDO extends BaseDO { */ private String remark; + /** + * 驳回理由 + */ + private String rejectReason; + + /** + * 驳回时间 + */ + private LocalDateTime rejectTime; + + /** + * 驳回人 + */ + private String rejectBy; + /** * 设备类型 1-设备 2-关键件 */ diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java index 1102b337f..43b0fbdbf 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java @@ -50,7 +50,6 @@ public interface DvRepairMapper extends BaseMapperX { .betweenIfPresent(DvRepairDO::getFinishDate, reqVO.getFinishDate()) .betweenIfPresent(DvRepairDO::getConfirmDate, reqVO.getConfirmDate()) .eqIfPresent(DvRepairDO::getRepairResult, reqVO.getRepairResult()) - .eqIfPresent(DvRepairDO::getAcceptedBy, reqVO.getAcceptedBy()) .eqIfPresent(DvRepairDO::getRepairReporter, reqVO.getRepairReporter()) .eqIfPresent(DvRepairDO::getConfirmBy, reqVO.getConfirmBy()) .eqIfPresent(DvRepairDO::getStatus, reqVO.getStatus()) @@ -67,6 +66,14 @@ public interface DvRepairMapper extends BaseMapperX { .collect(Collectors.toList()); dvRepairDOLambdaQueryWrapperX.in(DvRepairDO::getId, idList); } + if (StringUtils.isNotBlank(reqVO.getAcceptedBy())) { + String acceptedBy = reqVO.getAcceptedBy().trim(); + dvRepairDOLambdaQueryWrapperX.and(wrapper -> wrapper + .eq(DvRepairDO::getAcceptedBy, acceptedBy) + .or().likeRight(DvRepairDO::getAcceptedBy, acceptedBy + ",") + .or().like(DvRepairDO::getAcceptedBy, "," + acceptedBy + ",") + .or().likeLeft(DvRepairDO::getAcceptedBy, "," + acceptedBy)); + } return selectPage(reqVO,dvRepairDOLambdaQueryWrapperX ); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java index cd5f78688..943db20b3 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java @@ -76,6 +76,8 @@ public interface DvRepairService { void updateDvRepairStatus(@Valid DvRepirUpdateReqVO updateReqVO); + void rejectDvRepair(@Valid DvRepairRejectReqVO rejectReqVO); + List getRepairListByDeviceId(Long deviceId, String code, String startTime, String endTime, String ids); Long getRepairListCountByRepairStatus(); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java index 695a974ce..a7d6e3375 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.erp.controller.admin.autocode.util.AutoCodeUtil; import cn.iocoder.yudao.module.mes.controller.admin.dashboard.vo.dashboard.EventStatisticsVO; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.enums.RepairResultEnum; @@ -101,7 +102,7 @@ public class DvRepairServiceImpl implements DvRepairService { templateParams.put("createTime", formatNotifyDateTime( dvRepair.getCreateTime() != null ? dvRepair.getCreateTime() : LocalDateTime.now())); - mesNotifyMessageService.sendToAdmin(dvRepair.getAcceptedBy(), DV_REPAIR_CREATE_NOTIFY_TEMPLATE_CODE, + mesNotifyMessageService.sendToAdmins(dvRepair.getAcceptedBy(), DV_REPAIR_CREATE_NOTIFY_TEMPLATE_CODE, templateParams, "设备维修单", dvRepair.getId()); } @@ -228,6 +229,7 @@ public class DvRepairServiceImpl implements DvRepairService { respVO.setAllCount((long) allList.size()); respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setRejectedCount(allList.stream().filter(item -> RepairStatusEnum.REJECTED.getCode().equals(item.getStatus())).count()); respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count()); respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count()); respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count()); @@ -346,6 +348,22 @@ public class DvRepairServiceImpl implements DvRepairService { } + @Override + public void rejectDvRepair(DvRepairRejectReqVO rejectReqVO) { + DvRepairDO dvRepairDO = dvRepairMapper.selectById(rejectReqVO.getId()); + if (dvRepairDO == null) { + throw exception(DV_REPAIR_NOT_EXISTS); + } + dvRepairDO.setStatus(RepairStatusEnum.REJECTED.getCode()); + dvRepairDO.setRejectReason(rejectReqVO.getRejectReason()); + dvRepairDO.setRejectTime(LocalDateTime.now()); + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + if (loginUserId != null) { + dvRepairDO.setRejectBy(String.valueOf(loginUserId)); + } + dvRepairMapper.updateById(dvRepairDO); + } + @Override public List getRepairListByDeviceId(Long deviceId, String code, String startTime, String endTime, String ids) { DeviceLedgerDO deviceLedgerDO = getDeviceByIdOrCode(deviceId, code); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java index 63da1388c..8f2568706 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairService.java @@ -76,6 +76,8 @@ public interface MoldRepairService { void updateMoldRepairStatus(@Valid MoldRepairUpdateReqVO updateReqVO); + void rejectMoldRepair(@Valid MoldRepairRejectReqVO rejectReqVO); + List getRepairListByMoldId(Long moldId, String code, String startTime, String endTime, String ids); Long getRepairListCountByRepairStatus(); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java index 3eec3280e..746ae0cc4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldrepair/MoldRepairServiceImpl.java @@ -3,9 +3,11 @@ package cn.iocoder.yudao.module.mes.service.moldrepair; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldBrandDO; import cn.iocoder.yudao.module.common.dal.dataobject.mold.MoldDO; import cn.iocoder.yudao.module.common.dal.mysql.mold.MoldBrandMapper; +import cn.iocoder.yudao.module.common.controller.admin.moldrepair.enums.MoldRecordStatusEnum; import cn.iocoder.yudao.module.common.enums.MoldBrandStatusEnum; import cn.iocoder.yudao.module.erp.controller.admin.autocode.util.AutoCodeUtil; import cn.iocoder.yudao.module.mes.controller.admin.dashboard.vo.dashboard.EventStatisticsVO; @@ -13,6 +15,7 @@ import cn.iocoder.yudao.module.common.controller.admin.moldrepair.enums.RepairRe import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairLineRespVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairLineSaveReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairUpdateReqVO; +import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairRejectReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairPageReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairSaveReqVO; import cn.iocoder.yudao.module.common.controller.admin.moldrepair.vo.MoldRepairRespVO; @@ -114,7 +117,7 @@ public class MoldRepairServiceImpl implements MoldRepairService { templateParams.put("createTime", formatNotifyDateTime( moldRepair.getCreateTime() != null ? moldRepair.getCreateTime() : LocalDateTime.now())); - mesNotifyMessageService.sendToAdmin(moldRepair.getAcceptedBy(), MOLD_REPAIR_CREATE_NOTIFY_TEMPLATE_CODE, + mesNotifyMessageService.sendToAdmins(moldRepair.getAcceptedBy(), MOLD_REPAIR_CREATE_NOTIFY_TEMPLATE_CODE, templateParams, "模具维修单", moldRepair.getId()); } @@ -195,6 +198,7 @@ public class MoldRepairServiceImpl implements MoldRepairService { respVO.setAllCount((long) allList.size()); respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count()); respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count()); + respVO.setRejectedCount(allList.stream().filter(item -> MoldRecordStatusEnum.REJECTED.getCode().equals(item.getStatus())).count()); respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count()); respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count()); respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count()); @@ -315,6 +319,22 @@ public class MoldRepairServiceImpl implements MoldRepairService { } + @Override + public void rejectMoldRepair(MoldRepairRejectReqVO rejectReqVO) { + MoldRepairDO moldRepairDO = moldRepairMapper.selectById(rejectReqVO.getId()); + if (moldRepairDO == null) { + throw exception(MOLD_REPAIR_NOT_EXISTS); + } + moldRepairDO.setStatus(MoldRecordStatusEnum.REJECTED.getCode()); + moldRepairDO.setRejectReason(rejectReqVO.getRejectReason()); + moldRepairDO.setRejectTime(LocalDateTime.now()); + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + if (loginUserId != null) { + moldRepairDO.setRejectBy(String.valueOf(loginUserId)); + } + moldRepairMapper.updateById(moldRepairDO); + } + @Override public List getRepairListByMoldId(Long moldId, String code, String startTime, String endTime, String ids) { MoldBrandDO moldDO = getMoldByIdOrCode(moldId, code);