|
@@ -37,6 +37,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Api(description="投保信息")
|
|
@@ -75,7 +76,7 @@ public class InsuranceApplicationController {
|
|
|
@ApiOperation(value="投保单列表")
|
|
|
@RequestMapping(value = "pageList",method = RequestMethod.POST)
|
|
|
@ApiImplicitParams({
|
|
|
- @ApiImplicitParam(name = "status",value = "状态:草稿10/待初审20/待复审30/待缴费40/待制单50/待出单60/已出单70/", required = true, paramType = "form",dataType = "String"),
|
|
|
+ @ApiImplicitParam(name = "status",value = "状态:草稿10/已退回15/待初审20/待复审30/待缴费40/待制单50/待出单60/已出单70/已过期100", required = true, paramType = "form",dataType = "String"),
|
|
|
@ApiImplicitParam(name = "definitionId",value = "险种编号", required = false, paramType = "form",dataType = "String"),
|
|
|
@ApiImplicitParam(name = "startTime",value = "险种编号", required = false, paramType = "form",dataType = "String"),
|
|
|
@ApiImplicitParam(name = "endTime",value = "险种编号", required = false, paramType = "form",dataType = "String"),
|
|
@@ -197,6 +198,8 @@ public class InsuranceApplicationController {
|
|
|
}
|
|
|
|
|
|
msgResult.setData(insuranceApplicationDTO);
|
|
|
+
|
|
|
+ msgResult.setResult(true);
|
|
|
}
|
|
|
catch(Exception ex){
|
|
|
logger.error(ex.getMessage(),ex);
|
|
@@ -208,6 +211,16 @@ public class InsuranceApplicationController {
|
|
|
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();
|
|
|
+ }
|
|
|
+
|
|
|
@ApiOperation(value="第三步,获取承保信息")
|
|
|
@RequestMapping(value = "acceptDetail",method = RequestMethod.GET)
|
|
|
@ApiImplicitParams({
|
|
@@ -229,18 +242,13 @@ public class InsuranceApplicationController {
|
|
|
//险种名称
|
|
|
acceptInsuranceDTO.setInsuranceDefName(insuranceDefinition.getName());
|
|
|
|
|
|
- Map<String,Object> searchParams = new HashMap<>();
|
|
|
- searchParams.put("definitionId",insuranceApplication.getDefinitionId());
|
|
|
- List<Sort> sortList = new ArrayList<>();
|
|
|
- sortList.add(new Sort("create_time","asc"));
|
|
|
-
|
|
|
//险种关联限额
|
|
|
List<InsuranceDefinitionLimit> insuranceDefinitionLimits = insuranceDefinitionLimitService.findByDefinitionId(insuranceApplication.getDefinitionId());
|
|
|
|
|
|
acceptInsuranceDTO.setInsuranceDefLimitList(insuranceDefinitionLimits);
|
|
|
|
|
|
//关联岗位
|
|
|
- Page<InsuranceJobs> insuranceJobsPage = insuranceJobsService.pageSearch(searchParams,1,100,sortList);
|
|
|
+ List<InsuranceJobs> InsuranceJobsList = findByDefinitionId(insuranceApplication.getDefinitionId());
|
|
|
|
|
|
DateTime endTime = new DateTime(insuranceApplication.getEndTime());
|
|
|
acceptInsuranceDTO.setEndTime(insuranceApplication.getEndTime());
|
|
@@ -252,13 +260,14 @@ public class InsuranceApplicationController {
|
|
|
|
|
|
//投保总月份
|
|
|
int months = interval.toPeriod().getMonths();
|
|
|
+
|
|
|
BigDecimal totalAmount = new BigDecimal(0);
|
|
|
int totalNumber = 0;
|
|
|
|
|
|
List<InsuranceJobsDTO> insuranceJobsList = new ArrayList<>();
|
|
|
|
|
|
//查询不同岗位,参保费用
|
|
|
- for(InsuranceJobs insuranceJobs : insuranceJobsPage.getResult()){
|
|
|
+ for(InsuranceJobs insuranceJobs : InsuranceJobsList){
|
|
|
Jobs jobs = jobsService.get(insuranceJobs.getJobsId());
|
|
|
|
|
|
InsuranceJobsDTO insuranceJobsDTO = new InsuranceJobsDTO();
|
|
@@ -285,23 +294,6 @@ public class InsuranceApplicationController {
|
|
|
acceptInsuranceDTO.setTotalAmount(totalAmount);
|
|
|
|
|
|
msgResult.setData(acceptInsuranceDTO);
|
|
|
-
|
|
|
- //更新投保单
|
|
|
- insuranceApplication.setInsuranceFee(totalAmount);
|
|
|
- insuranceApplication.setInsuredNumber(totalNumber);
|
|
|
- insuranceApplication.setUpdateTime(new Date());
|
|
|
- insuranceApplicationService.update(insuranceApplication);
|
|
|
-
|
|
|
- //更新每月投保单
|
|
|
- InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
-
|
|
|
- if (insurancePolicy!=null){
|
|
|
- insurancePolicy.setInsuranceFee(totalAmount);
|
|
|
- insurancePolicy.setNumber(totalNumber);
|
|
|
- insurancePolicy.setUpdateTime(new Date());
|
|
|
-
|
|
|
- insurancePolicyService.update(insurancePolicy);
|
|
|
- }
|
|
|
}
|
|
|
catch(Exception ex){
|
|
|
logger.error(ex.getMessage(),ex);
|
|
@@ -329,6 +321,33 @@ public class InsuranceApplicationController {
|
|
|
try {
|
|
|
InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
|
|
|
|
|
|
+ DateTime endTime = new DateTime(insuranceApplication.getEndTime());
|
|
|
+ DateTime startTime = new DateTime(insuranceApplication.getStartTime());
|
|
|
+
|
|
|
+ Interval interval = new Interval(startTime, endTime);
|
|
|
+
|
|
|
+ //投保总月份
|
|
|
+ int months = interval.toPeriod().getMonths();
|
|
|
+
|
|
|
+ BigDecimal totalAmount = new BigDecimal(0);
|
|
|
+ int totalNumber = 0;
|
|
|
+
|
|
|
+ List<InsuranceJobs> InsuranceJobsList = findByDefinitionId(insuranceApplication.getDefinitionId());
|
|
|
+
|
|
|
+ //查询不同岗位,参保费用
|
|
|
+ for(InsuranceJobs insuranceJobs : InsuranceJobsList){
|
|
|
+ long memberCount = insurancePolicyMemberService.countByPolicyIdAndJobsId(policyId,insuranceJobs.getJobsId());
|
|
|
+
|
|
|
+ BigDecimal amount = insuranceJobs.getCharges()
|
|
|
+ .multiply(new BigDecimal(months))
|
|
|
+ .multiply(new BigDecimal(memberCount));
|
|
|
+
|
|
|
+ totalAmount = totalAmount.add(amount);
|
|
|
+ totalNumber += memberCount;
|
|
|
+ }
|
|
|
+
|
|
|
+ insuranceApplication.setInsuranceFee(totalAmount);
|
|
|
+ insuranceApplication.setInsuredNumber(totalNumber);
|
|
|
insuranceApplication.setStatus(String.valueOf(PolicyStatus.PendingTrial.getValue()));
|
|
|
insuranceApplication.setUpdateBy(principal.getName());
|
|
|
insuranceApplication.setUpdateTime(new Date());
|
|
@@ -338,6 +357,13 @@ public class InsuranceApplicationController {
|
|
|
//更新每月投保单
|
|
|
InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
|
|
|
+ insurancePolicy.setInsuranceFee(totalAmount);
|
|
|
+ insurancePolicy.setNumber(totalNumber);
|
|
|
+ insurancePolicy.setNo(1); //首页
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
|
|
|
+ insurancePolicy.setEffectiveDate(sdf.format(insuranceApplication.getStartTime()));
|
|
|
+
|
|
|
insurancePolicy.setStartTime(insuranceApplication.getStartTime());
|
|
|
insurancePolicy.setEndTime(insuranceApplication.getEndTime());
|
|
|
insurancePolicy.setStatus(String.valueOf(PolicyStatus.PendingTrial.getValue()));
|