From 38898362da8806cc6c5efce43a519122f94e7783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Clyd=E2=80=9D?= <“lyd@datametatech.com”> Date: Tue, 11 Mar 2025 09:16:03 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E6=8F=90=E9=98=B2v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kms/yxgh/common/dto/DocV2Dto.java | 7 +-- .../yxgh/common/enums/DfYhV2StatusEnum.java | 22 +++++++++ .../df/controller/v2/DfYhV2Controller.java | 2 - .../yxgh/df/domain/DfCheckingProblemV2.java | 16 ++----- .../kms/yxgh/df/domain/DfCheckingRecord.java | 27 ++++++----- .../yxgh/df/dto/v2/DfRecordDetailV2Dto.java | 17 +++++-- .../kms/yxgh/df/dto/v2/DfYhDetailV2Dto.java | 11 +++-- .../service/DfCheckingProblemV2Service.java | 4 +- .../df/service/DfCheckingRecordV2Service.java | 46 +++++++++++++------ .../yxgh/df/service/DfCheckingV2Service.java | 8 +++- .../kms/yxgh/df/service/DfYhV2V2Service.java | 24 +++++++--- 11 files changed, 119 insertions(+), 65 deletions(-) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/common/enums/DfYhV2StatusEnum.java diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/dto/DocV2Dto.java b/shuili-system/src/main/java/com/kms/yxgh/common/dto/DocV2Dto.java index f9dcc44c..ef5824b4 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/dto/DocV2Dto.java +++ b/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 images; + private List images = Collections.emptyList(); @ApiModelProperty(value = "音频") - private List audios; + private List audios = Collections.emptyList(); @ApiModelProperty(value = "文档") - private List docs; + private List docs = Collections.emptyList(); @Data private static class Item { diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/DfYhV2StatusEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/DfYhV2StatusEnum.java new file mode 100644 index 00000000..926a2404 --- /dev/null +++ b/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; + } +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/v2/DfYhV2Controller.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/v2/DfYhV2Controller.java index b1a16cea..996dbb9c 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/controller/v2/DfYhV2Controller.java +++ b/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; diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingProblemV2.java b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingProblemV2.java index fab4a77f..8fd3bba6 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingProblemV2.java +++ b/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; /** diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingRecord.java b/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingRecord.java index ae17fdd7..4faa93fc 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/domain/DfCheckingRecord.java +++ b/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 diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfRecordDetailV2Dto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfRecordDetailV2Dto.java index 53f501b8..f1b3fd66 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfRecordDetailV2Dto.java +++ b/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; diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfYhDetailV2Dto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfYhDetailV2Dto.java index 62650f22..daf2df9b 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/v2/DfYhDetailV2Dto.java +++ b/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; + + } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java index 9d4b8b1f..afcb6d15 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java @@ -63,11 +63,11 @@ public class DfCheckingProblemV2Service extends BaseService 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)); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingRecordV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingRecordV2Service.java index b156c907..956c7171 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingRecordV2Service.java +++ b/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 endTime != null) .ifPresent(endTime -> queryWrapper.le(DfCheckingRecord::getCreateTime, endTime)); - } + + // 查询分页数据 Page queryPage = page(page, queryWrapper); if (queryPage == null) { @@ -131,34 +134,47 @@ public class DfCheckingRecordV2Service extends BaseService ids = dfRecord.getProblems() - .stream() - .map(DfRecordDetailV2Dto.DfRecordItemDetailV2Dto::getId).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(ids)) { - dfCheckingProblemV2Service.remove(new LambdaQueryWrapper().in(DfCheckingProblemV2::getId,ids)); - } DfCheckingRecord dfCheckingRecord=new DfCheckingRecord(); BeanUtils.copyProperties(dfRecord, dfCheckingRecord); + // 提交为已巡检 + dfCheckingRecord.setStatus(DfYhV2StatusEnum.INSPECTED.getValue()); updateById(dfCheckingRecord); - List problems = dfRecord.getProblems(); - List 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 problems = dfRecord.getProblems(); - List dfCheckingProblemV2s = ListUtil.copyListToResultList(problems, DfCheckingProblemV2.class); - dfCheckingProblemV2Service.saveBatch(dfCheckingProblemV2s); + dfCheckingProblemV2Service.saveBatch(convertToImages(dfRecord.getProblems())); return dfRecord; + } + public void myRemovePraIds(DfRecordDetailV2Dto dfRecord) { + List ids = dfRecord.getProblems() + .stream() + .map(DfRecordDetailV2Dto.DfRecordItemDetailV2Dto::getId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(ids)) { + dfCheckingProblemV2Service.remove(new LambdaQueryWrapper().in(DfCheckingProblemV2::getId,ids)); + } } + public static List convertToImages(List dtoList) { + List 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) diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingV2Service.java index 18c2a4da..ca622e18 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingV2Service.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingV2Service.java @@ -143,7 +143,6 @@ public class DfCheckingV2Service extends BaseService !items.isEmpty()) @@ -165,6 +164,8 @@ public class DfCheckingV2Service extends BaseService() + .eq(DfCheckingV2ProjectItem::getProjectId,dfV2Ck.getId())); + + List items = dfV2Ck.getItems().stream() .map(item -> { DfCheckingV2ProjectItem projectItem = new DfCheckingV2ProjectItem(); diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2V2Service.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2V2Service.java index 0b9b10d9..9ba167e3 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2V2Service.java +++ b/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 { LambdaQueryWrapper 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 { .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 { 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 { 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); } }