超市erp接口修复完善

This commit is contained in:
zjf committed 2025-02-27 03:39:05 +08:00
1 parent 9328cb47f2
commit bcd6bdebc0
7 files changed
+59 -12

No files matched your search

@@ -51,8 +51,8 @@ public class SmErpInventoryRecordsEntity extends Model<SmErpInventoryRecordsEnti
/**
* 来源ID(根据类型指向对应的表,如采购单ID、退货单ID等)
*/
@Schema(description="来源ID(根据类型指向对应的表,如采购单ID、退货单ID等)")
private Long sourceId;
@Schema(description="来源code")
private String linkCode;
/**
* 仓库id
@@ -165,4 +165,8 @@ public class SmErpInventoryRecordsEntity extends Model<SmErpInventoryRecordsEnti
@Schema(description="商品名称")
@TableField(exist = false)
private String productName;
@Schema(description="经办人名称")
@TableField(exist = false)
private String handlerUserName;
}
@@ -145,5 +145,5 @@ public class SmErpUnitEntity extends Model<SmErpUnitEntity> {
@Schema(description = "是否是基础库存,默认0否,1是")
private String isBase;
private Boolean isBase;
}
@@ -39,6 +39,8 @@ public class InventoryRecordVo {
private Long handlerUserId;
@Schema(description="供应商id")
private Long supplierId;
/**
* 备注
*/
@@ -66,6 +68,9 @@ public class InventoryRecordVo {
private String checkStatus;
@Schema(description="关联码")
private String linkCode;
/**
* @link InventoryRecordItemVo
*/
@@ -111,10 +111,11 @@ public class SmErpSpuController {
//库存
LambdaQueryWrapper<SmErpStockEntity> smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, id);
SmErpStockEntity smErpStockEntity = smErpStockService.list(smErpStockEntityLambdaQueryWrapper).get(0);
SmErpStockEntity smErpStockEntity = smErpStockService.getOne(smErpStockEntityLambdaQueryWrapper);
smErpSpuEntity.setStock(smErpStockEntity.getBaseStock());
smErpStockEntity.setInventoryLowerLimit(smErpStockEntity.getInventoryLowerLimit());
smErpStockEntity.setInventoryUpperLimit(smErpStockEntity.getInventoryUpperLimit());
smErpSpuEntity.setInventoryLowerLimit(smErpStockEntity.getInventoryLowerLimit());
smErpSpuEntity.setInventoryUpperLimit(smErpStockEntity.getInventoryUpperLimit());
List<SmErpUnitEntity> list = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().eq(SmErpUnitEntity::getSpuId, id));
smErpSpuEntity.setSmErpUnitEntityList(list);
smErpSpuEntity.setSmErpAuxiliaryCodeEntityList(
@@ -3,6 +3,8 @@ package com.bsd.pjcloud.supermarket.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
@@ -25,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* 出入库记录表
@@ -45,6 +48,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
private final SmErpSpuMapper smErpSpuMapper;
private final SmErpUnitMapper smErpUnitMapper;
private final RemoteUserService remoteUserService;
@Override
@Transactional
public Object saveInventoryRecord(InventoryRecordSaveDTO inventoryRecordSaveDTO) {
@@ -54,8 +59,13 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
smErpCgDdEntity.setDeptId(deptId);
smErpCgDdEntity.setCheckStatus("0");
smErpCgDdEntity.setDeptId(deptId);
int insert = baseMapper.insert(smErpCgDdEntity);
List<InventoryRecordSaveItemDTO> items = inventoryRecordSaveDTO.getItems();
//计算主表总金额
int sum = items.stream().mapToInt(InventoryRecordSaveItemDTO::getTotalAmount).sum();
smErpCgDdEntity.setTotalAmount(sum);
int insert = baseMapper.insert(smErpCgDdEntity);
List<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class);
List<UpdateStockDTO> updateStockDTOS = new ArrayList<>();
for (SmErpInventoryRecordsItemEntity cgPlanItemEntity : cgPlanItemEntities) {
@@ -96,6 +106,14 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
Set<Long> planIds = records.stream()
.map(SmErpInventoryRecordsEntity::getId)
.collect(Collectors.toSet());
//收集userids
Set<Long> userIds = records.stream()
.map(SmErpInventoryRecordsEntity::getHandlerUserId)
.collect(Collectors.toSet());
//请求得到所有的userIds
Map<Long, SysUser> userMap = remoteUserService.getUserMap(userIds).getData();
LambdaQueryWrapper<SmErpInventoryRecordsItemEntity> smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpInventoryRecordsItemEntity::getInventoryId,planIds);
List<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = smErpInventoryRecordsItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper);
@@ -116,6 +134,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
));
// 设置商品名称到主表实体
records.forEach(plan -> {
SysUser sysUser = userMap.getOrDefault(plan.getHandlerUserId(), new SysUser());
plan.setHandlerUserName(sysUser.getUsername());
List<String> names = planGoodsMap.getOrDefault(plan.getId(), Collections.emptyList());
plan.setProductName(String.join(", ", names));
});
@@ -33,8 +33,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -60,7 +59,6 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
@Override
@Transactional
public R saveSpu(SmErpSpuEntity supermarketSpu) {
baseMapper.insert(supermarketSpu);
//库存表
@@ -194,7 +192,26 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
@Override
public Object pageScope(Page page, LambdaQueryWrapper<SmErpSpuEntity> wrapper) {
return baseMapper.selectPageByScope(page, wrapper, DataScope.of());
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
//计算库存回显
List<SmErpSpuEntity> records = pageData.getRecords();
Set<Long> erpSpuIds = records.stream().map(smErpSpuEntity -> smErpSpuEntity.getId()).collect(Collectors.toSet());
// 批量查询库存信息
List<SmErpStockEntity> stocks = smErpStockMapper.selectList(
new LambdaQueryWrapper<SmErpStockEntity>()
.in(SmErpStockEntity::getErpSpuId, erpSpuIds));
// 建立SPU ID与库存的映射关系
Map<Long, SmErpStockEntity> stockMap = stocks.stream()
.collect(Collectors.toMap(SmErpStockEntity::getErpSpuId,smErpStockEntity -> smErpStockEntity));
records.forEach(spu ->
{
SmErpStockEntity smErpStockEntity = stockMap.get(spu.getId());
spu.setStock(smErpStockEntity != null ? smErpStockEntity.getCurrentStock() : 0);
});
return pageData;
}
@Override
@@ -8,7 +8,7 @@
<result property="inventoryCode" column="inventory_code"/>
<result property="inventoryDate" column="inventory_date"/>
<result property="inventoryType" column="inventory_type"/>
<result property="sourceId" column="source_id"/>
<result property="linkCode" column="link_code"/>
<result property="warehouseId" column="warehouse_id"/>
<result property="handlerUserId" column="handler_user_id"/>
<result property="checkStatus" column="check_status"/>