|
@@ -7,16 +7,23 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.common.entity.corporation.po.Corporation;
|
|
|
import com.fjhx.common.service.corporation.CorporationService;
|
|
|
+import com.fjhx.customer.entity.customer.po.Customer;
|
|
|
+import com.fjhx.customer.service.customer.CustomerService;
|
|
|
import com.fjhx.sale.entity.contract.po.Contract;
|
|
|
+import com.fjhx.sale.entity.contract.vo.ContractVo;
|
|
|
import com.fjhx.sale.entity.documents.po.Documents;
|
|
|
import com.fjhx.sale.entity.documents.po.DocumentsProduct;
|
|
|
import com.fjhx.sale.entity.documents.po.DocumentsTransport;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackDetail;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackShipment;
|
|
|
import com.fjhx.sale.mapper.documents.DocumentsMapper;
|
|
|
import com.fjhx.sale.service.contract.ContractService;
|
|
|
import com.fjhx.sale.service.documents.DocumentsProductService;
|
|
|
import com.fjhx.sale.service.documents.DocumentsService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.sale.service.documents.DocumentsTransportService;
|
|
|
+import com.fjhx.sale.service.pack.PackDetailService;
|
|
|
+import com.fjhx.sale.service.pack.PackShipmentService;
|
|
|
import com.obs.services.internal.ServiceException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -27,9 +34,9 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.fjhx.sale.entity.documents.dto.DocumentsDto;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -50,11 +57,22 @@ public class DocumentsServiceImpl extends ServiceImpl<DocumentsMapper, Documents
|
|
|
private ContractService contractService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private PackDetailService packDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private DocumentsTransportService documentsTransportService;
|
|
|
|
|
|
@Autowired
|
|
|
private CorporationService corporationService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PackShipmentService packShipmentService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CustomerService customerService;
|
|
|
+
|
|
|
+ private static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy", Locale.ENGLISH);
|
|
|
+
|
|
|
/**
|
|
|
* 单证表分页
|
|
|
*/
|
|
@@ -137,14 +155,44 @@ public class DocumentsServiceImpl extends ServiceImpl<DocumentsMapper, Documents
|
|
|
if(ObjectUtil.isNotEmpty(documents)){
|
|
|
throw new ServiceException("单证不存在");
|
|
|
}
|
|
|
- //查询单证货物
|
|
|
- List<DocumentsProduct> documentsProducts = documentsProductService.list(Wrappers.<DocumentsProduct>query().lambda().eq(DocumentsProduct::getDocumentsId,documents.getId()));
|
|
|
//查询合同
|
|
|
Contract contract = contractService.getById(documents.getContractId());
|
|
|
+ if(ObjectUtil.isEmpty(contract)){
|
|
|
+ throw new ServiceException("该单证合同不存在");
|
|
|
+ }
|
|
|
+ ContractVo contractVo = BeanUtil.toBean(contract, ContractVo.class);
|
|
|
+ //查询买方
|
|
|
+ Customer customer = customerService.getById(contractVo.getBuyCorporationId());
|
|
|
+ //查询卖方
|
|
|
+ Corporation corporation = corporationService.getById(contractVo.getSellCorporationId());
|
|
|
+ //查询单证货物
|
|
|
+ List<DocumentsProduct> documentsProducts = documentsProductService.list(Wrappers.<DocumentsProduct>query().lambda().eq(DocumentsProduct::getDocumentsId,documents.getId()));
|
|
|
+ //查询包装出货主合同
|
|
|
+ PackShipment packShipment = packShipmentService.getById(documents.getPackShipmentId());
|
|
|
+ //装箱单
|
|
|
+ List<PackDetail> packDetailList = new ArrayList<>();
|
|
|
+ //总毛重
|
|
|
+ BigDecimal sumRoughWeight = BigDecimal.ZERO;
|
|
|
+ //总净重
|
|
|
+ BigDecimal sumNetWeight = BigDecimal.ZERO;
|
|
|
+ //总体积
|
|
|
+ BigDecimal sumBomVolume = BigDecimal.ZERO;
|
|
|
+ if(ObjectUtil.isNotEmpty(packShipment)){//查询装箱单
|
|
|
+ packDetailList = packDetailService.list(Wrappers.<PackDetail>query().lambda().in(PackDetail::getId, Arrays.asList(packShipment.getPackDetailIds())));
|
|
|
+ sumRoughWeight = packDetailList.stream().map(PackDetail::getRoughWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
|
|
|
+ sumNetWeight = packDetailList.stream().map(PackDetail::getNetWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
|
|
|
+ sumBomVolume = packDetailList.stream().map(PackDetail::getBomVolume).reduce(BigDecimal.ZERO,BigDecimal::add);
|
|
|
+ }
|
|
|
+ map.put("contract",contract);//合同信息
|
|
|
+ map.put("date",sdf.format(contract.getCreateTime()));//日期
|
|
|
map.put("documents",documents);//单证信息
|
|
|
- map.put("documents",documentsProducts);//单证信息货物
|
|
|
-
|
|
|
-
|
|
|
+ map.put("documentsProducts",documentsProducts);//单证信息货物
|
|
|
+ map.put("packDetailList",packDetailList);//单证信息货物
|
|
|
+ map.put("sumRoughWeight",sumRoughWeight);//总毛重
|
|
|
+ map.put("sumNetWeight",sumNetWeight);//总净重
|
|
|
+ map.put("sumBomVolume",sumBomVolume);//总体积
|
|
|
+ map.put("customer",customer);//买方信息
|
|
|
+ map.put("corporation",corporation);//卖方信息
|
|
|
|
|
|
return null;
|
|
|
}
|