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/soldr/controller/SoldrController.java |  102 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 100 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/modules/soldr/controller/SoldrController.java b/src/main/java/org/springblade/modules/soldr/controller/SoldrController.java
index fe17e69..1362fdb 100644
--- a/src/main/java/org/springblade/modules/soldr/controller/SoldrController.java
+++ b/src/main/java/org/springblade/modules/soldr/controller/SoldrController.java
@@ -40,6 +40,11 @@
 import org.springblade.modules.soldr.service.ISoldrService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 已出库存数量记录表 控制器
  *
@@ -142,6 +147,13 @@
 	}
 
 
+	/**
+	 * 退回
+	 * @param num 数量
+	 * @param id 农资id
+	 * @param type
+	 * @return
+	 */
 	@PostMapping("/out")
 	public R out(Integer num, Long id, Integer type) {
 		//如果等于就修改并删除
@@ -159,14 +171,49 @@
 		else {
 			Soldr soldr = new Soldr();
 			soldr.setSid(id);
+			//通过农资库存id找到已出库农资表中对应的农资
 			Soldr detail = soldrService.getOne(Condition.getQueryWrapper(soldr));
 			Integer amount1 = detail.getAmount1();
-			soldrecordService.updateSold(amount1 - num, id);
+			Double census = detail.getCensus();
+			//统计公斤
+			Integer specsValue1 = detail.getSpecsVal1();
+			double v = 0;
+			//克
+			if (specsValue1 == 0) {
+				v = num * 0.001;
+			}
+			//斤
+			else if (specsValue1 == 1) {
+				v = num * 0.5;
+			}
+			//公斤
+			else if (specsValue1 == 2) {
+				v = num;
+			}
+			//吨
+			else if (specsValue1 == 3) {
+				v = num * 1000;
+			}
+			//毫升
+			else if (specsValue1 == 4) {
+				//毫升换成升
+				double s = num * 0.001;
+				//升换成公斤
+				v = s;
+			}
+			//升
+			else{
+				v = num;
+			}
+			//更新已出库农资的数据
+			soldrecordService.updateSold(amount1 - num, id,census-v);
 			Stock stock = new Stock();
 			stock.setId(id);
+			//根据传过来的sid获取对应的库存表数据
 			Stock detail1 = stockService.getOne(Condition.getQueryWrapper(stock));
 			Integer amount = detail1.getAmount();
 			stock.setAmount(amount + num);
+			//更新库存表
 			stockService.Updaet(stock);
 		}
 		return R.success("退回成功");
@@ -192,7 +239,38 @@
 			soldr.setSid(soldrVOs.getId());
 			Soldr detail = soldrService.getOne(Condition.getQueryWrapper(soldr));
 			Integer amount1 = detail.getAmount1();
-			soldrecordService.updateSold(amount1 - soldrVOs.getNum(), soldrVOs.getId());
+			Double census = detail.getCensus();
+			//统计公斤
+			Integer specsValue1 = detail.getSpecsVal1();
+			double v = 0;
+			//克
+			if (specsValue1 == 0) {
+				v = soldrVOs.getNum() * 0.001;
+			}
+			//斤
+			if (specsValue1 == 1) {
+				v = soldrVOs.getNum() * 0.5;
+			}
+			//公斤
+			if (specsValue1 == 2) {
+				v = soldrVOs.getNum();
+			}
+			//吨
+			if (specsValue1 == 3) {
+				v = soldrVOs.getNum() * 1000;
+			}
+			//毫升
+			if (specsValue1 == 4) {
+				//毫升换成升
+				double s = soldrVOs.getNum() * 0.001;
+				//升换成公斤
+				v = s;
+			}
+			//升
+			if (specsValue1 == 5) {
+				v = soldrVOs.getNum();
+			}
+			soldrecordService.updateSold(amount1 - soldrVOs.getNum(), soldrVOs.getId(),census-v);
 			Stock stock = new Stock();
 			stock.setId(soldrVOs.getId());
 			Stock detail1 = stockService.getOne(Condition.getQueryWrapper(stock));
@@ -203,4 +281,24 @@
 		return R.success("退回成功");
 	}
 
+	/**
+	 * 已出农资列表
+	 *
+	 * @return
+	 */
+	@GetMapping("/selectSol")
+	public R selectSol() {
+		List<SoldrVO> soldrVOS = soldrService.selectSol();
+		for (int i = 0; i < soldrVOS.size(); i++) {
+			String specs1 = soldrVOS.get(i).getSpecs1();
+			String dic1 = soldrVOS.get(i).getDic1();
+			String dic2 = soldrVOS.get(i).getDic2();
+			String agrname = soldrVOS.get(i).getAgrname();
+			String s = agrname + specs1 + dic1 + "/" + dic2;
+			soldrVOS.get(i).setSpn(s);
+		}
+
+		return R.data(soldrVOS);
+	}
+
 }

--
Gitblit v1.9.3