From dc365330c504f3a7cc88c42aef5f963b72509dee Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 02 Aug 2022 17:14:29 +0800
Subject: [PATCH] 整合种植品种中相同品种的面积

---
 src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java |    6 +++
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml             |   68 ++++++++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java    |    3 +
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java            |    1 
 src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java          |    3 +
 5 files changed, 80 insertions(+), 1 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 31f80af..496120a 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -102,7 +102,8 @@
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入farmPlant")
 	public R<IPage<FarmPlantVO>> page(FarmPlantVO farmPlant, Query query) {
-		IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPage(Condition.getPage(query), farmPlant);
+//		IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPage(Condition.getPage(query), farmPlant);
+		IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPageCount(Condition.getPage(query), farmPlant);
 		return R.data(pages);
 	}
 
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
index 1fb01f8..f2f1296 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
@@ -27,6 +27,7 @@
 	 * @return
 	 */
 	List<FarmPlantVO> selectFarmPlantPage(@Param("page") IPage page, @Param("farmPlant") FarmPlantVO farm);
+	IPage<FarmPlantVO> selectFarmPlantPageCount(IPage<Object> page, FarmPlantVO farmPlant);
 	List<FarmPlantVO> getFarmPlantStatisticsCountz(@Param("page") IPage page, @Param("farmPlant") FarmPlantVO farm);
 
 	/**
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 33c758e..dd4966b 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -54,6 +54,74 @@
         order by sfp.id desc
     </select>
 
+    <select id="selectFarmPlantPageCount" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
+--         sfp.*,ss.strain_name strainName,ss.url,sl.land_name landName,sl.land_area area,land_unit landUnit
+        SELECT
+            a.strain_id,a.strainName,SUM(a.land_area) area,a.url,a.tenant_id,a.dept_id
+        FROM
+            (
+                SELECT
+                    sfp.*,
+                    ss.strain_name AS strainName,
+                    ss.url,
+                    sl.land_name AS landName,
+                    land_unit AS landUnit,
+                    ( CASE WHEN land_unit = 2 THEN sl.land_area * 0.0015 WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area
+                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
+        <if test="farmPlant.plant!=null and farmPlant.plant!=''">
+            and sfp.plant = #{farmPlant.plant}
+        </if>
+        <if test="farmPlant.year!=null and farmPlant.year!=''">
+            and sfp.create_time like concat('%',#{farmPlant.year},'%')
+        </if>
+        <if test="farmPlant.landId!=null and farmPlant.landId!=''">
+            and sfp.land_id = #{farmPlant.landId}
+        </if>
+        <if test="farmPlant.strainId!=null and farmPlant.strainId!=''">
+            and sfp.strain_id = #{farmPlant.strainId}
+        </if>
+        <if test="farmPlant.plantingWay!=null and farmPlant.plantingWay!=''">
+            and sfp.planting_way = #{farmPlant.plantingWay}
+        </if>
+        <if test="farmPlant.jobWay!=null and farmPlant.jobWay!=''">
+            and sfp.job_way = #{farmPlant.jobWay}
+        </if>
+        <if test="farmPlant.status!=null and farmPlant.status!=''">
+            and sfp.status = #{farmPlant.status}
+        </if>
+        <if test="farmPlant.strainName!=null and farmPlant.strainName!=''">
+            and ss.strain_name like concat('%',#{farmPlant.strainName},'%')
+        </if>
+        <if test="farmPlant.varieties!=null and farmPlant.varieties!=''">
+            and sfp.varieties like concat('%',#{farmPlant.varieties},'%')
+        </if>
+        <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.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.farmId!=null and farmPlant.farmId!=''">
+            and sl.farm_id = #{farmPlant.farmId}
+        </if>
+                ORDER BY
+                    sfp.id DESC
+            ) a
+        GROUP BY
+            a.strain_id,a.dept_id
+    </select>
+
     <!--自定义查询农场养殖记录分页数据-->
     <select id="getFarmPlantStatistics" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
         select sfp.strain_id,ss.strain_name strainName,sum(sl.land_area) areas,land_unit landUnit from sys_farm_plant
diff --git a/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java b/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
index fa71b46..21448bc 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
@@ -26,6 +26,7 @@
 	 * @return
 	 */
 	IPage<FarmPlantVO> selectFarmPlantPage(IPage<FarmPlantVO> page, FarmPlantVO farm);
+	IPage<FarmPlantVO> selectFarmPlantPageCount(IPage<Object> page, FarmPlantVO farmPlant);
 	IPage<FarmPlantVO> getFarmPlantStatisticsCountz(IPage<FarmPlantVO> page, FarmPlantVO farm);
 
 	/**
@@ -66,4 +67,6 @@
 	 * @return
 	 */
     List<FarmPlantVO> getFarmPlantList(FarmPlantVO farmPlant);
+
+
 }
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 8944df3..ebf33a1 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
@@ -36,6 +36,7 @@
 		List<FarmPlantVO> farmPlantVOS = baseMapper.selectFarmPlantPage(page, farm);
 		//遍历
 		farmPlantVOS.forEach(farmPlantVO -> {
+			//面积单位(0: 亩 1:分 2:平方米)
 			if (farmPlantVO.getLandUnit().equals("0")) {
 				farmPlantVO.setArea(String.format("%.2f", Double.parseDouble(farmPlantVO.getArea()) * 1));
 			}
@@ -50,6 +51,11 @@
 	}
 
 	@Override
+	public IPage<FarmPlantVO> selectFarmPlantPageCount(IPage<Object> page, FarmPlantVO farmPlant) {
+		return baseMapper.selectFarmPlantPageCount(page, farmPlant);
+	}
+
+	@Override
 	public IPage<FarmPlantVO> getFarmPlantStatisticsCountz(IPage<FarmPlantVO> page, FarmPlantVO farm) {
 		List<FarmPlantVO> farmPlantVOS = baseMapper.getFarmPlantStatisticsCountz(page, farm);
 		//遍历

--
Gitblit v1.9.3