lyhzzz 5 miesięcy temu
rodzic
commit
ed9b4fd76c

+ 6 - 0
README.md

@@ -176,3 +176,9 @@
 
 
 
+###**v2.8.0**
+~~~~
+1,添加接口,
+    /service/manage/authorizeCamera/orderList      相机授权订单列表
+    /service/manage/authorizeCamera/export         相机授权订单列表导出
+~~~~

+ 4 - 0
doc/update-2.9.0.sql

@@ -0,0 +1,4 @@
+ALTER TABLE `4dkankan_v4`.`t_authorize_camera`
+    ADD COLUMN `amount` decimal(15, 2) NULL AFTER `update_time`,
+    ADD COLUMN `currency_symbol` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'CNY' AFTER `amount`,
+    ADD COLUMN `order_sn` varchar(255) NULL AFTER `currency_symbol`;

+ 3 - 0
src/main/java/com/fdkankan/manage/common/CacheUtil.java

@@ -1,7 +1,9 @@
 package com.fdkankan.manage.common;
 
+import com.fdkankan.manage.entity.AuthorizeCamera;
 import com.fdkankan.manage.entity.IncrementUseType;
 import com.fdkankan.manage.vo.request.AgentNewLogParam;
+import com.fdkankan.manage.vo.request.AuthorizeParam;
 import com.fdkankan.manage.vo.request.FeedbackParam;
 import com.fdkankan.manage.vo.request.OrderParam;
 
@@ -19,6 +21,7 @@ public class CacheUtil {
     public static OrderParam orderParam = new OrderParam();
     public static AgentNewLogParam agentParam = new AgentNewLogParam();
     public static FeedbackParam feedbackParam = new FeedbackParam();
+    public static AuthorizeParam authorizeParam = new AuthorizeParam();
 
     public static  HashMap<Integer, IncrementUseType> useTypeMap = new HashMap<>();
 }

+ 40 - 0
src/main/java/com/fdkankan/manage/common/CustomDateConverter.java

@@ -0,0 +1,40 @@
+package com.fdkankan.manage.common;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.ReadConverterContext;
+import com.alibaba.excel.converters.WriteConverterContext;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+import java.lang.reflect.Field;
+
+public class CustomDateConverter implements Converter<Integer> {
+
+    @Override
+    public Class<?> supportJavaTypeKey() {
+        return Converter.super.supportJavaTypeKey();
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return Converter.super.supportExcelTypeKey();
+    }
+
+    @Override
+    public Integer convertToJavaData(ReadCellData<?> cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        return Converter.super.convertToJavaData(cellData, contentProperty, globalConfiguration);
+    }
+
+
+    @Override
+    public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        Field field = contentProperty.getField();
+        return new WriteCellData<>(DictUtil.toString(field.getName(),value));
+    }
+
+}
+
+

+ 36 - 0
src/main/java/com/fdkankan/manage/common/DictUtil.java

@@ -0,0 +1,36 @@
+package com.fdkankan.manage.common;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.awt.*;
+
+public class DictUtil {
+    public static String toString(String name, Integer value) {
+        if(StringUtils.isBlank(name) || value == null){
+            return "";
+        }
+        switch (name){
+            case "customerType" : return toStringCustomerType(value);
+            case "useType" : return toStringUseType(value);
+            default: return "";
+        }
+    }
+
+    public static String toStringUseType(Integer value) {
+        if(value == null ||  CacheUtil.useTypeMap.get(value) == null){
+            return "";
+        }
+        return CacheUtil.useTypeMap.get(value).getName();
+    }
+
+    public static String toStringCustomerType(Integer value) {
+        if(value == null){
+            return "";
+        }
+        switch (value){
+            case 0 : return "直销";
+            case 1 : return "经销";
+            default: return "";
+        }
+    }
+}

+ 16 - 0
src/main/java/com/fdkankan/manage/controller/AuthorizeCameraController.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
 import com.fdkankan.manage.entity.AuthorizeCamera;
@@ -15,6 +16,9 @@ import com.fdkankan.manage.vo.request.AuthorizeParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * <p>
  *  前端控制器
@@ -72,5 +76,17 @@ public class AuthorizeCameraController {
 
         return ResultData.ok(authorizeCameraService.updateSnCode(detailId,snCode));
     }
+
+    @PostMapping("/orderList")
+    public ResultData orderList(@RequestBody AuthorizeParam param){
+        param.setListType("order");
+        CacheUtil.authorizeParam = param;
+        return ResultData.ok(authorizeCameraService.pageList(param));
+    }
+
+    @GetMapping("/export")
+    public void export(HttpServletRequest req, HttpServletResponse resp) throws Exception {
+        authorizeCameraService.export(req,resp);
+    }
 }
 

+ 54 - 2
src/main/java/com/fdkankan/manage/entity/AuthorizeCamera.java

@@ -1,10 +1,15 @@
 package com.fdkankan.manage.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
+import com.fdkankan.manage.common.CustomDateConverter;
+import com.fdkankan.manage.common.DictUtil;
 import com.fdkankan.manage.vo.response.OrderVoStatus;
 import lombok.Getter;
 import lombok.Setter;
@@ -28,29 +33,34 @@ public class AuthorizeCamera implements Serializable {
      * 本地算法授权
      */
     @TableId(value = "id", type = IdType.AUTO)
+    @ExcelIgnore
     private Integer id;
 
     /**
      * 客户名称
      */
+    @ExcelProperty(value = "客户名称",index = 6)
     @TableField(value = "customer_name",updateStrategy = FieldStrategy.IGNORED)
     private String customerName;
 
     /**
      * 客户类别0直销,1经销
      */
+    @ExcelProperty(value = "客户类别",index = 7,converter = CustomDateConverter.class)
     @TableField(value = "customer_type",updateStrategy = FieldStrategy.IGNORED)
     private Integer customerType;
 
     /**
      * 终端客户
      */
+    @ExcelProperty(value = "终端客户",index = 8)
     @TableField(value = "end_customer",updateStrategy = FieldStrategy.IGNORED)
     private String endCustomer;
 
     /**
      * 使用类型
      */
+    @ExcelProperty(value = "终端客户",index = 9,converter = CustomDateConverter.class)
     @TableField("use_type")
     private Integer useType;
 
@@ -58,24 +68,28 @@ public class AuthorizeCamera implements Serializable {
      * 项目号
      */
     @TableField(value = "project_num",updateStrategy = FieldStrategy.IGNORED)
+    @ExcelProperty(value = "项目号",index = 17)
     private String projectNum;
 
     /**
      * 备注
      */
     @TableField("remark")
+    @ExcelProperty(value = "备注",index = 18)
     private String remark;
 
     /**
      * 机器码
      */
     @TableField("machine_code")
+    @ExcelIgnore
     private String machineCode;
 
     /**
      * 机器UUID
      */
     @TableField("machine_uuid")
+    @ExcelIgnore
     private String machineUuid;
 
 
@@ -83,60 +97,98 @@ public class AuthorizeCamera implements Serializable {
      * 相机snCodes
      */
     @TableField(exist = false)
+    @ExcelProperty(value = "相机sn",index = 16)
     private String snCodes;
 
     /**
      * 相机数量
      */
     @TableField("camera_num")
+    @ExcelIgnore
     private Integer cameraNum;
 
     /**
      * 授权key
      */
     @TableField("authorize_key")
+    @ExcelIgnore
     private String authorizeKey;
 
     /**
      * 创建人
      */
     @TableField("sys_user_id")
+    @ExcelIgnore
     private Long sysUserId;
 
     @TableField(exist = false)
+    @ExcelIgnore
     private String sysUserName;
 
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")
+    @ExcelIgnore
     private String recStatus;
 
     @TableField("create_time")
-    private Date createTime;
+    @ExcelProperty(value = "下单时间",index = 0)
+    private String createTime;
 
     @TableField("update_time")
+    @ExcelIgnore
     private Date updateTime;
 
     @TableField(value ="company_name",updateStrategy = FieldStrategy.IGNORED)
+    @ExcelProperty(value = "合同所属公司",index = 2)
     private String companyName;
 
     @TableField(value ="business_dept",updateStrategy = FieldStrategy.IGNORED)
+    @ExcelProperty(value = "业务部门",index = 3)
     private String businessDept;
 
     @TableField(value ="business_name",updateStrategy = FieldStrategy.IGNORED)
+    @ExcelProperty(value = "业务员",index = 4)
     private String businessName;
 
     @TableField(value = "customer_pay_time",updateStrategy = FieldStrategy.IGNORED)
+    @ExcelProperty(value = "客户付款时间",index = 5)
     private String customerPayTime;
 
     @TableField("model_auth_code")
+    @ExcelProperty(value = "客户机器码",index = 15)
     private String modelAuthCode;
 
+    @TableField("amount")
+    @ExcelProperty(value = "订单金额",index = 10)
+    private BigDecimal amount;
+
+    @TableField("currency_symbol")
+    @ExcelProperty(value = "币种",index = 11)
+    private String currencySymbol;
+
+    @TableField("order_sn")
+    @ExcelProperty(value = "订单号",index = 1)
+    private String orderSn;
+
 
     @TableField(exist = false)
+    @ExcelIgnore
     private String useTypeStr;
 
+    @TableField(exist = false)
+    @ExcelProperty(value = "数量",index = 12)
+    private Integer count = 1;
+
+    @TableField(exist = false)
+    @ExcelProperty(value = "付款状态",index = 13)
+    private String payStatus ;
+
+    @TableField(exist = false)
+    @ExcelProperty(value = "充值方式",index = 14)
+    private String payType ="线下" ;
+
     public String getUseTypeStr() {
-        return OrderVoStatus.getUserTypeStr(useType);
+        return DictUtil.toStringUseType(useType);
 
     }
 }

+ 2 - 1
src/main/java/com/fdkankan/manage/entity/AuthorizeInstall.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fdkankan.manage.common.DictUtil;
 import com.fdkankan.manage.vo.response.OrderVoStatus;
 import lombok.Getter;
 import lombok.Setter;
@@ -107,7 +108,7 @@ public class AuthorizeInstall implements Serializable {
     private String useTypeStr;
 
     public String getUseTypeStr() {
-        return OrderVoStatus.getUserTypeStr(useType);
+        return DictUtil.toStringUseType(useType);
 
     }
 }

+ 2 - 1
src/main/java/com/fdkankan/manage/entity/AuthorizeModeling.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
 import java.io.Serializable;
 import java.util.Date;
 
+import com.fdkankan.manage.common.DictUtil;
 import com.fdkankan.manage.vo.response.OrderVoStatus;
 import lombok.Getter;
 import lombok.Setter;
@@ -113,7 +114,7 @@ public class AuthorizeModeling implements Serializable {
     private String useTypeStr;
 
     public String getUseTypeStr() {
-        return OrderVoStatus.getUserTypeStr(useType);
+        return DictUtil.toStringUseType(useType);
 
     }
 }

+ 5 - 0
src/main/java/com/fdkankan/manage/service/IAuthorizeCameraService.java

@@ -4,6 +4,9 @@ import com.fdkankan.manage.entity.AuthorizeCamera;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.vo.request.AuthorizeParam;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * <p>
  *  服务类
@@ -21,4 +24,6 @@ public interface IAuthorizeCameraService extends IService<AuthorizeCamera> {
     Object detail(Integer id);
 
     Object updateSnCode(Integer detailId, String snCode);
+
+    void export(HttpServletRequest req, HttpServletResponse resp);
 }

+ 43 - 1
src/main/java/com/fdkankan/manage/service/impl/AuthorizeCameraServiceImpl.java

@@ -2,6 +2,8 @@ package com.fdkankan.manage.service.impl;
 import java.util.Date;
 
 import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.util.SecurityUtil;
@@ -14,8 +16,11 @@ import com.fdkankan.manage.mapper.IAuthorizeCameraMapper;
 import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.util.CameraUtils;
+import com.fdkankan.manage.util.DateUtils;
 import com.fdkankan.manage.util.ListUtils;
 import com.fdkankan.manage.vo.request.AuthorizeParam;
+import com.fdkankan.manage.vo.request.OrderParam;
+import com.fdkankan.manage.vo.response.DownOrderVo;
 import com.fdkankan.reg.RegCodeUtil;
 import com.fdkankan.reg.dto.CamRegDto;
 import com.fdkankan.reg.dto.CamRegSDto;
@@ -26,6 +31,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -51,9 +58,14 @@ public class AuthorizeCameraServiceImpl extends ServiceImpl<IAuthorizeCameraMapp
     ICameraService cameraService;
     @Autowired
     ICameraDetailService cameraDetailService;
+    @Autowired
+    IExcelService excelService;
     @Override
     public Object pageList(AuthorizeParam param) {
 
+        return this.pageListByParam(param);
+    }
+    private  Page<AuthorizeCamera> pageListByParam(AuthorizeParam param){
         Page<AuthorizeCamera> page = getBaseMapper().pageList(new Page<>(param.getPageNum(), param.getPageSize()), param);
 
         Set<Long> sysIds = page.getRecords().stream().map(AuthorizeCamera::getSysUserId).collect(Collectors.toSet());
@@ -73,7 +85,7 @@ public class AuthorizeCameraServiceImpl extends ServiceImpl<IAuthorizeCameraMapp
             }
             record.setSnCodes(snCodes);
         }
-        return PageInfo.PageInfo(page);
+        return page;
     }
 
     @Override
@@ -141,6 +153,9 @@ public class AuthorizeCameraServiceImpl extends ServiceImpl<IAuthorizeCameraMapp
                 throw e;
             }
         }
+        if(param.getId() == null){
+            param.setOrderSn(DateUtils.getOrderSn());
+        }
         this.saveOrUpdate(param);
         for (AuthorizeCameraDetail detail : detailHashMap.values()) {
             detail.setAuthorizeCameraId(param.getId());
@@ -204,4 +219,31 @@ public class AuthorizeCameraServiceImpl extends ServiceImpl<IAuthorizeCameraMapp
             throw new BusinessException(ResultCode.GET_MACHINE_CODE_ERROR);
         }
     }
+
+    @Override
+    public void export(HttpServletRequest req, HttpServletResponse resp) {
+        AuthorizeParam orderParam = CacheUtil.authorizeParam;
+        orderParam.setPageNum(1);
+        orderParam.setPageSize(5000);
+        Page<AuthorizeCamera> page = this.pageListByParam(orderParam);
+
+        ExcelWriter excelWriter = null;
+        try {
+            excelWriter = EasyExcel.write(resp.getOutputStream(),AuthorizeCamera.class).build();
+            excelService.commonExport(req,resp,"相机授权订单",page.getRecords(),excelWriter);
+            while (page.hasNext()){
+                orderParam.setPageNum(orderParam.getPageNum()+1);
+                page = this.pageListByParam(orderParam);
+                if(page.getRecords().size() >0){
+                    excelService.commonExport(req,resp,"下载订单",page.getRecords(),excelWriter);
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(excelWriter !=null){
+                excelWriter.finish();
+            }
+        }
+    }
 }

+ 4 - 0
src/main/java/com/fdkankan/manage/vo/request/AuthorizeParam.java

@@ -33,4 +33,8 @@ public class AuthorizeParam extends RequestBase{
 
     private String companyName;
     private String snCode;
+
+    private String orderSn;
+
+    private String listType;
 }

+ 22 - 0
src/main/java/com/fdkankan/manage/vo/request/RequestBase.java

@@ -1,8 +1,10 @@
 package com.fdkankan.manage.vo.request;
 
+import com.fdkankan.manage.util.DateUtils;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 @Data
 public class RequestBase implements Serializable {
@@ -20,4 +22,24 @@ public class RequestBase implements Serializable {
      * ASC-升序
      */
     private String sortBy = "DESC";
+
+
+    private List<String> timeList;
+
+    private String startTime;
+    private String endTime;
+
+    public String getStartTime() {
+        if(timeList != null && timeList.size() >1){
+            return DateUtils.getStartTime(timeList.get(0));
+        }
+        return DateUtils.getStartTime(startTime);
+    }
+
+    public String getEndTime() {
+        if(timeList != null && timeList.size() >1){
+            return DateUtils.getEndTime(timeList.get(1));
+        }
+        return DateUtils.getEndTime(endTime);
+    }
 }

+ 3 - 9
src/main/java/com/fdkankan/manage/vo/response/DownOrderVo.java

@@ -2,6 +2,7 @@ package com.fdkankan.manage.vo.response;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.fdkankan.manage.common.DictUtil;
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
 
@@ -131,18 +132,11 @@ public class DownOrderVo {
     }
 
     public String getCustomerTypeStr() {
-        if(customerType == null){
-            return "";
-        }
-        switch (customerType){
-            case 0 : return "直销";
-            case 1 : return "经销";
-            default: return "";
-        }
+       return DictUtil.toStringCustomerType(customerType);
     }
 
     public String getUseTypeStr() {
-        return OrderVoStatus.getUserTypeStr(useType);
+        return DictUtil.toStringUseType(useType);
 
     }
 

+ 3 - 9
src/main/java/com/fdkankan/manage/vo/response/IncrementOrderVo.java

@@ -3,6 +3,7 @@ package com.fdkankan.manage.vo.response;
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fdkankan.manage.common.DictUtil;
 import com.fdkankan.manage.util.DateUtils;
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
@@ -139,18 +140,11 @@ public class IncrementOrderVo {
 
 
     public String getCustomerTypeStr() {
-        if(customerType == null){
-            return "";
-        }
-        switch (customerType){
-            case 0 : return "直销";
-            case 1 : return "经销";
-            default: return "";
-        }
+        return DictUtil.toStringCustomerType(customerType);
     }
 
     public String getUseTypeStr() {
-        return OrderVoStatus.getUserTypeStr(useType);
+        return DictUtil.toStringUseType(useType);
     }
 
     public String getIncrementTime() {

+ 3 - 9
src/main/java/com/fdkankan/manage/vo/response/UserIncrementVo.java

@@ -3,6 +3,7 @@ package com.fdkankan.manage.vo.response;
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fdkankan.manage.common.DictUtil;
 import lombok.Data;
 
 @Data
@@ -49,18 +50,11 @@ public class UserIncrementVo {
 
 
     public String getUseTypeStr() {
-        return OrderVoStatus.getUserTypeStr(useType);
+        return DictUtil.toStringUseType(useType);
 
     }
 
     public String getCustomerTypeStr() {
-        if(customerType == null){
-            return "";
-        }
-        switch (customerType){
-            case 0 : return "直销";
-            case 1 : return "经销";
-            default: return "";
-        }
+        return DictUtil.toStringCustomerType(customerType);
     }
 }

+ 3 - 0
src/main/resources/mapper/manage/AuthorizeCameraMapper.xml

@@ -7,6 +7,9 @@
         select distinct c.* from t_authorize_camera c
             left join t_authorize_camera_detail d on c.id = d.authorize_camera_id
         where c.rec_status = 'A'
+        <if test="param.listType != null and param.listType !=''">
+            and c.order_sn is not null
+        </if>
         <if test="param.useType != null">
             and c.use_type = #{param.useType}
         </if>