lyhzzz пре 2 година
родитељ
комит
6e4f86b5bf

+ 2 - 17
src/main/java/com/fdkankan/sale/controller/RepairInfoController.java

@@ -75,26 +75,11 @@ public class RepairInfoController extends BaseController{
                             @RequestParam(required = false,defaultValue = "0") Integer type){
         OrderListVo orderListVo = repairInfoService.getExportVo(repairId);
         if(type == 0){
-            excelUtil.listFill(response,"四维时代服务清单",orderListVo,orderListVo.getPriceListExcelVos(),type);
+            excelUtil.listFill(response,"四维时代服务清单",orderListVo,orderListVo.getPriceListExcelVos(),orderListVo.getExportImg(),type);
         }
         if(type == 1){
-            excelUtil.listFill(response,"维修服务工作单",orderListVo,orderListVo.getPriceListExcelVos(),type);
+            excelUtil.listFill(response,"维修服务工作单",orderListVo,orderListVo.getPriceListExcelVos(),orderListVo.getExportImg(),type);
         }
     }
 
-    /**
-     * 0 四维时代服务清单(模板)
-     * 1 维修服务工作单(模板)
-     */
-    @GetMapping("/exportPdf")
-    public void exportPdf(@RequestParam(required = false) String repairId,
-                            @RequestParam(required = false,defaultValue = "0") Integer type){
-        OrderListVo orderListVo = repairInfoService.getExportVo(repairId);
-        if(type == 0){
-            excelUtil.listFill(response,"四维时代服务清单",orderListVo,orderListVo.getPriceListExcelVos(),type);
-        }
-        if(type == 1){
-            excelUtil.listFill(response,"维修服务工作单",orderListVo,orderListVo.getPriceListExcelVos(),type);
-        }
-    }
 }

+ 1 - 4
src/main/java/com/fdkankan/sale/controller/TestController.java

@@ -5,14 +5,11 @@ import com.fdkankan.sale.common.ResultData;
 import com.fdkankan.sale.service.IPriceListService;
 import com.fdkankan.sale.service.ISysUserService;
 import com.fdkankan.sale.service.impl.RepairInfoService;
-import com.fdkankan.sale.util.MyExcelUtil;
 import com.fdkankan.sale.util.OrderListVo;
-import com.fdkankan.sale.util.pdf.PdfImg;
 import com.fdkankan.sale.util.pdf.PdfUtil;
 import com.fdkankan.sale.util.pdf.PdfUtils;
 import com.fdkankan.sale.vo.response.PriceListExcelVo;
 import com.itextpdf.text.DocumentException;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -62,7 +59,7 @@ public class TestController {
         OrderListVo orderListVo = repairInfoService.getExportVo(repairId);
         Map<String, Object> dataMap = BeanUtil.beanToMap(orderListVo);
         //图片
-        Map<String, Object> imgMap = BeanUtil.beanToMap(orderListVo.getPdfImg());
+        Map<String, Object> imgMap = BeanUtil.beanToMap(orderListVo.getExportImg());
         // imgMap中的key要和模板中的域名对应
 
         //表格 一行数据是一个list

+ 5 - 3
src/main/java/com/fdkankan/sale/service/impl/RepairInfoService.java

@@ -1,5 +1,4 @@
 package com.fdkankan.sale.service.impl;
-import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.sale.common.PageInfo;
 import com.fdkankan.sale.common.RepairStatusEnum;
@@ -168,7 +167,7 @@ public class RepairInfoService {
         vo.setSaleDate(repairDetailVo.getOrderReceivingVo().getCreateTime());
         vo.setWarrantyExpirationDate(repairDetailVo.getRepairerVo().getWarrantyDate());
 
-        vo.setPdfImg(repairDetailVo.getRepairRegisterVo().getCheckImg());
+        vo.setExportImg(repairDetailVo.getRepairRegisterVo().getCheckImg());
         vo.setRepairMan(repairDetailVo.getRepairRegisterVo().getSysUserName());
         vo.setRepairOverTime(repairDetailVo.getRepairRegisterVo().getOverTime());
         vo.setRepairRemark(repairDetailVo.getRepairRegisterVo().getRemark());
@@ -185,7 +184,10 @@ public class RepairInfoService {
         for (PriceList list : priceList) {
             PriceListExcelVo excelVo = new PriceListExcelVo();
             BeanUtils.copyProperties(list,excelVo);
-            excelVo.setAmount(list.getPrice().multiply(new BigDecimal(list.getCount())));
+            if(list.getPriceDiscount() == null){
+                excelVo.setPriceDiscount(list.getPrice());
+            }
+            excelVo.setAmount(list.getPriceDiscount().multiply(new BigDecimal(list.getCount())));
             excelVos.add(excelVo);
             totalAmount = totalAmount.add(excelVo.getAmount());
             priceData = list.getCreateTime();

+ 44 - 1
src/main/java/com/fdkankan/sale/util/MyExcelUtil.java

@@ -1,10 +1,13 @@
 package com.fdkankan.sale.util;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.sale.common.CacheUtil;
 import com.fdkankan.sale.common.FilePath;
 import com.fdkankan.sale.entity.Customer;
 import com.fdkankan.sale.entity.PriceList;
 import com.fdkankan.sale.service.IPriceListService;
+import com.fdkankan.sale.util.pdf.ExportImg;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
 import com.alibaba.excel.EasyExcel;
@@ -13,7 +16,10 @@ import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.metadata.fill.FillConfig;
 import org.springframework.stereotype.Component;
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -28,7 +34,7 @@ public class MyExcelUtil {
     FYunFileServiceInterface fYunFileServiceInterface;
 
     //根据模板导出excel
-    public void listFill(HttpServletResponse response,String excelName,Object obj,Object obj2,Integer type) {
+    public void listFill(HttpServletResponse response, String excelName, Object obj, Object obj2, ExportImg exportImg,Integer type) {
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
         String fileName = excelName  + ".xlsx";
@@ -71,9 +77,46 @@ public class MyExcelUtil {
         if(excelWriter != null &&obj2 != null){
             excelWriter.fill(obj2, fillConfig, writeSheet);
         }
+        if(excelWriter != null &&exportImg != null){
+            Map<String, Object> map = BeanUtil.beanToMap(exportImg);
+            imageHandleByParam(map);
+            excelWriter.fill(map, fillConfig, writeSheet);
+        }
         assert excelWriter != null;
         excelWriter.finish();
+
     }
 
+    /**
+     * 图片处理
+     *
+     * @param param
+     */
+    private void imageHandleByParam(Map<String, Object> param) {
+        for (Map.Entry<String, Object> entry : param.entrySet()) {
+            try {
+                String mapKey = entry.getKey();
+                String ossPath = entry.getValue().toString();
+                String downloadPath = FilePath.file_path + ossPath.replaceAll(CacheUtil.host,"");
+                // 填充图片
+                ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
+                BufferedImage bufferImg = ImageIO.read(new File(downloadPath));
+                // 图片后缀格式
+                String suffix = ".png";
+                if(downloadPath.contains(".")){
+                    suffix =  downloadPath.split("\\.")[1];
+                }
+                ImageIO.write(bufferImg, suffix, byteArrayOut);
+
+                bufferImg.flush();
+                // 注意:这里需要put回原来的key里
+                param.put(mapKey, byteArrayOut.toByteArray());
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
 
 }

+ 11 - 12
src/main/java/com/fdkankan/sale/util/OrderListVo.java

@@ -2,8 +2,7 @@ package com.fdkankan.sale.util;
 
 import com.alibaba.fastjson.JSONArray;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fdkankan.sale.entity.PriceList;
-import com.fdkankan.sale.util.pdf.PdfImg;
+import com.fdkankan.sale.util.pdf.ExportImg;
 import com.fdkankan.sale.vo.response.PriceListExcelVo;
 import lombok.Data;
 
@@ -43,22 +42,22 @@ public class OrderListVo {
     private String invoiceType;               //发票种类
 
     private List<PriceListExcelVo> priceListExcelVos;
-    private PdfImg pdfImg;
+    private ExportImg exportImg;
 
-    public void setPdfImg(JSONArray list) {
-        PdfImg pdfImg = new PdfImg();
+    public void setExportImg(JSONArray list) {
+        ExportImg exportImg = new ExportImg();
         HashMap<Integer,String> map = new HashMap<>();
         for (int i = 0 ;i <=list.size();i ++){
             Object o = list.get(0);
             String image = o.toString();
             map.put(i ,image);
         }
-        pdfImg.setCheckImg1(map.get(0));
-        pdfImg.setCheckImg2(map.get(1));
-        pdfImg.setCheckImg3(map.get(2));
-        pdfImg.setCheckImg4(map.get(3));
-        pdfImg.setCheckImg5(map.get(4));
-        pdfImg.setCheckImg6(map.get(5));
-        this.pdfImg = pdfImg;
+        exportImg.setCheckImg1(map.get(0));
+        exportImg.setCheckImg2(map.get(1));
+        exportImg.setCheckImg3(map.get(2));
+        exportImg.setCheckImg4(map.get(3));
+        exportImg.setCheckImg5(map.get(4));
+        exportImg.setCheckImg6(map.get(5));
+        this.exportImg = exportImg;
     }
 }

+ 1 - 1
src/main/java/com/fdkankan/sale/util/pdf/PdfImg.java

@@ -3,7 +3,7 @@ package com.fdkankan.sale.util.pdf;
 import lombok.Data;
 
 @Data
-public class PdfImg {
+public class ExportImg {
     private String checkImg1;                        // 故障现象图片
     private String checkImg2;                        // 故障现象图片
     private String checkImg3;                        // 故障现象图片

+ 2 - 0
src/main/java/com/fdkankan/sale/vo/response/PriceListExcelVo.java

@@ -13,6 +13,8 @@ public class PriceListExcelVo {
     private String name;
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     private BigDecimal price;
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private BigDecimal priceDiscount;
     private Integer count;
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     private BigDecimal amount;