Browse Source

1.获取行政区域接口开发
2.根据行政区获取探测区接口开发
3.【数据汇总导出】功能模块-开发中

hs 2 years ago
parent
commit
e70652e222

+ 94 - 7
DataCheck/src/main/java/com/tofly/dataCheck/controller/DetectDataController.java

@@ -9,6 +9,7 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.tofly.common.core.entity.ResultRespone;
 import com.tofly.common.core.util.StringUtil;
@@ -18,19 +19,15 @@ import com.tofly.dataCheck.entity.*;
 import com.tofly.dataCheck.entity.DetectData;
 import com.tofly.dataCheck.excel.entity.*;
 import com.tofly.dataCheck.service.DetectDataService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 /**
  * 
@@ -127,6 +124,96 @@ public class DetectDataController {
     }
 
 
+    /**
+     * 获取行政区
+     * @return
+     */
+    @GetMapping("/getDetectAreas" )
+    @ApiOperation(value = "获取探测数据行政区")
+    public ResultRespone getDetectAreas() {
+        return ResultRespone.success(detectDataService.getDetectAreas());
+    }
+
+    /**
+     * 根据行政区获取测区
+     * @return
+     */
+    @GetMapping("/getTestingZone" )
+    @ApiOperation(value = "根据行政区获取测区")
+    public ResultRespone getTestingZone(@ApiParam(value = "行政区",name = "area",required = true)String area) {
+        return ResultRespone.success(detectDataService.getTestingZone(area));
+    }
+
+    /**
+     * 数据汇总导出分页查询
+     * @param page 分页对象
+     * @param dataSummarizationDto
+     * @return
+     */
+    @GetMapping("/dataSummarizationPage" )
+    @ApiOperation(value = "数据汇总导出分页查询")
+    public ResultRespone dataSummarizationPage(Page page, @ModelAttribute DataSummarizationDto dataSummarizationDto ) {
+        return ResultRespone.success( detectDataService.dataSummarizationPage(page,dataSummarizationDto));
+    }
+
+    @ApiOperation(value = "数据汇总导出excel")
+    @GetMapping(value = "/dataSummarizationExport")
+    public void dataSummarizationExport(HttpServletResponse response, Page page, @ModelAttribute DataSummarizationDto dataSummarizationDto ) {
+//        try {
+//            page.setSize(-1);
+//            Page<Map<String,Object>> dataPage = detectDataService.dataSummarizationPage(page, dataSummarizationDto);
+//            List<Map<String, Object>> records = dataPage.getRecords();
+//
+//            List<ShowDataExport> showDataYsExports = new ArrayList<>();
+//            List<ShowDataExport> showDataWsExports = new ArrayList<>();
+//            AtomicInteger noYs= new AtomicInteger(1);
+//            AtomicInteger noWs= new AtomicInteger(1);
+//            records.forEach(d -> {
+//                ShowDataExport showDataExport=new ShowDataExport();
+//                BeanUtil.copyProperties(d, showDataExport, true);
+//                showDataExport.setPipeNo(d.getStartCode()+"#"+d.getEndCode());
+//                if(StringUtil.isNotEmpty(d.getPipeProperties())){
+//                    if(d.getPipeProperties().equals(PipeTypeEnum.YS.getName())){
+//                        showDataExport.setNo(noYs+"");
+//                        showDataYsExports.add(showDataExport);
+//                        noYs.getAndIncrement();
+//                    }else{
+//                        showDataExport.setNo(noWs+"");
+//                        showDataWsExports.add(showDataExport);
+//                        noWs.getAndIncrement();
+//                    }
+//                }
+//            });
+//            // 这里注意使用swagger 会导致各种问题,请直接用浏览器或者用postman
+//            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+//            response.setCharacterEncoding("utf-8");
+//            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+//            String fileName = URLEncoder.encode("展示数据", "UTF-8").replaceAll("\\+", "%20");
+//            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+//            try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()) {
+//                //设置动态标题
+//                String title=showDataDto.getAreaName()+"排水普查作业量详表";
+//                String contentYsHeader="道路名称:"+showDataDto.getRoadName()+"          排水性质:"+PipeTypeEnum.YS.getName();
+//                List<List<String>> ysheaders = ShowDataExportHeader.getHeaders("成都兴蓉市政设施管理有限公司" + title,contentYsHeader);
+//                WriteSheet writeSheet = EasyExcel.writerSheet("YS").head(ysheaders).registerWriteHandler(ShowDataExportHeader.setTableStyle()).build();
+//                excelWriter.write(showDataYsExports, writeSheet);
+//
+//                String contentWsHeader="道路名称:"+showDataDto.getRoadName()+"          排水性质:"+PipeTypeEnum.WS.getName();
+//                List<List<String>> wsheaders = ShowDataExportHeader.getHeaders("成都兴蓉市政设施管理有限公司" + title,contentWsHeader);
+//                WriteSheet writeSheet2 = EasyExcel.writerSheet( "WS").head(wsheaders).registerWriteHandler(ShowDataExportHeader.setTableStyle()).build();
+//                excelWriter.write(showDataWsExports, writeSheet2);
+//                // 千万别忘记finish 会帮忙关闭流
+//                excelWriter.finish();
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//            EasyExcel.write(response.getOutputStream());
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+    }
+
+
     /**
      * 通过id查询
      * @param id id

+ 59 - 0
DataCheck/src/main/java/com/tofly/dataCheck/em/DataSummarizationEnum.java

@@ -0,0 +1,59 @@
+package com.tofly.dataCheck.em;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.springframework.util.StringUtils;
+
+@Getter
+@AllArgsConstructor
+public enum DataSummarizationEnum {
+
+    AREA("行政区", "area"),
+    NAME("所属项目", "name"),
+    TESTINGZONE("测区", "testingZone"),
+    ROADNAME("道路名称", "roadName"),
+    STARTCODE("起点编码", "startCode"),
+    ENDCODE("终点编码", "endCode"),
+    PIPELENGTH("管道长度", "pipeLength"),
+    SECTIONDATAONE("断面数据1", "sectionDataOne"),
+    SECTIONDATATWO("断面数据2", "sectionDataTwo"),
+    ISORDER("是否下达", "isOrder"),
+
+    PIPEPROPERTIES("管段属性", "pipeProperties"),
+    PDCHECKLENGTH("判读预处理长度", "pdCheckLength"),
+    NOHANDLEBIGTYPE("暂无法预处理大分类", "noHandleBigType"),
+    NOHANDLELENGTH("暂无法预处理长度", "noHandleLength"),
+    NOHANDLETIME("暂无法预处理上报时间", "noHandleTime"),
+    WATERLEVELSURETIME("水位确认时间", "waterLevelSureTime"),
+    WATERLEVELUP("水位20CM及以上长度", "waterLevelUp"),
+    WATERLEVELDOWN("水位20CM以下长度", "waterLevelDown"),
+
+    VIDEOTIME("视频显示时间", "videoTime"),
+    VIDEOSECTIONDATAONE("视频显示断面数据1", "videoSectionDataOne"),
+    VIDEOSECTIONDATATWO("视频显示断面数据2", "videoSectionDataTwo"),
+    PDCHECKLENGTH1("判读检测长度", "pdCheckLength1"),
+    NOHANDLELENGTH1("暂无法预处理长度", "noHandleLength1"),
+    ISCHECK("是否检测", "isCheck"),
+    RAINTASK("雨水任务单", "rainTask")
+    ;
+
+    String name;
+
+    String code;
+
+
+    public static String getNameForCode(String code) {
+        String path = "";
+        if (StringUtils.isEmpty(code)) {
+            return path;
+        }
+
+        for (DataSummarizationEnum e : DataSummarizationEnum.values()) {
+            if (e.code.equalsIgnoreCase(code)) {
+                path = e.name;
+                break;
+            }
+        }
+        return path;
+    }
+}

+ 42 - 0
DataCheck/src/main/java/com/tofly/dataCheck/entity/DataSummarizationDto.java

@@ -0,0 +1,42 @@
+/*
+ * Author: wangjian
+ * 生成entity
+ */
+package com.tofly.dataCheck.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * @author hs
+ * @date Wed Nov 23 00:00:00 CST 2022
+ */
+@Data
+@ApiModel
+public class DataSummarizationDto extends Model<DataSummarizationDto> {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "项目Id",required = true)
+    private String prjId;
+
+    @ApiModelProperty(value = "行政区",required = true)
+    private String area;
+
+    @ApiModelProperty(value = "测区")
+    private String testingZone;
+
+    @ApiModelProperty(value = "探测数据( ,隔开 列如 road_name,start_code....)")
+    private String detectData;
+
+    @ApiModelProperty(value = "预处理数据( ,隔开 列如 road_name,start_code....)")
+    private String handleData;
+
+    @ApiModelProperty(value = "检测数据( ,隔开 列如 road_name,start_code....)")
+    private String checkData;
+
+
+}

+ 98 - 0
DataCheck/src/main/java/com/tofly/dataCheck/entity/DataSummarizationVo.java

@@ -0,0 +1,98 @@
+/*
+ * Author: wangjian
+ * 生成entity
+ */
+package com.tofly.dataCheck.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * @author hs
+ * @date Wed Nov 23 00:00:00 CST 2022
+ */
+@Data
+@ApiModel
+public class DataSummarizationVo extends Model<DataSummarizationVo> {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "所属项目")
+    private String name;
+
+    @ApiModelProperty(value = "行政区",required = true)
+    private String area;
+
+    @ApiModelProperty(value = "测区")
+    private String testingZone;
+
+    @ApiModelProperty(value = "道路名称")
+    private String roadName;
+
+    @ApiModelProperty(value = "起点编码")
+    private String startCode;
+
+    @ApiModelProperty(value = "终点编码")
+    private String endCode;
+
+    @ApiModelProperty(value = "管道长度")
+    private String pipeLength;
+
+    @ApiModelProperty(value = "断面数据1")
+    private String sectionDataOne;
+
+    @ApiModelProperty(value = "断面数据2")
+    private String sectionDataTwo;
+
+    @ApiModelProperty(value = "是否下达")
+    private String isOrder;
+
+    @ApiModelProperty(value = "管段属性")
+    private String pipeProperties;
+
+    @ApiModelProperty(value = "判读预处理长度")
+    private String pdCheckLength;
+
+    @ApiModelProperty(value = "暂无法预处理大分类")
+    private String noHandleBigType;
+
+    @ApiModelProperty(value = "暂无法预处理长度")
+    private String noHandleLength;
+
+    @ApiModelProperty(value = "暂无法预处理上报时间")
+    private String noHandleTime;
+
+    @ApiModelProperty(value = "水位确认时间")
+    private String waterLevelSureTime;
+
+    @ApiModelProperty(value = "水位20CM及以上长度")
+    private String waterLevelUp;
+
+    @ApiModelProperty(value = "水位20CM以下长度")
+    private String waterLevelDown;
+
+    @ApiModelProperty(value = "视频显示时间")
+    private String videoTime;
+
+    @ApiModelProperty(value = "视频显示断面数据1")
+    private String videoSectionDataOne;
+
+    @ApiModelProperty(value = "视频显示断面数据2")
+    private String videoSectionDataTwo;
+
+    @ApiModelProperty(value = "判读检测长度")
+    private String pdCheckLength1;
+
+    @ApiModelProperty(value = "暂无法预处理长度")
+    private String noHandleLength1;
+
+    @ApiModelProperty(value = "是否检测")
+    private String isCheck;
+
+    @ApiModelProperty(value = "雨水任务单")
+    private String rainTask;
+
+}

+ 7 - 0
DataCheck/src/main/java/com/tofly/dataCheck/mapper/DetectDataMapper.java

@@ -34,4 +34,11 @@ public interface DetectDataMapper extends BaseMapper<DetectData> {
 
     Page<ShowDataVo> showDataList(Page<ShowDataDto> page,@Param("param")ShowDataDto showDataDto);
 
+    Page<Map<String,Object>> dataSummarizationPage(Page<DataSummarizationDto> page,@Param("param")DataSummarizationDto dataSummarizationDto);
+
+    List<String> getDetectAreas();
+
+    List<String> getTestingZone(@Param("area")String area);
+
+
 }

+ 7 - 0
DataCheck/src/main/java/com/tofly/dataCheck/service/DetectDataService.java

@@ -36,4 +36,11 @@ public interface DetectDataService extends IService<DetectData> {
 
     Page<ShowDataVo> showDataList(Page<ShowDataDto> page,ShowDataDto showDataDto) ;
 
+    Page<Map<String,Object>> dataSummarizationPage(Page<DataSummarizationDto> page,DataSummarizationDto dataSummarizationDto);
+
+    List<String> getDetectAreas();
+
+    List<String> getTestingZone(@Param("area")String area);
+
+
 }

+ 29 - 0
DataCheck/src/main/java/com/tofly/dataCheck/service/impl/DetectDataServiceImpl.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.tofly.common.core.util.StringUtil;
 import com.tofly.dataCheck.config.DataStatusEnum;
+import com.tofly.dataCheck.em.DataSummarizationEnum;
 import com.tofly.dataCheck.entity.*;
 import com.tofly.dataCheck.entity.DetectData;
 import com.tofly.dataCheck.mapper.DetectDataMapper;
@@ -22,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -141,6 +143,33 @@ public class DetectDataServiceImpl extends ServiceImpl<DetectDataMapper, DetectD
        return this.baseMapper.showDataList(page,showDataDto);
     }
 
+    @Override
+    public Page<Map<String, Object>> dataSummarizationPage(Page<DataSummarizationDto> page, DataSummarizationDto dataSummarizationDto) {
+        Page<Map<String, Object>> mapPage = this.baseMapper.dataSummarizationPage(page, dataSummarizationDto);
+        List<Map<String, Object>> records = mapPage.getRecords();
+        List<Map<String, Object>> result=new ArrayList<>();
+        records.forEach(d->{
+            Map<String, Object> map=new HashMap<>();
+            d.forEach((k,v)->{
+                String nameForCode = DataSummarizationEnum.getNameForCode(k);
+                map.put(nameForCode, v);
+            });
+            result.add(map);
+        });
+        return mapPage.setRecords(records);
+    }
+
+    @Override
+    public List<String> getDetectAreas() {
+        return this.baseMapper.getDetectAreas();
+    }
+
+    @Override
+    public List<String> getTestingZone(String area) {
+        return this.baseMapper.getTestingZone(area);
+    }
+
+
     @Override
     public boolean save(DetectData entity) {
         return false;

+ 40 - 3
DataCheck/src/main/resources/mapper/DetectDataMapper.xml

@@ -173,8 +173,7 @@
         c.id prj_id
         FROM
         tf_ywpn_detect_data_w a
-        LEFT JOIN tf_ywpn_batchinfo_w b ON a.info_id = b.id
-        left join tf_ywpn_project_standing_book c on b.prj_id=c.id
+        left join tf_ywpn_project_standing_book c on a.prj_id=c.id
         WHERE
         c.name is not null
         and a.del_flag=0
@@ -194,10 +193,23 @@
 
     <select id="detectGroupData"  resultMap="detectDataVoMap">
       select area,testing_zone,road_name from tf_ywpn_detect_data_w
-      where `status`=0
+      where del_flag=0 and `status`=0
       GROUP BY area,testing_zone,road_name
     </select>
 
+    <select id="getDetectAreas"  resultType="java.lang.String">
+      select area from tf_ywpn_detect_data_w
+      where del_flag=0 and `status`=0
+      GROUP BY area
+    </select>
+
+    <select id="getTestingZone"  resultType="java.lang.String">
+       select testing_zone from tf_ywpn_detect_data_w
+        where del_flag=0 and `status`=0
+        and area=#{area}
+        GROUP BY testing_zone
+    </select>
+
     <update id="updateData">
         UPDATE tf_ywpn_detect_data_w
         SET `status` = 1
@@ -321,6 +333,31 @@
         </if>
     </select>
 
+    <select id="dataSummarizationPage"  resultType="java.util.Map">
+        select name,area,testing_zone
+        <if test="param.detectData!=null and param.detectData!=''">
+            ,${param.detectData}
+        </if>
+        <if test="param.handleData!=null and param.handleData!=''">
+            ,${param.handleData}
+        </if>
+        <if test="param.checkData!=null and param.checkData!=''">
+            ,${param.checkData}
+        </if>
+        from view_data_summarization
+        <where>
+           1=1
+            <if test="param.prjId!=null and param.prjId!=''">
+                and prj_id=#{param.prjId}
+            </if>
+            <if test="param.area!=null and param.area!=''">
+                and area=#{param.area}
+            </if>
+            <if test="param.testingZone!=null and param.testingZone!=''">
+                and testing_zone=#{param.testingZone}
+            </if>
+        </where>
+    </select>
 
 
 </mapper>