From 07d33decb5bbb7d2d140cb2ba16aca547852ddb0 Mon Sep 17 00:00:00 2001 From: huangrenya Date: Thu, 14 Mar 2024 17:47:01 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E7=97=85=E9=99=A9=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B-=E6=B0=B4=E9=97=B8-=E6=B7=BB=E5=8A=A0=E6=A0=B8?= =?UTF-8?q?=E6=9F=A5=E4=BB=BB=E5=8A=A1=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SzDangerousTaskController.java | 108 +++++++++++++ .../kms/yxgh/sz/domain/SzDangerousTask.java | 69 +++++++++ .../sz/domain/SzDangerousTaskItemRel.java | 49 ++++++ .../sz/domain/SzDangerousTaskProjectRel.java | 50 ++++++ .../kms/yxgh/sz/dto/SzDangerousParamDto.java | 83 ++++++++++ .../yxgh/sz/dto/SzDangerousTaskDetailDto.java | 24 +++ .../kms/yxgh/sz/dto/SzDangerousTaskDto.java | 89 +++++++++++ .../sz/dto/SzDangerousTaskItemRelDto.java | 53 +++++++ .../sz/dto/SzDangerousTaskProjectRelDto.java | 44 ++++++ .../yxgh/sz/dto/SzDangerousTaskSearchDto.java | 57 +++++++ .../mapper/SzDangerousTaskItemRelMapper.java | 40 +++++ .../yxgh/sz/mapper/SzDangerousTaskMapper.java | 70 +++++++++ .../SzDangerousTaskProjectRelMapper.java | 9 ++ .../sz/service/SzDangerousTaskService.java | 143 ++++++++++++++++++ 14 files changed, 888 insertions(+) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousTaskController.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTask.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskItemRel.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskProjectRel.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousParamDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDetailDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskItemRelDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskProjectRelDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskSearchDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskItemRelMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskProjectRelMapper.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousTaskService.java diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousTaskController.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousTaskController.java new file mode 100644 index 00000000..2cc85b47 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousTaskController.java @@ -0,0 +1,108 @@ +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.SzDangerousParamDto; +import com.kms.yxgh.sz.dto.SzDangerousTaskDetailDto; +import com.kms.yxgh.sz.dto.SzDangerousTaskDto; +import com.kms.yxgh.sz.dto.SzDangerousTaskSearchDto; +import com.kms.yxgh.sz.service.SzDangerousTaskService; +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/sz/dangerousTask") +@Api(tags = "水闸病险工程核查任务") +public class SzDangerousTaskController { + + private final SzDangerousTaskService 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 SzDangerousTaskDto dto) { + return Response.ok(dangerousTaskService.add(dto)); + } + + /** + * 修改水闸病险工程核查任务 + */ + @ApiOperation("水闸病险工程核查任务修改") + @Log(title = "水闸病险工程核查任务修改", businessType = BusinessType.UPDATE) + @PutMapping() + public Response modify(@RequestBody SzDangerousTaskDto 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 SzDangerousParamDto 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/sz/domain/SzDangerousTask.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTask.java new file mode 100644 index 00000000..11981e8f --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTask.java @@ -0,0 +1,69 @@ +package com.kms.yxgh.sz.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_sz_bxgcrw + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_sz_bxgcrw") +@Data +@ApiModel("水闸病险工程核查任务") +public class SzDangerousTask extends SyBaseEntity { + + private static final long serialVersionUID = 1L; + + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 水闸代码 + */ + @ApiModelProperty("水闸代码") + private String wagaCode; + + /** + * 开始时间 + */ + @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/sz/domain/SzDangerousTaskItemRel.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskItemRel.java new file mode 100644 index 00000000..349ef64c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskItemRel.java @@ -0,0 +1,49 @@ +package com.kms.yxgh.sz.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_sz_bxgcnrgl + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_sz_bxgcnrgl") +@Data +@ApiModel("水闸病险工程任务问题") +public class SzDangerousTaskItemRel 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/sz/domain/SzDangerousTaskProjectRel.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskProjectRel.java new file mode 100644 index 00000000..d3fe095f --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskProjectRel.java @@ -0,0 +1,50 @@ +package com.kms.yxgh.sz.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_sz_jdjcgc + * @author hry + * @date 2024/2/29 13:57 + */ +@TableName("bs_sgc_sz_bxgcxmgl") +@Data +@ApiModel("水闸病险工程任务项目关联") +public class SzDangerousTaskProjectRel 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/sz/dto/SzDangerousParamDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousParamDto.java new file mode 100644 index 00000000..a5c2201f --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousParamDto.java @@ -0,0 +1,83 @@ +package com.kms.yxgh.sz.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 SzDangerousParamDto { + /** + * 任务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/sz/dto/SzDangerousTaskDetailDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDetailDto.java new file mode 100644 index 00000000..08e6374c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDetailDto.java @@ -0,0 +1,24 @@ +package com.kms.yxgh.sz.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel("堤防病险工程任务详情") +public class SzDangerousTaskDetailDto extends SzDangerousTaskDto { + + /** + * 问题描述列表 + */ + @ApiModelProperty(value = "问题描述列表") + private List engineeringList; + + /** + * 问题列表 + */ + @ApiModelProperty(value = "问题列表") + private List problemList; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDto.java new file mode 100644 index 00000000..24cba7fa --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDto.java @@ -0,0 +1,89 @@ +package com.kms.yxgh.sz.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 SzDangerousTaskDto extends SzDangerousTaskSearchDto { + + /** + * id + */ + @ApiModelProperty("id") + private String id; + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 水闸代码 + */ + @ApiModelProperty("水闸代码") + private String wagaCode; + + /** + * 开始时间 + */ + @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/sz/dto/SzDangerousTaskItemRelDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskItemRelDto.java new file mode 100644 index 00000000..60a15d60 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskItemRelDto.java @@ -0,0 +1,53 @@ +package com.kms.yxgh.sz.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 SzDangerousTaskItemRelDto { + + @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/sz/dto/SzDangerousTaskProjectRelDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskProjectRelDto.java new file mode 100644 index 00000000..4f011168 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskProjectRelDto.java @@ -0,0 +1,44 @@ +package com.kms.yxgh.sz.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 SzDangerousTaskProjectRelDto { + + @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/sz/dto/SzDangerousTaskSearchDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskSearchDto.java new file mode 100644 index 00000000..b18e9b41 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskSearchDto.java @@ -0,0 +1,57 @@ +package com.kms.yxgh.sz.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 SzDangerousTaskSearchDto { + + /** + * 水闸名称 + */ + @ApiModelProperty("水闸名称") + private String wagaName; + + /** + * 水闸等级 + */ + @ApiModelProperty("水闸等级") + private String riverLocation; + + /** + * 水闸等级 + */ + @ApiModelProperty("水闸等级") + private String dikeGrad; + + /** + * 管理单位 + */ + @ApiModelProperty("管理单位") + private String engineeringManagementUnit; + + /** + * 行政区划 + */ + @ApiModelProperty("行政区划") + private String adcd; + + /** + * 工程规模 + */ + @ApiModelProperty("工程规模") + private String engScal; + + /** + * 水闸类型 + */ + @ApiModelProperty("水闸类型") + private String wagaType; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskItemRelMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskItemRelMapper.java new file mode 100644 index 00000000..7ff621d2 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskItemRelMapper.java @@ -0,0 +1,40 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.sz.domain.SzDangerousTaskItemRel; +import com.kms.yxgh.sz.dto.SzDangerousTaskItemRelDto; +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 SzDangerousTaskItemRelMapper extends BaseMapper { + + @Insert({ + "" + }) + int insertBatch(@Param(value = "problemList") List itemRels); + + + @Select("") + List selectByListParam(@Param("dto") SzDangerousTaskItemRelDto dto); + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskMapper.java new file mode 100644 index 00000000..ce316a26 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskMapper.java @@ -0,0 +1,70 @@ +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.SzDangerousTask; +import com.kms.yxgh.sz.dto.SzDangerousTaskDto; +import com.kms.yxgh.sz.dto.SzDangerousTaskSearchDto; +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 SzDangerousTaskMapper extends BaseMapper { + + @Select("") + IPage selectByPage(Page page, @Param("dto") SzDangerousTaskSearchDto dto); + + + + @Select("") + SzDangerousTaskDto selectByIdDetail(Serializable id); +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskProjectRelMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskProjectRelMapper.java new file mode 100644 index 00000000..7fb7a862 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskProjectRelMapper.java @@ -0,0 +1,9 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.sz.domain.SzDangerousTaskProjectRel; +import org.springframework.stereotype.Repository; + +@Repository +public interface SzDangerousTaskProjectRelMapper extends BaseMapper { +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousTaskService.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousTaskService.java new file mode 100644 index 00000000..a3d4922c --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousTaskService.java @@ -0,0 +1,143 @@ +package com.kms.yxgh.sz.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.sz.domain.SzDangerousTask; +import com.kms.yxgh.sz.domain.SzDangerousTaskItemRel; +import com.kms.yxgh.sz.domain.SzDangerousTaskProjectRel; +import com.kms.yxgh.sz.dto.*; +import com.kms.yxgh.sz.mapper.SzDangerousTaskItemRelMapper; +import com.kms.yxgh.sz.mapper.SzDangerousTaskMapper; +import com.kms.yxgh.sz.mapper.SzDangerousTaskProjectRelMapper; +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 SzDangerousTaskService extends BaseService { + + private final SzDangerousTaskProjectRelMapper projectRelMapper; + private final SzDangerousTaskItemRelMapper 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 SzDangerousTaskDto add(SzDangerousTaskDto dto) { + SzDangerousTask dangerousTask = BeanCopyUtils.copy(dto, SzDangerousTask.class); + // 根据wagaCode循环分割获取批量新增 + String[] wagaCodes = dto.getWagaCode().split(","); + String[] wagaNames = dto.getWagaName().split(","); + for (int i = 0; i < wagaCodes.length; i++) { + String name = dto.getName(); + if (wagaCodes.length > 1) { + name += "-" + wagaNames[i]; + } + dangerousTask.setName(name); + dangerousTask.setWagaCode(wagaCodes[i]); + this.save(dangerousTask); + } + return BeanCopyUtils.copy(dangerousTask, SzDangerousTaskDto.class); + } + + @Transactional(rollbackFor = Exception.class) + public Boolean deleteById(String id) { + return this.removeById(id); + } + + @Transactional(rollbackFor = Exception.class) + public SzDangerousTaskDto modify(SzDangerousTaskDto dto) { + SzDangerousTask dangerousTask = BeanCopyUtils.copy(dto, SzDangerousTask.class); + this.updateById(dangerousTask); + return BeanCopyUtils.copy(dangerousTask, SzDangerousTaskDto.class); + } + + public SzDangerousTaskDto getDetailById(String id) { + SzDangerousTaskDto dangerousTask = this.baseMapper.selectByIdDetail(id); + return dangerousTask; + } + + @Transactional(rollbackFor = Exception.class) + public SzDangerousParamDto saveOrSubmit(SzDangerousParamDto dto) { + // 1. 查询任务 + SzDangerousTask 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(SzDangerousParamDto.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(SzDangerousParamDto.ProblemLevelParam::getId).collect(Collectors.toList()); + if (!problemIds.isEmpty()) { + taskItemRelMapper.deleteBatchIds(problemIds); + } + SzDangerousTaskProjectRel engineering = new SzDangerousTaskProjectRel(); + BeanCopyUtils.copy(v, engineering); + engineering.setId(null); + engineering.setTaskId(task.getId()); + projectRelMapper.insert(engineering); + + return v.getLevelList().stream().map(level -> { + SzDangerousTaskItemRel problem = new SzDangerousTaskItemRel(); + 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 SzDangerousTaskDetailDto getDetailByTaskId(String taskId){ + SzDangerousTaskDetailDto dto = BeanCopyUtils.copy(getDetailById(taskId), SzDangerousTaskDetailDto.class); + + // 1.1 获取水闸任务问题描述列表 + List relList = projectRelMapper.selectList(Wrappers.lambdaQuery() + .eq(SzDangerousTaskProjectRel::getTaskId, taskId)); + dto.setEngineeringList(BeanCopyUtils.copyList(relList, SzDangerousTaskProjectRelDto.class)); + + SzDangerousTaskItemRelDto relDto= new SzDangerousTaskItemRelDto(); + relDto.setTaskId(taskId); + dto.setProblemList(taskItemRelMapper.selectByListParam(relDto)); + + return dto; + } +}