From fe371739b664c4e87914bcc7f3f550fec7e93121 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 18 Aug 2022 11:42:27 +0800
Subject: [PATCH] 保留农资退回记录,修复当农资库存为1时出库再退回,农资库存数据有误

---
 src/main/java/org/springblade/modules/soldr/controller/SoldrController.java             |   56 ++++++++++++++++++++++++---
 src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java                             |    3 +
 src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java |   11 +++--
 src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml                      |    2 
 src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java          |    4 +-
 src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml            |    1 
 src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java                     |    2 
 src/main/java/org/springblade/modules/soldr/service/ISoldrService.java                  |    2 
 src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml                      |    2 
 9 files changed, 65 insertions(+), 18 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 6b17768..5321715 100644
--- a/src/main/java/org/springblade/modules/soldr/controller/SoldrController.java
+++ b/src/main/java/org/springblade/modules/soldr/controller/SoldrController.java
@@ -29,9 +29,12 @@
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.soldr.vo.SoldrVOs;
+import org.springblade.modules.soldrecord.entity.Soldrecord;
 import org.springblade.modules.soldrecord.service.ISoldrecordService;
 import org.springblade.modules.stock.entity.Stock;
 import org.springblade.modules.stock.service.IStockService;
+import org.springblade.modules.stockrecord.entity.Stockrecord;
+import org.springblade.modules.stockrecord.service.IStockrecordService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -40,10 +43,7 @@
 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;
+import java.util.*;
 
 /**
  * 已出库存数量记录表 控制器
@@ -60,6 +60,7 @@
 	private final ISoldrService soldrService;
 	private final ISoldrecordService soldrecordService;
 	private final IStockService stockService;
+	private final IStockrecordService stockrecordService;
 
 	/**
 	 * 详情
@@ -155,20 +156,21 @@
 	 * @return
 	 */
 	@PostMapping("/out")
-	public R out(Integer num, Long id, Integer type) {
+	public R out(Integer num, Long id, Integer type,Long createUser,Long createDept) {
 		//如果等于就修改并删除
-		if (type == 0) {
+		if (type == 0) {//退回数量等于库存数量
 			Stock stock = new Stock();
 			stock.setId(id);
 			Stock detail1 = stockService.getOne(Condition.getQueryWrapper(stock));
 			Integer amount = detail1.getAmount();
 			stock.setAmount(amount + num);
+			stock.setState("0");
 			stockService.Updaet(stock);
 			//删除
 			soldrService.del(id);
 		}
 		//如果小于就修改
-		else {
+		else {//退回数量小于库存数量
 			Soldr soldr = new Soldr();
 			soldr.setSid(id);
 			//通过农资库存id找到已出库农资表中对应的农资
@@ -213,9 +215,49 @@
 			Stock detail1 = stockService.getOne(Condition.getQueryWrapper(stock));
 			Integer amount = detail1.getAmount();
 			stock.setAmount(amount + num);
+			stock.setState("0");
 			//更新库存表
 			stockService.Updaet(stock);
+			//更新已出库待使用农资记录表
+			Soldrecord soldrecord = new Soldrecord();
+			soldrecord.setAmount1(num);
+			soldrecord.setSid(detail1.getId());
+			soldrecord.setSpecs1(detail1.getSpecs());
+			soldrecord.setSpecsVal1(detail1.getSpecsValue1());
+			soldrecord.setSpecsVal2(detail1.getSpecsValue2());
+			soldrecord.setType("4");
+			soldrecord.setStockId1(detail1.getStockId());
+			soldrecord.setIsDeleted(0);
+			soldrecord.setStatus(1);
+			soldrecord.setCreateTime(new Date());
+			soldrecord.setUpdateTime(new Date());
+			soldrecord.setCreateUser(createUser);
+			soldrecord.setCreateDept(createDept);
+			soldrecord.setUpdateUser(createUser);
+			soldrecordService.save(soldrecord);
+			//更新出入库记录表
+			Stockrecord stockrecord = new Stockrecord();
+			stockrecord.setAmount1(num);
+			stockrecord.setCensus(v);
+			stockrecord.setDeptId(detail1.getDeptId());
+			stockrecord.setSid(detail1.getId());
+			stockrecord.setStockId1(detail1.getStockId());
+			stockrecord.setTime1(new Date());
+			stockrecord.setType1(detail1.getType());//入库类型?
+			stockrecord.setSpecs1(detail1.getSpecs());
+			stockrecord.setSpecsVal1(detail1.getSpecsValue1());
+			stockrecord.setSpecsVal2(detail1.getSpecsValue2());
+			stockrecord.setCreateUser(createUser);
+			stockrecord.setCreateDept(createDept);
+			stockrecord.setCreateTime(new Date());
+//			stockrecord.setUpdateUser();
+			stockrecord.setStatus(1);
+			stockrecord.setIsDeleted(0);
+			stockrecord.setStockType1(1);//入库还是出库?暂定为入库
+			stockrecord.setSrId(soldrecord.getId());
+			stockrecordService.save(stockrecord);
 		}
+
 		return R.success("退回成功");
 	}
 
diff --git a/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java b/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java
index 7840b82..c268ab2 100644
--- a/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java
+++ b/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.java
@@ -46,7 +46,7 @@
 	void  del(Long id);
 	void  dels(Long id);
 	List<SoldrVO> selectSol(@Param("farmId") String farmId);
-	List<Map<String, Object>> selectCz(Long sid);
+	List<Map<String, Object>> selectCz(@Param("sid") Long sid,@Param("deptId") String deptId);
 	/**
 	 * 根据stockId、specs1、specs_val1、specs_val2、sid          找到soldr表中对应的数据
 	 * @param stockId1	种类id
diff --git a/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml b/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml
index 58af5da..87c6b5a 100644
--- a/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml
+++ b/src/main/java/org/springblade/modules/soldr/mapper/SoldrMapper.xml
@@ -116,7 +116,7 @@
     <select id="selectCz" resultType="java.util.Map">
         SELECT census, sid, amount1
         FROM `sys_soldr`
-        WHERE sid = #{sid}
+        WHERE sid = #{sid} AND dept_id = #{deptId}
     </select>
 <!--    根据stockId、specs1、specs_val1、specs_val2、sid-->
     <select id="getByServalParam" resultType="org.springblade.modules.soldr.entity.Soldr">
diff --git a/src/main/java/org/springblade/modules/soldr/service/ISoldrService.java b/src/main/java/org/springblade/modules/soldr/service/ISoldrService.java
index bc98c05..088896e 100644
--- a/src/main/java/org/springblade/modules/soldr/service/ISoldrService.java
+++ b/src/main/java/org/springblade/modules/soldr/service/ISoldrService.java
@@ -44,7 +44,7 @@
 	void  del(Long id);
 	void  dels(Long id);
 	List<SoldrVO> selectSol(String farmId);
-	List<Map<String, Object>> selectCz(Long sid);
+	List<Map<String, Object>> selectCz(Long sid,String deptId);
 
 	/**
 	 * 根据stockId、amount1、specs1、specs_val1、specs_val2、sid          找到soldr表中对应的数据
diff --git a/src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java b/src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java
index ca5cb71..c1f8241 100644
--- a/src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java
+++ b/src/main/java/org/springblade/modules/soldr/service/impl/SoldrServiceImpl.java
@@ -62,8 +62,8 @@
 	}
 
 	@Override
-	public List<Map<String, Object>> selectCz(Long sid) {
-		return baseMapper.selectCz(sid);
+	public List<Map<String, Object>> selectCz(Long sid,String deptId) {
+		return baseMapper.selectCz(sid,deptId);
 	}
 
 	@Override
diff --git a/src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java b/src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java
index ecfafae..1ec56a9 100644
--- a/src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java
+++ b/src/main/java/org/springblade/modules/soldr/vo/SoldrVO.java
@@ -39,4 +39,7 @@
 	String agrname;
 	Integer cnum;
 	String codes;
+
+	Integer outNum;
+	Integer outType;
 }
diff --git a/src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml b/src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml
index 2a735ab..ac597dc 100644
--- a/src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml
+++ b/src/main/java/org/springblade/modules/soldrecord/mapper/SoldrecordMapper.xml
@@ -103,6 +103,7 @@
         <if test="soldrecord.deptId != null and soldrecord.deptId !=''">
             and str.dept_id = #{soldrecord.deptId}
         </if>
+        ORDER BY st.create_time DESC
     </select>
 
     <update id="updateSold">
diff --git a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
index e7abe23..b4824f9 100644
--- a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
+++ b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
@@ -137,7 +137,7 @@
     <!--入库出库-->
     <update id="Updaet">
         update sys_stock
-        set amount = #{stock.amount}
+        set amount = #{stock.amount},state = #{stock.state}
         where id = #{stock.id}
     </update>
 
diff --git a/src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java b/src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java
index 8c8b82c..83b8eee 100644
--- a/src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java
+++ b/src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java
@@ -144,6 +144,7 @@
 	@ApiOperation(value = "新增", notes = "传入stockrecord")
 	public R save(@Valid @RequestBody StockrecordVO stockrecord) {
 		Integer stockType1 = stockrecord.getStockType1();
+		//0出库 1入库
 		//出库
 		if (stockType1 == 0) {
 			//库存量
@@ -193,8 +194,8 @@
 				stock.setState("1");
 				stockService.UpdaeAmountc(stock);
 				//同时删除所有农资记录
-				soldrecordService.delc(stockrecord.getStockId1());
-				soldrService.del(stockrecord.getSid());
+//				soldrecordService.delc(stockrecord.getStockId1());
+//				soldrService.del(stockrecord.getSid());
 			} else {
 				stock.setState("0");
 				stockService.UpdaeAmountc(stock);
@@ -209,7 +210,7 @@
 			soldrecord.setType(stockrecord.getType1());
 			soldrecord.setSid(stockrecord.getSid());
 			String type1 = stockrecord.getType1();
-			if (type1.equals("0")) {
+			if (type1.equals("0")) { //0 采购入库
 				//已出库农资数量记录
 				Soldr soldr = new Soldr();
 				soldr.setSid(stockrecord.getSid());
@@ -222,8 +223,8 @@
 				soldr.setCensus(v);
 				soldr.setDeptId(stockrecord.getDeptId());
 				//已出库农资数量
-				List<Map<String, Object>> maps = soldrService.selectCz(stockrecord.getSid());
-				if (maps.size()!=0) {
+				List<Map<String, Object>> maps = soldrService.selectCz(stockrecord.getSid(),stockrecord.getDeptId());
+				if (maps.size()!=0) {//已出库存表中有重复的
 					String a = maps.get(0).get("amount1").toString();
 					Integer amount11=Integer.parseInt(a);
 					String amount12 = maps.get(0).get("amount1").toString();

--
Gitblit v1.9.3