diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitRespVO.java index 312a2b5..3ccc4ac 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitRespVO.java @@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import java.util.List; +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 巡检计划提交明细 Response VO") @@ -27,6 +28,13 @@ public class AppInspectionPlanCommitRespVO { @Schema(description = "排序号:第n次计划", requiredMode = Schema.RequiredMode.REQUIRED) private Integer sortNum; + @Schema(description = "次数 如:1/3等", requiredMode = Schema.RequiredMode.REQUIRED, example = "1/3") + private String rate; + + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "6415") + @ExcelProperty("周期ID: 1:日/次;2:周/次;3:月/次;4:年/次") + private Integer cycleId; + @Schema(description = "业务线: yl-园林;wy-物业:sz-市政") private String busiLine; @@ -82,6 +90,14 @@ public class AppInspectionPlanCommitRespVO { @Schema(description = "备注", example = "你猜") private String remark; + @Schema(description = "执行开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDateTime beginTime; + + @Schema(description = "执行时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDateTime endTime; + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanController.java index 5202ff9..0e1e06e 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanController.java @@ -48,15 +48,6 @@ public class AppMaintainPlanController { @Resource private MaintainPlanService maintainPlanService; - @GetMapping("/get") - @Operation(summary = "获得养护计划汇总") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('garden:maintain-plan:query')") - public CommonResult getMaintainPlan(@RequestParam("id") Long id) { - MaintainPlanDO maintainPlan = maintainPlanService.getMaintainPlan(id); - return success(BeanUtils.toBean(maintainPlan, MaintainPlanRespVO.class)); - } - /** * APP获得养护计划汇总分页-按道路 */ diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanDetailController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanDetailController.java new file mode 100644 index 0000000..0f6880c --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/AppMaintainPlanDetailController.java @@ -0,0 +1,57 @@ +package com.zteits.urbanops.module.garden.controller.app.maintainplan; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanDetailPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanDetailRespVO; +import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanDetailSaveReqVO; +import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailRespVO; +import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; +import com.zteits.urbanops.module.garden.service.maintainplan.MaintainPlanDetailService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +@Tag(name = "APP管理 - 养护计划明细") +@RestController +@RequestMapping("/app/garden/maintain-plan-detail") +@Validated +public class AppMaintainPlanDetailController { + + @Resource + private MaintainPlanDetailService maintainPlanDetailService; + + + @GetMapping("/get/details-road") + @Operation(summary = "app-获得养护计划明细") + @Parameter(name = "road_id", description = "道路ID", required = true, example = "1024") + @Parameter(name = "finish_state", description = "完成状态 1:未完成;2:已完成;3:已失效", required = true, example = "1024") + // @PreAuthorize("@ss.hasPermission('app:garden:maintain-plan-detail:road:query')") + public CommonResult> appMaintainPlanDetailListByRoad(@RequestParam("road_id") @NotNull Long roadId, @RequestParam("finish_state") Integer finishState) { + List list = maintainPlanDetailService.appMaintainPlanDetailListByRoad(roadId, finishState); + return success(list); + } + + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanDetailRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanDetailRespVO.java new file mode 100644 index 0000000..661056a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanDetailRespVO.java @@ -0,0 +1,54 @@ +package com.zteits.urbanops.module.garden.controller.app.maintainplan.vo; + +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 养护计划 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AppMaintainPlanDetailRespVO { + + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) + private String batchNo; + + @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED) + private String planNo; + + @Schema(description = "计划名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String planName; + + @Schema(description = "排序号:第n次计划", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer sortNum; + + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", requiredMode = Schema.RequiredMode.REQUIRED, example = "24742") + private Integer planTypeId; + + @Schema(description = "次数 如:1/3等", requiredMode = Schema.RequiredMode.REQUIRED, example = "1/3") + private String rate; + + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "6415") + private Integer cycleId; + + @Schema(description = "计划次数") + private Integer planNum; + + @Schema(description = "完成百分比", requiredMode = Schema.RequiredMode.REQUIRED) + private Double finishPercent; + + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer finishState; + + @Schema(description = "执行开始时间") + private LocalDateTime beginTime; + + @Schema(description = "执行时间") + private LocalDateTime endTime; + + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanPagePlanTypeRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanPagePlanTypeRespVO.java index 7678740..700e739 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanPagePlanTypeRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/maintainplan/vo/AppMaintainPlanPagePlanTypeRespVO.java @@ -19,35 +19,36 @@ public class AppMaintainPlanPagePlanTypeRespVO { @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704") private String batchNo; - @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704") - private Long roadId; + @Schema(description = "计划编码", example = "王五") + private String planNo; - @Schema(description = "道路名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "32704") - private String roadName; + @Schema(description = "计划名称", example = "王五") + private String planName; - @Schema(description = "街道ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8439") - private String streetId; + @Schema(description = "养护类型:2001:浇水;2002:施肥;2003:有害生物防治;2004:修剪;2005:中耕除草;2006:打孔梳草;2007:绿地保洁;2008:园林废弃物收集运输 ;2009:补植;3001:绿地巡视;", requiredMode = Schema.RequiredMode.REQUIRED, example = "24742") + @NotNull(message = "养护类型不能为空") + private Integer planTypeId; - @Schema(description = "街道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") - private String streetName; + @Schema(description = "次数 如:1/3等", requiredMode = Schema.RequiredMode.REQUIRED, example = "1/3") + @ExcelProperty("次数 如:1/3等") + private String rate; - @Schema(description = "养护级别: 10:特级;11:一级:12:二级;13:三级", requiredMode = Schema.RequiredMode.REQUIRED, example = "8588") - private Integer levelId; + @Schema(description = "周期ID: 1:日/次;2:周/次;3:月/次;4:年/次", requiredMode = Schema.RequiredMode.REQUIRED, example = "6415") + @ExcelProperty("周期ID: 1:日/次;2:周/次;3:月/次;4:年/次") + private Integer cycleId; - @Schema(description = "完成状态 1:未完成;2:已完成;3:已失效") - @NotNull(message = "完成状态不能为空") - @Min(value = 1, message = "状态最小为1") - @Max(value = 3, message = "状态不能大于4") - private Integer finishState; - @Schema(description = "计划次数", requiredMode = Schema.RequiredMode.REQUIRED) + @Schema(description = "计划次数") @ExcelProperty("计划次数") private Integer planNum; - @Schema(description = "已完成次数", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("已完成次数") - private Integer planFinishNum; + @Schema(description = "完成百分比", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("完成百分比") + private Double finishPercent; + @Schema(description = "完成状态 1:未完成;2:进行中;3:已完成", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("完成状态 1:未完成;2:进行中;3:已完成") + private Integer finishState; @Schema(description = "执行开始时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java index 81f7d9a..5aebcfe 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java @@ -4,11 +4,19 @@ package com.zteits.urbanops.module.garden.dal.mysql.maintainplan; 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.framework.security.core.util.SecurityFrameworkUtils; +import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailRespVO; import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; +import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Mapper; import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*; import org.apache.ibatis.annotations.Param; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * 养护计划 Mapper * @@ -37,4 +45,17 @@ public interface MaintainPlanDetailMapper extends BaseMapperX appMaintainPlanDetailListByRoad(@Param("busiLineList") List busiLineList, @Param("roadId") Long roadId, @Param("companyId") Long companyId, + @Param("roleIds") List roleIds, @Param("localDate") LocalDate now, @Param("finishState") Integer finishState); + + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailService.java index 0095d11..c00defc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailService.java @@ -1,6 +1,8 @@ package com.zteits.urbanops.module.garden.service.maintainplan; import java.util.*; + +import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailRespVO; import jakarta.validation.*; import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; @@ -58,4 +60,11 @@ public interface MaintainPlanDetailService { */ PageResult getMaintainPlanDetailPage(MaintainPlanDetailPageReqVO pageReqVO); + /** + * 按照道路查询养护计划列表 + * @param roadId 道路ID + * @return + */ + List appMaintainPlanDetailListByRoad(Long roadId, Integer finishState); + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailServiceImpl.java index 0c3b458..be085f3 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanDetailServiceImpl.java @@ -1,9 +1,14 @@ package com.zteits.urbanops.module.garden.service.maintainplan; +import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; +import com.zteits.urbanops.module.garden.controller.app.maintainplan.vo.AppMaintainPlanDetailRespVO; +import com.zteits.urbanops.module.system.api.permission.RoleApi; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; +import java.time.LocalDate; import java.util.*; import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.maintainplan.MaintainPlanDetailDO; @@ -25,6 +30,9 @@ public class MaintainPlanDetailServiceImpl implements MaintainPlanDetailService @Resource private MaintainPlanDetailMapper maintainPlanDetailMapper; + @Resource + private RoleApi roleApi; + @Override public Long createMaintainPlanDetail(MaintainPlanDetailSaveReqVO createReqVO) { // 插入 @@ -75,4 +83,19 @@ public class MaintainPlanDetailServiceImpl implements MaintainPlanDetailService return maintainPlanDetailMapper.selectPage(pageReqVO); } + @Override + public List appMaintainPlanDetailListByRoad(Long roadId, Integer finishState) { + String busiLine = SecurityFrameworkUtils.getBusiLine(); + Long companyId = SecurityFrameworkUtils.getCompanyId(); + List busiLineList = new ArrayList<>(); + if (StringUtils.isNotEmpty(busiLine)) { + busiLineList = Arrays.asList(busiLine.split(",")); + } + + /*1.查询登录用户角色*/ + List roleIds = roleApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId()); + LocalDate now = LocalDate.now(); + return maintainPlanDetailMapper.appMaintainPlanDetailListByRoad(busiLineList, roadId, companyId, roleIds, now, finishState); + } + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanDetailMapper.xml b/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanDetailMapper.xml index 8fa0be2..b570056 100644 --- a/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanDetailMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanDetailMapper.xml @@ -12,4 +12,54 @@ delete from garden_maintain_plan_detail where batch_no =#{batchNo} + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanMapper.xml b/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanMapper.xml index dbf2621..e3d3c40 100644 --- a/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/maintainplan/MaintainPlanMapper.xml @@ -91,7 +91,7 @@ AND a.dept_id =b.dept_id AND a.deleted=0 AND a.company_id = #{req.companyId} - AND a.company_id = #{req.planTypeId} + AND a.plan_type_id = #{req.planTypeId} AND a.plan_type_id LIKE CONCAT('%',#{req.planName},'%')