Browse Source

feat:病险工程-水闸-添加核查任务相关接口

master_tdsql
huangrenya 1 year ago
parent
commit
07d33decb5
  1. 108
      shuili-system/src/main/java/com/kms/yxgh/sz/controller/SzDangerousTaskController.java
  2. 69
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTask.java
  3. 49
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskItemRel.java
  4. 50
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzDangerousTaskProjectRel.java
  5. 83
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousParamDto.java
  6. 24
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDetailDto.java
  7. 89
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskDto.java
  8. 53
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskItemRelDto.java
  9. 44
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskProjectRelDto.java
  10. 57
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/SzDangerousTaskSearchDto.java
  11. 40
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskItemRelMapper.java
  12. 70
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskMapper.java
  13. 9
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzDangerousTaskProjectRelMapper.java
  14. 143
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzDangerousTaskService.java

108
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<IPage<SzDangerousTaskDto>> listByPage(@RequestBody SearchParam<SzDangerousTaskSearchDto> sp) {
return Response.ok(dangerousTaskService.getListByPage(sp));
}
/**
* 查询水闸病险工程核查任务详情
* @param id
* @return
*/
@ApiOperation("水闸病险工程核查任务详情")
@GetMapping("/{id}")
public Response<SzDangerousTaskDto> detail(@PathVariable String id) {
return Response.ok(dangerousTaskService.getDetailById(id));
}
/**
* 新增水闸病险工程核查任务
*/
@ApiOperation("水闸病险工程核查任务新增")
@Log(title = "水闸病险工程核查任务新增", businessType = BusinessType.INSERT)
@PostMapping()
public Response<SzDangerousTaskDto> add(@RequestBody SzDangerousTaskDto dto) {
return Response.ok(dangerousTaskService.add(dto));
}
/**
* 修改水闸病险工程核查任务
*/
@ApiOperation("水闸病险工程核查任务修改")
@Log(title = "水闸病险工程核查任务修改", businessType = BusinessType.UPDATE)
@PutMapping()
public Response<SzDangerousTaskDto> modify(@RequestBody SzDangerousTaskDto dto) {
return Response.ok(dangerousTaskService.modify(dto));
}
/**
* 删除水闸病险工程核查任务
* @param id
* @return
*/
@ApiOperation("水闸病险工程核查任务删除")
@Log(title = "水闸病险工程核查任务删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public Response<Boolean> deleteData(@PathVariable String id) {
return Response.ok(dangerousTaskService.deleteById(id));
}
/**
* 保存或提交 水闸工程核查
*/
@ApiOperation("水闸工程核查保存或提交")
@Log(title = "水闸工程核查保存或提交", businessType = BusinessType.INSERT)
@PostMapping("/saveOrSubmit")
public Response<SzDangerousParamDto> saveOrSubmit(@RequestBody SzDangerousParamDto dto) {
return Response.ok(dangerousTaskService.saveOrSubmit(dto));
}
/**
* 水闸工程核查详情
* @param id 任务id
* @return
*/
@ApiOperation("水闸工程核查详情")
@GetMapping(value = "/detail/{id}")
public Response<SzDangerousTaskDetailDto> getDetailByTaskId(@PathVariable String id) {
return Response.ok(dangerousTaskService.getDetailByTaskId(id));
}
}

69
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;
}

49
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;
}

50
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;
}

83
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<ProblemParam> 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<ProblemLevelParam> levelList;
}
@Data
public static class ProblemLevelParam {
@ApiModelProperty("主键")
private String id;
/**
* 项目内容ID
*/
@ApiModelProperty("项目内容ID")
private String projectItemId;
/**
* 问题等级
*/
@ApiModelProperty("等级")
private String level;
}
}

24
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<SzDangerousTaskProjectRelDto> engineeringList;
/**
* 问题列表
*/
@ApiModelProperty(value = "问题列表")
private List<SzDangerousTaskItemRelDto> problemList;
}

89
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;
}

53
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;
}

44
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;
}

57
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;
}

40
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<SzDangerousTaskItemRel> {
@Insert({
"<script>",
"insert into bs_sgc_sz_bxgcglxm(task_id, project_id, project_item_id, level) values ",
"<foreach collection='problemList' item='item' index='index' separator=','>",
"(#{item.taskId}, #{item.projectId}, #{item.projectItemId}, #{item.level} )",
"</foreach>",
"</script>"
})
int insertBatch(@Param(value = "problemList") List<SzDangerousTaskItemRel> itemRels);
@Select("<script>" +
"SELECT xm.name as projectName, nr.project_id as projectId, nr.content, " +
"wt.id, wt.task_id as taskId, wt.PROJECT_ITEM_ID as projectItemId, wt.level "+
"FROM bs_sgc_sz_bxgcglxm wt " +
"LEFT JOIN bs_sgc_sz_bxgcxm xm on wt.project_id = xm.id " +
"LEFT JOIN bs_sgc_sz_bxgcxmnr nr on wt.project_item_id = nr.id " +
"WHERE 1=1 " +
"<if test='dto.taskId != null and dto.taskId != \"\"'>" +
"AND wt.task_id = #{dto.taskId} " +
"</if>" +
"</script>")
List<SzDangerousTaskItemRelDto> selectByListParam(@Param("dto") SzDangerousTaskItemRelDto dto);
}

70
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<SzDangerousTask> {
@Select("<script>" +
"SELECT rw.id, rw.NAME, rw.GROUP_ID as groupId, rw.WAGA_CODE as wagaCode, rw.START_TIME as startTime, rw.DONE_TIME as doneTime, rw.CONTENT as content, rw.state, rw.CREATE_TIME as createTime, rw.UPDATE_TIME as updateTime, " +
"df.waga_name as wagaName, gl.engineering_management_unit as engineeringManagementUnit, df.adcd as adcd, df.ENG_SCAL as engScal , df.waga_type as wagaType, fz.name as groupName " +
"FROM bs_sgc_sz_bxgcrw rw " +
"LEFT JOIN bs_sgc_sz_jbxx df ON df.waga_code = rw.waga_code " +
"LEFT JOIN bs_sgc_sz_gcgl gl ON rw.waga_code = gl.waga_code " +
"LEFT JOIN bs_sgc_sz_bxgcfz fz ON rw.group_id = fz.id " +
"WHERE df.expr_date is null " +
"AND gl.expr_date is null " +
"<if test='dto.wagaName != null and dto.wagaName != \"\"'>" +
"AND df.waga_name LIKE CONCAT('%', #{dto.wagaName}, '%') " +
"</if>" +
"<if test='dto.wagaType != null and dto.wagaType != \"\"'>" +
"AND df.waga_type = #{dto.wagaType} " +
"</if>" +
"<if test='dto.adcd != null and dto.adcd != \"\"'>" +
"AND df.adcd = #{dto.adcd} " +
"</if>" +
"<if test='dto.engineeringManagementUnit != null and dto.engineeringManagementUnit != \"\"'>" +
"AND gl.engineering_management_unit like concat('%', #{dto.engineeringManagementUnit}, '%') " +
"</if>" +
"<if test='dto.engScal != null and dto.engScal != \"\"'>" +
"AND df.ENG_SCAL = #{dto.ENG_SCAL} " +
"</if>" +
"<if test='dto.id != null and dto.id != \"\"'>" +
"AND rw.id = #{dto.id} " +
"</if>" +
"ORDER BY rw.create_time asc" +
"</script>")
IPage<SzDangerousTaskDto> selectByPage(Page<SzDangerousTaskDto> page, @Param("dto") SzDangerousTaskSearchDto dto);
@Select("<script>" +
"SELECT rw.id, rw.NAME, rw.GROUP_ID as groupId, rw.waga_code as wagaCode, rw.START_TIME as startTime, rw.DONE_TIME as doneTime, rw.CONTENT as content, rw.state, df.waga_name as wagaName, " +
"df.waga_name as wagaName, gl.engineering_management_unit as engineeringManagementUnit, df.adcd as adcd, df.ENG_SCAL as engScal , df.waga_type as wagaType " +
"FROM bs_sgc_sz_bxgcrw rw " +
"LEFT JOIN bs_sgc_sz_jbxx df ON df.waga_code = da.waga_code " +
"LEFT JOIN bs_sgc_sz_gcgl gl ON rw.waga_code = gl.waga_code " +
"WHERE df.expr_date is null " +
"AND gl.expr_date is null " +
"<if test='dto.id != null and dto.id != \"\"'>" +
"AND rw.id = #{dto.id} " +
"</if>" +
"</script>")
SzDangerousTaskDto selectByIdDetail(Serializable id);
}

9
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<SzDangerousTaskProjectRel> {
}

143
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<SzDangerousTaskMapper, SzDangerousTask> {
private final SzDangerousTaskProjectRelMapper projectRelMapper;
private final SzDangerousTaskItemRelMapper taskItemRelMapper;
public IPage<SzDangerousTaskDto> getListByPage(SearchParam<SzDangerousTaskSearchDto> sp) {
Page<SzDangerousTaskDto> 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<String> 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<SzDangerousTaskItemRel> itemRel = dto.getProblemList().stream().flatMap(v -> {
// 2.1 删除关联数据
List<String> 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<SzDangerousTaskProjectRel> relList = projectRelMapper.selectList(Wrappers.<SzDangerousTaskProjectRel>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;
}
}
Loading…
Cancel
Save