Kaynağa Gözat

销售报价单列表增加字段

fenghaifu 2 gün önce
ebeveyn
işleme
a3c0540ae6

+ 57 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/controller/SaleQuotationController.java

@@ -42,6 +42,9 @@ import org.jeecg.modules.cuspCode.service.ICuspCustomerProfileService;
 import org.jeecg.modules.cuspCode.service.ICuspSupplierProfileService;
 import org.jeecg.modules.purCode.entity.PurInquiryForm;
 import org.jeecg.modules.purCode.entity.PurInquiryFormProduct;
+import org.jeecg.modules.purCode.entity.PurQuotationSelectionProduct;
+import org.jeecg.modules.purCode.service.IPurInquiryFormProductService;
+import org.jeecg.modules.purCode.service.IPurQuotationSelectionProductService;
 import org.jeecg.modules.saleCode.entity.*;
 import org.jeecg.modules.saleCode.service.*;
 import org.jeecg.modules.saleCode.util.EasyExcelUtil;
@@ -123,6 +126,14 @@ public class SaleQuotationController {
     private ISysDictService sysDictService;
     @Autowired
     private IBaseApproverHeadService approverHeadService;
+    @Autowired
+    private IPurQuotationSelectionProductService purQuotationSelectionProductService;
+    @Autowired
+    private IPurInquiryFormProductService purInquiryFormProductService;
+    @Autowired
+    private ISaleInquiryFormProductService saleInquiryFormProductService;
+    @Autowired
+    private ISaleInquiryFormService saleInquiryFormService;
 
     @Value(value = "${jeecg.path.upload}")
     private String uploadpath;
@@ -146,6 +157,52 @@ public class SaleQuotationController {
         QueryWrapper<SaleQuotation> queryWrapper = QueryGenerator.initQueryWrapper(saleQuotation, req.getParameterMap());
         Page<SaleQuotation> page = new Page<SaleQuotation>(pageNo, pageSize);
         IPage<SaleQuotation> pageList = saleQuotationService.page(page, queryWrapper);
+        List<SaleQuotation> quotationList = pageList.getRecords();
+        if (quotationList.size()>0){
+            // 报价单详情
+            QueryWrapper<SaleQuotationProduct> quotationProductQueryWrapper = new QueryWrapper<>();
+            quotationProductQueryWrapper.lambda().in(SaleQuotationProduct::getHeadId, quotationList.stream().map(SaleQuotation::getId).collect(Collectors.toList()));
+            List<SaleQuotationProduct> quotationProductList = saleQuotationProductService.list(quotationProductQueryWrapper);
+            // 采购报价选定详情
+            List<PurQuotationSelectionProduct> quotationSelectionProductList =new ArrayList<>();
+            if (quotationProductList.size()>0){
+                quotationSelectionProductList = purQuotationSelectionProductService.listByIds(quotationProductList.stream().map(SaleQuotationProduct::getSourceId).collect(Collectors.toList()));
+            }
+            // 采购询价详情
+            List<PurInquiryFormProduct> purInquiryFormProductList = new ArrayList<>();
+            if (quotationSelectionProductList.size()>0){
+                purInquiryFormProductList = purInquiryFormProductService.listByIds(quotationSelectionProductList.stream().map(PurQuotationSelectionProduct::getSourceId).collect(Collectors.toList()));
+            }
+            // 销售询价详情
+            List<SaleInquiryFormProduct> saleInquiryFormProductList = new ArrayList<>();
+            if (purInquiryFormProductList.size()>0){
+                saleInquiryFormProductList = saleInquiryFormProductService.listByIds(purInquiryFormProductList.stream().map(PurInquiryFormProduct::getSourceId).collect(Collectors.toList()));
+            }
+            // 销售询价单
+            List<SaleInquiryForm> saleInquiryFormList = new ArrayList<>();
+            if (saleInquiryFormProductList.size()>0){
+                saleInquiryFormList = saleInquiryFormService.listByIds(saleInquiryFormProductList.stream().map(SaleInquiryFormProduct::getHeadId).collect(Collectors.toList()));
+            }
+            for (SaleQuotation q : quotationList){
+                List<SaleQuotationProduct> findQuotationProductList = quotationProductList.stream().filter(p->p.getHeadId().equals(q.getId())).collect(Collectors.toList());
+                List<PurQuotationSelectionProduct> findQuotationSelectionProductList = quotationSelectionProductList.stream().filter(qsp->{
+                    return findQuotationProductList.stream().filter(qp->qsp.getId().equals(qp.getSourceId())).count()>0;
+                }).collect(Collectors.toList());
+                List<PurInquiryFormProduct> findPurInquiryFormProductList = purInquiryFormProductList.stream().filter(i->{
+                    return findQuotationSelectionProductList.stream().filter(p->i.getId().equals(p.getSourceId())).count()>0;
+                }).collect(Collectors.toList());
+                List<SaleInquiryFormProduct> findSaleInquiryFormProductList = saleInquiryFormProductList.stream().filter(si->{
+                    return findPurInquiryFormProductList.stream().filter(i->si.getId().equals(i.getSourceId())).count()>0;
+                }).collect(Collectors.toList());
+                List<SaleInquiryForm> findSaleInquiryFormList = saleInquiryFormList.stream().filter(h->{
+                    return findSaleInquiryFormProductList.stream().filter(i->h.getId().equals(i.getHeadId())).count()>0;
+                }).collect(Collectors.toList());
+
+                q.setCustomerInquiryNumber(String.join(",",findSaleInquiryFormList.stream().map(SaleInquiryForm::getCustomerInquiryNumber).distinct().collect(Collectors.toList())));
+                q.setQualityGrade(String.join(",",findQuotationSelectionProductList.stream().map(PurQuotationSelectionProduct::getQualityGrade).distinct().collect(Collectors.toList())));
+            }
+
+        }
         return Result.OK(pageList);
     }
 

+ 3 - 0
srm-module-code/src/main/java/org/jeecg/modules/saleCode/entity/SaleQuotation.java

@@ -242,4 +242,7 @@ public class SaleQuotation implements Serializable {
     private String quotationPeriodText;
     @TableField(exist = false)
     private String deliveryDayHeadText;
+    // 客户询价单号
+    @TableField(exist = false)
+    private String customerInquiryNumber;
 }