From 3d1aca23a6841a5b32a5153bca034a338aaf729d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 20 Aug 2022 09:32:19 +0800
Subject: [PATCH] 小程序、后台数据统计播种面积更新

---
 src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java |   38 +++++++++---------
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml             |   43 ++++++++++++---------
 src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java    |   35 +++++++++--------
 3 files changed, 62 insertions(+), 54 deletions(-)

diff --git a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
index bd5112a..dbbfe7c 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -427,24 +427,25 @@
 	 */
 	@GetMapping("/getFarmPlantStatisticsCountx")
 	public R getFarmPlantStatisticsCountx(FarmPlantVO farmPlant, Query query) {
-		Double num = 0.0;
+//		Double num = 0.0;
 		IPage<FarmPlantVO> pages = farmplantService.getFarmPlantStatisticsCountz(Condition.getPage(query), farmPlant);
-		for (int i = 0; i < pages.getRecords().size(); i++) {
-			String area = pages.getRecords().get(i).getArea();
-			Double a = Double.parseDouble(area);
-			DecimalFormat df = new DecimalFormat("#.00");
-			String format = df.format(a);
-			pages.getRecords().get(i).setArea(format);
-			num += a;
-		}
-		Map map = new HashMap();
-		List list = new ArrayList();
-		DecimalFormat df = new DecimalFormat("#.00");
-		String format = df.format(num);
-		map.put("znum", format);
-		list.add(map);
-		list.add(pages);
-		return R.data(list);
+//		for (int i = 0; i < pages.getRecords().size(); i++) {
+//			String area = pages.getRecords().get(i).getArea();
+//			Double a = Double.parseDouble(area);
+//			DecimalFormat df = new DecimalFormat("#.00");
+//			String format = df.format(a);
+//			pages.getRecords().get(i).setArea(format);
+//			num += a;
+//		}
+//		Map map = new HashMap();
+//		List list = new ArrayList();
+//		DecimalFormat df = new DecimalFormat("#.00");
+//		String format = df.format(num);
+//		map.put("znum", format);
+//		list.add(map);
+//		list.add(pages);
+//		return R.data(list);
+		return R.data(pages);
 	}
 
 
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
index a4a5f11..37d20b6 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -131,8 +131,14 @@
 
     <!--自定义查询农场养殖记录分页数据-->
     <select id="getFarmPlantStatistics" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
-        select sfp.strain_id,ss.strain_name strainName,sum(TRUNCATE(sl.land_area,3)) areas,land_unit landUnit from sys_farm_plant
-        sfp
+        SELECT a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) areas FROM
+        (
+        select sfp.strain_id,
+        ss.strain_name strainName,
+        ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area,
+        land_unit landUnit
+        from
+        sys_farm_plant sfp
         left join sys_strain ss on ss.id = sfp.strain_id
         left join sys_land sl on sl.id = sfp.land_id
         where 1=1
@@ -151,7 +157,8 @@
         <if test="farmPlant.status !=null and farmPlant.status!=''">
             and sfp.status = #{farmPlant.status}
         </if>
-        group by sfp.strain_id,strain_name,land_unit
+        ) a
+        GROUP BY a.strain_id,a.strainName
     </select>
 
     <!--查询农场养殖记录数据-->
@@ -396,34 +403,34 @@
 <!--            and sfp.tenant_id = #{farmPlant.tenantId}-->
 <!--        </if>-->
 <!--        group by sfp.strain_id,strain_name,land_unit-->
-        SELECT
-        sfp.strain_id,
+        SELECT a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) areas FROM
+        (
+        select sfp.strain_id,
         ss.strain_name strainName,
-        sum( sl.land_area ) area,
+        ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area,
         land_unit landUnit
-        FROM
+        from
         sys_farm_plant sfp
-        LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id
-        LEFT JOIN sys_land sl ON sl.id = sfp.land_id where 1=1
+        left join sys_strain ss on ss.id = sfp.strain_id
+        left join sys_land sl on sl.id = sfp.land_id
+        where 1=1
         <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">
             and sfp.transplan_time &gt;= #{farmPlant.startTime}
         </if>
         <if test="farmPlant.endTime!=null and farmPlant.endTime!=''">
             and sfp.transplan_time &lt;= #{farmPlant.endTime}
         </if>
-        <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">
-            and sl.farm_id = #{farmPlant.farmId}
-        </if>
-        <if test="farmPlant.status !=null and farmPlant.status!=''">
-            and sfp.status = #{farmPlant.status}
+        <if test="farmPlant.deptId!=null and farmPlant.deptId!=''">
+            and sfp.dept_id = #{farmPlant.deptId}
         </if>
         <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">
             and sfp.tenant_id = #{farmPlant.tenantId}
         </if>
-<!--        <if test=" farmPlant.deptId !=null and farmPlant.deptId != ''">-->
-<!--            and sfp.dept_id = #{farmPlant.deptId}-->
-<!--        </if>-->
-        group by sfp.strain_id,strain_name,land_unit
+        <if test="farmPlant.status !=null and farmPlant.status!=''">
+            and sfp.status = #{farmPlant.status}
+        </if>
+        ) a
+        GROUP BY a.strain_id,a.strainName
     </select>
 
     <!--查询种养记录列表(不分页)-->
diff --git a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
index f81a4b3..630f043 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java
@@ -59,15 +59,15 @@
 	@Override
 	public IPage<FarmPlantVO> getFarmPlantStatisticsCountz(IPage<FarmPlantVO> page, FarmPlantVO farm) {
 		List<FarmPlantVO> farmPlantVOS = baseMapper.getFarmPlantStatisticsCountz(page, farm);
-		//遍历
-		farmPlantVOS.forEach(farmPlantVO -> {
-			if (farmPlantVO.getLandUnit().equals("1")) {
-				farmPlantVO.setArea(String.format("%.2f", Double.parseDouble(farmPlantVO.getArea()) * 0.1));
-			}
-			if (farmPlantVO.getLandUnit().equals("2")) {
-				farmPlantVO.setArea(String.format("%.2f", Double.parseDouble(farmPlantVO.getArea()) * 0.0015));
-			}
-		});
+//		//遍历
+//		farmPlantVOS.forEach(farmPlantVO -> {
+//			if (farmPlantVO.getLandUnit().equals("1")) {
+//				farmPlantVO.setArea(String.format("%.2f", Double.parseDouble(farmPlantVO.getArea()) * 0.1));
+//			}
+//			if (farmPlantVO.getLandUnit().equals("2")) {
+//				farmPlantVO.setArea(String.format("%.2f", Double.parseDouble(farmPlantVO.getArea()) * 0.0015));
+//			}
+//		});
 		return page.setRecords(farmPlantVOS);
 	}
 
@@ -82,16 +82,16 @@
 	public IPage<FarmPlantVO> getFarmPlantStatistics(IPage<FarmPlantVO> page, FarmPlantVO farm) {
 		List<FarmPlantVO> farmPlantVOS = baseMapper.getFarmPlantStatistics(page, farm);
 		//遍历
-		farmPlantVOS.forEach(farmPlantVO -> {
-			if (farmPlantVO.getLandUnit().equals("1")) {
-				BigDecimal bg = new BigDecimal(farmPlantVO.getAreas() * 0.1);
-				farmPlantVO.setAreas(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
-			}
-			if (farmPlantVO.getLandUnit().equals("2")) {
-				BigDecimal bg = new BigDecimal(farmPlantVO.getAreas() * 0.0015);
-				farmPlantVO.setAreas(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
-			}
-		});
+//		farmPlantVOS.forEach(farmPlantVO -> {
+//			if (farmPlantVO.getLandUnit().equals("1")) {
+//				BigDecimal bg = new BigDecimal(farmPlantVO.getAreas() * 0.1);
+//				farmPlantVO.setAreas(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+//			}
+//			if (farmPlantVO.getLandUnit().equals("2")) {
+//				BigDecimal bg = new BigDecimal(farmPlantVO.getAreas() * 0.0015);
+//				farmPlantVO.setAreas(bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+//			}
+//		});
 		return page.setRecords(farmPlantVOS);
 	}
 

--
Gitblit v1.9.3