库存
This commit is contained in:
1 parent
b7beca227d
commit
de1ed3ae7e
10 files changed
+151
-17
No files matched your search
+14
-11
@@ -242,17 +242,6 @@ public class SmErpSpuEntity extends Model<SmErpSpuEntity> {
|
||||
@Schema(description="联营扣率")
|
||||
private BigDecimal jointDeductionRate;
|
||||
|
||||
/**
|
||||
* 库存上限
|
||||
*/
|
||||
@Schema(description="库存上限")
|
||||
private Integer inventoryUpperLimit;
|
||||
|
||||
/**
|
||||
* 库存下限
|
||||
*/
|
||||
@Schema(description="库存下限")
|
||||
private Integer inventoryLowerLimit;
|
||||
|
||||
/**
|
||||
* 毛利率
|
||||
@@ -332,4 +321,18 @@ public class SmErpSpuEntity extends Model<SmErpSpuEntity> {
|
||||
@TableField(exist = false)
|
||||
private List<SmErpUnitEntity> smErpUnitEntityList;
|
||||
|
||||
/**
|
||||
* 库存上限
|
||||
*/
|
||||
@Schema(description="库存上限")
|
||||
@TableField(exist = false)
|
||||
private Integer inventoryUpperLimit;
|
||||
|
||||
/**
|
||||
* 库存下限
|
||||
*/
|
||||
@Schema(description="库存下限")
|
||||
@TableField(exist = false)
|
||||
private Integer inventoryLowerLimit;
|
||||
|
||||
}
|
||||
+16
-1
@@ -33,7 +33,7 @@ public class SmErpStockEntity extends Model<SmErpStockEntity> {
|
||||
* 基础库存数量
|
||||
*/
|
||||
@Schema(description="基础库存数量")
|
||||
private Integer baseStcok;
|
||||
private Integer baseStock;
|
||||
|
||||
/**
|
||||
* 乐观锁版本号
|
||||
@@ -88,4 +88,19 @@ public class SmErpStockEntity extends Model<SmErpStockEntity> {
|
||||
*/
|
||||
@Schema(description="租户编号")
|
||||
private Long tenantId;
|
||||
|
||||
@Schema(description="当前库存")
|
||||
private Integer currentStock;
|
||||
|
||||
/**
|
||||
* 库存上限
|
||||
*/
|
||||
@Schema(description="库存上限")
|
||||
private Integer inventoryUpperLimit;
|
||||
|
||||
/**
|
||||
* 库存下限
|
||||
*/
|
||||
@Schema(description="库存下限")
|
||||
private Integer inventoryLowerLimit;
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.bsd.pjcloud.supermarket.vo.stockwarn;
|
||||
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StockWarnVO extends SmErpSpuEntity {
|
||||
private String warnType; // 预警类型字段
|
||||
|
||||
private Long spuId;
|
||||
|
||||
private Integer baseStock;
|
||||
|
||||
private Integer currentStock;
|
||||
}
|
||||
+24
-1
@@ -4,6 +4,8 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
@@ -20,6 +22,9 @@ import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity;
|
||||
import com.bsd.pjcloud.supermarket.service.*;
|
||||
import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuVo;
|
||||
import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuSimpleVo;
|
||||
import com.bsd.pjcloud.supermarket.vo.stockwarn.StockWarnVO;
|
||||
import com.github.yulichang.toolkit.JoinWrappers;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
||||
@@ -107,7 +112,9 @@ public class SmErpSpuController {
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, id);
|
||||
SmErpStockEntity smErpStockEntity = smErpStockService.list(smErpStockEntityLambdaQueryWrapper).get(0);
|
||||
smErpSpuEntity.setStock(smErpStockEntity.getBaseStcok());
|
||||
smErpSpuEntity.setStock(smErpStockEntity.getBaseStock());
|
||||
smErpStockEntity.setInventoryLowerLimit(smErpStockEntity.getInventoryLowerLimit());
|
||||
smErpStockEntity.setInventoryUpperLimit(smErpStockEntity.getInventoryUpperLimit());
|
||||
List<SmErpUnitEntity> list = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().eq(SmErpUnitEntity::getSpuId, id));
|
||||
smErpSpuEntity.setSmErpUnitEntityList(list);
|
||||
smErpSpuEntity.setSmErpAuxiliaryCodeEntityList(
|
||||
@@ -185,6 +192,22 @@ public class SmErpSpuController {
|
||||
return R.ok(bean);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param page 分页对象
|
||||
* @param supermarketSpu 商品spu
|
||||
* @return
|
||||
*/
|
||||
@Operation(summary = "分页查询库存预警" , description = "分页查询库存预警" )
|
||||
@GetMapping("/warnStock/page" )
|
||||
@PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_view')" )
|
||||
public R getWarnStockPage(@ParameterObject Page page, @ParameterObject SmErpSpuEntity supermarketSpu) {
|
||||
|
||||
IPage iPage = smErpStockService.selectWarnStockWithSpu(page, supermarketSpu);
|
||||
|
||||
return R.ok(iPage);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// --------APP-----------------
|
||||
|
||||
+6
@@ -1,11 +1,17 @@
|
||||
package com.bsd.pjcloud.supermarket.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpStockEntity;
|
||||
import com.bsd.pjcloud.supermarket.vo.stockwarn.StockWarnVO;
|
||||
import com.github.houbb.heaven.annotation.reflect.Param;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SmErpStockMapper extends PjcloudBaseMapper<SmErpStockEntity> {
|
||||
|
||||
|
||||
IPage<StockWarnVO> selectWarnStockWithSpu(Page<SmErpStockEntity> page, @Param("param") SmErpSpuEntity param);
|
||||
}
|
||||
+8
@@ -1,8 +1,16 @@
|
||||
package com.bsd.pjcloud.supermarket.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpStockEntity;
|
||||
import com.bsd.pjcloud.supermarket.vo.stockwarn.StockWarnVO;
|
||||
import com.github.houbb.heaven.annotation.reflect.Param;
|
||||
|
||||
public interface SmErpStockService extends IService<SmErpStockEntity> {
|
||||
|
||||
|
||||
|
||||
IPage<StockWarnVO> selectWarnStockWithSpu(Page<SmErpStockEntity> page,SmErpSpuEntity param);
|
||||
}
|
||||
+6
-2
@@ -61,7 +61,9 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
||||
//库存表
|
||||
SmErpStockEntity smErpStockEntity = new SmErpStockEntity();
|
||||
smErpStockEntity.setSpuId(supermarketSpu.getId());
|
||||
smErpStockEntity.setBaseStcok(supermarketSpu.getStock());
|
||||
smErpStockEntity.setBaseStock(supermarketSpu.getStock());
|
||||
smErpStockEntity.setInventoryLowerLimit(supermarketSpu.getInventoryLowerLimit());
|
||||
smErpStockEntity.setInventoryUpperLimit(supermarketSpu.getInventoryUpperLimit());
|
||||
smErpStockMapper.insert(smErpStockEntity);
|
||||
|
||||
//新增包装类型
|
||||
@@ -94,7 +96,9 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
|
||||
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, supermarketSpu.getId());
|
||||
SmErpStockEntity smErpStockEntity = new SmErpStockEntity();
|
||||
smErpStockEntity.setBaseStcok(stock);
|
||||
smErpStockEntity.setBaseStock(stock);
|
||||
smErpStockEntity.setInventoryLowerLimit(supermarketSpu.getInventoryLowerLimit());
|
||||
smErpStockEntity.setInventoryUpperLimit(supermarketSpu.getInventoryUpperLimit());
|
||||
smErpStockMapper.update(smErpStockEntity,smErpStockEntityLambdaQueryWrapper);
|
||||
|
||||
//新增包装类型
|
||||
|
||||
+9
@@ -1,9 +1,13 @@
|
||||
package com.bsd.pjcloud.supermarket.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
|
||||
import com.bsd.pjcloud.supermarket.entity.SmErpStockEntity;
|
||||
import com.bsd.pjcloud.supermarket.mapper.SmErpStockMapper;
|
||||
import com.bsd.pjcloud.supermarket.service.SmErpStockService;
|
||||
import com.bsd.pjcloud.supermarket.vo.stockwarn.StockWarnVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
* 商品包装单位(sku)
|
||||
@@ -13,4 +17,9 @@ import org.springframework.stereotype.Service;
|
||||
*/
|
||||
@Service
|
||||
public class SmErpStockServiceImpl extends ServiceImpl<SmErpStockMapper, SmErpStockEntity> implements SmErpStockService {
|
||||
|
||||
@Override
|
||||
public IPage<StockWarnVO> selectWarnStockWithSpu(Page<SmErpStockEntity> page, SmErpSpuEntity param) {
|
||||
return baseMapper.selectWarnStockWithSpu(page, param);
|
||||
}
|
||||
}
|
||||
+52
-1
@@ -5,7 +5,7 @@
|
||||
|
||||
<resultMap id="smErpStockMap" type="com.bsd.pjcloud.supermarket.entity.SmErpStockEntity">
|
||||
<id property="id" column="id"/>
|
||||
<result property="baseStcok" column="base_stcok"/>
|
||||
<result property="baseStock" column="base_stcok"/>
|
||||
<result property="version" column="version"/>
|
||||
<result property="spuId" column="spu_id"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
@@ -14,5 +14,56 @@
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="tenantId" column="tenant_id"/>
|
||||
<result property="currentStock" column="current_stock"/>
|
||||
<result property="inventoryUpperLimit" column="inventory_upper_limit"/>
|
||||
<result property="inventoryLowerLimit" column="inventory_lower_limit"/>
|
||||
</resultMap>
|
||||
<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"/>
|
||||
|
||||
<!-- 预警类型计算字段 -->
|
||||
<result column="warn_type" property="warnType"/>
|
||||
|
||||
<!-- SPU表关联字段 -->
|
||||
<result column="product_code" property="productCode"/>
|
||||
<result column="product_name" property="productName"/>
|
||||
<result column="barcode" property="barcode"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectWarnStockWithSpu" resultMap="stockWarnResultMap">
|
||||
SELECT
|
||||
stock.*,
|
||||
spu.product_code,
|
||||
spu.product_name,
|
||||
spu.barcode,
|
||||
CASE
|
||||
WHEN (stock.base_stock + stock.current_stock) > stock.inventory_upper_limit THEN 'UPPER_LIMIT'
|
||||
ELSE 'LOWER_LIMIT'
|
||||
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) NOT BETWEEN stock.inventory_lower_limit AND stock.inventory_upper_limit
|
||||
|
||||
<!-- 动态查询条件 -->
|
||||
<if test="param.productCode != null and param.productCode != ''">
|
||||
AND spu.product_code = #{param.productCode}
|
||||
</if>
|
||||
<if test="param.barcode != null and param.barcode != ''">
|
||||
AND spu.barcode = #{param.barcode}
|
||||
</if>
|
||||
<if test="param.productName != null and param.productName != ''">
|
||||
AND spu.product_name LIKE CONCAT('%', #{param.productName}, '%')
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY stock.id DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
+1
-1
@@ -378,7 +378,7 @@ public class SysUserController {
|
||||
return R.ok(userService.list(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getPhone, mobile)));
|
||||
}
|
||||
|
||||
@GetMapping("/ getSimpleUserAll")
|
||||
@GetMapping("/getSimpleUserAll")
|
||||
@Schema(description = "简要用户信息")
|
||||
public R<List<SimpleUserAllListVO>> getSimpleUserAllList(@RequestParam(value = "mobile",required = false) String mobile,
|
||||
@RequestParam(value = "name",required = false) String name){
|
||||
|
||||
Reference in new issue
Block a user