浏览代码

1.完成企业端附件下载列表。
2.完成企业端身份证打包下载。

tomatozq 5 年之前
父节点
当前提交
1007f03ac8

+ 99 - 5
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/AttachmentController.java

@@ -1,6 +1,12 @@
 package com.jpsoft.picc.modules.auth.controller;
 package com.jpsoft.picc.modules.auth.controller;
 
 
-import com.alibaba.druid.util.StringUtils;
+import com.jpsoft.picc.config.CasConfig;
+import com.jpsoft.picc.modules.base.entity.Company;
+import com.jpsoft.picc.modules.base.entity.CompanyMember;
+import com.jpsoft.picc.modules.base.service.CompanyMemberService;
+import com.jpsoft.picc.modules.base.service.CompanyService;
+import com.jpsoft.picc.modules.business.entity.InsurancePolicyMember;
+import com.jpsoft.picc.modules.business.service.InsurancePolicyMemberService;
 import com.jpsoft.picc.modules.common.config.OSSConfig;
 import com.jpsoft.picc.modules.common.config.OSSConfig;
 import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.common.utils.OSSUtil;
 import com.jpsoft.picc.modules.common.utils.OSSUtil;
@@ -9,22 +15,46 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.jasig.cas.client.authentication.AttributePrincipal;
+import org.omg.CORBA.Environment;
 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.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Api(description="附件管理")
 @Api(description="附件管理")
-@RestController
+@Controller
 @RequestMapping("/auth/attachment")
 @RequestMapping("/auth/attachment")
 @Slf4j
 @Slf4j
 public class AttachmentController {
 public class AttachmentController {
     @Autowired
     @Autowired
     private OSSConfig ossConfig;
     private OSSConfig ossConfig;
 
 
+    @Autowired
+    private CasConfig casConfig;
+
+    @Autowired
+    private CompanyService companyService;
+
+    @Autowired
+    private InsurancePolicyMemberService insurancePolicyMemberService;
+
+    @Autowired
+    private CompanyMemberService companyMemberService;
+
     @PostMapping("upload")
     @PostMapping("upload")
     @ApiOperation(value="附件上传")
     @ApiOperation(value="附件上传")
+    @ResponseBody
     @ApiImplicitParams({
     @ApiImplicitParams({
             @ApiImplicitParam(name = "fileName",value = "文件名", required = false, paramType = "form"),
             @ApiImplicitParam(name = "fileName",value = "文件名", required = false, paramType = "form"),
             @ApiImplicitParam(name = "subFolder",value = "子目录名(如/test)", required = false, paramType = "form"),
             @ApiImplicitParam(name = "subFolder",value = "子目录名(如/test)", required = false, paramType = "form"),
@@ -52,4 +82,68 @@ public class AttachmentController {
 
 
         return messageResult;
         return messageResult;
     }
     }
+
+    @ApiOperation(value="身份证附件打包下载")
+    @RequestMapping(value = "downloadIdCardZip",method = RequestMethod.GET)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name="policyId",value = "每月投保单ID",required = true,paramType = "query")
+    })
+    public void downloadIdCardZip(String policyId, HttpServletRequest request,HttpServletResponse response){
+        try {
+            Long lastDownloadIdCardTime = (Long)request.getSession().getAttribute("lastDownloadIdCardTime");
+
+            response.setCharacterEncoding("utf-8");
+
+            if (lastDownloadIdCardTime!=null && (System.currentTimeMillis() - lastDownloadIdCardTime)<5000){
+                response.setContentType("text/html; charset=UTF-8");
+                response.getWriter().println("下载过于频繁,请稍后再试!");
+                return;
+            }
+
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+
+            //设置编码  为了解决中文名称乱码问题
+            String fileName = "身份证";
+            String zipFileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
+            response.setHeader("Content-Disposition", "attachment;fileName=" + zipFileName + ".zip");
+
+            List<InsurancePolicyMember> policyMemberList = insurancePolicyMemberService.findByPolicyId(policyId);
+
+            List<Map<String,String>> fileList = new ArrayList<>();
+
+            for (InsurancePolicyMember policyMember : policyMemberList) {
+                CompanyMember member = companyMemberService.get(policyMember.getMemberId());
+
+                String urls = member.getCardFiles();
+
+                if (StringUtils.isNotEmpty(urls)){
+                    String[] arr = urls.split("\\|");
+
+                    for(int i=0;i<arr.length;i++) {
+                        String url = arr[i];
+
+                        String ext = url.substring(url.lastIndexOf("."));
+
+                        Map<String,String> map = new HashMap<>();
+                        map.put("fileUrl",url + "?x-oss-process=image/resize,l_1024,limit_1");
+                        map.put("fileName", member.getCardNo() + "-" + (i+1) + ext);
+
+                        fileList.add(map);
+                    }
+                }
+            }
+
+            OutputStream output = response.getOutputStream();
+
+            OSSUtil.batchDownload(fileList,output);
+
+            output.flush();
+            output.close();
+
+            request.getSession().setAttribute("lastDownloadIdCardTime",System.currentTimeMillis());
+        }
+        catch (Exception ex){
+            log.error(ex.getMessage(),ex);
+        }
+    }
 }
 }

+ 37 - 18
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsurancePolicyController.java

@@ -1,6 +1,7 @@
 package com.jpsoft.picc.modules.auth.controller;
 package com.jpsoft.picc.modules.auth.controller;
 
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.Page;
+import com.jpsoft.picc.config.CasConfig;
 import com.jpsoft.picc.modules.auth.dto.AcceptInsuranceDTO;
 import com.jpsoft.picc.modules.auth.dto.AcceptInsuranceDTO;
 import com.jpsoft.picc.modules.auth.dto.InsuranceApplicationDTO;
 import com.jpsoft.picc.modules.auth.dto.InsuranceApplicationDTO;
 import com.jpsoft.picc.modules.auth.dto.InsuranceJobsDTO;
 import com.jpsoft.picc.modules.auth.dto.InsuranceJobsDTO;
@@ -28,6 +29,7 @@ import org.joda.time.Interval;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
@@ -79,30 +81,47 @@ public class InsurancePolicyController {
     @Autowired
     @Autowired
     private UserService userService;
     private UserService userService;
 
 
-    @ApiOperation(value="查看附件")
-    @RequestMapping(value = "attachmentList",method = RequestMethod.POST)
+    @ResponseBody
+    @ApiOperation(value="附件列表")
+    @RequestMapping(value = "attachmentList",method = RequestMethod.GET)
     @ApiImplicitParams({
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "id",value = "编号", required = true, paramType = "form",dataType = "String")
+            @ApiImplicitParam(name = "policyId",value = "投保单编号", required = true, paramType = "query"),
     })
     })
-    public MessageResult<String> attachmentList(@RequestParam(value="id",defaultValue="") String id){
-        MessageResult<String> msgResult = new MessageResult<>();
+    public MessageResult<List> attachmentList(String policyId,HttpServletRequest request){
+        MessageResult<List> msgResult = new MessageResult<>();
 
 
         try {
         try {
-            InsurancePolicy insurancePolicy = insurancePolicyService.get(id);
-
-            if (insurancePolicy != null) {
-                msgResult.setResult(true);
-                msgResult.setData(insurancePolicy.getInsurancePolicyFile());
-            } else {
-                msgResult.setResult(false);
-                msgResult.setMessage("数据库不存在该记录!");
-            }
-        }
-        catch(Exception ex){
-            log.error(ex.getMessage(),ex);
+            AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
+            String path = request.getContextPath();
+            String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 
 
-            msgResult.setResult(false);
+            Company company = companyService.findByCreateBy(principal.getName());
+
+            List<Map> mapList = new ArrayList<>();
+
+            Map<String,String> map1 = new HashMap<>();
+
+            String url = company.getUsccFiles();
+
+            map1.put("type","营业执照");
+            map1.put("title", "营业执照" + url.substring(url.lastIndexOf(".")));
+            map1.put("url", url);
+
+            mapList.add(map1);
+
+            Map<String,String> map2 = new HashMap<>();
+            map2.put("type","身份证");
+            map2.put("title","身份证.zip");
+            map2.put("url",basePath + "auth/attachment/downloadIdCardZip?policyId=" + policyId);
+
+            mapList.add(map2);
+
+            msgResult.setData(mapList);
+            msgResult.setResult(true);
+        }
+        catch (Exception ex){
             msgResult.setMessage(ex.getMessage());
             msgResult.setMessage(ex.getMessage());
+            msgResult.setResult(false);
         }
         }
 
 
         return msgResult;
         return msgResult;