yzc преди 1 година
родител
ревизия
c03c2b1c0b

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/quotation/QuotationEstimateController.java

@@ -2,6 +2,7 @@ package com.fjhx.sale.controller.quotation;
 
 import com.fjhx.sale.entity.quotation.dto.QuotationEstimateDto;
 import com.fjhx.sale.entity.quotation.vo.QuotationEstimateVo;
+import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
 import com.fjhx.sale.service.quotation.QuotationEstimateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -51,4 +52,9 @@ public class QuotationEstimateController {
         quotationEstimateService.submitQuotation(quotationEstimateDto.getQuotationId());
     }
 
+    @PostMapping("/printPdf")
+    public SaleQuotationVo printPdf(@RequestBody QuotationEstimateDto quotationEstimateDto) {
+        return quotationEstimateService.printPdf(quotationEstimateDto);
+    }
+
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/quotation/vo/QuotationProductVo.java

@@ -26,4 +26,9 @@ public class QuotationProductVo extends QuotationProduct {
 
     private String productColor;
 
+    /**
+     * 报价信息
+     */
+    List<QuotationEstimateVo> quotationEstimateList;
+
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/quotation/QuotationEstimateMapper.java

@@ -1,8 +1,11 @@
 package com.fjhx.sale.mapper.quotation;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.item.entity.product.ProcessesBo;
 import com.fjhx.sale.entity.quotation.po.QuotationEstimate;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -14,4 +17,6 @@ import com.fjhx.sale.entity.quotation.po.QuotationEstimate;
  */
 public interface QuotationEstimateMapper extends BaseMapper<QuotationEstimate> {
 
+    List<ProcessesBo> getProductionProcessesList();
+
 }

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/service/quotation/QuotationEstimateService.java

@@ -3,6 +3,7 @@ package com.fjhx.sale.service.quotation;
 import com.fjhx.sale.entity.quotation.dto.QuotationEstimateDto;
 import com.fjhx.sale.entity.quotation.po.QuotationEstimate;
 import com.fjhx.sale.entity.quotation.vo.QuotationEstimateVo;
+import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
 import com.ruoyi.common.core.service.BaseService;
 
 import java.util.List;
@@ -32,4 +33,9 @@ public interface QuotationEstimateService extends BaseService<QuotationEstimate>
      * 提交报价
      */
     void submitQuotation(Long id);
+
+    /**
+     * 打印Pdf
+     */
+    SaleQuotationVo printPdf(QuotationEstimateDto dto);
 }

+ 36 - 4
hx-sale/src/main/java/com/fjhx/sale/service/quotation/impl/QuotationEstimateServiceImpl.java

@@ -12,7 +12,9 @@ import com.fjhx.sale.entity.quotation.po.QuotationEstimate;
 import com.fjhx.sale.entity.quotation.po.QuotationProduct;
 import com.fjhx.sale.entity.quotation.po.QuotationProductBom;
 import com.fjhx.sale.entity.quotation.vo.QuotationEstimateVo;
+import com.fjhx.sale.entity.quotation.vo.QuotationProductVo;
 import com.fjhx.sale.entity.sale.po.SaleQuotation;
+import com.fjhx.sale.entity.sale.vo.SaleQuotationVo;
 import com.fjhx.sale.mapper.quotation.QuotationEstimateMapper;
 import com.fjhx.sale.service.quotation.QuotationEstimateService;
 import com.fjhx.sale.service.quotation.QuotationProductBomService;
@@ -117,6 +119,14 @@ public class QuotationEstimateServiceImpl extends ServiceImpl<QuotationEstimateM
             }
         }
 
+        //赋值物料工序信息
+        setEstimateInfo(quotationEstimateVos);
+
+
+        return quotationEstimateVos;
+    }
+
+    private void setEstimateInfo(List<QuotationEstimateVo> quotationEstimateVos) {
         //赋值物料信息
         productInfoService.attributeAssign(quotationEstimateVos, QuotationEstimateVo::getMaterialId, (detail, product) -> {
             detail.setMaterialLength(product.getLength());
@@ -128,7 +138,7 @@ public class QuotationEstimateServiceImpl extends ServiceImpl<QuotationEstimateM
         });
 
         //赋值工序信息
-        List<ProcessesBo> processesList = productInfoService.getProcessesByTechnologyId(productInfo.getTechnologyId());
+        List<ProcessesBo> processesList = baseMapper.getProductionProcessesList();
         Map<Long, ProcessesBo> collect = processesList.stream().collect(Collectors.toMap(ProcessesBo::getId, Function.identity()));
         for (QuotationEstimateVo quotationEstimateVo : quotationEstimateVos) {
             ProcessesBo processesBo = collect.get(quotationEstimateVo.getProcessesId());
@@ -137,9 +147,6 @@ public class QuotationEstimateServiceImpl extends ServiceImpl<QuotationEstimateM
                 quotationEstimateVo.setCode(processesBo.getCode());
             }
         }
-
-
-        return quotationEstimateVos;
     }
 
     @Override
@@ -187,4 +194,29 @@ public class QuotationEstimateServiceImpl extends ServiceImpl<QuotationEstimateM
         );
     }
 
+    @Override
+    public SaleQuotationVo printPdf(QuotationEstimateDto dto) {
+        Long quotationId = dto.getQuotationId();
+        SaleQuotationVo detail = saleQuotationService.detail(quotationId);
+
+        //获取报价信息
+        List<QuotationEstimate> quotationEstimateList = this.list(q -> q
+                .eq(QuotationEstimate::getQuotationId, quotationId)
+        );
+        List<QuotationEstimateVo> quotationEstimateVos = BeanUtil.copyToList(quotationEstimateList, QuotationEstimateVo.class);
+
+        //赋值物料工序信息
+        setEstimateInfo(quotationEstimateVos);
+
+        Map<Long, List<QuotationEstimateVo>> estimateMap = quotationEstimateVos.stream().collect(Collectors.groupingBy(QuotationEstimate::getQuotationProductId));
+
+
+        List<QuotationProductVo> quotationProductList = detail.getQuotationProductList();
+        for (QuotationProductVo quotationProduct : quotationProductList) {
+            quotationProduct.setQuotationEstimateList(estimateMap.get(quotationProduct.getId()));
+        }
+
+        return detail;
+    }
+
 }

+ 4 - 0
hx-sale/src/main/resources/mapper/quotation/QuotationEstimateMapper.xml

@@ -1,4 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.sale.mapper.quotation.QuotationEstimateMapper">
+    <select id="getProductionProcessesList" resultType="com.fjhx.item.entity.product.ProcessesBo">
+        SELECT *
+        FROM production_processes
+    </select>
 </mapper>