Commit 59f6e1a9 by 王志超

feat: 组装主工单商品信息

parent 37b687d3
Pipeline #86390 passed with stages
in 1 minute 45 seconds
......@@ -1090,93 +1090,89 @@ public class ChangeFlowBiz {
private void buildItemBasicInfoList(ChangeRecord changeRecord, ChangeFlowVO changeFlowVO) {
String itemJsonStr = changeRecord.getChangeItem();
if (StringUtils.isBlank(itemJsonStr)) {
changeFlowVO.setChangeItems(null);
changeFlowVO.setItemBasicInfoList(null);
} else {
String changeSkuJson = changeRecord.getChangeSku();
List<ItemVO> itemList = JSON.parseArray(itemJsonStr, ItemVO.class);
List<ItemSkuVO> itemSkuVOS = new ArrayList<>();
if (StringUtils.isNotBlank(changeSkuJson)) {
itemSkuVOS.addAll(JSON.parseArray(changeSkuJson, ItemSkuVO.class));
return;
}
String changeSkuJson = changeRecord.getChangeSku();
List<ItemVO> itemList = JSON.parseArray(itemJsonStr, ItemVO.class);
List<ItemSkuVO> itemSkuVOS = new ArrayList<>();
if (StringUtils.isNotBlank(changeSkuJson)) {
itemSkuVOS.addAll(JSON.parseArray(changeSkuJson, ItemSkuVO.class));
}
itemList.forEach(i -> {
Optional<ItemSkuVO> anySkuInfo = itemSkuVOS.stream().filter(s -> s.getItemId().equals(i.getItemId()))
.findAny();
if (anySkuInfo.isPresent()) {
i.setSkuIds(anySkuInfo.get().getSkuId());
}
itemList.forEach(i -> {
Optional<ItemSkuVO> anySkuInfo = itemSkuVOS.stream().filter(s -> s.getItemId().equals(i.getItemId()))
.findAny();
if (anySkuInfo.isPresent()) {
i.setSkuIds(anySkuInfo.get().getSkuId());
}
});
changeFlowVO.setChangeItems(itemList);
// 变更执行/结果确认/完结节点,展示变更商品基础信息
String flowNode = changeRecord.getFlowNode();
if (ChangeFlowEnum.CHANGE_FLOW_EXE.getNodeId().equals(flowNode)
|| ChangeFlowEnum.CHANGE_FLOW_CONFIRM.getNodeId().equals(flowNode)
|| ChangeFlowEnum.END.getNodeId().equals(flowNode)) {
List<Long> itemIds = itemList.stream().map(ItemVO::getItemId).collect(Collectors.toList());
// 批量查询spu信息
List<SpuTO> spuTOS = itemService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds)
.commonProps(new ArrayList<>()).spuProps(Arrays.asList("itemSetupType", "businessForm")).build());
log.debug("[detail] spuTOS:{}", JSON.toJSONString(spuTOS));
// 批量查询物理类目
Map<Long, List<SimplePhyCateGoryResultCo>> categoryChain = itemService
.queryBySpuIds(CommonIdsParamQuery.builder().ids(itemIds).build());
// 查询商品对应负责人信息
Map<Long, ChangeGoodsPrincipalPO> longChangeGoodsPrincipalPOMap = interiorChangeConfigService
.queryGoodsPrincipalInfo(itemIds);
List<ItemBasicInfoVO> itemBasicInfoVOS = itemList.stream().map(itemVO -> {
ItemBasicInfoVO itemBasicInfoVO = new ItemBasicInfoVO();
Long itemId = itemVO.getItemId();
itemBasicInfoVO.setItemId(itemId);
itemBasicInfoVO.setItemName(itemVO.getItemName());
List<QcCategoryVO> qcCategoryList = qcService.getQcCategoryListByItemId(itemId);
if (CollectionUtils.isNotEmpty(qcCategoryList)) {
String collect = qcCategoryList.stream().map(QcCategoryVO::getCategoryName)
.collect(Collectors.joining("/"));
itemBasicInfoVO.setQcCategory(collect);
} else {
itemBasicInfoVO.setQcCategory("/");
}
List<SimplePhyCateGoryResultCo> simplePhyCateGoryResultCos = categoryChain.get(itemId);
log.debug("[detail] itemId:{}, simplePhyCateGoryResultCos:{}", itemId,
JSON.toJSONString(simplePhyCateGoryResultCos));
if (CollectionUtils.isEmpty(simplePhyCateGoryResultCos)) {
itemBasicInfoVO.setPhyCategory(null);
} else {
List<CategoryInfoVO> categoryInfoVOS = simplePhyCateGoryResultCos.stream().map(phy -> {
CategoryInfoVO categoryInfoVO = new CategoryInfoVO();
categoryInfoVO.setId(phy.getId());
categoryInfoVO.setName(phy.getName());
return categoryInfoVO;
}).collect(Collectors.toList());
itemBasicInfoVO.setPhyCategory(categoryInfoVOS);
}
Optional<SpuTO> optionalSpuTO = spuTOS.stream().filter(spu -> spu.getId() == itemId).findAny();
log.debug("[detail] itemId:{}, optionalSpuTO:{}", itemId, JSON.toJSONString(optionalSpuTO));
if (!optionalSpuTO.isPresent()) {
itemBasicInfoVO.setItemSetupType(null);
itemBasicInfoVO.setBusinessForm(null);
itemBasicInfoVO.setStatus(null);
} else {
SpuTO spuTO = optionalSpuTO.get();
Map<String, String> propertyMap = spuTO.getPropertyMap();
itemBasicInfoVO.setItemSetupType(Integer.valueOf(propertyMap.get("itemSetupType")));
String businessForm = propertyMap.get("businessForm");
int business = StringUtils.isBlank(businessForm) ? 0 : Integer.parseInt(businessForm);
itemBasicInfoVO.setBusinessForm(business);
itemBasicInfoVO.setStatus(spuTO.getStatus());
}
ChangeGoodsPrincipalPO changeGoodsPrincipalPO = longChangeGoodsPrincipalPOMap.get(itemId);
log.debug("[detail] itemId:{}, changeGoodsPrincipalPO:{}", itemId,
JSON.toJSONString(changeGoodsPrincipalPO));
itemBasicInfoVO.setChangeGoodsPrincipal(changeGoodsPrincipalPO);
Optional<ItemVO> anyHasSku = itemList.stream().filter(i -> i.getItemId().equals(itemId)).findAny();
if (anyHasSku.isPresent()) {
itemBasicInfoVO.setSkuIds(anyHasSku.get().getSkuIds());
}
return itemBasicInfoVO;
});
changeFlowVO.setChangeItems(itemList);
List<Long> itemIds = itemList.stream().map(ItemVO::getItemId).collect(Collectors.toList());
// 批量查询spu信息
List<SpuTO> spuTOS = itemService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds)
.commonProps(new ArrayList<>()).spuProps(Arrays.asList("itemSetupType", "businessForm")).build());
log.debug("[detail] spuTOS:{}", JSON.toJSONString(spuTOS));
// 批量查询物理类目
Map<Long, List<SimplePhyCateGoryResultCo>> categoryChain = itemService
.queryBySpuIds(CommonIdsParamQuery.builder().ids(itemIds).build());
// 查询商品对应负责人信息
Map<Long, ChangeGoodsPrincipalPO> longChangeGoodsPrincipalPOMap = interiorChangeConfigService
.queryGoodsPrincipalInfo(itemIds);
List<ItemBasicInfoVO> itemBasicInfoVOS = itemList.stream().map(itemVO -> {
ItemBasicInfoVO itemBasicInfoVO = new ItemBasicInfoVO();
Long itemId = itemVO.getItemId();
itemBasicInfoVO.setItemId(itemId);
itemBasicInfoVO.setItemName(itemVO.getItemName());
List<QcCategoryVO> qcCategoryList = qcService.getQcCategoryListByItemId(itemId);
if (CollectionUtils.isNotEmpty(qcCategoryList)) {
String collect = qcCategoryList.stream().map(QcCategoryVO::getCategoryName)
.collect(Collectors.joining("/"));
itemBasicInfoVO.setQcCategory(collect);
} else {
itemBasicInfoVO.setQcCategory("/");
}
List<SimplePhyCateGoryResultCo> simplePhyCateGoryResultCos = categoryChain.get(itemId);
log.debug("[detail] itemId:{}, simplePhyCateGoryResultCos:{}", itemId,
JSON.toJSONString(simplePhyCateGoryResultCos));
if (CollectionUtils.isEmpty(simplePhyCateGoryResultCos)) {
itemBasicInfoVO.setPhyCategory(null);
} else {
List<CategoryInfoVO> categoryInfoVOS = simplePhyCateGoryResultCos.stream().map(phy -> {
CategoryInfoVO categoryInfoVO = new CategoryInfoVO();
categoryInfoVO.setId(phy.getId());
categoryInfoVO.setName(phy.getName());
return categoryInfoVO;
}).collect(Collectors.toList());
changeFlowVO.setItemBasicInfoList(itemBasicInfoVOS);
itemBasicInfoVO.setPhyCategory(categoryInfoVOS);
}
}
Optional<SpuTO> optionalSpuTO = spuTOS.stream().filter(spu -> spu.getId() == itemId).findAny();
log.debug("[detail] itemId:{}, optionalSpuTO:{}", itemId, JSON.toJSONString(optionalSpuTO));
if (!optionalSpuTO.isPresent()) {
itemBasicInfoVO.setItemSetupType(null);
itemBasicInfoVO.setBusinessForm(null);
itemBasicInfoVO.setStatus(null);
} else {
SpuTO spuTO = optionalSpuTO.get();
Map<String, String> propertyMap = spuTO.getPropertyMap();
itemBasicInfoVO.setItemSetupType(Integer.valueOf(propertyMap.get("itemSetupType")));
String businessForm = propertyMap.get("businessForm");
int business = StringUtils.isBlank(businessForm) ? 0 : Integer.parseInt(businessForm);
itemBasicInfoVO.setBusinessForm(business);
itemBasicInfoVO.setStatus(spuTO.getStatus());
}
ChangeGoodsPrincipalPO changeGoodsPrincipalPO = longChangeGoodsPrincipalPOMap.get(itemId);
log.debug("[detail] itemId:{}, changeGoodsPrincipalPO:{}", itemId,
JSON.toJSONString(changeGoodsPrincipalPO));
itemBasicInfoVO.setChangeGoodsPrincipal(changeGoodsPrincipalPO);
Optional<ItemVO> anyHasSku = itemList.stream().filter(i -> i.getItemId().equals(itemId)).findAny();
if (anyHasSku.isPresent()) {
itemBasicInfoVO.setSkuIds(anyHasSku.get().getSkuIds());
}
return itemBasicInfoVO;
}).collect(Collectors.toList());
changeFlowVO.setItemBasicInfoList(itemBasicInfoVOS);
}
public ChangeFlowListVO query(Integer page, Integer pageSize, ChangeFlowListQueryReq changeFlowListQueryReq) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment