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