浏览代码

维修报价

lyhzzz 2 年之前
父节点
当前提交
cbe2a1a2dc

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

@@ -7,6 +7,7 @@ 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;
@@ -50,7 +51,7 @@ public class TestController {
     /**
      * 导出数据 生成pdf
      *
-     * @param response
+     * http://localhost:8188/service/test/exportPdf?repairId=20230317163855405
      */
     @GetMapping("/exportPdf")
     public void exportPdf(@RequestParam(required = false) String repairId,HttpServletResponse response) {
@@ -82,6 +83,9 @@ public class TestController {
             for (Map.Entry<String, Object> entry : map.entrySet()) {
                 listVo.add(entry.getValue().toString());
             }
+            if(listVo.size() <6){
+                listVo.add("");
+            }
             partTableList.add(listVo);
         }
 

+ 7 - 0
src/main/java/com/fdkankan/sale/entity/PriceList.java

@@ -100,4 +100,11 @@ public class PriceList implements Serializable {
      */
     @TableField("discount")
     private Integer discount;
+
+    /**
+     * 价格
+     */
+    @TableField("price_discount")
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private BigDecimal priceDiscount;
 }

+ 6 - 1
src/main/java/com/fdkankan/sale/service/impl/PriceListServiceImpl.java

@@ -34,7 +34,12 @@ public class PriceListServiceImpl extends ServiceImpl<IPriceListMapper, PriceLis
         BigDecimal amount = BigDecimal.ZERO;
         List<PriceList> byRepairId = this.getByRepairIdAndStatus(repairId,1);
         for (PriceList priceList : byRepairId) {
-            amount = amount.add(priceList.getPrice().multiply(new BigDecimal(priceList.getCount())));
+            if(priceList.getDiscount() == 0){
+                amount = amount.add(priceList.getPrice().multiply(new BigDecimal(priceList.getCount())));
+            }
+            if(priceList.getDiscount() == 1){
+                amount = amount.add(priceList.getPriceDiscount().multiply(new BigDecimal(priceList.getCount())));
+            }
         }
         return amount;
     }

+ 1 - 0
src/main/java/com/fdkankan/sale/service/impl/RepairPersonnelService.java

@@ -154,6 +154,7 @@ public class RepairPersonnelService {
             priceList.setPrice(part.getPartPrice());
             priceList.setCount(partVo.getPartCount());
             priceList.setPartId(part.getPartId());
+            priceList.setPriceDiscount(part.getPartPriceDiscount());
             priceListService.save(priceList);
 
         }

+ 2 - 1
src/main/java/com/fdkankan/sale/service/impl/RepairSaleService.java

@@ -184,7 +184,8 @@ public class RepairSaleService {
                     throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
                 }
                 Part part = partMap.get(priceList.getPartId());
-                priceList.setPrice(priceList.getDiscount() == 0?part.getPartPrice() : part.getPartPriceDiscount());
+                priceList.setPrice(part.getPartPrice());
+                priceList.setPriceDiscount(part.getPartPriceDiscount());
                 priceList.setName(part.getPartName());
 
             }

+ 2 - 1
src/main/java/com/fdkankan/sale/util/OrderListVo.java

@@ -31,7 +31,7 @@ public class OrderListVo {
     private String orderFaultMsg;                   // 机器外观
     private String checkResult;                     // 故障确认结果
     private String repairRemark;                     // 维修记录
-    private PdfImg pdfImg;
+
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     private BigDecimal totalCount;                  //总金额
     private String priceListDate;                  //报价日期
@@ -43,6 +43,7 @@ public class OrderListVo {
     private String invoiceType;               //发票种类
 
     private List<PriceListExcelVo> priceListExcelVos;
+    private PdfImg pdfImg;
 
     public void setPdfImg(JSONArray list) {
         PdfImg pdfImg = new PdfImg();

+ 9 - 3
src/main/java/com/fdkankan/sale/util/pdf/PdfUtils.java

@@ -2,6 +2,7 @@ package com.fdkankan.sale.util.pdf;
 
 import com.itextpdf.text.*;
 import com.itextpdf.text.pdf.*;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -24,16 +25,21 @@ public class PdfUtils {
             stamper.setFormFlattening(true);
             AcroFields form = stamper.getAcroFields();
             // 文字类的内容处理
-            Map<String, String> datemap = (Map<String, String>) map.get("dataMap");
+            Map<String, Object> datemap = (Map<String, Object>) map.get("dataMap");
             form.addSubstitutionFont(bf);
             for (String key : datemap.keySet()) {
-                String value = datemap.get(key);
-                form.setField(key, value);
+                if(datemap.get(key) instanceof String && datemap.get(key)!=null){
+                    String value = (String) datemap.get(key);
+                    form.setField(key, value);
+                }
             }
             // 图片类的内容处理
             Map<String, String> imgmap = (Map<String, String>) map.get("imgMap");
             for (String key : imgmap.keySet()) {
                 String value = imgmap.get(key);
+                if(StringUtils.isBlank(value)){
+                    continue;
+                }
                 String imgpath = value;
                 int pageNo = form.getFieldPositions(key).get(0).page;
                 Rectangle signRect = form.getFieldPositions(key).get(0).position;