lyhzzz 2 anni fa
parent
commit
d1b2992ddb

+ 33 - 4
src/main/java/com/fdkankan/sale/controller/RepairInfoController.java

@@ -1,4 +1,12 @@
 package com.fdkankan.sale.controller;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.alibaba.fastjson.JSONArray;
+import com.fdkankan.sale.entity.PriceList;
+import com.fdkankan.sale.util.StatusUtil;
+import com.fdkankan.sale.vo.response.PriceListExcelVo;
 import com.google.common.collect.Lists;
 
 import com.fdkankan.sale.common.ResultCode;
@@ -12,6 +20,7 @@ import com.fdkankan.sale.vo.request.RepairInfoListParam;
 import com.fdkankan.sale.vo.response.RepairDetailVo;
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -60,11 +69,31 @@ public class RepairInfoController extends BaseController{
         vo.setCustomerName(repairDetailVo.getCustomer().getCustomerName());
         vo.setCustomerPhone(repairDetailVo.getCustomer().getPhone());
         vo.setCustomerAddress(repairDetailVo.getCustomerAddress().getGetAddress());
-        vo.setCameraName(repairDetailVo.getRepairerVo().getCameraType().toString());
+        vo.setCameraName(StatusUtil.getCameraName(repairDetailVo.getRepairerVo().getCameraType()));
         vo.setCameraSnCode(repairDetailVo.getRepairerVo().getCameraSnCode());
-        vo.setSendDate("");
-        vo.setPriceLists(Lists.newArrayList());
+        vo.setSendDate(repairDetailVo.getRepairerVo().getCreateTime());
+        vo.setWarrantyType(StatusUtil.getWarrantyType(repairDetailVo.getOrderReceivingVo().getWarrantyType()));
+        vo.setFaultMsg(repairDetailVo.getRepairerVo().getFaultMsg());
+        vo.setCheckDate(repairDetailVo.getRepairRegisterVo().getCreateTime());
+        vo.setOrderFaultMsg(repairDetailVo.getOrderReceivingVo().getOrderFaultMsg());
+        vo.setCheckResult(repairDetailVo.getRepairRegisterVo().getCheckResult());
+        vo.setCheckImg(JSONArray.toJSONString(repairDetailVo.getRepairRegisterVo().getCheckImg()));
 
-        excelUtil.listFill(response,vo);
+        vo.setSaleName(repairDetailVo.getOrderReceivingVo().getSysUserName());
+        vo.setSaleDate(repairDetailVo.getOrderReceivingVo().getCreateTime());
+        vo.setRepairMan(repairDetailVo.getRepairRegisterVo().getSysUserName());
+        vo.setRepairOverTime(repairDetailVo.getRepairRegisterVo().getOverTime());
+        List<PriceList> priceList = repairDetailVo.getPriceList();
+        BigDecimal totalAmount = BigDecimal.ZERO;
+        List<PriceListExcelVo> excelVos = new ArrayList<>();
+        for (PriceList list : priceList) {
+            PriceListExcelVo excelVo = new PriceListExcelVo();
+            BeanUtils.copyProperties(list,excelVo);
+            excelVo.setAmount(list.getPrice().multiply(new BigDecimal(list.getCount())));
+            excelVos.add(excelVo);
+            totalAmount = totalAmount.add(excelVo.getAmount());
+        }
+        vo.setTotalCount(totalAmount);
+        excelUtil.listFill(response,"四维时代服务清单",vo,excelVos,type);
     }
 }

+ 0 - 7
src/main/java/com/fdkankan/sale/controller/TestController.java

@@ -35,13 +35,6 @@ public class TestController {
     @GetMapping("/test1")
     public ResultData test1(HttpServletResponse response) {
         //模板中需要批量添加的,list{.**},obj{**}中的数据,
-        List<PriceList> list = priceListService.list();
-        OrderListVo vo = new OrderListVo();
-        vo.setCompanyName("测试公司");
-        vo.setCustomerName("测试客户名称");
-        vo.setCustomerPhone("12138");
-        vo.setPriceLists(list);
-        excelUtil.listFill(response,vo);
         return ResultData.ok();
     }
 

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

@@ -80,7 +80,7 @@ public class RepairSaleService {
         if(repair == null){
             throw new BusinessException(ResultCode.REPAIR_NOT_EXITS);
         }
-        if(repair.getStatus() !=1 ){
+        if(repair.getStatus() !=0 ){
             throw new BusinessException(ResultCode.REPAIR_STATUS_NOT_EXITS);
         }
         param.setSysUserId(sysUserId);

+ 13 - 4
src/main/java/com/fdkankan/sale/util/MyExcelUtil.java

@@ -22,10 +22,10 @@ import java.util.*;
 public class MyExcelUtil {
 
     //根据模板导出excel
-    public void listFill(HttpServletResponse response,Object obj) {
+    public void listFill(HttpServletResponse response,String excelName,Object obj,Object obj2,Integer type) {
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
-        String fileName = "四维时代服务清单"  + ".xlsx";
+        String fileName = excelName  + ".xlsx";
         try {
             fileName = URLEncoder.encode(fileName, "UTF-8");
         } catch (UnsupportedEncodingException e) {
@@ -36,6 +36,9 @@ public class MyExcelUtil {
         // 填充list 的时候还要注意 模板中{.} 多了个点 表示list
         //获取文件路径
         ClassPathResource resource= new ClassPathResource("file/excel/orderList.xlsx");
+        if(type == 1 ){
+             resource= new ClassPathResource("file/excel/repairWork.xlsx");
+        }
         String templateFileName = null;
         try {
             templateFileName = resource.getFile().getPath();
@@ -63,8 +66,14 @@ public class MyExcelUtil {
         // 简单的说 如果你的模板有list,且list不是最后一行,下面还有数据需要填充 就必须设置 forceNewRow=true 但是这个就会把所有数据放到内存 会很耗内存
         // 如果数据量大 list不是最后一行 参照下一个
         FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
-        excelWriter.fill(obj, fillConfig, writeSheet);
-        excelWriter.finish();
+        if(excelWriter != null && obj != null){
+            excelWriter.fill(obj, fillConfig, writeSheet);
+            excelWriter.finish();
+        }
+        if(excelWriter != null &&obj2 != null){
+            excelWriter.fill(obj2, fillConfig, writeSheet);
+            excelWriter.finish();
+        }
     }
 
 

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

@@ -3,6 +3,7 @@ package com.fdkankan.sale.util;
 import com.fdkankan.sale.entity.PriceList;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -15,5 +16,16 @@ public class OrderListVo {
     private String cameraName;                      //产品名称
     private String cameraSnCode;                    //相机snCode
     private String sendDate;                        //送检日期
-    private List<PriceList> priceLists;             //备件列表
+
+    private String warrantyType;                    // 保修期确认类型
+    private String faultMsg;                        // 用户反应事项
+    private String checkDate;                       // 检测日期
+    private String orderFaultMsg;                   // 机器外观
+    private String checkResult;                     // 故障确认结果
+    private String checkImg;                        // 故障现象图片
+    private BigDecimal totalCount;                  //总金额
+    private String saleName;                    //售后人员
+    private String saleDate;                    //接单日期
+    private String repairMan;                    //维修人员
+    private String repairOverTime;               //维修完成时间
 }

+ 19 - 0
src/main/java/com/fdkankan/sale/util/StatusUtil.java

@@ -81,4 +81,23 @@ public class StatusUtil {
             default: throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
     }
+
+
+    public static String getCameraName(Integer cameraType){
+        switch (cameraType){
+            case 0 : return "四维看看";
+            case 1 : return "四维看见";
+            case 2 : return "四维深时";
+        }
+        return  null;
+    }
+    //保修类型 0保修期内,1保修期外,2非保修项目
+    public static String getWarrantyType(Integer type){
+        switch (type){
+            case 0 : return "保修期内";
+            case 1 : return "保修期外";
+            case 2 : return "非保修项目";
+        }
+        return  null;
+    }
 }

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

@@ -0,0 +1,15 @@
+package com.fdkankan.sale.vo.response;
+
+import com.fdkankan.sale.entity.PriceList;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class PriceListExcelVo {
+    private String name;
+    private BigDecimal price;
+    private Integer count;
+    private BigDecimal amount;
+}