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 9d61e4b12..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 @@ -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/SmErpCommonController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCommonController.java index f2b9a4e7e..902fd4963 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCommonController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCommonController.java @@ -41,7 +41,7 @@ public class SmErpCommonController { */ @Operation(summary = "获取业务流水编号" , description = "获取业务流水编号" ) @GetMapping("/getSequence") - public R getErpSpuPage(@RequestParam("type")Integer type) { + public R getErpSpuPage(@RequestParam("type")String type) { String valueByType = InventoryTypeEnum.getValueByType(type); String s = sequence.nextNo(); String result = valueByType + "-" + s; 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..1a7bd5fb3 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 @@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; +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.SupermarketSpuQueryDTO; import com.bsd.pjcloud.supermarket.dto.SupermarketSpuUpdateStockReqDTO; import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO; @@ -30,11 +33,12 @@ import com.bsd.pjcloud.supermarket.vo.sm.smspu.SmErpPageScopeVo; import lombok.AllArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; +import java.time.LocalDate; +import java.util.*; import java.util.stream.Collectors; /** @@ -57,10 +61,12 @@ 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/SmErpAuxiliaryCodeMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpAuxiliaryCodeMapper.xml index 8c9577096..03a00ce66 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpAuxiliaryCodeMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpAuxiliaryCodeMapper.xml @@ -13,5 +13,6 @@ + \ 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 3c28b9e3a..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 @@ -8,7 +8,7 @@ - + @@ -26,5 +26,6 @@ + \ No newline at end of file