Commit 27d3aea4a3a5ba504b19c7873ec23e5e2fda8e0f

Authored by 戈灵虎
2 parents 6098d61b 8efd4176

Merge remote-tracking branch 'origin/dev' into dev

Showing 32 changed files with 1961 additions and 0 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan;
  2 +
  3 +import jakarta.validation.constraints.NotBlank;
  4 +import org.springframework.web.bind.annotation.*;
  5 +import jakarta.annotation.Resource;
  6 +import org.springframework.validation.annotation.Validated;
  7 +import org.springframework.security.access.prepost.PreAuthorize;
  8 +import io.swagger.v3.oas.annotations.tags.Tag;
  9 +import io.swagger.v3.oas.annotations.Parameter;
  10 +import io.swagger.v3.oas.annotations.Operation;
  11 +
  12 +import jakarta.validation.*;
  13 +import jakarta.servlet.http.*;
  14 +import java.util.*;
  15 +import java.io.IOException;
  16 +
  17 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  18 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  19 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  20 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  21 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  22 +
  23 +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
  24 +
  25 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  26 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
  27 +
  28 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  29 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
  30 +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanService;
  31 +
  32 +@Tag(name = "管理后台 - 巡检计划汇总")
  33 +@RestController
  34 +@RequestMapping("/garden/inspection-plan")
  35 +@Validated
  36 +public class InspectionPlanController {
  37 +
  38 + @Resource
  39 + private InspectionPlanService inspectionPlanService;
  40 +
  41 + @PostMapping("/create")
  42 + @Operation(summary = "创建巡检计划汇总")
  43 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:create')")
  44 + public CommonResult<Long> createInspectionPlan(@Valid @RequestBody InspectionPlanSaveReqVO createReqVO) {
  45 + return inspectionPlanService.createInspectionPlan(createReqVO);
  46 + }
  47 +
  48 + @PutMapping("/update")
  49 + @Operation(summary = "更新巡检计划汇总")
  50 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:update')")
  51 + public CommonResult<Boolean> updateInspectionPlan(@Valid @RequestBody InspectionPlanUpdateReqVO updateReqVO) {
  52 + inspectionPlanService.updateInspectionPlan(updateReqVO);
  53 + return success(true);
  54 + }
  55 +
  56 + @DeleteMapping("/delete")
  57 + @Operation(summary = "删除巡检计划汇总")
  58 + @Parameter(name = "id", description = "编号", required = true)
  59 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:delete')")
  60 + public CommonResult<Boolean> deleteInspectionPlan(@RequestParam("id") Long id) {
  61 + inspectionPlanService.deleteInspectionPlan(id);
  62 + return success(true);
  63 + }
  64 +
  65 + @DeleteMapping("/delete-list")
  66 + @Parameter(name = "ids", description = "编号", required = true)
  67 + @Operation(summary = "批量删除巡检计划汇总")
  68 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:delete')")
  69 + public CommonResult<Boolean> deleteInspectionPlanList(@RequestParam("ids") List<Long> ids) {
  70 + inspectionPlanService.deleteInspectionPlanListByIds(ids);
  71 + return success(true);
  72 + }
  73 +
  74 + @DeleteMapping("/delete-batch_no")
  75 + @Parameter(name = "batchNo", description = "批次号", required = true)
  76 + @Operation(summary = "根据batch_no删除巡检计划汇总")
  77 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:delete')")
  78 + public CommonResult<Boolean> deleteInspectionPlanByBatchNo(@RequestParam("batch_no") @NotBlank String batchNo) {
  79 + inspectionPlanService.deleteInspectionPlanByBatchNo(batchNo);
  80 + return success(true);
  81 + }
  82 +
  83 +
  84 +
  85 + @GetMapping("/get")
  86 + @Operation(summary = "获得巡检计划汇总")
  87 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  88 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:query')")
  89 + public CommonResult<InspectionPlanRespVO> getInspectionPlan(@RequestParam("id") Long id) {
  90 + InspectionPlanDO inspectionPlan = inspectionPlanService.getInspectionPlan(id);
  91 + return success(BeanUtils.toBean(inspectionPlan, InspectionPlanRespVO.class));
  92 + }
  93 +
  94 + @GetMapping("/page")
  95 + @Operation(summary = "获得巡检计划汇总分页")
  96 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:query')")
  97 + public CommonResult<PageResult<InspectionPlanRespVO>> getInspectionPlanPage(@Valid InspectionPlanPageReqVO pageReqVO) {
  98 + PageResult<InspectionPlanDO> pageResult = inspectionPlanService.getInspectionPlanPage(pageReqVO);
  99 + return success(BeanUtils.toBean(pageResult, InspectionPlanRespVO.class));
  100 + }
  101 +
  102 + @GetMapping("/export-excel")
  103 + @Operation(summary = "导出巡检计划汇总 Excel")
  104 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:export')")
  105 + @ApiAccessLog(operateType = EXPORT)
  106 + public void exportInspectionPlanExcel(@Valid InspectionPlanPageReqVO pageReqVO,
  107 + HttpServletResponse response) throws IOException {
  108 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  109 + List<InspectionPlanDO> list = inspectionPlanService.getInspectionPlanPage(pageReqVO).getList();
  110 + // 导出 Excel
  111 + ExcelUtils.write(response, "巡检计划汇总.xls", "数据", InspectionPlanRespVO.class,
  112 + BeanUtils.toBean(list, InspectionPlanRespVO.class));
  113 + }
  114 +
  115 +}
0 \ No newline at end of file 116 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanDetailController.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan;
  2 +
  3 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanDetailPageReqVO;
  4 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanDetailRespVO;
  5 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanDetailSaveReqVO;
  6 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
  7 +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanDetailService;
  8 +import org.springframework.web.bind.annotation.*;
  9 +import jakarta.annotation.Resource;
  10 +import org.springframework.validation.annotation.Validated;
  11 +import org.springframework.security.access.prepost.PreAuthorize;
  12 +import io.swagger.v3.oas.annotations.tags.Tag;
  13 +import io.swagger.v3.oas.annotations.Parameter;
  14 +import io.swagger.v3.oas.annotations.Operation;
  15 +
  16 +import jakarta.validation.constraints.*;
  17 +import jakarta.validation.*;
  18 +import jakarta.servlet.http.*;
  19 +import java.util.*;
  20 +import java.io.IOException;
  21 +
  22 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  23 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  24 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  25 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  26 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  27 +
  28 +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
  29 +
  30 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  31 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
  32 +
  33 +
  34 +@Tag(name = "管理后台 - 巡检计划")
  35 +@RestController
  36 +@RequestMapping("/garden/inspection-plan-detail")
  37 +@Validated
  38 +public class InspectionPlanDetailController {
  39 +
  40 + @Resource
  41 + private InspectionPlanDetailService inspectionPlanDetailService;
  42 +
  43 +
  44 +
  45 + @PutMapping("/update")
  46 + @Operation(summary = "更新巡检计划")
  47 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:update')")
  48 + public CommonResult<Boolean> updateInspectionPlanDetail(@Valid @RequestBody InspectionPlanDetailSaveReqVO updateReqVO) {
  49 + inspectionPlanDetailService.updateInspectionPlanDetail(updateReqVO);
  50 + return success(true);
  51 + }
  52 +
  53 + @DeleteMapping("/delete")
  54 + @Operation(summary = "删除巡检计划")
  55 + @Parameter(name = "id", description = "编号", required = true)
  56 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:delete')")
  57 + public CommonResult<Boolean> deleteInspectionPlanDetail(@RequestParam("id") Long id) {
  58 + inspectionPlanDetailService.deleteInspectionPlanDetail(id);
  59 + return success(true);
  60 + }
  61 +
  62 + @DeleteMapping("/delete-list")
  63 + @Parameter(name = "ids", description = "编号", required = true)
  64 + @Operation(summary = "批量删除巡检计划")
  65 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:delete')")
  66 + public CommonResult<Boolean> deleteInspectionPlanDetailList(@RequestParam("ids") List<Long> ids) {
  67 + inspectionPlanDetailService.deleteInspectionPlanDetailListByIds(ids);
  68 + return success(true);
  69 + }
  70 +
  71 + @GetMapping("/get")
  72 + @Operation(summary = "获得巡检计划")
  73 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  74 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:query')")
  75 + public CommonResult<InspectionPlanDetailRespVO> getInspectionPlanDetail(@RequestParam("id") Long id) {
  76 + InspectionPlanDetailDO inspectionPlanDetail = inspectionPlanDetailService.getInspectionPlanDetail(id);
  77 + return success(BeanUtils.toBean(inspectionPlanDetail, InspectionPlanDetailRespVO.class));
  78 + }
  79 +
  80 + @GetMapping("/page")
  81 + @Operation(summary = "获得巡检计划分页")
  82 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:query')")
  83 + public CommonResult<PageResult<InspectionPlanDetailRespVO>> getInspectionPlanDetailPage(@Valid InspectionPlanDetailPageReqVO pageReqVO) {
  84 + PageResult<InspectionPlanDetailDO> pageResult = inspectionPlanDetailService.getInspectionPlanDetailPage(pageReqVO);
  85 + return success(BeanUtils.toBean(pageResult, InspectionPlanDetailRespVO.class));
  86 + }
  87 +
  88 + @GetMapping("/export-excel")
  89 + @Operation(summary = "导出巡检计划 Excel")
  90 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:export')")
  91 + @ApiAccessLog(operateType = EXPORT)
  92 + public void exportInspectionPlanDetailExcel(@Valid InspectionPlanDetailPageReqVO pageReqVO,
  93 + HttpServletResponse response) throws IOException {
  94 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  95 + List<InspectionPlanDetailDO> list = inspectionPlanDetailService.getInspectionPlanDetailPage(pageReqVO).getList();
  96 + // 导出 Excel
  97 + ExcelUtils.write(response, "巡检计划.xls", "数据", InspectionPlanDetailRespVO.class,
  98 + BeanUtils.toBean(list, InspectionPlanDetailRespVO.class));
  99 + }
  100 +
  101 +}
0 \ No newline at end of file 102 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanRoleController.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan;
  2 +
  3 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO;
  4 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleRespVO;
  5 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleSaveReqVO;
  6 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO;
  7 +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanRoleService;
  8 +import org.springframework.web.bind.annotation.*;
  9 +import jakarta.annotation.Resource;
  10 +import org.springframework.validation.annotation.Validated;
  11 +import org.springframework.security.access.prepost.PreAuthorize;
  12 +import io.swagger.v3.oas.annotations.tags.Tag;
  13 +import io.swagger.v3.oas.annotations.Parameter;
  14 +import io.swagger.v3.oas.annotations.Operation;
  15 +
  16 +import jakarta.validation.constraints.*;
  17 +import jakarta.validation.*;
  18 +import jakarta.servlet.http.*;
  19 +import java.util.*;
  20 +import java.io.IOException;
  21 +
  22 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  23 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  24 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  25 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  26 +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success;
  27 +
  28 +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils;
  29 +
  30 +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog;
  31 +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*;
  32 +
  33 +
  34 +@Tag(name = "管理后台 - 巡检计划角色")
  35 +@RestController
  36 +@RequestMapping("/garden/inspection-plan-role")
  37 +@Validated
  38 +public class InspectionPlanRoleController {
  39 +
  40 + @Resource
  41 + private InspectionPlanRoleService inspectionPlanRoleService;
  42 +
  43 + @PostMapping("/create")
  44 + @Operation(summary = "创建巡检计划角色")
  45 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:create')")
  46 + public CommonResult<Long> createInspectionPlanRole(@Valid @RequestBody InspectionPlanRoleSaveReqVO createReqVO) {
  47 + return success(inspectionPlanRoleService.createInspectionPlanRole(createReqVO));
  48 + }
  49 +
  50 + @PutMapping("/update")
  51 + @Operation(summary = "更新巡检计划角色")
  52 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:update')")
  53 + public CommonResult<Boolean> updateInspectionPlanRole(@Valid @RequestBody InspectionPlanRoleSaveReqVO updateReqVO) {
  54 + inspectionPlanRoleService.updateInspectionPlanRole(updateReqVO);
  55 + return success(true);
  56 + }
  57 +
  58 + @DeleteMapping("/delete")
  59 + @Operation(summary = "删除巡检计划角色")
  60 + @Parameter(name = "id", description = "编号", required = true)
  61 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:delete')")
  62 + public CommonResult<Boolean> deleteInspectionPlanRole(@RequestParam("id") Long id) {
  63 + inspectionPlanRoleService.deleteInspectionPlanRole(id);
  64 + return success(true);
  65 + }
  66 +
  67 + @DeleteMapping("/delete-list")
  68 + @Parameter(name = "ids", description = "编号", required = true)
  69 + @Operation(summary = "批量删除巡检计划角色")
  70 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:delete')")
  71 + public CommonResult<Boolean> deleteInspectionPlanRoleList(@RequestParam("ids") List<Long> ids) {
  72 + inspectionPlanRoleService.deleteInspectionPlanRoleListByIds(ids);
  73 + return success(true);
  74 + }
  75 +
  76 + @GetMapping("/get")
  77 + @Operation(summary = "获得巡检计划角色")
  78 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  79 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:query')")
  80 + public CommonResult<InspectionPlanRoleRespVO> getInspectionPlanRole(@RequestParam("id") Long id) {
  81 + InspectionPlanRoleDO inspectionPlanRole = inspectionPlanRoleService.getInspectionPlanRole(id);
  82 + return success(BeanUtils.toBean(inspectionPlanRole, InspectionPlanRoleRespVO.class));
  83 + }
  84 +
  85 + @GetMapping("/page")
  86 + @Operation(summary = "获得巡检计划角色分页")
  87 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:query')")
  88 + public CommonResult<PageResult<InspectionPlanRoleRespVO>> getInspectionPlanRolePage(@Valid InspectionPlanRolePageReqVO pageReqVO) {
  89 + PageResult<InspectionPlanRoleDO> pageResult = inspectionPlanRoleService.getInspectionPlanRolePage(pageReqVO);
  90 + return success(BeanUtils.toBean(pageResult, InspectionPlanRoleRespVO.class));
  91 + }
  92 +
  93 + @GetMapping("/export-excel")
  94 + @Operation(summary = "导出巡检计划角色 Excel")
  95 + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:export')")
  96 + @ApiAccessLog(operateType = EXPORT)
  97 + public void exportInspectionPlanRoleExcel(@Valid InspectionPlanRolePageReqVO pageReqVO,
  98 + HttpServletResponse response) throws IOException {
  99 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  100 + List<InspectionPlanRoleDO> list = inspectionPlanRoleService.getInspectionPlanRolePage(pageReqVO).getList();
  101 + // 导出 Excel
  102 + ExcelUtils.write(response, "巡检计划角色.xls", "数据", InspectionPlanRoleRespVO.class,
  103 + BeanUtils.toBean(list, InspectionPlanRoleRespVO.class));
  104 + }
  105 +
  106 +}
0 \ No newline at end of file 107 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import jakarta.validation.constraints.NotEmpty;
  4 +import lombok.*;
  5 +
  6 +import java.time.LocalDate;
  7 +import java.util.*;
  8 +import io.swagger.v3.oas.annotations.media.Schema;
  9 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  10 +import org.springframework.format.annotation.DateTimeFormat;
  11 +import java.time.LocalDateTime;
  12 +
  13 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  14 +
  15 +@Schema(description = "管理后台 - 巡检计划分页 Request VO")
  16 +@Data
  17 +public class InspectionPlanDetailPageReqVO extends PageParam {
  18 +
  19 + @Schema(description = "批次号")
  20 + @NotEmpty(message = "批次号不能为空")
  21 + private String batchNo;
  22 +
  23 + @Schema(description = "计划编码")
  24 + private String planNo;
  25 +
  26 + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政")
  27 + private String busiLine;
  28 +
  29 + @Schema(description = "归属(一级部门id)", example = "1951")
  30 + private Long companyId;
  31 +
  32 + @Schema(description = "部门ID(道路负责部门id)", example = "16561")
  33 + private Long deptId;
  34 +
  35 + @Schema(description = "道路ID", example = "32704")
  36 + private Long roadId;
  37 +
  38 + @Schema(description = "排序号:第n次计划")
  39 + private Integer sortNum;
  40 +
  41 + @Schema(description = "执行开始时间")
  42 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  43 + private LocalDate[] beginTime;
  44 +
  45 + @Schema(description = "执行时间")
  46 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  47 + private LocalDate[] endTime;
  48 +
  49 + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成")
  50 + private Integer finishState;
  51 +
  52 + @Schema(description = "创建时间")
  53 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  54 + private LocalDateTime[] createTime;
  55 +
  56 +}
0 \ No newline at end of file 57 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +
  6 +import java.time.LocalDate;
  7 +import java.util.*;
  8 +import org.springframework.format.annotation.DateTimeFormat;
  9 +import java.time.LocalDateTime;
  10 +import cn.idev.excel.annotation.*;
  11 +
  12 +@Schema(description = "管理后台 - 巡检计划 Response VO")
  13 +@Data
  14 +@ExcelIgnoreUnannotated
  15 +public class InspectionPlanDetailRespVO {
  16 +
  17 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16197")
  18 + @ExcelProperty("ID")
  19 + private Long id;
  20 +
  21 + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
  22 + @ExcelProperty("批次号")
  23 + private String batchNo;
  24 +
  25 + @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED)
  26 + @ExcelProperty("计划编码")
  27 + private String planNo;
  28 +
  29 + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED)
  30 + @ExcelProperty("业务线: yl-园林;wy-物业:sz-市政")
  31 + private String busiLine;
  32 +
  33 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1951")
  34 + @ExcelProperty("归属(一级部门id)")
  35 + private Long companyId;
  36 +
  37 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16561")
  38 + @ExcelProperty("部门ID(道路负责部门id)")
  39 + private Long deptId;
  40 +
  41 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704")
  42 + @ExcelProperty("道路ID")
  43 + private Long roadId;
  44 +
  45 + @Schema(description = "排序号:第n次计划", requiredMode = Schema.RequiredMode.REQUIRED)
  46 + @ExcelProperty("排序号:第n次计划")
  47 + private Integer sortNum;
  48 +
  49 + @Schema(description = "执行开始时间")
  50 + @ExcelProperty("执行开始时间")
  51 + private LocalDate beginTime;
  52 +
  53 + @Schema(description = "执行时间")
  54 + @ExcelProperty("执行时间")
  55 + private LocalDate endTime;
  56 +
  57 + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED)
  58 + @ExcelProperty("完成状态 1:未完成;2:进行中;3:已完成")
  59 + private Integer finishState;
  60 +
  61 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  62 + @ExcelProperty("创建时间")
  63 + private LocalDateTime createTime;
  64 +
  65 +}
0 \ No newline at end of file 66 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailSaveReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +
  6 +import java.time.LocalDate;
  7 +import java.util.*;
  8 +import jakarta.validation.constraints.*;
  9 +
  10 +@Schema(description = "管理后台 - 巡检计划新增/修改 Request VO")
  11 +@Data
  12 +public class InspectionPlanDetailSaveReqVO {
  13 +
  14 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16197")
  15 + private Long id;
  16 +
  17 + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
  18 + @NotEmpty(message = "批次号不能为空")
  19 + private String batchNo;
  20 +
  21 + @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED)
  22 + @NotEmpty(message = "计划编码不能为空")
  23 + private String planNo;
  24 +
  25 + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED)
  26 + @NotEmpty(message = "业务线: yl-园林;wy-物业:sz-市政不能为空")
  27 + private String busiLine;
  28 +
  29 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1951")
  30 + @NotNull(message = "归属(一级部门id)不能为空")
  31 + private Long companyId;
  32 +
  33 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16561")
  34 + @NotNull(message = "部门ID(道路负责部门id)不能为空")
  35 + private Long deptId;
  36 +
  37 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704")
  38 + @NotNull(message = "道路ID不能为空")
  39 + private Long roadId;
  40 +
  41 + @Schema(description = "排序号:第n次计划", requiredMode = Schema.RequiredMode.REQUIRED)
  42 + @NotNull(message = "排序号:第n次计划不能为空")
  43 + private Integer sortNum;
  44 +
  45 + @Schema(description = "执行开始时间")
  46 + private LocalDate beginTime;
  47 +
  48 + @Schema(description = "执行时间")
  49 + private LocalDate endTime;
  50 +
  51 + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED)
  52 + @NotNull(message = "完成状态 1:未完成;2:进行中;3:已完成不能为空")
  53 + private Integer finishState;
  54 +
  55 +}
0 \ No newline at end of file 56 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanPageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import lombok.*;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  6 +import org.springframework.format.annotation.DateTimeFormat;
  7 +import java.time.LocalDateTime;
  8 +
  9 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  10 +
  11 +@Schema(description = "管理后台 - 巡检计划汇总分页 Request VO")
  12 +@Data
  13 +public class InspectionPlanPageReqVO extends PageParam {
  14 +
  15 + @Schema(description = "批次号")
  16 + private String batchNo;
  17 +
  18 + @Schema(description = "计划名称", example = "张三")
  19 + private String planName;
  20 +
  21 +
  22 + @Schema(description = "计划属性:1:标准计划;2:临时计划")
  23 + private Integer planAttr;
  24 +
  25 + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", example = "24742")
  26 + private Integer planTypeId;
  27 +
  28 + @Schema(description = "归属(一级部门id)", example = "20800")
  29 + private Long companyId;
  30 +
  31 + @Schema(description = "道路名称", example = "赵六")
  32 + private String roadName;
  33 +
  34 + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", example = "8588")
  35 + private Integer levelId;
  36 +
  37 +
  38 + @Schema(description = "开始时间")
  39 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  40 + private LocalDateTime[] beginTime;
  41 +
  42 + @Schema(description = "开始时间")
  43 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  44 + private LocalDateTime[] endTime;
  45 +
  46 +}
0 \ No newline at end of file 47 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import com.baomidou.mybatisplus.annotation.FieldFill;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
  5 +import com.fhs.core.trans.anno.Trans;
  6 +import com.fhs.core.trans.constant.TransType;
  7 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
  8 +import io.swagger.v3.oas.annotations.media.Schema;
  9 +import lombok.*;
  10 +import java.time.LocalDateTime;
  11 +import cn.idev.excel.annotation.*;
  12 +import org.apache.ibatis.type.JdbcType;
  13 +
  14 +@Schema(description = "管理后台 - 巡检计划汇总 Response VO")
  15 +@Data
  16 +@ExcelIgnoreUnannotated
  17 +public class InspectionPlanRespVO {
  18 +
  19 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10938")
  20 + @ExcelProperty("ID")
  21 + private Long id;
  22 +
  23 + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
  24 + @ExcelProperty("批次号")
  25 + private String batchNo;
  26 +
  27 + @Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  28 + @ExcelProperty("计划名称")
  29 + private String planName;
  30 +
  31 + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED)
  32 + @ExcelProperty("业务线: yl-园林;wy-物业:sz-市政")
  33 + private String busiLine;
  34 +
  35 + @Schema(description = "计划属性:1:标准计划;2:临时计划", requiredMode = Schema.RequiredMode.REQUIRED)
  36 + @ExcelProperty("计划属性:1:标准计划;2:临时计划")
  37 + private Integer planAttr;
  38 +
  39 + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", requiredMode = Schema.RequiredMode.REQUIRED, example = "24742")
  40 + @ExcelProperty("养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;")
  41 + private Integer planTypeId;
  42 +
  43 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "20800")
  44 + @ExcelProperty("归属(一级部门id)")
  45 + private Long companyId;
  46 +
  47 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16445")
  48 + @ExcelProperty("部门ID(道路负责部门id)")
  49 + private Long deptId;
  50 +
  51 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15557")
  52 + @ExcelProperty("道路ID")
  53 + private Long roadId;
  54 +
  55 + @Schema(description = "道路名称", example = "赵六")
  56 + @ExcelProperty("道路名称")
  57 + private String roadName;
  58 +
  59 + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "8588")
  60 + @ExcelProperty("养护级别: 10:特级;11:一级:12:二级;13:三级")
  61 + private Integer levelId;
  62 +
  63 + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "6415")
  64 + @ExcelProperty("周期ID: 1:日/次;2:周/次;3:月/次;4:年/次")
  65 + private Integer cycleId;
  66 +
  67 + @Schema(description = "计划次数", requiredMode = Schema.RequiredMode.REQUIRED)
  68 + @ExcelProperty("计划次数")
  69 + private Integer planNum;
  70 +
  71 + @Schema(description = "已完成次数", requiredMode = Schema.RequiredMode.REQUIRED)
  72 + @ExcelProperty("已完成次数")
  73 + private Integer planFinishNum;
  74 +
  75 + @Schema(description = "完成状态 1:未完成;2:已完成", requiredMode = Schema.RequiredMode.REQUIRED)
  76 + @ExcelProperty("完成状态 1:未完成;2:已完成")
  77 + private Integer finishState;
  78 +
  79 + @Schema(description = "开始时间")
  80 + @ExcelProperty("开始时间")
  81 + private LocalDateTime beginTime;
  82 +
  83 + @Schema(description = "开始时间")
  84 + @ExcelProperty("开始时间")
  85 + private LocalDateTime endTime;
  86 +
  87 + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  88 + @ExcelProperty("备注")
  89 + private String remark;
  90 +
  91 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  92 + @ExcelProperty("创建时间")
  93 + private LocalDateTime createTime;
  94 +
  95 + @Trans(type = TransType.SIMPLE, target = InspectionPlanDO.class, fields = {"creator", "creatorName"}, refs = {"creator", "creatorName"})
  96 + @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR)
  97 + private String creator;
  98 +
  99 + private String creatorName;
  100 +
  101 +}
0 \ No newline at end of file 102 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoadReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotNull;
  5 +import lombok.Data;
  6 +
  7 +@Schema(description = "管理后台 - 巡检计划汇总新增/修改 Request VO")
  8 +@Data
  9 +public class InspectionPlanRoadReqVO {
  10 +
  11 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16445")
  12 + @NotNull(message = "部门ID(道路负责部门id)不能为空")
  13 + private Long deptId;
  14 +
  15 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15557")
  16 + @NotNull(message = "道路ID不能为空")
  17 + private Long roadId;
  18 +
  19 + @Schema(description = "道路名称", example = "赵六")
  20 + private String roadName;
  21 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRolePageReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +import java.time.LocalDateTime;
  9 +
  10 +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  11 +
  12 +@Schema(description = "管理后台 - 巡检计划角色分页 Request VO")
  13 +@Data
  14 +public class InspectionPlanRolePageReqVO extends PageParam {
  15 +
  16 + @Schema(description = "批次号")
  17 + private String batchNo;
  18 +
  19 + @Schema(description = "归属(一级部门id)", example = "12346")
  20 + private Long companyId;
  21 +
  22 + @Schema(description = "部门ID(道路负责部门id)", example = "22415")
  23 + private Long deptId;
  24 +
  25 + @Schema(description = "角色ID", example = "21343")
  26 + private Long roleId;
  27 +
  28 + @Schema(description = "创建时间")
  29 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  30 + private LocalDateTime[] createTime;
  31 +
  32 +}
0 \ No newline at end of file 33 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleRespVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import org.springframework.format.annotation.DateTimeFormat;
  7 +import java.time.LocalDateTime;
  8 +import cn.idev.excel.annotation.*;
  9 +
  10 +@Schema(description = "管理后台 - 巡检计划角色 Response VO")
  11 +@Data
  12 +@ExcelIgnoreUnannotated
  13 +public class InspectionPlanRoleRespVO {
  14 +
  15 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4778")
  16 + @ExcelProperty("ID")
  17 + private Long id;
  18 +
  19 + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
  20 + @ExcelProperty("批次号")
  21 + private String batchNo;
  22 +
  23 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "12346")
  24 + @ExcelProperty("归属(一级部门id)")
  25 + private Long companyId;
  26 +
  27 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22415")
  28 + @ExcelProperty("部门ID(道路负责部门id)")
  29 + private Long deptId;
  30 +
  31 + @Schema(description = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21343")
  32 + @ExcelProperty("角色ID")
  33 + private Long roleId;
  34 +
  35 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  36 + @ExcelProperty("创建时间")
  37 + private LocalDateTime createTime;
  38 +
  39 +}
0 \ No newline at end of file 40 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleSaveReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import jakarta.validation.constraints.*;
  7 +
  8 +@Schema(description = "管理后台 - 巡检计划角色新增/修改 Request VO")
  9 +@Data
  10 +public class InspectionPlanRoleSaveReqVO {
  11 +
  12 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4778")
  13 + private Long id;
  14 +
  15 + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
  16 + @NotEmpty(message = "批次号不能为空")
  17 + private String batchNo;
  18 +
  19 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "12346")
  20 + @NotNull(message = "归属(一级部门id)不能为空")
  21 + private Long companyId;
  22 +
  23 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22415")
  24 + @NotNull(message = "部门ID(道路负责部门id)不能为空")
  25 + private Long deptId;
  26 +
  27 + @Schema(description = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21343")
  28 + @NotNull(message = "角色ID不能为空")
  29 + private Long roleId;
  30 +
  31 +}
0 \ No newline at end of file 32 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.Valid;
  5 +import lombok.*;
  6 +
  7 +import java.time.LocalDate;
  8 +import java.util.*;
  9 +import jakarta.validation.constraints.*;
  10 +
  11 +
  12 +@Schema(description = "管理后台 - 巡检计划汇总新增/修改 Request VO")
  13 +@Data
  14 +public class InspectionPlanSaveReqVO {
  15 +
  16 + @Schema(description = "计划名称后缀", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "张三")
  17 + private String planNameSuffix;
  18 +
  19 + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED)
  20 + @NotEmpty(message = "业务线: yl-园林;wy-物业:sz-市政不能为空")
  21 + private String busiLine;
  22 +
  23 + @Schema(description = "计划属性:1:标准计划;2:临时计划", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  24 + @NotNull(message = "计划属性:1:标准计划;2:临时计划不能为空")
  25 + private Integer planAttr;
  26 +
  27 + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", requiredMode = Schema.RequiredMode.REQUIRED, example = "24742")
  28 + @NotNull(message = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;不能为空")
  29 + private Integer planTypeId;
  30 +
  31 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "20800")
  32 + @NotNull(message = "归属(一级部门id)不能为空")
  33 + private Long companyId;
  34 +
  35 + @Schema(description = "道路信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "[{\"deptId\":11,\"roadId\":1,\"roadName\":\"测试\"}]")
  36 + @Size(min = 1)
  37 + @Valid
  38 + private List<InspectionPlanRoadReqVO> roadListReqVO;
  39 +
  40 + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "8588")
  41 + @NotNull(message = "养护级别: 10:特级;11:一级:12:二级;13:三级不能为空")
  42 + private Integer levelId;
  43 +
  44 + @Schema(description = "频次值", requiredMode = Schema.RequiredMode.REQUIRED)
  45 + @NotEmpty(message = "频次值不能为空")
  46 + private String rateValue;
  47 +
  48 + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  49 + @NotNull(message = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次不能为空")
  50 + @Min(1)
  51 + @Max(4)
  52 + private Integer cycleId;
  53 +
  54 + @Schema(description = "开始时间")
  55 + private LocalDate beginTime;
  56 +
  57 + @Schema(description = "开始时间")
  58 + private LocalDate endTime;
  59 +
  60 + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  61 + @NotEmpty(message = "备注不能为空")
  62 + private String remark;
  63 +
  64 + @NotNull(message = "角色Ids不能为空")
  65 + @Schema(description = "角色Ids", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1,2]")
  66 + @Size(min = 1)
  67 + private Set<Long> roleIds;
  68 +
  69 +}
0 \ No newline at end of file 70 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanUpdateReqVO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotEmpty;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Data;
  7 +
  8 +import java.time.LocalDateTime;
  9 +
  10 +@Schema(description = "管理后台 - 巡检计划汇总新增/修改 Request VO")
  11 +@Data
  12 +public class InspectionPlanUpdateReqVO {
  13 + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10938")
  14 + private Long id;
  15 +
  16 +
  17 + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED)
  18 + @NotEmpty(message = "业务线: yl-园林;wy-物业:sz-市政不能为空")
  19 + private String busiLine;
  20 +
  21 + @Schema(description = "计划属性:1:标准计划;2:临时计划", requiredMode = Schema.RequiredMode.REQUIRED)
  22 + @NotNull(message = "计划属性:1:标准计划;2:临时计划不能为空")
  23 + private Integer planAttr;
  24 +
  25 + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", requiredMode = Schema.RequiredMode.REQUIRED, example = "24742")
  26 + @NotNull(message = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;不能为空")
  27 + private Integer planTypeId;
  28 +
  29 + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "20800")
  30 + @NotNull(message = "归属(一级部门id)不能为空")
  31 + private Long companyId;
  32 +
  33 + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16445")
  34 + @NotNull(message = "部门ID(道路负责部门id)不能为空")
  35 + private Long deptId;
  36 +
  37 + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15557")
  38 + @NotNull(message = "道路ID不能为空")
  39 + private Long roadId;
  40 +
  41 + @Schema(description = "道路名称", example = "赵六")
  42 + private String roadName;
  43 +
  44 + @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "8588")
  45 + @NotNull(message = "养护级别: 10:特级;11:一级:12:二级;13:三级不能为空")
  46 + private Integer levelId;
  47 +
  48 + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "6415")
  49 + @NotNull(message = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次不能为空")
  50 + private Integer cycleId;
  51 +
  52 + @Schema(description = "计划次数", requiredMode = Schema.RequiredMode.REQUIRED)
  53 + @NotNull(message = "计划次数不能为空")
  54 + private Integer planNum;
  55 +
  56 + @Schema(description = "已完成次数", requiredMode = Schema.RequiredMode.REQUIRED)
  57 + @NotNull(message = "已完成次数不能为空")
  58 + private Integer planFinishNum;
  59 +
  60 + @Schema(description = "完成状态 1:未完成;2:已完成", requiredMode = Schema.RequiredMode.REQUIRED)
  61 + @NotNull(message = "完成状态 1:未完成;2:已完成不能为空")
  62 + private Integer finishState;
  63 +
  64 + @Schema(description = "开始时间")
  65 + private LocalDateTime beginTime;
  66 +
  67 + @Schema(description = "开始时间")
  68 + private LocalDateTime endTime;
  69 +
  70 + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  71 + @NotEmpty(message = "备注不能为空")
  72 + private String remark;
  73 +
  74 +}
0 \ No newline at end of file 75 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanDO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan;
  2 +
  3 +import lombok.*;
  4 +import java.time.LocalDateTime;
  5 +import com.baomidou.mybatisplus.annotation.*;
  6 +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
  7 +
  8 +/**
  9 + * 巡检计划汇总 DO
  10 + *
  11 + * @author 超级管理员
  12 + */
  13 +@TableName("garden_inspection_plan")
  14 +@KeySequence("garden_inspection_plan_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  15 +@Data
  16 +@EqualsAndHashCode(callSuper = true)
  17 +@ToString(callSuper = true)
  18 +@Builder
  19 +@NoArgsConstructor
  20 +@AllArgsConstructor
  21 +public class InspectionPlanDO extends BaseDO {
  22 +
  23 + /**
  24 + * ID
  25 + */
  26 + @TableId
  27 + private Long id;
  28 + /**
  29 + * 批次号
  30 + */
  31 + private String batchNo;
  32 + /**
  33 + * 计划名称
  34 + */
  35 + private String planName;
  36 + /**
  37 + * 业务线: yl-园林;wy-物业:sz-市政
  38 + */
  39 + private String busiLine;
  40 + /**
  41 + * 计划属性:1:标准计划;2:临时计划
  42 + */
  43 + private Integer planAttr;
  44 + /**
  45 + * 养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;
  46 + */
  47 + private Integer planTypeId;
  48 + /**
  49 + * 归属(一级部门id)
  50 + */
  51 + private Long companyId;
  52 + /**
  53 + * 部门ID(道路负责部门id)
  54 + */
  55 + private Long deptId;
  56 + /**
  57 + * 道路ID
  58 + */
  59 + private Long roadId;
  60 + /**
  61 + * 道路名称
  62 + */
  63 + private String roadName;
  64 + /**
  65 + * 养护级别: 10:特级;11:一级:12:二级;13:三级
  66 + */
  67 + private Integer levelId;
  68 + /**
  69 + * 周期ID: 1:日/次;2:周/次;3:月/次;4:年/次
  70 + */
  71 + private Integer cycleId;
  72 + /**
  73 + * 计划次数
  74 + */
  75 + private Integer planNum;
  76 + /**
  77 + * 已完成次数
  78 + */
  79 + private Integer planFinishNum;
  80 + /**
  81 + * 完成状态 1:未完成;2:已完成
  82 + */
  83 + private Integer finishState;
  84 + /**
  85 + * 开始时间
  86 + */
  87 + private LocalDateTime beginTime;
  88 + /**
  89 + * 开始时间
  90 + */
  91 + private LocalDateTime endTime;
  92 + /**
  93 + * 备注
  94 + */
  95 + private String remark;
  96 +
  97 +
  98 +}
0 \ No newline at end of file 99 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanDetailDO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan;
  2 +
  3 +import lombok.*;
  4 +
  5 +import java.time.LocalDate;
  6 +import java.util.*;
  7 +import java.time.LocalDateTime;
  8 +import java.time.LocalDateTime;
  9 +import com.baomidou.mybatisplus.annotation.*;
  10 +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
  11 +
  12 +/**
  13 + * 巡检计划 DO
  14 + *
  15 + * @author 超级管理员
  16 + */
  17 +@TableName("garden_inspection_plan_detail")
  18 +@KeySequence("garden_inspection_plan_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  19 +@Data
  20 +@EqualsAndHashCode(callSuper = true)
  21 +@ToString(callSuper = true)
  22 +@Builder
  23 +@NoArgsConstructor
  24 +@AllArgsConstructor
  25 +public class InspectionPlanDetailDO extends BaseDO {
  26 +
  27 + /**
  28 + * ID
  29 + */
  30 + @TableId
  31 + private Long id;
  32 + /**
  33 + * 批次号
  34 + */
  35 + private String batchNo;
  36 + /**
  37 + * 计划编码
  38 + */
  39 + private String planNo;
  40 + /**
  41 + * 业务线: yl-园林;wy-物业:sz-市政
  42 + */
  43 + private String busiLine;
  44 + /**
  45 + * 归属(一级部门id)
  46 + */
  47 + private Long companyId;
  48 + /**
  49 + * 部门ID(道路负责部门id)
  50 + */
  51 + private Long deptId;
  52 + /**
  53 + * 道路ID
  54 + */
  55 + private Long roadId;
  56 + /**
  57 + * 排序号:第n次计划
  58 + */
  59 + private Integer sortNum;
  60 + /**
  61 + * 执行开始时间
  62 + */
  63 + private LocalDate beginTime;
  64 + /**
  65 + * 执行时间
  66 + */
  67 + private LocalDate endTime;
  68 + /**
  69 + * 完成状态 1:未完成;2:进行中;3:已完成
  70 + */
  71 + private Integer finishState;
  72 +
  73 +
  74 +}
0 \ No newline at end of file 75 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanRoleDO.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import java.time.LocalDateTime;
  6 +import java.time.LocalDateTime;
  7 +import com.baomidou.mybatisplus.annotation.*;
  8 +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO;
  9 +
  10 +/**
  11 + * 巡检计划角色 DO
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +@TableName("garden_inspection_plan_role")
  16 +@KeySequence("garden_inspection_plan_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  17 +@Data
  18 +@EqualsAndHashCode(callSuper = true)
  19 +@ToString(callSuper = true)
  20 +@Builder
  21 +@NoArgsConstructor
  22 +@AllArgsConstructor
  23 +public class InspectionPlanRoleDO extends BaseDO {
  24 +
  25 + /**
  26 + * ID
  27 + */
  28 + @TableId
  29 + private Long id;
  30 + /**
  31 + * 批次号
  32 + */
  33 + private String batchNo;
  34 + /**
  35 + * 归属(一级部门id)
  36 + */
  37 + private Long companyId;
  38 + /**
  39 + * 部门ID(道路负责部门id)
  40 + */
  41 + private Long deptId;
  42 + /**
  43 + * 角色ID
  44 + */
  45 + private Long roleId;
  46 +
  47 +
  48 +}
0 \ No newline at end of file 49 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanDetailMapper.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.dal.mysql.inspectionplan;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  6 +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
  9 +import org.apache.ibatis.annotations.Mapper;
  10 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  11 +
  12 +/**
  13 + * 巡检计划 Mapper
  14 + *
  15 + * @author 超级管理员
  16 + */
  17 +@Mapper
  18 +public interface InspectionPlanDetailMapper extends BaseMapperX<InspectionPlanDetailDO> {
  19 +
  20 + default PageResult<InspectionPlanDetailDO> selectPage(InspectionPlanDetailPageReqVO reqVO) {
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<InspectionPlanDetailDO>()
  22 + .eqIfPresent(InspectionPlanDetailDO::getBatchNo, reqVO.getBatchNo())
  23 + .eqIfPresent(InspectionPlanDetailDO::getPlanNo, reqVO.getPlanNo())
  24 + .eqIfPresent(InspectionPlanDetailDO::getBusiLine, reqVO.getBusiLine())
  25 + .eqIfPresent(InspectionPlanDetailDO::getCompanyId, reqVO.getCompanyId())
  26 + .eqIfPresent(InspectionPlanDetailDO::getDeptId, reqVO.getDeptId())
  27 + .eqIfPresent(InspectionPlanDetailDO::getRoadId, reqVO.getRoadId())
  28 + .eqIfPresent(InspectionPlanDetailDO::getSortNum, reqVO.getSortNum())
  29 + .betweenIfPresent(InspectionPlanDetailDO::getBeginTime, reqVO.getBeginTime())
  30 + .betweenIfPresent(InspectionPlanDetailDO::getEndTime, reqVO.getEndTime())
  31 + .eqIfPresent(InspectionPlanDetailDO::getFinishState, reqVO.getFinishState())
  32 + .betweenIfPresent(InspectionPlanDetailDO::getCreateTime, reqVO.getCreateTime())
  33 + .orderByDesc(InspectionPlanDetailDO::getId));
  34 + }
  35 +
  36 +}
0 \ No newline at end of file 37 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanMapper.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.dal.mysql.inspectionplan;
  2 +
  3 +
  4 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  5 +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
  6 +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  7 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  10 +
  11 +/**
  12 + * 巡检计划汇总 Mapper
  13 + *
  14 + * @author 超级管理员
  15 + */
  16 +@Mapper
  17 +public interface InspectionPlanMapper extends BaseMapperX<InspectionPlanDO> {
  18 +
  19 + default PageResult<InspectionPlanDO> selectPage(InspectionPlanPageReqVO reqVO) {
  20 + return selectPage(reqVO, new LambdaQueryWrapperX<InspectionPlanDO>()
  21 + .eqIfPresent(InspectionPlanDO::getBatchNo, reqVO.getBatchNo())
  22 + .likeIfPresent(InspectionPlanDO::getPlanName, reqVO.getPlanName())
  23 + .eqIfPresent(InspectionPlanDO::getPlanAttr, reqVO.getPlanAttr())
  24 + .eqIfPresent(InspectionPlanDO::getPlanTypeId, reqVO.getPlanTypeId())
  25 + .eqIfPresent(InspectionPlanDO::getCompanyId, reqVO.getCompanyId())
  26 + .likeIfPresent(InspectionPlanDO::getRoadName, reqVO.getRoadName())
  27 + .eqIfPresent(InspectionPlanDO::getLevelId, reqVO.getLevelId())
  28 + .betweenIfPresent(InspectionPlanDO::getBeginTime, reqVO.getBeginTime())
  29 + .betweenIfPresent(InspectionPlanDO::getEndTime, reqVO.getEndTime())
  30 + .orderByDesc(InspectionPlanDO::getId));
  31 + }
  32 +
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanRoleMapper.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.dal.mysql.inspectionplan;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  6 +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX;
  8 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO;
  9 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO;
  10 +import org.apache.ibatis.annotations.Mapper;
  11 +
  12 +/**
  13 + * 巡检计划角色 Mapper
  14 + *
  15 + * @author 超级管理员
  16 + */
  17 +@Mapper
  18 +public interface InspectionPlanRoleMapper extends BaseMapperX<InspectionPlanRoleDO> {
  19 +
  20 + default PageResult<InspectionPlanRoleDO> selectPage(InspectionPlanRolePageReqVO reqVO) {
  21 + return selectPage(reqVO, new LambdaQueryWrapperX<InspectionPlanRoleDO>()
  22 + .eqIfPresent(InspectionPlanRoleDO::getBatchNo, reqVO.getBatchNo())
  23 + .eqIfPresent(InspectionPlanRoleDO::getCompanyId, reqVO.getCompanyId())
  24 + .eqIfPresent(InspectionPlanRoleDO::getDeptId, reqVO.getDeptId())
  25 + .eqIfPresent(InspectionPlanRoleDO::getRoleId, reqVO.getRoleId())
  26 + .betweenIfPresent(InspectionPlanRoleDO::getCreateTime, reqVO.getCreateTime())
  27 + .orderByDesc(InspectionPlanRoleDO::getId));
  28 + }
  29 +
  30 +}
0 \ No newline at end of file 31 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java
@@ -52,4 +52,10 @@ public interface ErrorCodeConstants { @@ -52,4 +52,10 @@ public interface ErrorCodeConstants {
52 ErrorCode WASTE_RECORD_NOT_EXISTS = new ErrorCode(1-100-003-012, "园林废弃物录入不存在"); 52 ErrorCode WASTE_RECORD_NOT_EXISTS = new ErrorCode(1-100-003-012, "园林废弃物录入不存在");
53 53
54 ErrorCode WATER_FEE_NOT_EXISTS = new ErrorCode(1-100-003-013, "水费录入信息不存在"); 54 ErrorCode WATER_FEE_NOT_EXISTS = new ErrorCode(1-100-003-013, "水费录入信息不存在");
  55 +
  56 + // ========== 巡检计划汇总 TODO 补充编号 ==========
  57 + ErrorCode INSPECTION_PLAN_NOT_EXISTS = new ErrorCode(1-200-100-001, "巡检计划汇总不存在");
  58 + ErrorCode INSPECTION_CYCLE_ID_ERROR = new ErrorCode(1-200-100-002, "周期id错误");
  59 + ErrorCode INSPECTION_CYCLE_ERROR = new ErrorCode(1-200-100-003, "获取两个时间之间间隔天数错误");
  60 + ErrorCode INSPECTION_PLAN_EXISTS = new ErrorCode(1-200-100-004, "道路对应类型已存在记录");
55 } 61 }
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/FinishStateEnum.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.enums;
  2 +
  3 +
  4 +public enum FinishStateEnum {
  5 +
  6 + /**
  7 + * 未完成
  8 + */
  9 + NOT_FINISHED(1),
  10 + /**
  11 + * 已完成
  12 + */
  13 + FINISHED(2),
  14 + ;
  15 +
  16 + FinishStateEnum(Integer status) {
  17 + this.status = status;
  18 + }
  19 +
  20 + private Integer status;
  21 +
  22 + public Integer getStatus() {
  23 + return status;
  24 + }
  25 +
  26 + public void setStatus(Integer status) {
  27 + this.status = status;
  28 + }
  29 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/PlanConstants.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.enums;
  2 +
  3 +public class PlanConstants {
  4 +
  5 + /*计划属性-字典key*/
  6 + public static final String GARDEN_PLAN_ATTR_REDIS_KEY = "garden_plan_attr";
  7 +}
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailService.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.service.inspectionplan;
  2 +
  3 +import java.util.*;
  4 +import jakarta.validation.*;
  5 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  6 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
  7 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  8 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  9 +
  10 +/**
  11 + * 巡检计划 Service 接口
  12 + *
  13 + * @author 超级管理员
  14 + */
  15 +public interface InspectionPlanDetailService {
  16 +
  17 + /**
  18 + * 创建巡检计划
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createInspectionPlanDetail(@Valid InspectionPlanDetailSaveReqVO createReqVO);
  24 +
  25 + /**
  26 + * 更新巡检计划
  27 + *
  28 + * @param updateReqVO 更新信息
  29 + */
  30 + void updateInspectionPlanDetail(@Valid InspectionPlanDetailSaveReqVO updateReqVO);
  31 +
  32 + /**
  33 + * 删除巡检计划
  34 + *
  35 + * @param id 编号
  36 + */
  37 + void deleteInspectionPlanDetail(Long id);
  38 +
  39 + /**
  40 + * 批量删除巡检计划
  41 + *
  42 + * @param ids 编号
  43 + */
  44 + void deleteInspectionPlanDetailListByIds(List<Long> ids);
  45 +
  46 + /**
  47 + * 获得巡检计划
  48 + *
  49 + * @param id 编号
  50 + * @return 巡检计划
  51 + */
  52 + InspectionPlanDetailDO getInspectionPlanDetail(Long id);
  53 +
  54 + /**
  55 + * 获得巡检计划分页
  56 + *
  57 + * @param pageReqVO 分页查询
  58 + * @return 巡检计划分页
  59 + */
  60 + PageResult<InspectionPlanDetailDO> getInspectionPlanDetailPage(InspectionPlanDetailPageReqVO pageReqVO);
  61 +
  62 +}
0 \ No newline at end of file 63 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailServiceImpl.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.service.inspectionplan;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import org.springframework.stereotype.Service;
  5 +import jakarta.annotation.Resource;
  6 +import org.springframework.validation.annotation.Validated;
  7 +import org.springframework.transaction.annotation.Transactional;
  8 +
  9 +import java.util.*;
  10 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  11 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
  12 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  13 +import com.zteits.urbanops.framework.common.pojo.PageParam;
  14 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  15 +
  16 +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper;
  17 +
  18 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList;
  20 +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList;
  21 +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
  22 +
  23 +/**
  24 + * 巡检计划 Service 实现类
  25 + *
  26 + * @author 超级管理员
  27 + */
  28 +@Service
  29 +@Validated
  30 +public class InspectionPlanDetailServiceImpl implements InspectionPlanDetailService {
  31 +
  32 + @Resource
  33 + private InspectionPlanDetailMapper inspectionPlanDetailMapper;
  34 +
  35 + @Override
  36 + public Long createInspectionPlanDetail(InspectionPlanDetailSaveReqVO createReqVO) {
  37 + // 插入
  38 + InspectionPlanDetailDO inspectionPlanDetail = BeanUtils.toBean(createReqVO, InspectionPlanDetailDO.class);
  39 + inspectionPlanDetailMapper.insert(inspectionPlanDetail);
  40 +
  41 + // 返回
  42 + return inspectionPlanDetail.getId();
  43 + }
  44 +
  45 + @Override
  46 + public void updateInspectionPlanDetail(InspectionPlanDetailSaveReqVO updateReqVO) {
  47 + // 校验存在
  48 + validateInspectionPlanDetailExists(updateReqVO.getId());
  49 + // 更新
  50 + InspectionPlanDetailDO updateObj = BeanUtils.toBean(updateReqVO, InspectionPlanDetailDO.class);
  51 + inspectionPlanDetailMapper.updateById(updateObj);
  52 + }
  53 +
  54 + @Override
  55 + public void deleteInspectionPlanDetail(Long id) {
  56 + // 校验存在
  57 + validateInspectionPlanDetailExists(id);
  58 + // 删除
  59 + inspectionPlanDetailMapper.deleteById(id);
  60 + }
  61 +
  62 + @Override
  63 + public void deleteInspectionPlanDetailListByIds(List<Long> ids) {
  64 + // 删除
  65 + inspectionPlanDetailMapper.deleteByIds(ids);
  66 + }
  67 +
  68 +
  69 + private void validateInspectionPlanDetailExists(Long id) {
  70 + if (inspectionPlanDetailMapper.selectById(id) == null) {
  71 + //throw exception(INSPECTION_PLAN_DETAIL_NOT_EXISTS);
  72 + }
  73 + }
  74 +
  75 + @Override
  76 + public InspectionPlanDetailDO getInspectionPlanDetail(Long id) {
  77 + return inspectionPlanDetailMapper.selectById(id);
  78 + }
  79 +
  80 + @Override
  81 + public PageResult<InspectionPlanDetailDO> getInspectionPlanDetailPage(InspectionPlanDetailPageReqVO pageReqVO) {
  82 + return inspectionPlanDetailMapper.selectPage(pageReqVO);
  83 + }
  84 +
  85 +}
0 \ No newline at end of file 86 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleService.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.service.inspectionplan;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO;
  6 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleSaveReqVO;
  7 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO;
  8 +import jakarta.validation.*;
  9 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  10 +
  11 +/**
  12 + * 巡检计划角色 Service 接口
  13 + *
  14 + * @author 超级管理员
  15 + */
  16 +public interface InspectionPlanRoleService {
  17 +
  18 + /**
  19 + * 创建巡检计划角色
  20 + *
  21 + * @param createReqVO 创建信息
  22 + * @return 编号
  23 + */
  24 + Long createInspectionPlanRole(@Valid InspectionPlanRoleSaveReqVO createReqVO);
  25 +
  26 + /**
  27 + * 更新巡检计划角色
  28 + *
  29 + * @param updateReqVO 更新信息
  30 + */
  31 + void updateInspectionPlanRole(@Valid InspectionPlanRoleSaveReqVO updateReqVO);
  32 +
  33 + /**
  34 + * 删除巡检计划角色
  35 + *
  36 + * @param id 编号
  37 + */
  38 + void deleteInspectionPlanRole(Long id);
  39 +
  40 + /**
  41 + * 批量删除巡检计划角色
  42 + *
  43 + * @param ids 编号
  44 + */
  45 + void deleteInspectionPlanRoleListByIds(List<Long> ids);
  46 +
  47 + /**
  48 + * 获得巡检计划角色
  49 + *
  50 + * @param id 编号
  51 + * @return 巡检计划角色
  52 + */
  53 + InspectionPlanRoleDO getInspectionPlanRole(Long id);
  54 +
  55 + /**
  56 + * 获得巡检计划角色分页
  57 + *
  58 + * @param pageReqVO 分页查询
  59 + * @return 巡检计划角色分页
  60 + */
  61 + PageResult<InspectionPlanRoleDO> getInspectionPlanRolePage(InspectionPlanRolePageReqVO pageReqVO);
  62 +
  63 +}
0 \ No newline at end of file 64 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleServiceImpl.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.service.inspectionplan;
  2 +
  3 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO;
  4 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleSaveReqVO;
  5 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO;
  6 +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper;
  7 +import org.springframework.stereotype.Service;
  8 +import jakarta.annotation.Resource;
  9 +import org.springframework.validation.annotation.Validated;
  10 +
  11 +import java.util.*;
  12 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  13 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  14 +
  15 +/**
  16 + * 巡检计划角色 Service 实现类
  17 + *
  18 + * @author 超级管理员
  19 + */
  20 +@Service
  21 +@Validated
  22 +public class InspectionPlanRoleServiceImpl implements InspectionPlanRoleService {
  23 +
  24 + @Resource
  25 + private InspectionPlanRoleMapper inspectionPlanRoleMapper;
  26 +
  27 + @Override
  28 + public Long createInspectionPlanRole(InspectionPlanRoleSaveReqVO createReqVO) {
  29 + // 插入
  30 + InspectionPlanRoleDO inspectionPlanRole = BeanUtils.toBean(createReqVO, InspectionPlanRoleDO.class);
  31 + inspectionPlanRoleMapper.insert(inspectionPlanRole);
  32 +
  33 + // 返回
  34 + return inspectionPlanRole.getId();
  35 + }
  36 +
  37 + @Override
  38 + public void updateInspectionPlanRole(InspectionPlanRoleSaveReqVO updateReqVO) {
  39 + // 校验存在
  40 + validateInspectionPlanRoleExists(updateReqVO.getId());
  41 + // 更新
  42 + InspectionPlanRoleDO updateObj = BeanUtils.toBean(updateReqVO, InspectionPlanRoleDO.class);
  43 + inspectionPlanRoleMapper.updateById(updateObj);
  44 + }
  45 +
  46 + @Override
  47 + public void deleteInspectionPlanRole(Long id) {
  48 + // 校验存在
  49 + validateInspectionPlanRoleExists(id);
  50 + // 删除
  51 + inspectionPlanRoleMapper.deleteById(id);
  52 + }
  53 +
  54 + @Override
  55 + public void deleteInspectionPlanRoleListByIds(List<Long> ids) {
  56 + // 删除
  57 + inspectionPlanRoleMapper.deleteByIds(ids);
  58 + }
  59 +
  60 +
  61 + private void validateInspectionPlanRoleExists(Long id) {
  62 + if (inspectionPlanRoleMapper.selectById(id) == null) {
  63 + //throw exception("");
  64 + }
  65 + }
  66 +
  67 + @Override
  68 + public InspectionPlanRoleDO getInspectionPlanRole(Long id) {
  69 + return inspectionPlanRoleMapper.selectById(id);
  70 + }
  71 +
  72 + @Override
  73 + public PageResult<InspectionPlanRoleDO> getInspectionPlanRolePage(InspectionPlanRolePageReqVO pageReqVO) {
  74 + return inspectionPlanRoleMapper.selectPage(pageReqVO);
  75 + }
  76 +
  77 +}
0 \ No newline at end of file 78 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.service.inspectionplan;
  2 +
  3 +import java.util.*;
  4 +
  5 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  6 +import jakarta.validation.*;
  7 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  8 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
  9 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  10 +
  11 +/**
  12 + * 巡检计划汇总 Service 接口
  13 + *
  14 + * @author 超级管理员
  15 + */
  16 +public interface InspectionPlanService {
  17 +
  18 + /**
  19 + * 创建巡检计划汇总
  20 + *
  21 + * @param createReqVO 创建信息
  22 + * @return 编号
  23 + */
  24 + CommonResult<Long> createInspectionPlan(@Valid InspectionPlanSaveReqVO createReqVO);
  25 +
  26 + /**
  27 + * 更新巡检计划汇总
  28 + *
  29 + * @param updateReqVO 更新信息
  30 + */
  31 + void updateInspectionPlan(@Valid InspectionPlanUpdateReqVO updateReqVO);
  32 +
  33 + /**
  34 + * 删除巡检计划汇总
  35 + *
  36 + * @param id 编号
  37 + */
  38 + void deleteInspectionPlan(Long id);
  39 +
  40 + /**
  41 + * 批量删除巡检计划汇总
  42 + *
  43 + * @param ids 编号
  44 + */
  45 + void deleteInspectionPlanListByIds(List<Long> ids);
  46 +
  47 + /**
  48 + * 获得巡检计划汇总
  49 + *
  50 + * @param id 编号
  51 + * @return 巡检计划汇总
  52 + */
  53 + InspectionPlanDO getInspectionPlan(Long id);
  54 +
  55 + /**
  56 + * 获得巡检计划汇总分页
  57 + *
  58 + * @param pageReqVO 分页查询
  59 + * @return 巡检计划汇总分页
  60 + */
  61 + PageResult<InspectionPlanDO> getInspectionPlanPage(InspectionPlanPageReqVO pageReqVO);
  62 +
  63 + /**
  64 + * 根据批次号删除
  65 + * @param batchNo 批次号
  66 + */
  67 + void deleteInspectionPlanByBatchNo(String batchNo);
  68 +
  69 +}
0 \ No newline at end of file 70 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.service.inspectionplan;
  2 +
  3 +import cn.hutool.core.date.DateUtil;
  4 +import cn.hutool.core.util.RandomUtil;
  5 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6 +import com.zteits.urbanops.framework.common.pojo.CommonResult;
  7 +import com.zteits.urbanops.framework.common.util.collection.CollectionUtils;
  8 +import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils;
  9 +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
  10 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO;
  11 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO;
  12 +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper;
  13 +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper;
  14 +import com.zteits.urbanops.module.garden.enums.FinishStateEnum;
  15 +import com.zteits.urbanops.module.garden.enums.PlanConstants;
  16 +import com.zteits.urbanops.module.garden.util.TimeIntervalCalculatorUtil;
  17 +import lombok.extern.slf4j.Slf4j;
  18 +import org.springframework.stereotype.Service;
  19 +import jakarta.annotation.Resource;
  20 +import org.springframework.transaction.annotation.Transactional;
  21 +import org.springframework.validation.annotation.Validated;
  22 +
  23 +import java.time.LocalDate;
  24 +import java.time.LocalDateTime;
  25 +import java.time.format.DateTimeFormatter;
  26 +import java.util.*;
  27 +import java.util.concurrent.atomic.AtomicInteger;
  28 +import java.util.stream.Collectors;
  29 +
  30 +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*;
  31 +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO;
  32 +import com.zteits.urbanops.framework.common.pojo.PageResult;
  33 +import com.zteits.urbanops.framework.common.util.object.BeanUtils;
  34 +
  35 +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanMapper;
  36 +
  37 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  38 +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
  39 +
  40 +/**
  41 + * 巡检计划汇总 Service 实现类
  42 + *
  43 + * @author 超级管理员
  44 + */
  45 +@Service
  46 +@Validated
  47 +@Slf4j
  48 +public class InspectionPlanServiceImpl implements InspectionPlanService {
  49 +
  50 + @Resource
  51 + private InspectionPlanMapper inspectionPlanMapper;
  52 +
  53 + @Resource
  54 + private InspectionPlanDetailMapper inspectionPlanDetailMapper;
  55 +
  56 + @Resource
  57 + private InspectionPlanRoleMapper inspectionPlanRoleMapper;
  58 +
  59 + @Transactional(rollbackFor = Exception.class)
  60 + @Override
  61 + public CommonResult<Long> createInspectionPlan(InspectionPlanSaveReqVO createReqVO) {
  62 + //存在性校验
  63 + validateInspectionPlanExists(createReqVO);
  64 + LocalDateTime now = LocalDateTime.now();
  65 + String userName = SecurityFrameworkUtils.getLoginUserId()+"";
  66 + int rateValue;
  67 + if (createReqVO.getRateValue().contains("/")) {
  68 + rateValue = Integer.parseInt(createReqVO.getRateValue().split("/")[1]);
  69 + } else {
  70 + rateValue = Integer.parseInt(createReqVO.getRateValue());
  71 + }
  72 + //计算开始和计算时间 在间隔周期下每天的次数
  73 + List<String> betweenDayList = TimeIntervalCalculatorUtil.calculateIntervals(createReqVO.getBeginTime(), createReqVO.getEndTime(), createReqVO.getCycleId(), rateValue);
  74 + if (CollectionUtils.isAnyEmpty(betweenDayList)) {
  75 + log.warn("获取两个时间之间间隔天数错误");
  76 + return CommonResult.error(INSPECTION_CYCLE_ERROR);
  77 + }
  78 + //计算计划次数
  79 + Integer planNum = betweenDayList.size();
  80 + InspectionPlanDO inspectionPlan = BeanUtils.toBean(createReqVO, InspectionPlanDO.class);
  81 + AtomicInteger count = new AtomicInteger();
  82 +
  83 + //按照道路创建计划
  84 + createReqVO.getRoadListReqVO().forEach(roadReqVO -> {
  85 + String batchNo = "BN" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000);
  86 + inspectionPlan.setBatchNo(batchNo);
  87 + inspectionPlan.setPlanFinishNum(0);
  88 + inspectionPlan.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus());
  89 + inspectionPlan.setPlanNum(planNum);
  90 + inspectionPlan.setCreateTime(now);
  91 + inspectionPlan.setUpdateTime(now);
  92 + inspectionPlan.setCreator(userName);
  93 + inspectionPlan.setUpdater(userName);
  94 + inspectionPlan.setDeptId(roadReqVO.getDeptId());
  95 + inspectionPlan.setRoadId(roadReqVO.getRoadId());
  96 + inspectionPlan.setRoadName(roadReqVO.getRoadName());
  97 + //计划属性label
  98 + String planAttrLabel = DictFrameworkUtils.parseDictDataLabel(PlanConstants.GARDEN_PLAN_ATTR_REDIS_KEY, createReqVO.getPlanAttr());
  99 + inspectionPlan.setPlanName(roadReqVO.getRoadName() + planAttrLabel + createReqVO.getPlanNameSuffix());
  100 + /*1.插入巡查计划*/
  101 + count.addAndGet(inspectionPlanMapper.insert(inspectionPlan));
  102 + /*2.插入角色*/
  103 + createReqVO.getRoleIds().forEach(roleId -> {
  104 + InspectionPlanRoleDO inspectionPlanRoleDO = new InspectionPlanRoleDO();
  105 + inspectionPlanRoleDO.setBatchNo(batchNo);
  106 + inspectionPlanRoleDO.setCompanyId(createReqVO.getCompanyId());
  107 + inspectionPlanRoleDO.setDeptId(roadReqVO.getDeptId());
  108 + inspectionPlanRoleDO.setCreateTime(now);
  109 + inspectionPlanRoleDO.setUpdateTime(now);
  110 + inspectionPlanRoleDO.setCreator(userName);
  111 + inspectionPlanRoleDO.setUpdater(userName);
  112 + inspectionPlanRoleDO.setRoleId(roleId);
  113 + inspectionPlanRoleMapper.insert(inspectionPlanRoleDO);
  114 + });
  115 + /*3.插入巡查计划明细*/
  116 + for (int i = 0; i < betweenDayList.size(); i++) {
  117 + String[] dateStr = betweenDayList.get(i).split("/");
  118 + InspectionPlanDetailDO entity = getInspectionPlanDetailDO(batchNo, createReqVO, roadReqVO, now, userName);
  119 + entity.setSortNum(i+1);
  120 + entity.setBeginTime(LocalDate.parse(dateStr[0], DateTimeFormatter.ofPattern("yyyy-MM-dd")));
  121 + entity.setEndTime(LocalDate.parse(dateStr[1], DateTimeFormatter.ofPattern("yyyy-MM-dd")));
  122 +
  123 + inspectionPlanDetailMapper.insert(entity);
  124 + }
  125 + });
  126 +
  127 + // 返回
  128 + return CommonResult.success(count.longValue());
  129 + }
  130 +
  131 + private InspectionPlanDetailDO getInspectionPlanDetailDO(String batchNo, InspectionPlanSaveReqVO saveReqVO,
  132 + InspectionPlanRoadReqVO roadReqVO, LocalDateTime now, String userName) {
  133 + InspectionPlanDetailDO entity = new InspectionPlanDetailDO();
  134 + entity.setBatchNo(batchNo);
  135 + entity.setPlanNo("P" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000));
  136 + entity.setBusiLine(saveReqVO.getBusiLine());
  137 + entity.setCompanyId(saveReqVO.getCompanyId());
  138 + entity.setDeptId(roadReqVO.getDeptId());
  139 + entity.setRoadId(roadReqVO.getRoadId());
  140 + entity.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus());
  141 + entity.setCreator(userName);
  142 + entity.setUpdater(userName);
  143 + entity.setCreateTime(now);
  144 + entity.setUpdateTime(now);
  145 + return entity;
  146 + }
  147 +
  148 + @Override
  149 + public void updateInspectionPlan(InspectionPlanUpdateReqVO updateReqVO) {
  150 + // 校验存在
  151 + validateInspectionPlanExists(updateReqVO.getId());
  152 + // 更新
  153 + InspectionPlanDO updateObj = BeanUtils.toBean(updateReqVO, InspectionPlanDO.class);
  154 + inspectionPlanMapper.updateById(updateObj);
  155 + }
  156 +
  157 + @Override
  158 + public void deleteInspectionPlan(Long id) {
  159 + // 校验存在
  160 + validateInspectionPlanExists(id);
  161 + // 删除
  162 + inspectionPlanMapper.deleteById(id);
  163 + }
  164 +
  165 + @Override
  166 + public void deleteInspectionPlanListByIds(List<Long> ids) {
  167 + // 删除
  168 + inspectionPlanMapper.deleteByIds(ids);
  169 + }
  170 +
  171 +
  172 + private void validateInspectionPlanExists(InspectionPlanSaveReqVO req) {
  173 + Set<Long> roadIds = req.getRoadListReqVO().stream().map(InspectionPlanRoadReqVO::getRoadId).collect(Collectors.toSet());
  174 + QueryWrapper<InspectionPlanDO> sql = new QueryWrapper<>();
  175 + sql.lambda().eq(InspectionPlanDO::getPlanTypeId, req.getPlanTypeId())
  176 + .in(InspectionPlanDO::getRoadId, roadIds)
  177 + .between(InspectionPlanDO::getBeginTime, req.getBeginTime(), req.getEndTime());
  178 +
  179 + Long count = inspectionPlanMapper.selectCount(sql);
  180 + if (count > 0) {
  181 + throw exception(INSPECTION_PLAN_EXISTS);
  182 + }
  183 + }
  184 +
  185 + private void validateInspectionPlanExists(Long id) {
  186 + if (inspectionPlanMapper.selectById(id) == null) {
  187 + throw exception(INSPECTION_PLAN_NOT_EXISTS);
  188 + }
  189 + }
  190 +
  191 +
  192 + @Override
  193 + public InspectionPlanDO getInspectionPlan(Long id) {
  194 + return inspectionPlanMapper.selectById(id);
  195 + }
  196 +
  197 + @Override
  198 + public PageResult<InspectionPlanDO> getInspectionPlanPage(InspectionPlanPageReqVO pageReqVO) {
  199 + return inspectionPlanMapper.selectPage(pageReqVO);
  200 + }
  201 +
  202 + @Override
  203 + public void deleteInspectionPlanByBatchNo(String batchNo) {
  204 + inspectionPlanMapper.delete(InspectionPlanDO::getBatchNo, batchNo);
  205 + inspectionPlanDetailMapper.delete(InspectionPlanDetailDO::getBatchNo, batchNo);
  206 + inspectionPlanRoleMapper.delete(InspectionPlanRoleDO::getBatchNo, batchNo);
  207 + }
  208 +
  209 +}
0 \ No newline at end of file 210 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/util/TimeIntervalCalculatorUtil.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.util;
  2 +
  3 +
  4 +import java.time.LocalDate;
  5 +import java.util.ArrayList;
  6 +import java.util.List;
  7 +
  8 +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
  9 +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.INSPECTION_CYCLE_ID_ERROR;
  10 +
  11 +public class TimeIntervalCalculatorUtil {
  12 + enum IntervalUnit {
  13 + DAY, WEEK, MONTH, YEAR
  14 + }
  15 +
  16 + public static void main(String[] args) {
  17 +
  18 + System.out.println("请输入开始日期(yyyy-MM-dd):");
  19 + LocalDate startDate = LocalDate.of(2025,10,1);
  20 +
  21 + System.out.println("请输入结束日期(yyyy-MM-dd):");
  22 + LocalDate endDate = LocalDate.of(2025,10,7);
  23 +
  24 + System.out.println("请选择间隔单位(1.天 2.周 3.月 4.年):");
  25 + IntervalUnit unit = IntervalUnit.DAY;
  26 +
  27 + System.out.println("请输入间隔数量(如2表示每2天/周/月/年):");
  28 + int intervalCount =2;
  29 +
  30 + List<String> intervals = calculateIntervals(startDate, endDate, 1, intervalCount);
  31 +
  32 + System.out.println("\n执行周期:");
  33 + intervals.forEach(System.out::println);
  34 + }
  35 +
  36 + /**
  37 + * 执行次数计算
  38 + * @param start
  39 + * @param end
  40 + * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次
  41 + * @param intervalCount
  42 + * @return
  43 + */
  44 + public static List<String> calculateIntervals(LocalDate start, LocalDate end, Integer cycleId, int intervalCount) {
  45 + List<String> intervals = new ArrayList<>();
  46 + LocalDate currentStart = start;
  47 + IntervalUnit unit = getIntervalUnit(cycleId);
  48 +
  49 + while (currentStart.isBefore(end) || currentStart.isEqual(end)) {
  50 + LocalDate currentEnd = calculateEndDate(currentStart, end, unit, intervalCount);
  51 + intervals.add(currentStart + "/" + currentEnd);
  52 + currentStart = currentEnd.plusDays(1);
  53 + }
  54 +
  55 + return intervals;
  56 + }
  57 +
  58 + private static LocalDate calculateEndDate(LocalDate currentStart, LocalDate endDate,
  59 + IntervalUnit unit, int intervalCount) {
  60 + switch (unit) {
  61 + case DAY:
  62 + LocalDate dayEnd = currentStart.plusDays(intervalCount - 1);
  63 + return dayEnd.isAfter(endDate) ? endDate : dayEnd;
  64 + case WEEK:
  65 + LocalDate weekEnd = currentStart.plusDays(7 * intervalCount - 1);
  66 + return weekEnd.isAfter(endDate) ? endDate : weekEnd;
  67 + case MONTH:
  68 + LocalDate monthEnd = currentStart.plusMonths(intervalCount)
  69 + .withDayOfMonth(1).minusDays(1);
  70 + return monthEnd.isAfter(endDate) ? endDate : monthEnd;
  71 + case YEAR:
  72 + LocalDate yearEnd = currentStart.plusYears(intervalCount)
  73 + .withDayOfYear(1).minusDays(1);
  74 + return yearEnd.isAfter(endDate) ? endDate : yearEnd;
  75 + default:
  76 + return endDate;
  77 + }
  78 + }
  79 +
  80 + /**
  81 + * 转换枚举
  82 + * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次
  83 + * @return
  84 + */
  85 + public static IntervalUnit getIntervalUnit(Integer cycleId) {
  86 + switch (cycleId) {
  87 + case 1:
  88 + return IntervalUnit.DAY;
  89 + case 2:
  90 + return IntervalUnit.WEEK;
  91 + case 3:
  92 + return IntervalUnit.MONTH;
  93 + case 4:
  94 + return IntervalUnit.YEAR;
  95 + default:
  96 + throw exception(INSPECTION_CYCLE_ID_ERROR);
  97 + }
  98 + }
  99 +
  100 +}
urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanDetailMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper">
  4 +
  5 + <!--
  6 + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  7 + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  8 + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  9 + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  10 + -->
  11 +
  12 +</mapper>
0 \ No newline at end of file 13 \ No newline at end of file
urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanMapper">
  4 +
  5 + <!--
  6 + 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  7 + 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  8 + 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  9 + 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  10 + -->
  11 +
  12 +</mapper>
0 \ No newline at end of file 13 \ No newline at end of file