From 14abea221d9284d2c04a726ca039defa60f205e2 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Thu, 30 Jun 2022 20:56:06 +0800
Subject: [PATCH] 1、接口对接,增加库存判断,省市县对接,动态调整库存
---
src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml | 1
src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java | 4 +
src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java | 9 +++
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java | 2
src/main/java/org/springblade/modules/sale/entity/Sale.java | 75 ++++++++++++++++--------
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml | 20 ++++++
src/main/java/org/springblade/modules/sale/controller/SaleController.java | 10 +++
7 files changed, 95 insertions(+), 26 deletions(-)
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
index 0d6593a..1f5e2d2 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
@@ -34,4 +34,6 @@
List<FarmProductStockVO> statisticsProduct(@Param("farmProductStock") FarmProductStockVO farmProductStock);
List<FarmProductStockVO> statisticsProductx(@Param("page") IPage page, @Param("farmProductStock") FarmProductStockVO farmProductStock);
Map<String, String> selctProductCount(String year);
+ boolean stockCompare(double sale,String id);
+ boolean stockReduce(double sale,String id);
}
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
index 10e2ee0..50aed43 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -90,4 +90,24 @@
and sfps.tenant_id = #{farmProductStock.tenantId}
</if>
</select>
+
+ <!--销售对比库存是否充足-->
+ <select id="stockCompare" resultType="boolean">
+ SELECT
+ CASE
+ WHEN
+ weight > #{sale} THEN
+ TRUE ELSE FALSE
+ END result
+ FROM
+ sys_farm_product_stock
+ WHERE
+ strain_id = #{id}
+ </select>
+ <!--减去对应库存-->
+ <update id="stockReduce">
+ UPDATE sys_farm_product_stock SET weight = weight - #{sale}
+ WHERE
+ strain_id = #{id}
+ </update>
</mapper>
diff --git a/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java b/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
index 5ae263b..a03c30a 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
@@ -32,4 +32,8 @@
FarmProductStockVO statisticsProduct(FarmProductStockVO farmProductStock);
IPage<FarmProductStockVO> statisticsProductx(IPage<FarmProductStockVO> page, FarmProductStockVO farmProductStock);
Map<String, String> selctProductCount(String year);
+ //查看库存是否充足
+ boolean stockCompare(double sale,String id);
+ //减去相应库存
+ boolean stockReduce(double sale,String id);
}
diff --git a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
index 20120b1..82f9f7b 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
@@ -60,4 +60,13 @@
public Map<String, String> selctProductCount(String year) {
return baseMapper.selctProductCount(year);
}
+
+ @Override
+ public boolean stockCompare(double sale,String id) {
+ return baseMapper.stockCompare(sale,id);
+ }
+ @Override
+ public boolean stockReduce(double sale,String id) {
+ return baseMapper.stockReduce(sale,id);
+ }
}
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 b2ee976..706737e 100644
--- a/src/main/java/org/springblade/modules/sale/controller/SaleController.java
+++ b/src/main/java/org/springblade/modules/sale/controller/SaleController.java
@@ -28,6 +28,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.core.tool.utils.StringUtil;
+import org.springblade.modules.farmplant.service.FarmProductStockService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -49,6 +51,7 @@
public class SaleController extends BladeController {
private final ISaleService saleService;
+ private final FarmProductStockService farmProductStockService;
/**
* 详情
@@ -110,6 +113,13 @@
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入sale")
public R submit(@Valid @RequestBody Sale sale) {
+ boolean res = farmProductStockService.stockCompare(sale.getSaleNum(),sale.getStrainId());
+ if (!res){
+ throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!"));
+ }else {
+ //库存充足,减去相应库存
+ farmProductStockService.stockReduce(sale.getSaleNum(),sale.getStrainId());
+ }
return R.status(saleService.saveOrUpdate(sale));
}
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 7a2169d..586b162 100644
--- a/src/main/java/org/springblade/modules/sale/entity/Sale.java
+++ b/src/main/java/org/springblade/modules/sale/entity/Sale.java
@@ -16,12 +16,16 @@
*/
package org.springblade.modules.sale.entity;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import org.springblade.core.mp.base.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
/**
* 销售记录表实体类
@@ -37,29 +41,48 @@
private static final long serialVersionUID = 1L;
/**
- * 品种id
- */
- private Integer strainId;
- /**
- * 销售时间
- */
- private LocalDateTime saleTime;
- /**
- * 销售数量
- */
- private Integer saleNum;
- /**
- * 销售去向
- */
- private Integer saleDestination;
- /**
- * 具体销售去向
- */
- private String saleDestination1;
- /**
- * 销售价格
- */
- private Double salePrice;
+ * 主键id
+ */
+ @TableId(value = "id",type = IdType.AUTO)
+ private Long id;
+ /**
+ * 品种id
+ */
+ private String strainId;
+ /**
+ * 销售时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date saleTime;
+ /**
+ * 销售数量
+ */
+ private Double saleNum;
+ /**
+ * 销售去向(省)
+ */
+ private Integer saleDestination;
+ /**
+ * 具体销售去向
+ */
+ private String saleDestination1;
+ /**
+ * 销售价格
+ */
+ private Double salePrice;
+ /**
+ * 销售去向(市)
+ */
+ private Integer city;
+ /**
+ * 销售去向(县)
+ */
+ private Integer county;
+ /**
+ * 品牌
+ */
+ private String saleBrand;
}
diff --git a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
index 8e1f3ca..79095ea 100644
--- a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
+++ b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
@@ -49,4 +49,5 @@
YEAR ( sale_time ) = YEAR ( date_sub( now( )
, INTERVAL 1 YEAR ) );
</select>
+
</mapper>
--
Gitblit v1.9.3