Răsfoiți Sursa

地价添加

gushoubang 11 luni în urmă
părinte
comite
198a75f88a

+ 4 - 7
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -17,6 +17,7 @@ import com.onemap.analyse.mapper.base.ShpFileMapper;
 import com.onemap.analyse.mapper.vector.GhdkaMapper;
 import com.onemap.analyse.service.*;
 import com.onemap.analyse.utils.DozerUtils;
+import com.onemap.analyse.utils.NumberUtil;
 import com.onemap.analyse.utils.UnitsUtil;
 import com.onemap.common.core.utils.StringUtils;
 import com.onemap.common.core.web.domain.RequestResult;
@@ -255,7 +256,6 @@ public class FzssServiceImpl implements IFzssService {
 
         // 5.保存规划结果
         Map<String, Object> scheduleResMap = new HashMap<>();
-        // scheduleResMap.put("dkIds", ids);
         scheduleResMap.put("rawTableName", rawTable);
         scheduleResMap.put("rwbsm", fzxzDTO.getBsm());
         scheduleResMap.put("sjyb", fzxzDTO.getSjy());
@@ -399,7 +399,7 @@ public class FzssServiceImpl implements IFzssService {
         for (Map<String, Object> landMap : resList) {
             Integer dkId = (Integer) landMap.get("id");
             String geom = (String) landMap.get("geom");
-            Double area = (Double) landMap.get("siweiArea");
+            Double area = (Double) landMap.get("siweiarea");
 
             FzxzResDTO fzxzResDTO = DozerUtils.map(resMap, FzxzResDTO.class);
             fzxzResDTO.setBsm(StringUtils.getUUID());
@@ -472,12 +472,9 @@ public class FzssServiceImpl implements IFzssService {
                 Map<String, Object> dkInfoMap = dkRawMap.get(fzxzResDTO.getDkid());
                 dkMap.put("dkbm", dkInfoMap.get("dkbm"));// 地块编码
                 dkMap.put("kzxxgydmc", dkInfoMap.get("kzxxgydmc"));// 地块类型
-                // dkMap.put("landPrice", fzxzResDTO.getLandPrice());// 地价
-                // TODO
-                dkMap.put("landPrice", 100);// 地价
+                dkMap.put("landPrice", NumberUtil.double2TwoDecimal(fzxzResDTO.getLandPrice()));// 地价
                 dkMap.put("geom", dkResMap.get(dkId).getGeom());
-                // dkMap.put("area", UnitsUtil.m2ToMu(dkResMap.get(dkId).getArea()));// 面积
-                dkMap.put("area", dkResMap.get(dkId).getArea());// 面积
+                dkMap.put("area", NumberUtil.double2TwoDecimal(UnitsUtil.m2ToMu(dkResMap.get(dkId).getArea())));// 面积
             }
             dkMaps.add(dkMap);
         }

+ 27 - 10
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/utils/NumberUtil.java

@@ -3,7 +3,8 @@ package com.onemap.analyse.utils;
 import java.math.BigDecimal;
 
 public class NumberUtil {
-    private NumberUtil() { }
+    private NumberUtil() {
+    }
 
     /**
      * 中文数字
@@ -43,7 +44,7 @@ public class NumberUtil {
             intNum *= -1;
         }
         int count = 0;
-        while(intNum > 0) {
+        while (intNum > 0) {
             sb.insert(0, CN_NUM[intNum % 10] + CN_UNIT[count]);
             intNum = intNum / 10;
             count++;
@@ -52,7 +53,7 @@ public class NumberUtil {
         if (isNegative)
             sb.insert(0, CN_NEGATIVE);
         // 10-19时,得到十~十九而不是一十~一十九
-        sb = "一".equals(sb.substring(0,1)) && intNum2 < 100 && intNum2 > 1 ? sb2.append(sb.substring(1, sb.length())) : sb;
+        sb = "一".equals(sb.substring(0, 1)) && intNum2 < 100 && intNum2 > 1 ? sb2.append(sb.substring(1, sb.length())) : sb;
         return sb.toString().replaceAll("零[千百十]", "零").replaceAll("零+万", "万")
                 .replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
                 .replaceAll("零+", "零").replaceAll("零$", "");
@@ -71,27 +72,27 @@ public class NumberUtil {
 
         StringBuffer sb = new StringBuffer();
 
-        //将小数点后面的零给去除
+        // 将小数点后面的零给去除
         String numStr = bigDecimalNum.abs().stripTrailingZeros().toPlainString();
 
         String[] split = numStr.split("\\.");
-        String integerStr = int2chineseNum( Integer.parseInt(split[0]));
+        String integerStr = int2chineseNum(Integer.parseInt(split[0]));
 
         sb.append(integerStr);
 
-        //如果传入的数有小数,则进行切割,将整数与小数部分分离
+        // 如果传入的数有小数,则进行切割,将整数与小数部分分离
         if (split.length == 2) {
-            //有小数部分
+            // 有小数部分
             sb.append(CN_POINT);
             String decimalStr = split[1];
             char[] chars = decimalStr.toCharArray();
             for (int i = 0; i < chars.length; i++) {
-                int index = Integer.parseInt( String.valueOf(chars[i]));
+                int index = Integer.parseInt(String.valueOf(chars[i]));
                 sb.append(CN_NUM[index]);
             }
         }
 
-        //判断传入数字为正数还是负数
+        // 判断传入数字为正数还是负数
         int signum = bigDecimalNum.signum();
         if (signum == -1) {
             sb.insert(0, CN_NEGATIVE);
@@ -99,4 +100,20 @@ public class NumberUtil {
 
         return sb.toString();
     }
-}
+
+    /**
+     * float 保留两位小数
+     */
+    public static float float2TwoDecimal(float f) {
+        BigDecimal b = new BigDecimal(f);
+        return b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
+    }
+
+    /**
+     * double 保留两位小数
+     */
+    public static double double2TwoDecimal(double d) {
+        BigDecimal b = new BigDecimal(d);
+        return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+    }
+}

+ 4 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/utils/UnitsUtil.java

@@ -1,5 +1,8 @@
 package com.onemap.analyse.utils;
 
+/**
+ * 单位转换工具类
+ */
 public class UnitsUtil {
     // 平方米转亩函数
     public static double m2ToMu(Float m2) {
@@ -8,6 +11,7 @@ public class UnitsUtil {
         }
         return m2 * 0.0015;
     }
+
     // 平方米转亩函数
     public static double m2ToMu(Double m2) {
         if (m2 == null) {

+ 6 - 5
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/base/FzxzResMapper.xml

@@ -6,9 +6,9 @@
 
     </resultMap>
     <insert id="saveOne">
-        INSERT INTO t_fzss_fzxz_res (bsm, rwbsm, sjyb, ydxz, create_at, area, geom, dkid)
+        INSERT INTO t_fzss_fzxz_res (bsm, rwbsm, sjyb, ydxz, create_at, area, geom, dkid, land_price)
         VALUES (#{bsm}, #{rwbsm}, #{sjyb}, #{ydxz}, now(),
-                #{area}, public.st_geomfromewkt(#{geom,jdbcType=OTHER}), #{dkid})
+                #{area}, public.st_geomfromewkt(#{geom,jdbcType=OTHER}), #{dkid}, #{landPrice})
     </insert>
     <select id="getListByRwbsm" resultMap="fzxzResMap">
         SELECT bsm,
@@ -16,9 +16,10 @@
                sjyb,
                ydxz,
                create_at,
-               public.st_area(geom::public.geography) as area,
-               public.st_asewkt(geom)                 AS geom,
-               dkid
+               area,
+               public.st_asewkt(geom) AS geom,
+               dkid,
+               land_price
         FROM t_fzss_fzxz_res
         WHERE rwbsm = #{rwbsm}
     </select>

+ 0 - 5
onemap-modules/onemap-file/src/main/java/com/onemap/file/service/ISysFileService.java

@@ -2,7 +2,6 @@ package com.onemap.file.service;
 
 import com.onemap.common.core.domain.UploadZipDTO;
 import com.onemap.common.core.web.domain.RequestResult;
-import com.onemap.system.api.domain.GhtgCl;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -32,13 +31,9 @@ public interface ISysFileService {
 
     RequestResult  uploadShpZip(MultipartFile file,String fromRoute) throws Exception;
 
-    // GhtgCl uploadTgcl(MultipartFile file, Integer type) throws Exception;
-
     String getShpGeoJson(String shppath);
 
     UploadZipDTO uploadZip(MultipartFile file);
 
-    // RequestResult uploadZhxzZip(MultipartFile file);
-
     String splitFileUpload(@RequestParam("file") MultipartFile file, @RequestParam("chunk") int chunk, @RequestParam("chunks") int chunks, @RequestParam("name") String name, @RequestParam("md5") String md5);
 }