diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanItemEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanItemEntity.java index 874090ae0..2131294af 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanItemEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanItemEntity.java @@ -2,6 +2,10 @@ package com.bsd.pjcloud.supermarket.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.bsd.pjcloud.common.core.util.MoneyDeserializer; +import com.bsd.pjcloud.common.core.util.MoneySerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -124,4 +128,30 @@ public class SmErpCgPlanItemEntity extends Model { */ @Schema(description="租户编号") private Long tenantId; + + /** + * 规格 + */ + @Schema(description="规格") + private String spec; + + /** + * 单位 + */ + @Schema(description="单位") + private String unit; + + /** + * 装数 + */ + @Schema(description="装数") + private Integer packageNum; + + /** + * 进价(分为单位) + */ + @Schema(description="进价(分为单位)") + @JsonSerialize(using = MoneySerializer.class) // 分 -> 元 + @JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分 + private Integer purchasePrice; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmErpCgPlanVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmErpCgPlanVo.java index 5c7d96771..7b924cc13 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmErpCgPlanVo.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmErpCgPlanVo.java @@ -91,6 +91,7 @@ public class SmErpCgPlanVo { @Schema(description="审批状态") private String checkStatus; + /** * @Link SmErpCgPlanVo */ diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmeErpCgPlanItemVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmeErpCgPlanItemVo.java index 1a365625f..3163307d2 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmeErpCgPlanItemVo.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/cgplan/SmeErpCgPlanItemVo.java @@ -1,8 +1,14 @@ package com.bsd.pjcloud.supermarket.vo.cgplan; +import com.bsd.pjcloud.common.core.util.MoneyDeserializer; +import com.bsd.pjcloud.common.core.util.MoneySerializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * 采购计划-item * @@ -57,4 +63,35 @@ public class SmeErpCgPlanItemVo { @Schema(description="包装单位id") private Long unitId; + + /** + * 规格 + */ + @Schema(description="规格") + private String spec; + + /** + * 单位 + */ + @Schema(description="单位") + private String unit; + + /** + * 装数 + */ + @Schema(description="装数") + private Integer packageNum; + + /** + * 进价(分为单位) + */ + @Schema(description="进价(分为单位)") + @JsonSerialize(using = MoneySerializer.class) // 分 -> 元 + @JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分 + private Integer purchasePrice; + + @Schema(description = "包装对象集合对象") + private List erpUnitVos; + + } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java index 6fabff105..eb6902e99 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java @@ -14,9 +14,12 @@ import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanEditDTO; import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO; import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity; import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity; +import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity; import com.bsd.pjcloud.supermarket.service.SmErpCgPlanItemService; import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService; import com.bsd.pjcloud.supermarket.service.SmErpSpuService; +import com.bsd.pjcloud.supermarket.service.SmErpUnitService; +import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo; import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo; import com.bsd.pjcloud.supermarket.vo.cgplan.SmeErpCgPlanItemVo; import org.springframework.security.access.prepost.PreAuthorize; @@ -32,6 +35,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 采购计划 @@ -52,6 +56,8 @@ public class SmErpCgPlanController { private final SmErpCgPlanItemService smErpCgPlanItemService; + private final SmErpUnitService smErpUnitService; + /** * 分页查询 * @param page 分页对象 @@ -109,9 +115,39 @@ public class SmErpCgPlanController { SmErpCgPlanEntity smErpCgPlanEntity = smErpCgPlanService.getById(id); List list = smErpCgPlanItemService.list(new LambdaQueryWrapper() .eq(SmErpCgPlanItemEntity::getPlanId, id)); + + //获取采购item下已选择的item的所有包装单位 + List spuIds =list.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toList()); + List unitList = smErpUnitService.list(new LambdaQueryWrapper().in(SmErpUnitEntity::getSpuId, spuIds)); + + + SmErpCgPlanVo bean = BeanUtils.toBean(smErpCgPlanEntity, SmErpCgPlanVo.class, (source) -> { - source.setItems(BeanUtils.toBean(list, SmeErpCgPlanItemVo.class)); + List smeErpCgPlanItemVos = BeanUtils.toBean(list, SmeErpCgPlanItemVo.class); + smeErpCgPlanItemVos.stream().forEach(item -> { + List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList()); + +// unitList.stream().forEach(unit -> { +// if(unit.getId().equals(item.getUnitId())){ +// item.setSpec(unit.getSpec()); +// item.setUnit(unit.getUnit()); +// item.setPackageNum(unit.getPackageNum()); +// item.setPurchasePrice(unit.getPurchasePrice()); +// } +// }); + item.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class)); + }); + source.setItems(smeErpCgPlanItemVos); }); + + +// voList.stream().forEach(vo -> { +// List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(vo.getId())).collect(Collectors.toList()); +// vo.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class)); +// }); + + + return R.ok(bean); } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgPlanItemMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgPlanItemMapper.xml index ee9bd2a8a..9d973ca7e 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgPlanItemMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpCgPlanItemMapper.xml @@ -20,5 +20,9 @@ + + + + \ No newline at end of file