|
@@ -1,9 +1,21 @@
|
|
|
package com.fjhx.sale.service.pack.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.fjhx.sale.entity.pack.po.Pack;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackDetail;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackDetailGoods;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackDetailProduct;
|
|
|
import com.fjhx.sale.mapper.pack.PackMapper;
|
|
|
+import com.fjhx.sale.service.pack.PackDetailGoodsService;
|
|
|
+import com.fjhx.sale.service.pack.PackDetailProductService;
|
|
|
+import com.fjhx.sale.service.pack.PackDetailService;
|
|
|
import com.fjhx.sale.service.pack.PackService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.sale.util.code.CodeEnum;
|
|
|
+import com.obs.services.internal.ServiceException;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.common.utils.uuid.IdUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.fjhx.sale.entity.pack.vo.PackVo;
|
|
@@ -11,6 +23,10 @@ import com.fjhx.sale.entity.pack.dto.PackSelectDto;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.fjhx.sale.entity.pack.dto.PackDto;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -24,6 +40,15 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
@Service
|
|
|
public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements PackService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PackDetailService packDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PackDetailProductService packDetailProductService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PackDetailGoodsService packDetailGoodsService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<PackVo> getPage(PackSelectDto dto) {
|
|
|
IWrapper<Pack> wrapper = getWrapper();
|
|
@@ -39,9 +64,63 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements Pa
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 新增
|
|
|
+ * @param pack
|
|
|
+ */
|
|
|
@Override
|
|
|
- public void add(PackDto packDto) {
|
|
|
- this.save(packDto);
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void add(Pack pack) {
|
|
|
+ if(StringUtils.isEmpty(pack.getContractIds())){
|
|
|
+ throw new ServiceException("参数异常");
|
|
|
+ }
|
|
|
+ pack.setCode(CodeEnum.PACK.getCode());
|
|
|
+ this.save(pack);
|
|
|
+ List<PackDetail> packDetailList = pack.getPackDetailList();
|
|
|
+ if(CollectionUtils.isNotEmpty(packDetailList)){
|
|
|
+ List<PackDetailProduct> packDetailProductList = new ArrayList<>();
|
|
|
+ List<PackDetailGoods> packDetailGoodsList = new ArrayList<>();
|
|
|
+ for(PackDetail p:packDetailList){
|
|
|
+ p.setPackId(pack.getId());
|
|
|
+ p.setId(IdUtils.gen19UUID());
|
|
|
+ //处理装箱产品明细
|
|
|
+ setPackDetailProducts(p,packDetailProductList);
|
|
|
+ //处理自定义装箱货物
|
|
|
+ setPackDetailGoods(p,packDetailGoodsList);
|
|
|
+ }
|
|
|
+ packDetailService.saveBatch(packDetailList);
|
|
|
+ packDetailGoodsService.saveBatch(packDetailGoodsList);
|
|
|
+ packDetailProductService.saveBatch(packDetailProductList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理装箱产品明细
|
|
|
+ * @param packDetail
|
|
|
+ * @param packDetailProductList
|
|
|
+ */
|
|
|
+ private void setPackDetailProducts(PackDetail packDetail,List<PackDetailProduct> packDetailProductList){
|
|
|
+ List<PackDetailProduct> list = packDetail.getPackDetailProductList();
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(PackDetailProduct p:list){
|
|
|
+ p.setPackDetailId(packDetail.getId());
|
|
|
+ packDetailProductList.add(p);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 处理装箱产品明细
|
|
|
+ * @param packDetail
|
|
|
+ * @param packDetailGoodsList
|
|
|
+ */
|
|
|
+ private void setPackDetailGoods(PackDetail packDetail,List<PackDetailGoods> packDetailGoodsList){
|
|
|
+ List<PackDetailGoods> list = packDetail.getPackDetailGoodsList();
|
|
|
+ if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ for(PackDetailGoods p:list){
|
|
|
+ p.setPackDetailId(packDetail.getId());
|
|
|
+ packDetailGoodsList.add(p);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|