|
@@ -0,0 +1,120 @@
|
|
|
+package com.fjhx.sale.service.documents.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+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.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.mapper.documents.DocumentsMapper;
|
|
|
+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 org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.fjhx.sale.entity.documents.vo.DocumentsVo;
|
|
|
+import com.fjhx.sale.entity.documents.dto.DocumentsSelectDto;
|
|
|
+import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
+import com.fjhx.sale.entity.documents.dto.DocumentsDto;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 单证表 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author
|
|
|
+ * @since 2023-04-20
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class DocumentsServiceImpl extends ServiceImpl<DocumentsMapper, Documents> implements DocumentsService {
|
|
|
+ @Autowired
|
|
|
+ private DocumentsProductService documentsProductService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DocumentsTransportService documentsTransportService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CorporationService corporationService;
|
|
|
+ /**
|
|
|
+ * 单证表分页
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Page<DocumentsVo> getPage(DocumentsSelectDto dto) {
|
|
|
+ QueryWrapper<Object> wrapper = Wrappers.query();
|
|
|
+ Page<DocumentsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
+ //切换数据源
|
|
|
+ DynamicDataSourceContextHolder.push(SourceConstant.COMMON);
|
|
|
+ //查询公司名称信息
|
|
|
+ List<Corporation> corporationList = corporationService.list();
|
|
|
+ Map<Long, List<Corporation>> corporationMap = corporationList.stream().collect(Collectors.groupingBy(Corporation::getId));
|
|
|
+ DynamicDataSourceContextHolder.poll();
|
|
|
+
|
|
|
+ List<DocumentsVo> records = page.getRecords();
|
|
|
+ if (ObjectUtil.isNotEmpty(records)){
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+ for (DocumentsVo record : records) {
|
|
|
+ //赋值归属公司名称
|
|
|
+ List<Corporation> corporationList1 = corporationMap.get(record.getBuyCorporationId());
|
|
|
+ record.setBuyCorporationName(corporationList1.get(0).getName());
|
|
|
+
|
|
|
+ //赋值客户名称
|
|
|
+ List<Corporation> corporationList2 = corporationMap.get(record.getSellCorporationId());
|
|
|
+ record.setSellCorporationId(corporationList2.get(0).getName());
|
|
|
+ }
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public DocumentsVo detail(Long id) {
|
|
|
+ Documents Documents = this.getById(id);
|
|
|
+ DocumentsVo result = BeanUtil.toBean(Documents, DocumentsVo.class);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 单证表新增
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void add(DocumentsDto documentsDto) {
|
|
|
+ //添加单证表的数据
|
|
|
+ this.save(documentsDto);
|
|
|
+
|
|
|
+ //添加单证-产品信息
|
|
|
+ List<DocumentsProduct> documentsProductList = documentsDto.getDocumentsProductList();
|
|
|
+ documentsProductList.forEach(documentsProduct -> documentsProduct.setDocumentsId(documentsDto.getId()));
|
|
|
+ documentsProductService.saveBatch(documentsProductList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void edit(DocumentsDto documentsDto) {
|
|
|
+ this.updateById(documentsDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 单证表删除
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void delete(Long id) {
|
|
|
+ //删除单证表的数据
|
|
|
+ this.removeById(id);
|
|
|
+ //删除单证-产品表的数据
|
|
|
+ documentsProductService.remove(Wrappers.<DocumentsProduct>lambdaQuery().eq(DocumentsProduct::getDocumentsId,id));
|
|
|
+
|
|
|
+ //删除单证-货运表的数据
|
|
|
+ documentsTransportService.remove(Wrappers.<DocumentsTransport>lambdaQuery().eq(DocumentsTransport::getDocumentsId,id));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|