lyhzzz 3 months ago
parent
commit
7b5b43ee4d

+ 13 - 5
src/main/java/com/fdkankan/agent/controller/AgentAuthorizeModelingController.java

@@ -9,12 +9,10 @@ import com.fdkankan.agent.exception.BusinessException;
 import com.fdkankan.agent.mapper.IAgentAuthorizeModelingMapper;
 import com.fdkankan.agent.mapper.IAgentAuthorizeModelingMapper;
 import com.fdkankan.agent.request.AuthorizeParam;
 import com.fdkankan.agent.request.AuthorizeParam;
 import com.fdkankan.agent.service.IAgentAuthorizeModelingService;
 import com.fdkankan.agent.service.IAgentAuthorizeModelingService;
+import com.fdkankan.agent.service.IExcelService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -31,6 +29,8 @@ public class AgentAuthorizeModelingController extends BaseController {
 
 
     @Autowired
     @Autowired
     IAgentAuthorizeModelingService authorizeModelingService;
     IAgentAuthorizeModelingService authorizeModelingService;
+    @Autowired
+    IExcelService excelService;
 
 
     @PostMapping("/list")
     @PostMapping("/list")
     public ResultData list(@RequestBody AuthorizeParam param){
     public ResultData list(@RequestBody AuthorizeParam param){
@@ -54,5 +54,13 @@ public class AgentAuthorizeModelingController extends BaseController {
         authorizeModelingService.removeById(param.getId());
         authorizeModelingService.removeById(param.getId());
         return ResultData.ok();
         return ResultData.ok();
     }
     }
+
+    @PostMapping("/uploadAuthModelExcel")
+    public ResultData uploadAuthModelExcel(
+            @RequestParam(required = false) MultipartFile file){
+
+        Integer count = excelService.uploadAuthModelExcel(file,getAgent().getId());
+        return ResultData.ok(count);
+    }
 }
 }
 
 

+ 11 - 3
src/main/java/com/fdkankan/agent/controller/CameraController.java

@@ -94,9 +94,17 @@ public class CameraController extends BaseController {
     public void downInTemplate(@RequestParam(required = false,defaultValue = "0") Integer type,
     public void downInTemplate(@RequestParam(required = false,defaultValue = "0") Integer type,
                                HttpServletResponse res, HttpServletRequest req) throws IOException {
                                HttpServletResponse res, HttpServletRequest req) throws IOException {
         String fileName = "";
         String fileName = "";
-        switch (getLang()){
-            case "en" : fileName = "giveCamera_en.xlsx"; break;
-            default: fileName = "giveCamera.xlsx"; break;
+        if(type == 0){
+            switch (getLang()){
+                case "en" : fileName = "giveCamera_en.xlsx"; break;
+                default: fileName = "giveCamera.xlsx"; break;
+            }
+        }
+        if(type == 1){
+            switch (getLang()){
+                case "en" : fileName = "authModel.xlsx"; break;
+                default: fileName = "authModel.xlsx"; break;
+            }
         }
         }
         InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/"+fileName);
         InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/"+fileName);
         OutputStream os = res.getOutputStream();
         OutputStream os = res.getOutputStream();

+ 15 - 0
src/main/java/com/fdkankan/agent/request/AuthModelingParam.java

@@ -0,0 +1,15 @@
+package com.fdkankan.agent.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+public class AuthModelingParam {
+    private String authCode;
+    private Date startTime;
+    private Date endTime;
+    private Integer agentId;
+}

+ 5 - 0
src/main/java/com/fdkankan/agent/service/IAgentAuthorizeModelingService.java

@@ -2,8 +2,11 @@ package com.fdkankan.agent.service;
 
 
 import com.fdkankan.agent.entity.AgentAuthorizeModeling;
 import com.fdkankan.agent.entity.AgentAuthorizeModeling;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.agent.request.AuthModelingParam;
 import com.fdkankan.agent.request.AuthorizeParam;
 import com.fdkankan.agent.request.AuthorizeParam;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  服务类
  *  服务类
@@ -19,4 +22,6 @@ public interface IAgentAuthorizeModelingService extends IService<AgentAuthorizeM
     Object addOrUpdate(AgentAuthorizeModeling param);
     Object addOrUpdate(AgentAuthorizeModeling param);
 
 
     void checkExpTime();
     void checkExpTime();
+
+    void addByParam(List<AuthModelingParam> params);
 }
 }

+ 1 - 2
src/main/java/com/fdkankan/agent/service/IExcelService.java

@@ -20,8 +20,7 @@ public interface IExcelService {
 
 
     void commonExport(HttpServletRequest request, HttpServletResponse response, String name, List<?> result, ExcelWriter excelWriter) throws Exception ;
     void commonExport(HttpServletRequest request, HttpServletResponse response, String name, List<?> result, ExcelWriter excelWriter) throws Exception ;
 
 
-    void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,Class<?> clazz) throws Exception;
-
     Integer uploadExcel(MultipartFile file,Integer agentId, Integer subAgentId);
     Integer uploadExcel(MultipartFile file,Integer agentId, Integer subAgentId);
 
 
+    Integer uploadAuthModelExcel(MultipartFile file, Integer id);
 }
 }

+ 37 - 6
src/main/java/com/fdkankan/agent/service/impl/AgentAuthorizeModelingServiceImpl.java

@@ -1,30 +1,28 @@
 package com.fdkankan.agent.service.impl;
 package com.fdkankan.agent.service.impl;
 
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.agent.common.PageInfo;
 import com.fdkankan.agent.common.PageInfo;
 import com.fdkankan.agent.common.util.DateUtils;
 import com.fdkankan.agent.common.util.DateUtils;
 import com.fdkankan.agent.config.AgentConfig;
 import com.fdkankan.agent.config.AgentConfig;
 import com.fdkankan.agent.entity.AgentAuthorizeModeling;
 import com.fdkankan.agent.entity.AgentAuthorizeModeling;
 import com.fdkankan.agent.entity.AgentNew;
 import com.fdkankan.agent.entity.AgentNew;
-import com.fdkankan.agent.entity.IncrementUseType;
-import com.fdkankan.agent.entity.User;
 import com.fdkankan.agent.mapper.IAgentAuthorizeModelingMapper;
 import com.fdkankan.agent.mapper.IAgentAuthorizeModelingMapper;
+import com.fdkankan.agent.request.AuthModelingParam;
 import com.fdkankan.agent.request.AuthorizeParam;
 import com.fdkankan.agent.request.AuthorizeParam;
 import com.fdkankan.agent.service.*;
 import com.fdkankan.agent.service.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.common.util.DataUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.List;
-import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -119,4 +117,37 @@ public class AgentAuthorizeModelingServiceImpl extends ServiceImpl<IAgentAuthori
             mailTemplateService.sendAuthExpMail(agentNew.getUserName());
             mailTemplateService.sendAuthExpMail(agentNew.getUserName());
         }
         }
     }
     }
+
+    @Override
+    public void addByParam(List<AuthModelingParam> params) {
+        List<String> authCode = params.stream().map(AuthModelingParam::getAuthCode).collect(Collectors.toList());
+        HashMap<String,AgentAuthorizeModeling> map = this.getByAuthCode(authCode);
+
+        for (AuthModelingParam param : params) {
+            AgentAuthorizeModeling entity = map.get(param.getAuthCode());
+            if(entity == null){
+                entity = new AgentAuthorizeModeling();
+                entity.setCreateAgentId(param.getAgentId());
+            }
+            if(param.getStartTime() != null ){
+                entity.setAuthorizeStartTime(DateUtil.formatDate(param.getStartTime()));
+                entity.setAuthorizeEndTime(DateUtil.formatDate(param.getEndTime()));
+            }
+            this.saveOrUpdate(entity);
+
+        }
+
+    }
+
+    private   HashMap<String,AgentAuthorizeModeling> getByAuthCode(List<String> authCode) {
+        HashMap<String,AgentAuthorizeModeling> map = new HashMap<>();
+        if(authCode.isEmpty()){
+            return  new HashMap<>();
+        }
+        LambdaQueryWrapper<AgentAuthorizeModeling> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(AgentAuthorizeModeling::getAuthorizeKey,authCode);
+        List<AgentAuthorizeModeling> list = this.list(wrapper);
+        list.forEach( e-> map.put(e.getAuthorizeKey(),e));
+        return map;
+    }
 }
 }

+ 73 - 24
src/main/java/com/fdkankan/agent/service/impl/ExcelServiceImpl.java

@@ -1,5 +1,7 @@
 package com.fdkankan.agent.service.impl;
 package com.fdkankan.agent.service.impl;
 
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.metadata.WriteSheet;
@@ -8,14 +10,13 @@ import com.fdkankan.agent.entity.AgentNewCamera;
 import com.fdkankan.agent.entity.Camera;
 import com.fdkankan.agent.entity.Camera;
 import com.fdkankan.agent.entity.CameraDetail;
 import com.fdkankan.agent.entity.CameraDetail;
 import com.fdkankan.agent.exception.BusinessException;
 import com.fdkankan.agent.exception.BusinessException;
-import com.fdkankan.agent.service.IAgentNewCameraService;
-import com.fdkankan.agent.service.ICameraDetailService;
-import com.fdkankan.agent.service.ICameraService;
-import com.fdkankan.agent.service.IExcelService;
+import com.fdkankan.agent.request.AuthModelingParam;
+import com.fdkankan.agent.service.*;
 import com.fdkankan.agent.util.ExcelErrorUtil;
 import com.fdkankan.agent.util.ExcelErrorUtil;
 import com.fdkankan.agent.util.ExcelUtil;
 import com.fdkankan.agent.util.ExcelUtil;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.velocity.util.ArrayListWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
@@ -45,6 +46,8 @@ public class ExcelServiceImpl implements IExcelService {
     ICameraService cameraService;
     ICameraService cameraService;
     @Autowired
     @Autowired
     ICameraDetailService cameraDetailService;
     ICameraDetailService cameraDetailService;
+    @Autowired
+    IAgentAuthorizeModelingService agentAuthorizeModelingService;
 
 
     public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,ExcelWriter excelWriter) throws Exception {
     public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,ExcelWriter excelWriter) throws Exception {
         response.setContentType("application/vnd.ms-excel");
         response.setContentType("application/vnd.ms-excel");
@@ -56,26 +59,6 @@ public class ExcelServiceImpl implements IExcelService {
         excelWriter.write(result, writeSheet);
         excelWriter.write(result, writeSheet);
     }
     }
 
 
-    public void commonExport(HttpServletRequest request, HttpServletResponse response,String name,List<?> result,Class<?> clazz) throws Exception {
-        response.setContentType("application/vnd.ms-excel");
-        response.setCharacterEncoding("utf-8");
-        String fileName = name  + ".xlsx";
-        fileName = URLEncoder.encode(fileName, "UTF-8");
-        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
-        ExcelWriter excelWriter = null;
-        try {
-            excelWriter = EasyExcel.write(response.getOutputStream(), clazz).build();
-            WriteSheet writeSheet = EasyExcel.writerSheet(name).build();
-            excelWriter.write(result, writeSheet);
-        }catch (Exception e){
-            e.printStackTrace();
-        }finally {
-            if(excelWriter != null){
-                excelWriter.finish();
-            }
-        }
-    }
-
 
 
     @Override
     @Override
     public Integer uploadExcel(MultipartFile file, Integer agentId,Integer subAgentId) {
     public Integer uploadExcel(MultipartFile file, Integer agentId,Integer subAgentId) {
@@ -143,6 +126,72 @@ public class ExcelServiceImpl implements IExcelService {
 
 
     }
     }
 
 
+    @Override
+    public Integer uploadAuthModelExcel(MultipartFile file, Integer agentId) {
+        String originalFilename = file.getOriginalFilename();
+        assert originalFilename != null;
+        String fileType=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
+        if (!fileType.equalsIgnoreCase("xlsx")) {
+            throw new BusinessException(ResultCode.FILE_TYPE_ERROR);
+        }
+        List<HashMap<Integer, String>> excelRowList = new ArrayList<>();
+        try {
+            excelRowList = ExcelUtil.getExcelRowList(file);
+        }catch (Exception e){
+            log.info("uploadExcel-error:{}",e);
+            throw new BusinessException(ResultCode.TEMPLATE_TYPE_ERROR);
+        }
+        List<Integer> errorIndex = new ArrayList<>();
+        List<AuthModelingParam> params = new ArrayList();
+        Integer index = 0;
+        for (HashMap<Integer, String> map : excelRowList) {
+            index ++;
+            if(map.isEmpty()){
+                continue;
+            }
+            if(index <2){   //从第四行开始
+                continue;
+            }
+
+            String authSn = map.get(0);
+            String type = map.get(1);
+            String createDate = map.get(2);
+            String activated = map.get(3);
+            String activateDate = map.get(4);
+            String disabled = map.get(5);
+            String transfer = map.get(6);
+            String borrow = map.get(7);
+            String startDate = map.get(8);
+            String endDate = map.get(9);
+            String expirationDay = map.get(10);
+            if(StringUtils.isBlank(authSn) ){
+                log.info("数据错误:{}",map);
+                continue;
+            }
+            AuthModelingParam param = new AuthModelingParam();
+            if(StringUtils.isNotBlank(activateDate) && StringUtils.isNotBlank(expirationDay)){
+                try {
+                    DateTime parse = DateUtil.parse(activateDate, "yyyy/MM/dd HH:mm:ss");
+                    DateTime dateTime = DateUtil.offsetDay(parse, Integer.parseInt(expirationDay));
+                    param.setStartTime(parse);
+                    param.setEndTime(dateTime);
+                }catch (Exception e){
+                    log.info("解析激活时间错误:{},{}",activateDate,expirationDay);
+                }
+
+            }
+            param.setAuthCode(authSn);
+            param.setAgentId(agentId);
+            params.add(param);
+
+        }
+        if(!params.isEmpty()){
+            agentAuthorizeModelingService.addByParam(params);
+        }
+        this.toExcelError(errorIndex);
+        return 0;
+    }
+
     public void toExcelError(List<Integer> errorList) {
     public void toExcelError(List<Integer> errorList) {
         String resultIn = ExcelErrorUtil.getResultIn(errorList);
         String resultIn = ExcelErrorUtil.getResultIn(errorList);
         if(StringUtils.isNotBlank(resultIn)){
         if(StringUtils.isNotBlank(resultIn)){

BIN
src/main/resources/template/authModel.xlsx