Browse Source

add:水闸

release-sy-tdsql
“lyd” 1 month ago
parent
commit
2222559533
  1. 3
      shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java
  2. 15
      shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java
  3. 111
      shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java
  4. 4
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java
  5. 21
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2Service.java
  6. 6
      shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingProblemV2Controller.java
  7. 10
      shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingRecordV2Controller.java
  8. 13
      shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingV2Controller.java
  9. 21
      shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzYhV2Controller.java
  10. 143
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingProblemV2.java
  11. 121
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingRecord.java
  12. 41
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectItem.java
  13. 68
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectManage.java
  14. 136
      shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhV2.java
  15. 2
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzRecordDetailV2Dto.java
  16. 11
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzV2CheckingDto.java
  17. 25
      shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzYhApproveDto.java
  18. 80
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingProblemV2Mapper.java
  19. 68
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingRecordV2Mapper.java
  20. 36
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2Mapper.java
  21. 18
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2ProjectItemMapper.java
  22. 53
      shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhV2Mapper.java
  23. 111
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingProblemV2Service.java
  24. 257
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingRecordV2Service.java
  25. 19
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2ProjectItemV2Service.java
  26. 233
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2Service.java
  27. 225
      shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhV2Service.java
  28. 71
      shuili-system/src/main/resources/mapper/yxgh/SzYhV2Mapper.xml

3
shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java

@ -11,8 +11,9 @@ public enum ApprovalTypeEnum {
YH_RECORD("堤防维修养护记录", "yh_record", "dfYhRecordService"),
YH_V2_RECORD("堤防维修养护记录v2", "yh_record_v2", "dfYhV2Service"),
SZ_YH_PLAN("水闸维修养护计划", "sz_yh_plan", "szYhPlanService"),
SZ_YH_RECORD("水闸维修养护记录", "sz_yh_record", "szYhRecordService");
SZ_YH_RECORD("水闸维修养护记录", "sz_yh_record", "szYhRecordService"),
SZ_V2_YH_RECORD("水闸维修养护记录", "sz_v2_yh_record", "szYhV2Service"),;
private final String name;
private final String value;

15
shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java

@ -23,6 +23,21 @@ public enum ProjectCharEnum {
C_1("工程分布", Collections.singletonList(StaticIndexEnum.DF_PROJECT_ADCD_SUM), "数量", Collections.emptyList()),
C_2("巡查分析", Arrays.asList(StaticIndexEnum.DF_CHECKING_ADCD_SUM, StaticIndexEnum.DF_JD_ADCD_SUM), "数量", Collections.emptyList()),
C_3("缺陷和养护对比", Arrays.asList(StaticIndexEnum.DF_QX_ADCD_SUM, StaticIndexEnum.DF_YH_ADCD_SUM), "数量", Collections.emptyList()),
C_SZ_14("巡查记录分析", Arrays.asList(StaticIndexEnum.SZ_JL_ONE_DATE_SUM, StaticIndexEnum.SZ_JL_TWO_DATE_SUM), "数量", Collections.emptyList()),
C_SZ_15("巡查缺陷分析", Arrays.asList(StaticIndexEnum.SZ_QX_ONE_DATE_SUM, StaticIndexEnum.SZ_QX_TWO_DATE_SUM), "数量", Collections.emptyList()),
C_SZ_16("缺陷问题等级分析", Arrays.asList(StaticIndexEnum.SZ_QX_DJ_LX_SUM, StaticIndexEnum.SZ_QX_DJ_JD_SUM, StaticIndexEnum.SZ_QX_DJ_ZD_SUM, StaticIndexEnum.SZ_QX_DJ_YB_SUM), "数量", Collections.emptyList()),
C_SZ_17("缺陷养护对比分析", Arrays.asList(StaticIndexEnum.SZ_BD_YH_SUM, StaticIndexEnum.SZ_BD_QX_SUM), "数量", Collections.emptyList()),
C_SZ_18("巡查项目总数", Collections.singletonList(StaticIndexEnum.SZ_XM_SUM), "数量", Collections.emptyList()),
C_SZ_1("工程分布", Collections.singletonList(StaticIndexEnum.SZ_PROJECT_ADCD_SUM), "数量", Collections.emptyList()),
C_SZ_2("巡查分析", Arrays.asList(StaticIndexEnum.SZ_CHECKING_ADCD_SUM, StaticIndexEnum.SZ_JD_ADCD_SUM), "数量", Collections.emptyList()),
C_SZ_3("缺陷和养护对比", Arrays.asList(StaticIndexEnum.SZ_QX_ADCD_SUM, StaticIndexEnum.SZ_YH_ADCD_SUM), "数量", Collections.emptyList()),
;

111
shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java

@ -9,6 +9,10 @@ import com.kms.yxgh.df.mapper.DfCheckingProblemV2Mapper;
import com.kms.yxgh.df.mapper.DfCheckingRecordV2Mapper;
import com.kms.yxgh.df.mapper.DfCheckingV2Mapper;
import com.kms.yxgh.df.mapper.DfYhV2Mapper;
import com.kms.yxgh.sz.mapper.SzCheckingProblemV2Mapper;
import com.kms.yxgh.sz.mapper.SzCheckingRecordV2Mapper;
import com.kms.yxgh.sz.mapper.SzCheckingV2Mapper;
import com.kms.yxgh.sz.mapper.SzYhV2Mapper;
import com.shuili.common.utils.SpringUtils;
import lombok.Getter;
@ -111,6 +115,113 @@ public enum StaticIndexEnum {
return adcdGroup(list, sp);
}, "个", "0"),
SZ_JL_ONE_DATE_SUM("机电巡查", sp -> {
SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class);
List<CountDateDto> list = mapper.countDateGroup(sp, PatrolMaintenanceCategory.JD_PATROL);
return dataGroup(list);
}, "个", "0"),
SZ_JL_TWO_DATE_SUM("工程巡查", sp -> {
SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class);
List<CountDateDto> list = mapper.countDateGroup(sp, PatrolMaintenanceCategory.PROJECT_PATROL);
return dataGroup(list);
}, "个", "0"),
SZ_QX_ONE_DATE_SUM("机电巡查", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countDate(sp, PatrolMaintenanceCategory.JD_PATROL);
return dataGroup(list);
}, "个", "0"),
SZ_QX_TWO_DATE_SUM("工程巡查", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countDate(sp, PatrolMaintenanceCategory.PROJECT_PATROL);
return dataGroup(list);
}, "个", "0"),
SZ_QX_DJ_LX_SUM("零星", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_LX);
return dataGroup(list);
}, "个", "0"),
SZ_QX_DJ_YB_SUM("一般", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_YB);
return dataGroup(list);
}, "个", "0"),
SZ_QX_DJ_JD_SUM("较大", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_JD);
return dataGroup(list);
}, "个", "0"),
SZ_QX_DJ_ZD_SUM("重大", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_ZD);
return dataGroup(list);
}, "个", "0"),
SZ_BD_YH_SUM("养护次数", sp -> {
SzYhV2Mapper mapper = SpringUtils.getBean(SzYhV2Mapper.class);
List<CountDateDto> list = mapper.countYhDto(sp);
return dataGroup(list);
}, "个", "0"),
SZ_BD_QX_SUM("缺陷次数", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDateDto> list = mapper.countQx(sp);
return dataGroup(list);
}, "个", "0"),
SZ_XM_SUM("巡查项目数", sp -> {
SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class);
int list = mapper.countXm(sp);
Map<String, String> map = new HashMap<>();
map.put("sum", String.valueOf(list));
return map;
}, "个", "0"),
SZ_QX_ADCD_SUM("缺陷数量", sp -> {
SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class);
List<CountDto> list = mapper.count(sp);
return adcdGroup(list, sp);
}, "个", "0"),
SZ_YH_ADCD_SUM("养护次数", sp -> {
SzYhV2Mapper mapper = SpringUtils.getBean(SzYhV2Mapper.class);
List<CountDto> list = mapper.count(sp);
return adcdGroup(list, sp);
}, "个", "0"),
SZ_PROJECT_ADCD_SUM("工程数量", sp -> {
SzCheckingV2Mapper mapper = SpringUtils.getBean(SzCheckingV2Mapper.class);
List<CountDto> list = mapper.count(sp);
return adcdGroup(list, sp);
}, "个", "0"),
SZ_CHECKING_ADCD_SUM("工程巡查", sp -> {
SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class);
List<CountDto> list = mapper.count(sp, PatrolMaintenanceCategory.PROJECT_PATROL);
return adcdGroup(list, sp);
}, "个", "0"),
SZ_JD_ADCD_SUM("机电巡查", sp -> {
SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class);
List<CountDto> list = mapper.count(sp, PatrolMaintenanceCategory.JD_PATROL);
return adcdGroup(list, sp);
}, "个", "0"),
;

4
shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java

@ -70,11 +70,11 @@ public class DfCheckingProblemV2Service extends BaseService<DfCheckingProblemV2M
}
Optional.ofNullable(data.getProblemLevel())
.filter(StringUtils::isNotBlank)
.ifPresent(problemLevel -> queryWrapper.le(DfCheckingProblemV2::getProblemLevel, problemLevel));
.ifPresent(problemLevel -> queryWrapper.eq(DfCheckingProblemV2::getProblemLevel, problemLevel));
Optional.ofNullable(data.getRecordId())
.filter(StringUtils::isBlank)
.ifPresent(recordId -> queryWrapper.eq(DfCheckingProblemV2::getProblemLevel, recordId));
.ifPresent(recordId -> queryWrapper.eq(DfCheckingProblemV2::getRecordId, recordId));
}
queryWrapper.ne(DfCheckingProblemV2::getStatus, DURING_INSPECTION.getValue());

21
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2Service.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -84,9 +85,9 @@ public class DfYhV2Service extends DefaultApprovalBusinessService<DfYhV2Mapper,
queryWrapper.le(DfYhV2::getEndDate, data.getEndDate());
}
Optional.ofNullable(data.getProblemLevel())
.filter(StringUtils::isNotBlank)
.ifPresent(problemLevel -> queryWrapper.le(DfYhV2::getProblemLevel, problemLevel));
if (StringUtils.isNotBlank(data.getProblemLevel())) {
queryWrapper.eq(DfYhV2::getProblemLevel, data.getProblemLevel());
}
Optional.ofNullable(data.getRecordId())
.filter(StringUtils::isBlank)
@ -197,10 +198,16 @@ public class DfYhV2Service extends DefaultApprovalBusinessService<DfYhV2Mapper,
private void synRecordStatus(String formId, String status){
DfYhV2 byId = getById(formId);
Wrapper<DfCheckingRecord> wp = Wrappers.<DfCheckingRecord>lambdaUpdate()
.eq(DfCheckingRecord::getId, byId.getRecordId())
.set(DfCheckingRecord::getStatus, status);
dfCheckingRecordV2Mapper.update(null,wp);
List<DfYhV2> list = list(new LambdaQueryWrapper<DfYhV2>().eq(DfYhV2::getRecordId, byId.getRecordId()));
if (CollectionUtils.isNotEmpty(list) && !list.isEmpty()) {
long count = list.stream().filter(e -> Objects.equals(DfYhV2StatusEnum.ACCEPTED.getValue(), e.getStatus())).count();
if (count+1==list.size()) {
Wrapper<DfCheckingRecord> wp = Wrappers.<DfCheckingRecord>lambdaUpdate()
.eq(DfCheckingRecord::getId, byId.getRecordId())
.set(DfCheckingRecord::getStatus, status);
dfCheckingRecordV2Mapper.update(null,wp);
}
}
}
@Override

6
shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingProblemV2Controller.java

@ -1,9 +1,8 @@
package com.kms.yxgh.sz.controller.v2;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.sz.dto.v2.SzProblemV2Dto;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.service.SzCheckingProblemV2Service;
import com.shuili.common.core.domain.SearchParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
@Api(tags = "水闸巡查缺陷v2")
public class SzCheckingProblemV2Controller {
private final SzCheckingProblemV2Service szCheckingProblemV2Service;
/**
@ -27,7 +27,7 @@ public class SzCheckingProblemV2Controller {
@PostMapping("/list")
@ApiOperation("水闸巡查缺陷列表v2")
public IPage<SzProblemV2Dto> list(@RequestBody SearchParam<SzRecordSearchV2Dto> sp) {
return new Page<>();
return szCheckingProblemV2Service.list(sp);
}
}

10
shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingRecordV2Controller.java

@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.base.Response;
import com.kms.yxgh.base.UpdateGroup;
import com.kms.yxgh.df.service.DfCheckingRecordV2Service;
import com.kms.yxgh.sz.dto.v2.SzRecordDetailV2Dto;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.service.SzCheckingRecordV2Service;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.enums.BusinessType;
@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
@Api(tags = "水闸巡视检查记录v2")
public class SzCheckingRecordV2Controller {
private final SzCheckingRecordV2Service szCheckingRecordV2Service;
/**
* 查询堤防巡视检查记录列表
@ -29,13 +32,13 @@ public class SzCheckingRecordV2Controller {
@PostMapping("/list")
@ApiOperation("水闸巡视检查记录列表v2")
public IPage<SzRecordDetailV2Dto> list(@RequestBody SearchParam<SzRecordSearchV2Dto> sp) {
return new Page<>();
return szCheckingRecordV2Service.list(sp);
}
@ApiOperation("水闸巡视检查记录详情v2")
@GetMapping(value = "/{id}")
public Response<SzRecordDetailV2Dto> getInfo(@PathVariable("id") String id) {
return Response.ok();
return Response.ok(szCheckingRecordV2Service.getInfo(id));
}
@ApiOperation("水闸巡视检查记录新增或修改v2")
@ -44,7 +47,8 @@ public class SzCheckingRecordV2Controller {
public Response<SzRecordDetailV2Dto> edit(@Validated(UpdateGroup.class)
@RequestBody SzRecordDetailV2Dto szRecord,
@PathVariable("commit") Boolean commit) {
return Response.ok();
return Response.ok(szCheckingRecordV2Service.edit(szRecord,commit));
}
@ApiOperation("水闸巡视检查记录删除v2")

13
shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingV2Controller.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.base.Response;
import com.kms.yxgh.sz.dto.v2.SzV2CheckingDto;
import com.kms.yxgh.sz.dto.v2.SzV2CheckingSearchDto;
import com.kms.yxgh.sz.service.SzCheckingLineService;
import com.kms.yxgh.sz.service.SzCheckingV2Service;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.enums.BusinessType;
@ -23,38 +25,39 @@ import org.springframework.web.bind.annotation.*;
@Api(tags = "水闸巡查项目v2")
public class SzCheckingV2Controller {
private final SzCheckingV2Service szCheckingV2Service;
@PostMapping("/list")
@ApiOperation("水闸项目列表")
public IPage<SzV2CheckingDto> list(@RequestBody SearchParam<SzV2CheckingSearchDto> sp) {
return new Page<>();
return szCheckingV2Service.list(sp);
}
@ApiOperation("水闸巡查项目详情")
@GetMapping(value = "/{id}")
public Response<SzV2CheckingDto> getInfo(@PathVariable("id") String id) {
return Response.ok();
return Response.ok(szCheckingV2Service.getInfo(id));
}
@Log(title = "水闸巡查项目新增", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ApiOperation("水闸巡查项目新增")
public Response<SzV2CheckingDto> add(@RequestBody SzV2CheckingDto szV2Ck) {
return Response.ok();
return Response.ok(szCheckingV2Service.add(szV2Ck));
}
@ApiOperation("水闸巡查项目修改")
@Log(title = "水闸巡查项目修改", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public Response<SzV2CheckingDto> edit(@RequestBody SzV2CheckingDto szV2Ck) {
return Response.ok();
return Response.ok(szCheckingV2Service.edit(szV2Ck));
}
@ApiOperation("水闸巡查项目删除")
@Log(title = "水闸巡查项目删除", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public Response<Boolean> remove(@PathVariable("ids") String[] ids) {
return Response.ok();
return Response.ok(szCheckingV2Service.myRemove(ids));
}
}

21
shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzYhV2Controller.java

@ -1,14 +1,14 @@
package com.kms.yxgh.sz.controller.v2;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.base.Response;
import com.kms.yxgh.base.UpdateGroup;
import com.kms.yxgh.common.ApprovalTypeEnum;
import com.kms.yxgh.common.controller.ApprovalAbstractController;
import com.kms.yxgh.df.dto.v2.*;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.dto.v2.SzYhApproveDto;
import com.kms.yxgh.sz.dto.v2.SzYhDetailV2Dto;
import com.kms.yxgh.sz.dto.v2.SzYhListV2Dto;
import com.kms.yxgh.sz.service.SzYhV2Service;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.enums.BusinessType;
@ -17,25 +17,28 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import static com.kms.yxgh.common.ApprovalTypeEnum.YH_V2_RECORD;
import static com.kms.yxgh.common.ApprovalTypeEnum.*;
@RestController
@AllArgsConstructor
@RequestMapping("/run/sz/v2/yh")
@Api(tags = "水闸养护v2")
public class SzYhV2Controller extends ApprovalAbstractController<DfRecordSearchV2Dto, DfYhApproveDto> {
public class SzYhV2Controller extends ApprovalAbstractController<SzRecordSearchV2Dto, SzYhApproveDto> {
private final SzYhV2Service szYhV2Service;
@PostMapping("/list")
@ApiOperation("水闸养护列表v2")
public IPage<SzYhListV2Dto> list(@RequestBody SearchParam<SzRecordSearchV2Dto> sp) {
return new Page<>();
return szYhV2Service.list(sp);
}
@ApiOperation("水闸养护详情v2")
@GetMapping(value = "/{id}")
public Response<SzYhDetailV2Dto> getInfo(@PathVariable("id") String id) {
return Response.ok();
return Response.ok(szYhV2Service.getInfo(id));
}
@ApiOperation("水闸养护新增或修改v2")
@ -44,18 +47,18 @@ public class SzYhV2Controller extends ApprovalAbstractController<DfRecordSearchV
public Response<SzYhDetailV2Dto> edit(@Validated(UpdateGroup.class)
@RequestBody SzYhDetailV2Dto szYh,
@PathVariable("commit") Boolean commit) {
return Response.ok();
return Response.ok(szYhV2Service.edit(szYh,commit));
}
@ApiOperation("水闸养护删除v2")
@Log(title = "水闸养护删除v2", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public Response<Boolean> myRemove(@PathVariable("ids") String[] ids) {
return Response.ok();
return Response.ok(szYhV2Service.myRemove(ids));
}
@Override
public ApprovalTypeEnum getApprovalType() {
return YH_V2_RECORD;
return SZ_V2_YH_RECORD;
}
}

143
shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingProblemV2.java

@ -0,0 +1,143 @@
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_xcqx
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_sz_xcqx")
@Data
@ApiModel("缺陷记录")
public class SzCheckingProblemV2 extends SyBaseEntity {
private static final long serialVersionUID = 1L;
private String itemId;
/**
* 问题位置
*/
@ApiModelProperty("部位")
private String parts;
@ApiModelProperty("问题等级")
private String problemLevel;
/**
* 项目id
*/
@ApiModelProperty("项目id")
private String checkingId;
/**
* 记录id
*/
@ApiModelProperty("记录id")
private String recordId;
/**
* 巡查状态字典:patrol_maintenance_status
*/
@ApiModelProperty("巡查状态字典:patrol_maintenance_status")
private String status;
/**
* 巡查项目名称
*/
@ApiModelProperty("巡查项目名称")
private String checkingName;
/**
* 巡查类型 字典patrol_maintenance_type
*/
@ApiModelProperty("巡查类型 字典:patrol_maintenance_type")
private String type;
/**
* 巡查类别字典key_jf_patrol_category
*/
@ApiModelProperty("巡查类别字典:patrol_maintenance_category")
private String category;
/**
* 巡查责任人
*/
@ApiModelProperty("巡查责任人")
private String dutyHolderName;
/**
* 巡查责任人id
*/
@ApiModelProperty("巡查责任人id")
private String dutyHolderId;
/**
* 堤防代码
*/
@ApiModelProperty("堤防代码")
private String wagaCode;
/**
* 堤防代码名称
*/
@ApiModelProperty("堤防代码名称")
private String wagaName;
/**
* 巡查开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("巡查开始时间")
private Date startDate;
/**
* 巡查开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("巡查结束时间")
private Date endDate;
/**
* 问题位置
*/
@ApiModelProperty("问题位置")
private String position;
@ApiModelProperty("检查内容")
private String content;
/**
* 文档
*/
@ApiModelProperty("文档")
private String doc;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private String createUid;
/**
* 附加配置
*/
@ApiModelProperty("备注")
private String remark;
}

121
shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingRecord.java

@ -0,0 +1,121 @@
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_df_xsxcjl
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_sz_xsxcjl")
@Data
@ApiModel("水闸项目管理记录")
public class SzCheckingRecord extends SyBaseEntity {
private static final long serialVersionUID = 1L;
/**
* 开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private Date startDate;
/**
* 结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private Date endDate;
/**
* 巡查范围
*/
@ApiModelProperty("巡查范围")
private String scope;
/**
* 项目id
*/
@ApiModelProperty("项目id")
private String checkingId;
/**
* 巡查状态字典:patrol_maintenance_status
*/
@ApiModelProperty("巡查状态字典:patrol_maintenance_status")
private String status;
/**
* 巡查责任人
*/
@ApiModelProperty("巡查责任人")
private String dutyHolderName;
/**
* 巡查责任人id
*/
@ApiModelProperty("巡查责任人id")
private String dutyHolderId;
/**
* 项目名称
*/
@ApiModelProperty("项目名称")
private String checkingName;
/**
* 巡查类型 字典patrol_maintenance_type
*/
@ApiModelProperty("巡查类型 字典:patrol_maintenance_type")
private String type;
/**
* 巡查类别字典key_jf_patrol_category
*/
@ApiModelProperty("巡查类别字典:patrol_maintenance_category")
private String category;
/**
* 堤防代码
*/
@ApiModelProperty("水闸代码")
private String wagaCode;
/**
* 堤防代码名称
*/
@ApiModelProperty("水闸代码名称")
private String wagaName;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private String createUid;
/**
* 附加配置
*/
@ApiModelProperty("备注")
private String remark;
/**
* 创建人名称
*/
@ApiModelProperty("创建人名称")
private String createName;
}

41
shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectItem.java

@ -0,0 +1,41 @@
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;
/**
* 水闸项目管理子项
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_sz_xcitem")
@Data
@ApiModel("水闸项目管理子项")
public class SzCheckingV2ProjectItem extends SyBaseEntity {
private static final long serialVersionUID = 1L;
/**
* 项目id
*/
@ApiModelProperty("项目id")
private String checkingId;
/**
* 检查部位
*/
@ApiModelProperty("检查部位")
private String parts;
/**
* 检查内容
*/
@ApiModelProperty("检查内容")
private String content;
}

68
shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectManage.java

@ -0,0 +1,68 @@
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_df_hdjh
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_sz_xmgl")
@Data
@ApiModel("水闸项目管理")
public class SzCheckingV2ProjectManage extends SyBaseEntity {
private static final long serialVersionUID = 1L;
/**
* 堤防代码
*/
@ApiModelProperty("水闸代码")
private String wagaCode;
/**
* 堤防代码名称
*/
@ApiModelProperty("水闸代码名称")
private String wagaName;
/**
* 项目名称
*/
@ApiModelProperty("项目名称")
private String name;
/**
* 巡查类型 字典patrol_maintenance_type
*/
@ApiModelProperty("巡查类型 字典:patrol_maintenance_type")
private String type;
/**
* 巡查类别字典key_jf_patrol_category
*/
@ApiModelProperty("巡查类别字典:patrol_maintenance_category")
private String category;
/**
* 附加配置
*/
@ApiModelProperty("备注")
private String remark;
/**
* 创建人名称
*/
@ApiModelProperty("创建人名称")
private String createName;
}

136
shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhV2.java

@ -0,0 +1,136 @@
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_df_xcqx
*
* @author sy
* @date 2024-01-04
*/
@TableName("bs_sgc_sz_xcyj")
@Data
@ApiModel("水闸巡视养护管理表")
public class SzYhV2 extends SyBaseEntity {
/**
* 巡查项目id
*/
@ApiModelProperty("巡查项目id")
private String checkingId;
/**
* 缺陷id
*/
@ApiModelProperty("缺陷id")
private String problemId;
/**
* 文档
*/
@ApiModelProperty("文档")
private String doc;
/**
* 维养责任人id
*/
@ApiModelProperty("维养责任人id")
private String dutyHolderId;
/**
* 维养责任人名称
*/
@ApiModelProperty("维养责任人名称")
private String dutyHolderName;
/**
* 问题等级
*/
@ApiModelProperty("水闸问题等级")
private String problemLevel;
/**
* 记录id
*/
@ApiModelProperty("记录id")
private String recordId;
/**
* 巡查状态字典:patrol_maintenance_status
*/
@ApiModelProperty("巡查状态字典:patrol_maintenance_status")
private String status;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 巡查类型 字典patrol_maintenance_type
*/
@ApiModelProperty("巡查类型 字典:patrol_maintenance_type")
private String type;
/**
* 巡查类别字典key_jf_patrol_category
*/
@ApiModelProperty("巡查类别字典:patrol_maintenance_category")
private String category;
/**
* 堤防代码
*/
@ApiModelProperty("堤防代码")
private String wagaCode;
/**
* 堤防代码名称
*/
@ApiModelProperty("水闸代码名称")
private String wagaName;
/**
* 维养开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("维养开始时间")
private Date startDate;
/**
* 维养结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("维养结束时间")
private Date endDate;
/**
* 创建人id
*/
@ApiModelProperty("创建人id")
private String createUid;
/**
* 附加配置
*/
@ApiModelProperty("备注")
private String remark;
private String content;
}

2
shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzRecordDetailV2Dto.java

@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.base.AddGroup;
import com.kms.yxgh.base.UpdateGroup;
import com.kms.yxgh.common.dto.DocV2Dto;
import com.kms.yxgh.sz.dto.SzCheckingDetailDto;
import com.kms.yxgh.sz.dto.v2.SzCheckingDetailDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

11
shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzV2CheckingDto.java

@ -1,6 +1,7 @@
package com.kms.yxgh.sz.dto.v2;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.df.dto.DfCheckingDetailDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -16,9 +17,9 @@ public class SzV2CheckingDto {
@ApiModelProperty("水闸编码")
private String wagaCode;
@ApiModelProperty("水闸名称")
private String wageName;
@ApiModelProperty("类型")
private String wageType;
private String wagaName;
@ApiModelProperty("水闸类型")
private String wagaType;
@NotNull
@ApiModelProperty("主键")
@ -27,10 +28,10 @@ public class SzV2CheckingDto {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("类型")
@ApiModelProperty("巡查类型")
private String type;
@ApiModelProperty("类别")
@ApiModelProperty("巡查类别")
private String category;
@ApiModelProperty("创建时间")

25
shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzYhApproveDto.java

@ -0,0 +1,25 @@
package com.kms.yxgh.sz.dto.v2;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "水闸养护验收列表信息v2")
@Data
public class SzYhApproveDto extends SzV2CheckingDto {
@ApiModelProperty("巡查责任人")
private String dutyHolderId;
@ApiModelProperty("巡查责任人名称")
private String dutyHolderName;
@ApiModelProperty("问题级别")
private String problemLevel;
@ApiModelProperty("记录id")
private String recordId;
@ApiModelProperty("问题id")
private String problemId;
@ApiModelProperty("状态")
private String status;
}

80
shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingProblemV2Mapper.java

@ -0,0 +1,80 @@
package com.kms.yxgh.sz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.common.dto.CountDateDto;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.common.enums.PatrolMaintenanceCategory;
import com.kms.yxgh.sz.domain.SzCheckingProblemV2;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* SzCheckingProblemV2Mapper
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface SzCheckingProblemV2Mapper extends BaseMapper<SzCheckingProblemV2> {
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_sz_xcqx xm " +
"left join att_dike_base base on base.dike_code=xm.waga_code " +
"where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"group by base.adcd " +
"</script>")
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp);
@Select("<script> " +
"select DATE_FORMAT(create_time, '%Y-%m-%d') as myDate,count(*) as mySum from bs_sgc_sz_xcqx where 1=1 " +
"<if test='data.startTime != null'> and create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and create_time &lt;= #{data.endTime} </if> " +
"<if test='data.code != null and data.code != \"\"'>" +
"and dike_code = #{data.code} " +
"</if>" +
"<if test='category != null'>" +
"and category = #{category.value} " +
"</if>" +
"group by DATE_FORMAT(create_time, '%Y-%m-%d') " +
"</script>")
List<CountDateDto> countDate(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category);
@Select("<script> " +
"select DATE_FORMAT(create_time, '%Y-%m-%d') as myDate,count(*) as mySum from bs_sgc_sz_xcqx where 1=1 " +
"<if test='data.startTime != null'> and create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and create_time &lt;= #{data.endTime} </if> " +
"<if test='data.code != null and data.code != \"\"'>" +
"and dike_code = #{data.code} " +
"</if>" +
"<if test='category != null'>" +
"and category = #{category.value} " +
"</if>" +
"group by DATE_FORMAT(create_time, '%Y-%m-%d') " +
"</script>")
List<CountDateDto> countLevel(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category);
@Select("<script> " +
"select DATE_FORMAT(create_time, '%Y-%m-%d') as myDate,count(*) as mySum from bs_sgc_sz_xcqx where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.code != null and data.code != \"\"'>" +
"and dike_code = #{data.code} " +
"</if>" +
"group by DATE_FORMAT(create_time, '%Y-%m-%d') " +
"</script>")
List<CountDateDto> countQx(@Param("data") ObjectStatisticQueDto sp);
}

68
shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingRecordV2Mapper.java

@ -0,0 +1,68 @@
package com.kms.yxgh.sz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.common.dto.CountDateDto;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.common.enums.PatrolMaintenanceCategory;
import com.kms.yxgh.df.domain.DfCheckingRecord;
import com.kms.yxgh.sz.domain.SzCheckingRecord;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 害堤动物防治计划Mapper接口
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface SzCheckingRecordV2Mapper extends BaseMapper<SzCheckingRecord> {
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_sz_xsxcjl xm " +
"left join att_dike_base base on base.dike_code=xm.waga_code " +
"where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"<if test='category != null'>" +
"and xm.category = #{category.value} " +
"</if>" +
"group by base.adcd " +
"</script>")
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category);
@Select("<script> " +
"select DATE_FORMAT(create_time, '%Y-%m-%d') as myDate,count(*) as mySum from bs_sgc_sz_xsxcjl where 1=1 " +
"<if test='data.startTime != null' > and create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and create_time &lt;= #{data.endTime} </if> " +
"<if test='data.code != null and data.code != \"\"'>" +
"and dike_code = #{data.code} " +
"</if>" +
"<if test='category != null'>" +
"and category = #{category.value} " +
"</if>" +
"group by DATE_FORMAT(create_time, '%Y-%m-%d') " +
"</script>")
List<CountDateDto> countDateGroup(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category);
@Select("<script> " +
"select count(distinct waga_code) from bs_sgc_sz_xsxcjl " +
"<if test='data.startTime != null' > and create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and create_time &lt;= #{data.endTime} </if> " +
"<if test='data.code != null and data.code != \"\"'>" +
"and waga_code = #{data.code} " +
"</if>" +
"</script>"
)
int countXm(@Param("data") ObjectStatisticQueDto sp);
}

36
shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2Mapper.java

@ -0,0 +1,36 @@
package com.kms.yxgh.sz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.common.dto.CountDto;
import com.kms.yxgh.common.dto.ObjectStatisticQueDto;
import com.kms.yxgh.sz.domain.SzCheckingV2ProjectManage;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* SzCheckingV2Mapper
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface SzCheckingV2Mapper extends BaseMapper<SzCheckingV2ProjectManage> {
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_sz_xmgl xm " +
"left join att_dike_base base on base.dike_code=xm.waga_code " +
"where 1=1 " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"group by base.adcd " +
"</script>"
)
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp);
}

18
shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2ProjectItemMapper.java

@ -0,0 +1,18 @@
package com.kms.yxgh.sz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kms.yxgh.df.domain.DfCheckingV2ProjectItem;
import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem;
import org.springframework.stereotype.Repository;
/**
* SzCheckingV2ProjectItemMapper
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface SzCheckingV2ProjectItemMapper extends BaseMapper<SzCheckingV2ProjectItem> {
}

53
shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhV2Mapper.java

@ -0,0 +1,53 @@
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.common.dto.*;
import com.kms.yxgh.sz.domain.SzYhV2;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.dto.v2.SzYhApproveDto;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* DfYhV2Mapper
*
* @author sy
* @date 2024-01-04
*/
@Repository
public interface SzYhV2Mapper extends BaseMapper<SzYhV2> {
IPage<ApprovalDetailDto<SzYhApproveDto>> approvalSearchPage(Page<SzRecordSearchV2Dto> page, @Param("dto") ApprovalSearchDto<SzRecordSearchV2Dto> data);
@Select("<script> " +
"select base.adcd code ,count(1) sum " +
"from bs_sgc_sz_xcyj xm " +
"left join att_dike_base base on base.dike_code=xm.waga_code " +
"where 1=1 " +
"<if test='data.startTime != null'> and xm.create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and xm.create_time &lt;= #{data.endTime} </if> " +
"<if test='data.adcdQx != null and data.adcdQx != \"\"'>" +
"and base.adcd like concat(#{data.adcdQx}, '%') " +
"</if>" +
"group by base.adcd " +
"</script>")
List<CountDto> count(@Param("data") ObjectStatisticQueDto sp);
@Select("<script> " +
"select DATE_FORMAT(create_time, '%Y-%m-%d') as myDate,count(*) as mySum from bs_sgc_sz_xcyj where 1=1 " +
"<if test='data.startTime != null'> and create_time &gt;= #{data.startTime} </if> " +
"<if test='data.endTime != null'> and create_time &lt;= #{data.endTime} </if> " +
"<if test='data.code != null and data.code != \"\"'>" +
"and dike_code = #{data.code} " +
"</if>" +
"group by DATE_FORMAT(create_time, '%Y-%m-%d') " +
"</script>")
List<CountDateDto> countYhDto(@Param("data") ObjectStatisticQueDto sp);
}

111
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingProblemV2Service.java

@ -0,0 +1,111 @@
package com.kms.yxgh.sz.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.df.domain.DfCheckingProblemV2;
import com.kms.yxgh.df.dto.v2.DfProblemV2Dto;
import com.kms.yxgh.df.dto.v2.DfRecordSearchV2Dto;
import com.kms.yxgh.sz.domain.SzCheckingProblemV2;
import com.kms.yxgh.sz.dto.v2.SzProblemV2Dto;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.mapper.SzCheckingProblemV2Mapper;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.BeanUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import static com.kms.yxgh.common.enums.DfYhV2StatusEnum.DURING_INSPECTION;
/**
* 项目管理记录
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class SzCheckingProblemV2Service extends BaseService<SzCheckingProblemV2Mapper, SzCheckingProblemV2> {
public IPage<SzProblemV2Dto> list(SearchParam<SzRecordSearchV2Dto> sp) {
// 分页参数
Page<SzCheckingProblemV2> page = new Page<>(sp.getPageNum(), sp.getPageSize());
SzRecordSearchV2Dto data = sp.getData();
// 构建查询条件
LambdaQueryWrapper<SzCheckingProblemV2> queryWrapper = new LambdaQueryWrapper<SzCheckingProblemV2>();
if (!ObjectUtils.isEmpty(data)) {
Optional.ofNullable(data.getCategory())
.filter(StringUtils::isNotBlank)
.ifPresent(category -> queryWrapper.eq(SzCheckingProblemV2::getCategory, category));
Optional.ofNullable(data.getType())
.filter(StringUtils::isNotBlank)
.ifPresent(type -> queryWrapper.eq(SzCheckingProblemV2::getType, type));
Optional.ofNullable(data.getName())
.filter(StringUtils::isNotBlank)
.ifPresent(name -> queryWrapper.like(SzCheckingProblemV2::getCheckingName, name));
Optional.ofNullable(data.getDutyHolder())
.filter(StringUtils::isNotBlank)
.ifPresent(dutyHolder -> queryWrapper.like(SzCheckingProblemV2::getDutyHolderName, dutyHolder));
Optional.ofNullable(data.getStatus())
.filter(StringUtils::isNotBlank)
.ifPresent(status -> queryWrapper.like(SzCheckingProblemV2::getStatus, status));
if (!Objects.isNull(data.getStartDate())) {
queryWrapper.ge(SzCheckingProblemV2::getStartDate, data.getStartDate());
}
if (!Objects.isNull(data.getEndDate())) {
queryWrapper.le(SzCheckingProblemV2::getEndDate, data.getEndDate());
}
Optional.ofNullable(data.getProblemLevel())
.filter(StringUtils::isNotBlank)
.ifPresent(problemLevel -> queryWrapper.eq(SzCheckingProblemV2::getProblemLevel, problemLevel));
Optional.ofNullable(data.getRecordId())
.filter(StringUtils::isBlank)
.ifPresent(recordId -> queryWrapper.eq(SzCheckingProblemV2::getProblemLevel, recordId));
}
queryWrapper.ne(SzCheckingProblemV2::getStatus, DURING_INSPECTION.getValue());
// 查询分页数据
Page<SzCheckingProblemV2> queryPage = page(page, queryWrapper);
if (queryPage == null) {
return new Page<>();
}
// 转换为 DTO 分页对象
Page<SzProblemV2Dto> dtoPage = new Page<>();
BeanUtils.copyProperties(queryPage, dtoPage);
// 处理查询结果
List<SzProblemV2Dto> vos = queryPage.getRecords().stream()
.map(record -> {
SzProblemV2Dto dto = new SzProblemV2Dto();
BeanUtils.copyProperties(record, dto);
return dto;
})
.collect(Collectors.toList());
dtoPage.setRecords(vos);
return dtoPage;
}
}

257
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingRecordV2Service.java

@ -0,0 +1,257 @@
package com.kms.yxgh.sz.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.common.enums.DfYhV2StatusEnum;
import com.kms.yxgh.df.service.DfCheckingV2Service;
import com.kms.yxgh.sz.domain.SzCheckingProblemV2;
import com.kms.yxgh.sz.domain.SzCheckingRecord;
import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem;
import com.kms.yxgh.sz.domain.SzYhV2;
import com.kms.yxgh.sz.dto.v2.SzRecordDetailV2Dto;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.mapper.SzCheckingRecordV2Mapper;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.BeanUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* 水闸项目管理记录
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class SzCheckingRecordV2Service extends BaseService<SzCheckingRecordV2Mapper, SzCheckingRecord> {
private final SzYhV2Service szYhV2Service;
private final SzCheckingV2ProjectItemV2Service szCheckingV2ProjectItemV2Service;
private final SzCheckingProblemV2Service szCheckingProblemV2Service;
public IPage<SzRecordDetailV2Dto> list(SearchParam<SzRecordSearchV2Dto> sp) {
// 分页参数
Page<SzCheckingRecord> page = new Page<>(sp.getPageNum(), sp.getPageSize());
SzRecordSearchV2Dto data = sp.getData();
// 构建查询条件
LambdaQueryWrapper<SzCheckingRecord> queryWrapper = new LambdaQueryWrapper<>();
if (!ObjectUtils.isEmpty(data)) {
Optional.ofNullable(data.getCategory())
.filter(StringUtils::isNotBlank)
.ifPresent(category -> queryWrapper.eq(SzCheckingRecord::getCategory, category));
Optional.ofNullable(data.getType())
.filter(StringUtils::isNotBlank)
.ifPresent(type -> queryWrapper.eq(SzCheckingRecord::getType, type));
Optional.ofNullable(data.getName())
.filter(StringUtils::isNotBlank)
.ifPresent(name -> queryWrapper.like(SzCheckingRecord::getCheckingName, name));
Optional.ofNullable(data.getDutyHolder())
.filter(StringUtils::isNotBlank)
.ifPresent(dutyHolder -> queryWrapper.like(SzCheckingRecord::getDutyHolderName, dutyHolder));
Optional.ofNullable(data.getStatus())
.filter(StringUtils::isNotBlank)
.ifPresent(status -> queryWrapper.like(SzCheckingRecord::getStatus, status));
if (!Objects.isNull(data.getStartDate())) {
queryWrapper.ge(SzCheckingRecord::getStartDate, data.getStartDate());
}
if (!Objects.isNull(data.getEndDate())) {
queryWrapper.le(SzCheckingRecord::getEndDate, data.getEndDate());
}
}
// 查询分页数据
Page<SzCheckingRecord> queryPage = page(page, queryWrapper);
if (queryPage == null) {
return new Page<>();
}
// 转换为 DTO 分页对象
Page<SzRecordDetailV2Dto> dtoPage = new Page<>();
BeanUtils.copyProperties(queryPage, dtoPage);
// 处理查询结果
List<SzRecordDetailV2Dto> vos = queryPage.getRecords().stream()
.map(record -> {
SzRecordDetailV2Dto dto = new SzRecordDetailV2Dto();
BeanUtils.copyProperties(record, dto);
return dto;
})
.collect(Collectors.toList());
dtoPage.setRecords(vos);
return dtoPage;
}
public SzRecordDetailV2Dto getInfo(String id) {
SzRecordDetailV2Dto dto = new SzRecordDetailV2Dto();
SzCheckingRecord szCheckingRecord = getById(id);
if (szCheckingRecord == null) {
return dto;
}
BeanUtils.copyProperties(szCheckingRecord, dto);
List<SzCheckingV2ProjectItem> items = szCheckingV2ProjectItemV2Service.list(new LambdaQueryWrapper<SzCheckingV2ProjectItem>()
.eq(SzCheckingV2ProjectItem::getCheckingId,szCheckingRecord.getCheckingId()));
dto.setItems(items.stream()
.map(SzCheckingV2Service::convertToItemDto)
.collect(Collectors.toList()));
List<SzCheckingProblemV2> recordsList = szCheckingProblemV2Service.list(new LambdaQueryWrapper<SzCheckingProblemV2>()
.eq(SzCheckingProblemV2::getRecordId, szCheckingRecord.getId()));
List<SzRecordDetailV2Dto.SzRecordItemDetailV2Dto> dtoList = new ArrayList<>();
for (SzCheckingProblemV2 record : recordsList) {
SzRecordDetailV2Dto.SzRecordItemDetailV2Dto detailV2Dto = new SzRecordDetailV2Dto.SzRecordItemDetailV2Dto();
if (null != record.getParts()) {
detailV2Dto.setParts(DfCheckingV2Service.getStringList(record.getParts().split(",")));
}
if (null != record.getDoc()) {
detailV2Dto.setProblemImages(DfCheckingV2Service.getStringList(record.getDoc().split(",")));
}
detailV2Dto.setItemId(record.getItemId());
detailV2Dto.setId(record.getId());
detailV2Dto.setPosition(record.getPosition());
detailV2Dto.setContent(record.getContent());
detailV2Dto.setProblemLevel(record.getProblemLevel());
detailV2Dto.setStatus(record.getStatus());
dtoList.add(detailV2Dto);
}
dto.setProblems(dtoList);
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzRecordDetailV2Dto edit(SzRecordDetailV2Dto szRecord, Boolean commit) {
// 先删后加
myRemovePraIds(szRecord);
if (commit) {
SzCheckingRecord szCheckingRecord = new SzCheckingRecord();
BeanUtils.copyProperties(szRecord, szCheckingRecord);
// 提交为已巡检
szCheckingRecord.setStatus(DfYhV2StatusEnum.INSPECTED.getValue());
// 如果相关缺陷大于一条就是养护中
if (!szRecord.getProblems().isEmpty()) {
szCheckingRecord.setStatus(DfYhV2StatusEnum.UNDER_MAINTENANCE.getValue());
} else {
// 提交时缺陷无数据就是无缺陷
szCheckingRecord.setStatus(DfYhV2StatusEnum.NO_DEFECTS.getValue());
}
mySaveOrUpdate(szCheckingRecord);
szRecord.setStatus(szCheckingRecord.getStatus());
szRecord.setRecordId(szCheckingRecord.getId());
szCheckingProblemV2Service.saveOrUpdateBatch(convertToImages(szRecord));
return szRecord;
} else {
SzCheckingRecord szCheckingRecord = new SzCheckingRecord();
BeanUtils.copyProperties(szRecord, szCheckingRecord);
// 未提交维巡查中
szCheckingRecord.setStatus(DfYhV2StatusEnum.DURING_INSPECTION.getValue());
mySaveOrUpdate(szCheckingRecord);
szRecord.setStatus(DfYhV2StatusEnum.DURING_INSPECTION.getValue());
szRecord.setRecordId(szCheckingRecord.getId());
szCheckingProblemV2Service.saveOrUpdateBatch(convertToImages(szRecord));
return szRecord;
}
}
public void mySaveOrUpdate (SzCheckingRecord szCheckingRecord) {
Boolean flag = org.springframework.util.StringUtils.isEmpty(szCheckingRecord.getId()) ? Boolean.TRUE :Boolean.FALSE;
if (flag) {
save(szCheckingRecord);
}else {
updateById(szCheckingRecord);
}
}
public void myRemovePraIds(SzRecordDetailV2Dto dfRecord) {
List<String> ids = dfRecord.getProblems()
.stream()
.map(SzRecordDetailV2Dto.SzRecordItemDetailV2Dto::getId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(ids)) {
szCheckingProblemV2Service.remove(new LambdaQueryWrapper<SzCheckingProblemV2>().in(SzCheckingProblemV2::getId, ids));
szYhV2Service.remove(new LambdaQueryWrapper<SzYhV2>().in(SzYhV2::getProblemId, ids));
}
}
public static List<SzCheckingProblemV2> convertToImages(SzRecordDetailV2Dto dfRecord) {
List<SzCheckingProblemV2> szCheckingProblemV2s = new ArrayList<>();
dfRecord.getProblems().forEach(e -> {
SzCheckingProblemV2 szCheckingProblemV2 = new SzCheckingProblemV2();
BeanUtils.copyProperties(e, szCheckingProblemV2);
szCheckingProblemV2.setCheckingId(dfRecord.getCheckingId());
szCheckingProblemV2.setRecordId(dfRecord.getRecordId());
szCheckingProblemV2.setCheckingName(dfRecord.getCheckingName());
szCheckingProblemV2.setWagaCode(dfRecord.getWagaCode());
szCheckingProblemV2.setWagaName(dfRecord.getWagaName());
szCheckingProblemV2.setDutyHolderName(dfRecord.getCreateName());
szCheckingProblemV2.setDutyHolderId(dfRecord.getCreateUid());
szCheckingProblemV2.setStartDate(dfRecord.getStartDate());
szCheckingProblemV2.setEndDate(dfRecord.getEndDate());
szCheckingProblemV2.setType(dfRecord.getType());
szCheckingProblemV2.setCategory(dfRecord.getCategory());
szCheckingProblemV2.setStatus(dfRecord.getStatus());
szCheckingProblemV2.setItemId(e.getItemId());
if (null != e.getParts()) {
szCheckingProblemV2.setParts(String.join(",", e.getParts()));
}
if (null != e.getProblemImages()) {
szCheckingProblemV2.setDoc(String.join(",", e.getProblemImages()));
}
szCheckingProblemV2s.add(szCheckingProblemV2);
});
return szCheckingProblemV2s;
}
@Transactional(rollbackFor = Exception.class)
public Boolean myRemove(String[] ids) {
if (null != ids && ids.length > 0) {
int count = szCheckingProblemV2Service.count(new LambdaQueryWrapper<SzCheckingProblemV2>()
.in(SzCheckingProblemV2::getCheckingId
, SzCheckingV2Service.getIntList(ids))
);
if (count > 0) {
throw new RuntimeException("请先删除项目子项");
}
szCheckingProblemV2Service.remove(new LambdaQueryWrapper<SzCheckingProblemV2>()
.in(SzCheckingProblemV2::getCheckingId, SzCheckingV2Service.getIntList(ids)));
return remove(new LambdaQueryWrapper<SzCheckingRecord>()
.in(SzCheckingRecord::getId, SzCheckingV2Service.getIntList(ids)));
}
return Boolean.FALSE;
}
}

19
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2ProjectItemV2Service.java

@ -0,0 +1,19 @@
package com.kms.yxgh.sz.service;
import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem;
import com.kms.yxgh.sz.mapper.SzCheckingV2ProjectItemMapper;
import com.shuili.common.core.service.BaseService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* 项目管理项
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class SzCheckingV2ProjectItemV2Service extends BaseService<SzCheckingV2ProjectItemMapper, SzCheckingV2ProjectItem> {
}

233
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2Service.java

@ -0,0 +1,233 @@
package com.kms.yxgh.sz.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.df.service.DfCheckingV2Service;
import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem;
import com.kms.yxgh.sz.domain.SzCheckingV2ProjectManage;
import com.kms.yxgh.sz.dto.v2.SzCheckingDetailDto;
import com.kms.yxgh.sz.dto.v2.SzV2CheckingDto;
import com.kms.yxgh.sz.dto.v2.SzV2CheckingSearchDto;
import com.kms.yxgh.sz.mapper.SzCheckingV2Mapper;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.core.service.BaseService;
import com.shuili.common.utils.BeanUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* 水闸项目管理
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class SzCheckingV2Service extends BaseService<SzCheckingV2Mapper, SzCheckingV2ProjectManage> {
private final SzCheckingV2ProjectItemV2Service szCheckingV2ProjectItemV2Service;
public IPage<SzV2CheckingDto> list(SearchParam<SzV2CheckingSearchDto> sp) {
// 分页参数
Page<SzCheckingV2ProjectManage> page = new Page<>(sp.getPageNum(), sp.getPageSize());
SzV2CheckingSearchDto data = sp.getData();
// 构建查询条件
LambdaQueryWrapper<SzCheckingV2ProjectManage> queryWrapper = new LambdaQueryWrapper<>();
if (!ObjectUtils.isEmpty(data)) {
Optional.ofNullable(data.getCategory())
.filter(StringUtils::isNotBlank)
.ifPresent(category -> queryWrapper.eq(SzCheckingV2ProjectManage::getCategory, category));
Optional.ofNullable(data.getType())
.filter(StringUtils::isNotBlank)
.ifPresent(type -> queryWrapper.eq(SzCheckingV2ProjectManage::getType, type));
Optional.ofNullable(data.getName())
.filter(StringUtils::isNotBlank)
.ifPresent(name -> queryWrapper.like(SzCheckingV2ProjectManage::getName, name));
}
// 查询分页数据
Page<SzCheckingV2ProjectManage> queryPage = page(page, queryWrapper);
if (queryPage == null) {
return new Page<>();
}
// 转换为 DTO 分页对象
Page<SzV2CheckingDto> dtoPage = new Page<>();
BeanUtils.copyProperties(queryPage, dtoPage);
// 处理查询结果
List<SzV2CheckingDto> vos = queryPage.getRecords().stream()
.map(record -> {
SzV2CheckingDto dto = new SzV2CheckingDto();
BeanUtils.copyProperties(record, dto);
return dto;
})
.collect(Collectors.toList());
// 获取关联的项目项
List<String> ids = vos.stream()
.map(SzV2CheckingDto::getId)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(ids)) {
return dtoPage;
}
List<SzCheckingV2ProjectItem> items =
szCheckingV2ProjectItemV2Service
.list(new LambdaQueryWrapper<SzCheckingV2ProjectItem>()
.in(SzCheckingV2ProjectItem::getCheckingId,ids));
// 将项目项关联到 DTO
vos.forEach(dto -> {
List<SzCheckingDetailDto.SzCheckingItemDto> itemDtos = items.stream()
.filter(item -> Objects.equals(item.getCheckingId(), dto.getId()))
.map(SzCheckingV2Service::convertToItemDto)
.collect(Collectors.toList());
dto.setItems(itemDtos);
});
dtoPage.setRecords(vos);
return dtoPage;
}
/**
* DfCheckingV2ProjectItem 转换为 DfCheckingDetailDto.DfCheckingItemDto
*
* @param item 原始对象
* @return 转换后的 DTO 对象
*/
public static SzCheckingDetailDto.SzCheckingItemDto convertToItemDto(SzCheckingV2ProjectItem item) {
SzCheckingDetailDto.SzCheckingItemDto itemDto = new SzCheckingDetailDto.SzCheckingItemDto();
itemDto.setId(item.getId());
itemDto.setContent(item.getContent());
// 处理 parts 字段
Optional.ofNullable(item.getParts())
.filter(StringUtils::isNotBlank)
.ifPresent(parts -> itemDto.setParts(Arrays.asList(parts.split(","))));
return itemDto;
}
public SzV2CheckingDto getInfo(String id) {
SzCheckingV2ProjectManage szCheckingV2ProjectManage = getById(id);
SzV2CheckingDto dto = new SzV2CheckingDto();
if (!Objects.isNull(szCheckingV2ProjectManage)) {
BeanUtils.copyProperties(szCheckingV2ProjectManage, dto);
List<SzCheckingV2ProjectItem> items = szCheckingV2ProjectItemV2Service
.list(new LambdaQueryWrapper<SzCheckingV2ProjectItem>()
.eq(SzCheckingV2ProjectItem::getCheckingId,id));
dto.setItems(items.stream()
.map(SzCheckingV2Service::convertToItemDto)
.collect(Collectors.toList()));
}
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzV2CheckingDto add(SzV2CheckingDto dto) {
// 将 DTO 转换为实体对象
SzCheckingV2ProjectManage szCheckingV2ProjectManage = new SzCheckingV2ProjectManage();
BeanUtils.copyProperties(dto, szCheckingV2ProjectManage);
// 保存实体对象
if (!save(szCheckingV2ProjectManage)) {
throw new RuntimeException("保存失败");
}
// 处理关联的 items
Optional.ofNullable(dto.getItems())
.filter(items -> !items.isEmpty())
.ifPresent(items -> {
List<SzCheckingV2ProjectItem> projectItems = items.parallelStream() // 使用并行流
.map(item -> {
SzCheckingV2ProjectItem projectItem = new SzCheckingV2ProjectItem();
projectItem.setCheckingId(szCheckingV2ProjectManage.getId());
projectItem.setContent(item.getContent());
projectItem.setParts(String.join(",", item.getParts()));
return projectItem;
})
.collect(Collectors.toList());
// 批量保存 items
szCheckingV2ProjectItemV2Service.saveBatch(projectItems);
});
return dto;
}
@Transactional(rollbackFor = Exception.class)
public SzV2CheckingDto edit(SzV2CheckingDto dfV2Ck) {
if (StringUtils.isBlank(dfV2Ck.getId())) {
return null;
}
SzCheckingV2ProjectManage szCheckingV2ProjectManage = getById(dfV2Ck.getId());
if (szCheckingV2ProjectManage == null) {
return null;
}
BeanUtils.copyProperties(dfV2Ck, szCheckingV2ProjectManage);
if (!updateById(szCheckingV2ProjectManage)) {
throw new RuntimeException("修改失败");
}
szCheckingV2ProjectItemV2Service
.remove(new LambdaQueryWrapper<SzCheckingV2ProjectItem>()
.eq(SzCheckingV2ProjectItem::getCheckingId, dfV2Ck.getId()));
List<SzCheckingV2ProjectItem> items = dfV2Ck.getItems().stream()
.map(item -> {
SzCheckingV2ProjectItem projectItem = new SzCheckingV2ProjectItem();
projectItem.setId(item.getId());
projectItem.setCheckingId(szCheckingV2ProjectManage.getId());
projectItem.setContent(item.getContent());
projectItem.setParts(String.join(",", item.getParts()));
return projectItem;
})
.collect(Collectors.toList());
if (!szCheckingV2ProjectItemV2Service.saveOrUpdateBatch(items)) {
throw new RuntimeException("项目子项修改失败");
}
return dfV2Ck;
}
@Transactional(rollbackFor = Exception.class)
public boolean myRemove(String[] ids) {
if (null != ids && ids.length > 0) {
szCheckingV2ProjectItemV2Service.remove(new LambdaQueryWrapper<SzCheckingV2ProjectItem>()
.in(SzCheckingV2ProjectItem::getCheckingId, getIntList(ids)));
return remove(new LambdaQueryWrapper<SzCheckingV2ProjectManage>()
.in(SzCheckingV2ProjectManage::getId, getIntList(ids)));
}
return Boolean.FALSE;
}
public static List<Integer> getIntList(String[] ids) {
return DfCheckingV2Service.getIntList(ids);
}
public static List<String> getStringList(String[] ids) {
return DfCheckingV2Service.getStringList(ids);
}
}

225
shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhV2Service.java

@ -0,0 +1,225 @@
package com.kms.yxgh.sz.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kms.yxgh.common.ApprovalStatusEnum;
import com.kms.yxgh.common.ApprovalTypeEnum;
import com.kms.yxgh.common.dto.ApprovalDetailDto;
import com.kms.yxgh.common.dto.ApprovalSearchDto;
import com.kms.yxgh.common.dto.DocV2Dto;
import com.kms.yxgh.common.enums.DfYhV2StatusEnum;
import com.kms.yxgh.common.service.ApprovalService;
import com.kms.yxgh.common.service.DefaultApprovalBusinessService;
import com.kms.yxgh.df.domain.DfCheckingRecord;
import com.kms.yxgh.df.domain.DfYhV2;
import com.kms.yxgh.df.dto.v2.DfRecordSearchV2Dto;
import com.kms.yxgh.df.dto.v2.DfYhApproveDto;
import com.kms.yxgh.df.service.DfCheckingV2Service;
import com.kms.yxgh.sz.domain.SzCheckingRecord;
import com.kms.yxgh.sz.domain.SzYhV2;
import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto;
import com.kms.yxgh.sz.dto.v2.SzYhApproveDto;
import com.kms.yxgh.sz.dto.v2.SzYhDetailV2Dto;
import com.kms.yxgh.sz.dto.v2.SzYhListV2Dto;
import com.kms.yxgh.sz.mapper.SzCheckingRecordV2Mapper;
import com.kms.yxgh.sz.mapper.SzYhV2Mapper;
import com.shuili.common.core.domain.SearchParam;
import com.shuili.common.utils.BeanUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* 项目管理记录
*
* @author sy
* @date 2023-11-09
*/
@Service
@AllArgsConstructor
public class SzYhV2Service extends DefaultApprovalBusinessService<SzYhV2Mapper, SzYhV2, SzRecordSearchV2Dto, SzYhApproveDto> {
private ApprovalService approvalService;
private SzCheckingRecordV2Mapper szCheckingRecordV2Mapper;
public IPage<SzYhListV2Dto> list(SearchParam<SzRecordSearchV2Dto> sp) {
// 分页参数
Page<SzYhV2> page = new Page<>(sp.getPageNum(), sp.getPageSize());
SzRecordSearchV2Dto data = sp.getData();
// 构建查询条件
LambdaQueryWrapper<SzYhV2> queryWrapper = new LambdaQueryWrapper<>();
if (!ObjectUtils.isEmpty(data)) {
Optional.ofNullable(data.getCategory())
.filter(StringUtils::isNotBlank)
.ifPresent(category -> queryWrapper.eq(SzYhV2::getCategory, category));
Optional.ofNullable(data.getType())
.filter(StringUtils::isNotBlank)
.ifPresent(type -> queryWrapper.eq(SzYhV2::getType, type));
Optional.ofNullable(data.getName())
.filter(StringUtils::isNotBlank)
.ifPresent(name -> queryWrapper.like(SzYhV2::getName, name));
Optional.ofNullable(data.getDutyHolder())
.filter(StringUtils::isNotBlank)
.ifPresent(dutyHolder -> queryWrapper.like(SzYhV2::getDutyHolderName, dutyHolder));
Optional.ofNullable(data.getStatus())
.filter(StringUtils::isNotBlank)
.ifPresent(status -> queryWrapper.like(SzYhV2::getStatus, status));
if (!Objects.isNull(data.getStartDate())) {
queryWrapper.ge(SzYhV2::getStartDate, data.getStartDate());
}
if (!Objects.isNull(data.getEndDate())) {
queryWrapper.le(SzYhV2::getEndDate, data.getEndDate());
}
Optional.ofNullable(data.getProblemLevel())
.filter(StringUtils::isNotBlank)
.ifPresent(problemLevel -> queryWrapper.eq(SzYhV2::getProblemLevel, problemLevel));
Optional.ofNullable(data.getRecordId())
.filter(StringUtils::isBlank)
.ifPresent(recordId -> queryWrapper.eq(SzYhV2::getRecordId, recordId));
}
// 查询分页数据
Page<SzYhV2> queryPage = page(page, queryWrapper);
if (queryPage == null) {
return new Page<>();
}
// 转换为 DTO 分页对象
Page<SzYhListV2Dto> dtoPage = new Page<>();
BeanUtils.copyProperties(queryPage, dtoPage);
// 处理查询结果
List<SzYhListV2Dto> vos = queryPage.getRecords().stream()
.map(record -> {
SzYhListV2Dto dto = new SzYhListV2Dto();
BeanUtils.copyProperties(record, dto);
dto.setApprovalId(approvalService.getTaskId(dto.getId(), ApprovalTypeEnum.YH_V2_RECORD));
return dto;
})
.collect(Collectors.toList());
dtoPage.setRecords(vos);
return dtoPage;
}
public SzYhDetailV2Dto getInfo(String id) {
SzYhDetailV2Dto dto = new SzYhDetailV2Dto();
SzYhV2 dfYhV2 = getById(id);
if (dfYhV2 != null) {
BeanUtils.copyProperties(dfYhV2, dto);
dto.setDoc(JSONObject.parseObject(dfYhV2.getDoc(), DocV2Dto.class));
}
return dto;
}
public Boolean myRemove(String[] ids) {
if (null != ids && ids.length > 0) {
return remove(new LambdaQueryWrapper<SzYhV2>()
.in(SzYhV2::getId, DfCheckingV2Service.getIntList(ids)));
}
return Boolean.FALSE;
}
public SzYhDetailV2Dto edit(SzYhDetailV2Dto szYh, Boolean commit) {
SzYhDetailV2Dto dto = new SzYhDetailV2Dto();
SzYhV2 szYhV2 = new SzYhV2();
if (commit) {
BeanUtils.copyProperties(szYh, szYhV2);
szYhV2.setDoc(getDocStrJson(szYh.getDoc()));
szYhV2.setStatus(DfYhV2StatusEnum.YES_UNDER.getValue());
saveOrUpdate(szYhV2);
BeanUtils.copyProperties(szYhV2, dto);
approvalService.submit(szYhV2.getId(), ApprovalTypeEnum.SZ_V2_YH_RECORD);
return dto;
} else {
BeanUtils.copyProperties(szYh, szYhV2);
szYhV2.setDoc(getDocStrJson(szYh.getDoc()));
szYhV2.setStatus(DfYhV2StatusEnum.UNDER_MAINTENANCE.getValue());
saveOrUpdate(szYhV2);
BeanUtils.copyProperties(szYhV2, dto);
return dto;
}
}
private static String getDocStrJson(DocV2Dto dto) {
if (dto == null) {
return null;
}
return JSONObject.toJSONString(dto);
}
@Override
public IPage<ApprovalDetailDto<SzYhApproveDto>> approvalSearch(SearchParam<ApprovalSearchDto<SzRecordSearchV2Dto>> sp) {
if (sp.getData() == null) {
return new Page<>();
}
return this.getBaseMapper().approvalSearchPage(new Page<>(sp.getPageNum(), sp.getPageSize()), sp.getData());
}
@Override
public void updateApprovalStatus(String formId, ApprovalStatusEnum status) {
String formStatus;
switch (status){
case PASS:
formStatus = DfYhV2StatusEnum.ACCEPTED.getValue();
// 验收同步修改掉记录列表的状态
synRecordStatus(formId,formStatus);
break;
case REJECT:
formStatus = DfYhV2StatusEnum.UNDER_MAINTENANCE.getValue();
break;
default:
formStatus = DfYhV2StatusEnum.YES_UNDER.getValue();
}
Wrapper<SzYhV2> wp = Wrappers.<SzYhV2>lambdaUpdate()
.eq(SzYhV2::getId, formId)
.set(SzYhV2::getStatus, formStatus);
this.update(null, wp);
}
private void synRecordStatus(String formId, String status){
SzYhV2 byId = getById(formId);
List<SzYhV2> list = list(new LambdaQueryWrapper<SzYhV2>().eq(SzYhV2::getRecordId, byId.getRecordId()));
if (CollectionUtils.isNotEmpty(list) && !list.isEmpty()) {
long count = list.stream().filter(e -> Objects.equals(DfYhV2StatusEnum.ACCEPTED.getValue(), e.getStatus())).count();
if (count+1==list.size()) {
Wrapper<SzCheckingRecord> wp = Wrappers.<SzCheckingRecord>lambdaUpdate()
.eq(SzCheckingRecord::getId, byId.getRecordId())
.set(SzCheckingRecord::getStatus, status);
szCheckingRecordV2Mapper.update(null,wp);
}
}
}
@Override
public String formStatus(String formId) {
return ApprovalStatusEnum.SUBMITTING.getValue();
}
}

71
shuili-system/src/main/resources/mapper/yxgh/SzYhV2Mapper.xml

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.kms.yxgh.sz.mapper.SzYhV2Mapper">
<resultMap id="approvalMap" type="com.kms.yxgh.common.dto.ApprovalDetailDto">
<id property="id" column="id"/>
<result property="formId" column="formId"/>
<result property="submitTime" column="submit_time"/>
<result property="approvalTime" column="approval_time"/>
<result property="status" column="status"/>
<result property="comment" column="comment"/>
<result property="operator" column="operator" typeHandler="com.kms.yxgh.common.mapper.handler.OperatorHandler"/>
<result property="doc" column="ts_doc" typeHandler="com.kms.yxgh.common.mapper.handler.DocHandler"/>
<association property="detail" javaType="com.kms.yxgh.sz.dto.v2.SzYhApproveDto">
<id property="id" column="jl_id"/>
<result property="name" column="name"/>
<result property="status" column="yh_status"/>
<result property="wagaCode" column="waga_code"/>
<result property="wagaName" column="waga_name"/>
<result property="type" column="type"/>
<result property="category" column="category"/>
<result property="problemLevel" column="problem_level"/>
<result property="dutyHolderId" column="duty_holder_id"/>
<result property="dutyHolderName" column="duty_holder_name"/>
<result property="problemId" column="problem_id"/>
<result property="recordId" column="record_id"/>
</association>
</resultMap>
<select id="approvalSearchPage" resultMap="approvalMap">
SELECT ts.id id, ts.form_id formId, ts.create_time submit_time, ts.approval_time approval_time, ts.status status,
ts.operator operator, ts.comment comment, ts.doc ts_doc,
jl.id , jl.name ,jl.waga_code , jl.waga_name , jl.type type, jl.category ,
jl.problem_level , jl.duty_holder_id , jl.duty_holder_name, jl.problem_id , jl.record_id, jl.status yh_status
FROM bs_sgc_sp_task ts
LEFT JOIN bs_sgc_Sz_xcyj jl ON jl.id = ts.form_id
WHERE
ts.business_type = #{dto.businessType}
and ts.status in ('1','2')
<if test="dto.status != null and dto.status != ''">
AND ts.status = #{dto.status}
</if>
<if test="dto.condition!= null and dto.condition.name != null">
AND jl.name LIKE CONCAT('%',#{dto.condition.name},'%')
</if>
<if test="dto.condition!= null and dto.condition.type != null and dto.condition.type != ''">
AND jl.type = #{dto.condition.type}
</if>
<if test="dto.condition!= null and dto.condition.category != null and dto.condition.category != ''">
AND jl.category = #{dto.condition.category}
</if>
<if test="dto.condition!= null and dto.condition.problemLevel != null and dto.condition.problemLevel != ''">
AND jl.problem_level = #{dto.condition.problemLevel}
</if>
<if test="dto.condition!= null and dto.condition.status != null and dto.condition.status != ''">
AND jl.status = #{dto.condition.status}
</if>
<if test="dto.condition!= null and dto.condition.startDate != null and dto.condition.startDate != ''">
AND jl.start_date &gt;= #{dto.condition.startDate}
</if>
<if test="dto.condition!= null and dto.condition.endDate != null and dto.condition.endDate != ''">
AND jl.end_date &lt;= #{dto.condition.endDate}
</if>
<if test="dto.condition!= null and dto.condition.dutyHolder != null and dto.condition.dutyHolder != ''">
AND jl.duty_holder_id = #{dto.condition.dutyHolder}
</if>
ORDER BY jl.update_time DESC
</select>
</mapper>
Loading…
Cancel
Save