From a6cc72176607a0950cbae2f0ff97d49e5725efd4 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 18 Jul 2022 17:41:44 +0800
Subject: [PATCH] 地块

---
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.java            |    1 
 src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java |    9 ++++
 src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml       |    7 ++-
 src/main/java/org/springblade/modules/lang/controller/LandController.java    |   68 +++++++++++++++++++++++++++++++---
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml             |   11 +++++
 src/main/java/org/springblade/modules/lang/service/ILandService.java         |    1 
 6 files changed, 89 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/springblade/modules/lang/controller/LandController.java b/src/main/java/org/springblade/modules/lang/controller/LandController.java
index 847ecb8..a68688b 100644
--- a/src/main/java/org/springblade/modules/lang/controller/LandController.java
+++ b/src/main/java/org/springblade/modules/lang/controller/LandController.java
@@ -148,12 +148,12 @@
 				v1 = (double) Math.round(area * 100) / 100;
 			}
 			land.setLandArea(String.valueOf(v1));
-		}else {
+		} else {
 			land.setLandArea("0");
 		}
 
 		//图片转换上传
-		if (null!=land.getUrl() && !land.getUrl().equals("")){
+		if (null != land.getUrl() && !land.getUrl().equals("")) {
 			try {
 				//上传
 				String url = ossEndpoint.uploadBase64String(land.getUrl());
@@ -209,7 +209,7 @@
 		}
 
 		//图片转换上传
-		if (null!=land.getUrl() && !land.getUrl().equals("")){
+		if (null != land.getUrl() && !land.getUrl().equals("")) {
 			try {
 				//上传
 				String url = ossEndpoint.uploadBase64String(land.getUrl());
@@ -221,6 +221,61 @@
 		}
 		land.setLandArea(String.valueOf(v1));
 		land.setType(1);
+		return R.status(landService.updateLandById(land));
+	}
+
+	/**
+	 * 地块详情页面修改地块面积
+	 */
+	@PostMapping("/updateLandAr")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入land")
+	public R updateLandAr(@Valid @RequestBody Land land) {
+		String range = land.getLandRange();
+		//坐标转换
+		if (null != land.getLandRange() && !land.getLandRange().equals("")) {
+			//替换逗号为空格
+			String sNull = land.getLandRange().replaceAll(",", " ");
+			//替换分号为逗号
+			String replaceAll = sNull.replaceAll(";", ",");
+			land.setLandRange("'POLYGON((" + replaceAll + "))'");
+		}
+		List<Point2D.Double> points = new ArrayList<Point2D.Double>();
+		double v1;
+		String landRange = range;
+		String[] s1 = landRange.split(";");
+		for (String ss : s1) {
+			String[] temp = ss.split(",");
+			Point2D.Double point = new Point2D.Double(Double.parseDouble(temp[0]),
+				Double.parseDouble(temp[1]));
+			points.add(point);
+		}
+		PolyginArea tp = new PolyginArea();
+		double area = tp.getAreaByxy(points);
+		Integer landUnit = land.getLandUnit();
+		//(0: 亩  1:分  2:平方米
+		if (landUnit == 0) {
+			double v = area * 0.0015;
+			v1 = (double) Math.round(v * 100) / 100;
+		} else if (landUnit == 1) {
+			double v = area * 0.015;
+			v1 = (double) Math.round(v * 100) / 100;
+		} else {
+			v1 = (double) Math.round(area * 100) / 100;
+		}
+
+		//图片转换上传
+		if (null != land.getUrl() && !land.getUrl().equals("")) {
+			try {
+				//上传
+				String url = ossEndpoint.uploadBase64String(land.getUrl());
+				//回填url
+				land.setUrl(url);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		land.setLandArea(String.valueOf(v1));
 		return R.status(landService.updateLandById(land));
 	}
 
@@ -256,6 +311,7 @@
 
 	/**
 	 * 地块列表(不分页)
+	 *
 	 * @param land
 	 * @return
 	 */
@@ -317,7 +373,7 @@
 		int size = list1.size();
 		Map map = new HashMap();
 		//地块使用率
-		if(snum!=0.0|| num!=0.0){
+		if (snum != 0.0 || num != 0.0) {
 			double v = snum / num;
 			double v1 = v * 100;
 			DecimalFormat df = new DecimalFormat("#0.00");
@@ -327,8 +383,7 @@
 			map.put("zarea", (double) Math.round(num * 100) / 100);
 			map.put("sarea", (double) Math.round(snum * 100) / 100);
 			map.put("num", size);
-		}
-		else {
+		} else {
 			map.put("rate", 0.0);
 			map.put("zarea", 0.0);
 			map.put("sarea", 0.0);
@@ -339,6 +394,7 @@
 
 	/**
 	 * 大屏地块统计接口
+	 *
 	 * @param land 农场
 	 * @return
 	 */
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
index 88986c7..1ec5415 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
@@ -63,6 +63,7 @@
 	 * @return
 	 */
 	int updateLandById(@Param("land") Land land);
+	int updateLandAr(@Param("land") Land land);
 
 	List selectLandList(String userid);
 
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
index f790a3a..7f30be0 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
@@ -17,6 +17,7 @@
 
     <select id="selectLandPage" resultMap="landResultMap">
         SELECT l.land_name,
+        l.land_unit,
         l.id,
         l.land_area ,
         ST_ASTEXT(land_range) as land_range,
@@ -139,6 +140,16 @@
         where id = #{land.id}
     </update>
 
+    <update id="updateLandAr">
+        update sys_land set user_id = #{land.userId},
+        land_area = #{land.landArea},
+        <if test="land.landRange!=null and land.landRange!=''">
+            land_range = ST_GeomFromText(${land.landRange}),
+        </if>
+        url = #{land.url},
+        where id = #{land.id}
+    </update>
+
     <select id="selectLandList" resultType="java.util.HashMap">
         select id, land_name as landName
         from sys_land
diff --git a/src/main/java/org/springblade/modules/lang/service/ILandService.java b/src/main/java/org/springblade/modules/lang/service/ILandService.java
index 1ea559c..216b9da 100644
--- a/src/main/java/org/springblade/modules/lang/service/ILandService.java
+++ b/src/main/java/org/springblade/modules/lang/service/ILandService.java
@@ -61,6 +61,7 @@
 	 * @return
 	 */
 	boolean updateLandById(Land land);
+	boolean updateLandAr(Land land);
 
 	/**
 	 * 地块列表
diff --git a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
index 7b5314a..d2db78b 100644
--- a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
+++ b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
@@ -66,6 +66,15 @@
 	}
 
 	@Override
+	public boolean updateLandAr(Land land) {
+		int i =baseMapper.updateLandAr(land);
+		if (i > 0) {
+			return true;
+		}
+		return false;
+	}
+
+	@Override
 	public List selectLandList(String userid) {
 		return baseMapper.selectLandList(userid);
 	}
diff --git a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
index 374bda2..ff3e375 100644
--- a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
+++ b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
@@ -22,8 +22,10 @@
 
 
     <select id="selectProcessPage" resultMap="processResultMap">
-        SELECT p.*,
-        m.machining_type as processName,
+        SELECT p.strain_id,
+        p.land_id,
+        SUM(p.process_num) as process_num,
+        m.machining_type AS processName,
         m.machining_tp AS tpurl
         FROM sys_process p
         LEFT JOIN sys_machining m ON m.id = p.process_id
@@ -32,6 +34,7 @@
         <if test="process.farmId!=null and process.farmId!=''">
             and sl.farm_id = #{process.farmId}
         </if>
+        GROUP BY p.strain_id,m.machining_type,m.machining_tp,p.land_id
     </select>
 
 </mapper>

--
Gitblit v1.9.3