Browse Source

add:提防v2

release-sy-tdsql
“lyd” 1 month ago
parent
commit
38898362da
  1. 7
      shuili-system/src/main/java/com/kms/yxgh/common/dto/DocV2Dto.java
  2. 22
      shuili-system/src/main/java/com/kms/yxgh/common/enums/DfYhV2StatusEnum.java
  3. 2
      shuili-system/src/main/java/com/kms/yxgh/df/controller/v2/DfYhV2Controller.java
  4. 16
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingProblemV2.java
  5. 27
      shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingRecord.java
  6. 17
      shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfRecordDetailV2Dto.java
  7. 11
      shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfYhDetailV2Dto.java
  8. 4
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java
  9. 46
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingRecordV2Service.java
  10. 8
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingV2Service.java
  11. 24
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2V2Service.java

7
shuili-system/src/main/java/com/kms/yxgh/common/dto/DocV2Dto.java

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collections;
import java.util.List;
@Data
@ -12,11 +13,11 @@ import java.util.List;
@NoArgsConstructor
public class DocV2Dto {
@ApiModelProperty(value = "图片")
private List<Item> images;
private List<Item> images = Collections.emptyList();
@ApiModelProperty(value = "音频")
private List<Item> audios;
private List<Item> audios = Collections.emptyList();
@ApiModelProperty(value = "文档")
private List<Item> docs;
private List<Item> docs = Collections.emptyList();
@Data
private static class Item {

22
shuili-system/src/main/java/com/kms/yxgh/common/enums/DfYhV2StatusEnum.java

@ -0,0 +1,22 @@
package com.kms.yxgh.common.enums;
import lombok.Getter;
@Getter
public enum DfYhV2StatusEnum {
DURING_INSPECTION("巡查中", "1"),
INSPECTED("已巡检", "2"),
UNDER_MAINTENANCE("养护中", "3"),
NO_DEFECTS("无缺陷", "4"),
ACCEPTED("已验收", "5");
private final String name;
private final String value;
DfYhV2StatusEnum(String name, String value) {
this.name = name;
this.value = value;
}
}

2
shuili-system/src/main/java/com/kms/yxgh/df/controller/v2/DfYhV2Controller.java

@ -1,7 +1,6 @@
package com.kms.yxgh.df.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;
@ -10,7 +9,6 @@ import com.kms.yxgh.df.dto.v2.DfRecordDetailV2Dto;
import com.kms.yxgh.df.dto.v2.DfRecordSearchV2Dto;
import com.kms.yxgh.df.dto.v2.DfYhDetailV2Dto;
import com.kms.yxgh.df.dto.v2.DfYhListV2Dto;
import com.kms.yxgh.df.service.DfCheckingRecordV2Service;
import com.kms.yxgh.df.service.DfYhV2V2Service;
import com.shuili.common.annotation.Log;
import com.shuili.common.core.domain.SearchParam;

16
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingProblemV2.java

@ -8,8 +8,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 缺陷记录 bs_sgc_df_xcqx
*
@ -25,11 +23,8 @@ public class DfCheckingProblemV2 extends SyBaseEntity {
/**
* 问题等级
*/
@ApiModelProperty("问题等级")
private String issueLevel;
private String problemLevel;
/**
* 项目id
@ -107,12 +102,7 @@ public class DfCheckingProblemV2 extends SyBaseEntity {
@ApiModelProperty("巡查开始时间")
private Date startTime;
/**
* 巡查结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("巡查结束时间")
private Date endTime;
/**
* 描述
@ -125,7 +115,7 @@ public class DfCheckingProblemV2 extends SyBaseEntity {
* 问题位置
*/
@ApiModelProperty("问题位置")
private String problemLocation;
private String position;
/**

27
shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingRecord.java

@ -5,10 +5,8 @@ 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;
import lombok.Data;
/**
* 害堤动物防治计划对象 bs_sgc_df_xcitem
@ -23,30 +21,31 @@ public class DfCheckingRecord extends SyBaseEntity {
private static final long serialVersionUID = 1L;
/**
* 巡查范围
* 开始时间
*/
@ApiModelProperty("巡查范围")
private String scope;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private Date startTime;
/**
* 巡查开始时间
* 结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("巡查开始时间")
private Date startTime;
@ApiModelProperty("结束时间")
private Date doneTime;
/**
* 巡查结束时间
* 巡查范围
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("巡查结束时间")
private Date endTime;
@ApiModelProperty("巡查范围")
private String scope;
/**
* 项目id
*/
@ApiModelProperty("项目id")
private String projectId;
private String checkingId;
/**
* 巡查状态字典:patrol_maintenance_status

17
shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfRecordDetailV2Dto.java

@ -3,6 +3,8 @@ package com.kms.yxgh.df.dto.v2;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kms.yxgh.base.AddGroup;
import com.kms.yxgh.base.UpdateGroup;
import com.kms.yxgh.common.dto.DocDto;
import com.kms.yxgh.common.dto.DocV2Dto;
import com.kms.yxgh.df.dto.DfCheckingDetailDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -18,22 +20,26 @@ import java.util.List;
@ApiModel("堤防巡视检查记录详情v2")
public class DfRecordDetailV2Dto {
@NotBlank(message = "巡查记录ID不能为空", groups = {UpdateGroup.class})
@ApiModelProperty("文档")
private DocV2Dto doc;
@NotBlank(message = "巡查记录ID不能为空")
@ApiModelProperty("巡查记录")
private String id;
@NotBlank(message = "巡查项目ID不能为空", groups = {AddGroup.class, UpdateGroup.class})
@NotBlank(message = "巡查项目ID不能为空", groups = {UpdateGroup.class})
@ApiModelProperty("巡查项目ID")
private String checkingId;
@ApiModelProperty("巡查项目名称")
private String checkingName;
@NotBlank(message = "堤防编码不能为空", groups = {AddGroup.class, UpdateGroup.class})
@NotBlank(message = "堤防编码不能为空", groups = { UpdateGroup.class})
@ApiModelProperty("堤防编码")
private String dikeCode;
@NotBlank(message = "堤防名称不能为空", groups = {AddGroup.class, UpdateGroup.class})
@NotBlank(message = "堤防名称不能为空", groups = { UpdateGroup.class})
@ApiModelProperty("堤防名称")
private String dikeName;
@ -87,6 +93,9 @@ public class DfRecordDetailV2Dto {
@ApiModelProperty("检查内容")
private String content;
@ApiModelProperty("描述")
private String describe;
@ApiModelProperty("问题等级")
private String problemLevel;

11
shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfYhDetailV2Dto.java

@ -4,6 +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.DocDto;
import com.kms.yxgh.common.dto.DocV2Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -26,16 +27,16 @@ public class DfYhDetailV2Dto {
@ApiModelProperty("巡查记录id")
private String recordId;
@NotBlank(message = "巡查项目ID不能为空", groups = {AddGroup.class, UpdateGroup.class})
@NotBlank(message = "巡查项目ID不能为空", groups = {UpdateGroup.class})
@ApiModelProperty("巡查项目ID")
private String checkingId;
@NotNull(message = "开始时间", groups = {AddGroup.class, UpdateGroup.class})
@NotNull(message = "开始时间", groups = { UpdateGroup.class})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("开始时间")
private Date startDate;
@NotNull(message = "结束时间", groups = {AddGroup.class, UpdateGroup.class})
@NotNull(message = "结束时间", groups = { UpdateGroup.class})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("结束时间")
private Date endDate;
@ -44,7 +45,7 @@ public class DfYhDetailV2Dto {
private String content;
@ApiModelProperty("文档")
private DocDto doc;
private DocV2Dto doc;
@ApiModelProperty("巡查责任人")
private String dutyHolderId;
@ -58,4 +59,6 @@ public class DfYhDetailV2Dto {
@ApiModelProperty("问题等级")
private String issueLevel;
}

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

@ -63,11 +63,11 @@ public class DfCheckingProblemV2Service extends BaseService<DfCheckingProblemV2M
Optional.ofNullable(data.getProblemLevel())
.filter(problemLevel -> problemLevel != null)
.ifPresent(problemLevel -> queryWrapper.le(DfCheckingProblemV2::getIssueLevel, problemLevel));
.ifPresent(problemLevel -> queryWrapper.le(DfCheckingProblemV2::getProblemLevel, problemLevel));
Optional.ofNullable(data.getRecordId())
.filter(StringUtils::isNotBlank)
.ifPresent(recordId -> queryWrapper.eq(DfCheckingProblemV2::getIssueLevel, recordId));
.ifPresent(recordId -> queryWrapper.eq(DfCheckingProblemV2::getProblemLevel, recordId));
}

46
shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingRecordV2Service.java

@ -7,6 +7,7 @@ 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.enums.DfYhV2StatusEnum;
import com.kms.yxgh.df.domain.DfCheckingProblemV2;
import com.kms.yxgh.df.domain.DfCheckingRecord;
import com.kms.yxgh.df.domain.DfCheckingV2ProjectItem;
@ -21,6 +22,7 @@ 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;
@ -74,9 +76,10 @@ public class DfCheckingRecordV2Service extends BaseService<DfCheckingRecordV2Map
Optional.ofNullable(data.getEndTime())
.filter(endTime -> endTime != null)
.ifPresent(endTime -> queryWrapper.le(DfCheckingRecord::getCreateTime, endTime));
}
// 查询分页数据
Page<DfCheckingRecord> queryPage = page(page, queryWrapper);
if (queryPage == null) {
@ -131,34 +134,47 @@ public class DfCheckingRecordV2Service extends BaseService<DfCheckingRecordV2Map
// 子项
return dto;
}
@Transactional(rollbackFor = Exception.class)
public DfRecordDetailV2Dto edit(DfRecordDetailV2Dto dfRecord, Boolean commit) {
// 先删后加
myRemovePraIds(dfRecord);
if (commit) {
List<String> ids = dfRecord.getProblems()
.stream()
.map(DfRecordDetailV2Dto.DfRecordItemDetailV2Dto::getId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(ids)) {
dfCheckingProblemV2Service.remove(new LambdaQueryWrapper<DfCheckingProblemV2>().in(DfCheckingProblemV2::getId,ids));
}
DfCheckingRecord dfCheckingRecord=new DfCheckingRecord();
BeanUtils.copyProperties(dfRecord, dfCheckingRecord);
// 提交为已巡检
dfCheckingRecord.setStatus(DfYhV2StatusEnum.INSPECTED.getValue());
updateById(dfCheckingRecord);
List<DfRecordDetailV2Dto.DfRecordItemDetailV2Dto> problems = dfRecord.getProblems();
List<DfCheckingProblemV2> dfCheckingProblemV2s = ListUtil.copyListToResultList(problems, DfCheckingProblemV2.class);
dfCheckingProblemV2Service.updateBatchById(dfCheckingProblemV2s);
dfCheckingProblemV2Service.updateBatchById(convertToImages(dfRecord.getProblems()));
return dfRecord;
}
DfCheckingRecord dfCheckingRecord=new DfCheckingRecord();
BeanUtils.copyProperties(dfRecord, dfCheckingRecord);
// 未提交维巡查中
dfCheckingRecord.setStatus(DfYhV2StatusEnum.DURING_INSPECTION.getValue());
save(dfCheckingRecord);
List<DfRecordDetailV2Dto.DfRecordItemDetailV2Dto> problems = dfRecord.getProblems();
List<DfCheckingProblemV2> dfCheckingProblemV2s = ListUtil.copyListToResultList(problems, DfCheckingProblemV2.class);
dfCheckingProblemV2Service.saveBatch(dfCheckingProblemV2s);
dfCheckingProblemV2Service.saveBatch(convertToImages(dfRecord.getProblems()));
return dfRecord;
}
public void myRemovePraIds(DfRecordDetailV2Dto dfRecord) {
List<String> ids = dfRecord.getProblems()
.stream()
.map(DfRecordDetailV2Dto.DfRecordItemDetailV2Dto::getId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(ids)) {
dfCheckingProblemV2Service.remove(new LambdaQueryWrapper<DfCheckingProblemV2>().in(DfCheckingProblemV2::getId,ids));
}
}
public static List<DfCheckingProblemV2> convertToImages(List<DfRecordDetailV2Dto.DfRecordItemDetailV2Dto> dtoList) {
List<DfCheckingProblemV2> dfCheckingProblemV2s = new ArrayList<>();
dtoList.stream().forEach(e->{
DfCheckingProblemV2 dfCheckingProblemV2=new DfCheckingProblemV2();
BeanUtils.copyProperties(e,dfCheckingProblemV2);
dfCheckingProblemV2.setDoc(e.getProblemImages().stream().collect(Collectors.joining(",")));
});
return dfCheckingProblemV2s;
}
@Transactional(rollbackFor = Exception.class)
public Boolean myRemove(String[] ids) {
return Optional.ofNullable(ids)
.filter(array -> array.length > 0)

8
shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingV2Service.java

@ -143,7 +143,6 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck
if (!save(dfCheckingV2ProjectManage)) {
throw new RuntimeException("保存失败");
}
// 处理关联的 items
Optional.ofNullable(dto.getItems())
.filter(items -> !items.isEmpty())
@ -165,6 +164,8 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck
@Transactional(rollbackFor = Exception.class)
public DfV2CheckingDto edit(DfV2CheckingDto dfV2Ck) {
if (StringUtils.isBlank(dfV2Ck.getId())) {
return null;
}
@ -180,6 +181,11 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck
throw new RuntimeException("修改失败");
}
dfCheckingV2ProjectItemV2Service
.remove(new LambdaQueryWrapper<DfCheckingV2ProjectItem>()
.eq(DfCheckingV2ProjectItem::getProjectId,dfV2Ck.getId()));
List<DfCheckingV2ProjectItem> items = dfV2Ck.getItems().stream()
.map(item -> {
DfCheckingV2ProjectItem projectItem = new DfCheckingV2ProjectItem();

24
shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2V2Service.java

@ -1,9 +1,11 @@
package com.kms.yxgh.df.service;
import com.alibaba.fastjson.JSONArray;
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.common.dto.DocV2Dto;
import com.kms.yxgh.df.domain.DfYhV2V2;
import com.kms.yxgh.df.dto.v2.*;
import com.kms.yxgh.df.mapper.DfYhV2Mapper;
@ -37,11 +39,11 @@ public class DfYhV2V2Service extends BaseService<DfYhV2Mapper, DfYhV2V2> {
LambdaQueryWrapper<DfYhV2V2> queryWrapper = new LambdaQueryWrapper<>();
if (!ObjectUtils.isEmpty(data)) {
Optional.ofNullable(data.getCategory())
.filter(com.baomidou.mybatisplus.core.toolkit.StringUtils::isNotBlank)
.filter(StringUtils::isNotBlank)
.ifPresent(category -> queryWrapper.eq(DfYhV2V2::getCategory, category));
Optional.ofNullable(data.getType())
.filter(com.baomidou.mybatisplus.core.toolkit.StringUtils::isNotBlank)
.filter(StringUtils::isNotBlank)
.ifPresent(type -> queryWrapper.eq(DfYhV2V2::getType, type));
Optional.ofNullable(data.getName())
@ -49,7 +51,7 @@ public class DfYhV2V2Service extends BaseService<DfYhV2Mapper, DfYhV2V2> {
.ifPresent(name -> queryWrapper.like(DfYhV2V2::getName, name));
Optional.ofNullable(data.getDutyHolder())
.filter(com.baomidou.mybatisplus.core.toolkit.StringUtils::isNotBlank)
.filter(StringUtils::isNotBlank)
.ifPresent(dutyHolder -> queryWrapper.like(DfYhV2V2::getDutyHolderName, dutyHolder));
Optional.ofNullable(data.getStatus())
@ -98,6 +100,7 @@ public class DfYhV2V2Service extends BaseService<DfYhV2Mapper, DfYhV2V2> {
DfYhV2V2 dfYhV2V2 = getById(id);
if (dfYhV2V2 != null) {
BeanUtils.copyProperties(dfYhV2V2, dto);
dto.setDoc(JSONArray.parseObject(dfYhV2V2.getDoc(), DocV2Dto.class));
}
return dto;
}
@ -119,15 +122,22 @@ public class DfYhV2V2Service extends BaseService<DfYhV2Mapper, DfYhV2V2> {
DfYhDetailV2Dto dto=new DfYhDetailV2Dto();
DfYhV2V2 dfYhV2V2=new DfYhV2V2();
if (commit) {
BeanUtils.copyProperties(dfYhV2V2, dfYh);
BeanUtils.copyProperties(dfYh, dfYhV2V2);
dfYhV2V2.setDoc(getDocStrJson(dfYh.getDoc()));
updateById(dfYhV2V2);
}
BeanUtils.copyProperties(dfYhV2V2, dfYh);
updateById(dfYhV2V2);
BeanUtils.copyProperties(dfYh, dfYhV2V2);
dfYhV2V2.setDoc(getDocStrJson(dfYh.getDoc()));
save(dfYhV2V2);
BeanUtils.copyProperties(dfYhV2V2, dto);
return dto;
}
private String getDocStrJson (DocV2Dto dto) {
if (dto == null) {
return null;
}
return JSONArray.toJSONString(dto);
}
}

Loading…
Cancel
Save