Ver código fonte

修改计算类为BigDecimal

liuyaowen 9 meses atrás
pai
commit
ecf4608823

+ 38 - 38
src/main/java/com/yunfeiyun/agmp/tss/controller/TssStatController.java

@@ -54,11 +54,11 @@ public class TssStatController extends BaseController {
 		reqVo.setStartTime(reqVo.getStartTime().substring(0, 4));
 		Map<String, Object> moneyMap = getMoney(reqVo);
 		// 总收入
-		Double incomeTotal = Double.parseDouble(moneyMap.get("incomeTotal").toString());
+		BigDecimal incomeTotal = new BigDecimal(String.valueOf(moneyMap.get("incomeTotal")));
 		// 总支出
-		Double payTotal = Double.parseDouble(moneyMap.get("payTotal").toString());
+		BigDecimal payTotal = new BigDecimal(String.valueOf(moneyMap.get("payTotal")));
 		// 总利润
-		Double profitTotal = incomeTotal - payTotal;
+		BigDecimal profitTotal = incomeTotal.subtract(payTotal);
 		// 地块数量
 		Integer dkNum = spmOrderService.selectDkCountOfTssTrace(reqVo);
 		// 产品种类数量
@@ -98,23 +98,23 @@ public class TssStatController extends BaseController {
 
 	/** 获取各类成本及收益的公共方法 */
 	private Map<String, Object> getMoney(SelectOfTssStatReqVo reqVo) {
-		Double incomeTotal = 0.0;// 总收入
-		Double payTotal = 0.0;// 总支出()
+		BigDecimal incomeTotal = new BigDecimal("0");// 总收入
+		BigDecimal payTotal = new BigDecimal("0");// 总支出()
 
-		Double wlSum = 0.0;// 物流费用
+		BigDecimal wlSum = new BigDecimal("0");// 物流费用
 
-		Double nzSum = 0.0;// 农资费用
-		Double njSum = 0.0;// 农机费用
-		Double rgSum = 0.0;// 人工费用
+		BigDecimal nzSum = new BigDecimal("0");// 农资费用
+		BigDecimal njSum = new BigDecimal("0");// 农机费用
+		BigDecimal rgSum = new BigDecimal("0");// 人工费用
 
-		Double jgSum = 0.0;// 加工费用
-		Double bzSum = 0.0;// 包装费用
-		Double csSum = 0.0;// 采收费用
+		BigDecimal jgSum = new BigDecimal("0");// 加工费用
+		BigDecimal bzSum = new BigDecimal("0");// 包装费用
+		BigDecimal csSum = new BigDecimal("0");// 采收费用
 		// 物流费用
 		Map<String, Object> orderMap = spmOrderService.selectMoneyOfTssTrace(reqVo);
 		if (orderMap != null) {
-			incomeTotal = Double.parseDouble(orderMap.get("incomeSum").toString());
-			wlSum = Double.parseDouble(orderMap.get("wlSum").toString());
+			incomeTotal = new BigDecimal(String.valueOf(orderMap.get("incomeSum")));
+			wlSum =new BigDecimal(String.valueOf(orderMap.get("wlSum")));
 		}
 
 		// 农产品费用(采收,加工,包装)
@@ -122,11 +122,11 @@ public class TssStatController extends BaseController {
 		if (goodsList != null) {
 			for (Map<String, Object> goodsMap : goodsList) {
 				if ("0".equals(goodsMap.get("finishgoodsType").toString())) {// 采收产品
-					csSum = Double.parseDouble((goodsMap.get("sum") == null) ? "0" : goodsMap.get("sum").toString());
+					csSum = (goodsMap.get("sum") == null) ? new BigDecimal("0"):new BigDecimal(String.valueOf(goodsMap.get("sum")));
 				} else if ("1".equals(goodsMap.get("finishgoodsType").toString())) {// 加工产品
-					jgSum = Double.parseDouble((goodsMap.get("sum") == null) ? "0" : goodsMap.get("sum").toString());
+					jgSum = (goodsMap.get("sum") == null) ? new BigDecimal("0"):new BigDecimal(String.valueOf(goodsMap.get("sum")));
 				} else if ("2".equals(goodsMap.get("finishgoodsType").toString())) {// 包装产品
-					bzSum = Double.parseDouble((goodsMap.get("sum") == null) ? "0" : goodsMap.get("sum").toString());
+					bzSum = (goodsMap.get("sum") == null) ? new BigDecimal("0"):new BigDecimal(String.valueOf(goodsMap.get("sum")));
 				}
 			}
 		}
@@ -134,13 +134,13 @@ public class TssStatController extends BaseController {
 		// 农活费用(人工,农机,农资)
 		Map<String, Object> farmMap = fmsTaskService.selectSumTaskrcdMoney(reqVo);
 		if (farmMap != null) {
-			rgSum = Double.parseDouble((farmMap.get("rgSum") == null) ? "0" : farmMap.get("rgSum").toString());
-			nzSum = Double.parseDouble((farmMap.get("nzSum") == null) ? "0" : farmMap.get("nzSum").toString());
-			njSum = Double.parseDouble((farmMap.get("njSum") == null) ? "0" : farmMap.get("njSum").toString());
+			rgSum = farmMap.get("rgSum") == null ? new BigDecimal("0") : new BigDecimal(String.valueOf(farmMap.get("rgSum")));
+			nzSum = farmMap.get("nzSum") == null ? new BigDecimal("0") : new BigDecimal(String.valueOf(farmMap.get("nzSum")));
+			njSum = farmMap.get("njSum") == null ? new BigDecimal("0") : new BigDecimal(String.valueOf(farmMap.get("njSum")));
 		}
 
 		// 总支出
-		payTotal = payTotal + wlSum + csSum + jgSum + bzSum + nzSum + njSum + rgSum;
+		payTotal = payTotal.add(wlSum).add(csSum) .add(jgSum).add(bzSum).add(nzSum).add(njSum).add(rgSum);
 
 		Map<String, Object> resultMap = new HashMap<>();
 		resultMap.put("incomeTotal", incomeTotal);
@@ -228,17 +228,17 @@ public class TssStatController extends BaseController {
 			incomeMoneyList.add(incomeMoneyMap);
 		}
 
-		Double payTotal = 0.0;// 总支出()
+		BigDecimal payTotal = new BigDecimal("0");// 总支出()
 
-		Double wlSum = 0.0;// 物流费用
+		BigDecimal wlSum = new BigDecimal("0");// 物流费用
 
-		Double nzSum = 0.0;// 农资费用
-		Double njSum = 0.0;// 农机费用
-		Double rgSum = 0.0;// 人工费用
+		BigDecimal nzSum = new BigDecimal("0");// 农资费用
+		BigDecimal njSum = new BigDecimal("0");// 农机费用
+		BigDecimal rgSum = new BigDecimal("0");// 人工费用
 
-		Double jgSum = 0.0;// 加工费用
-		Double bzSum = 0.0;// 包装费用
-		Double csSum = 0.0;// 采收费用
+		BigDecimal jgSum = new BigDecimal("0");// 加工费用
+		BigDecimal bzSum = new BigDecimal("0");// 包装费用
+		BigDecimal csSum = new BigDecimal("0");// 采收费用
 
 		// 物流费用
 		List<Map<String, Object>> orderList = spmOrderService.selectMoneyByMonthOfTssTrace(reqVo);
@@ -247,7 +247,7 @@ public class TssStatController extends BaseController {
 			orderGroupMap = orderList.stream().collect(Collectors.toMap(e -> e.get("month").toString(), e -> e));
 		}
 		if (orderGroupMap == null) {
-			orderGroupMap = new HashMap<String, Map<String, Object>>();
+			orderGroupMap = new HashMap<>();
 		}
 		for (Map<String, Object> tempMap : incomeMoneyList) {
 			tempMap.put("money", (orderGroupMap.get(tempMap.get("time")) == null) ? "0"
@@ -303,14 +303,14 @@ public class TssStatController extends BaseController {
 
 		// 总支出
 		for (Map<String, Object> tempMap : payMoneyList) {
-			wlSum = Double.parseDouble(tempMap.get("wlSum").toString());
-			csSum = Double.parseDouble(tempMap.get("csSum").toString());
-			jgSum = Double.parseDouble(tempMap.get("jgSum").toString());
-			bzSum = Double.parseDouble(tempMap.get("bzSum").toString());
-			nzSum = Double.parseDouble(tempMap.get("nzSum").toString());
-			njSum = Double.parseDouble(tempMap.get("njSum").toString());
-			rgSum = Double.parseDouble(tempMap.get("rgSum").toString());
-			payTotal = wlSum + csSum + jgSum + bzSum + nzSum + njSum + rgSum;
+			wlSum = new BigDecimal(String.valueOf(tempMap.get("wlSum")));
+			csSum = new BigDecimal(String.valueOf(tempMap.get("csSum")));
+			jgSum = new BigDecimal(String.valueOf(tempMap.get("jgSum")));
+			bzSum = new BigDecimal(String.valueOf(tempMap.get("bzSum")));
+			nzSum = new BigDecimal(String.valueOf(tempMap.get("nzSum")));
+			njSum = new BigDecimal(String.valueOf(tempMap.get("njSum")));
+			rgSum = new BigDecimal(String.valueOf(tempMap.get("rgSum")));
+			payTotal = wlSum.add(csSum).add(jgSum).add( bzSum).add(nzSum).add(njSum).add(rgSum);
 			tempMap.put("money", payTotal);
 			tempMap.remove("wlSum");
 			tempMap.remove("csSum");