From b3c0caf4fa8d0c69e90d37238afb3c16edb0fdba Mon Sep 17 00:00:00 2001 From: wangfs <15029758498@163.com> Date: Tue, 2 Dec 2025 01:21:16 +0800 Subject: [PATCH] 巡查计划明细及巡查计划创建优化 --- urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/string/StrUtils.java | 26 ++++++++++++++++++++++---- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanCommitController.java | 6 +++--- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java | 13 ++++++++++++- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitPageReqVO.java | 56 ++++++++++++++++++++++---------------------------------- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitRespVO.java | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitSaveReqVO.java | 29 +++++++++++++++++++---------- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java | 4 ++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanUpdateReqVO.java | 1 - urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/MaintainPlanController.java | 10 ++++++++-- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanCommitDO.java | 8 ++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanCommitMapper.java | 34 ++++++++++------------------------ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java | 19 ++++++++++--------- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/PlanConstants.java | 7 +++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java | 2 +- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java | 36 +++++++++++++++++++++++++++++++----- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java | 2 +- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java | 56 +++++++++++++++++++++++++++++++++----------------------- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanService.java | 2 +- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java | 67 +++++++++++++++++++++++++++++++++++++++++-------------------------- urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanCommitMapper.xml | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 20 files changed, 360 insertions(+), 172 deletions(-) diff --git a/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/string/StrUtils.java b/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/string/StrUtils.java index 2fbdc41..7f125ef 100644 --- a/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/string/StrUtils.java +++ b/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/string/StrUtils.java @@ -3,12 +3,11 @@ package com.zteits.urbanops.framework.common.util.string; import cn.hutool.core.text.StrPool; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import org.aspectj.lang.JoinPoint; +import org.springframework.util.StringUtils; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -104,4 +103,23 @@ public class StrUtils { }); } + /** + * 图片处理 + * @param img 图片 + * @param url 地址 + * @return 图片列表 + */ + public static List imgProcess(String img, String url) { + List list = new ArrayList<>(); + if (StringUtils.isEmpty(img)) { + return list; + } + List imgs = JSON.parseArray(img, String.class); + for (String imgStr : imgs) { + list.add(url + imgStr); + } + + return list; + } + } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanCommitController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanCommitController.java index 8cca41f..56e51ca 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanCommitController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanCommitController.java @@ -30,7 +30,7 @@ import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanCo @Tag(name = "管理后台 - 巡检计划提交明细") @RestController -@RequestMapping("/garden/inspection-plan-commit") +@RequestMapping("/garden/inspection-plan-commit/") @Validated public class InspectionPlanCommitController { @@ -83,7 +83,7 @@ public class InspectionPlanCommitController { @Operation(summary = "获得巡检计划提交明细分页") @PreAuthorize("@ss.hasPermission('garden:inspection-plan-commit:query')") public CommonResult> getInspectionPlanCommitPage(@Valid InspectionPlanCommitPageReqVO pageReqVO) { - PageResult pageResult = inspectionPlanCommitService.getInspectionPlanCommitPage(pageReqVO); + PageResult pageResult = inspectionPlanCommitService.getInspectionPlanCommitPage(pageReqVO); return success(BeanUtils.toBean(pageResult, InspectionPlanCommitRespVO.class)); } @@ -94,7 +94,7 @@ public class InspectionPlanCommitController { public void exportInspectionPlanCommitExcel(@Valid InspectionPlanCommitPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = inspectionPlanCommitService.getInspectionPlanCommitPage(pageReqVO).getList(); + List list = inspectionPlanCommitService.getInspectionPlanCommitPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "巡检计划提交明细.xls", "数据", InspectionPlanCommitRespVO.class, BeanUtils.toBean(list, InspectionPlanCommitRespVO.class)); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java index 53c7ac7..b559270 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java @@ -1,6 +1,7 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan; import jakarta.validation.constraints.NotBlank; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -18,12 +19,16 @@ import com.zteits.urbanops.framework.common.pojo.PageParam; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import static com.alibaba.druid.util.FnvHash.Constants.LOG; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.error; import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PLAN_RATE_VALUE_ERROR; import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO; @@ -33,6 +38,7 @@ import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanSe @RestController @RequestMapping("/garden/inspection-plan") @Validated +@Slf4j public class InspectionPlanController { @Resource @@ -41,7 +47,12 @@ public class InspectionPlanController { @PostMapping("/create") @Operation(summary = "创建巡检计划汇总") @PreAuthorize("@ss.hasPermission('garden:inspection-plan:create')") - public CommonResult createInspectionPlan(@Valid @RequestBody InspectionPlanSaveReqVO createReqVO) { + public CommonResult createInspectionPlan(@Valid @RequestBody InspectionPlanSaveReqVO createReqVO) { + if(!createReqVO.verify()){ + log.warn("次数值范围:1-20或者分数格式:1/3, rateValue={}", createReqVO.getRateValue()); + return error(PLAN_RATE_VALUE_ERROR); + } + return inspectionPlanService.createInspectionPlan(createReqVO); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitPageReqVO.java index ec1a930..09b9f89 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitPageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitPageReqVO.java @@ -1,40 +1,48 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; import lombok.*; + +import java.time.LocalDate; import io.swagger.v3.oas.annotations.media.Schema; import com.zteits.urbanops.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; @Schema(description = "管理后台 - 巡检计划提交明细分页 Request VO") @Data public class InspectionPlanCommitPageReqVO extends PageParam { - @Schema(description = "批次号") - private String batchNo; @Schema(description = "计划编码") private String planNo; + @Schema(description = "计划名称") + private String planName; + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政") private String busiLine; - @Schema(description = "归属(一级部门id)", example = "18172") + @Schema(description = "计划属性:1:标准计划;2:临时计划", example = "1") + private Integer planAttr; + + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", example = "2001") + private Integer planTypeId; + + @Schema(description = "归属(一级部门id)", example = "20621") private Long companyId; - @Schema(description = "部门ID(道路负责部门id)", example = "9510") + @Schema(description = "部门ID(道路负责部门id)", example = "2714") private Long deptId; - @Schema(description = "道路ID", example = "21939") - private Long roadId; + @Schema(description = "道路ID", example = "12917") + private String roadName; - @Schema(description = "图片地址host") - private String imgHost; + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", example = "10") + private Integer levelId; - @Schema(description = "巡检照片") - private String img; + @Schema(description = "提交人", example = "芋艿") + private String userName; @Schema(description = "巡检结果: 1:正常;2:异常") private Integer inspectionState; @@ -42,30 +50,10 @@ public class InspectionPlanCommitPageReqVO extends PageParam { @Schema(description = "转交状态: 1:未转交;2:已转交") private Integer transState; - @Schema(description = "转交问题单编码") - private String transWorkNo; - @Schema(description = "完成时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] finishTime; - - @Schema(description = "提交人用户ID", example = "30987") - private Long userId; - - @Schema(description = "提交人", example = "赵六") - private String userName; + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate finishTime; @Schema(description = "备注", example = "你猜") private String remark; - - @Schema(description = "创建者", example = "张三") - private String creatorName; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @Schema(description = "更新者", example = "赵六") - private String updaterName; - } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitRespVO.java index 5e6359b..13a54ea 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitRespVO.java @@ -2,6 +2,7 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.*; import java.time.LocalDateTime; import cn.idev.excel.annotation.*; @@ -10,51 +11,67 @@ import cn.idev.excel.annotation.*; @ExcelIgnoreUnannotated public class InspectionPlanCommitRespVO { - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25349") - @ExcelProperty("ID") - private Long id; - - @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("批次号") - private String batchNo; - - @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "计划编码") @ExcelProperty("计划编码") private String planNo; - @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "计划名称") + @ExcelProperty("计划名称") + private String planName; + + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政") @ExcelProperty("业务线: yl-园林;wy-物业:sz-市政") private String busiLine; - @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "18172") + @Schema(description = "道路ID", example = "12917") + @ExcelProperty("道路ID") + private Long roadId; + + @Schema(description = "道路名称", example = "") + @ExcelProperty("道路名称") + private String roadName; + + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", example = "10") + @ExcelProperty("养护级别") + private Integer levelId; + + @Schema(description = "计划属性:1:标准计划;2:临时计划", example = "1") + private Integer planAttr; + + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", example = "24742") + @ExcelProperty("养护类型") + private Integer planTypeId; + + + @Schema(description = "归属(一级部门id)", example = "20621") @ExcelProperty("归属(一级部门id)") private Long companyId; - @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "9510") + @Schema(description = "部门ID(道路负责部门id)", example = "2714") @ExcelProperty("部门ID(道路负责部门id)") private Long deptId; - @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21939") - @ExcelProperty("道路ID") - private Long roadId; - - @Schema(description = "图片地址host", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "图片地址host") @ExcelProperty("图片地址host") private String imgHost; - @Schema(description = "巡检照片", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "巡检照片") @ExcelProperty("巡检照片") private String img; - @Schema(description = "巡检结果: 1:正常;2:异常", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "巡检照片") + @ExcelProperty("巡检照片") + private List imgList; + + @Schema(description = "巡检结果: 1:正常;2:异常") @ExcelProperty("巡检结果: 1:正常;2:异常") private Integer inspectionState; - @Schema(description = "转交状态: 1:未转交;2:已转交", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "转交状态: 1:未转交;2:已转交") @ExcelProperty("转交状态: 1:未转交;2:已转交") private Integer transState; - @Schema(description = "转交问题单编码", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "转交问题单编码") @ExcelProperty("转交问题单编码") private String transWorkNo; @@ -62,27 +79,35 @@ public class InspectionPlanCommitRespVO { @ExcelProperty("完成时间") private LocalDateTime finishTime; - @Schema(description = "提交人用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30987") + @Schema(description = "提交人用户ID", example = "32294") @ExcelProperty("提交人用户ID") private Long userId; - @Schema(description = "提交人", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "提交人", example = "芋艿") @ExcelProperty("提交人") private String userName; - @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @Schema(description = "角色ID", example = "23375") + @ExcelProperty("角色ID") + private Long roleId; + + @Schema(description = "角色名称", example = "王五") + @ExcelProperty("角色名称") + private String roleName; + + @Schema(description = "备注", example = "你猜") @ExcelProperty("备注") private String remark; - @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @Schema(description = "创建者", example = "芋艿") @ExcelProperty("创建者") private String creatorName; - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "创建时间") @ExcelProperty("创建时间") private LocalDateTime createTime; - @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "更新者", example = "芋艿") @ExcelProperty("更新者") private String updaterName; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitSaveReqVO.java index 7686929..8df6b4f 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanCommitSaveReqVO.java @@ -2,14 +2,15 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.time.LocalDate; import jakarta.validation.constraints.*; -import java.time.LocalDateTime; @Schema(description = "管理后台 - 巡检计划提交明细新增/修改 Request VO") @Data public class InspectionPlanCommitSaveReqVO { - @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25349") + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6813") private Long id; @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) @@ -24,15 +25,15 @@ public class InspectionPlanCommitSaveReqVO { @NotEmpty(message = "业务线: yl-园林;wy-物业:sz-市政不能为空") private String busiLine; - @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "18172") + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "20621") @NotNull(message = "归属(一级部门id)不能为空") private Long companyId; - @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "9510") + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2714") @NotNull(message = "部门ID(道路负责部门id)不能为空") private Long deptId; - @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21939") + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12917") @NotNull(message = "道路ID不能为空") private Long roadId; @@ -57,25 +58,33 @@ public class InspectionPlanCommitSaveReqVO { private String transWorkNo; @Schema(description = "完成时间") - private LocalDateTime finishTime; + private LocalDate finishTime; - @Schema(description = "提交人用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30987") + @Schema(description = "提交人用户ID", example = "32294") @NotNull(message = "提交人用户ID不能为空") private Long userId; - @Schema(description = "提交人", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "提交人", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotEmpty(message = "提交人不能为空") private String userName; + @Schema(description = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23375") + @NotNull(message = "角色ID不能为空") + private Long roleId; + + @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "角色名称不能为空") + private String roleName; + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") @NotEmpty(message = "备注不能为空") private String remark; - @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @Schema(description = "创建者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotEmpty(message = "创建者不能为空") private String creatorName; - @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @Schema(description = "更新者", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @NotEmpty(message = "更新者不能为空") private String updaterName; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java index 5ea6977..4abfdc2 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java @@ -1,5 +1,6 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; +import com.zteits.urbanops.module.garden.util.StringValidateUtil; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import lombok.*; @@ -66,4 +67,7 @@ public class InspectionPlanSaveReqVO { @Size(min = 1) private Set roleIds; + public boolean verify(){ + return StringValidateUtil.validate(rateValue); + } } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanUpdateReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanUpdateReqVO.java index 7788a86..98d2e5c 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanUpdateReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanUpdateReqVO.java @@ -70,5 +70,4 @@ public class InspectionPlanUpdateReqVO { @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") @NotEmpty(message = "备注不能为空") private String remark; - } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/MaintainPlanController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/MaintainPlanController.java index 740ac4e..41357bf 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/MaintainPlanController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/MaintainPlanController.java @@ -1,6 +1,7 @@ package com.zteits.urbanops.module.garden.controller.admin.maintainplan; import jakarta.validation.constraints.NotBlank; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -18,12 +19,15 @@ import com.zteits.urbanops.framework.common.pojo.PageParam; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import static com.zteits.urbanops.framework.common.pojo.CommonResult.error; import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PLAN_RATE_VALUE_ERROR; import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDO; @@ -33,6 +37,7 @@ import com.zteits.urbanops.module.garden.service.maintainplan.MaintainPlanServic @RestController @RequestMapping("/garden/maintain-plan") @Validated +@Slf4j public class MaintainPlanController { @Resource @@ -41,9 +46,10 @@ public class MaintainPlanController { @PostMapping("/create") @Operation(summary = "创建养护计划汇总") @PreAuthorize("@ss.hasPermission('garden:maintain-plan:create')") - public CommonResult createMaintainPlan(@Valid @RequestBody MaintainPlanSaveReqVO createReqVO) { + public CommonResult createMaintainPlan(@Valid @RequestBody MaintainPlanSaveReqVO createReqVO) { if(!createReqVO.verify()){ - + log.warn("次数值范围:1-20或者分数格式:1/3, rateValue={}", createReqVO.getRateValue()); + return error(PLAN_RATE_VALUE_ERROR); } return maintainPlanService.createMaintainPlan(createReqVO); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanCommitDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanCommitDO.java index c8500a4..f28cb0e 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanCommitDO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanCommitDO.java @@ -82,6 +82,14 @@ public class InspectionPlanCommitDO extends BaseDO { */ private String userName; /** + * 角色ID + */ + private Long roleId; + /** + * 角色名称 + */ + private String roleName; + /** * 备注 */ private String remark; diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanCommitMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanCommitMapper.java index b271038..d279d59 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanCommitMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanCommitMapper.java @@ -1,12 +1,13 @@ package com.zteits.urbanops.module.garden.dal.mysql.inspectionplan; +import java.util.*; -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanCommitDO; import org.apache.ibatis.annotations.Mapper; import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; +import org.apache.ibatis.annotations.Param; /** * 巡检计划提交明细 Mapper @@ -16,27 +17,12 @@ import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; @Mapper public interface InspectionPlanCommitMapper extends BaseMapperX { - default PageResult selectPage(InspectionPlanCommitPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(InspectionPlanCommitDO::getBatchNo, reqVO.getBatchNo()) - .eqIfPresent(InspectionPlanCommitDO::getPlanNo, reqVO.getPlanNo()) - .eqIfPresent(InspectionPlanCommitDO::getBusiLine, reqVO.getBusiLine()) - .eqIfPresent(InspectionPlanCommitDO::getCompanyId, reqVO.getCompanyId()) - .eqIfPresent(InspectionPlanCommitDO::getDeptId, reqVO.getDeptId()) - .eqIfPresent(InspectionPlanCommitDO::getRoadId, reqVO.getRoadId()) - .eqIfPresent(InspectionPlanCommitDO::getImgHost, reqVO.getImgHost()) - .eqIfPresent(InspectionPlanCommitDO::getImg, reqVO.getImg()) - .eqIfPresent(InspectionPlanCommitDO::getInspectionState, reqVO.getInspectionState()) - .eqIfPresent(InspectionPlanCommitDO::getTransState, reqVO.getTransState()) - .eqIfPresent(InspectionPlanCommitDO::getTransWorkNo, reqVO.getTransWorkNo()) - .betweenIfPresent(InspectionPlanCommitDO::getFinishTime, reqVO.getFinishTime()) - .eqIfPresent(InspectionPlanCommitDO::getUserId, reqVO.getUserId()) - .likeIfPresent(InspectionPlanCommitDO::getUserName, reqVO.getUserName()) - .eqIfPresent(InspectionPlanCommitDO::getRemark, reqVO.getRemark()) - .likeIfPresent(InspectionPlanCommitDO::getCreatorName, reqVO.getCreatorName()) - .betweenIfPresent(InspectionPlanCommitDO::getCreateTime, reqVO.getCreateTime()) - .likeIfPresent(InspectionPlanCommitDO::getUpdaterName, reqVO.getUpdaterName()) - .orderByDesc(InspectionPlanCommitDO::getId)); - } + /* 自定义 SQL 分页查询(复杂联表场景,XML 方式) + * @param page 分页上下文 + * @param reqDTO 查询条件 + * @return 分页结果 + */ + IPage selectForPage(IPage page, @Param("req") InspectionPlanCommitPageReqVO reqDTO, @Param("busiLineList") List busiLineList); + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java index 272b8d2..68b83fe 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java @@ -82,20 +82,21 @@ public interface ErrorCodeConstants { ErrorCode WATER_FEE_NOT_EXISTS = new ErrorCode(1-100-003-013, "水费录入信息不存在"); // ========== 巡检计划汇总 TODO 补充编号 ========== - ErrorCode INSPECTION_PLAN_NOT_EXISTS = new ErrorCode(1-100-100-001, "巡检计划汇总不存在"); - ErrorCode INSPECTION_CYCLE_ID_ERROR = new ErrorCode(1-100-100-002, "周期id错误"); + ErrorCode INSPECTION_PLAN_NOT_EXISTS = new ErrorCode(1-100-007-001, "巡检计划汇总不存在"); + ErrorCode INSPECTION_CYCLE_ID_ERROR = new ErrorCode(1-100-007-002, "周期id错误"); ErrorCode INSPECTION_CYCLE_ERROR = new ErrorCode(1-200-100-003, "获取两个时间之间间隔天数错误"); - ErrorCode INSPECTION_PLAN_EXISTS = new ErrorCode(1-200-100-004, "道路对应类型已存在记录"); - ErrorCode INSPECTION_PLAN_NOT_ALLOW_DELETE = new ErrorCode(1-200-100-005, "计划已开始执行不能删除"); + ErrorCode INSPECTION_PLAN_EXISTS = new ErrorCode(1-200-100-007, "道路对应类型已存在记录"); + ErrorCode INSPECTION_PLAN_NOT_ALLOW_DELETE = new ErrorCode(1-100-007-005, "计划已开始执行不能删除"); // ========== 养护计划汇总 TODO 补充编号 ========== - ErrorCode MAINTAIN_PLAN_NOT_EXISTS = new ErrorCode(1-200-200-001, "养护计划汇总不存在"); + ErrorCode MAINTAIN_PLAN_NOT_EXISTS = new ErrorCode(1-100-007-001, "养护计划汇总不存在"); //========== 频次 TODO 补充编号 ========== - ErrorCode PLAN_RATE_EXISTS = new ErrorCode(1-200-200-001, "养护频次已存在"); - ErrorCode PLAN_RATE_LEVEL_ID_DUPLICATE = new ErrorCode(1-200-200-002, "养护等级重复"); - ErrorCode PLAN_RATE_NOT_EXISTS = new ErrorCode(1-200-200-002, "未配置计划频次"); - ErrorCode PLAN_RATE_DETAIL_EXISTS = new ErrorCode(1-200-200-003, "计划频次已存在"); + ErrorCode PLAN_RATE_EXISTS = new ErrorCode(1-100-007-001, "养护频次已存在"); + ErrorCode PLAN_RATE_LEVEL_ID_DUPLICATE = new ErrorCode(1-100-007-002, "养护等级重复"); + ErrorCode PLAN_RATE_NOT_EXISTS = new ErrorCode(1-100-007-002, "未配置计划频次"); + ErrorCode PLAN_RATE_DETAIL_EXISTS = new ErrorCode(1-100-007-003, "计划频次已存在"); + ErrorCode PLAN_RATE_VALUE_ERROR = new ErrorCode(1-100-007-004, "次数值范围:1-20或者分数格式:1/3"); ErrorCode MATERIAL_TYPE_NOT_EXISTS = new ErrorCode(1-100-004-001, "物料类型不存在"); ErrorCode MATERIAL_TYPE_MANAGER_NOT_EXISTS = new ErrorCode(1-100-004-002, "耗材类别管理不存在"); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/PlanConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/PlanConstants.java index aeb4fb4..5d21a25 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/PlanConstants.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/PlanConstants.java @@ -11,4 +11,11 @@ public class PlanConstants { /*养护级别-字典key*/ public static final String CONSERVE_LEVEL = "conserve_level"; + /*巡查类型-绿地巡视/绿地保洁-字典key*/ + public static final String INSPECTION_MAINTAIN_TYPE = "inspection_maintain_type"; + + /*养护类型-浇水-字典key*/ + public static final String MAINTAIN_TYPE = "maintain_type"; + + } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java index 8a4277b..3df6e84 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java @@ -56,6 +56,6 @@ public interface InspectionPlanCommitService { * @param pageReqVO 分页查询 * @return 巡检计划提交明细分页 */ - PageResult getInspectionPlanCommitPage(InspectionPlanCommitPageReqVO pageReqVO); + PageResult getInspectionPlanCommitPage(InspectionPlanCommitPageReqVO pageReqVO); } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java index 4a349eb..9d4e69a 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java @@ -1,10 +1,16 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zteits.urbanops.framework.common.util.string.StrUtils; +import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils; +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; + import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanCommitDO; import com.zteits.urbanops.framework.common.pojo.PageResult; @@ -53,15 +59,15 @@ public class InspectionPlanCommitServiceImpl implements InspectionPlanCommitServ } @Override - public void deleteInspectionPlanCommitListByIds(List ids) { + public void deleteInspectionPlanCommitListByIds(List ids) { // 删除 inspectionPlanCommitMapper.deleteByIds(ids); - } + } private void validateInspectionPlanCommitExists(Long id) { if (inspectionPlanCommitMapper.selectById(id) == null) { - //throw exception(INSPECTION_PLAN_COMMIT_NOT_EXISTS); + // throw exception(INSPECTION_PLAN_COMMIT_NOT_EXISTS); } } @@ -71,8 +77,28 @@ public class InspectionPlanCommitServiceImpl implements InspectionPlanCommitServ } @Override - public PageResult getInspectionPlanCommitPage(InspectionPlanCommitPageReqVO pageReqVO) { - return inspectionPlanCommitMapper.selectPage(pageReqVO); + public PageResult getInspectionPlanCommitPage(InspectionPlanCommitPageReqVO pageReqVO) { + String busiLine = SecurityFrameworkUtils.getBusiLine(); + List busiLineList = new ArrayList<>(); + if (StringUtils.isNotEmpty(pageReqVO.getBusiLine())) { + busiLineList.add(pageReqVO.getBusiLine()); + } else { + if (StringUtils.isNotEmpty(busiLine)) { + busiLineList.addAll(Arrays.asList(busiLine.split(","))); + } + } + //分页 + IPage mpPage = MyBatisUtils.buildPage(pageReqVO); + IPage page = inspectionPlanCommitMapper.selectForPage(mpPage, pageReqVO, busiLineList); + // 转换返回 + return new PageResult<>(imgProcess(page.getRecords()), page.getTotal()); + } + + private List imgProcess(List list) { + list.forEach(e -> { + e.setImgList(StrUtils.imgProcess(e.getImg(), e.getImgHost())); + }); + return list; } } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java index e1e2936..ce41c98 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java @@ -21,7 +21,7 @@ public interface InspectionPlanService { * @param createReqVO 创建信息 * @return 编号 */ - CommonResult createInspectionPlan(@Valid InspectionPlanSaveReqVO createReqVO); + CommonResult createInspectionPlan(@Valid InspectionPlanSaveReqVO createReqVO); /** * 更新巡检计划汇总 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java index 9e6b63d..174ab00 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java @@ -1,6 +1,6 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; -import cn.hutool.core.date.DateUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.RandomUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zteits.urbanops.framework.common.pojo.CommonResult; @@ -25,7 +25,6 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; @@ -62,11 +61,11 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @Transactional(rollbackFor = Exception.class) @Override - public CommonResult createInspectionPlan(InspectionPlanSaveReqVO createReqVO) { + public CommonResult createInspectionPlan(InspectionPlanSaveReqVO createReqVO) { //存在性校验 validateInspectionPlanExists(createReqVO); LocalDateTime now = LocalDateTime.now(); - String userId = SecurityFrameworkUtils.getLoginUserId()+""; + String userId = SecurityFrameworkUtils.getLoginUserId() + ""; String userName = SecurityFrameworkUtils.getLoginUserNickname(); int rateValue; if (createReqVO.getRateValue().contains("/")) { @@ -82,12 +81,18 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { } //计算计划次数 Integer planNum = betweenDayList.size(); - InspectionPlanDO inspectionPlan = BeanUtils.toBean(createReqVO, InspectionPlanDO.class); - AtomicInteger count = new AtomicInteger(); + + //巡检计划list + List inspectionPlanList = new ArrayList<>(); + //角色列表 + List roleList = new ArrayList<>(); + //计划明细 + List detailDOList = new ArrayList<>(); //按照道路创建计划 createReqVO.getRoadListReqVO().forEach(roadReqVO -> { - String batchNo = "BN" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000); + InspectionPlanDO inspectionPlan = BeanUtils.toBean(createReqVO, InspectionPlanDO.class); + String batchNo = "BN" + System.currentTimeMillis() + RandomUtil.randomInt(10000) + roadReqVO.getRoadId(); inspectionPlan.setBatchNo(batchNo); inspectionPlan.setPlanFinishNum(0); inspectionPlan.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus()); @@ -103,9 +108,9 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { inspectionPlan.setRoadName(roadReqVO.getRoadName()); //计划属性label String planAttrLabel = DictFrameworkUtils.parseDictDataLabel(PlanConstants.GARDEN_PLAN_ATTR_REDIS_KEY, createReqVO.getPlanAttr()); - inspectionPlan.setPlanName(roadReqVO.getRoadName() + planAttrLabel + createReqVO.getPlanNameSuffix()); - /*1.插入巡查计划*/ - count.addAndGet(inspectionPlanMapper.insert(inspectionPlan)); + String planTypeIdLabel = DictFrameworkUtils.parseDictDataLabel(PlanConstants.INSPECTION_MAINTAIN_TYPE, createReqVO.getPlanTypeId()); + inspectionPlan.setPlanName(roadReqVO.getRoadName() + planAttrLabel + planTypeIdLabel + createReqVO.getPlanNameSuffix()); + inspectionPlanList.add(inspectionPlan); /*2.插入角色*/ createReqVO.getRoleIds().forEach(roleId -> { InspectionPlanRoleDO inspectionPlanRoleDO = new InspectionPlanRoleDO(); @@ -117,31 +122,36 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { inspectionPlanRoleDO.setCreator(userName); inspectionPlanRoleDO.setUpdater(userName); inspectionPlanRoleDO.setRoleId(roleId); - inspectionPlanRoleMapper.insert(inspectionPlanRoleDO); + roleList.add(inspectionPlanRoleDO); }); /*3.插入巡查计划明细*/ + for (int i = 0; i < betweenDayList.size(); i++) { String[] dateStr = betweenDayList.get(i).split("/"); InspectionPlanDetailDO entity = getInspectionPlanDetailDO(batchNo, createReqVO, roadReqVO, now); - entity.setSortNum(i+1); + ThreadUtil.sleep(2); + entity.setSortNum(i + 1); entity.setBeginTime(LocalDate.parse(dateStr[0], DateTimeFormatter.ofPattern("yyyy-MM-dd"))); entity.setEndTime(LocalDate.parse(dateStr[1], DateTimeFormatter.ofPattern("yyyy-MM-dd"))); - - inspectionPlanDetailMapper.insert(entity); + detailDOList.add(entity); } }); + /*1.插入巡查计划*/ + inspectionPlanMapper.insertBatch(inspectionPlanList); + inspectionPlanRoleMapper.insertBatch(roleList); + inspectionPlanDetailMapper.insertBatch(detailDOList); // 返回 - return CommonResult.success(count.longValue()); + return CommonResult.success(createReqVO.getRoadListReqVO().size()); } private InspectionPlanDetailDO getInspectionPlanDetailDO(String batchNo, InspectionPlanSaveReqVO saveReqVO, - InspectionPlanRoadReqVO roadReqVO, LocalDateTime now) { - String userId = SecurityFrameworkUtils.getLoginUserId()+""; + InspectionPlanRoadReqVO roadReqVO, LocalDateTime now) { + String userId = SecurityFrameworkUtils.getLoginUserId() + ""; String userName = SecurityFrameworkUtils.getLoginUserNickname(); InspectionPlanDetailDO entity = new InspectionPlanDetailDO(); entity.setBatchNo(batchNo); - entity.setPlanNo("P" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000)); + entity.setPlanNo("P" + System.currentTimeMillis() + RandomUtil.randomInt(1000)); entity.setBusiLine(saveReqVO.getBusiLine()); entity.setCompanyId(saveReqVO.getCompanyId()); entity.setDeptId(roadReqVO.getDeptId()); @@ -182,9 +192,9 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { private void validateInspectionPlanExists(InspectionPlanSaveReqVO req) { Set roadIds = req.getRoadListReqVO().stream().map(InspectionPlanRoadReqVO::getRoadId).collect(Collectors.toSet()); - Long count =0L; + Long count = 0L; //标准计划 - if(req.getPlanAttr().equals(1)){ + if (req.getPlanAttr().equals(1)) { QueryWrapper sql = new QueryWrapper<>(); sql.lambda().eq(InspectionPlanDO::getPlanTypeId, req.getPlanTypeId()) .in(InspectionPlanDO::getRoadId, roadIds) @@ -192,7 +202,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { .ge(InspectionPlanDO::getEndTime, req.getBeginTime()); // end_time >= startTime count = inspectionPlanMapper.selectCount(sql); - }else{ + } else { QueryWrapper sql = new QueryWrapper<>(); sql.lambda().eq(InspectionPlanDO::getPlanTypeId, req.getPlanTypeId()) .in(InspectionPlanDO::getRoadId, roadIds) @@ -228,7 +238,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @Override public void deleteInspectionPlanByBatchNo(String batchNo) { InspectionPlanDO inspectionPlanDO = inspectionPlanMapper.selectOne(InspectionPlanDO::getBatchNo, batchNo); - if(inspectionPlanDO !=null && inspectionPlanDO.getPlanFinishNum() >0){ + if (inspectionPlanDO != null && inspectionPlanDO.getPlanFinishNum() > 0) { throw exception(INSPECTION_PLAN_NOT_ALLOW_DELETE); } inspectionPlanMapper.deleteByBatchNo(batchNo); @@ -239,7 +249,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @Override public void stopPlanInspectionPlan(String batchNo) { inspectionPlanMapper.delete(InspectionPlanDO::getBatchNo, batchNo); - inspectionPlanDetailMapper.delete(InspectionPlanDetailDO::getBatchNo,batchNo); + inspectionPlanDetailMapper.delete(InspectionPlanDetailDO::getBatchNo, batchNo); inspectionPlanRoleMapper.delete(InspectionPlanRoleDO::getBatchNo, batchNo); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanService.java index 6707f44..011de74 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanService.java @@ -22,7 +22,7 @@ public interface MaintainPlanService { * @param createReqVO 创建信息 * @return 编号 */ - CommonResult createMaintainPlan(@Valid MaintainPlanSaveReqVO createReqVO); + CommonResult createMaintainPlan(@Valid MaintainPlanSaveReqVO createReqVO); /** * 更新养护计划汇总 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java index 4575e28..d1fea3b 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java @@ -2,12 +2,16 @@ package com.zteits.urbanops.module.garden.service.maintainplan; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.RandomUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.collection.CollectionUtils; import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO; import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanRoleDO; import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanDetailMapper; @@ -58,7 +62,7 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { private MaintainPlanRoleMapper maintainPlanRoleMapper; @Override - public CommonResult createMaintainPlan(MaintainPlanSaveReqVO createReqVO) { + public CommonResult createMaintainPlan(MaintainPlanSaveReqVO createReqVO) { //存在性校验 validateMaintainPlanExists(createReqVO); LocalDateTime now = LocalDateTime.now(); @@ -78,30 +82,36 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { } //计算计划次数 Integer planNum = betweenDayList.size(); - MaintainPlanDO maintainPlanDO = BeanUtils.toBean(createReqVO, MaintainPlanDO.class); - AtomicInteger count = new AtomicInteger(); + + //巡检计划list + List maintainPlanList = new ArrayList<>(); + //角色列表 + List roleList = new ArrayList<>(); + //计划明细 + List detailDOList = new ArrayList<>(); //按照道路创建计划 createReqVO.getRoadListReqVO().forEach(roadReqVO -> { - String batchNo = "BN" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000); - maintainPlanDO.setBatchNo(batchNo); - maintainPlanDO.setPlanFinishNum(0); - maintainPlanDO.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus()); - maintainPlanDO.setPlanNum(planNum); - maintainPlanDO.setCreateTime(now); - maintainPlanDO.setUpdateTime(now); - maintainPlanDO.setCreator(userId); - maintainPlanDO.setCreatorName(userName); - maintainPlanDO.setUpdater(userId); - maintainPlanDO.setUpdaterName(userName); - maintainPlanDO.setDeptId(roadReqVO.getDeptId()); - maintainPlanDO.setRoadId(roadReqVO.getRoadId()); - maintainPlanDO.setRoadName(roadReqVO.getRoadName()); + MaintainPlanDO maintainPlan = BeanUtils.toBean(createReqVO, MaintainPlanDO.class); + String batchNo = "BN" + System.currentTimeMillis() + RandomUtil.randomInt(10000)+roadReqVO.getRoadId(); + maintainPlan.setBatchNo(batchNo); + maintainPlan.setPlanFinishNum(0); + maintainPlan.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus()); + maintainPlan.setPlanNum(planNum); + maintainPlan.setCreateTime(now); + maintainPlan.setUpdateTime(now); + maintainPlan.setCreator(userId); + maintainPlan.setCreatorName(userName); + maintainPlan.setUpdater(userId); + maintainPlan.setUpdaterName(userName); + maintainPlan.setDeptId(roadReqVO.getDeptId()); + maintainPlan.setRoadId(roadReqVO.getRoadId()); + maintainPlan.setRoadName(roadReqVO.getRoadName()); //计划属性label String planAttrLabel = DictFrameworkUtils.parseDictDataLabel(PlanConstants.GARDEN_PLAN_ATTR_REDIS_KEY, createReqVO.getPlanAttr()); - maintainPlanDO.setPlanName(roadReqVO.getRoadName() + planAttrLabel + createReqVO.getPlanNameSuffix()); - /*1.插入巡查计划*/ - count.addAndGet(maintainPlanMapper.insert(maintainPlanDO)); + String planTypeIdLabel = DictFrameworkUtils.parseDictDataLabel(PlanConstants.MAINTAIN_TYPE, createReqVO.getPlanTypeId()); + maintainPlan.setPlanName(roadReqVO.getRoadName() + planAttrLabel + planTypeIdLabel + createReqVO.getPlanNameSuffix()); + maintainPlanList.add(maintainPlan); /*2.插入角色*/ createReqVO.getRoleIds().forEach(roleId -> { MaintainPlanRoleDO maintainPlanRoleDO = new MaintainPlanRoleDO(); @@ -110,25 +120,30 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { maintainPlanRoleDO.setDeptId(roadReqVO.getDeptId()); maintainPlanRoleDO.setCreateTime(now); maintainPlanRoleDO.setUpdateTime(now); - maintainPlanRoleDO.setCreator(userId); - maintainPlanRoleDO.setUpdater(userId); + maintainPlanRoleDO.setCreator(userName); + maintainPlanRoleDO.setUpdater(userName); maintainPlanRoleDO.setRoleId(roleId); - maintainPlanRoleMapper.insert(maintainPlanRoleDO); + roleList.add(maintainPlanRoleDO); }); /*3.插入巡查计划明细*/ + for (int i = 0; i < betweenDayList.size(); i++) { String[] dateStr = betweenDayList.get(i).split("/"); MaintainPlanDetailDO entity = getMaintainPlanDetailDO(batchNo, createReqVO, roadReqVO, now); + ThreadUtil.sleep(2); entity.setSortNum(i+1); entity.setBeginTime(LocalDate.parse(dateStr[0], DateTimeFormatter.ofPattern("yyyy-MM-dd"))); entity.setEndTime(LocalDate.parse(dateStr[1], DateTimeFormatter.ofPattern("yyyy-MM-dd"))); - - maintainPlanDetailMapper.insert(entity); + detailDOList.add(entity); } }); + /*1.插入巡查计划*/ + maintainPlanMapper.insertBatch(maintainPlanList); + maintainPlanRoleMapper.insertBatch(roleList); + maintainPlanDetailMapper.insertBatch(detailDOList); // 返回 - return CommonResult.success(count.longValue()); + return CommonResult.success(createReqVO.getRoadListReqVO().size()); } private MaintainPlanDetailDO getMaintainPlanDetailDO(String batchNo, MaintainPlanSaveReqVO saveReqVO, diff --git a/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanCommitMapper.xml b/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanCommitMapper.xml index 1c3ab50..00f1a6e 100644 --- a/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanCommitMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanCommitMapper.xml @@ -8,5 +8,80 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + \ No newline at end of file -- libgit2 0.21.4