修改
This commit is contained in:
1 parent
944422a4c0
commit
1c935a3e65
8 files changed
+53
-21
No files matched your search
+1
-1
@@ -45,7 +45,7 @@ public class SmErpStockEntity extends Model<SmErpStockEntity> {
|
||||
* spuID
|
||||
*/
|
||||
@Schema(description="spuID")
|
||||
private Long spuId;
|
||||
private Long erpSpuId;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
|
||||
+4
@@ -142,4 +142,8 @@ public class SmErpUnitEntity extends Model<SmErpUnitEntity> {
|
||||
*/
|
||||
@Schema(description="租户编号")
|
||||
private Long tenantId;
|
||||
|
||||
|
||||
@Schema(description = "是否是基础库存,默认0否,1是")
|
||||
private String isBase;
|
||||
}
|
||||
+7
-2
@@ -110,7 +110,7 @@ public class SmErpSpuController {
|
||||
SmErpSpuEntity smErpSpuEntity = smErpSpuService.getById(id);
|
||||
//库存
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, id);
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, id);
|
||||
SmErpStockEntity smErpStockEntity = smErpStockService.list(smErpStockEntityLambdaQueryWrapper).get(0);
|
||||
smErpSpuEntity.setStock(smErpStockEntity.getBaseStock());
|
||||
smErpStockEntity.setInventoryLowerLimit(smErpStockEntity.getInventoryLowerLimit());
|
||||
@@ -247,6 +247,7 @@ public class SmErpSpuController {
|
||||
|
||||
|
||||
|
||||
//-------------------APP-----------------
|
||||
|
||||
|
||||
/**
|
||||
@@ -292,7 +293,11 @@ public class SmErpSpuController {
|
||||
if (spu == null) {
|
||||
R.failed("商品不存在");
|
||||
}
|
||||
if (spu.getStock()<Math.abs(incrCount)){
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, spuId);
|
||||
SmErpStockEntity smErpStockEntity = smErpStockService.getOne(smErpStockEntityLambdaQueryWrapper);
|
||||
|
||||
if (smErpStockEntity.getCurrentStock()<Math.abs(incrCount)){
|
||||
return R.failed("库存不足");
|
||||
}
|
||||
return R.ok();
|
||||
|
||||
+31
-8
@@ -9,12 +9,10 @@ import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO;
|
||||
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO;
|
||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpAuxiliaryCodeEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpStockEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.*;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpSpuMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpStockMapper;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmSpuMapper;
|
||||
import com.bsd.pjcloud.supermarket.service.SmErpAuxiliaryCodeService;
|
||||
import com.bsd.pjcloud.supermarket.service.SmErpSpuService;
|
||||
import com.bsd.pjcloud.supermarket.service.SmErpUnitService;
|
||||
@@ -52,6 +50,8 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
||||
|
||||
private final SmErpStockMapper smErpStockMapper;
|
||||
|
||||
private final SmSpuMapper spuMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public R saveSpu(SmErpSpuEntity supermarketSpu) {
|
||||
@@ -60,8 +60,9 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
||||
|
||||
//库存表
|
||||
SmErpStockEntity smErpStockEntity = new SmErpStockEntity();
|
||||
smErpStockEntity.setSpuId(supermarketSpu.getId());
|
||||
smErpStockEntity.setErpSpuId(supermarketSpu.getId());
|
||||
smErpStockEntity.setBaseStock(supermarketSpu.getStock());
|
||||
smErpStockEntity.setCurrentStock(supermarketSpu.getStock());
|
||||
smErpStockEntity.setInventoryLowerLimit(supermarketSpu.getInventoryLowerLimit());
|
||||
smErpStockEntity.setInventoryUpperLimit(supermarketSpu.getInventoryUpperLimit());
|
||||
smErpStockMapper.insert(smErpStockEntity);
|
||||
@@ -93,10 +94,19 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
||||
baseMapper.updateById(supermarketSpu);
|
||||
Integer stock = supermarketSpu.getStock();
|
||||
|
||||
//如果更新商品的期初库存,就需要计算后期商品出入库单据进行了多少数据
|
||||
LambdaQueryWrapper<SmErpStockEntity> selectWStockWrapper = new LambdaQueryWrapper<>();
|
||||
selectWStockWrapper.eq(SmErpStockEntity::getErpSpuId, supermarketSpu.getId());
|
||||
SmErpStockEntity queryStock = smErpStockMapper.selectOne(selectWStockWrapper);
|
||||
//得到单据进出的库存数量
|
||||
int inventoryStockNum = queryStock.getCurrentStock() - queryStock.getBaseStock();
|
||||
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, supermarketSpu.getId());
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, supermarketSpu.getId());
|
||||
SmErpStockEntity smErpStockEntity = new SmErpStockEntity();
|
||||
smErpStockEntity.setBaseStock(stock);
|
||||
//单据进出的+期初
|
||||
smErpStockEntity.setCurrentStock(stock+inventoryStockNum);
|
||||
smErpStockEntity.setInventoryLowerLimit(supermarketSpu.getInventoryLowerLimit());
|
||||
smErpStockEntity.setInventoryUpperLimit(supermarketSpu.getInventoryUpperLimit());
|
||||
smErpStockMapper.update(smErpStockEntity,smErpStockEntityLambdaQueryWrapper);
|
||||
@@ -195,12 +205,25 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
||||
|
||||
@Override
|
||||
public Object getSupermarketSpuAppDetailById(Long id) {
|
||||
SmErpSpuEntity smErpSpuEntity = baseMapper.selectById(id);
|
||||
List<SmErpUnitEntity> smErpUnitEntityList = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().eq(SmErpUnitEntity::getSpuId, id));
|
||||
|
||||
SmSpuEntity smSpuEntity = spuMapper.selectById(id);
|
||||
if (smSpuEntity == null) {
|
||||
return R.failed("商品不存在");
|
||||
}
|
||||
|
||||
SmErpSpuEntity smErpSpuEntity = baseMapper.selectById(smSpuEntity.getErpSpuId());
|
||||
|
||||
List<SmErpUnitEntity> smErpUnitEntityList = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().eq(SmErpUnitEntity::getSpuId, smErpSpuEntity.getId()));
|
||||
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, smErpSpuEntity.getId());
|
||||
SmErpStockEntity smErpStockEntity = smErpStockMapper.selectOne(smErpStockEntityLambdaQueryWrapper);
|
||||
|
||||
List<SmErpUnitEntity> unitEntities = smErpUnitEntityList.stream().filter(supermarketUnitEntity -> supermarketUnitEntity.getStatus() == 0).collect(Collectors.toList());
|
||||
SupermarketAppSpuDetailsVo supermarketAppSpuVo = BeanUtils.toBean(smErpSpuEntity, SupermarketAppSpuDetailsVo.class);
|
||||
List<SupermarketAppUnitVo> supermarketAppUnitVos = BeanUtils.toBean(unitEntities, SupermarketAppUnitVo.class);
|
||||
supermarketAppSpuVo.setSkuList(supermarketAppUnitVos);
|
||||
supermarketAppSpuVo.setStock(smErpStockEntity.getCurrentStock());
|
||||
return supermarketAppSpuVo;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -43,11 +43,11 @@ public class SmErpStockServiceImpl extends ServiceImpl<SmErpStockMapper, SmErpSt
|
||||
for (UpdateStockDTO item : updateStockDTOS) {
|
||||
// 1. 先查询当前版本号
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<SmErpStockEntity>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId,item.getId());
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId,item.getId());
|
||||
SmErpStockEntity smErpStockEntity = baseMapper.selectOne(smErpStockEntityLambdaQueryWrapper);
|
||||
|
||||
LambdaQueryWrapper<SmErpStockEntity> updateStockWithLockWrapper = new LambdaQueryWrapper<SmErpStockEntity>();
|
||||
updateStockWithLockWrapper.eq(SmErpStockEntity::getSpuId,item.getId());
|
||||
updateStockWithLockWrapper.eq(SmErpStockEntity::getErpSpuId,item.getId());
|
||||
updateStockWithLockWrapper.eq(SmErpStockEntity::getVersion,smErpStockEntity.getVersion());
|
||||
SmErpStockEntity updateSmErpStockEntity = new SmErpStockEntity();
|
||||
updateSmErpStockEntity.setCurrentStock(smErpStockEntity.getCurrentStock()+item.getIncrCount());
|
||||
|
||||
+3
-6
@@ -7,7 +7,7 @@
|
||||
<id property="id" column="id"/>
|
||||
<result property="baseStock" column="base_stcok"/>
|
||||
<result property="version" column="version"/>
|
||||
<result property="spuId" column="spu_id"/>
|
||||
<result property="erpSpuId" column="erp_spu_id"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
@@ -21,9 +21,6 @@
|
||||
<resultMap id="stockWarnResultMap" type="com.bsd.pjcloud.supermarket.vo.stockwarn.StockWarnVO">
|
||||
<!-- 库存表基础字段 -->
|
||||
<id column="id" property="id"/>
|
||||
<result column="spu_id" property="spuId"/>
|
||||
<result column="base_stock" property="baseStock"/>
|
||||
<result column="current_stock" property="currentStock"/>
|
||||
<result column="inventory_upper_limit" property="inventoryUpperLimit"/>
|
||||
<result column="inventory_lower_limit" property="inventoryLowerLimit"/>
|
||||
|
||||
@@ -51,14 +48,14 @@
|
||||
spu.category_id,
|
||||
spu.id,
|
||||
CASE
|
||||
WHEN (stock.base_stock + stock.current_stock) > stock.inventory_upper_limit THEN '2'
|
||||
WHEN (stock.current_stock) > stock.inventory_upper_limit THEN '2'
|
||||
ELSE '1'
|
||||
END AS warn_type
|
||||
FROM sm_erp_stock stock
|
||||
LEFT JOIN sm_erp_spu spu ON stock.spu_id = spu.id
|
||||
<where>
|
||||
<!-- 库存预警条件 -->
|
||||
(stock.base_stock + stock.current_stock) < stock.inventory_lower_limit or (stock.base_stock + stock.current_stock) > stock.inventory_upper_limit
|
||||
(stock.current_stock) < stock.inventory_lower_limit or ( stock.current_stock) > stock.inventory_upper_limit
|
||||
|
||||
<if test="param.productCode != null and param.productCode != ''">
|
||||
AND spu.product_code = #{param.productCode}
|
||||
|
||||
+1
@@ -21,6 +21,7 @@
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="tenantId" column="tenant_id"/>
|
||||
<result property="isBase" column="is_base"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="SupermarketUnitWithSpuVoMap" type="com.bsd.pjcloud.supermarket.vo.erp.SmErpUnitWithSpuVo">
|
||||
|
||||
+4
-2
@@ -34,13 +34,15 @@
|
||||
</select>
|
||||
|
||||
<select id="getAppPage" resultType="com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuVo">
|
||||
SELECT esp.product_name, esp.pic_url, esp.stock, esp.sales_count, esp.retail_price, esp.promotion_price
|
||||
SELECT sp.id,sp.slider_pic_urls,esp.product_name, esp.pic_url,stock.current_stock as stock, esp.sales_count, esp.retail_price, esp.promotion_price
|
||||
FROM `sm_spu` sp
|
||||
LEFT JOIN sm_erp_spu esp
|
||||
on sp.erp_spu_id = esp.id
|
||||
LEFT JOIN sm_erp_stock stock
|
||||
on esp.id = stock.erp_spu_id
|
||||
<where>
|
||||
esp.status = 0 and esp.merchant_id=${supermarketSpuQueryDTO.merchantId}
|
||||
<if test="smspu.productName != null and smspu.productName != ''">
|
||||
<if test="supermarketSpuQueryDTO.productName != null and supermarketSpuQueryDTO.productName != ''">
|
||||
and esp.product_name like concat('%', #{supermarketSpuQueryDTO.productName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
|
||||
Reference in new issue
Block a user