diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanDetailController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanDetailController.java new file mode 100644 index 0000000..8f82cb0 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanDetailController.java @@ -0,0 +1,101 @@ +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan; + +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanDetailPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanDetailRespVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanDetailSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanDetailService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +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.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.*; + + +@Tag(name = "管理后台 - 巡检计划") +@RestController +@RequestMapping("/garden/inspection-plan-detail") +@Validated +public class InspectionPlanDetailController { + + @Resource + private InspectionPlanDetailService inspectionPlanDetailService; + + + + @PutMapping("/update") + @Operation(summary = "更新巡检计划") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:update')") + public CommonResult updateInspectionPlanDetail(@Valid @RequestBody InspectionPlanDetailSaveReqVO updateReqVO) { + inspectionPlanDetailService.updateInspectionPlanDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除巡检计划") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:delete')") + public CommonResult deleteInspectionPlanDetail(@RequestParam("id") Long id) { + inspectionPlanDetailService.deleteInspectionPlanDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除巡检计划") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:delete')") + public CommonResult deleteInspectionPlanDetailList(@RequestParam("ids") List ids) { + inspectionPlanDetailService.deleteInspectionPlanDetailListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得巡检计划") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:query')") + public CommonResult getInspectionPlanDetail(@RequestParam("id") Long id) { + InspectionPlanDetailDO inspectionPlanDetail = inspectionPlanDetailService.getInspectionPlanDetail(id); + return success(BeanUtils.toBean(inspectionPlanDetail, InspectionPlanDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得巡检计划分页") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:query')") + public CommonResult> getInspectionPlanDetailPage(@Valid InspectionPlanDetailPageReqVO pageReqVO) { + PageResult pageResult = inspectionPlanDetailService.getInspectionPlanDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, InspectionPlanDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出巡检计划 Excel") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportInspectionPlanDetailExcel(@Valid InspectionPlanDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = inspectionPlanDetailService.getInspectionPlanDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "巡检计划.xls", "数据", InspectionPlanDetailRespVO.class, + BeanUtils.toBean(list, InspectionPlanDetailRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanRoleController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanRoleController.java new file mode 100644 index 0000000..0f2ddc5 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanRoleController.java @@ -0,0 +1,106 @@ +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan; + +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleRespVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO; +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanRoleService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +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.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.*; + + +@Tag(name = "管理后台 - 巡检计划角色") +@RestController +@RequestMapping("/garden/inspection-plan-role") +@Validated +public class InspectionPlanRoleController { + + @Resource + private InspectionPlanRoleService inspectionPlanRoleService; + + @PostMapping("/create") + @Operation(summary = "创建巡检计划角色") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:create')") + public CommonResult createInspectionPlanRole(@Valid @RequestBody InspectionPlanRoleSaveReqVO createReqVO) { + return success(inspectionPlanRoleService.createInspectionPlanRole(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新巡检计划角色") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:update')") + public CommonResult updateInspectionPlanRole(@Valid @RequestBody InspectionPlanRoleSaveReqVO updateReqVO) { + inspectionPlanRoleService.updateInspectionPlanRole(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除巡检计划角色") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:delete')") + public CommonResult deleteInspectionPlanRole(@RequestParam("id") Long id) { + inspectionPlanRoleService.deleteInspectionPlanRole(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除巡检计划角色") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:delete')") + public CommonResult deleteInspectionPlanRoleList(@RequestParam("ids") List ids) { + inspectionPlanRoleService.deleteInspectionPlanRoleListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得巡检计划角色") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:query')") + public CommonResult getInspectionPlanRole(@RequestParam("id") Long id) { + InspectionPlanRoleDO inspectionPlanRole = inspectionPlanRoleService.getInspectionPlanRole(id); + return success(BeanUtils.toBean(inspectionPlanRole, InspectionPlanRoleRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得巡检计划角色分页") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:query')") + public CommonResult> getInspectionPlanRolePage(@Valid InspectionPlanRolePageReqVO pageReqVO) { + PageResult pageResult = inspectionPlanRoleService.getInspectionPlanRolePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, InspectionPlanRoleRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出巡检计划角色 Excel") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan-role:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportInspectionPlanRoleExcel(@Valid InspectionPlanRolePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = inspectionPlanRoleService.getInspectionPlanRolePage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "巡检计划角色.xls", "数据", InspectionPlanRoleRespVO.class, + BeanUtils.toBean(list, InspectionPlanRoleRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailPageReqVO.java new file mode 100644 index 0000000..ac34670 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailPageReqVO.java @@ -0,0 +1,54 @@ +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +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; + +@Schema(description = "管理后台 - 巡检计划分页 Request VO") +@Data +public class InspectionPlanDetailPageReqVO extends PageParam { + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "计划编码") + private String planNo; + + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政") + private String busiLine; + + @Schema(description = "归属(一级部门id)", example = "1951") + private Long companyId; + + @Schema(description = "部门ID(道路负责部门id)", example = "16561") + private Long deptId; + + @Schema(description = "道路ID", example = "32704") + private Long roadId; + + @Schema(description = "排序号:第n次计划") + private Integer sortNum; + + @Schema(description = "执行开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] beginTime; + + @Schema(description = "执行时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] endTime; + + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成") + private Integer finishState; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailRespVO.java new file mode 100644 index 0000000..9c7fb4b --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailRespVO.java @@ -0,0 +1,65 @@ +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 java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 巡检计划 Response VO") +@Data +@ExcelIgnoreUnannotated +public class InspectionPlanDetailRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16197") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("批次号") + private String batchNo; + + @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("计划编码") + private String planNo; + + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("业务线: yl-园林;wy-物业:sz-市政") + private String busiLine; + + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1951") + @ExcelProperty("归属(一级部门id)") + private Long companyId; + + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16561") + @ExcelProperty("部门ID(道路负责部门id)") + private Long deptId; + + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704") + @ExcelProperty("道路ID") + private Long roadId; + + @Schema(description = "排序号:第n次计划", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("排序号:第n次计划") + private Integer sortNum; + + @Schema(description = "执行开始时间") + @ExcelProperty("执行开始时间") + private LocalDate beginTime; + + @Schema(description = "执行时间") + @ExcelProperty("执行时间") + private LocalDate endTime; + + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("完成状态 1:未完成;2:进行中;3:已完成") + private Integer finishState; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailSaveReqVO.java new file mode 100644 index 0000000..60de1fe --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanDetailSaveReqVO.java @@ -0,0 +1,55 @@ +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 java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 巡检计划新增/修改 Request VO") +@Data +public class InspectionPlanDetailSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16197") + private Long id; + + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "批次号不能为空") + private String batchNo; + + @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "计划编码不能为空") + private String planNo; + + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "业务线: yl-园林;wy-物业:sz-市政不能为空") + private String busiLine; + + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1951") + @NotNull(message = "归属(一级部门id)不能为空") + private Long companyId; + + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16561") + @NotNull(message = "部门ID(道路负责部门id)不能为空") + private Long deptId; + + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704") + @NotNull(message = "道路ID不能为空") + private Long roadId; + + @Schema(description = "排序号:第n次计划", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "排序号:第n次计划不能为空") + private Integer sortNum; + + @Schema(description = "执行开始时间") + private LocalDate beginTime; + + @Schema(description = "执行时间") + private LocalDate endTime; + + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "完成状态 1:未完成;2:进行中;3:已完成不能为空") + private Integer finishState; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRolePageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRolePageReqVO.java new file mode 100644 index 0000000..9e3d732 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRolePageReqVO.java @@ -0,0 +1,32 @@ +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; + +import lombok.*; +import java.util.*; +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; + +@Schema(description = "管理后台 - 巡检计划角色分页 Request VO") +@Data +public class InspectionPlanRolePageReqVO extends PageParam { + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "归属(一级部门id)", example = "12346") + private Long companyId; + + @Schema(description = "部门ID(道路负责部门id)", example = "22415") + private Long deptId; + + @Schema(description = "角色ID", example = "21343") + private Long roleId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleRespVO.java new file mode 100644 index 0000000..aac6168 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleRespVO.java @@ -0,0 +1,39 @@ +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 巡检计划角色 Response VO") +@Data +@ExcelIgnoreUnannotated +public class InspectionPlanRoleRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4778") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("批次号") + private String batchNo; + + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "12346") + @ExcelProperty("归属(一级部门id)") + private Long companyId; + + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22415") + @ExcelProperty("部门ID(道路负责部门id)") + private Long deptId; + + @Schema(description = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21343") + @ExcelProperty("角色ID") + private Long roleId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleSaveReqVO.java new file mode 100644 index 0000000..f902cdf --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanRoleSaveReqVO.java @@ -0,0 +1,31 @@ +package com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 巡检计划角色新增/修改 Request VO") +@Data +public class InspectionPlanRoleSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4778") + private Long id; + + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "批次号不能为空") + private String batchNo; + + @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "12346") + @NotNull(message = "归属(一级部门id)不能为空") + private Long companyId; + + @Schema(description = "部门ID(道路负责部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "22415") + @NotNull(message = "部门ID(道路负责部门id)不能为空") + private Long deptId; + + @Schema(description = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21343") + @NotNull(message = "角色ID不能为空") + private Long roleId; + +} \ No newline at end of file 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 ffaa1e2..d860813 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 @@ -64,6 +64,6 @@ public class InspectionPlanSaveReqVO { @NotNull(message = "角色Ids不能为空") @Schema(description = "角色Ids", requiredMode = Schema.RequiredMode.REQUIRED, example = "[1,2]") @Size(min = 1) - private Set roleIds; + private Set roleIds; } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanDetailDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanDetailDO.java new file mode 100644 index 0000000..f05ef64 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanDetailDO.java @@ -0,0 +1,74 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 巡检计划 DO + * + * @author 超级管理员 + */ +@TableName("garden_inspection_plan_detail") +@KeySequence("garden_inspection_plan_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InspectionPlanDetailDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 批次号 + */ + private String batchNo; + /** + * 计划编码 + */ + private String planNo; + /** + * 业务线: yl-园林;wy-物业:sz-市政 + */ + private String busiLine; + /** + * 归属(一级部门id) + */ + private Long companyId; + /** + * 部门ID(道路负责部门id) + */ + private Long deptId; + /** + * 道路ID + */ + private Long roadId; + /** + * 排序号:第n次计划 + */ + private Integer sortNum; + /** + * 执行开始时间 + */ + private LocalDate beginTime; + /** + * 执行时间 + */ + private LocalDate endTime; + /** + * 完成状态 1:未完成;2:进行中;3:已完成 + */ + private Integer finishState; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanRoleDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanRoleDO.java new file mode 100644 index 0000000..35e11d7 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/inspectionplan/InspectionPlanRoleDO.java @@ -0,0 +1,48 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 巡检计划角色 DO + * + * @author 超级管理员 + */ +@TableName("garden_inspection_plan_role") +@KeySequence("garden_inspection_plan_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InspectionPlanRoleDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 批次号 + */ + private String batchNo; + /** + * 归属(一级部门id) + */ + private Long companyId; + /** + * 部门ID(道路负责部门id) + */ + private Long deptId; + /** + * 角色ID + */ + private Long roleId; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanDetailMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanDetailMapper.java new file mode 100644 index 0000000..134d027 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanDetailMapper.java @@ -0,0 +1,36 @@ +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.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; + +/** + * 巡检计划 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface InspectionPlanDetailMapper extends BaseMapperX { + + default PageResult selectPage(InspectionPlanDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InspectionPlanDetailDO::getBatchNo, reqVO.getBatchNo()) + .eqIfPresent(InspectionPlanDetailDO::getPlanNo, reqVO.getPlanNo()) + .eqIfPresent(InspectionPlanDetailDO::getBusiLine, reqVO.getBusiLine()) + .eqIfPresent(InspectionPlanDetailDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(InspectionPlanDetailDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(InspectionPlanDetailDO::getRoadId, reqVO.getRoadId()) + .eqIfPresent(InspectionPlanDetailDO::getSortNum, reqVO.getSortNum()) + .betweenIfPresent(InspectionPlanDetailDO::getBeginTime, reqVO.getBeginTime()) + .betweenIfPresent(InspectionPlanDetailDO::getEndTime, reqVO.getEndTime()) + .eqIfPresent(InspectionPlanDetailDO::getFinishState, reqVO.getFinishState()) + .betweenIfPresent(InspectionPlanDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(InspectionPlanDetailDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanRoleMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanRoleMapper.java new file mode 100644 index 0000000..af39264 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/inspectionplan/InspectionPlanRoleMapper.java @@ -0,0 +1,30 @@ +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.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 巡检计划角色 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface InspectionPlanRoleMapper extends BaseMapperX { + + default PageResult selectPage(InspectionPlanRolePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InspectionPlanRoleDO::getBatchNo, reqVO.getBatchNo()) + .eqIfPresent(InspectionPlanRoleDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(InspectionPlanRoleDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(InspectionPlanRoleDO::getRoleId, reqVO.getRoleId()) + .betweenIfPresent(InspectionPlanRoleDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(InspectionPlanRoleDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailService.java new file mode 100644 index 0000000..f811bd3 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.inspectionplan; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 巡检计划 Service 接口 + * + * @author 超级管理员 + */ +public interface InspectionPlanDetailService { + + /** + * 创建巡检计划 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createInspectionPlanDetail(@Valid InspectionPlanDetailSaveReqVO createReqVO); + + /** + * 更新巡检计划 + * + * @param updateReqVO 更新信息 + */ + void updateInspectionPlanDetail(@Valid InspectionPlanDetailSaveReqVO updateReqVO); + + /** + * 删除巡检计划 + * + * @param id 编号 + */ + void deleteInspectionPlanDetail(Long id); + + /** + * 批量删除巡检计划 + * + * @param ids 编号 + */ + void deleteInspectionPlanDetailListByIds(List ids); + + /** + * 获得巡检计划 + * + * @param id 编号 + * @return 巡检计划 + */ + InspectionPlanDetailDO getInspectionPlanDetail(Long id); + + /** + * 获得巡检计划分页 + * + * @param pageReqVO 分页查询 + * @return 巡检计划分页 + */ + PageResult getInspectionPlanDetailPage(InspectionPlanDetailPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailServiceImpl.java new file mode 100644 index 0000000..c957a76 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailServiceImpl.java @@ -0,0 +1,85 @@ +package com.zteits.urbanops.module.garden.service.inspectionplan; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 巡检计划 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class InspectionPlanDetailServiceImpl implements InspectionPlanDetailService { + + @Resource + private InspectionPlanDetailMapper inspectionPlanDetailMapper; + + @Override + public Long createInspectionPlanDetail(InspectionPlanDetailSaveReqVO createReqVO) { + // 插入 + InspectionPlanDetailDO inspectionPlanDetail = BeanUtils.toBean(createReqVO, InspectionPlanDetailDO.class); + inspectionPlanDetailMapper.insert(inspectionPlanDetail); + + // 返回 + return inspectionPlanDetail.getId(); + } + + @Override + public void updateInspectionPlanDetail(InspectionPlanDetailSaveReqVO updateReqVO) { + // 校验存在 + validateInspectionPlanDetailExists(updateReqVO.getId()); + // 更新 + InspectionPlanDetailDO updateObj = BeanUtils.toBean(updateReqVO, InspectionPlanDetailDO.class); + inspectionPlanDetailMapper.updateById(updateObj); + } + + @Override + public void deleteInspectionPlanDetail(Long id) { + // 校验存在 + validateInspectionPlanDetailExists(id); + // 删除 + inspectionPlanDetailMapper.deleteById(id); + } + + @Override + public void deleteInspectionPlanDetailListByIds(List ids) { + // 删除 + inspectionPlanDetailMapper.deleteByIds(ids); + } + + + private void validateInspectionPlanDetailExists(Long id) { + if (inspectionPlanDetailMapper.selectById(id) == null) { + //throw exception(INSPECTION_PLAN_DETAIL_NOT_EXISTS); + } + } + + @Override + public InspectionPlanDetailDO getInspectionPlanDetail(Long id) { + return inspectionPlanDetailMapper.selectById(id); + } + + @Override + public PageResult getInspectionPlanDetailPage(InspectionPlanDetailPageReqVO pageReqVO) { + return inspectionPlanDetailMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleService.java new file mode 100644 index 0000000..ee16b6e --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleService.java @@ -0,0 +1,63 @@ +package com.zteits.urbanops.module.garden.service.inspectionplan; + +import java.util.*; + +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO; +import jakarta.validation.*; +import com.zteits.urbanops.framework.common.pojo.PageResult; + +/** + * 巡检计划角色 Service 接口 + * + * @author 超级管理员 + */ +public interface InspectionPlanRoleService { + + /** + * 创建巡检计划角色 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createInspectionPlanRole(@Valid InspectionPlanRoleSaveReqVO createReqVO); + + /** + * 更新巡检计划角色 + * + * @param updateReqVO 更新信息 + */ + void updateInspectionPlanRole(@Valid InspectionPlanRoleSaveReqVO updateReqVO); + + /** + * 删除巡检计划角色 + * + * @param id 编号 + */ + void deleteInspectionPlanRole(Long id); + + /** + * 批量删除巡检计划角色 + * + * @param ids 编号 + */ + void deleteInspectionPlanRoleListByIds(List ids); + + /** + * 获得巡检计划角色 + * + * @param id 编号 + * @return 巡检计划角色 + */ + InspectionPlanRoleDO getInspectionPlanRole(Long id); + + /** + * 获得巡检计划角色分页 + * + * @param pageReqVO 分页查询 + * @return 巡检计划角色分页 + */ + PageResult getInspectionPlanRolePage(InspectionPlanRolePageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleServiceImpl.java new file mode 100644 index 0000000..136b539 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanRoleServiceImpl.java @@ -0,0 +1,77 @@ +package com.zteits.urbanops.module.garden.service.inspectionplan; + +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRolePageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRoleSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO; +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +/** + * 巡检计划角色 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class InspectionPlanRoleServiceImpl implements InspectionPlanRoleService { + + @Resource + private InspectionPlanRoleMapper inspectionPlanRoleMapper; + + @Override + public Long createInspectionPlanRole(InspectionPlanRoleSaveReqVO createReqVO) { + // 插入 + InspectionPlanRoleDO inspectionPlanRole = BeanUtils.toBean(createReqVO, InspectionPlanRoleDO.class); + inspectionPlanRoleMapper.insert(inspectionPlanRole); + + // 返回 + return inspectionPlanRole.getId(); + } + + @Override + public void updateInspectionPlanRole(InspectionPlanRoleSaveReqVO updateReqVO) { + // 校验存在 + validateInspectionPlanRoleExists(updateReqVO.getId()); + // 更新 + InspectionPlanRoleDO updateObj = BeanUtils.toBean(updateReqVO, InspectionPlanRoleDO.class); + inspectionPlanRoleMapper.updateById(updateObj); + } + + @Override + public void deleteInspectionPlanRole(Long id) { + // 校验存在 + validateInspectionPlanRoleExists(id); + // 删除 + inspectionPlanRoleMapper.deleteById(id); + } + + @Override + public void deleteInspectionPlanRoleListByIds(List ids) { + // 删除 + inspectionPlanRoleMapper.deleteByIds(ids); + } + + + private void validateInspectionPlanRoleExists(Long id) { + if (inspectionPlanRoleMapper.selectById(id) == null) { + //throw exception(""); + } + } + + @Override + public InspectionPlanRoleDO getInspectionPlanRole(Long id) { + return inspectionPlanRoleMapper.selectById(id); + } + + @Override + public PageResult getInspectionPlanRolePage(InspectionPlanRolePageReqVO pageReqVO) { + return inspectionPlanRoleMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file 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 709e7bd..8baabb5 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,9 +1,15 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RandomUtil; 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.InspectionPlanDetailDO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanRoleDO; +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper; +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper; import com.zteits.urbanops.module.garden.enums.FinishStateEnum; import com.zteits.urbanops.module.garden.enums.PlanConstants; import com.zteits.urbanops.module.garden.util.TimeIntervalCalculatorUtil; @@ -13,7 +19,9 @@ import jakarta.annotation.Resource; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -40,22 +48,26 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @Resource private InspectionPlanMapper inspectionPlanMapper; + @Resource + private InspectionPlanDetailMapper inspectionPlanDetailMapper; + + @Resource + private InspectionPlanRoleMapper inspectionPlanRoleMapper; + @Transactional(rollbackFor = Exception.class) @Override public CommonResult createInspectionPlan(InspectionPlanSaveReqVO createReqVO) { LocalDateTime now = LocalDateTime.now(); String userName = SecurityFrameworkUtils.getLoginUserNickname() + "(" + SecurityFrameworkUtils.getLoginUserId() + ")"; - Integer rateValue; - if(createReqVO.getRateValue().contains("/")){ + if (createReqVO.getRateValue().contains("/")) { rateValue = Integer.parseInt(createReqVO.getRateValue().split("/")[1]); - }else{ + } else { rateValue = Integer.parseInt(createReqVO.getRateValue()); } - //计算开始和计算时间 在间隔周期下每天的次数 List betweenDayList = TimeIntervalCalculatorUtil.calculateIntervals(createReqVO.getBeginTime(), createReqVO.getEndTime(), createReqVO.getCycleId(), rateValue); - if(CollectionUtils.isAnyEmpty(betweenDayList)){ + if (CollectionUtils.isAnyEmpty(betweenDayList)) { log.warn("获取两个时间之间间隔天数错误"); return CommonResult.error(INSPECTION_CYCLE_ERROR); } @@ -66,7 +78,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { //按照道路创建计划 createReqVO.getRoadListReqVO().forEach(roadReqVO -> { - String batchNo = "X" + UUID.randomUUID(); + String batchNo = "BN" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000); inspectionPlan.setBatchNo(batchNo); inspectionPlan.setPlanFinishNum(0); inspectionPlan.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus()); @@ -78,17 +90,56 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { inspectionPlan.setDeptId(roadReqVO.getDeptId()); inspectionPlan.setRoadId(roadReqVO.getRoadId()); inspectionPlan.setRoadName(roadReqVO.getRoadName()); - //计划属性 + //计划属性label String planAttrLable = DictFrameworkUtils.parseDictDataLabel(PlanConstants.GARDEN_PLAN_ATTR_REDIS_KEY, createReqVO.getPlanAttr()); inspectionPlan.setPlanName(roadReqVO.getRoadName() + planAttrLable + createReqVO.getPlanNameSuffix()); /*1.插入巡查计划*/ count.addAndGet(inspectionPlanMapper.insert(inspectionPlan)); + /*2.插入角色*/ + createReqVO.getRoleIds().forEach(roleId -> { + InspectionPlanRoleDO inspectionPlanRoleDO = new InspectionPlanRoleDO(); + inspectionPlanRoleDO.setBatchNo(batchNo); + inspectionPlanRoleDO.setCompanyId(createReqVO.getCompanyId()); + inspectionPlanRoleDO.setDeptId(roadReqVO.getDeptId()); + inspectionPlanRoleDO.setCreateTime(now); + inspectionPlanRoleDO.setUpdateTime(now); + inspectionPlanRoleDO.setCreator(userName); + inspectionPlanRoleDO.setUpdater(userName); + inspectionPlanRoleDO.setRoleId(roleId); + inspectionPlanRoleMapper.insert(inspectionPlanRoleDO); + }); + /*3.插入巡查计划明细*/ + for (int i = 0; i < betweenDayList.size(); i++) { + String[] dateStr = betweenDayList.get(i).split("/"); + InspectionPlanDetailDO entity = getInspectionPlanDetailDO(batchNo, createReqVO, roadReqVO, now, userName); + 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); + } }); // 返回 return CommonResult.success(count.longValue()); } + private InspectionPlanDetailDO getInspectionPlanDetailDO(String batchNo, InspectionPlanSaveReqVO saveReqVO, + InspectionPlanRoadReqVO roadReqVO, LocalDateTime now, String userName) { + InspectionPlanDetailDO entity = new InspectionPlanDetailDO(); + entity.setBatchNo(batchNo); + entity.setPlanNo("P" + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomInt(1000)); + entity.setBusiLine(saveReqVO.getBusiLine()); + entity.setCompanyId(saveReqVO.getCompanyId()); + entity.setDeptId(roadReqVO.getDeptId()); + entity.setRoadId(roadReqVO.getRoadId()); + entity.setFinishState(FinishStateEnum.NOT_FINISHED.getStatus()); + entity.setCreator(userName); + entity.setUpdater(userName); + entity.setCreateTime(now); + entity.setUpdateTime(now); + return entity; + } @Override public void updateInspectionPlan(InspectionPlanUpdateReqVO updateReqVO) { diff --git a/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanDetailMapper.xml b/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanDetailMapper.xml new file mode 100644 index 0000000..b693066 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/inspectionplan/InspectionPlanDetailMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file