Преглед изворни кода

收储的用途分析,增加供地

chenendian пре 6 дана
родитељ
комит
65ae7d28b8

+ 1 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/cadastre/StorageController.java

@@ -4,9 +4,7 @@ import com.siwei.apply.domain.cadastre.LandStorageInOutReportDTO;
 import com.siwei.apply.domain.cadastre.LandStorageReportDTO;
 import com.siwei.apply.domain.res.StorageYearStatisticsRes;
 import com.siwei.apply.domain.res.TrendStatisticsData;
-import com.siwei.apply.domain.res.TrendStatisticsRes;
 import com.siwei.apply.domain.res.TrendUseStatisticsData;
-import com.siwei.apply.domain.vo.IdsVo;
 import com.siwei.apply.domain.vo.LandSupplyProjectVO;
 import com.siwei.apply.service.cadastre.impl.StorageServiceImpl;
 import com.siwei.common.core.domain.R;
@@ -21,7 +19,6 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -133,6 +130,7 @@ public class StorageController extends BaseController {
             List<TrendUseStatisticsData> useAreaTrendStatisticsList = storageServiceImpl.getData2(year);
             return R.ok(useAreaTrendStatisticsList);
         } catch (Exception e) {
+            e.printStackTrace();
             return R.fail(e.getMessage());
         }
     }
@@ -182,7 +180,6 @@ public class StorageController extends BaseController {
                                                        @RequestParam Integer supplyType,
                                                        @RequestParam(required = false) String useType) {
         try {
-            //List<LandSupplyProjectVO> resList = storageServiceImpl.projectList(year, supplyType, useType);
             List<LandSupplyProjectVO> resList = storageServiceImpl.inOutProjectList(year, supplyType, useType);
             return R.ok(resList);
         } catch (Exception e) {

+ 2 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/res/TrendUseStatisticsData.java

@@ -12,7 +12,7 @@ public class TrendUseStatisticsData {
     private String useName; // 用途名称
     private String inDataArea; //入库地块面积
     private String outDataArea; //出库地块面积
-    private String inDataGeom; //入库地块矢量
-    private String outDataGeom; //出库地块矢量
+//    private String inDataGeom; //入库地块矢量
+//    private String outDataGeom; //出库地块矢量
 
 }

+ 58 - 8
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/cadastre/impl/StorageServiceImpl.java

@@ -549,20 +549,72 @@ public class StorageServiceImpl {
         if ("0".equals(year)) {
             year = null;
         }
+
+        //出库数据(供应数据)
+        List<TdgyStatisticsRes> completeSjgdList = tdgyMapper.getSjgdListByYear(year, null, null, null);
+        List<Tdgy> tdgyList = tdgyMapper.getTdgyList(year,year);
+        //这里获取实际供地数据:根据年份进行分组:
+
+        Map<String,Double> outDataAreaMap =  new TreeMap<>();
+        //这里获取实际供地数据:根据年份进行分组:
+        if(CollectionUtils.isNotEmpty(completeSjgdList)){
+            for (TdgyStatisticsRes item : completeSjgdList) {
+                String tdyt = item.getTdyt();
+                Double area = item.getMjMu() == null ? 0D : item.getMjMu().doubleValue();
+                outDataAreaMap.merge(tdyt, area, Double::sum);
+            }
+        }
+        if(CollectionUtils.isNotEmpty(tdgyList)){
+            for (Tdgy item : tdgyList) {
+                String tdyt = item.getTdyt();
+                Double area = item.getGdArea() == null ? 0D : item.getGdArea().doubleValue();
+                outDataAreaMap.merge(tdyt, area, Double::sum);
+            }
+        }
+
+        //这里code -name
+        Map<String,Double> tmpOutDataAreaMap =  new TreeMap<>();
+        if(MapUtils.isNotEmpty(outDataAreaMap)){
+            Set<String> tdytCodeSet =  outDataAreaMap.keySet();
+            for(String code : tdytCodeSet){
+                String category = getTdytByCode(code);
+                if(StringUtils.isBlank(category)){
+                    category = "未知"+code;
+                }
+                tmpOutDataAreaMap.put(category,outDataAreaMap.get(code));
+            }
+            outDataAreaMap = tmpOutDataAreaMap;
+        }
+
+        //入库数据
         List<Map<String, Object>> statsList = gjShijiShouchuMapper.getStatsByYearAndUse(year);
         List<TrendUseStatisticsData> res = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(statsList)) {
             for (Map<String, Object> stat : statsList) {
                 TrendUseStatisticsData data = new TrendUseStatisticsData();
-                data.setUseName(convertCategory(String.valueOf(stat.get("use_name"))));
+                String category = convertCategory(String.valueOf(stat.get("use_name")));
+                data.setUseName(category);
                 data.setInDataArea(String.valueOf(stat.get("in_data_area")));
-
-
-
                 data.setOutDataArea("0");
+                if(outDataAreaMap.containsKey(category)) {
+                    data.setOutDataArea(String.format("%.2f",outDataAreaMap.remove(category)));
+                }
+                res.add(data);
+            }
+        }
+
+        //如果年份交差情况,剩余的补全
+        if(MapUtils.isNotEmpty(outDataAreaMap)){
+            for (Map.Entry<String, Double> entry : outDataAreaMap.entrySet()) {
+                TrendUseStatisticsData data = new TrendUseStatisticsData();
+                String category = entry.getKey();
+                data.setUseName(category);
+                data.setOutDataArea(String.format("%.2f",entry.getValue()));
+                data.setInDataArea("0");
                 res.add(data);
             }
         }
+
         return res;
     }
 
@@ -570,6 +622,7 @@ public class StorageServiceImpl {
 
 
 
+
     public List<Map<String, Object>> landStock(String year) {
         if(StringUtils.isBlank(year)||"0".equals(year)){
             year = null;
@@ -611,8 +664,6 @@ public class StorageServiceImpl {
     }
 
 
-
-
     public List<LandSupplyProjectVO> inOutProjectList(String year, Integer supplyType,String useType) {
         List<LandSupplyProjectVO> resList = new ArrayList<>();
         if (supplyType == 1||supplyType == 0) {//入库
@@ -656,7 +707,7 @@ public class StorageServiceImpl {
                     vo.setArea(String.format("%.2f", item.getMjMu() == null ? BigDecimal.ZERO : item.getMjMu()));
                     vo.setUseType(category);
                     resList.add(vo);
-                }//
+                }// end for
             }
 
             if(CollectionUtils.isNotEmpty(tdgyList)){
@@ -686,7 +737,6 @@ public class StorageServiceImpl {
         if(StringUtils.isNotBlank(useType)){ //这里通过用途计算
             resList = resList.stream().filter(s->s.getUseType().equals(useType)).collect(Collectors.toList());
         }
-
         return resList;
     }
 

+ 2 - 2
siwei-modules/siwei-apply/src/main/resources/mapper/TdgyMapper.xml

@@ -178,7 +178,7 @@
         xmmc AS xmmc,
         srr AS company,
         gid AS nodeId,
-        COALESCE ( land.code, '23' ) AS tdyt,
+        COALESCE(NULLIF(land.code, ''), '23') AS tdyt,
         gyfs,
         qdrq AS gysj,
         ROUND(COALESCE ( gymj, 0 ) / 666.6666667,2)     AS mjMu,-- 平方米 -> 亩
@@ -282,7 +282,7 @@
             gd.has_zz,
             gd.hbcrfapfwh,
             gd.hbcrht_date,
-            gd.tdyt,
+            COALESCE(NULLIF(gd.tdyt, ''), '23') AS tdyt,
             COALESCE (
                     CASE
                         WHEN gd.gd_unit = '平方米' THEN