修复库存商品

This commit is contained in:
zjf committed 2025-02-12 15:40:10 +08:00
1 parent eee3a2aaf0
commit 2bdf31f419
9 files changed
+124 -14

No files matched your search

@@ -0,0 +1,31 @@
package com.bsd.pjcloud.supermarket.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 入库类型编码前兆
*/
@AllArgsConstructor
@Getter
public enum InventoryTypeEnum {
CGRK(1, "CGRK"),
// CK("2", "出库"),
;
private final Integer type;
private final String value;
// 根据数字返回对应的值
public static String getValueByType(int type) {
for (InventoryTypeEnum v : InventoryTypeEnum.values()) {
if (v.type == type) {
return v.value;
}
}
return ""; // 如果没有找到对应的数字
}
}
@@ -94,6 +94,13 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- 分布式发号器-->
<dependency>
<groupId>com.bsd</groupId>
<artifactId>pjcloud-common-sequence</artifactId>
<version>5.7.0</version>
</dependency>
</dependencies>
<profiles>
<profile>
@@ -0,0 +1,14 @@
package com.bsd.pjcloud.supermarket.config;
import cn.hutool.core.date.DateUtil;
import com.bsd.pjcloud.common.sequence.range.BizName;
public class PjcloudBizName implements BizName {
/**
* 生成名称
*/
@Override
public String create() {
return DateUtil.today();
}
}
@@ -0,0 +1,30 @@
package com.bsd.pjcloud.supermarket.config;
import com.bsd.pjcloud.common.sequence.builder.DbSeqBuilder;
import com.bsd.pjcloud.common.sequence.properties.SequenceDbProperties;
import com.bsd.pjcloud.common.sequence.sequence.Sequence;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
/**
* <p>
* 设置发号器生成规则
*/
@Configuration
public class SequenceConfig {
@Bean
public Sequence sequence(DataSource dataSource) {
return DbSeqBuilder
.create()
.bizName(new PjcloudBizName())// 定义切片规则
.dataSource(dataSource) // 注入数据源
.step(1000) // 每次获取数据的个数
.retryTimes(3) // 重试次数
.tableName("pjcloud_sequence") // 存储表名信息
.build();
}
}
@@ -68,7 +68,7 @@ public class SmErpCgPlanController {
* @param page 分页对象
* @return
*/
@Operation(summary = "分页查询" , description = "分页查询" )
@Operation(summary = "采购计划选择商品分页数据" , description = "采购计划选择商品分页数据" )
@GetMapping("/erpSpuPage" )
@PreAuthorize("@pms.hasPermission('supermarket_smErpInventoryRecords_view')" )
public R getErpSpuPage(@ParameterObject Page page, @ParameterObject ErpCgPlanDTO erpCgPlanDTO) {
@@ -8,6 +8,8 @@ import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.sequence.sequence.Sequence;
import com.bsd.pjcloud.supermarket.constant.InventoryTypeEnum;
import com.bsd.pjcloud.supermarket.constant.OrderTypeEnum;
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO;
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO;
@@ -19,6 +21,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -26,33 +29,38 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 采购计划
* 超市公共接口
*
* @author pjcloud
* @date 2025-02-10 12:15:37
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/smErpPurchase" )
@RequestMapping("/sm/common" )
@Tag(description = "smErpPurchase" , name = "采购计划" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class SmErpPurchaseController {
public class SmErpCommonController {
private final SmErpInventoryRecordsService smErpInventoryRecordsService;
private final SmErpSpuService smErpSpuService;
@Autowired
private Sequence sequence;
/**
* 采购计划选择商品分页数据
* 分页查询
* @param page 分页对象
* @param type @link InventoryTypeEnum
* @return
*/
@Operation(summary = "分页查询" , description = "分页查询" )
@GetMapping("/erpSpuPage" )
@PreAuthorize("@pms.hasPermission('supermarket_smErpInventoryRecords_view')" )
public R getErpSpuPage(@ParameterObject Page page, @ParameterObject ErpCgPlanDTO erpCgPlanDTO) {
return R.ok(smErpSpuService.getErpSpuPage(page, erpCgPlanDTO));
@Operation(summary = "获取业务流水编号" , description = "获取业务流水编号" )
@GetMapping("/getSequence")
public R getErpSpuPage(@RequestParam("type")Integer type) {
String valueByType = InventoryTypeEnum.getValueByType(type);
String s = sequence.nextNo();
String result = valueByType + "-" + s;
return R.ok(result);
}
@@ -15,11 +15,9 @@ import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO;
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO;
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.service.SmErpAuxiliaryCodeService;
import com.bsd.pjcloud.supermarket.service.SmErpSpuService;
import com.bsd.pjcloud.supermarket.service.SmErpUnitService;
import com.bsd.pjcloud.supermarket.service.SmSpuService;
import com.bsd.pjcloud.supermarket.service.*;
import com.bsd.pjcloud.supermarket.vo.app.SupermarketAppSpuVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -56,6 +54,8 @@ public class SmErpSpuController {
private final SmSpuService smSpuService;
private final SmErpStockService smErpStockService;
/**
* 分页查询
* @param page 分页对象
@@ -102,6 +102,11 @@ public class SmErpSpuController {
@PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_view')" )
public R getById(@PathVariable("id" ) Long id) {
SmErpSpuEntity smErpSpuEntity = smErpSpuService.getById(id);
//库存
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, id);
SmErpStockEntity smErpStockEntity = smErpStockService.list(smErpStockEntityLambdaQueryWrapper).get(0);
smErpSpuEntity.setStock(smErpStockEntity.getBaseStcok());
List<SmErpUnitEntity> list = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().eq(SmErpUnitEntity::getSpuId, id));
smErpSpuEntity.setSmErpUnitEntityList(list);
smErpSpuEntity.setSmErpAuxiliaryCodeEntityList(
@@ -2,6 +2,8 @@ package com.bsd.pjcloud.supermarket.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.common.sequence.sequence.Sequence;
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO;
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity;
@@ -9,6 +11,7 @@ import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanItemMapper;
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper;
import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -26,10 +29,14 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
private final SmErpCgPlanItemMapper smErpCgPlanItemMapper;
@Override
@Transactional
public Object saveCgplan(ErpCgPlanSaveDTO erpCgPlanSaveDTO) {
SmErpCgPlanEntity smErpCgPlanEntity = BeanUtils.toBean(erpCgPlanSaveDTO, SmErpCgPlanEntity.class);
smErpCgPlanEntity.setDeptId(SecurityUtils.getUser().getDeptId());
smErpCgPlanEntity.setCheckStatus("0");
int insert = baseMapper.insert(smErpCgPlanEntity);
List<ErpCgPlanSaveDTO> items = erpCgPlanSaveDTO.getItems();
@@ -87,7 +87,15 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
@Override
@Transactional
public R updateSpuById(SmErpSpuEntity supermarketSpu) {
baseMapper.updateById(supermarketSpu);
Integer stock = supermarketSpu.getStock();
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, supermarketSpu.getId());
SmErpStockEntity smErpStockEntity = new SmErpStockEntity();
smErpStockEntity.setBaseStcok(stock);
smErpStockMapper.update(smErpStockEntity,smErpStockEntityLambdaQueryWrapper);
//新增包装类型
List<SmErpUnitEntity> smErpUnitEntityList = supermarketSpu.getSmErpUnitEntityList();