Browse Source

feat: 导出功能

master_tdsql
hxh 10 months ago
parent
commit
9201f36fcd
  1. 11
      shuili-admin/pom.xml
  2. 8
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingLineController.java
  3. 9
      shuili-system/src/main/java/com/kms/yxgh/df/controller/DfRecordController.java
  4. 36
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineExportDto.java
  5. 5
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfCheckingLineSearchDto.java
  6. 78
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordDetailExportDto.java
  7. 6
      shuili-system/src/main/java/com/kms/yxgh/df/dto/DfRecordSearchDto.java
  8. 20
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingLineService.java
  9. 21
      shuili-system/src/main/java/com/kms/yxgh/df/service/DfRecordService.java

11
shuili-admin/pom.xml

@ -77,11 +77,6 @@
<artifactId>bcprov-jdk15on</artifactId>
<version>1.65</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
@ -91,6 +86,12 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<exclusions>
<exclusion>
<artifactId>commons-compress</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

8
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());
}
}

9
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());
}
}

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

5
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<String> ids;
}

78
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 + "";
}
}
}

6
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<String> ids;
}

20
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<DfCheckingLineMapper, DfC
}
public AjaxResult export(List<String> ids) {
List<DfCheckingLine> list = Optional.ofNullable(this.listByIds(ids)).orElse(Collections.emptyList());
ExcelUtil<DfCheckingLineExportDto> 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");
}
}

21
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<DfRecordMapper, DfRecord> {
}
public AjaxResult export(List<String> ids) {
List<DfRecord> list = Optional.ofNullable(this.listByIds(ids)).orElse(Collections.emptyList());
ExcelUtil<DfRecordDetailExportDto> 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");
}
}

Loading…
Cancel
Save