From d95f6551e8214d69cd0fd511ec693641eb61ba16 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 01 Aug 2022 10:36:26 +0800
Subject: [PATCH] 1、大屏首页接口修复,解决double类型相加精度问题

---
 src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java |   41 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 37 insertions(+), 4 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 c34add1..31f80af 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmPlantController.java
@@ -49,6 +49,7 @@
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -137,7 +138,9 @@
 					if (res.get(i).getStrainId().equals(count.get(j).getStrainId())){
 						FarmPlantVO data = new FarmPlantVO();
 						data.setStrainId(res.get(i).getStrainId());
-						data.setArea((Double.parseDouble(res.get(i).getArea()) + Double.parseDouble(count.get(j).getArea()))+"");
+						BigDecimal b1 = new BigDecimal(res.get(i).getArea());
+						BigDecimal b2 = new BigDecimal(count.get(j).getArea());
+						data.setArea(b1.add(b2).doubleValue()+"");
 						data.setStrainName(res.get(i).getStrainName());
 						count.set(j,data);
 						type = false;
@@ -295,11 +298,41 @@
 	 */
 	@GetMapping("/pagePalnt")
 	public R pagePalnt(FarmPlantVO farmPlant, Query query) {
-		int i = farmplantService.selectCount();
+		int num = farmplantService.selectCount(farmPlant);
 		IPage<FarmPlantVO> pages = farmplantService.selectFarmPlantPage(Condition.getPage(query), farmPlant);
+		List<FarmPlantVO> res = pages.getRecords();
+		List<FarmPlantVO> count = new ArrayList<>();
+		//按种类合并种植物
+		for (int i = 0; i < res.size(); i++) {
+			if (i == 0){
+				count.add(res.get(0));
+			}else {
+				boolean type = false;
+				for (int j = 0; j < count.size(); j++) {
+					if (res.get(i).getStrainId().equals(count.get(j).getStrainId())){
+						FarmPlantVO data = new FarmPlantVO();
+						data.setStrainId(res.get(i).getStrainId());
+						BigDecimal b1 = new BigDecimal(res.get(i).getArea());
+						BigDecimal b2 = new BigDecimal(count.get(j).getArea());
+						data.setArea(b1.add(b2).doubleValue()+"");
+						data.setStrainName(res.get(i).getStrainName());
+						data.setUrl(res.get(i).getUrl());
+						count.set(j,data);
+						type = false;
+						break;
+					}else{
+						type = true;
+					}
+				}
+				if (type){
+					count.add(res.get(i));
+				}
+			}
+		}
+
 		Map map = new HashMap<>();
-		map.put("num", i);
-		map.put("page", pages);
+		map.put("num", num);
+		map.put("page", count);
 		return R.data(map);
 	}
 

--
Gitblit v1.9.3