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 1/2] =?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 @@ - + From 45fa3999e18b368bcdc64a4e3e68c267849159d4 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 27 Feb 2025 16:14:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?erp=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/InventoryTypeEnum.java | 18 +++--- .../dto/SupermarketSpuUpdateStockReqDTO.java | 5 ++ .../dto/supplier/SmErpSupplierImportDto.java | 62 +++++++++++++++++++ .../entity/SmErpAuxiliaryCodeEntity.java | 3 + .../entity/SmErpInventoryRecordsEntity.java | 3 + .../controller/SmErpCommonController.java | 2 +- .../service/impl/SmErpSpuServiceImpl.java | 18 ++++++ .../mapper/SmErpAuxiliaryCodeMapper.xml | 1 + .../mapper/SmErpInventoryRecordsMapper.xml | 1 + 9 files changed, 103 insertions(+), 10 deletions(-) create mode 100644 pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/supplier/SmErpSupplierImportDto.java diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/constant/InventoryTypeEnum.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/constant/InventoryTypeEnum.java index 9702e8917..089c2020e 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/constant/InventoryTypeEnum.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/constant/InventoryTypeEnum.java @@ -10,21 +10,21 @@ import lombok.Getter; @Getter public enum InventoryTypeEnum { - CGRK(1, "CGSQ"), - CKDD(2, "CGDD"), - CKRK(3, "CGRK"), - CKTH(4, "CGTH"), - LSCK(5, "LSCK"), - LSTH(6, "LSTH") + CGRK("1", "CGSQ"), + CKDD("2", "CGDD"), + CKRK("3", "CGRK"), + CKTH("4", "CGTH"), + LSCK("5", "LSCK"), + LSTH("6", "LSTH") ; - private final Integer type; + private final String type; private final String value; // 根据数字返回对应的值 - public static String getValueByType(int type) { + public static String getValueByType(String type) { for (InventoryTypeEnum v : InventoryTypeEnum.values()) { - if (v.type == type) { + if (v.type.equals(type)) { return v.value; } } diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java index 952654286..1f28b19a8 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java @@ -1,5 +1,6 @@ package com.bsd.pjcloud.supermarket.dto; +import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; @@ -24,6 +25,10 @@ public class SupermarketSpuUpdateStockReqDTO { @NotNull(message = "商品 SPU 不能为空") private List items; + + @Schema(description = "下单设备类型,0默认安卓机,1移动端") + private int deviceType; + @Data public static class Item { diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/supplier/SmErpSupplierImportDto.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/supplier/SmErpSupplierImportDto.java new file mode 100644 index 000000000..a0fda3c23 --- /dev/null +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/supplier/SmErpSupplierImportDto.java @@ -0,0 +1,62 @@ +package com.bsd.pjcloud.supermarket.dto.supplier; + + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class SmErpSupplierImportDto { + @ExcelProperty("货商编号") + private String supplierCode; + + @ExcelProperty("货商名称") + private String supplierName; + + @ExcelProperty("地址") + private String address; + + @ExcelProperty("邮编") + private String postalCode; + + @ExcelProperty("联系人") + private String linkName; + + @ExcelProperty("联系电话") + private String phone; + + @ExcelProperty("传真") + private String fax; + + @ExcelProperty("税号") + private String taxNumber; + + @ExcelProperty("开户行及帐号") + private String bankAccount; + + @ExcelProperty("货商类别") + private String supplierCategory; + + @ExcelProperty("货商地区") + private String supplierRegion; + + @ExcelProperty("建档人") + private String creator; + + @ExcelProperty("状态") + private String status; + + @ExcelProperty("期初应付款") + private Double initialPayable; + + @ExcelProperty("其它1") + private String other1; + + @ExcelProperty("其它2") + private String other2; + + @ExcelProperty("其它3") + private String other3; + + @ExcelProperty("拼音简码") + private String pinyinCode; +} diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpAuxiliaryCodeEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpAuxiliaryCodeEntity.java index 8b9f1fbe3..d83d8b48b 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpAuxiliaryCodeEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpAuxiliaryCodeEntity.java @@ -82,4 +82,7 @@ public class SmErpAuxiliaryCodeEntity extends Model { */ @Schema(description="租户编号") private Long tenantId; + + @Schema(description="包装单位id") + private Long unitId; } \ No newline at end of file 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 64e34d8db..97ae11e38 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 @@ -162,6 +162,9 @@ public class SmErpInventoryRecordsEntity extends Model + \ No newline at end of file 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 f98f31115..d23f9386e 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 @@ -26,5 +26,6 @@ + \ No newline at end of file