|
@@ -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();
|
|
|
}
|
|
|
}
|