This commit is contained in:
dzc committed 2025-02-17 16:11:58 +08:00
commit 02dcc782c6
5 files changed
+109 -1

No files matched your search

@@ -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<SmErpCgPlanItemEntity> {
*/
@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;
}
@@ -91,6 +91,7 @@ public class SmErpCgPlanVo {
@Schema(description="审批状态")
private String checkStatus;
/**
* @Link SmErpCgPlanVo
*/
@@ -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<ErpUnitVo> erpUnitVos;
}
@@ -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<SmErpCgPlanItemEntity> list = smErpCgPlanItemService.list(new LambdaQueryWrapper<SmErpCgPlanItemEntity>()
.eq(SmErpCgPlanItemEntity::getPlanId, id));
//获取采购item下已选择的item的所有包装单位
List<Long> spuIds =list.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toList());
List<SmErpUnitEntity> unitList = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().in(SmErpUnitEntity::getSpuId, spuIds));
SmErpCgPlanVo bean = BeanUtils.toBean(smErpCgPlanEntity, SmErpCgPlanVo.class, (source) -> {
source.setItems(BeanUtils.toBean(list, SmeErpCgPlanItemVo.class));
List<SmeErpCgPlanItemVo> smeErpCgPlanItemVos = BeanUtils.toBean(list, SmeErpCgPlanItemVo.class);
smeErpCgPlanItemVos.stream().forEach(item -> {
List<SmErpUnitEntity> 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<SmErpUnitEntity> unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(vo.getId())).collect(Collectors.toList());
// vo.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class));
// });
return R.ok(bean);
}
@@ -20,5 +20,9 @@
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="spec" column="spec"/>
<result property="unit" column="unit"/>
<result property="packageNum" column="package_num"/>
<result property="purchasePrice" column="purchase_price"/>
</resultMap>
</mapper>