diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfDangerousTaskController.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfDangerousTaskController.java new file mode 100644 index 00000000..653b61cf --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfDangerousTaskController.java @@ -0,0 +1,105 @@ +package com.kms.yxgh.df.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kms.yxgh.base.Response; +import com.kms.yxgh.df.dto.*; +import com.kms.yxgh.df.service.DfDangerousTaskService; +import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.enums.BusinessType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * 堤防病险工程核查任务 + * @author hry + * @date 2024/3/12 14:44 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/run/df/dangerousTask") +@Api(tags = "堤防病险工程核查任务") +public class DfDangerousTaskController { + + private final DfDangerousTaskService dangerousTaskService; + + /** + * 查询堤防病险工程核查任务列表 + * @param sp + * @return + */ + @ApiOperation("堤防病险工程核查任务列表") + @PostMapping("/page") + public Response> listByPage(@RequestBody SearchParam sp) { + return Response.ok(dangerousTaskService.getListByPage(sp)); + } + + /** + * 查询堤防病险工程核查任务详情 + * @param id + * @return + */ + @ApiOperation("堤防病险工程核查任务详情") + @GetMapping("/{id}") + public Response detail(@PathVariable String id) { + return Response.ok(dangerousTaskService.getDetailById(id)); + } + + + /** + * 新增堤防病险工程核查任务 + */ + @ApiOperation("堤防病险工程核查任务新增") + @Log(title = "堤防病险工程核查任务新增", businessType = BusinessType.INSERT) + @PostMapping() + public Response add(@RequestBody DfDangerousTaskDto dto) { + return Response.ok(dangerousTaskService.add(dto)); + } + + /** + * 修改堤防病险工程核查任务 + */ + @ApiOperation("堤防病险工程核查任务修改") + @Log(title = "堤防病险工程核查任务修改", businessType = BusinessType.UPDATE) + @PutMapping() + public Response modify(@RequestBody DfDangerousTaskDto dto) { + return Response.ok(dangerousTaskService.modify(dto)); + } + + /** + * 删除堤防病险工程核查任务 + * @param id + * @return + */ + @ApiOperation("堤防病险工程核查任务删除") + @Log(title = "堤防病险工程核查任务删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public Response deleteData(@PathVariable String id) { + return Response.ok(dangerousTaskService.deleteById(id)); + } + + + /** + * 保存或提交 堤防工程核查 + */ + @ApiOperation("堤防工程核查保存或提交") + @Log(title = "堤防工程核查保存或提交", businessType = BusinessType.INSERT) + @PostMapping("/saveOrSubmit") + public Response saveOrSubmit(@RequestBody DfDangerousParamDto dto) { + return Response.ok(dangerousTaskService.saveOrSubmit(dto)); + } + + /** + * 堤防工程核查详情 + * @param id 任务id + * @return + */ + @ApiOperation("堤防工程核查详情") + @GetMapping(value = "/detail/{id}") + public Response getDetailByTaskId(@PathVariable String id) { + return Response.ok(dangerousTaskService.getDetailByTaskId(id)); + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTask.java b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTask.java new file mode 100644 index 00000000..2249f98b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTask.java @@ -0,0 +1,69 @@ +package com.kms.yxgh.df.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 堤防病险工程核查任务表 bs_sgc_df_bxgcrw + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_df_bxgcrw") +@Data +@ApiModel("堤防病险工程核查任务") +public class DfDangerousTask extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 堤防代码 + */ + @ApiModelProperty("堤防代码") + private String dikeCode; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("开始时间") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("结束时间") + private Date doneTime; + + /** + * 检查任务背景 + */ + @ApiModelProperty(value = "检查任务背景") + private String content; + + /** + * 病险工程核查分组ID + */ + @ApiModelProperty(value = "病险工程核查分组ID") + private String groupId; + + /** + * 状态(巡查、报告) + */ + @ApiModelProperty(value = "状态") + private String state; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTaskItemRel.java b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTaskItemRel.java new file mode 100644 index 00000000..a54aab8d --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTaskItemRel.java @@ -0,0 +1,49 @@ +package com.kms.yxgh.df.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 堤防病险工程任务问题 bs_sgc_df_bxgcnrgl + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_df_bxgcnrgl") +@Data +@ApiModel("堤防病险工程任务问题") +public class DfDangerousTaskItemRel extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 监督检查任务ID + */ + @ApiModelProperty(value = "监督检查任务ID") + private String taskId; + + /** + * 监督检查办法项目ID + */ + @ApiModelProperty("监督检查办法项目ID") + private String projectId; + + /** + * 监督检查办法项目内容ID + */ + @ApiModelProperty("监督检查办法项目内容ID") + private String projectItemId; + + /** + * 问题等级 + */ + @ApiModelProperty("问题等级") + private String level; + + + @TableField(exist = false) + private String remark; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTaskProjectRel.java b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTaskProjectRel.java new file mode 100644 index 00000000..9b50034d --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfDangerousTaskProjectRel.java @@ -0,0 +1,50 @@ +package com.kms.yxgh.df.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 堤防病险工程任务项目关联对象 bs_sgc_df_jdjcgc + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_df_bxgcxmgl") +@Data +@ApiModel("堤防病险工程任务项目关联") +public class DfDangerousTaskProjectRel extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 监督检查任务ID + */ + @ApiModelProperty(value = "监督检查任务ID") + private String taskId; + + /** + * 监督检查办法项目ID + */ + @ApiModelProperty(value = "监督检查办法项目ID") + private String projectId; + + /** + * 问题描述 + */ + @ApiModelProperty(value = "问题描述") + private String problemDescribe; + + /** + * 现场记录情况 + */ + @ApiModelProperty(value = "现场记录情况") + private String siteSituationRecords; + + + @TableField(exist = false) + private String remark; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousParamDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousParamDto.java new file mode 100644 index 00000000..19724bfe --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousParamDto.java @@ -0,0 +1,83 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author hry + * @date 2024/3/2 16:57 + */ +@Data +@ApiModel("堤防病险工程参数对象") +public class DfDangerousParamDto { + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private String id; + + /** + * 状态(保存、提交) + */ + @ApiModelProperty(value = "状态") + private String state; + + /** + * 项目问题列表 + */ + private List problemList; + + + @Data + public static class ProblemParam { + + @ApiModelProperty("主键") + private String id; + + /** + * 项目ID + */ + @ApiModelProperty("项目ID") + private String projectId; + + /** + * 问题描述 + */ + @ApiModelProperty(value = "问题描述") + private String problemDescribe; + + /** + * 现场记录情况 + */ + @ApiModelProperty(value = "现场记录情况") + private String siteSituationRecords; + + /** + * 问题填报列表 + */ + private List levelList; + } + + @Data + public static class ProblemLevelParam { + + @ApiModelProperty("主键") + private String id; + + /** + * 项目内容ID + */ + @ApiModelProperty("监督检查办法项目内容ID") + private String projectItemId; + + /** + * 问题等级 + */ + @ApiModelProperty("等级") + private String level; + + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskDetailDto.java new file mode 100644 index 00000000..8aa61f46 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskDetailDto.java @@ -0,0 +1,24 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel("堤防病险工程任务详情") +public class DfDangerousTaskDetailDto extends DfDangerousTaskDto{ + + /** + * 问题描述列表 + */ + @ApiModelProperty(value = "问题描述列表") + private List engineeringList; + + /** + * 问题列表 + */ + @ApiModelProperty(value = "问题列表") + private List problemList; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskDto.java new file mode 100644 index 00000000..da0b721e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskDto.java @@ -0,0 +1,89 @@ +package com.kms.yxgh.df.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 堤防病险工程核查任务dto对象 + * @author hry + * @date 2024/2/29 13:57 + */ +@Data +@ApiModel("堤防病险工程核查任务") +public class DfDangerousTaskDto extends DfDangerousTaskSearchDto{ + + /** + * id + */ + @ApiModelProperty("id") + private String id; + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 堤防代码 + */ + @ApiModelProperty("堤防代码") + private String dikeCode; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("开始时间") + private Date startTime; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("结束时间") + private Date doneTime; + + /** + * 检查任务背景 + */ + @ApiModelProperty(value = "检查任务背景") + private String content; + + /** + * 病险工程核查分组ID + */ + @ApiModelProperty(value = "病险工程核查分组ID") + private String groupId; + + /** + * 状态(巡查、完成) + */ + @ApiModelProperty(value = "状态") + private String state; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("创建时间") + private String createTime; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("更新时间") + private String updateTime; + + /** + * 病险工程核查分组名称 + */ + @ApiModelProperty (value = "病险工程核查分组名称") + private String groupName; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskItemRelDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskItemRelDto.java new file mode 100644 index 00000000..fae6014d --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskItemRelDto.java @@ -0,0 +1,53 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 堤防监督检查工程问题对象 + * @author hry + * @date 2024/2/29 13:57 + */ +@Data +@ApiModel("堤防监督检查工程问题") +public class DfDangerousTaskItemRelDto { + + @ApiModelProperty(value = "id") + private String id; + /** + * 任务ID + */ + @ApiModelProperty(value = "任务ID") + private String taskId; + + /** + * 项目ID + */ + @ApiModelProperty("项目ID") + private String projectId; + + /** + * 项目内容ID + */ + @ApiModelProperty("项目内容ID") + private String projectItemId; + + /** + * 问题等级 + */ + @ApiModelProperty("问题等级") + private String level; + + /** + * 核查内容 + */ + @ApiModelProperty("核查内容") + private String content; + + /** + * 项目名称 + */ + @ApiModelProperty("项目名称") + private String projectName; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskProjectRelDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskProjectRelDto.java new file mode 100644 index 00000000..5d672492 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskProjectRelDto.java @@ -0,0 +1,44 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 堤防病险工程任务项目关联管理 + * @author hry + * @date 2024/2/29 13:57 + */ +@Data +@ApiModel("堤防病险工程任务项目关联管理") +public class DfDangerousTaskProjectRelDto{ + + @ApiModelProperty(value = "id") + private String id; + + /** + * 监督检查任务ID + */ + @ApiModelProperty(value = "监督检查任务ID") + private String taskId; + + /** + * 监督检查办法项目ID + */ + @ApiModelProperty(value = "监督检查办法项目ID") + private String projectId; + + /** + * 问题描述 + */ + @ApiModelProperty(value = "问题描述") + private String problemDescribe; + + /** + * 现场记录情况 + */ + @ApiModelProperty(value = "现场记录情况") + private String siteSituationRecords; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskSearchDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskSearchDto.java new file mode 100644 index 00000000..356290a7 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfDangerousTaskSearchDto.java @@ -0,0 +1,63 @@ +package com.kms.yxgh.df.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 堤防病险工程核查任务检索详情 + * @author hry + * @date 2024/2/29 13:57 + */ +@Data +@ApiModel("堤防病险工程核查任务检索详情") +public class DfDangerousTaskSearchDto { + + /** + * 堤防名称 + */ + @ApiModelProperty("堤防名称") + private String dikeName; + + /** + * 堤防等级 + */ + @ApiModelProperty("堤防等级") + private String riverLocation; + + /** + * 堤防等级 + */ + @ApiModelProperty("堤防等级") + private String dikeGrad; + + /** + * 管理单位 + */ + @ApiModelProperty("管理单位") + private String engineeringManagementUnit; + + /** + * 起点行政区划 + */ + @ApiModelProperty("起点行政区划") + private String adcdStart; + + /** + * 终点行政区划 + */ + @ApiModelProperty("终点行政区划") + private String adcdEnd; + + /** + * 堤防型式 + */ + @ApiModelProperty("堤防型式") + private String dikePatt; + + /** + * 堤防类型 + */ + @ApiModelProperty("堤防类型") + private String dikeType; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskItemRelMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskItemRelMapper.java new file mode 100644 index 00000000..0c83634e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskItemRelMapper.java @@ -0,0 +1,40 @@ +package com.kms.yxgh.df.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.df.domain.DfDangerousTaskItemRel; +import com.kms.yxgh.df.dto.DfDangerousTaskItemRelDto; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface DfDangerousTaskItemRelMapper extends BaseMapper { + + @Insert({ + "" + }) + int insertBatch(@Param(value = "problemList") List itemRels); + + + @Select("") + List selectByListParam(@Param("dto") DfDangerousTaskItemRelDto dto); + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskMapper.java new file mode 100644 index 00000000..220040a9 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskMapper.java @@ -0,0 +1,73 @@ +package com.kms.yxgh.df.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.df.domain.DfDangerousTask; +import com.kms.yxgh.df.dto.DfDangerousTaskDto; +import com.kms.yxgh.df.dto.DfDangerousTaskSearchDto; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.io.Serializable; + +/** + * 堤防病险工程任务Mapper接口 + * + * @author hry + * @date 2024/3/12 14:44 + */ +@Repository +public interface DfDangerousTaskMapper extends BaseMapper { + + @Select("") + IPage selectByPage(Page page, @Param("dto") DfDangerousTaskSearchDto dto); + + + + @Select("") + DfDangerousTaskDto selectByIdDetail(Serializable id); +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskProjectRelMapper.java b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskProjectRelMapper.java new file mode 100644 index 00000000..1eed6b6e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/mapper/DfDangerousTaskProjectRelMapper.java @@ -0,0 +1,9 @@ +package com.kms.yxgh.df.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.df.domain.DfDangerousTaskProjectRel; +import org.springframework.stereotype.Repository; + +@Repository +public interface DfDangerousTaskProjectRelMapper extends BaseMapper { +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfDangerousTaskService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfDangerousTaskService.java new file mode 100644 index 00000000..0129ae05 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfDangerousTaskService.java @@ -0,0 +1,143 @@ +package com.kms.yxgh.df.service; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.base.SzException; +import com.kms.yxgh.df.domain.DfDangerousTask; +import com.kms.yxgh.df.domain.DfDangerousTaskItemRel; +import com.kms.yxgh.df.domain.DfDangerousTaskProjectRel; +import com.kms.yxgh.df.dto.*; +import com.kms.yxgh.df.mapper.DfDangerousTaskItemRelMapper; +import com.kms.yxgh.df.mapper.DfDangerousTaskMapper; +import com.kms.yxgh.df.mapper.DfDangerousTaskProjectRelMapper; +import com.kms.yxgh.util.BeanCopyUtils; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import com.shuili.common.utils.StringUtils; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 堤防病险工程核查任务实现类 + * + * @author hry + * @date 2024/2/29 14:46 + */ +@Service +@AllArgsConstructor +public class DfDangerousTaskService extends BaseService { + + private final DfDangerousTaskProjectRelMapper projectRelMapper; + private final DfDangerousTaskItemRelMapper taskItemRelMapper; + + public IPage getListByPage(SearchParam sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + return this.getBaseMapper().selectByPage(page, sp.getData()); + } + + @Transactional(rollbackFor = Exception.class) + public DfDangerousTaskDto add(DfDangerousTaskDto dto) { + DfDangerousTask dfDangerousTask = BeanCopyUtils.copy(dto, DfDangerousTask.class); + // 根据dikeCode循环分割获取批量新增 + String[] dikeCodes = dto.getDikeCode().split(","); + String[] dikeNames = dto.getDikeName().split(","); + for (int i = 0; i < dikeCodes.length; i++) { + String name = dto.getName(); + if (dikeCodes.length > 1) { + name += "-" + dikeNames[i]; + } + dfDangerousTask.setName(name); + dfDangerousTask.setDikeCode(dikeCodes[i]); + this.save(dfDangerousTask); + } + return BeanCopyUtils.copy(dfDangerousTask, DfDangerousTaskDto.class); + } + + @Transactional(rollbackFor = Exception.class) + public Boolean deleteById(String id) { + return this.removeById(id); + } + + @Transactional(rollbackFor = Exception.class) + public DfDangerousTaskDto modify(DfDangerousTaskDto dto) { + DfDangerousTask dfDangerousTask = BeanCopyUtils.copy(dto, DfDangerousTask.class); + this.updateById(dfDangerousTask); + return BeanCopyUtils.copy(dfDangerousTask, DfDangerousTaskDto.class); + } + + public DfDangerousTaskDto getDetailById(String id) { + DfDangerousTaskDto dfDangerousTask = this.baseMapper.selectByIdDetail(id); + return dfDangerousTask; + } + + @Transactional(rollbackFor = Exception.class) + public DfDangerousParamDto saveOrSubmit(DfDangerousParamDto dto) { + // 1. 查询任务 + DfDangerousTask task = this.getById(dto.getId()); + if (task == null) { + throw new SzException("堤防病险工程核查任务不存在,请确认id值是否正确"); + } + if (CollectionUtil.isEmpty(dto.getProblemList())) { + return dto; + } + // 批量删除 + List ids = dto.getProblemList().stream().filter(level -> StringUtils.isNotBlank(level.getId())).map(DfDangerousParamDto.ProblemParam::getId).collect(Collectors.toList()); + if(!ids.isEmpty()){ + projectRelMapper.deleteBatchIds(ids); + } + + // 2. 新增填报内容 + List itemRel = dto.getProblemList().stream().flatMap(v -> { + // 2.1 删除关联数据 + List problemIds = v.getLevelList().stream().filter(level -> StringUtils.isNotBlank(level.getId())).map(DfDangerousParamDto.ProblemLevelParam::getId).collect(Collectors.toList()); + if (!problemIds.isEmpty()) { + taskItemRelMapper.deleteBatchIds(problemIds); + } + DfDangerousTaskProjectRel engineering = new DfDangerousTaskProjectRel(); + BeanCopyUtils.copy(v, engineering); + engineering.setId(null); + engineering.setTaskId(task.getId()); + projectRelMapper.insert(engineering); + + return v.getLevelList().stream().map(level -> { + DfDangerousTaskItemRel problem = new DfDangerousTaskItemRel(); + BeanCopyUtils.copy(level, problem); + problem.setId(null); + problem.setTaskId(task.getId()); + return problem; + }); + }).collect(Collectors.toList()); + + // 3. 批量新增 + if (!itemRel.isEmpty()) { + taskItemRelMapper.insertBatch(itemRel); + } + + // 4. 修改任务状态 + task.setState(dto.getState()); + this.updateById(task); + return dto; + } + + + public DfDangerousTaskDetailDto getDetailByTaskId(String taskId){ + DfDangerousTaskDetailDto dto = BeanCopyUtils.copy(getDetailById(taskId), DfDangerousTaskDetailDto.class); + + // 1.1 获取堤防任务问题描述列表 + List relList = projectRelMapper.selectList(Wrappers.lambdaQuery() + .eq(DfDangerousTaskProjectRel::getTaskId, taskId)); + dto.setEngineeringList(BeanCopyUtils.copyList(relList, DfSuperviseEngineeringDto.class)); + + DfDangerousTaskItemRelDto relDto= new DfDangerousTaskItemRelDto(); + relDto.setTaskId(taskId); + dto.setProblemList(taskItemRelMapper.selectByListParam(relDto)); + + return dto; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousGroupingController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousGroupingController.java new file mode 100644 index 00000000..fd320f29 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousGroupingController.java @@ -0,0 +1,83 @@ +package com.kms.yxgh.sz.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kms.yxgh.base.Response; +import com.kms.yxgh.sz.dto.SzDangerousGroupingDto; +import com.kms.yxgh.sz.service.SzDangerousGroupingService; +import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.enums.BusinessType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * 水闸病险工程分组 + * @author hry + * @date 2024/3/12 14:44 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/run/df/dangerousGrouping") +@Api(tags = "水闸病险工程分组") +public class SzDangerousGroupingController { + + private final SzDangerousGroupingService groupingService; + + /** + * 查询水闸病险工程分组列表 + * @param sp + * @return + */ + @ApiOperation("水闸病险工程分组列表") + @PostMapping("/page") + public Response> page(@RequestBody SearchParam sp) { + return Response.ok(groupingService.getListByPage(sp)); + } + + /** + * 查询水闸病险工程分组详情 + * @param id + * @return + */ + @ApiOperation("水闸病险工程分组详情") + @GetMapping("/{id}") + public Response detail(@PathVariable String id) { + return Response.ok(groupingService.getDetailById(id)); + } + + + /** + * 新增水闸病险工程分组 + */ + @ApiOperation("水闸病险工程分组新增") + @Log(title = "水闸病险工程分组新增", businessType = BusinessType.INSERT) + @PostMapping() + public Response add(@RequestBody SzDangerousGroupingDto dto) { + return Response.ok(groupingService.add(dto)); + } + + /** + * 修改水闸病险工程分组 + */ + @ApiOperation("水闸病险工程分组修改") + @Log(title = "水闸病险工程分组修改", businessType = BusinessType.UPDATE) + @PutMapping() + public Response update(@RequestBody SzDangerousGroupingDto dto) { + return Response.ok(groupingService.modify(dto)); + } + + /** + * 删除水闸病险工程分组 + * @param id + * @return + */ + @ApiOperation("水闸病险工程分组删除") + @Log(title = "水闸病险工程分组删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public Response deleteData(@PathVariable String id) { + return Response.ok(groupingService.deleteById(id)); + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousGrouping.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousGrouping.java new file mode 100644 index 00000000..8967918b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousGrouping.java @@ -0,0 +1,32 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 水闸病险工程核查分组表 bs_sgc_sz_bxgcfz + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_sz_bxgcfz") +@Data +@ApiModel("水闸病险工程核查分组") +public class SzDangerousGrouping extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 小组名称 + */ + @ApiModelProperty("小组名称") + private String name; + + /** + * 单位id + */ + @ApiModelProperty("单位id") + private String deptId; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousGroupingRel.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousGroupingRel.java new file mode 100644 index 00000000..8b818606 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousGroupingRel.java @@ -0,0 +1,45 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 水闸病险工程核查分组成员关系表 bs_sgc_sz_bxgcfzcy + * + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_sz_bxgcfzcy") +@Data +@ApiModel("水闸病险工程核查分组成员关联") +public class SzDangerousGroupingRel extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 病险工程核查分组ID + */ + @ApiModelProperty("病险工程核查分组ID") + private String groupId; + + /** + * 小组成员ID + */ + @ApiModelProperty("小组成员ID") + private String groupUid; + + /** + * 小组成员名称 + */ + @ApiModelProperty("小组成员名称") + private String groupName; + + /** + * 所属单位ID + */ + @ApiModelProperty("所属单位ID") + private String deptId; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousGroupingDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousGroupingDto.java new file mode 100644 index 00000000..c3c0cc8c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousGroupingDto.java @@ -0,0 +1,55 @@ +package com.kms.yxgh.sz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 水闸病险工程核查分组dto对象 + * @author hry + * @date 2024/2/29 13:57 + */ +@Data +@ApiModel("水闸病险工程核查分组") +public class SzDangerousGroupingDto { + + /** + * id + */ + @ApiModelProperty("id") + private String id; + + /** + * 小组名称 + */ + @ApiModelProperty("小组名称") + private String name; + + /** + * 单位id + */ + @ApiModelProperty("单位id") + private String deptId; + + /** + * 创建单位 + */ + @ApiModelProperty("创建单位") + private String deptName; + + /** + * 小组成员 + */ + @ApiModelProperty("小组成员") + private String groupNames; + + + /** + * 小组成员列表 + */ + @ApiModelProperty("小组成员列表") + private List itemList; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousGroupingRelDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousGroupingRelDto.java new file mode 100644 index 00000000..cc19ca1c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousGroupingRelDto.java @@ -0,0 +1,52 @@ +package com.kms.yxgh.sz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 水闸病险工程核查分组成员关系dto对象 + * + * @author hry + * @date 2024/2/29 13:57 + */ +@Data +@ApiModel("水闸病险工程核查分组成员关联") +public class SzDangerousGroupingRelDto { + + /** + * id + */ + @ApiModelProperty("id") + private String id; + + /** + * 病险工程核查分组ID + */ + @ApiModelProperty("病险工程核查分组ID") + private String groupId; + + /** + * 小组成员ID + */ + @ApiModelProperty("小组成员ID") + private String groupUid; + + /** + * 小组成员名称 + */ + @ApiModelProperty("小组成员名称") + private String groupName; + + /** + * 所属单位ID + */ + @ApiModelProperty("所属单位ID") + private String deptId; + + /** + * 所属单位名称 + */ + @ApiModelProperty("所属单位名称") + private String deptName; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousGroupingMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousGroupingMapper.java new file mode 100644 index 00000000..fe73447a --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousGroupingMapper.java @@ -0,0 +1,26 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.sz.domain.SzDangerousGrouping; +import com.kms.yxgh.sz.dto.SzDangerousGroupingDto; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +/** + * 水闸病险工程分组Mapper接口 + * @author hry + * @date 2024/3/12 14:44 + */ +@Repository +public interface SzDangerousGroupingMapper extends BaseMapper { + + @Select("SELECT b.dept_name as deptName,a.id, a.name, a.dept_id as deptId, a.create_time as createTime, a.update_time as updateTime,GROUP_CONCAT(c.groupName) as groupNames" + + " FROM bs_sgc_sz_bxgcfz a " + + " LEFT JOIN bs_sgc_sz_bxgcfzcy c ON c.groupId = g.id "+ + " LEFT JOIN sys_dept b ON a.dept_id = b.dept_id" + + "") + IPage selectByPage(Page page, @Param("dto") SzDangerousGroupingDto dto); +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousGroupingRelMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousGroupingRelMapper.java new file mode 100644 index 00000000..d1799a1b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousGroupingRelMapper.java @@ -0,0 +1,36 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.sz.domain.SzDangerousGroupingRel; +import com.kms.yxgh.sz.dto.SzDangerousGroupingRelDto; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * 水闸病险工程分组关联Mapper接口 + * @author hry + * @date 2024/3/12 14:44 + */ +@Repository +public interface SzDangerousGroupingRelMapper extends BaseMapper { + + /** + * 根据groupId删除 + * @param groupId + * @return + */ + int deleteByGroupId(String groupId); + + /** + * 根据groupId查询 + * @param groupId + * @return + */ + @Select("select dgr.id,dgr.group_id as groupId, dgr.GROUP_UID as groupUid, dgr.GROUP_NAME as groupName,dgr.dept_id as deptId,sd.dept_name as deptName" + + " from bs_sgc_sz_bxgcfzcy dgr " + + " left join sy_dept sd on dgr.dept_id = sd.dept_id where group_id = #{groupId}") + List selectByGroupId(@Param("groupId") String groupId); +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousGroupingService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousGroupingService.java new file mode 100644 index 00000000..bc0fbf4c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousGroupingService.java @@ -0,0 +1,84 @@ +package com.kms.yxgh.sz.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.sz.domain.SzDangerousGrouping; +import com.kms.yxgh.sz.domain.SzDangerousGroupingRel; +import com.kms.yxgh.sz.dto.SzDangerousGroupingDto; +import com.kms.yxgh.sz.dto.SzDangerousGroupingRelDto; +import com.kms.yxgh.sz.mapper.SzDangerousGroupingMapper; +import com.kms.yxgh.sz.mapper.SzDangerousGroupingRelMapper; +import com.kms.yxgh.util.BeanCopyUtils; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 水闸病险工程核查分组实现类 + * + * @author hry + * @date 2024/2/29 14:46 + */ +@Service +@AllArgsConstructor +public class SzDangerousGroupingService extends BaseService { + + private final SzDangerousGroupingRelMapper relMapper; + + public IPage getListByPage(SearchParam sp) { + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + return this.getBaseMapper().selectByPage(page, sp.getData()); + } + + public SzDangerousGroupingDto getDetailById(String id) { + SzDangerousGrouping dangerousGrouping = this.getById(id); + SzDangerousGroupingDto dto = BeanCopyUtils.copy(dangerousGrouping, SzDangerousGroupingDto.class); + dto.setItemList(relMapper.selectByGroupId(id)); + return dto; + } + + @Transactional(rollbackFor = Exception.class) + public SzDangerousGroupingDto add(SzDangerousGroupingDto groupingDto) { + // 新增分组 + SzDangerousGrouping dangerousGrouping = BeanCopyUtils.copy(groupingDto, SzDangerousGrouping.class); + this.save(dangerousGrouping); + + // 新增小组成员列表 + handleGroupingRel(groupingDto, dangerousGrouping); + return BeanCopyUtils.copy(dangerousGrouping, SzDangerousGroupingDto.class); + } + + @Transactional(rollbackFor = Exception.class) + public SzDangerousGroupingDto modify(SzDangerousGroupingDto groupingDto) { + // 修改分组 + SzDangerousGrouping dangerousGrouping = BeanCopyUtils.copy(groupingDto, SzDangerousGrouping.class); + this.updateById(dangerousGrouping); + + // 批量删除小组成员列表 重新添加 + relMapper.deleteByGroupId(dangerousGrouping.getId()); + handleGroupingRel(groupingDto, dangerousGrouping); + return BeanCopyUtils.copy(dangerousGrouping, SzDangerousGroupingDto.class); + } + + private void handleGroupingRel(SzDangerousGroupingDto groupingDto, SzDangerousGrouping SzDangerousGrouping) { + for (SzDangerousGroupingRelDto item : groupingDto.getItemList()) { + SzDangerousGroupingRel itemEntity = BeanCopyUtils.copy(item, SzDangerousGroupingRel.class); + itemEntity.setId(null); + itemEntity.setGroupId(SzDangerousGrouping.getId()); + relMapper.insert(itemEntity); + } + } + + @Transactional(rollbackFor = Exception.class) + public Boolean deleteById(String id) { + if (this.removeById(id)){ + // 除掉所配置的数据项 + relMapper.delete(Wrappers.lambdaQuery().eq(SzDangerousGroupingRel::getGroupId, id)); + } + return true; + } + +}