From fc2adc3521931c2f7bc5b2f3a3d94ebf407828d6 Mon Sep 17 00:00:00 2001
From: yxm <zhp1521624>
Date: Mon, 01 Jul 2024 09:40:55 +0800
Subject: [PATCH] 水库堤防白蚁普查资料当前页压缩导出新增条件优化v20240701

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java |  217 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 210 insertions(+), 7 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java
index 0c739c7..bb4fe64 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java
@@ -1,25 +1,39 @@
 package cn.gistack.sm.sjztmd.service.impl;
 
-import cn.gistack.sm.sjztmd.entity.TbDykeInvestigation;
-import cn.gistack.sm.sjztmd.entity.TbDykeInvestigationState;
-import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
-import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigationState;
+import cn.gistack.sm.sjztmd.entity.*;
 import cn.gistack.sm.sjztmd.mapper.TbDykeInvestigationMapper;
+import cn.gistack.sm.sjztmd.mapper.TbResDykeMapper;
 import cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper;
 import cn.gistack.sm.sjztmd.service.*;
-import cn.gistack.sm.sjztmd.vo.TbDykeInvestigationParam;
-import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
+import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
+import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
+import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
+import cn.gistack.sm.sjztmd.util.DownloadZipUtils;
+import cn.gistack.sm.sjztmd.vo.*;
+import com.alibaba.nacos.shaded.com.google.gson.Gson;
+import com.alibaba.nacos.shaded.com.google.gson.JsonArray;
+import com.alibaba.nacos.shaded.com.google.gson.JsonElement;
+import com.alibaba.nacos.shaded.com.google.gson.JsonObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.val;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @PROJECT_NAME: skjcmanager
@@ -34,6 +48,18 @@
 
 	@Autowired
 	private ITbDykeInvestigationStateService tbDykeInvestigationStateService;
+
+	@Autowired
+	private IAttAdBaseService attAdBaseService;
+
+	@Autowired
+	private TbResDykeMapper tbResDykeMapper;
+
+	@Autowired
+	private HttpServletRequest request;
+
+//	@Autowired
+//	private HttpServletResponse response;
 
 	@Override
 	@Transactional
@@ -67,7 +93,21 @@
 		tbDykeInvestigationStateService.saveOrUpdate(state);
 
 		entity.setTbStateId(state.getGuid());
-		return R.status(this.saveOrUpdate(entity));
+//		return R.status(this.saveOrUpdate(entity));
+
+		// 如果有危害,设置危害长度只留一个
+		if (entity.getHazardRating().equals("有危害")) {
+			QueryWrapper qw = new QueryWrapper();
+			qw.eq("\"dyke_guid\"",entity.getDykeGuid());
+			qw.eq("\"unit\"",entity.getUnit());
+			long count = count(qw);
+			if (count > 0) {
+				entity.setDangerLength(0D);
+			}
+		}
+
+		this.saveOrUpdate(entity);
+		return R.data(entity);
 	}
 
 	@Override
@@ -103,6 +143,7 @@
 //		delete.eq("\"tb_state_id\"",state.getGuid());
 //		boolean remove = remove(delete);
 
+		String lengStr = "";//处理危害长度问题
 		for (int i = 0; i < list.size(); i++) {
 			TbDykeInvestigation tbDykeInvestigation = list.get(i);
 			//id清空方便批量新增
@@ -118,10 +159,172 @@
 
 			//设置状态表id
 			tbDykeInvestigation.setTbStateId(state.getGuid());
+
+
+			//处理危害长度
+			if (tbDykeInvestigation.getHazardRating().equals("有危害")) {
+				if (lengStr.indexOf(tbDykeInvestigation.getUnit()) > -1) {
+					tbDykeInvestigation.setDangerLength(0D);
+				}
+			}
+
+			lengStr = lengStr + tbDykeInvestigation.getUnit();
+
 		}
 
 		return R.status(saveOrUpdateBatch(list));
 
 	}
 
+	@Override
+	public StatisticsPie statisticsPie(StatisticsParams statisticsParams) {
+		if (StringUtil.isNotBlank(statisticsParams.getAdCode())){
+			//若行政区划不为空
+			String adCode =statisticsParams.getAdCode();
+
+			if (adCode.substring(0,4).indexOf("00") > -1) {
+				//前四位包含00说明是湖北省      4200/00000000
+				adCode =StringUtil.format("%{}%",adCode.substring(0,2));
+			} else if (adCode.substring(0,6).indexOf("00") > -1) {
+				//前六位包含00说明是市级    420100/000000
+//				adCode = paramAd.substring(0,4);
+				adCode =StringUtil.format("%{}%",adCode.substring(0,4));
+			}else if (adCode.substring(0,8).indexOf("00") > -1){
+				//前8位包含00 说明是区级     42011700/0000
+//				adCode = paramAd.substring(0,6);
+				adCode =StringUtil.format("%{}%",adCode.substring(0,6));
+			}
+			statisticsParams.setAdCode(adCode);
+		}
+
+		return baseMapper.statisticsPie(statisticsParams);
+	}
+
+	@Override
+	public List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams) {
+//		String adCode = statisticsParams.getAdCode();
+//		String adGuid = "";
+//		//默认省
+//		String adGrad = "1";
+//
+//		//若行政区划不为空
+//		if (StringUtil.isNotBlank(adCode)){
+//			if (adCode.substring(0,4).indexOf("00") > -1) {
+//				//前四位包含00说明是湖北省      4200/00000000
+//				adGrad = "1";
+//				adGuid =StringUtil.format("%{}%",adCode.substring(0,2));
+//				statisticsParams.setAdGuid(adGuid);
+//			} else if (adCode.substring(0,6).indexOf("00") > -1) {
+//				//前六位包含00说明是市级    420100/000000
+//				adGrad = "2";
+//				adGuid =StringUtil.format("%{}%",adCode.substring(0,4));
+//				statisticsParams.setAdGuid(adGuid);
+//			}else if (adCode.substring(0,8).indexOf("00") > -1){
+//				//前8位包含00 说明是区级     42011700/0000
+//				adGrad = "3";
+//			}
+//		}
+//
+//		List<StatisticsBar> list = new ArrayList<>();
+//
+//		if (adGrad.equals("3")){
+//			//区级展示自己
+//			list =  baseMapper.getCountyStatisticsBar(statisticsParams);
+//		}else if (adGrad.equals("2")){
+//			//市级展示区
+//			list =  baseMapper.getCityStatisticsBar(statisticsParams);
+//		}else  if (adGrad.equals("1")){
+//			//省级展示市
+//			list =  baseMapper.getProvinceStatisticsBar(statisticsParams);
+//		}
+
+
+		AttAdBase  attAdBase = attAdBaseService.getYwxtAdDetail(statisticsParams.getAdCode());
+		statisticsParams.setAdGrad(attAdBase.getAdGrad());
+		List list = baseMapper.getStatisticsBar(statisticsParams);
+		return list;
+	}
+
+	/**
+	 *
+	 * @param page
+	 * @return 操作状态
+	 */
+	@Override
+	public List<String> downZip(IPage<ImageAndVideoVO> page,String type) throws IOException {
+		List<ImageAndVideoVO> iamgeAndVideoUrls;
+		if (type.equals("1")) {
+			iamgeAndVideoUrls = baseMapper.getIamgeAndVideoUrl(page);
+		}else {
+			iamgeAndVideoUrls = baseMapper.getIamgeAndVideoUrl(null);
+		}
+
+		List<String> urls = new ArrayList<>();
+		for (ImageAndVideoVO iamgeAndVideoUrl : iamgeAndVideoUrls) {
+			urls.add(iamgeAndVideoUrl.getImagesUrl());
+			urls.add(iamgeAndVideoUrl.getVideosUrl());
+		}
+		List<String> urlss = DownloadZipUtils.getUrls(urls);
+		if (urlss.isEmpty()) {
+			return null;
+		}
+//		}else {
+//			// 打印提取的URLs
+//			for (String url1 : urlss) {
+//				DownloadZipUtils.downloadFile(url1);
+//			}
+//			DownloadZipUtils.downloadZip(request, response,0);
+			return urlss;
+		}
+
+	@Override
+	public List<DyketionVO> downloadZipCopy(IPage<TbResDykeVO> page,String type,TbResDykeVO tbResDykeVO) {
+		//获取已审批的数据
+		List<DyketionVO> iamgeAndVideoUrlcopy = baseMapper.getIamgeAndVideoUrlcopy();
+
+
+		for (DyketionVO dyketionVO : iamgeAndVideoUrlcopy) {
+			List<String> urls = new ArrayList<>();
+			List<DyketionallVO> dyketionallVOS = new ArrayList<>();
+			if(dyketionVO.getImagesUrl() != null){
+			urls.add(dyketionVO.getImagesUrl());
+			}
+			if(dyketionVO.getVideosUrl() != null) {
+				urls.add(dyketionVO.getVideosUrl());
+			}
+
+			//解析json中url 放入list集合中
+			List<String> urlss = DownloadZipUtils.getUrls(urls);
+
+			int counter=1;
+			for (String s : urlss) {
+				DyketionallVO dyketionallVO = new DyketionallVO();
+				dyketionallVO.setUrlname(dyketionVO.getDname()+"+"+dyketionVO.getRn()+String.format("%02d", counter++)+s.substring(s.length() - 4));
+				dyketionallVO.setUrl(s);
+				dyketionallVOS.add(dyketionallVO);
+			}
+			dyketionVO.setDyketionallVOS(dyketionallVOS);
+		}
+		//分页情况下
+	    if(type.equals("1")){
+			//获取分页信息
+//			TbResDykeVO tbResDykeVO = new TbResDykeVO();
+//			tbResDykeVO.setTbYear(2024);
+			List<TbResDykeVO> tbResDykeVOIPage = tbResDykeMapper.findTbResDykePcBy(page, tbResDykeVO);
+
+			List<String> dykeCode = new ArrayList<>();
+			for (TbResDykeVO imageAndVideoVO : tbResDykeVOIPage) {
+				dykeCode.add(imageAndVideoVO.getGuid());
+			}
+			List<DyketionVO> iamgeAndVideoUrls = iamgeAndVideoUrlcopy.stream()
+				.filter(dyketionVO -> dykeCode.contains(dyketionVO.getCode()))
+				.collect(Collectors.toList());
+
+			return iamgeAndVideoUrls;
+		}
+
+
+		return iamgeAndVideoUrlcopy;
+	}
+
 }

--
Gitblit v1.9.3