From d18eb5bd8b9cf93ba7adb4ee97fdcaccd3838e79 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 24 Aug 2022 10:36:10 +0800
Subject: [PATCH] 删除回滚完善,销售损耗添加字段type、prodId、地块选择数据返回增加库存量和面积

---
 src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java  |   17 ++++++--
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.java                        |    2 
 src/main/java/org/springblade/modules/sale/entity/Sale.java                              |    9 ++++
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml                         |   11 ++++-
 src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.xml             |    5 ++
 src/main/java/org/springblade/modules/lang/vo/LandVO.java                                |    1 
 src/main/java/org/springblade/modules/sale/controller/SaleController.java                |   18 +++++++--
 src/main/java/org/springblade/modules/processInv/service/impl/ProcessInvServiceImpl.java |    5 ++
 src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.java            |    2 +
 src/main/java/org/springblade/modules/processInv/service/IProcessInvService.java         |    2 +
 src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java             |    5 +-
 src/main/java/org/springblade/modules/lang/controller/LandController.java                |    2 
 src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java                |    9 ++++
 src/main/java/org/springblade/modules/lang/service/ILandService.java                     |    4 -
 14 files changed, 72 insertions(+), 20 deletions(-)

diff --git a/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java b/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
index eec1f07..4052e52 100644
--- a/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
+++ b/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
@@ -126,6 +126,7 @@
 			//库存充足,减去相应库存
 			farmProductStockService.stockReduce(inventory.getSaleNum(),inventory.getProid());
 		}
+		inventory.setProdId(inventory.getProid());
 		return R.status(inventoryService.saveOrUpdate(inventory));
 	}
 
@@ -159,6 +160,7 @@
 			inventory.setLandId(processInvVO.getLandId());
 			processInvService.updateById(processInv);
 		}
+		inventory.setProdId(inventory.getProid());
 		return R.status(inventoryService.saveOrUpdate(inventory));
 	}
 
@@ -170,10 +172,17 @@
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		Inventory inventory = inventoryService.getById(Long.parseLong(ids));
-		FarmProductStock farmProductStock = farmProductStockService.selectBy2Id(inventory.getStrainId(), inventory.getLandId());
-		Double weight = Double.parseDouble(farmProductStock.getWeight())+inventory.getSaleNum();
-		farmProductStock.setWeight(weight.toString());
-		farmProductStockService.updateById(farmProductStock);
+		if (inventory.getType() == 0){
+			FarmProductStock farmProductStock = farmProductStockService.getById(inventory.getProdId());
+			Double weight = Double.parseDouble(farmProductStock.getWeight())+inventory.getSaleNum();
+			farmProductStock.setWeight(weight.toString());
+			farmProductStockService.updateById(farmProductStock);
+		}else {
+			ProcessInv inv = processInvService.findById(inventory.getProdId());
+			Double weight = inv.getProductInventoryNum()+inventory.getSaleNum();
+			inv.setProductInventoryNum(weight);
+			processInvService.updateById(inv);
+		}
 		return R.status(inventoryService.deleteLogic(Func.toLongList(ids)));
 	}
 
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java b/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java
index c974242..6f55b27 100644
--- a/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java
+++ b/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java
@@ -76,5 +76,12 @@
 	 * 地块id
 	 */
 	private String landId;
-
+	/**
+	 * 品种类型(0农产品、1加工产品)
+	 */
+	private Integer type;
+	/**
+	 * 各自库存的主键
+	 */
+	private String prodId;
 }
diff --git a/src/main/java/org/springblade/modules/lang/controller/LandController.java b/src/main/java/org/springblade/modules/lang/controller/LandController.java
index ff2bbac..f140855 100644
--- a/src/main/java/org/springblade/modules/lang/controller/LandController.java
+++ b/src/main/java/org/springblade/modules/lang/controller/LandController.java
@@ -113,7 +113,7 @@
 	 */
 	@GetMapping("/selcetByStrainId")
 	public R selcetByStrainId(String strainId,String farmId) {
-		List<Land> list = landService.selectByStrainId(strainId,farmId);
+		List<LandVO> list = landService.selectByStrainId(strainId,farmId);
 		return R.data(list);
 	}
 
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
index 5e0d6bb..d7f0f28 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
@@ -94,7 +94,7 @@
 	 * @param strainId 品种id
 	 * @return
 	 */
-	List<Land> selectByStrainId(@Param("strainId") String strainId,@Param("farmId") String farmId);
+	List<LandVO> selectByStrainId(@Param("strainId") String strainId,@Param("farmId") String farmId);
 
 	List<Land> getByStrainIdFarmId(@Param("land")LandVO land);
 
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
index 4e647a7..2f5c3ad 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
@@ -228,11 +228,16 @@
         </if>
     </select>
 
-    <select id="selectByStrainId" resultType="org.springblade.modules.lang.entity.Land">
-        SELECT land.id,land.land_name,land.url,land.farm_id
+    <select id="selectByStrainId" resultType="org.springblade.modules.lang.vo.LandVO">
+        SELECT DISTINCT land.id,land.land_name,land.url,land.farm_id,fps.weight,
+        ( CASE WHEN land_unit = 2 THEN FORMAT(land.land_area * 0.0015,3) WHEN land_unit = 1 THEN land.land_area * 0.1 ELSE land.land_area END ) land_area
         FROM sys_land land
             LEFT JOIN sys_farm_product_stock fps ON fps.land_id = land.id
-        WHERE fps.strain_id = #{strainId}
+            LEFT JOIN sys_farm_plant sfp ON sfp.land_id = land.id
+        WHERE 1=1
+        <if test="strainId !=null and strainId != ''">
+            AND fps.strain_id = #{strainId}
+        </if>
         <if test="farmId !=null and farmId != '' ">
             AND land.farm_id = #{farmId}
         </if>
diff --git a/src/main/java/org/springblade/modules/lang/service/ILandService.java b/src/main/java/org/springblade/modules/lang/service/ILandService.java
index 0334dd9..46be866 100644
--- a/src/main/java/org/springblade/modules/lang/service/ILandService.java
+++ b/src/main/java/org/springblade/modules/lang/service/ILandService.java
@@ -57,8 +57,6 @@
 	Land getLandInfo(LandVO land);
 	/**
 	 * 更新地块信息
-	 * @param farm
-	 * @return
 	 */
 	boolean updateLandById(Land land);
 	boolean updateLandAr(Land land);
@@ -99,7 +97,7 @@
 	 * @param farmId 农场id
 	 * @return
 	 */
-	List<Land> selectByStrainId(String strainId,String farmId);
+	List<LandVO> selectByStrainId(String strainId,String farmId);
 	/**
 	 * 根据品种id查询地块(种养品种)
 	 * @param land
diff --git a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
index e3b5814..47b64e7 100644
--- a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
+++ b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
@@ -26,6 +26,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.function.Consumer;
 
 /**
  * 地块表 服务实现类
@@ -120,8 +121,8 @@
 	}
 
 	@Override
-	public List<Land> selectByStrainId(String strainId,String farmId) {
-		return baseMapper.selectByStrainId(strainId,farmId);
+	public List<LandVO> selectByStrainId(String strainId,String farmId) {
+		return baseMapper.selectByStrainId(strainId, farmId);
 	}
 
 	@Override
diff --git a/src/main/java/org/springblade/modules/lang/vo/LandVO.java b/src/main/java/org/springblade/modules/lang/vo/LandVO.java
index 9ea854b..202f4dd 100644
--- a/src/main/java/org/springblade/modules/lang/vo/LandVO.java
+++ b/src/main/java/org/springblade/modules/lang/vo/LandVO.java
@@ -42,4 +42,5 @@
 	String sfpStatus;
 	String sfpId;
 	String detail;
+	String weight;
 }
diff --git a/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.java b/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.java
index 62fbf16..a172811 100644
--- a/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.java
+++ b/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.java
@@ -53,4 +53,6 @@
 	Boolean del(Long id);
 
     ProcessInvVO getLand(@Param("processInv") ProcessInv processInv);
+
+	ProcessInv findById(@Param("prodId") String prodId);
 }
diff --git a/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.xml b/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.xml
index fb1fed2..913f73b 100644
--- a/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.xml
+++ b/src/main/java/org/springblade/modules/processInv/mapper/ProcessInvMapper.xml
@@ -84,4 +84,9 @@
             AND inv.id = #{processInv.id}
         </if>
     </select>
+    <select id="findById" resultType="org.springblade.modules.processInv.entity.ProcessInv">
+        SELECT id,strain_id,product_id,product_inventory_num,create_time,update_user,update_time,status,is_deleted
+        FROM sys_process_inv
+        WHERE is_deleted = 0 AND id = #{prodId}
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/processInv/service/IProcessInvService.java b/src/main/java/org/springblade/modules/processInv/service/IProcessInvService.java
index e1acd85..b5210bf 100644
--- a/src/main/java/org/springblade/modules/processInv/service/IProcessInvService.java
+++ b/src/main/java/org/springblade/modules/processInv/service/IProcessInvService.java
@@ -60,4 +60,6 @@
 	Boolean del(Long id);
 
     ProcessInvVO getLand(ProcessInv processInv);
+
+	ProcessInv findById(String prodId);
 }
diff --git a/src/main/java/org/springblade/modules/processInv/service/impl/ProcessInvServiceImpl.java b/src/main/java/org/springblade/modules/processInv/service/impl/ProcessInvServiceImpl.java
index ccd58ab..26aff7e 100644
--- a/src/main/java/org/springblade/modules/processInv/service/impl/ProcessInvServiceImpl.java
+++ b/src/main/java/org/springblade/modules/processInv/service/impl/ProcessInvServiceImpl.java
@@ -81,4 +81,9 @@
 	public ProcessInvVO getLand(ProcessInv processInv) {
 		return baseMapper.getLand(processInv);
 	}
+
+	@Override
+	public ProcessInv findById(String prodId) {
+		return baseMapper.findById(prodId);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/sale/controller/SaleController.java b/src/main/java/org/springblade/modules/sale/controller/SaleController.java
index 2874149..ea9f837 100644
--- a/src/main/java/org/springblade/modules/sale/controller/SaleController.java
+++ b/src/main/java/org/springblade/modules/sale/controller/SaleController.java
@@ -29,6 +29,7 @@
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
 import org.springblade.modules.farmplant.entity.FarmProductStock;
 import org.springblade.modules.farmplant.service.FarmProductStockService;
 import org.springblade.modules.process.service.IProcessService;
@@ -129,6 +130,7 @@
 			//库存充足,减去相应库存
 			farmProductStockService.stockReduce(sale.getSaleNum(),sale.getProid());
 		}
+		sale.setProdId(sale.getProid());
 		return R.status(saleService.saveOrUpdate(sale));
 	}
 
@@ -164,6 +166,7 @@
 			sale.setLandId(processInvVO.getLandId());
 			processInvService.updateById(processInv);
 		}
+		sale.setProdId(sale.getProid());
 		return R.status(saleService.saveOrUpdate(sale));
 	}
 
@@ -175,10 +178,17 @@
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		Sale sale = saleService.getById(Long.parseLong(ids));
-		FarmProductStock farmProductStock = farmProductStockService.selectBy2Id(sale.getStrainId(), sale.getLandId());
-		Double weight = Double.parseDouble(farmProductStock.getWeight())+sale.getSaleNum();
-		farmProductStock.setWeight(weight.toString());
-		farmProductStockService.updateById(farmProductStock);
+		if (sale.getType() == 0){
+			FarmProductStock farmProductStock = farmProductStockService.getById(sale.getProdId());
+			Double weight = Double.parseDouble(farmProductStock.getWeight())+sale.getSaleNum();
+			farmProductStock.setWeight(weight.toString());
+			farmProductStockService.updateById(farmProductStock);
+		}else {
+			ProcessInv inv = processInvService.findById(sale.getProdId());
+			Double weight = inv.getProductInventoryNum()+sale.getSaleNum();
+			inv.setProductInventoryNum(weight);
+			processInvService.updateById(inv);
+		}
 		return R.status(saleService.deleteLogic(Func.toLongList(ids)));
 	}
 
diff --git a/src/main/java/org/springblade/modules/sale/entity/Sale.java b/src/main/java/org/springblade/modules/sale/entity/Sale.java
index 15e770f..68eea33 100644
--- a/src/main/java/org/springblade/modules/sale/entity/Sale.java
+++ b/src/main/java/org/springblade/modules/sale/entity/Sale.java
@@ -88,5 +88,12 @@
 	 * 地块id
 	 */
 	private String landId;
-
+	/**
+	 * 品种类型(0农产品、1加工产品)
+	 */
+	private Integer type;
+	/**
+	 * 各自库存的主键
+	 */
+	private String prodId;
 }

--
Gitblit v1.9.3