Explorar el Código

1.PDF文件暂可无需登录下载。
2.修改企业端参保历史记录增加险种名称显示。

tomatozq hace 5 años
padre
commit
a4c27a0322

+ 2 - 1
picc-admin-server/src/main/java/com/jpsoft/picc/config/SwaggerConfig.java

@@ -1,5 +1,6 @@
 package com.jpsoft.picc.config;
 
+import io.swagger.annotations.Api;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.bind.annotation.RestController;
@@ -23,7 +24,7 @@ public class SwaggerConfig {
         return new Docket(DocumentationType.SWAGGER_2)
                 .apiInfo(apiInfo())
                 .select()
-                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
+                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                 .paths(PathSelectors.any())
                 .build()
                 //添加登录认证

+ 1 - 7
picc-admin-server/src/main/java/com/jpsoft/picc/config/WebMvcConfig.java

@@ -49,12 +49,6 @@ public class WebMvcConfig implements WebMvcConfigurer {
 				"/webjars/**",
 				"/swagger-ui.html",
 				"/v2/**",
-				"/mobileApi/**")
-				.excludePathPatterns("/wxPay/webPay")
-				.excludePathPatterns("/aliPay/tradePrecreatePay")
-				.excludePathPatterns("/aliPay/payNotify")
-				.excludePathPatterns("/wxPay/payNotify");
-
-
+				"/pub/**");
 	}
 }

+ 6 - 56
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.java

@@ -1,5 +1,6 @@
 package com.jpsoft.picc.modules.business.controller;
 
+import cn.hutool.core.io.FileUtil;
 import com.github.pagehelper.Page;
 import com.jpsoft.picc.modules.base.entity.InsuranceAgent;
 import com.jpsoft.picc.modules.base.entity.InsuranceDefinitionLimit;
@@ -22,9 +23,14 @@ import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.File;
 import java.util.*;
 
 @RestController
@@ -33,12 +39,6 @@ import java.util.*;
 public class InsurancePolicyController {
     private Logger logger = LoggerFactory.getLogger(getClass());
 
-    /*@Autowired
-    private ItextPDFUtil itextPDFUtil;*/
-
-    @Autowired
-    private PdfConfig pdfConfig;
-
     @Autowired
     private InsurancePolicyService insurancePolicyService;
 
@@ -60,8 +60,6 @@ public class InsurancePolicyController {
     @Autowired
     private InsuranceDefinitionLimitService insuranceDefinitionLimitService;
 
-
-
     @ApiOperation(value="创建空记录")
     @GetMapping("create")
     public MessageResult<InsurancePolicy> create(){
@@ -549,54 +547,6 @@ public class InsurancePolicyController {
         return msgResult;
     }
 
-
-    @ApiOperation(value="pdf文档生成与下载")
-    @RequestMapping(value = "downloadApplicationData",method = RequestMethod.POST)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name="applicationId",value = "投保单ID",required = true,paramType = "query"),
-            @ApiImplicitParam(name="policyId",value = "每月投保单ID",required = true,paramType = "query")
-
-    })
-    public MessageResult<Integer> downloadApplicationData(String applicationId,String policyId){
-
-        MessageResult<Integer> msgResult = new MessageResult<>();
-        String logoUrl = pdfConfig.getLogoUrl();
-        String downloadFilePath = pdfConfig.getDownloadFilePath();
-
-        try{
-        InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
-        List<InsuranceDefinitionLimit> insuranceDefinitionLimitList = insuranceDefinitionLimitService.findByDefinitionId(insuranceApplication.getDefinitionId());
-
-        List<Map<String,Object>> mapList = new ArrayList<Map<String,Object>>();
-
-        for(InsuranceDefinitionLimit  insuranceDefinitionLimit:insuranceDefinitionLimitList){
-            Map<String,Object> map1 = new HashMap<String,Object>();
-            map1.put("id",insuranceDefinitionLimit.getId());
-            map1.put("name",insuranceDefinitionLimit.getName());
-            map1.put("limit",insuranceDefinitionLimit.getLimit());
-            map1.put("unit",insuranceDefinitionLimit.getUnit());
-            mapList.add(map1);
-        }
-
-        List<InsurancePolicyMember> list = insurancePolicyMemberService.findByPolicyId(policyId);
-
-        ItextPDFUtil.createPdf(insuranceApplication,mapList,list,logoUrl,downloadFilePath);
-        msgResult.setMessage("pdf文档生成成功");
-        msgResult.setResult(true);
-
-        }catch (Exception ex){
-            logger.error(ex.getMessage(),ex);
-            msgResult.setMessage(ex.getMessage());
-            msgResult.setResult(false);
-        }
-
-        return msgResult;
-    }
-
-
-
-
-
     private Integer approval(String applicationId,String id,String processStatus,String opinion,String status,String subject){
 
         int affectCount = 0;

+ 103 - 0
picc-admin-server/src/main/java/com/jpsoft/picc/modules/pub/controller/PolicyPdfController.java

@@ -0,0 +1,103 @@
+package com.jpsoft.picc.modules.pub.controller;
+
+import cn.hutool.core.io.FileUtil;
+import com.jpsoft.picc.modules.base.entity.InsuranceDefinitionLimit;
+import com.jpsoft.picc.modules.base.service.InsuranceDefinitionLimitService;
+import com.jpsoft.picc.modules.business.entity.InsuranceApplication;
+import com.jpsoft.picc.modules.business.entity.InsurancePolicyMember;
+import com.jpsoft.picc.modules.business.service.InsuranceApplicationService;
+import com.jpsoft.picc.modules.business.service.InsurancePolicyMemberService;
+import com.jpsoft.picc.modules.common.config.PdfConfig;
+import com.jpsoft.picc.modules.common.utils.ItextPDFUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.joda.time.DateTime;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Api(description="投保单pdf下载")
+@Controller
+@RequestMapping(value = "/pub/policyPdf")
+@Slf4j
+public class PolicyPdfController {
+    @Autowired
+    private PdfConfig pdfConfig;
+
+    @Autowired
+    private InsuranceApplicationService insuranceApplicationService;
+
+    @Autowired
+    private InsuranceDefinitionLimitService insuranceDefinitionLimitService;
+
+    @Autowired
+    private InsurancePolicyMemberService insurancePolicyMemberService;
+
+    @ApiOperation(value="pdf文档生成与下载")
+    @RequestMapping(value = "download",method = RequestMethod.GET)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name="applicationId",value = "投保单ID",required = true,paramType = "query"),
+            @ApiImplicitParam(name="policyId",value = "每月投保单ID",required = true,paramType = "query")
+    })
+    public ResponseEntity download(String applicationId, String policyId){
+        String logoUrl = pdfConfig.getLogoUrl();
+        ResponseEntity entity = null;
+
+        try {
+            InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
+            List<InsuranceDefinitionLimit> insuranceDefinitionLimitList = insuranceDefinitionLimitService.findByDefinitionId(insuranceApplication.getDefinitionId());
+
+            List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
+
+            for (InsuranceDefinitionLimit insuranceDefinitionLimit : insuranceDefinitionLimitList) {
+                Map<String, Object> map1 = new HashMap<String, Object>();
+                map1.put("id", insuranceDefinitionLimit.getId());
+                map1.put("name", insuranceDefinitionLimit.getName());
+                map1.put("limit", insuranceDefinitionLimit.getLimit());
+                map1.put("unit", insuranceDefinitionLimit.getUnit());
+                mapList.add(map1);
+            }
+
+            List<InsurancePolicyMember> list = insurancePolicyMemberService.findByPolicyId(policyId);
+
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
+
+            //设置编码  为了解决中文名称乱码问题
+            String fileName = "投保单电子版.pdf";
+            String downloadFileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
+
+            //将编码加到http头信息中
+            headers.setContentDispositionFormData("attachment", downloadFileName);
+
+            String folder=System.getProperty("java.io.tmpdir");
+
+            String filePath = folder + File.separator + DateTime.now().toString("yyyyMMddHHmmssSSS") + ".pdf";
+
+            ItextPDFUtil.createPdf(insuranceApplication, mapList, list, logoUrl,filePath);
+
+            byte[] buffer = FileUtil.readBytes(filePath);
+
+            entity = new ResponseEntity<byte[]>(buffer, headers, HttpStatus.OK);
+        }
+        catch (Exception ex){
+            log.error(ex.getMessage(),ex);
+            entity = new ResponseEntity<String>(ex.getMessage(),HttpStatus.OK);
+        }
+
+        return entity;
+    }
+}

+ 4 - 1
picc-admin-server/src/main/resources/application-dev.yml

@@ -10,4 +10,7 @@ spring:
 
 logger:
   level: WARN
-  dir: D:\\Logs\\picc\\picc-admin-server\\
+  dir: D:\\Logs\\picc\\picc-admin-server\\
+
+pdf:
+  logoUrl: C:\\picc\\logo.png

+ 6 - 1
picc-common/src/main/java/com/jpsoft/picc/modules/business/entity/InsurancePolicy.java

@@ -6,6 +6,7 @@ import java.text.SimpleDateFormat;
 import java.math.BigDecimal;
 
 import com.jpsoft.picc.modules.common.constant.PolicyStatus;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.format.annotation.DateTimeFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
@@ -357,7 +358,11 @@ public class InsurancePolicy {
      */
     public String getStatusN() {
         String statusN = "";
-        if(status.equals("10")){
+
+        if(StringUtils.isEmpty(status)){
+            statusN = "";
+        }
+        else if(status.equals("10")){
             statusN = PolicyStatus.Draft.getText();
         }
         else if(status.equals("15")){

+ 1 - 1
picc-common/src/main/java/com/jpsoft/picc/modules/common/config/PdfConfig.java

@@ -13,5 +13,5 @@ import org.springframework.stereotype.Component;
 @Data
 public class PdfConfig {
     private String logoUrl;
-    private String downloadFilePath;
+//    private String downloadFilePath;
 }

+ 0 - 4
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/ItextPDFUtil.java

@@ -108,10 +108,6 @@ public class ItextPDFUtil {
      //   String filePath = "C:/Users/Administrator/Desktop/投保单.pdf";
         File file = new File(downloadFilePath);
 
-
-
-
-
         //创建文件
         Document document = new Document(PageSize.A4, 80, 80, 30, 20);
         //建立一个书写器

+ 3 - 2
picc-common/src/main/resources/mapper/business/ApplicationPolicy.xml

@@ -97,9 +97,10 @@
 		order by b.create_time asc
 	</select>
     <select id="findPolicyByApplicationId" resultMap="com.jpsoft.picc.modules.business.dao.InsurancePolicyDAO.InsurancePolicyMap">
-		SELECT b.* FROM business_application_policy a,business_insurance_policy b
+		SELECT b.*,c.name_ as definition_name FROM business_application_policy a
+		inner join business_insurance_policy b on a.policy_id = b.id_
+		left join base_insurance_definition c on b.definition_id = c.id_
 		where a.application_id=#{0}
-		and a.policy_id = b.id_
 		and b.del_flag=0
 		order by b.create_time asc
 	</select>