From f5e7329bfc638dcf686ef25e77172649c8c0f7c6 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 16 May 2022 08:30:26 +0800
Subject: [PATCH] 农资管理

---
 src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java             |   10 ++
 src/main/java/org/springblade/modules/stockfactory/controller/StockfactoryController.java  |    5 +
 src/main/java/org/springblade/modules/stockrecord/service/impl/StockrecordServiceImpl.java |    5 +
 src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java    |   86 ++++++++++++++++++++-
 src/main/java/org/springblade/modules/stockrecord/entity/Stockrecord.java                  |   41 ++++++----
 src/main/java/org/springblade/modules/stock/controller/StockController.java                |   20 ++++
 src/main/java/org/springblade/modules/stockrecord/service/IStockrecordService.java         |    1 
 src/main/java/org/springblade/modules/stockrecord/vo/StockrecordVO.java                    |    9 ++
 src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.java            |    1 
 src/main/java/org/springblade/modules/stock/service/IStockService.java                     |    3 
 src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.xml             |   27 ++++++
 src/main/java/org/springblade/modules/stock/mapper/StockMapper.java                        |    4 
 src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml                         |    6 +
 13 files changed, 190 insertions(+), 28 deletions(-)

diff --git a/src/main/java/org/springblade/modules/stock/controller/StockController.java b/src/main/java/org/springblade/modules/stock/controller/StockController.java
index 42503c1..36b6034 100644
--- a/src/main/java/org/springblade/modules/stock/controller/StockController.java
+++ b/src/main/java/org/springblade/modules/stock/controller/StockController.java
@@ -27,6 +27,8 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.stockrecord.entity.Stockrecord;
+import org.springblade.modules.stockrecord.service.IStockrecordService;
 import org.springblade.modules.system.entity.DictBiz;
 import org.springblade.modules.system.service.IDictBizService;
 import org.springframework.web.bind.annotation.*;
@@ -52,7 +54,7 @@
 public class StockController extends BladeController {
 
 	private final IStockService stockService;
-	private final IDictBizService dictService;
+	private final IStockrecordService stockrecordService;
 	/**
 	 * 详情
 	 */
@@ -104,6 +106,22 @@
 		stock.setState("0");
 		stock.setSp1("stockSpecs1");
 		stock.setSp2("stockSpecs2");
+		//农资记录表
+		Stockrecord stockrecord =new Stockrecord();
+		//农资ID
+		stockrecord.setStockId1(stock.getStockId());
+		stockrecord.setAmount1(stock.getAmount());
+		stockrecord.setTime1(stock.getTime());
+		stockrecord.setType1(stock.getType());
+		stockrecord.setStockType1(1);
+		stockrecord.setPicture1(stock.getPicture());
+		stockrecord.setRemarks1(stock.getRemarks());
+		stockrecord.setSpecs1(stock.getSpecs());
+		stockrecord.setSpecsVal1(stock.getSpecsValue1());
+		stockrecord.setSpecsVal2(stock.getSpecsValue2());
+		stockrecord.setSp1("stockSpecs1");
+		stockrecord.setSp2("stockSpecs2");
+		stockrecordService.save(stockrecord);
 		return R.status(stockService.save(stock));
 	}
 
diff --git a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.java b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.java
index c06d1a5..b95e6f6 100644
--- a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.java
+++ b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.java
@@ -16,6 +16,8 @@
  */
 package org.springblade.modules.stock.mapper;
 
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.farm.entity.Farm;
 import org.springblade.modules.stock.entity.Stock;
 import org.springblade.modules.stock.vo.StockVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,5 +41,5 @@
 	 */
 	List<StockVO> selectStockPage(IPage page, StockVO stock);
 	List<StockVO> selectLists(IPage page, StockVO stock);
-
+	int UpdaeAmountc(@Param("stock") Stock stock);
 }
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 ff4c038..0892b61 100644
--- a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
+++ b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
@@ -33,7 +33,7 @@
 
     <select id="selectLists" resultType="org.springblade.modules.stock.vo.StockVO">
         SELECT st.*,
-        stf.agricultural_name AS factoryName,
+        stf.factory_name AS factoryName,
         stf.type AS stype,
         d.dict_value AS dic1,
         c.dict_value AS dic2
@@ -62,5 +62,9 @@
             and st.type = #{stock.type}
         </if>
     </select>
+    <!--入库出库-->
+    <update id="UpdaeAmountc">
+        update sys_stock set amount = #{stock.amount} ,state=#{stock.state} where stock_id=#{stock.stockId}
+    </update>
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/stock/service/IStockService.java b/src/main/java/org/springblade/modules/stock/service/IStockService.java
index 6210ecd..059536e 100644
--- a/src/main/java/org/springblade/modules/stock/service/IStockService.java
+++ b/src/main/java/org/springblade/modules/stock/service/IStockService.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.stock.service;
 
+import org.springblade.modules.farm.entity.Farm;
 import org.springblade.modules.stock.entity.Stock;
 import org.springblade.modules.stock.vo.StockVO;
 import org.springblade.core.mp.base.BaseService;
@@ -38,5 +39,5 @@
 	 */
 	IPage<StockVO> selectStockPage(IPage<StockVO> page, StockVO stock);
 	IPage<StockVO> selectLists(IPage<StockVO> page, StockVO stock);
-
+	boolean UpdaeAmountc(Stock stock);
 }
diff --git a/src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java b/src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java
index 18eacdb..44ded4a 100644
--- a/src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java
+++ b/src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java
@@ -43,4 +43,14 @@
 		return page.setRecords(baseMapper.selectLists(page,stock));
 	}
 
+	@Override
+	public boolean UpdaeAmountc(Stock stock) {
+		//更新
+		int i = baseMapper.UpdaeAmountc(stock);
+		if (i>0){
+			return true;
+		}
+		return false;
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/stockfactory/controller/StockfactoryController.java b/src/main/java/org/springblade/modules/stockfactory/controller/StockfactoryController.java
index 70d1ee0..3b0bd74 100644
--- a/src/main/java/org/springblade/modules/stockfactory/controller/StockfactoryController.java
+++ b/src/main/java/org/springblade/modules/stockfactory/controller/StockfactoryController.java
@@ -123,7 +123,10 @@
 		return R.status(stockfactoryService.deleteLogic(Func.toLongList(ids)));
 	}
 
-
+	/**
+	 * 农资列表
+	 * @return
+	 */
 	@GetMapping("/selectStockFa")
 	public R selectStockFa() {
 		return R.data(stockfactoryService.selectStockFa());
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 45068c4..be66516 100644
--- a/src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java
+++ b/src/main/java/org/springblade/modules/stockrecord/controller/StockrecordController.java
@@ -21,12 +21,17 @@
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
 import javax.validation.Valid;
 
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.stock.entity.Stock;
+import org.springblade.modules.stock.service.IStockService;
+import org.springblade.modules.system.entity.DictBiz;
+import org.springblade.modules.system.service.IDictBizService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -34,6 +39,8 @@
 import org.springblade.modules.stockrecord.vo.StockrecordVO;
 import org.springblade.modules.stockrecord.service.IStockrecordService;
 import org.springblade.core.boot.ctrl.BladeController;
+
+import java.util.List;
 
 /**
  * 出入库记录 控制器
@@ -48,6 +55,8 @@
 public class StockrecordController extends BladeController {
 
 	private final IStockrecordService stockrecordService;
+	private final IStockService stockService;
+	private final IDictBizService dictService;
 
 	/**
 	 * 详情
@@ -78,7 +87,42 @@
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入stockrecord")
 	public R<IPage<StockrecordVO>> page(StockrecordVO stockrecord, Query query) {
-		IPage<StockrecordVO> pages = stockrecordService.selectStockrecordPage(Condition.getPage(query), stockrecord);
+		IPage<StockrecordVO> pages = stockrecordService.seletStockRecordList(Condition.getPage(query), stockrecord);
+		for (int i = 0; i < pages.getRecords().size(); i++) {
+			String specs = pages.getRecords().get(i).getSpecs1();
+			String dic1 = pages.getRecords().get(i).getDic1();
+			String dic2 = pages.getRecords().get(i).getDic2();
+			String s = specs + dic1 + "/" + dic2;
+			//出库
+			if (pages.getRecords().get(i).getStockType1() == 0) {
+				String count = "-" + pages.getRecords().get(i).getAmount1() + dic2;
+				pages.getRecords().get(i).setCount(count);
+			} else {
+				String count = "+" + pages.getRecords().get(i).getAmount1() + dic2;
+				pages.getRecords().get(i).setCount(count);
+			}
+			pages.getRecords().get(i).setSpn(s);
+			//获取农资出入库类型 0:出库 1:入库
+			Integer stockType1 = pages.getRecords().get(i).getStockType1();
+			String type1 = pages.getRecords().get(i).getType1();
+			if (stockType1 == 0) {
+				List<DictBiz> tree = dictService.getList("stockPurchase1");
+				for (int j = 0; j < tree.size(); j++) {
+					if (tree.get(j).getDictKey().equals(type1)) {
+						pages.getRecords().get(i).setType1(tree.get(j).getDictValue());
+					}
+				}
+
+			} else {
+				List<DictBiz> tree = dictService.getList("stockPurchase");
+				for (int j = 0; j < tree.size(); j++) {
+					if (tree.get(j).getDictKey().equals(type1)) {
+						pages.getRecords().get(i).setType1(tree.get(j).getDictValue());
+					}
+				}
+			}
+
+		}
 		return R.data(pages);
 	}
 
@@ -88,7 +132,41 @@
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入stockrecord")
-	public R save(@Valid @RequestBody Stockrecord stockrecord) {
+	public R save(@Valid @RequestBody StockrecordVO stockrecord) {
+		Integer stockType1 = stockrecord.getStockType1();
+		//出库
+		if (stockType1 == 0) {
+			//库存量
+			Integer num = stockrecord.getNum();
+			//出库量
+			Integer amount1 = stockrecord.getAmount1();
+			//当前总量
+			int i = num - amount1;
+			Stock stock = new Stock();
+			stock.setStockId(stockrecord.getStockId1());
+			stock.setAmount(i);
+			if (i == 0) {
+				stock.setState("1");
+				stockService.UpdaeAmountc(stock);
+			} else {
+				stock.setState("0");
+				stockService.UpdaeAmountc(stock);
+			}
+		}
+		//入库
+		else {
+			//库存量
+			Integer num = stockrecord.getNum();
+			//入库量
+			Integer amount1 = stockrecord.getAmount1();
+			//当前总量
+			int i = num + amount1;
+			Stock stock = new Stock();
+			stock.setStockId(stockrecord.getStockId1());
+			stock.setAmount(i);
+			stock.setState("0");
+			stockService.UpdaeAmountc(stock);
+		}
 		return R.status(stockrecordService.save(stockrecord));
 	}
 
@@ -112,7 +190,7 @@
 		return R.status(stockrecordService.saveOrUpdate(stockrecord));
 	}
 
-	
+
 	/**
 	 * 删除 出入库记录
 	 */
@@ -123,5 +201,5 @@
 		return R.status(stockrecordService.deleteLogic(Func.toLongList(ids)));
 	}
 
-	
+
 }
diff --git a/src/main/java/org/springblade/modules/stockrecord/entity/Stockrecord.java b/src/main/java/org/springblade/modules/stockrecord/entity/Stockrecord.java
index 1e2746e..9c67edf 100644
--- a/src/main/java/org/springblade/modules/stockrecord/entity/Stockrecord.java
+++ b/src/main/java/org/springblade/modules/stockrecord/entity/Stockrecord.java
@@ -19,9 +19,13 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springblade.core.mp.base.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 出入库记录实体类
@@ -43,27 +47,17 @@
 	/**
 	* 数量
 	*/
-		private String amount1;
+		private Integer amount1;
 	/**
 	* 时间
 	*/
-		private LocalDateTime time1;
+	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	private Date time1;
 	/**
-	* 类型 (0:出库 1:入库)
+	* 采购类型 (0:采购入库 1:调拨入库)
 	*/
 		private String type1;
-	/**
-	* 操作人
-	*/
-		private String operator1;
-	/**
-	* 规格
-	*/
-		private String spn1;
-	/**
-	* 农资类型
-	*/
-		private String stockType1;
 	/**
 	* 图片
 	*/
@@ -72,6 +66,19 @@
 	* 备注
 	*/
 		private String remarks1;
-
-
+	/**
+	 * 规格
+	 */
+	private String specs1;
+	/**
+	 * 规格值(0:克 1:斤 2:公斤 3:吨 4:毫升 5:升 )
+	 */
+	private Integer specsVal1;
+	/**
+	 * 规格值2( 0:袋 1:包 2:瓶 3:盒 4:箱 5:桶 6:支)
+	 */
+	private Integer specsVal2;
+	private Integer stockType1;
+	private String sp1;
+	private String sp2;
 }
diff --git a/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.java b/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.java
index 255a57c..10b947e 100644
--- a/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.java
+++ b/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.java
@@ -38,5 +38,6 @@
 	 * @return
 	 */
 	List<StockrecordVO> selectStockrecordPage(IPage page, StockrecordVO stockrecord);
+	List<StockrecordVO> seletStockRecordList(IPage page, StockrecordVO stockrecord);
 
 }
diff --git a/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.xml b/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.xml
index dd00f40..65f2569 100644
--- a/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.xml
+++ b/src/main/java/org/springblade/modules/stockrecord/mapper/StockrecordMapper.xml
@@ -18,7 +18,9 @@
 
 
     <select id="selectStockrecordPage" resultMap="stockrecordResultMap">
-        select * from sys_stockrecord where is_deleted = 0
+        select *
+        from sys_stockrecord
+        where is_deleted = 0
     </select>
     <select id="seletList" resultType="org.springblade.modules.stock.vo.StockVO">
         SELECT st.*,
@@ -50,4 +52,27 @@
         </if>
     </select>
 
+
+    <!--农资记录查询-->
+    <select id="seletStockRecordList" resultType="org.springblade.modules.stockrecord.vo.StockrecordVO">
+        SELECT st.*,
+               stf.type         AS stype,
+               stf.factory_name AS factoryName,
+               d.dict_value     AS dic1,
+               c.dict_value     AS dic2,
+               a.name           as czr
+        FROM `sys_stockrecord` st
+                 LEFT JOIN sys_stockfactory stf
+                           ON st.stock_id1 = stf.id
+                 LEFT JOIN (SELECT dict_key, dict_value
+                            FROM blade_dict_biz
+                            WHERE `code` = 'stockSpecs1'
+                              AND is_deleted = 0) d ON d.dict_key = st.specs_val1
+                 LEFT JOIN (SELECT dict_key, dict_value
+                            FROM blade_dict_biz
+                            WHERE `code` = 'stockSpecs2'
+                              AND is_deleted = 0) c ON c.dict_key = st.specs_val2
+                 LEFT JOIN (SELECT name, id FROM blade_user WHERE is_deleted = 0) a ON a.id = st.create_user
+        WHERE st.is_deleted = 0
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/stockrecord/service/IStockrecordService.java b/src/main/java/org/springblade/modules/stockrecord/service/IStockrecordService.java
index 7a72dc9..fff0e06 100644
--- a/src/main/java/org/springblade/modules/stockrecord/service/IStockrecordService.java
+++ b/src/main/java/org/springblade/modules/stockrecord/service/IStockrecordService.java
@@ -37,5 +37,6 @@
 	 * @return
 	 */
 	IPage<StockrecordVO> selectStockrecordPage(IPage<StockrecordVO> page, StockrecordVO stockrecord);
+	IPage<StockrecordVO> seletStockRecordList(IPage<StockrecordVO> page, StockrecordVO stockrecord);
 
 }
diff --git a/src/main/java/org/springblade/modules/stockrecord/service/impl/StockrecordServiceImpl.java b/src/main/java/org/springblade/modules/stockrecord/service/impl/StockrecordServiceImpl.java
index 30df643..19a5bb2 100644
--- a/src/main/java/org/springblade/modules/stockrecord/service/impl/StockrecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/stockrecord/service/impl/StockrecordServiceImpl.java
@@ -38,4 +38,9 @@
 		return page.setRecords(baseMapper.selectStockrecordPage(page, stockrecord));
 	}
 
+	@Override
+	public IPage<StockrecordVO> seletStockRecordList(IPage<StockrecordVO> page, StockrecordVO stockrecord) {
+		return page.setRecords(baseMapper.seletStockRecordList(page,stockrecord));
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/stockrecord/vo/StockrecordVO.java b/src/main/java/org/springblade/modules/stockrecord/vo/StockrecordVO.java
index 1fb7771..14fa4ba 100644
--- a/src/main/java/org/springblade/modules/stockrecord/vo/StockrecordVO.java
+++ b/src/main/java/org/springblade/modules/stockrecord/vo/StockrecordVO.java
@@ -30,5 +30,12 @@
 @EqualsAndHashCode(callSuper = true)
 public class StockrecordVO extends Stockrecord {
 	private static final long serialVersionUID = 1L;
-
+	Integer num;
+	String stype;
+	String factoryName;
+	String dic1;
+	String dic2;
+	String spn;
+	String czr;
+	String count;
 }

--
Gitblit v1.9.3