Commit 9c3046935b0433d94f2eb53f266746a7c4b0d820
Merge branch 'dev' of http://gitlab1.renniting.cn/JCSS/urbanops into dev
Showing
19 changed files
with
370 additions
and
113 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java
| 1 | 1 | package com.zteits.urbanops.module.garden.controller.admin.inspectionplan; |
| 2 | 2 | |
| 3 | -import com.zteits.urbanops.module.garden.util.StringValidateUtil; | |
| 3 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | |
| 4 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | |
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | |
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | |
| 7 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | |
| 8 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | |
| 9 | +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanPageReqVO; | |
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanRespVO; | |
| 11 | +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanSaveReqVO; | |
| 12 | +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanUpdateReqVO; | |
| 13 | +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO; | |
| 14 | +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanService; | |
| 15 | +import io.swagger.v3.oas.annotations.Operation; | |
| 16 | +import io.swagger.v3.oas.annotations.Parameter; | |
| 17 | +import io.swagger.v3.oas.annotations.tags.Tag; | |
| 18 | +import jakarta.annotation.Resource; | |
| 19 | +import jakarta.servlet.http.HttpServletResponse; | |
| 20 | +import jakarta.validation.Valid; | |
| 4 | 21 | import jakarta.validation.constraints.NotBlank; |
| 5 | 22 | import lombok.extern.slf4j.Slf4j; |
| 6 | -import org.springframework.web.bind.annotation.*; | |
| 7 | -import jakarta.annotation.Resource; | |
| 8 | -import org.springframework.validation.annotation.Validated; | |
| 9 | 23 | import org.springframework.security.access.prepost.PreAuthorize; |
| 10 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 11 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 12 | -import io.swagger.v3.oas.annotations.Operation; | |
| 24 | +import org.springframework.validation.annotation.Validated; | |
| 25 | +import org.springframework.web.bind.annotation.*; | |
| 13 | 26 | |
| 14 | -import jakarta.validation.*; | |
| 15 | -import jakarta.servlet.http.*; | |
| 16 | -import java.util.*; | |
| 17 | 27 | import java.io.IOException; |
| 28 | +import java.util.List; | |
| 18 | 29 | |
| 19 | -import com.zteits.urbanops.framework.common.pojo.PageParam; | |
| 20 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | |
| 21 | -import com.zteits.urbanops.framework.common.pojo.CommonResult; | |
| 22 | -import com.zteits.urbanops.framework.common.util.object.BeanUtils; | |
| 23 | - | |
| 24 | -import static com.alibaba.druid.util.FnvHash.Constants.LOG; | |
| 30 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; | |
| 25 | 31 | import static com.zteits.urbanops.framework.common.pojo.CommonResult.error; |
| 26 | 32 | 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 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PLAN_RATE_VALUE_ERROR; |
| 33 | -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PLAN_RATE_VALUE_INTEGER_ERROR; | |
| 34 | - | |
| 35 | -import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; | |
| 36 | -import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO; | |
| 37 | -import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanService; | |
| 38 | 34 | |
| 39 | 35 | @Tag(name = "管理后台 - 巡检计划汇总") |
| 40 | 36 | @RestController |
| ... | ... | @@ -54,12 +50,12 @@ public class InspectionPlanController { |
| 54 | 50 | log.warn("次数值范围:1-10或者分数格式:1/3, rateValue={}", createReqVO.getRateValue()); |
| 55 | 51 | return error(PLAN_RATE_VALUE_ERROR); |
| 56 | 52 | } |
| 57 | - //临时计划 | |
| 58 | - if(createReqVO.getPlanAttr().equals(2)){ | |
| 59 | - if(!StringValidateUtil.isValidNumberStr(createReqVO.getRateValue())){ | |
| 60 | - return error(PLAN_RATE_VALUE_INTEGER_ERROR); | |
| 61 | - } | |
| 62 | - } | |
| 53 | +// //临时计划 | |
| 54 | +// if(createReqVO.getPlanAttr().equals(2)){ | |
| 55 | +// if(!StringValidateUtil.isValidNumberStr(createReqVO.getRateValue())){ | |
| 56 | +// return error(PLAN_RATE_VALUE_INTEGER_ERROR); | |
| 57 | +// } | |
| 58 | +// } | |
| 63 | 59 | |
| 64 | 60 | return inspectionPlanService.createInspectionPlan(createReqVO); |
| 65 | 61 | } |
| ... | ... | @@ -138,4 +134,4 @@ public class InspectionPlanController { |
| 138 | 134 | list); |
| 139 | 135 | } |
| 140 | 136 | |
| 141 | -} | |
| 142 | 137 | \ No newline at end of file |
| 138 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/vo/InspectionPlanSaveReqVO.java
| ... | ... | @@ -48,8 +48,8 @@ public class InspectionPlanSaveReqVO { |
| 48 | 48 | @NotEmpty(message = "频次值不能为空") |
| 49 | 49 | private String rateValue; |
| 50 | 50 | |
| 51 | - @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 52 | - @NotNull(message = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次不能为空") | |
| 51 | + @Schema(description = "周期ID: 0:次;1:日/次;2:周/次;3:月/次;4:季/次;5:半年/次;6:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 52 | + @NotNull(message = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次;5:按次;6:季度;7:半年") | |
| 53 | 53 | private Integer cycleId; |
| 54 | 54 | |
| 55 | 55 | @Schema(description = "开始时间") |
| ... | ... | @@ -69,4 +69,4 @@ public class InspectionPlanSaveReqVO { |
| 69 | 69 | public boolean verify(){ |
| 70 | 70 | return StringValidateUtil.validate(rateValue); |
| 71 | 71 | } |
| 72 | -} | |
| 73 | 72 | \ No newline at end of file |
| 73 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/MaintainPlanController.java
| 1 | 1 | package com.zteits.urbanops.module.garden.controller.admin.maintainplan; |
| 2 | 2 | |
| 3 | -import com.zteits.urbanops.module.garden.util.StringValidateUtil; | |
| 3 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | |
| 4 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | |
| 5 | +import com.zteits.urbanops.framework.common.pojo.PageParam; | |
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | |
| 7 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | |
| 8 | +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | |
| 9 | +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanPageReqVO; | |
| 10 | +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanRespVO; | |
| 11 | +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanSaveReqVO; | |
| 12 | +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanUpdateReqVO; | |
| 13 | +import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDO; | |
| 14 | +import com.zteits.urbanops.module.garden.service.maintainplan.MaintainPlanService; | |
| 15 | +import io.swagger.v3.oas.annotations.Operation; | |
| 16 | +import io.swagger.v3.oas.annotations.Parameter; | |
| 17 | +import io.swagger.v3.oas.annotations.tags.Tag; | |
| 18 | +import jakarta.annotation.Resource; | |
| 19 | +import jakarta.servlet.http.HttpServletResponse; | |
| 20 | +import jakarta.validation.Valid; | |
| 4 | 21 | import jakarta.validation.constraints.NotBlank; |
| 5 | 22 | import lombok.extern.slf4j.Slf4j; |
| 6 | -import org.springframework.web.bind.annotation.*; | |
| 7 | -import jakarta.annotation.Resource; | |
| 8 | -import org.springframework.validation.annotation.Validated; | |
| 9 | 23 | import org.springframework.security.access.prepost.PreAuthorize; |
| 10 | -import io.swagger.v3.oas.annotations.tags.Tag; | |
| 11 | -import io.swagger.v3.oas.annotations.Parameter; | |
| 12 | -import io.swagger.v3.oas.annotations.Operation; | |
| 24 | +import org.springframework.validation.annotation.Validated; | |
| 25 | +import org.springframework.web.bind.annotation.*; | |
| 13 | 26 | |
| 14 | -import jakarta.validation.*; | |
| 15 | -import jakarta.servlet.http.*; | |
| 16 | -import java.util.*; | |
| 17 | 27 | import java.io.IOException; |
| 28 | +import java.util.List; | |
| 18 | 29 | |
| 19 | -import com.zteits.urbanops.framework.common.pojo.PageParam; | |
| 20 | -import com.zteits.urbanops.framework.common.pojo.PageResult; | |
| 21 | -import com.zteits.urbanops.framework.common.pojo.CommonResult; | |
| 22 | -import com.zteits.urbanops.framework.common.util.object.BeanUtils; | |
| 23 | - | |
| 30 | +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; | |
| 24 | 31 | import static com.zteits.urbanops.framework.common.pojo.CommonResult.error; |
| 25 | 32 | import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; |
| 26 | - | |
| 27 | -import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; | |
| 28 | - | |
| 29 | -import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | |
| 30 | -import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; | |
| 31 | 33 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PLAN_RATE_VALUE_ERROR; |
| 32 | -import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PLAN_RATE_VALUE_INTEGER_ERROR; | |
| 33 | - | |
| 34 | -import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*; | |
| 35 | -import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDO; | |
| 36 | -import com.zteits.urbanops.module.garden.service.maintainplan.MaintainPlanService; | |
| 37 | 34 | |
| 38 | 35 | @Tag(name = "管理后台 - 养护计划汇总") |
| 39 | 36 | @RestController |
| ... | ... | @@ -54,11 +51,11 @@ public class MaintainPlanController { |
| 54 | 51 | return error(PLAN_RATE_VALUE_ERROR); |
| 55 | 52 | } |
| 56 | 53 | //临时计划 |
| 57 | - if(createReqVO.getPlanAttr().equals(2)){ | |
| 58 | - if(!StringValidateUtil.isValidNumberStr(createReqVO.getRateValue())){ | |
| 59 | - return error(PLAN_RATE_VALUE_INTEGER_ERROR); | |
| 60 | - } | |
| 61 | - } | |
| 54 | +// if(createReqVO.getPlanAttr().equals(2)){ | |
| 55 | +// if(!StringValidateUtil.isValidNumberStr(createReqVO.getRateValue())){ | |
| 56 | +// return error(PLAN_RATE_VALUE_INTEGER_ERROR); | |
| 57 | +// } | |
| 58 | +// } | |
| 62 | 59 | |
| 63 | 60 | return maintainPlanService.createMaintainPlan(createReqVO); |
| 64 | 61 | } |
| ... | ... | @@ -137,4 +134,4 @@ public class MaintainPlanController { |
| 137 | 134 | list); |
| 138 | 135 | } |
| 139 | 136 | |
| 140 | -} | |
| 141 | 137 | \ No newline at end of file |
| 138 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/maintainplan/vo/MaintainPlanSaveReqVO.java
| ... | ... | @@ -48,8 +48,8 @@ public class MaintainPlanSaveReqVO { |
| 48 | 48 | @NotEmpty(message = "频次值不能为空") |
| 49 | 49 | private String rateValue; |
| 50 | 50 | |
| 51 | - @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 52 | - @NotNull(message = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次不能为空") | |
| 51 | + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次;5:按次;6:季度;7:半年", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 52 | + @NotNull(message = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次;5:按次;6:季度;7:半年") | |
| 53 | 53 | private Integer cycleId; |
| 54 | 54 | |
| 55 | 55 | @Schema(description = "开始时间") |
| ... | ... | @@ -69,4 +69,4 @@ public class MaintainPlanSaveReqVO { |
| 69 | 69 | public boolean verify(){ |
| 70 | 70 | return StringValidateUtil.validate(rateValue); |
| 71 | 71 | } |
| 72 | -} | |
| 73 | 72 | \ No newline at end of file |
| 73 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/FinishStateEnum.java
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/MaintenanceCycleEnum.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.enums; | |
| 2 | + | |
| 3 | +import java.util.HashMap; | |
| 4 | +import java.util.Map; | |
| 5 | + | |
| 6 | +public enum MaintenanceCycleEnum { | |
| 7 | + | |
| 8 | + /** | |
| 9 | + * 字典标签与字典键值对应关系: | |
| 10 | + * 次 → 0 | |
| 11 | + * 次/日 → 1 | |
| 12 | + * 次/周 → 2 | |
| 13 | + * 次/月 → 3 | |
| 14 | + * 次/季 → 4 | |
| 15 | + * 次/半年 → 5 | |
| 16 | + * 次/年 → 6 | |
| 17 | + */ | |
| 18 | + TIME(0, "次"), | |
| 19 | + DAY(1, "次/日"), | |
| 20 | + WEEK(2, "次/周"), | |
| 21 | + MONTH(3, "次/月"), | |
| 22 | + QUARTER(4, "次/季"), | |
| 23 | + SEMIANNUAL(5, "次/半年"), | |
| 24 | + YEAR(6, "次/年"); | |
| 25 | + | |
| 26 | + private final Integer key; | |
| 27 | + private final String value; | |
| 28 | + | |
| 29 | + // 用于根据key快速查找枚举 | |
| 30 | + private static final Map<Integer, MaintenanceCycleEnum> KEY_MAP = new HashMap<>(); | |
| 31 | + | |
| 32 | + static { | |
| 33 | + // 初始化key映射 | |
| 34 | + for (MaintenanceCycleEnum cycleEnum : values()) { | |
| 35 | + KEY_MAP.put(cycleEnum.key, cycleEnum); | |
| 36 | + } | |
| 37 | + } | |
| 38 | + | |
| 39 | + /** | |
| 40 | + * 构造函数 | |
| 41 | + * @param key 字典键值 | |
| 42 | + * @param value 字典标签 | |
| 43 | + */ | |
| 44 | + MaintenanceCycleEnum(Integer key, String value) { | |
| 45 | + this.key = key; | |
| 46 | + this.value = value; | |
| 47 | + } | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * 根据key获取对应的枚举 | |
| 51 | + * @param key 字典键值 | |
| 52 | + * @return 对应的枚举,如果不存在返回null | |
| 53 | + */ | |
| 54 | + public static MaintenanceCycleEnum getByKey(Integer key) { | |
| 55 | + return KEY_MAP.get(key); | |
| 56 | + } | |
| 57 | + | |
| 58 | + /** | |
| 59 | + * 根据key获取对应的字典标签 | |
| 60 | + * @param key 字典键值 | |
| 61 | + * @return 对应的字典标签,如果不存在返回null | |
| 62 | + */ | |
| 63 | + public static String getValueByKey(Integer key) { | |
| 64 | + MaintenanceCycleEnum cycleEnum = getByKey(key); | |
| 65 | + return cycleEnum != null ? cycleEnum.value : null; | |
| 66 | + } | |
| 67 | + | |
| 68 | + public Integer getKey() { | |
| 69 | + return key; | |
| 70 | + } | |
| 71 | + | |
| 72 | + public String getValue() { | |
| 73 | + return value; | |
| 74 | + } | |
| 75 | +} | |
| 0 | 76 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/plan/InspectionPlanExpiredJob.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.job.plan; | |
| 2 | + | |
| 3 | +import com.zteits.urbanops.framework.quartz.core.handler.JobHandler; | |
| 4 | +import com.zteits.urbanops.framework.tenant.core.aop.TenantIgnore; | |
| 5 | +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanDetailService; | |
| 6 | +import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanService; | |
| 7 | +import com.zteits.urbanops.module.garden.service.maintainplan.MaintainPlanDetailService; | |
| 8 | +import jakarta.annotation.Resource; | |
| 9 | +import lombok.extern.slf4j.Slf4j; | |
| 10 | +import org.springframework.stereotype.Component; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * 巡查计划过去 修改状态 | |
| 14 | + */ | |
| 15 | +@Component | |
| 16 | +@Slf4j | |
| 17 | +public class InspectionPlanExpiredJob implements JobHandler { | |
| 18 | + | |
| 19 | + @Resource | |
| 20 | + private InspectionPlanDetailService inspectionPlanDetailService; | |
| 21 | + | |
| 22 | + @Resource | |
| 23 | + private InspectionPlanService inspectionPlanService ; | |
| 24 | + | |
| 25 | + /** | |
| 26 | + * 清理超过(14)天的日志 | |
| 27 | + */ | |
| 28 | + private static final Integer JOB_CLEAN_RETAIN_DAY = 14; | |
| 29 | + | |
| 30 | + /** | |
| 31 | + * 每次删除间隔的条数,如果值太高可能会造成数据库的压力过大 | |
| 32 | + */ | |
| 33 | + private static final Integer DELETE_LIMIT = 100; | |
| 34 | + | |
| 35 | + @Override | |
| 36 | + @TenantIgnore | |
| 37 | + public String execute(String param) { | |
| 38 | + // 更新过期的计划明细状态为过期(3) | |
| 39 | + inspectionPlanDetailService.updateExpiredInspectionPlanDetails(); // Fixed method name | |
| 40 | + // 更新过期的计划状态为过期(3) | |
| 41 | + inspectionPlanService.updateExpiredInspectionPlans(); // Fixed method name | |
| 42 | + return "Successfully updated expired maintain plans and plan details"; | |
| 43 | + } | |
| 44 | + | |
| 45 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/plan/MaintainPlanExpiredJob.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.garden.job.plan; | |
| 2 | + | |
| 3 | +import com.zteits.urbanops.framework.quartz.core.handler.JobHandler; | |
| 4 | +import com.zteits.urbanops.framework.tenant.core.aop.TenantIgnore; | |
| 5 | +import com.zteits.urbanops.module.garden.service.maintainplan.MaintainPlanDetailService; | |
| 6 | +import com.zteits.urbanops.module.infra.service.logger.ApiAccessLogService; | |
| 7 | +import jakarta.annotation.Resource; | |
| 8 | +import lombok.extern.slf4j.Slf4j; | |
| 9 | +import org.springframework.stereotype.Component; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * 养护计划过期 修改状态 | |
| 13 | + */ | |
| 14 | +@Component | |
| 15 | +@Slf4j | |
| 16 | +public class MaintainPlanExpiredJob implements JobHandler { | |
| 17 | + | |
| 18 | + @Resource | |
| 19 | + private MaintainPlanDetailService maintainPlanDetailService; | |
| 20 | + | |
| 21 | + @Override | |
| 22 | + @TenantIgnore | |
| 23 | + public String execute(String param) { | |
| 24 | + // 更新过期的计划明细状态为过期(3) | |
| 25 | + maintainPlanDetailService.updateExpiredMaintainPlanDetails(); | |
| 26 | + // 更新过期的计划状态为过期(3) | |
| 27 | + maintainPlanDetailService.updateExpiredMaintainPlans(); | |
| 28 | + return "Successfully updated expired maintain plans and plan details"; | |
| 29 | + } | |
| 30 | + | |
| 31 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailService.java
| ... | ... | @@ -68,4 +68,7 @@ public interface InspectionPlanDetailService { |
| 68 | 68 | * @return 巡检计划分页 |
| 69 | 69 | */ |
| 70 | 70 | List<AppInspectionPlanDetailRespVO> getInspectionPlanDetailForApp(AppInspectionPlanDetailReqVO pageReqVO); |
| 71 | -} | |
| 72 | 71 | \ No newline at end of file |
| 72 | + | |
| 73 | + void updateExpiredInspectionPlanDetails(); | |
| 74 | + | |
| 75 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanDetailServiceImpl.java
| 1 | 1 | package com.zteits.urbanops.module.garden.service.inspectionplan; |
| 2 | 2 | |
| 3 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 3 | 4 | import com.zteits.urbanops.framework.common.pojo.PageResult; |
| 4 | 5 | import com.zteits.urbanops.framework.common.util.object.BeanUtils; |
| 5 | 6 | import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; |
| ... | ... | @@ -8,8 +9,11 @@ import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.Insp |
| 8 | 9 | import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanDetailReqVO; |
| 9 | 10 | import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanDetailRespVO; |
| 10 | 11 | import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; |
| 12 | +import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDO; | |
| 13 | +import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; | |
| 11 | 14 | import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper; |
| 12 | 15 | import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper; |
| 16 | +import com.zteits.urbanops.module.garden.enums.FinishStateEnum; | |
| 13 | 17 | import com.zteits.urbanops.module.system.api.permission.RoleApi; |
| 14 | 18 | import jakarta.annotation.Resource; |
| 15 | 19 | import org.apache.commons.lang3.StringUtils; |
| ... | ... | @@ -102,4 +106,17 @@ public class InspectionPlanDetailServiceImpl implements InspectionPlanDetailServ |
| 102 | 106 | return inspectionPlanDetailMapper.getInspectionPlanDetailForApp(pageReqVO); |
| 103 | 107 | } |
| 104 | 108 | |
| 105 | -} | |
| 106 | 109 | \ No newline at end of file |
| 110 | + @Override | |
| 111 | + public void updateExpiredInspectionPlanDetails() { | |
| 112 | + // 更新过期的计划明细状态为过期(3) | |
| 113 | + LocalDateTime now = LocalDateTime.now(); | |
| 114 | + LambdaUpdateWrapper<InspectionPlanDetailDO> updateWrapper = new LambdaUpdateWrapper<>(); | |
| 115 | + updateWrapper.lt(InspectionPlanDetailDO::getEndTime, now) | |
| 116 | + .ne(InspectionPlanDetailDO::getFinishState, FinishStateEnum.FINISHED.getStatus()) // 排除已完成的 | |
| 117 | + .set(InspectionPlanDetailDO::getFinishState, FinishStateEnum.EXPIRED.getStatus()); // 设置为过期状态 | |
| 118 | + inspectionPlanDetailMapper.update(null, updateWrapper); | |
| 119 | + } | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java
| ... | ... | @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; |
| 3 | 3 | import cn.hutool.core.thread.ThreadUtil; |
| 4 | 4 | import cn.hutool.core.util.RandomUtil; |
| 5 | 5 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| 6 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 6 | 7 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 7 | 8 | import com.zteits.urbanops.framework.common.pojo.CommonResult; |
| 8 | 9 | import com.zteits.urbanops.framework.common.pojo.PageResult; |
| ... | ... | @@ -23,11 +24,13 @@ import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlan |
| 23 | 24 | import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper; |
| 24 | 25 | import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper; |
| 25 | 26 | import com.zteits.urbanops.module.garden.enums.FinishStateEnum; |
| 27 | +import com.zteits.urbanops.module.garden.enums.MaintenanceCycleEnum; | |
| 26 | 28 | import com.zteits.urbanops.module.garden.enums.PlanConstants; |
| 27 | 29 | import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult; |
| 28 | 30 | import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil; |
| 29 | 31 | import com.zteits.urbanops.module.system.api.dept.DeptApi; |
| 30 | 32 | import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; |
| 33 | +import com.zteits.urbanops.module.system.api.dict.DictDataApi; | |
| 31 | 34 | import com.zteits.urbanops.module.system.api.permission.RoleApi; |
| 32 | 35 | import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO; |
| 33 | 36 | import jakarta.annotation.Resource; |
| ... | ... | @@ -47,6 +50,7 @@ import java.util.stream.Collectors; |
| 47 | 50 | |
| 48 | 51 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 49 | 52 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; |
| 53 | +import static com.zteits.urbanops.module.garden.enums.PlanConstants.CYCLE_ID_TYPE; | |
| 50 | 54 | |
| 51 | 55 | /** |
| 52 | 56 | * 巡检计划汇总 Service 实现类 |
| ... | ... | @@ -72,13 +76,13 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { |
| 72 | 76 | |
| 73 | 77 | @Resource |
| 74 | 78 | private RoadMapper roadMapper; |
| 75 | - | |
| 76 | - | |
| 77 | 79 | @Resource |
| 78 | 80 | private DeptApi deptApi; |
| 79 | 81 | |
| 80 | 82 | @Resource |
| 81 | 83 | private RoleApi roleApi; |
| 84 | + @Resource | |
| 85 | + private DictDataApi dictDataApi; | |
| 82 | 86 | |
| 83 | 87 | @Transactional(rollbackFor = Exception.class) |
| 84 | 88 | @Override |
| ... | ... | @@ -99,7 +103,8 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { |
| 99 | 103 | //计算计划次数 |
| 100 | 104 | int planNum; |
| 101 | 105 | //临时计划 |
| 102 | - if (createReqVO.getPlanAttr().equals(2)) { | |
| 106 | + dictDataApi.validateDictDataList(CYCLE_ID_TYPE, Collections.singleton(createReqVO.getCycleId().toString().trim())); | |
| 107 | + if (createReqVO.getCycleId().equals(MaintenanceCycleEnum.TIME.getKey())) { | |
| 103 | 108 | calculate = new ArrayList<>(); |
| 104 | 109 | PeriodResult periodResult = new PeriodResult(createReqVO.getBeginTime(), createReqVO.getEndTime(), Integer.parseInt(createReqVO.getRateValue())); |
| 105 | 110 | calculate.add(periodResult); |
| ... | ... | @@ -234,6 +239,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { |
| 234 | 239 | QueryWrapper<InspectionPlanDO> sql = new QueryWrapper<>(); |
| 235 | 240 | sql.lambda().eq(InspectionPlanDO::getPlanTypeId, req.getPlanTypeId()) |
| 236 | 241 | .in(InspectionPlanDO::getRoadId, roadIds) |
| 242 | + .eq(InspectionPlanDO::getPlanAttr, 1) //标准计划 | |
| 237 | 243 | .le(InspectionPlanDO::getBeginTime, req.getEndTime()) // start_time <= endTime |
| 238 | 244 | .ge(InspectionPlanDO::getEndTime, req.getBeginTime()); // end_time >= startTime |
| 239 | 245 | |
| ... | ... | @@ -243,6 +249,7 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { |
| 243 | 249 | sql.lambda().eq(InspectionPlanDO::getPlanTypeId, req.getPlanTypeId()) |
| 244 | 250 | .in(InspectionPlanDO::getRoadId, roadIds) |
| 245 | 251 | .eq(InspectionPlanDO::getDeleted, 0) |
| 252 | + .eq(InspectionPlanDO::getPlanAttr, 2) //临时计划 | |
| 246 | 253 | .le(InspectionPlanDO::getBeginTime, req.getEndTime()) // start_time <= endTime |
| 247 | 254 | .ge(InspectionPlanDO::getEndTime, req.getBeginTime()); // end_time >= startTime |
| 248 | 255 | |
| ... | ... | @@ -399,4 +406,15 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { |
| 399 | 406 | return roleList.stream().map(InspectionPlanRoleDO::getBatchNo).collect(Collectors.toSet()); |
| 400 | 407 | } |
| 401 | 408 | |
| 402 | -} | |
| 403 | 409 | \ No newline at end of file |
| 410 | + @Override | |
| 411 | + public void updateExpiredInspectionPlans() { | |
| 412 | + // 更新过期的计划状态为过期(3) | |
| 413 | + LocalDateTime now = LocalDateTime.now(); | |
| 414 | + LambdaUpdateWrapper<InspectionPlanDO> updateWrapper = new LambdaUpdateWrapper<>(); | |
| 415 | + updateWrapper.lt(InspectionPlanDO::getEndTime, now) | |
| 416 | + .ne(InspectionPlanDO::getFinishState, FinishStateEnum.FINISHED.getStatus()) // 排除已完成的 | |
| 417 | + .set(InspectionPlanDO::getFinishState, FinishStateEnum.EXPIRED.getStatus()); // 设置为过期状态 | |
| 418 | + inspectionPlanMapper.update(null, updateWrapper); | |
| 419 | + } | |
| 420 | + | |
| 421 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailService.java
| ... | ... | @@ -77,4 +77,14 @@ public interface MaintainPlanDetailService { |
| 77 | 77 | */ |
| 78 | 78 | List<AppMaintainNotFinishPlanDetailRespVO> getMaintainNotFinishPlanCommitDetail(AppMaintainNotFinishPlanDetailReqVO reqVO); |
| 79 | 79 | |
| 80 | + /** | |
| 81 | + * 更新过期的计划明细状态为过期(3) | |
| 82 | + */ | |
| 83 | + void updateExpiredMaintainPlanDetails(); | |
| 84 | + | |
| 85 | + /** | |
| 86 | + * 更新过期的计划状态为过期(3) | |
| 87 | + */ | |
| 88 | + void updateExpiredMaintainPlans(); | |
| 89 | + | |
| 80 | 90 | } |
| 81 | 91 | \ No newline at end of file | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailServiceImpl.java
| ... | ... | @@ -12,10 +12,14 @@ import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaint |
| 12 | 12 | import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainNotFinishPlanDetailRespVO; |
| 13 | 13 | import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailListByRoadPageReqVO; |
| 14 | 14 | import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailRespVO; |
| 15 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | |
| 15 | 16 | import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; |
| 17 | +import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDO; | |
| 16 | 18 | import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanRoleDO; |
| 17 | 19 | import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanDetailMapper; |
| 20 | +import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanMapper; | |
| 18 | 21 | import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanRoleMapper; |
| 22 | +import com.zteits.urbanops.module.garden.enums.FinishStateEnum; | |
| 19 | 23 | import com.zteits.urbanops.module.system.api.permission.RoleApi; |
| 20 | 24 | import jakarta.annotation.Resource; |
| 21 | 25 | import org.apache.commons.lang3.StringUtils; |
| ... | ... | @@ -44,6 +48,9 @@ public class MaintainPlanDetailServiceImpl implements MaintainPlanDetailService |
| 44 | 48 | private MaintainPlanDetailMapper maintainPlanDetailMapper; |
| 45 | 49 | |
| 46 | 50 | @Resource |
| 51 | + private MaintainPlanMapper maintainPlanMapper; | |
| 52 | + | |
| 53 | + @Resource | |
| 47 | 54 | private MaintainPlanRoleMapper maintainPlanRoleMapper; |
| 48 | 55 | |
| 49 | 56 | @Resource |
| ... | ... | @@ -147,4 +154,26 @@ public class MaintainPlanDetailServiceImpl implements MaintainPlanDetailService |
| 147 | 154 | return roleList.stream().map(MaintainPlanRoleDO::getBatchNo).collect(Collectors.toSet()); |
| 148 | 155 | } |
| 149 | 156 | |
| 157 | + @Override | |
| 158 | + public void updateExpiredMaintainPlanDetails() { | |
| 159 | + // 更新过期的计划明细状态为过期(3) | |
| 160 | + LocalDateTime now = LocalDateTime.now(); | |
| 161 | + LambdaUpdateWrapper<MaintainPlanDetailDO> updateWrapper = new LambdaUpdateWrapper<>(); | |
| 162 | + updateWrapper.lt(MaintainPlanDetailDO::getEndTime, now) | |
| 163 | + .ne(MaintainPlanDetailDO::getFinishState, FinishStateEnum.FINISHED.getStatus()) // 排除已完成的 | |
| 164 | + .set(MaintainPlanDetailDO::getFinishState, FinishStateEnum.EXPIRED.getStatus()); // 设置为过期状态 | |
| 165 | + maintainPlanDetailMapper.update(null, updateWrapper); | |
| 166 | + } | |
| 167 | + | |
| 168 | + @Override | |
| 169 | + public void updateExpiredMaintainPlans() { | |
| 170 | + // 更新过期的计划状态为过期(3) | |
| 171 | + LocalDateTime now = LocalDateTime.now(); | |
| 172 | + LambdaUpdateWrapper<MaintainPlanDO> updateWrapper = new LambdaUpdateWrapper<>(); | |
| 173 | + updateWrapper.lt(MaintainPlanDO::getEndTime, now) | |
| 174 | + .ne(MaintainPlanDO::getFinishState, FinishStateEnum.FINISHED.getStatus()) // 排除已完成的 | |
| 175 | + .set(MaintainPlanDO::getFinishState, FinishStateEnum.EXPIRED.getStatus()); // 设置为过期状态 | |
| 176 | + maintainPlanMapper.update(null, updateWrapper); | |
| 177 | + } | |
| 178 | + | |
| 150 | 179 | } | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java
| ... | ... | @@ -25,11 +25,13 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanInte |
| 25 | 25 | import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanRoleMapper; |
| 26 | 26 | import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper; |
| 27 | 27 | import com.zteits.urbanops.module.garden.enums.FinishStateEnum; |
| 28 | +import com.zteits.urbanops.module.garden.enums.MaintenanceCycleEnum; | |
| 28 | 29 | import com.zteits.urbanops.module.garden.enums.PlanConstants; |
| 29 | 30 | import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult; |
| 30 | 31 | import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil; |
| 31 | 32 | import com.zteits.urbanops.module.system.api.dept.DeptApi; |
| 32 | 33 | import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; |
| 34 | +import com.zteits.urbanops.module.system.api.dict.DictDataApi; | |
| 33 | 35 | import com.zteits.urbanops.module.system.api.permission.RoleApi; |
| 34 | 36 | import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO; |
| 35 | 37 | import jodd.util.StringUtil; |
| ... | ... | @@ -56,6 +58,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanMapp |
| 56 | 58 | |
| 57 | 59 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 58 | 60 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; |
| 61 | +import static com.zteits.urbanops.module.garden.enums.PlanConstants.CYCLE_ID_TYPE; | |
| 62 | + | |
| 59 | 63 | |
| 60 | 64 | /** |
| 61 | 65 | * 养护计划汇总 Service 实现类 |
| ... | ... | @@ -88,6 +92,13 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { |
| 88 | 92 | @Resource |
| 89 | 93 | private RoleApi roleApi; |
| 90 | 94 | |
| 95 | + @Resource | |
| 96 | + private DictDataApi dictDataApi; | |
| 97 | + | |
| 98 | + /** | |
| 99 | + * 字典类型:养护周期类型 | |
| 100 | + */ | |
| 101 | + | |
| 91 | 102 | @Override |
| 92 | 103 | public CommonResult<Integer> createMaintainPlan(MaintainPlanSaveReqVO createReqVO) { |
| 93 | 104 | //存在性校验 |
| ... | ... | @@ -105,8 +116,9 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { |
| 105 | 116 | List<PeriodResult> calculate; |
| 106 | 117 | //计算计划次数 |
| 107 | 118 | int planNum; |
| 108 | - //临时计划比较特殊 | |
| 109 | - if (createReqVO.getPlanAttr().equals(2)) { | |
| 119 | + //按次计划 | |
| 120 | + dictDataApi.validateDictDataList(CYCLE_ID_TYPE, Collections.singleton(createReqVO.getCycleId().toString().trim())); | |
| 121 | + if (createReqVO.getCycleId().equals(MaintenanceCycleEnum.TIME.getKey())) { | |
| 110 | 122 | calculate = new ArrayList<>(); |
| 111 | 123 | PeriodResult periodResult = new PeriodResult(createReqVO.getBeginTime(), createReqVO.getEndTime(), Integer.parseInt(createReqVO.getRateValue())); |
| 112 | 124 | calculate.add(periodResult); |
| ... | ... | @@ -245,6 +257,7 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { |
| 245 | 257 | QueryWrapper<MaintainPlanDO> sql = new QueryWrapper<>(); |
| 246 | 258 | sql.lambda().eq(MaintainPlanDO::getPlanTypeId, req.getPlanTypeId()) |
| 247 | 259 | .in(MaintainPlanDO::getRoadId, roadIds) |
| 260 | + .eq(MaintainPlanDO::getPlanAttr, 1) //标准计划 | |
| 248 | 261 | .le(MaintainPlanDO::getBeginTime, req.getEndTime()) // start_time <= endTime |
| 249 | 262 | .ge(MaintainPlanDO::getEndTime, req.getBeginTime()); // end_time >= startTime |
| 250 | 263 | |
| ... | ... | @@ -254,6 +267,7 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { |
| 254 | 267 | sql.lambda().eq(MaintainPlanDO::getPlanTypeId, req.getPlanTypeId()) |
| 255 | 268 | .in(MaintainPlanDO::getRoadId, roadIds) |
| 256 | 269 | .eq(MaintainPlanDO::getDeleted, 0) |
| 270 | + .eq(MaintainPlanDO::getPlanAttr, 2) //临时计划 | |
| 257 | 271 | .le(MaintainPlanDO::getBeginTime, req.getEndTime()) // start_time <= endTime |
| 258 | 272 | .ge(MaintainPlanDO::getEndTime, req.getBeginTime()); // end_time >= startTime |
| 259 | 273 | |
| ... | ... | @@ -422,4 +436,4 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { |
| 422 | 436 | }); |
| 423 | 437 | } |
| 424 | 438 | |
| 425 | -} | |
| 426 | 439 | \ No newline at end of file |
| 440 | +} | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/util/timeinterval/TimeIntervalFrequencyUtil.java
| ... | ... | @@ -6,6 +6,7 @@ import java.util.ArrayList; |
| 6 | 6 | import java.util.Collections; |
| 7 | 7 | import java.util.List; |
| 8 | 8 | |
| 9 | +import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; | |
| 9 | 10 | import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 10 | 11 | import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.INSPECTION_CYCLE_ID_ERROR; |
| 11 | 12 | |
| ... | ... | @@ -17,29 +18,16 @@ public class TimeIntervalFrequencyUtil { |
| 17 | 18 | |
| 18 | 19 | private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| 19 | 20 | |
| 20 | - public enum IntervalUnit { | |
| 21 | - DAY, WEEK, MONTH, YEAR; | |
| 22 | - } | |
| 21 | + | |
| 23 | 22 | |
| 24 | 23 | /** |
| 25 | - * 转换枚举 | |
| 26 | - * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次 | |
| 27 | - * @return | |
| 24 | + * 根据cycleId获取对应的字典值 | |
| 25 | + * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次;5:按次;6:季度;7:半年 | |
| 26 | + * @return 对应的字典值 | |
| 28 | 27 | */ |
| 29 | - public static IntervalUnit getIntervalUnit(Integer cycleId) { | |
| 30 | - switch (cycleId) { | |
| 31 | - case 1: | |
| 32 | - return IntervalUnit.DAY; | |
| 33 | - case 2: | |
| 34 | - return IntervalUnit.WEEK; | |
| 35 | - case 3: | |
| 36 | - return IntervalUnit.MONTH; | |
| 37 | - case 4: | |
| 38 | - return IntervalUnit.YEAR; | |
| 39 | - default: | |
| 40 | - throw exception(INSPECTION_CYCLE_ID_ERROR); | |
| 41 | - } | |
| 42 | - } | |
| 28 | + public static String getCycleTypeValue(Integer cycleId) { | |
| 29 | + // 使用DictFrameworkUtils从字典表获取对应的周期类型值 | |
| 30 | + return String.valueOf(cycleId); } | |
| 43 | 31 | |
| 44 | 32 | /** |
| 45 | 33 | * 计算时间段划分结果(基于固定天数换算) |
| ... | ... | @@ -47,7 +35,7 @@ public class TimeIntervalFrequencyUtil { |
| 47 | 35 | * @param startStr 开始日期 (yyyy-MM-dd) |
| 48 | 36 | * @param endStr 结束日期 (yyyy-MM-dd) |
| 49 | 37 | * @param freq 频次值,格式 "x/y" |
| 50 | - * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次 | |
| 38 | + * @param cycleId 1:日/次;2:周/次;3:月/次;4:年/次;5:按次;6:季度;7:半年 | |
| 51 | 39 | * @return 划分结果列表 |
| 52 | 40 | */ |
| 53 | 41 | public static List<PeriodResult> calculate(String startStr, String endStr, String freq, Integer cycleId) { |
| ... | ... | @@ -65,8 +53,7 @@ public class TimeIntervalFrequencyUtil { |
| 65 | 53 | int x = Integer.parseInt(parts[0]); // 每周期次数 |
| 66 | 54 | int y = Integer.parseInt(parts[1]); // 周期数量 |
| 67 | 55 | |
| 68 | - IntervalUnit unit = getIntervalUnit(cycleId); | |
| 69 | - long periodDays = convertToDays(y, unit); // 转为固定天数 | |
| 56 | + long periodDays = convertToDays(y, cycleId); // 转为固定天数 | |
| 70 | 57 | |
| 71 | 58 | List<PeriodResult> results = new ArrayList<>(); |
| 72 | 59 | LocalDate currentStart = start; |
| ... | ... | @@ -93,19 +80,32 @@ public class TimeIntervalFrequencyUtil { |
| 93 | 80 | |
| 94 | 81 | /** |
| 95 | 82 | * 将 y 个单位转换为固定天数 |
| 83 | + * TIME(0, "次"), | |
| 84 | + * DAY(1, "次/日"), | |
| 85 | + * WEEK(2, "次/周"), | |
| 86 | + * MONTH(3, "次/月"), | |
| 87 | + * QUARTER(4, "次/季"), | |
| 88 | + * SEMIANNUAL(5, "次/半年"), | |
| 89 | + * YEAR(6, "次/年"); | |
| 96 | 90 | */ |
| 97 | - private static long convertToDays(int y, IntervalUnit unit) { | |
| 98 | - switch (unit) { | |
| 99 | - case DAY: | |
| 91 | + private static long convertToDays(int y, Integer cycleId) { | |
| 92 | + switch (cycleId) { | |
| 93 | + case 1: // DAY | |
| 100 | 94 | return y; |
| 101 | - case WEEK: | |
| 95 | + case 2: // WEEK | |
| 102 | 96 | return (long) y * 7; |
| 103 | - case MONTH: | |
| 97 | + case 3: // MONTH | |
| 104 | 98 | return (long) y * 30; |
| 105 | - case YEAR: | |
| 99 | + case 6: // YEAR | |
| 106 | 100 | return (long) y * 365; |
| 101 | + case 0: // TIME | |
| 102 | + return 1; // 按次:将整个时间段视为1个周期 | |
| 103 | + case 4: // QUARTER | |
| 104 | + return (long) y * 90; // 1季度=3个月=90天 | |
| 105 | + case 5: // SEMIANNUAL | |
| 106 | + return (long) y * 180; // 半年=6个月=180天 | |
| 107 | 107 | default: |
| 108 | - throw new UnsupportedOperationException("不支持的单位: " + unit); | |
| 108 | + throw new IllegalArgumentException("无效的周期ID: " + cycleId); | |
| 109 | 109 | } |
| 110 | 110 | } |
| 111 | 111 | |
| ... | ... | @@ -157,5 +157,18 @@ public class TimeIntervalFrequencyUtil { |
| 157 | 157 | System.out.println("\n=== 示例5:每1年4次(即:4/1),按年(测试)=== 2023-09-15 2025-01-31"); |
| 158 | 158 | List<PeriodResult> r5 = calculate("2023-09-15", "2025-01-31", "4/1", 4); |
| 159 | 159 | r5.forEach(System.out::println); |
| 160 | + | |
| 161 | + // 新增示例:按次、季度、半年 | |
| 162 | + System.out.println("\n=== 示例6:按次单位,整个时间段算1个周期 === 2025-01-01 2025-12-31"); | |
| 163 | + List<PeriodResult> r6 = calculate("2025-01-01", "2025-12-31", "2/1", 5); | |
| 164 | + r6.forEach(System.out::println); | |
| 165 | + | |
| 166 | + System.out.println("\n=== 示例7:每1季度2次(即:2/1),按季度(90天)=== 2025-01-01 2025-12-31"); | |
| 167 | + List<PeriodResult> r7 = calculate("2025-01-01", "2025-12-31", "2/1", 6); | |
| 168 | + r7.forEach(System.out::println); | |
| 169 | + | |
| 170 | + System.out.println("\n=== 示例8:每1半年3次(即:3/1),按半年(180天)=== 2025-01-01 2025-12-31"); | |
| 171 | + List<PeriodResult> r8 = calculate("2025-01-01", "2025-12-31", "3/1", 7); | |
| 172 | + r8.forEach(System.out::println); | |
| 160 | 173 | } |
| 161 | 174 | } | ... | ... |
urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanDetailMapper.xml
| ... | ... | @@ -50,6 +50,7 @@ |
| 50 | 50 | </if> |
| 51 | 51 | <!--状态 1:未完成;2:已完成;3:已失效--> |
| 52 | 52 | <if test="req.finishState == 3"> |
| 53 | + and a.finish_state = #{req.finishState} | |
| 53 | 54 | <![CDATA[and c.end_time < #{req.localDateTime}]]> |
| 54 | 55 | </if> |
| 55 | 56 | <if test="req.finishState == 2"> |
| ... | ... | @@ -86,4 +87,4 @@ |
| 86 | 87 | and c.finish_state = #{req.finishState} |
| 87 | 88 | <![CDATA[and c.end_time >= #{req.localDateTime}]]> |
| 88 | 89 | </select> |
| 89 | -</mapper> | |
| 90 | 90 | \ No newline at end of file |
| 91 | +</mapper> | ... | ... |
urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanMapper.xml
| ... | ... | @@ -44,6 +44,7 @@ |
| 44 | 44 | </if> |
| 45 | 45 | <!--状态 1:未完成;2:已完成;3:已失效--> |
| 46 | 46 | <if test="req.finishState == 3"> |
| 47 | + and a.finish_state = #{req.finishState} | |
| 47 | 48 | <![CDATA[and a.end_time < #{req.localDate}]]> |
| 48 | 49 | </if> |
| 49 | 50 | <if test="req.finishState == 2"> |
| ... | ... | @@ -93,6 +94,7 @@ |
| 93 | 94 | </if> |
| 94 | 95 | <!--状态 1:未完成;2:已完成;3:已失效--> |
| 95 | 96 | <if test="req.finishState == 3"> |
| 97 | + and c.finish_state = #{req.finishState} | |
| 96 | 98 | <![CDATA[and c.end_time < #{req.localDateTime}]]> |
| 97 | 99 | </if> |
| 98 | 100 | <if test="req.finishState == 2"> |
| ... | ... | @@ -104,4 +106,4 @@ |
| 104 | 106 | </if> |
| 105 | 107 | </select> |
| 106 | 108 | |
| 107 | -</mapper> | |
| 108 | 109 | \ No newline at end of file |
| 110 | +</mapper> | ... | ... |
urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java
| ... | ... | @@ -465,7 +465,7 @@ public class BpmGardenServiceImpl implements BpmGardenService{ |
| 465 | 465 | String content = pageVO.getSearchContent(); |
| 466 | 466 | if(ObjectUtils.isNotAllEmpty(type)){ |
| 467 | 467 | if("1".equals(type)){ |
| 468 | - if(ObjectUtils.isNotAllEmpty(content)){mainInfoPageReqVo.setLonLatAddress(content);} | |
| 468 | + if(ObjectUtils.isNotAllEmpty(content)){mainInfoPageReqVo.setRoadName(content);} | |
| 469 | 469 | } else |
| 470 | 470 | if("2".equals(type)){ |
| 471 | 471 | if(ObjectUtils.isNotAllEmpty(content)){mainInfoPageReqVo.setOrderName(content);} | ... | ... |