From 58181a5a0934ef8768bfbab08bc83ac816708d23 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 06 Jun 2022 11:35:06 +0800
Subject: [PATCH] 面积统计新增,种植产量统计新增

---
 src/main/java/org/springblade/modules/farmplant/service/impl/FarmPlantServiceImpl.java        |   37 ++++++++++++
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml                    |   15 +++++
 src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java           |   10 +++
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java                   |    8 ++
 src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java          |    7 ++
 src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java |   23 +++++++
 src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java            |    7 ++
 src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java    |   10 +++
 src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java                 |    7 ++
 src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml             |   21 +++++++
 src/main/resources/application.yml                                                            |    3 +
 11 files changed, 148 insertions(+), 0 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 d9a7a55..da64666 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -201,6 +201,16 @@
 	}
 
 	/**
+	 * 农产品种养统计(累计和)
+	 * @param farmPlantVO 农产品种植对象
+	 * @return
+	 */
+	@GetMapping("/getFarmPlantStatisticsCount")
+	public R<FarmPlantVO> getFarmPlantStatisticsCount(FarmPlantVO farmPlantVO) {
+		return R.data(farmplantService.getFarmPlantStatisticsCount(farmPlantVO));
+	}
+
+	/**
 	 * 农产品列表
 	 * @param farm 农产品对象
 	 * @return
diff --git a/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java b/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
index 5372ce1..6de6115 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
@@ -64,6 +64,16 @@
 	}
 
 	/**
+	 * 统计产量
+	 * @param farmProductStock
+	 * @return
+	 */
+	@GetMapping("/statisticsProduct")
+	public R<FarmProductStockVO> statisticsProduct(FarmProductStockVO farmProductStock) {
+		return R.data(farmProductStockService.statisticsProduct(farmProductStock));
+	}
+
+	/**
 	 * 新增
 	 */
 	@PostMapping("/save")
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 5fba690..a893ac1 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.java
@@ -40,4 +40,12 @@
 	 * @return
 	 */
     List<Strain> strainTree(@Param("farm") FarmPlantVO farm);
+
+
+	/**
+	 * 统计查询种植面积
+ 	 * @param farm
+	 * @return
+	 */
+	List<FarmPlantVO> getFarmPlantStatisticsCount(@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 406c6df..066cd89 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -53,6 +53,21 @@
         group by sfp.strain_id,strain_name,land_unit
     </select>
 
+    <!--查询农场养殖记录数据-->
+    <select id="getFarmPlantStatisticsCount" 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 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.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>
+        group by sfp.strain_id,strain_name,land_unit
+    </select>
+
     <!--已种植农产品列表-->
     <select id="strainTree" resultType="org.springblade.modules.farmplant.entity.Strain">
         select ss.id,ss.strain_name strainName from sys_farm_plant sfp
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
index a206ce6..70448b2 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
@@ -24,4 +24,11 @@
 	 * @return
 	 */
 	List<FarmProductStockVO> selectFarmProductStockPage(@Param("page") IPage page, @Param("farmProductStock") FarmProductStockVO farmProductStock);
+
+	/**
+	 * 统计产量
+	 * @param farmProductStock
+	 * @return
+	 */
+	List<FarmProductStockVO> statisticsProduct(@Param("farmProductStock") FarmProductStockVO farmProductStock);
 }
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
index 82199dc..c48032a 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -21,4 +21,25 @@
         </if>
         group by sfps.strain_id,ss.url,ss.strain_name
     </select>
+
+
+    <!--查询农产品库存数据-->
+    <select id="statisticsProduct" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO">
+        select sfps.strain_id strainId,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from sys_farm_product_stock sfps
+        left join sys_strain ss on ss.id = sfps.strain_id
+        where 1=1
+        <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
+            and sfps.strain_id = #{farmProductStock.strainId}
+        </if>
+        <if test="farmProductStock.leaves!=null and farmProductStock.leaves!=''">
+            and sfps.leaves = #{farmProductStock.leaves}
+        </if>
+        <if test="farmProductStock.startTime!=null and farmProductStock.startTime!=''">
+            and sfps.time &gt;= #{farmProductStock.startTime}
+        </if>
+        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
+            and sfps.time &lt;= #{farmProductStock.endTime}
+        </if>
+        group by sfps.strain_id,ss.url,ss.strain_name
+    </select>
 </mapper>
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 3463e9a..34d34a7 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/FarmPlantService.java
@@ -40,4 +40,11 @@
 	 * @return
 	 */
     List<Strain> strainTree(FarmPlantVO farm);
+
+	/**
+	 * 农产品种养统计(累计和)
+	 * @param farmPlantVO 农产品种植对象
+	 * @return
+	 */
+	FarmPlantVO getFarmPlantStatisticsCount(FarmPlantVO farmPlantVO);
 }
diff --git a/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java b/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
index b7a5ffc..862db24 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
@@ -21,4 +21,11 @@
 	 * @return
 	 */
 	IPage<FarmProductStockVO> selectFarmProductStockPage(IPage<FarmProductStockVO> page, FarmProductStockVO farmProductStock);
+
+	/**
+	 * 统计产量
+	 * @param farmProductStock
+	 * @return
+	 */
+	FarmProductStockVO statisticsProduct(FarmProductStockVO farmProductStock);
 }
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 346c179..2e620d9 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
@@ -1,6 +1,7 @@
 package org.springblade.modules.farmplant.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.modules.farm.entity.Farm;
 import org.springblade.modules.farmplant.entity.FarmPlant;
 import org.springblade.modules.farmplant.entity.Strain;
 import org.springblade.modules.farmplant.mapper.FarmPlantMapper;
@@ -75,4 +76,40 @@
 	public List<Strain> strainTree(FarmPlantVO farm) {
 		return baseMapper.strainTree(farm);
 	}
+
+	/**
+	 * 农产品种养统计(累计和)
+	 * @param farm 农产品种植对象
+	 * @return
+	 */
+	@Override
+	public FarmPlantVO getFarmPlantStatisticsCount(FarmPlantVO farm) {
+		List<FarmPlantVO> farmPlantVOS = baseMapper.getFarmPlantStatisticsCount(farm);
+		FarmPlantVO plantVO = new FarmPlantVO();
+		if (farmPlantVOS.size()>0){
+			BigDecimal decimal = new BigDecimal(0.0);
+			//遍历
+			for (FarmPlantVO farmPlantVO : farmPlantVOS) {
+				if (farmPlantVO.getLandUnit().equals("0")){
+					BigDecimal bg = new BigDecimal(farmPlantVO.getAreas()*1);
+					decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
+				}
+				if (farmPlantVO.getLandUnit().equals("1")){
+					BigDecimal bg = new BigDecimal(farmPlantVO.getAreas()*0.1);
+					decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
+				}
+				if (farmPlantVO.getLandUnit().equals("2")){
+					BigDecimal bg = new BigDecimal(farmPlantVO.getAreas()*0.0015);
+					decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
+				}
+			}
+			//求和
+			plantVO.setArea(decimal.toString());
+		}else {
+			//求和
+			plantVO.setArea("0");
+		}
+		//返回
+		return plantVO;
+	}
 }
diff --git a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
index f34ad43..58124e9 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
@@ -7,6 +7,9 @@
 import org.springblade.modules.farmplant.vo.FarmProductStockVO;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * 农产品库存服务实现类
  * @since 2022-05-18
@@ -25,4 +28,24 @@
 	public IPage<FarmProductStockVO> selectFarmProductStockPage(IPage<FarmProductStockVO> page, FarmProductStockVO farmProductStock) {
 		return page.setRecords(baseMapper.selectFarmProductStockPage(page, farmProductStock));
 	}
+
+	/**
+	 * 统计产量
+	 * @param farmProductStock
+	 * @return
+	 */
+	@Override
+	public FarmProductStockVO statisticsProduct(FarmProductStockVO farmProductStock) {
+		List<FarmProductStockVO> stockVOs = baseMapper.statisticsProduct(farmProductStock);
+		FarmProductStockVO stock = new FarmProductStockVO();
+		BigDecimal decimal = new BigDecimal(0.0);
+		//遍历
+		for (FarmProductStockVO stockVO : stockVOs) {
+			BigDecimal bg = new BigDecimal(stockVO.getWeight());
+			decimal = decimal.add(bg.setScale(2, BigDecimal.ROUND_HALF_UP));
+		}
+		stock.setWeight(decimal.toString());
+		//返回
+		return stock;
+	}
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index dcd8921..665d720 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -201,6 +201,9 @@
       - /blade-test/**
       - /farmingRecord/**
       - /blade-system/dict-biz/**
+      - /stock/**
+      - /farmPlant/**
+      - /farmProductStock/**
     #授权认证配置
     auth:
       - method: ALL

--
Gitblit v1.9.3