Browse Source

承保信息接口修改

yanliming 5 years ago
parent
commit
bdb1f1e58e

+ 59 - 22
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsuranceApplicationController.java

@@ -12,6 +12,8 @@ import com.jpsoft.picc.modules.base.service.JobsService;
 import com.jpsoft.picc.modules.business.entity.ApplicationPolicy;
 import com.jpsoft.picc.modules.business.entity.InsurancePolicy;
 import com.jpsoft.picc.modules.business.service.ApplicationPolicyService;
+import com.jpsoft.picc.modules.business.service.InsurancePolicyMemberService;
+import com.jpsoft.picc.modules.business.service.InsurancePolicyService;
 import com.jpsoft.picc.modules.common.utils.PojoUtils;
 import com.jpsoft.picc.modules.common.dto.Sort;
 import com.jpsoft.picc.modules.common.dto.MessageResult;
@@ -22,12 +24,15 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
+import org.joda.time.DateTime;
+import org.joda.time.Interval;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -55,6 +60,12 @@ public class InsuranceApplicationController {
     @Autowired
     private ApplicationPolicyService applicationPolicyService;
 
+    @Autowired
+    private InsurancePolicyService insurancePolicyService;
+
+    @Autowired
+    private InsurancePolicyMemberService insurancePolicyMemberService;
+
     @ApiOperation(value="创建空记录")
     @GetMapping("create")
     public MessageResult<InsuranceApplication> create(){
@@ -337,17 +348,25 @@ public class InsuranceApplicationController {
     @ApiOperation(value="获取承保信息")
     @RequestMapping(value = "acceptDetail",method = RequestMethod.POST)
     @ApiImplicitParams({
-            @ApiImplicitParam(name="definitionId",value = "险种ID",required = true,paramType = "query")
+            @ApiImplicitParam(name="policyId",value = "每月投保单ID",required = true,paramType = "query")
     })
-    public MessageResult<Map> acceptDetail(String definitionId, @RequestAttribute String subject){
-
-        //当前用户ID
-        System.out.println(subject);
+    public MessageResult<Map> acceptDetail(String policyId){
 
         MessageResult<Map> msgResult = new MessageResult<>();
 
         Map<String,Object> map = new HashMap<String,Object>();
 
+        //投保单
+        InsuranceApplication insuranceApplication = null;
+
+        List<InsuranceApplication> appList = applicationPolicyService.findApplicationByPolicyId(policyId);
+
+        if(appList.size()>0){
+            insuranceApplication = appList.get(0);
+        }
+
+        String definitionId = insuranceApplication.getDefinitionId();
+
         InsuranceDefinition insuranceDefinition = insuranceDefinitionService.get(definitionId);
 
         map.put("id",insuranceDefinition.getId());
@@ -368,39 +387,57 @@ public class InsuranceApplicationController {
 
         map.put("insuranceDefinitionLimitList",mapList);
 
-        List<Jobs> jobsList = jobsService.list();
+        List<InsuranceJobs> InsuranceJobsList = findByDefinitionId(insuranceApplication.getDefinitionId());
 
         List<Map<String,Object>> mapList1 = new ArrayList<Map<String,Object>>();
 
-        for (Jobs jobs:jobsList) {
-            Map<String,Object> map1 = new HashMap<String,Object>();
-            String jobId = jobs.getId();
-            map1.put("id",jobId);
-            map1.put("name",jobs.getName());
-            map1.put("content",jobs.getContent());
-
-            List<InsuranceJobs> insuranceJobsList = insuranceJobsService.findByDefinitionIdAndJobId(definitionId,jobId);
+        DateTime endTime = new DateTime(insuranceApplication.getEndTime());
 
-            List<Map<String,Object>> mapList2 = new ArrayList<Map<String,Object>>();
+        DateTime startTime = new DateTime(insuranceApplication.getStartTime());
 
-            for (InsuranceJobs insuranceJobs:insuranceJobsList) {
-                Map<String,Object> map2 = new HashMap<String,Object>();
-                map2.put("id",insuranceJobs.getId());
-                map2.put("charges",insuranceJobs.getCharges());
+        Interval interval = new Interval(startTime, endTime);
 
-                mapList2.add(map2);
-            }
+        //投保总月份
+        int months = interval.toPeriod().getMonths();
 
-            map1.put("insuranceJobsList",mapList2);
+        BigDecimal totalAmount = new BigDecimal(0);
 
+        for (InsuranceJobs insuranceJobs:InsuranceJobsList) {
+            Map<String,Object> map1 = new HashMap<String,Object>();
+            String jobId = insuranceJobs.getJobsId();
+            map1.put("id",jobId);
+            map1.put("name",insuranceJobs.getJobs().getName());
+            map1.put("content",insuranceJobs.getJobs().getContent());
+            map1.put("charges",insuranceJobs.getCharges());
+            map1.put("chargesY",insuranceJobs.getCharges().multiply(new BigDecimal(12)));
+            long memberCount = insurancePolicyMemberService.countByPolicyIdAndJobsId(policyId,insuranceJobs.getJobsId());
+            long number = Long.valueOf(memberCount).intValue();
+            map1.put("number",number);
+            BigDecimal money = insuranceJobs.getCharges().multiply(new BigDecimal(months)).multiply(new BigDecimal(number));
+            map1.put("money",money);
+
+            totalAmount = totalAmount.add(money);
             mapList1.add(map1);
         }
 
+        map.put("totalAmount",totalAmount);
+
         map.put("jobsList",mapList1);
 
         msgResult.setResult(true);
         msgResult.setData(map);
 
         return msgResult;
+
+    }
+
+    private List<InsuranceJobs> findByDefinitionId(String definitionId){
+        Map<String,Object> searchParams = new HashMap<>();
+        searchParams.put("definitionId",definitionId);
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("create_time","asc"));
+        Page<InsuranceJobs> insuranceJobsPage = insuranceJobsService.pageSearch(searchParams,1,100,sortList);
+
+        return insuranceJobsPage.getResult();
     }
 }