|
@@ -1,16 +1,31 @@
|
|
|
package com.fjhx.purchase.service.subscribe.impl;
|
|
|
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.fjhx.item.entity.product.vo.ProductInfoVo;
|
|
|
+import com.fjhx.item.service.product.ProductInfoService;
|
|
|
import com.fjhx.purchase.entity.subscribe.po.Subscribe;
|
|
|
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
|
|
|
import com.fjhx.purchase.mapper.subscribe.SubscribeMapper;
|
|
|
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
|
|
|
import com.fjhx.purchase.service.subscribe.SubscribeService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.purchase.util.code.CodeEnum;
|
|
|
+import com.obs.services.internal.ServiceException;
|
|
|
+import org.apache.commons.collections4.MapUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.fjhx.purchase.entity.subscribe.vo.SubscribeVo;
|
|
|
import com.fjhx.purchase.entity.subscribe.dto.SubscribeSelectDto;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.fjhx.purchase.entity.subscribe.dto.SubscribeDto;
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -24,6 +39,12 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
@Service
|
|
|
public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe> implements SubscribeService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SubscribeDetailService subscribeDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ProductInfoService productInfoService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<SubscribeVo> getPage(SubscribeSelectDto dto) {
|
|
|
IWrapper<Subscribe> wrapper = getWrapper();
|
|
@@ -32,16 +53,57 @@ public class SubscribeServiceImpl extends ServiceImpl<SubscribeMapper, Subscribe
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 详情
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Override
|
|
|
- public SubscribeVo detail(Long id) {
|
|
|
- Subscribe Subscribe = this.getById(id);
|
|
|
- SubscribeVo result = BeanUtil.toBean(Subscribe, SubscribeVo.class);
|
|
|
- return result;
|
|
|
+ public Subscribe detail(Long id) {
|
|
|
+ if(ObjectUtils.isEmpty(id)){
|
|
|
+ throw new ServiceException("参数异常");
|
|
|
+ }
|
|
|
+ Subscribe subscribe = this.getById(id);
|
|
|
+ if(ObjectUtils.isEmpty(subscribe)){
|
|
|
+ throw new ServiceException("数据不存在");
|
|
|
+ }
|
|
|
+ //处理申购产品
|
|
|
+ List<SubscribeDetail> subscribeDetailList = subscribeDetailService.list(
|
|
|
+ Wrappers.<SubscribeDetail>query().lambda()
|
|
|
+ .eq(SubscribeDetail::getSubscribeId,id));
|
|
|
+ if(CollectionUtils.isNotEmpty(subscribeDetailList)){
|
|
|
+ //根据申购businessId取出所有产品
|
|
|
+ List<Long> productIds = subscribeDetailList.stream().map(SubscribeDetail::getBussinessId).collect(Collectors.toList());
|
|
|
+ List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
|
|
|
+ Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
|
|
|
+ for(SubscribeDetail s:subscribeDetailList){
|
|
|
+ if(MapUtils.isNotEmpty(productMap)){
|
|
|
+ ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
|
|
|
+ s.setProductCategory(p.getClassifyName());
|
|
|
+ s.setProductCode(p.getCode());
|
|
|
+ s.setProductUnit(p.getUnit());
|
|
|
+ s.setProductType(p.getType());
|
|
|
+ s.setProductName(p.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ subscribe.setSubscribeDetailList(subscribeDetailList);
|
|
|
+ return subscribe;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void add(SubscribeDto subscribeDto) {
|
|
|
- this.save(subscribeDto);
|
|
|
+ public void add(Subscribe subscribe) {
|
|
|
+ SubscribeService subscribeService = SpringUtil.getBean(SubscribeService.class);
|
|
|
+ SubscribeDetailService subscribeDetailService = SpringUtil.getBean(SubscribeDetailService.class);
|
|
|
+ subscribe.setCode(CodeEnum.SUBSCRIBE.getCode());
|
|
|
+ subscribeService.save(subscribe);
|
|
|
+ List<SubscribeDetail> SubscribeDetails = subscribe.getSubscribeDetailList();
|
|
|
+ if(CollectionUtils.isNotEmpty(SubscribeDetails)){
|
|
|
+ for(SubscribeDetail s : SubscribeDetails){
|
|
|
+ s.setSubscribeId(subscribe.getId());
|
|
|
+ }
|
|
|
+ subscribeDetailService.saveBatch(subscribe.getSubscribeDetailList());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|