From bcd6bdebc0e9b8eff98031beace3c029edf74322 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 27 Feb 2025 03:39:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=B8=82erp=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/SmErpInventoryRecordsEntity.java | 8 ++++-- .../supermarket/entity/SmErpUnitEntity.java | 2 +- .../vo/inventoryrecord/InventoryRecordVo.java | 5 ++++ .../controller/SmErpSpuController.java | 7 +++--- .../SmErpInventoryRecordsServiceImpl.java | 22 +++++++++++++++- .../service/impl/SmErpSpuServiceImpl.java | 25 ++++++++++++++++--- .../mapper/SmErpInventoryRecordsMapper.xml | 2 +- 7 files changed, 59 insertions(+), 12 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsEntity.java index 9d61e4b12..64e34d8db 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsEntity.java @@ -51,8 +51,8 @@ public class SmErpInventoryRecordsEntity extends Model { @Schema(description = "是否是基础库存,默认0否,1是") - private String isBase; + private Boolean isBase; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordVo.java index c9882bf28..f86eabcf6 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordVo.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordVo.java @@ -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 */ diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java index fb71b23f4..b46d5a084 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java @@ -111,10 +111,11 @@ public class SmErpSpuController { //库存 LambdaQueryWrapper 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 list = smErpUnitService.list(new LambdaQueryWrapper().eq(SmErpUnitEntity::getSpuId, id)); smErpSpuEntity.setSmErpUnitEntityList(list); smErpSpuEntity.setSmErpAuxiliaryCodeEntityList( diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java index 5ffec4e34..4f8c003f7 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java @@ -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 items = inventoryRecordSaveDTO.getItems(); + //计算主表总金额 + int sum = items.stream().mapToInt(InventoryRecordSaveItemDTO::getTotalAmount).sum(); + smErpCgDdEntity.setTotalAmount(sum); + int insert = baseMapper.insert(smErpCgDdEntity); + List cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class); List updateStockDTOS = new ArrayList<>(); for (SmErpInventoryRecordsItemEntity cgPlanItemEntity : cgPlanItemEntities) { @@ -96,6 +106,14 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl planIds = records.stream() .map(SmErpInventoryRecordsEntity::getId) .collect(Collectors.toSet()); + //收集userids + Set userIds = records.stream() + .map(SmErpInventoryRecordsEntity::getHandlerUserId) + .collect(Collectors.toSet()); + //请求得到所有的userIds + Map userMap = remoteUserService.getUserMap(userIds).getData(); + + LambdaQueryWrapper smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpInventoryRecordsItemEntity::getInventoryId,planIds); List cgPlanItemEntities = smErpInventoryRecordsItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper); @@ -116,6 +134,8 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl { + SysUser sysUser = userMap.getOrDefault(plan.getHandlerUserId(), new SysUser()); + plan.setHandlerUserName(sysUser.getUsername()); List names = planGoodsMap.getOrDefault(plan.getId(), Collections.emptyList()); plan.setProductName(String.join(", ", names)); }); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java index 264361863..4384d155b 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java @@ -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 wrapper) { - return baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + //计算库存回显 + List records = pageData.getRecords(); + Set erpSpuIds = records.stream().map(smErpSpuEntity -> smErpSpuEntity.getId()).collect(Collectors.toSet()); + + // 批量查询库存信息 + List stocks = smErpStockMapper.selectList( + new LambdaQueryWrapper() + .in(SmErpStockEntity::getErpSpuId, erpSpuIds)); + + // 建立SPU ID与库存的映射关系 + Map 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 diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsMapper.xml index 3c28b9e3a..f98f31115 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsMapper.xml @@ -8,7 +8,7 @@ - +