From 08afeadee3b2a73266a0a43c899f86cd474a274d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 01 Aug 2022 15:32:48 +0800
Subject: [PATCH] 加工产品新增销售、库存损耗功能
---
src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java | 18 +++++++++
src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java | 3 +
src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml | 22 ++++++++++-
src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java | 10 +++++
src/main/java/org/springblade/modules/process/service/IProcessService.java | 15 +++++++
src/main/java/org/springblade/modules/sale/controller/SaleController.java | 19 +++++++++
6 files changed, 85 insertions(+), 2 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 57ca548..c1d0851 100644
--- a/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
+++ b/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
@@ -32,6 +32,7 @@
import org.springblade.modules.InventoryLoss.entity.Inventory;
import org.springblade.modules.InventoryLoss.service.InventoryService;
import org.springblade.modules.InventoryLoss.vo.InventoryVO;
+import org.springblade.modules.process.service.IProcessService;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -50,6 +51,7 @@
private final InventoryService inventoryService;
private final FarmProductStockService farmProductStockService;
+ private final IProcessService processService;
/**
* 详情
@@ -121,6 +123,22 @@
return R.status(inventoryService.saveOrUpdate(inventory));
}
+ /**
+ * 新增或修改 库存损耗记录表
+ */
+ @PostMapping("/submitProcess")
+ @ApiOperationSupport(order = 8)
+ @ApiOperation(value = "新增或修改", notes = "传入sale")
+ public R submitProcess(@Valid @RequestBody InventoryVO inventory) {
+ boolean res = processService.stockCompare(inventory.getSaleNum(),inventory.getProid());
+ if (!res){
+ throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!"));
+ }else {
+ //库存充足,减去相应库存
+ processService.stockReduce(inventory.getSaleNum(),inventory.getProid());
+ }
+ return R.status(inventoryService.saveOrUpdate(inventory));
+ }
/**
* 删除 库存损耗记录表
diff --git a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java
index 009affd..95886fd 100644
--- a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java
+++ b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java
@@ -40,4 +40,7 @@
*/
List<ProcessVO> selectProcessPage(IPage page, @Param("process") ProcessVO process);
+ boolean stockCompare(@Param("saleNum") Double saleNum, @Param("proid") String proid);
+
+ Boolean stockReduce(@Param("saleNum") Double saleNum, @Param("proid") String proid);
}
diff --git a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
index 44033ac..7b00f08 100644
--- a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
+++ b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
@@ -23,7 +23,7 @@
<select id="selectProcessPage" resultMap="processResultMap">
- SELECT p.strain_id,
+ SELECT p.strain_id,p.id,
p.land_id,sale_time,sale_num,strain_name,process_id,
SUM(p.process_num) as process_num,
m.machining_type AS processName,
@@ -39,7 +39,25 @@
<if test="process.strainId !=null and process.strainId !=''">
and p.strain_id = #{process.strainId}
</if>
- GROUP BY p.strain_id,m.machining_type,m.machining_tp,p.land_id,sale_time,sale_num,process_id
+ GROUP BY p.strain_id,m.machining_type,m.machining_tp,p.land_id,sale_time,sale_num,process_id,p.id
</select>
+ <select id="stockCompare" resultType="boolean">
+ SELECT
+ CASE
+ WHEN
+ process_num > #{saleNum} THEN
+ TRUE ELSE FALSE
+ END result
+ FROM
+ sys_process
+ WHERE
+ id = #{proid}
+ </select>
+
+ <update id="stockReduce">
+ UPDATE sys_process SET process_num = process_num - #{saleNum}
+ WHERE
+ id = #{proid}
+ </update>
</mapper>
diff --git a/src/main/java/org/springblade/modules/process/service/IProcessService.java b/src/main/java/org/springblade/modules/process/service/IProcessService.java
index 51eed46..6d8ccfa 100644
--- a/src/main/java/org/springblade/modules/process/service/IProcessService.java
+++ b/src/main/java/org/springblade/modules/process/service/IProcessService.java
@@ -38,4 +38,19 @@
*/
IPage<ProcessVO> selectProcessPage(IPage<ProcessVO> page, ProcessVO process);
+ /**
+ * 库存对比
+ * @param saleNum 销售数量
+ * @param proid 加工表主键
+ * @return
+ */
+ boolean stockCompare(Double saleNum, String proid);
+
+ /**
+ * 对应库存减少
+ * @param saleNum 销售数量
+ * @param proid 加工表主键
+ * @return
+ */
+ Boolean stockReduce(Double saleNum, String proid);
}
diff --git a/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java b/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java
index 7b53dcc..f08246c 100644
--- a/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java
+++ b/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java
@@ -38,4 +38,14 @@
return page.setRecords(baseMapper.selectProcessPage(page, process));
}
+ @Override
+ public boolean stockCompare(Double saleNum, String proid) {
+ return baseMapper.stockCompare(saleNum,proid);
+ }
+
+ @Override
+ public Boolean stockReduce(Double saleNum, String proid) {
+ return baseMapper.stockReduce(saleNum,proid);
+ }
+
}
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 5e296bf..3884491 100644
--- a/src/main/java/org/springblade/modules/sale/controller/SaleController.java
+++ b/src/main/java/org/springblade/modules/sale/controller/SaleController.java
@@ -30,6 +30,7 @@
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.farmplant.service.FarmProductStockService;
+import org.springblade.modules.process.service.IProcessService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -52,6 +53,7 @@
private final ISaleService saleService;
private final FarmProductStockService farmProductStockService;
+ private final IProcessService processService;
/**
* 详情
@@ -123,6 +125,23 @@
return R.status(saleService.saveOrUpdate(sale));
}
+ /**
+ * 新增或修改 销售记录表(加工产品)
+ */
+ @PostMapping("/submitProcess")
+ @ApiOperationSupport(order = 8)
+ @ApiOperation(value = "新增或修改", notes = "传入sale")
+ public R submitProcess(@Valid @RequestBody SaleVO sale) {
+ //对比加工表库存量
+ boolean res = processService.stockCompare(sale.getSaleNum(),sale.getProid());
+ if (!res){
+ throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!"));
+ }else {
+ //库存充足,减去相应库存
+ processService.stockReduce(sale.getSaleNum(),sale.getProid());
+ }
+ return R.status(saleService.saveOrUpdate(sale));
+ }
/**
* 删除 销售记录表
--
Gitblit v1.9.3