|
@@ -1,20 +1,21 @@
|
|
|
package com.jpsoft.picc.modules.auth.controller;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUnit;
|
|
|
import com.github.pagehelper.Page;
|
|
|
+import com.jpsoft.picc.modules.auth.dto.AcceptInsuranceDTO;
|
|
|
import com.jpsoft.picc.modules.auth.dto.InsuranceApplicationDTO;
|
|
|
import com.jpsoft.picc.modules.auth.dto.InsuranceJobsDTO;
|
|
|
-import com.jpsoft.picc.modules.base.entity.Company;
|
|
|
-import com.jpsoft.picc.modules.base.entity.InsuranceDefinition;
|
|
|
-import com.jpsoft.picc.modules.base.entity.InsuranceDefinitionLimit;
|
|
|
-import com.jpsoft.picc.modules.base.entity.InsuranceJobs;
|
|
|
-import com.jpsoft.picc.modules.base.service.CompanyService;
|
|
|
-import com.jpsoft.picc.modules.base.service.InsuranceDefinitionLimitService;
|
|
|
-import com.jpsoft.picc.modules.base.service.InsuranceDefinitionService;
|
|
|
-import com.jpsoft.picc.modules.base.service.InsuranceJobsService;
|
|
|
+import com.jpsoft.picc.modules.base.entity.*;
|
|
|
+import com.jpsoft.picc.modules.base.service.*;
|
|
|
+import com.jpsoft.picc.modules.business.dao.InsurancePolicyDAO;
|
|
|
+import com.jpsoft.picc.modules.business.entity.ApplicationPolicy;
|
|
|
import com.jpsoft.picc.modules.business.entity.InsuranceApplication;
|
|
|
+import com.jpsoft.picc.modules.business.entity.InsurancePolicy;
|
|
|
import com.jpsoft.picc.modules.business.entity.InsurancePolicyMember;
|
|
|
+import com.jpsoft.picc.modules.business.service.ApplicationPolicyService;
|
|
|
import com.jpsoft.picc.modules.business.service.InsuranceApplicationService;
|
|
|
import com.jpsoft.picc.modules.business.service.InsurancePolicyMemberService;
|
|
|
+import com.jpsoft.picc.modules.business.service.InsurancePolicyService;
|
|
|
import com.jpsoft.picc.modules.common.constant.PolicyStatus;
|
|
|
import com.jpsoft.picc.modules.common.dto.MessageResult;
|
|
|
import com.jpsoft.picc.modules.common.dto.Sort;
|
|
@@ -25,9 +26,13 @@ import io.swagger.annotations.ApiImplicitParams;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.jasig.cas.client.authentication.AttributePrincipal;
|
|
|
+import org.joda.time.DateTime;
|
|
|
+import org.joda.time.Interval;
|
|
|
+import org.joda.time.Period;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.format.annotation.DateTimeFormat;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -43,6 +48,9 @@ public class InsuranceApplicationController {
|
|
|
@Autowired
|
|
|
private InsuranceApplicationService insuranceApplicationService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private InsurancePolicyService insurancePolicyService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private InsuranceDefinitionService insuranceDefinitionService;
|
|
|
|
|
@@ -58,13 +66,24 @@ public class InsuranceApplicationController {
|
|
|
@Autowired
|
|
|
private InsurancePolicyMemberService insurancePolicyMemberService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private JobsService jobsService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApplicationPolicyService applicationPolicyService;
|
|
|
+
|
|
|
@ApiOperation(value="投保单列表")
|
|
|
@RequestMapping(value = "pageList",method = RequestMethod.POST)
|
|
|
@ApiImplicitParams({
|
|
|
-// @ApiImplicitParam(name = "status",value = "状态:草稿10/待初审20/待复审30/待缴费40/待制单50/待出单60/已出单70/已过期100", required = true, paramType = "form",dataType = "String")
|
|
|
+ @ApiImplicitParam(name = "status",value = "状态:草稿10/待初审20/待复审30/待缴费40/待制单50/待出单60/已出单70/", 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"),
|
|
|
})
|
|
|
public MessageResult<Map> pageList(
|
|
|
-// @RequestParam(value="status",defaultValue="") String status,
|
|
|
+ String status,String definitionId,
|
|
|
+ @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
|
|
|
+ @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime,
|
|
|
@RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
|
|
|
@RequestParam(value="pageSize",defaultValue="20") int pageSize,
|
|
|
HttpServletRequest request){
|
|
@@ -76,12 +95,28 @@ public class InsuranceApplicationController {
|
|
|
Map<String,Object> searchParams = new HashMap<>();
|
|
|
|
|
|
List<Sort> sortList = new ArrayList<>();
|
|
|
- sortList.add(new Sort("id_","asc"));
|
|
|
+ sortList.add(new Sort("create_time","desc"));
|
|
|
|
|
|
if (StringUtils.isNotEmpty(company.getId())) {
|
|
|
searchParams.put("companyId",company.getId());
|
|
|
}
|
|
|
|
|
|
+ if (StringUtils.isNotEmpty(definitionId)) {
|
|
|
+ searchParams.put("definitionId",definitionId);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(status)) {
|
|
|
+ searchParams.put("status",status);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (startTime!=null) {
|
|
|
+ searchParams.put("startTime",startTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (endTime!=null) {
|
|
|
+ searchParams.put("endTime",endTime);
|
|
|
+ }
|
|
|
+
|
|
|
Page<InsuranceApplication> page = insuranceApplicationService.pageSearch(searchParams,pageIndex,pageSize,sortList);
|
|
|
|
|
|
msgResult.setResult(true);
|
|
@@ -90,12 +125,12 @@ public class InsuranceApplicationController {
|
|
|
return msgResult;
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value="获取投保信息")
|
|
|
- @RequestMapping(value = "insureDetail",method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value="第一步,获取投保信息,注意将applicationId,policyId,companyId保存到前台,便于关联")
|
|
|
+ @RequestMapping(value = "insureDetail",method = RequestMethod.GET)
|
|
|
@ApiImplicitParams({
|
|
|
- @ApiImplicitParam(name = "id",value = "编号", required = true, paramType = "form",dataType = "String")
|
|
|
+ @ApiImplicitParam(name = "applicationId",value = "投保编号", required = false, paramType = "query",dataType = "String")
|
|
|
})
|
|
|
- public MessageResult<InsuranceApplicationDTO> insureDetail(@RequestParam(value="id",defaultValue="") String id,
|
|
|
+ public MessageResult<InsuranceApplicationDTO> insureDetail(@RequestParam(value="applicationId",defaultValue="") String applicationId,
|
|
|
HttpServletRequest request){
|
|
|
MessageResult<InsuranceApplicationDTO> msgResult = new MessageResult<>();
|
|
|
|
|
@@ -112,16 +147,27 @@ public class InsuranceApplicationController {
|
|
|
InsuranceApplicationDTO insuranceApplicationDTO = new InsuranceApplicationDTO();
|
|
|
|
|
|
try {
|
|
|
- InsuranceApplication insuranceApplication = insuranceApplicationService.get(id);
|
|
|
+
|
|
|
+ InsuranceApplication insuranceApplication = null;
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(applicationId)) {
|
|
|
+ insuranceApplication = insuranceApplicationService.get(applicationId);
|
|
|
+ }
|
|
|
|
|
|
if (insuranceApplication != null) {
|
|
|
- insuranceApplication = insuranceApplicationService.get(id);
|
|
|
PojoUtils.map(insuranceApplication, insuranceApplicationDTO);
|
|
|
+ insuranceApplicationDTO.setApplicationId(insuranceApplication.getId());
|
|
|
+
|
|
|
+ DateTime endTime = new DateTime(insuranceApplication.getEndTime());
|
|
|
+ DateTime startTime = new DateTime(insuranceApplication.getStartTime());
|
|
|
+ Interval interval = new Interval(startTime, endTime);
|
|
|
+
|
|
|
+ insuranceApplicationDTO.setMonthNumber(interval.toPeriod().getMonths());
|
|
|
} else {
|
|
|
+ //先生成主键,便于参保人员关联
|
|
|
+ insuranceApplicationDTO.setApplicationId(UUID.randomUUID().toString());
|
|
|
+
|
|
|
insuranceApplicationDTO.setCompanyId(company.getId());
|
|
|
-// insuranceApplicationDTO.setDefinitionId();
|
|
|
-// insuranceApplicationDTO.setStartTime();
|
|
|
-// insuranceApplicationDTO.setEndTime();
|
|
|
insuranceApplicationDTO.setInsuredName(company.getName());
|
|
|
insuranceApplicationDTO.setInsuredTel(company.getTel());
|
|
|
insuranceApplicationDTO.setCompanyName(company.getName());
|
|
@@ -133,8 +179,21 @@ public class InsuranceApplicationController {
|
|
|
insuranceApplicationDTO.setInsuredNumber(company.getInsuredNumber());
|
|
|
insuranceApplicationDTO.setTel(company.getTel());
|
|
|
insuranceApplicationDTO.setPostal(company.getPostal());
|
|
|
- insuranceApplication.setCompanyAddress(company.getAddress());
|
|
|
- insuranceApplication.setLossInRecentYears(company.getRemark());
|
|
|
+ insuranceApplicationDTO.setCompanyAddress(company.getAddress());
|
|
|
+ insuranceApplicationDTO.setLossInRecentYears(company.getRemark());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //读取每月投保单编号
|
|
|
+ List<ApplicationPolicy> relatePolicyList = applicationPolicyService.findByApplicationId(applicationId);
|
|
|
+
|
|
|
+ if (relatePolicyList.size()==0){
|
|
|
+ //生成首月投保编号
|
|
|
+ insuranceApplicationDTO.setPolicyId(UUID.randomUUID().toString());
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ //首月投保
|
|
|
+ insuranceApplicationDTO.setPolicyId(relatePolicyList.get(0).getPolicyId());
|
|
|
}
|
|
|
|
|
|
msgResult.setData(insuranceApplicationDTO);
|
|
@@ -149,54 +208,100 @@ public class InsuranceApplicationController {
|
|
|
return msgResult;
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value="获取承保信息")
|
|
|
- @RequestMapping(value = "acceptDetail",method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value="第三步,获取承保信息")
|
|
|
+ @RequestMapping(value = "acceptDetail",method = RequestMethod.GET)
|
|
|
@ApiImplicitParams({
|
|
|
- @ApiImplicitParam(name = "ApplicationId",value = "投保单ID", required = true, paramType = "form",dataType = "String"),
|
|
|
- @ApiImplicitParam(name = "policyId",value = "每月投保单ID", required = true, paramType = "form",dataType = "String"),
|
|
|
+ @ApiImplicitParam(name = "applicationId",value = "投保单ID", required = true,paramType = "query",dataType = "String"),
|
|
|
+ @ApiImplicitParam(name = "policyId",value = "每月投保单ID", required = true,paramType = "query",dataType = "String"),
|
|
|
})
|
|
|
- public MessageResult<Map<String,Object>> acceptDetail(@RequestParam(value="ApplicationId",defaultValue="") String ApplicationId,
|
|
|
+ public MessageResult<AcceptInsuranceDTO> acceptDetail(@RequestParam(value="applicationId",defaultValue="") String applicationId,
|
|
|
@RequestParam(value="policyId",defaultValue="") String policyId){
|
|
|
- MessageResult<Map<String,Object>> msgResult = new MessageResult<>();
|
|
|
- Map<String,Object> objectMap = new HashMap<>();
|
|
|
+ MessageResult<AcceptInsuranceDTO> msgResult = new MessageResult<>();
|
|
|
+ AcceptInsuranceDTO acceptInsuranceDTO = new AcceptInsuranceDTO();
|
|
|
|
|
|
try {
|
|
|
- InsuranceApplication insuranceApplication = insuranceApplicationService.get(ApplicationId);
|
|
|
+ //投保单
|
|
|
+ InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
|
|
|
|
|
|
+ //险种
|
|
|
InsuranceDefinition insuranceDefinition = insuranceDefinitionService.get(insuranceApplication.getDefinitionId());
|
|
|
|
|
|
+ //险种名称
|
|
|
+ acceptInsuranceDTO.setInsuranceDefName(insuranceDefinition.getName());
|
|
|
+
|
|
|
Map<String,Object> searchParams = new HashMap<>();
|
|
|
searchParams.put("definitionId",insuranceApplication.getDefinitionId());
|
|
|
List<Sort> sortList = new ArrayList<>();
|
|
|
- sortList.add(new Sort("id_","asc"));
|
|
|
+ sortList.add(new Sort("create_time","asc"));
|
|
|
+
|
|
|
+ //险种关联限额
|
|
|
+ List<InsuranceDefinitionLimit> insuranceDefinitionLimits = insuranceDefinitionLimitService.findByDefinitionId(insuranceApplication.getDefinitionId());
|
|
|
+
|
|
|
+ acceptInsuranceDTO.setInsuranceDefLimitList(insuranceDefinitionLimits);
|
|
|
|
|
|
- Page<InsuranceDefinitionLimit> insuranceDefinitionLimitPage = insuranceDefinitionLimitService.pageSearch(searchParams,1,100,sortList);
|
|
|
- insuranceDefinition.setLimits(insuranceDefinitionLimitPage.getResult());
|
|
|
+ //关联岗位
|
|
|
Page<InsuranceJobs> insuranceJobsPage = insuranceJobsService.pageSearch(searchParams,1,100,sortList);
|
|
|
- BigDecimal allMoney = new BigDecimal(0);
|
|
|
+
|
|
|
+ DateTime endTime = new DateTime(insuranceApplication.getEndTime());
|
|
|
+ acceptInsuranceDTO.setEndTime(insuranceApplication.getEndTime());
|
|
|
+
|
|
|
+ DateTime startTime = new DateTime(insuranceApplication.getStartTime());
|
|
|
+ acceptInsuranceDTO.setStartTime(insuranceApplication.getStartTime());
|
|
|
+
|
|
|
+ Interval interval = new Interval(startTime, endTime);
|
|
|
+
|
|
|
+ //投保总月份
|
|
|
+ int months = interval.toPeriod().getMonths();
|
|
|
+ BigDecimal totalAmount = new BigDecimal(0);
|
|
|
+ int totalNumber = 0;
|
|
|
+
|
|
|
+ List<InsuranceJobsDTO> insuranceJobsList = new ArrayList<>();
|
|
|
+
|
|
|
+ //查询不同岗位,参保费用
|
|
|
for(InsuranceJobs insuranceJobs : insuranceJobsPage.getResult()){
|
|
|
+ Jobs jobs = jobsService.get(insuranceJobs.getJobsId());
|
|
|
+
|
|
|
InsuranceJobsDTO insuranceJobsDTO = new InsuranceJobsDTO();
|
|
|
- PojoUtils.map(insuranceApplication, insuranceJobsDTO);
|
|
|
|
|
|
- Map<String,Object> searchParams1 = new HashMap<>();
|
|
|
- searchParams1.put("policyId",policyId);
|
|
|
- searchParams1.put("jobsId",insuranceJobs.getJobsId());
|
|
|
- List<Sort> sortList1 = new ArrayList<>();
|
|
|
- sortList1.add(new Sort("id_","asc"));
|
|
|
- Page<InsurancePolicyMember> insurancePolicyMemberPage = insurancePolicyMemberService.pageSearch(searchParams1,1,100,sortList1);
|
|
|
+ insuranceJobsDTO.setJobs(jobs);
|
|
|
|
|
|
- insuranceJobsDTO.setChargesY(insuranceJobsDTO.getCharges().multiply(new BigDecimal(12)));
|
|
|
- insuranceJobsDTO.setNumber(insurancePolicyMemberPage.size());
|
|
|
- insuranceJobsDTO.setMoney(insuranceJobsDTO.getCharges().multiply(new BigDecimal(insurancePolicyMemberPage.size())));
|
|
|
+ long memberCount = insurancePolicyMemberService.countByPolicyIdAndJobsId(policyId,insuranceJobs.getJobsId());
|
|
|
|
|
|
- allMoney.add(insuranceJobsDTO.getCharges().multiply(new BigDecimal(insurancePolicyMemberPage.size())));
|
|
|
+ insuranceJobsDTO.setCharges(insuranceJobs.getCharges());
|
|
|
+ insuranceJobsDTO.setChargesY(insuranceJobs.getCharges().multiply(new BigDecimal(12)));
|
|
|
+ insuranceJobsDTO.setNumber(Long.valueOf(memberCount).intValue());
|
|
|
+
|
|
|
+ insuranceJobsDTO.setMoney(insuranceJobsDTO.getCharges()
|
|
|
+ .multiply(new BigDecimal(months))
|
|
|
+ .multiply(new BigDecimal(insuranceJobsDTO.getNumber())));
|
|
|
+
|
|
|
+ totalAmount = totalAmount.add(insuranceJobsDTO.getMoney());
|
|
|
+ totalNumber += memberCount;
|
|
|
+
|
|
|
+ insuranceJobsList.add(insuranceJobsDTO);
|
|
|
}
|
|
|
|
|
|
- objectMap.put("insuranceDefinition",insuranceDefinition);
|
|
|
- objectMap.put("insuranceJobs",insuranceJobsPage.getResult());
|
|
|
- objectMap.put("allMoney",allMoney);
|
|
|
+ acceptInsuranceDTO.setInsuranceJobsList(insuranceJobsList);
|
|
|
+ acceptInsuranceDTO.setTotalAmount(totalAmount);
|
|
|
+
|
|
|
+ msgResult.setData(acceptInsuranceDTO);
|
|
|
|
|
|
- msgResult.setData(objectMap);
|
|
|
+ //更新投保单
|
|
|
+ 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);
|
|
@@ -211,21 +316,35 @@ public class InsuranceApplicationController {
|
|
|
@ApiOperation(value="提交保单")
|
|
|
@RequestMapping(value = "submit",method = RequestMethod.POST)
|
|
|
@ApiImplicitParams({
|
|
|
- @ApiImplicitParam(name = "id",value = "编号", required = true, paramType = "form",dataType = "String")
|
|
|
+ @ApiImplicitParam(name = "applicationId",value = "投保单编号", required = true, paramType = "form",dataType = "String"),
|
|
|
+ @ApiImplicitParam(name = "policyId",value = "每月投保单编号", required = true, paramType = "form",dataType = "String")
|
|
|
})
|
|
|
- public MessageResult<InsuranceApplication> submit(@RequestParam(value="id",defaultValue="") String id,
|
|
|
+ public MessageResult<InsuranceApplication> submit(String applicationId,
|
|
|
+ String policyId,
|
|
|
HttpServletRequest request){
|
|
|
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
|
|
|
|
|
|
MessageResult<InsuranceApplication> msgResult = new MessageResult<>();
|
|
|
|
|
|
try {
|
|
|
- InsuranceApplication insuranceApplication = insuranceApplicationService.get(id);
|
|
|
+ InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
|
|
|
|
|
|
insuranceApplication.setStatus(String.valueOf(PolicyStatus.PendingTrial.getValue()));
|
|
|
insuranceApplication.setUpdateBy(principal.getName());
|
|
|
insuranceApplication.setUpdateTime(new Date());
|
|
|
- int affectCount = insuranceApplicationService.update(insuranceApplication);
|
|
|
+
|
|
|
+ insuranceApplicationService.update(insuranceApplication);
|
|
|
+
|
|
|
+ //更新每月投保单
|
|
|
+ InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
+
|
|
|
+ insurancePolicy.setStartTime(insuranceApplication.getStartTime());
|
|
|
+ insurancePolicy.setEndTime(insuranceApplication.getEndTime());
|
|
|
+ insurancePolicy.setStatus(String.valueOf(PolicyStatus.PendingTrial.getValue()));
|
|
|
+ insurancePolicy.setUpdateBy(principal.getName());
|
|
|
+ insurancePolicy.setUpdateTime(new Date());
|
|
|
+
|
|
|
+ insurancePolicyService.update(insurancePolicy);
|
|
|
|
|
|
msgResult.setResult(true);
|
|
|
}
|
|
@@ -239,33 +358,50 @@ public class InsuranceApplicationController {
|
|
|
return msgResult;
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value="保存草稿(如果点击保存,需要将返回的ID写入前台参数。如果点击下一步,需要将ID作为参数带入下个页面)")
|
|
|
+ @ApiOperation(value="保存草稿")
|
|
|
@RequestMapping(value = "saveDraft",method = RequestMethod.POST)
|
|
|
- public MessageResult<InsuranceApplicationDTO> saveDraft(@ModelAttribute InsuranceApplicationDTO insuranceApplicationDTO,
|
|
|
- HttpServletRequest request){
|
|
|
+ public MessageResult<InsuranceApplicationDTO> saveDraft(InsuranceApplicationDTO insuranceApplicationDTO,
|
|
|
+ HttpServletRequest request
|
|
|
+ ){
|
|
|
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
|
|
|
- Company company = companyService.findByCreateBy(principal.getName());
|
|
|
+// Company company = companyService.findByCreateBy(principal.getName());
|
|
|
|
|
|
MessageResult<InsuranceApplicationDTO> msgResult = new MessageResult<>();
|
|
|
- InsuranceApplication insuranceApplication = new InsuranceApplication();
|
|
|
+ InsuranceApplication insuranceApplication = null;
|
|
|
|
|
|
try {
|
|
|
int affectCount = 0;
|
|
|
- if(insuranceApplicationDTO.getId() == null){
|
|
|
- insuranceApplicationDTO.setId(UUID.randomUUID().toString());
|
|
|
- insuranceApplicationDTO.setCompanyId(company.getId());
|
|
|
- insuranceApplicationDTO.setStatus(String.valueOf(PolicyStatus.Draft));
|
|
|
- insuranceApplicationDTO.setDelFlag(false);
|
|
|
- insuranceApplicationDTO.setCreateBy(principal.getName());
|
|
|
- insuranceApplicationDTO.setCreateTime(new Date());
|
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insuranceApplicationDTO.getApplicationId())) {
|
|
|
+ insuranceApplication = insuranceApplicationService.get(insuranceApplicationDTO.getApplicationId());
|
|
|
+ }
|
|
|
+
|
|
|
+ DateTime startTime = new DateTime(insuranceApplicationDTO.getStartTime());
|
|
|
+
|
|
|
+ DateTime endTime = startTime.plusMonths(insuranceApplicationDTO.getMonthNumber());
|
|
|
+
|
|
|
+ if(insuranceApplication==null){
|
|
|
+ insuranceApplication = new InsuranceApplication();
|
|
|
PojoUtils.map(insuranceApplicationDTO, insuranceApplication);
|
|
|
+
|
|
|
+ insuranceApplication.setId(insuranceApplicationDTO.getApplicationId());
|
|
|
+// insuranceApplication.setCompanyId(company.getId());
|
|
|
+ insuranceApplication.setStatus(String.valueOf(PolicyStatus.Draft.getValue()));
|
|
|
+
|
|
|
+ insuranceApplication.setEndTime(endTime.toDate());
|
|
|
+
|
|
|
+ insuranceApplication.setDelFlag(false);
|
|
|
+ insuranceApplication.setCreateBy(principal.getName());
|
|
|
+ insuranceApplication.setCreateTime(new Date());
|
|
|
+
|
|
|
affectCount = insuranceApplicationService.insert(insuranceApplication);
|
|
|
}else {
|
|
|
- insuranceApplicationDTO.setUpdateBy(principal.getName());
|
|
|
- insuranceApplicationDTO.setUpdateTime(new Date());
|
|
|
-
|
|
|
PojoUtils.map(insuranceApplicationDTO, insuranceApplication);
|
|
|
+
|
|
|
+ insuranceApplication.setEndTime(endTime.toDate());
|
|
|
+ insuranceApplication.setUpdateBy(principal.getName());
|
|
|
+ insuranceApplication.setUpdateTime(new Date());
|
|
|
+
|
|
|
affectCount = insuranceApplicationService.update(insuranceApplication);
|
|
|
}
|
|
|
|