采购商品回显

This commit is contained in:
zjf committed 2025-02-23 20:11:28 +08:00
1 parent 1c779026f8
commit fce244e243
5 files changed
+63 -9

No files matched your search

@@ -132,4 +132,8 @@ public class SmErpCgPlanEntity extends Model<SmErpCgPlanEntity> {
*/
@Schema(description="租户编号")
private Long tenantId;
@TableField(exist = false)
@Schema(description="商品名称")
private String productName;
}
@@ -180,7 +180,7 @@ public class SmErpCgDdController {
//todo 审核成功条件
// wrapper.eq(SmErpCgPlanEntity::getCheckStatus,);
return R.ok(smErpCgPlanService.pageScope(page, wrapper));
return R.ok(smErpCgPlanService.pageCgsqScope(page, wrapper));
}
}
@@ -73,7 +73,7 @@ public class SmErpCgPlanController {
wrapper.eq(Objects.nonNull(smErpCgPlan.getPlanDate()),SmErpCgPlanEntity::getPlanDate,smErpCgPlan.getPlanDate());
wrapper.eq(Objects.nonNull(smErpCgPlan.getHandlerUserId()),SmErpCgPlanEntity::getHandlerUserId,smErpCgPlan.getHandlerUserId());
wrapper.eq(StrUtil.isNotBlank(smErpCgPlan.getCheckStatus()),SmErpCgPlanEntity::getCheckStatus,smErpCgPlan.getCheckStatus());
return R.ok(smErpCgPlanService.page(page, wrapper));
return R.ok(smErpCgPlanService.pageScope(page, wrapper));
}
@@ -36,5 +36,9 @@ public interface SmErpCgPlanService extends IService<SmErpCgPlanEntity> {
* @param wrapper
* @return
*/
Page<SmErpCgPlanVo> pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
Page<SmErpCgPlanVo> pageCgsqScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
Object pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
}
@@ -14,9 +14,11 @@ import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanEditItemDTO;
import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanSaveItemDTO;
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity;
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity;
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanItemMapper;
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper;
import com.bsd.pjcloud.supermarket.mapper.SmErpSpuMapper;
import com.bsd.pjcloud.supermarket.mapper.SmErpUnitMapper;
import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService;
import com.bsd.pjcloud.supermarket.vo.cgdd.SmErpCgDdVo;
@@ -26,10 +28,7 @@ import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -46,6 +45,8 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
private final SmErpUnitMapper smErpUnitMapper;
private final SmErpSpuMapper smErpSpuMapper;
@Override
@@ -93,7 +94,7 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
}
@Override
public Page<SmErpCgPlanVo> pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
public Page<SmErpCgPlanVo> pageCgsqScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
// 1. 查询主表分页数据
Page<SmErpCgPlanEntity> pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
List<SmErpCgPlanEntity> records = pageData.getRecords();
@@ -122,6 +123,7 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
} else {
itemMap = Collections.emptyMap();
unitList = Collections.emptyList();
}
@@ -134,7 +136,15 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
SmErpCgPlanItemVo.class
);
itemVos.forEach(item -> {
List<SmErpUnitEntity> unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList());
unitEntities.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());
}
});
});
vo.setItems(itemVos);
});
@@ -145,4 +155,40 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
return resultPage;
}
@Override
public Object pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
List<SmErpCgPlanEntity> records = pageData.getRecords();
// 2. 提前收集所有主表ID(去重处理)
Set<Long> planIds = records.stream()
.map(SmErpCgPlanEntity::getId)
.collect(Collectors.toSet());
LambdaQueryWrapper<SmErpCgPlanItemEntity> smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpCgPlanItemEntity::getPlanId,planIds);
List<SmErpCgPlanItemEntity> cgPlanItemEntities = smErpCgPlanItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper);
Set<Long> erpSpuIds = cgPlanItemEntities.stream().map(SmErpCgPlanItemEntity::getErpSpuId).collect(Collectors.toSet());
List<SmErpSpuEntity> smErpSpuEntities = smErpSpuMapper.selectList(new LambdaQueryWrapper<SmErpSpuEntity>().in(SmErpSpuEntity::getId, erpSpuIds));
Map<Long,SmErpSpuEntity> spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu));
// 按采购计划分组商品名称
Map<Long, List<String>> planGoodsMap = cgPlanItemEntities.stream()
.collect(Collectors.groupingBy(
SmErpCgPlanItemEntity::getPlanId,
Collectors.mapping(
item -> spuMap.getOrDefault(item.getErpSpuId(), new SmErpSpuEntity()).getProductName(),
Collectors.toList()
)
));
// 设置商品名称到主表实体
records.forEach(plan -> {
List<String> names = planGoodsMap.getOrDefault(plan.getId(), Collections.emptyList());
plan.setProductName(String.join(", ", names));
});
return pageData;
}
}