From 9201f36fcd77a4133940429392f0c8a7a1df6229 Mon Sep 17 00:00:00 2001 From: hxh Date: Wed, 12 Jun 2024 16:19:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shuili-admin/pom.xml | 11 +-- .../controller/DfCheckingLineController.java | 8 ++ .../df/controller/DfRecordController.java | 9 ++- .../yxgh/df/dto/DfCheckingLineExportDto.java | 36 +++++++++ .../yxgh/df/dto/DfCheckingLineSearchDto.java | 5 ++ .../yxgh/df/dto/DfRecordDetailExportDto.java | 78 +++++++++++++++++++ .../kms/yxgh/df/dto/DfRecordSearchDto.java | 6 ++ .../df/service/DfCheckingLineService.java | 20 ++++- .../kms/yxgh/df/service/DfRecordService.java | 21 +++-- 9 files changed, 182 insertions(+), 12 deletions(-) create mode 100644 shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineExportDto.java create mode 100644 shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordDetailExportDto.java diff --git a/shuili-admin/pom.xml b/shuili-admin/pom.xml index 373d16b1..fbfd5297 100644 --- a/shuili-admin/pom.xml +++ b/shuili-admin/pom.xml @@ -77,11 +77,6 @@ bcprov-jdk15on 1.65 - - commons-io - commons-io - 2.2 - org.codehaus.plexus plexus-component-annotations @@ -91,6 +86,12 @@ org.apache.maven.plugins maven-assembly-plugin 3.0.0 + + + commons-compress + org.apache.commons + + diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingLineController.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingLineController.java index 108d7d1a..515b4552 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingLineController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingLineController.java @@ -8,6 +8,7 @@ import com.kms.yxgh.df.dto.DfCheckingLineDto; import com.kms.yxgh.df.dto.DfCheckingLineSearchDto; import com.kms.yxgh.df.service.DfCheckingLineService; import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.AjaxResult; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; import io.swagger.annotations.Api; @@ -82,4 +83,11 @@ public class DfCheckingLineController { return Response.ok(dfCheckingLineService.deleteById(ids)); } + @Log(title = "提防巡视路线导出", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ApiOperation("内容记录导出") + public AjaxResult export(@RequestBody DfCheckingLineSearchDto searchDto) { + return dfCheckingLineService.export(searchDto.getIds()); + + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfRecordController.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfRecordController.java index f90b500e..354adc5b 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfRecordController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfRecordController.java @@ -4,12 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.yxgh.base.AddGroup; import com.kms.yxgh.base.Response; import com.kms.yxgh.base.UpdateGroup; -import com.kms.yxgh.df.domain.DfRecord; +import com.kms.yxgh.df.dto.DfCheckingLineSearchDto; import com.kms.yxgh.df.dto.DfRecordDetailDto; import com.kms.yxgh.df.dto.DfRecordSearchDto; import com.kms.yxgh.df.dto.DfRecordSimpleDto; import com.kms.yxgh.df.service.DfRecordService; import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.AjaxResult; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; import io.swagger.annotations.Api; @@ -84,4 +85,10 @@ public class DfRecordController { return Response.ok(dfRecordService.deleteById(ids)); } + @Log(title = "提防巡视路线导出", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ApiOperation("内容记录导出") + public AjaxResult export(@RequestBody DfRecordSearchDto searchDto) { + return dfRecordService.export(searchDto.getIds()); + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineExportDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineExportDto.java new file mode 100644 index 00000000..ba161d45 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineExportDto.java @@ -0,0 +1,36 @@ +package com.kms.yxgh.df.dto; + +import com.shuili.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel("堤防巡视检查路线导出") +public class DfCheckingLineExportDto { + + @Excel(name = "提防编码", sort = 3) + @ApiModelProperty("堤防代码") + private String dikeCode; + @Excel(name = "提防名称", sort = 1) + @ApiModelProperty("堤防名称") + private String dikeName; + @Excel(name = "提防类型", dictType = "embankment_type", sort = 2) + @ApiModelProperty("堤防类型") + private String dikeType; + @Excel(name = "巡查路线名称", sort = 4) + @ApiModelProperty("巡查名称") + private String name; + @Excel(name = "巡查类型", dictType = "xs_classfy", sort = 5) + @ApiModelProperty("巡查路线类型") + private String type; + @Excel(name = "巡查责任人类型", sort = 6, dictType = "person_type") + @ApiModelProperty("巡查责任人类型") + private String dutyHolderType; + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 7) + @ApiModelProperty("创建时间") + private Date createTime; + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineSearchDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineSearchDto.java index d7d75c1d..39a0ba67 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineSearchDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineSearchDto.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + @Data @ApiModel("堤防巡视检查路线查询") public class DfCheckingLineSearchDto { @@ -28,4 +30,7 @@ public class DfCheckingLineSearchDto { @ApiModelProperty("巡查责任人类型") private String dutyHolderType; + + @ApiModelProperty("路线ids") + private List ids; } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordDetailExportDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordDetailExportDto.java new file mode 100644 index 00000000..c84ca78b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordDetailExportDto.java @@ -0,0 +1,78 @@ +package com.kms.yxgh.df.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.shuili.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @ClassName: DfRecordDetailDto + * @Description: TODO + * @Date: 2023/11/15 上午10:36 * + * @author: hxh + * @version: 1.0 + */ + +@Data +@ApiModel("堤防巡视检查记录详情导出") +public class DfRecordDetailExportDto { + + + @Excel(name = "提防名称", sort = 1) + @ApiModelProperty("堤防名称") + private String dikeName; + + @Excel(name = "提防类型", dictType = "embankment_type", sort = 2) + @ApiModelProperty("堤防类型") + private String dikeType; + + @Excel(name = "巡查计划名称", sort = 3) + @ApiModelProperty("计划名称") + private String planName; + + @Excel(name = "巡查计划子项名称", sort = 4) + @ApiModelProperty("子计划名称") + private String subPlanName; + + @Excel(name = "巡查计划开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 5) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("子项开始时间") + private Date subPlanStartDate; + + @Excel(name = "巡查计划结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 6) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("子项结束时间") + private Date subPlanEndDate; + + @Excel(name = "巡查人", sort = 7) + private String createName; + + @Excel(name = "巡查时长", sort = 8) + @ApiModelProperty("巡查时长") + private String duration; + + @Excel(name = "巡查开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 9) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @ApiModelProperty("巡查开始时间") + private Date startDate; + + @Excel(name = "巡查结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 10) + @ApiModelProperty("巡查结束时间") + private Date endDate; + + @Excel(name = "隐患状态", sort = 11) + @ApiModelProperty("状态") + private String status; + + public void initDuration() { + if (this.startDate != null && this.endDate != null) { + long diff = this.endDate.getTime() - this.startDate.getTime(); + long hours = diff / (1000 * 60 * 60); + this.duration = hours + ""; + } + } + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordSearchDto.java b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordSearchDto.java index a67ceb3e..47051d4e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordSearchDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordSearchDto.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @ClassName: DfRecordSearchDto * @Description: TODO @@ -31,4 +33,8 @@ public class DfRecordSearchDto { private String dutyHolderType; @ApiModelProperty("状态") private String status; + + @ApiModelProperty("巡查记录IDs") + private List ids; + } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingLineService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingLineService.java index 2a0addc9..747aa566 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingLineService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingLineService.java @@ -1,6 +1,5 @@ package com.kms.yxgh.df.service; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -15,17 +14,21 @@ import com.kms.yxgh.df.domain.DfCheckingLine; import com.kms.yxgh.df.domain.DfCheckingPlanContent; import com.kms.yxgh.df.domain.DfPlan; import com.kms.yxgh.df.dto.DfCheckingLineDto; +import com.kms.yxgh.df.dto.DfCheckingLineExportDto; import com.kms.yxgh.df.dto.DfCheckingLineSearchDto; import com.kms.yxgh.df.mapper.DfCheckingLineMapper; import com.kms.yxgh.df.mapper.DfCheckingPlanContentMapper; import com.kms.yxgh.util.BeanCopyUtils; +import com.shuili.common.core.domain.AjaxResult; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.core.service.BaseService; +import com.shuili.common.utils.poi.ExcelUtil; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -128,4 +131,19 @@ public class DfCheckingLineService extends BaseService ids) { + List list = Optional.ofNullable(this.listByIds(ids)).orElse(Collections.emptyList()); + ExcelUtil util = new ExcelUtil<>(DfCheckingLineExportDto.class); + return util.exportExcel(list.stream().map(line -> { + DfCheckingLineExportDto exportDto = BeanCopyUtils.copy(line, DfCheckingLineExportDto.class); + if (exportDto != null) { + BsSgcDfSafeJbxx df = dfSafeJbxxMapper.getByDikeCode(exportDto.getDikeCode()); + if (df != null) { + exportDto.setDikeName(df.getDikeName()); + exportDto.setDikeType(df.getDikeType()); + } + } + return exportDto; + }).collect(Collectors.toList()), "checking-line"); + } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java index d0c1c41b..1bae8078 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java @@ -7,29 +7,28 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.system.service.SysUserService; import com.kms.yxgh.base.DfException; -import com.kms.yxgh.base.enums.RecordStatus; import com.kms.yxgh.df.domain.DfCheckingLine; import com.kms.yxgh.df.domain.DfRecord; import com.kms.yxgh.df.domain.DfRecordItem; import com.kms.yxgh.df.dto.DfRecordDetailDto; import com.kms.yxgh.df.dto.DfRecordDetailDto.DfRecordItemDto; +import com.kms.yxgh.df.dto.DfRecordDetailExportDto; import com.kms.yxgh.df.dto.DfRecordSearchDto; import com.kms.yxgh.df.dto.DfRecordSimpleDto; import com.kms.yxgh.df.mapper.DfCheckingLineMapper; import com.kms.yxgh.df.mapper.DfRecordMapper; import com.kms.yxgh.util.BeanCopyUtils; import com.kms.yxgh.util.StreamUtils; +import com.shuili.common.core.domain.AjaxResult; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.core.service.BaseService; import com.shuili.common.utils.StringUtils; +import com.shuili.common.utils.poi.ExcelUtil; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -175,4 +174,16 @@ public class DfRecordService extends BaseService { } + public AjaxResult export(List ids) { + List list = Optional.ofNullable(this.listByIds(ids)).orElse(Collections.emptyList()); + ExcelUtil util = new ExcelUtil<>(DfRecordDetailExportDto.class); + return util.exportExcel(list.stream().map(record -> { + DfRecordDetailExportDto exportDto = BeanCopyUtils.copy(record, DfRecordDetailExportDto.class); + if (exportDto != null) { + exportDto.setCreateName(userService.userName(record.getCreateUid())); + exportDto.initDuration(); + } + return exportDto; + }).collect(Collectors.toList()), "checking-record"); + } }