Browse Source

v1.5.0需求

lyhzzz 1 year ago
parent
commit
34f05033b1

+ 2 - 0
src/main/java/com/fdkankan/sale/common/CacheUtil.java

@@ -1,5 +1,6 @@
 package com.fdkankan.sale.common;
 
+import com.fdkankan.sale.vo.request.RepairInfoListParam;
 import com.fdkankan.sale.vo.request.RepairInvoiceParam;
 import com.fdkankan.sale.vo.request.RepairPayParam;
 import org.springframework.beans.factory.annotation.Value;
@@ -15,5 +16,6 @@ public class CacheUtil {
 
     public static RepairInvoiceParam invoiceParam = new RepairInvoiceParam();
     public static RepairPayParam payParam = new RepairPayParam();
+    public static RepairInfoListParam repairInfoListParam = new RepairInfoListParam();
 
 }

+ 5 - 3
src/main/java/com/fdkankan/sale/common/RepairStatusEnum.java

@@ -54,9 +54,11 @@ public enum  RepairStatusEnum {
     static {
         map = Arrays.asList(values()).stream().collect(Collectors.toMap(RepairStatusEnum::getStatus, UnaryOperator.identity()));
     }
+
     public static RepairStatusEnum getByStatus(Integer status){
-        return map.get(status);
+        if(map.get(status) != null){
+            return  map.get(status);
+        }
+        return RepairStatusEnum.TO_BE_RECEIVED;
     }
-
-
 }

+ 5 - 2
src/main/java/com/fdkankan/sale/common/RepairStatusEnumMsg.java

@@ -53,8 +53,11 @@ public enum RepairStatusEnumMsg {
     static {
         map = Arrays.asList(values()).stream().collect(Collectors.toMap(RepairStatusEnumMsg::getStatus, UnaryOperator.identity()));
     }
+
     public static RepairStatusEnumMsg getByStatus(Integer status){
-        return map.get(status);
+        if(map.get(status) != null){
+            return  map.get(status);
+        }
+        return RepairStatusEnumMsg.TO_BE_RECEIVED;
     }
-
 }

+ 4 - 1
src/main/java/com/fdkankan/sale/common/RepairStatusProcessComing.java

@@ -72,7 +72,10 @@ public enum RepairStatusProcessComing {
         map = Arrays.asList(values()).stream().collect(Collectors.toMap(RepairStatusProcessComing::getStatus, UnaryOperator.identity()));
     }
     public static RepairStatusProcessComing getByStatus(Integer status){
-        return map.get(status);
+        if(map.get(status) != null){
+            return  map.get(status);
+        }
+        return RepairStatusProcessComing.TO_BE_RECEIVED;
     }
 
 }

+ 5 - 1
src/main/java/com/fdkankan/sale/common/RepairStatusProcessIng.java

@@ -73,8 +73,12 @@ public enum RepairStatusProcessIng {
     static {
         map = Arrays.asList(values()).stream().collect(Collectors.toMap(RepairStatusProcessIng::getStatus, UnaryOperator.identity()));
     }
+
     public static RepairStatusProcessIng getByStatus(Integer status){
-        return map.get(status);
+        if(map.get(status) != null){
+            return  map.get(status);
+        }
+        return RepairStatusProcessIng.TO_BE_RECEIVED;
     }
 
 }

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

@@ -4,13 +4,20 @@ import java.security.interfaces.ECKey;
 import java.util.ArrayList;
 import java.util.List;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.sale.common.CacheUtil;
 import com.fdkankan.sale.entity.PriceList;
 import com.fdkankan.sale.entity.RepairLog;
 import com.fdkankan.sale.entity.SysUser;
+import com.fdkankan.sale.service.IExcelService;
 import com.fdkankan.sale.service.IRepairLogService;
 import com.fdkankan.sale.util.StatusUtil;
-import com.fdkankan.sale.vo.response.PriceListExcelVo;
+import com.fdkankan.sale.vo.request.RepairPayParam;
+import com.fdkankan.sale.vo.response.*;
 import com.google.common.collect.Lists;
 
 import com.fdkankan.sale.common.ResultCode;
@@ -21,13 +28,15 @@ import com.fdkankan.sale.service.impl.RepairInfoService;
 import com.fdkankan.sale.util.MyExcelUtil;
 import com.fdkankan.sale.util.OrderListVo;
 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.*;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 @RestController
 @RequestMapping("/sale/repairInfo")
 public class RepairInfoController extends BaseController{
@@ -38,6 +47,10 @@ public class RepairInfoController extends BaseController{
     MyExcelUtil excelUtil;
     @Autowired
     IRepairLogService repairLogService;
+    @Autowired
+    IRepairService repairService;
+    @Autowired
+    IExcelService excelService;
 
     @GetMapping("/details")
     public ResultData details(@RequestParam(required = false) String repairId){
@@ -73,11 +86,54 @@ public class RepairInfoController extends BaseController{
         return ResultData.ok(repairInfoService.getProcessByRepairId(repairId,type));
     }
 
+    /**
+     * 工单查询
+     */
     @PostMapping("/list")
     public ResultData list(@RequestBody RepairInfoListParam param){
+        CacheUtil.repairInfoListParam = param;
         return ResultData.ok(repairInfoService.pageList(param));
     }
 
+
+    /**
+     * 工单查询导出
+     */
+    @GetMapping("/exportRepairInfo")
+    public void exportRepairInfo(HttpServletRequest request, HttpServletResponse response){
+        RepairInfoListParam  param =  CacheUtil.repairInfoListParam;
+        param.setPageNum(1);
+        param.setPageSize(500);
+        Page<RepairerVo> voPage = repairService.pageInfoList(param);
+
+        ExcelWriter excelWriter = null;
+        try {
+            excelWriter = EasyExcel.write(response.getOutputStream(),RepairPayVo.class).build();
+            for (int pageNum = 1; pageNum <= voPage.getPages(); pageNum ++ ) {
+                if(pageNum >1){
+                    param.setPageNum(pageNum);
+                    voPage = repairService.pageInfoList(param);
+                }
+                List<RepairerVo> records = voPage.getRecords();
+                List<RepairInfoExportVo> list = new ArrayList<>();
+                for (RepairerVo record : records) {
+                    RepairInfoExportVo vo = new RepairInfoExportVo();
+                    BeanUtils.copyProperties(record,vo);
+                    list.add(vo);
+                }
+                excelService.commonExport(request,response,"工单详情",list,excelWriter);
+            }
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(excelWriter != null){
+                excelWriter.finish();
+            }
+        }
+
+    }
+
     /**
      * 0 四维时代服务清单(模板)
      * 1 维修服务工作单(模板)
@@ -97,4 +153,5 @@ public class RepairInfoController extends BaseController{
         }
     }
 
+
 }

+ 9 - 0
src/main/java/com/fdkankan/sale/controller/RepairSaleController.java

@@ -125,5 +125,14 @@ public class RepairSaleController extends BaseController{
         repairSaleService.sendRegister(param,getUserId());
         return ResultData.ok();
     }
+
+    /**
+     * 签收凭证
+     */
+    @PostMapping("/signFor")
+    public ResultData signFor(@RequestBody PayRegisterParam param){
+        repairSaleService.signFor(param,getUserId());
+        return ResultData.ok();
+    }
 }
 

+ 13 - 0
src/main/java/com/fdkankan/sale/entity/CustomerAddress.java

@@ -1,6 +1,7 @@
 package com.fdkankan.sale.entity;
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -11,6 +12,7 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fdkankan.sale.typehandle.JsonArrayTypeHandler;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -69,6 +71,7 @@ public class CustomerAddress implements Serializable {
      */
     @TableField("get_tracking_num")
     private String getTrackingNum;
+
     /**
      * 送修方式 0 前台送修,1快递寄送
      */
@@ -86,6 +89,16 @@ public class CustomerAddress implements Serializable {
      */
     @TableField("send_tracking_num")
     private String sendTrackingNum;
+    /**
+     * 是否已签收0未签收,1已签收
+     */
+    @TableField("is_sign_for")
+    private String isSignFor;
+    /**
+     * 快递图片
+     */
+    @TableField(typeHandler = JsonArrayTypeHandler.class)
+    private JSONArray sendTrackingImg;
 
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")

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

@@ -1,5 +1,6 @@
 package com.fdkankan.sale.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.fdkankan.sale.entity.CustomerAddress;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -13,7 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ICustomerAddressService extends IService<CustomerAddress> {
 
-    void setTrackingNumByRepairId(String repairId,Integer getType, String sendTrackingNum);
+    void setTrackingNumByRepairId(String repairId, Integer getType, String sendTrackingNum);
 
     CustomerAddress getByRepairId(String repairId);
 }

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

@@ -1,5 +1,6 @@
 package com.fdkankan.sale.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.sale.entity.CustomerAddress;

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

@@ -336,4 +336,7 @@ public class RepairSaleService {
         repairLogService.saveBySysUser(userId,param.getRepairId(),RepairStatusEnum.OVER_SHIPPED.status(),repair.getStatus(),"发货登记");
 
     }
+
+    public void signFor(PayRegisterParam param, Long userId) {
+    }
 }

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

@@ -168,4 +168,13 @@ public class StatusUtil {
         }
         return null;
     }
+
+    public static String getReceiverTypeStr(Integer payType) {
+
+        switch (payType){
+            case 0: return "系统录单";
+            case 1: return "公众号报修";
+        }
+        return null;
+    }
 }

+ 1 - 0
src/main/java/com/fdkankan/sale/vo/request/PayRegisterParam.java

@@ -8,6 +8,7 @@ public class PayRegisterParam {
     private String repairId;
     private Integer payType;
     private JSONArray payImg;
+    private JSONArray trackingImg;
 
     private String trackingNum;
     private Integer getType;

+ 90 - 0
src/main/java/com/fdkankan/sale/vo/response/RepairInfoExportVo.java

@@ -0,0 +1,90 @@
+package com.fdkankan.sale.vo.response;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.fastjson.JSONArray;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fdkankan.sale.common.RepairStatusProcessComing;
+import com.fdkankan.sale.util.StatusUtil;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class RepairInfoExportVo {
+
+    @ExcelProperty("报修时间")
+    private String createTime;
+
+    @ExcelProperty("客户名称")
+    private String companyName;
+
+    @ExcelIgnore
+    private Integer cameraType;
+    @ExcelProperty("产品类型")
+    private String cameraTypeStr;
+
+    @ExcelProperty("产品SN码")
+    private String cameraSnCode;
+
+    @ExcelIgnore
+    private Integer receiverType;
+    @ExcelProperty("报修方式")
+    private String receiverTypeStr;
+
+    @ExcelIgnore
+    private Integer warrantyType;
+    @ExcelProperty("保修类型")
+    private String warrantyTypeStr;
+
+    @ExcelProperty("售后工程师")
+    private String saleName;
+
+    @ExcelProperty("接单日期")
+    private String orderReceivingTime;
+
+    @ExcelProperty("故障分析")
+    private String checkResult;
+
+    @ExcelProperty("维修工程师")
+    private String repairManName;
+
+    @ExcelProperty("维修完成日期")
+    private String repairOverTime;
+
+    @ExcelIgnore
+    private Integer status;
+    @ExcelProperty("状态")
+    private String statusStr;
+
+    @ExcelProperty("维修单号")
+    private String repairId;
+
+    public String getCameraTypeStr() {
+        if(cameraType == null){
+            return "";
+        }
+        return StatusUtil.getCameraName(cameraType);
+    }
+
+    public String getReceiverTypeStr() {
+        if(receiverType == null){
+            return "";
+        }
+        return StatusUtil.getReceiverTypeStr(receiverType);
+    }
+
+    public String getWarrantyTypeStr() {
+        if(warrantyType == null){
+            return "";
+        }
+        return StatusUtil.getWarrantyType(warrantyType);
+    }
+
+    public String getStatusStr() {
+        if(status == null){
+            return "";
+        }
+        return RepairStatusProcessComing.getByStatus(status).getMsg();
+    }
+}

+ 11 - 0
src/main/java/com/fdkankan/sale/vo/response/RepairerVo.java

@@ -54,5 +54,16 @@ public class RepairerVo extends Repair {
         }
         return payImgArray;
     }
+
+    private Integer isSignFor;
+    private String sendTrackingImg;
+    private JSONArray sendTrackingImgArray;
+
+    public JSONArray getSendTrackingImgArray() {
+        if(StringUtils.isNotBlank(sendTrackingImg)){
+            return JSONArray.parseArray(sendTrackingImg);
+        }
+        return sendTrackingImgArray;
+    }
 }