diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java index f302991..9989986 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/inspectionplan/InspectionPlanController.java @@ -1,5 +1,6 @@ package com.zteits.urbanops.module.garden.controller.admin.inspectionplan; +import jakarta.validation.constraints.NotBlank; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -70,6 +71,17 @@ public class InspectionPlanController { return success(true); } + @DeleteMapping("/delete-batch_no") + @Parameter(name = "batchNo", description = "批次号", required = true) + @Operation(summary = "根据batch_no删除巡检计划汇总") + @PreAuthorize("@ss.hasPermission('garden:inspection-plan:delete')") + public CommonResult deleteInspectionPlanByBatchNo(@RequestParam("batch_no") @NotBlank String batchNo) { + inspectionPlanService.deleteInspectionPlanByBatchNo(batchNo); + return success(true); + } + + + @GetMapping("/get") @Operation(summary = "获得巡检计划汇总") @Parameter(name = "id", description = "编号", required = true, example = "1024") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java index df3f3d1..20f10e1 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java @@ -57,4 +57,5 @@ public interface ErrorCodeConstants { ErrorCode INSPECTION_PLAN_NOT_EXISTS = new ErrorCode(1-200-100-001, "巡检计划汇总不存在"); ErrorCode INSPECTION_CYCLE_ID_ERROR = new ErrorCode(1-200-100-002, "周期id错误"); ErrorCode INSPECTION_CYCLE_ERROR = new ErrorCode(1-200-100-003, "获取两个时间之间间隔天数错误"); + ErrorCode INSPECTION_PLAN_EXISTS = new ErrorCode(1-200-100-004, "道路对应类型已存在记录"); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java index f668145..d55b45c 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanService.java @@ -64,6 +64,6 @@ public interface InspectionPlanService { * 根据批次号删除 * @param batchNo 批次号 */ - void deleteInspectionPlanBy(String batchNo); + void deleteInspectionPlanByBatchNo(String batchNo); } \ 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 8baabb5..c6dcb32 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 @@ -2,6 +2,7 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.collection.CollectionUtils; import com.zteits.urbanops.framework.dict.core.DictFrameworkUtils; @@ -24,6 +25,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO; @@ -57,6 +59,8 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @Transactional(rollbackFor = Exception.class) @Override public CommonResult createInspectionPlan(InspectionPlanSaveReqVO createReqVO) { + //存在性校验 + validateInspectionPlanExists(createReqVO); LocalDateTime now = LocalDateTime.now(); String userName = SecurityFrameworkUtils.getLoginUserNickname() + "(" + SecurityFrameworkUtils.getLoginUserId() + ")"; Integer rateValue; @@ -165,12 +169,26 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { } + private void validateInspectionPlanExists(InspectionPlanSaveReqVO req) { + Set roadIds = req.getRoadListReqVO().stream().map(InspectionPlanRoadReqVO::getRoadId).collect(Collectors.toSet()); + QueryWrapper sql = new QueryWrapper(); + sql.lambda().eq(InspectionPlanDO::getPlanTypeId, req.getPlanTypeId()) + .in(InspectionPlanDO::getRoadId, roadIds) + .between(InspectionPlanDO::getBeginTime, req.getBeginTime(), req.getEndTime()); + + Long count = inspectionPlanMapper.selectCount(sql); + if (count > 0) { + throw exception(INSPECTION_PLAN_EXISTS); + } + } + private void validateInspectionPlanExists(Long id) { if (inspectionPlanMapper.selectById(id) == null) { throw exception(INSPECTION_PLAN_NOT_EXISTS); } } + @Override public InspectionPlanDO getInspectionPlan(Long id) { return inspectionPlanMapper.selectById(id); @@ -182,8 +200,10 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { } @Override - public void deleteInspectionPlanBy(String batchNo) { - //TODO + public void deleteInspectionPlanByBatchNo(String batchNo) { + inspectionPlanMapper.delete(InspectionPlanDO::getBatchNo, batchNo); + inspectionPlanDetailMapper.delete(InspectionPlanDetailDO::getBatchNo, batchNo); + inspectionPlanRoleMapper.delete(InspectionPlanRoleDO::getBatchNo, batchNo); } } \ No newline at end of file