|
@@ -6,10 +6,7 @@ import com.jpsoft.picc.modules.auth.dto.InsuranceApplicationDTO;
|
|
import com.jpsoft.picc.modules.auth.dto.InsuranceJobsDTO;
|
|
import com.jpsoft.picc.modules.auth.dto.InsuranceJobsDTO;
|
|
import com.jpsoft.picc.modules.base.entity.*;
|
|
import com.jpsoft.picc.modules.base.entity.*;
|
|
import com.jpsoft.picc.modules.base.service.*;
|
|
import com.jpsoft.picc.modules.base.service.*;
|
|
-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.InsurancePolicyRecord;
|
|
|
|
|
|
+import com.jpsoft.picc.modules.business.entity.*;
|
|
import com.jpsoft.picc.modules.business.service.*;
|
|
import com.jpsoft.picc.modules.business.service.*;
|
|
import com.jpsoft.picc.config.JpCloudConfig;
|
|
import com.jpsoft.picc.config.JpCloudConfig;
|
|
import com.jpsoft.picc.modules.common.constant.PolicyStatus;
|
|
import com.jpsoft.picc.modules.common.constant.PolicyStatus;
|
|
@@ -27,10 +24,13 @@ import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.poi.hpsf.Decimal;
|
|
import org.apache.poi.hpsf.Decimal;
|
|
import org.jasig.cas.client.authentication.AttributePrincipal;
|
|
import org.jasig.cas.client.authentication.AttributePrincipal;
|
|
import org.joda.time.DateTime;
|
|
import org.joda.time.DateTime;
|
|
|
|
+import org.joda.time.Days;
|
|
import org.joda.time.Interval;
|
|
import org.joda.time.Interval;
|
|
import org.joda.time.Months;
|
|
import org.joda.time.Months;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -772,4 +772,102 @@ public class InsuranceApplicationController {
|
|
|
|
|
|
return msgResult;
|
|
return msgResult;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @ApiOperation(value="快速续保")
|
|
|
|
+ @ApiImplicitParam(name = "applicationId",value = "投保单编号",paramType ="form",required = true)
|
|
|
|
+ @PostMapping(value="/renew")
|
|
|
|
+ @Transactional
|
|
|
|
+ public MessageResult<String> renew(String applicationId,HttpServletRequest request){
|
|
|
|
+ AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
|
|
|
|
+ MessageResult<String> msgResult = new MessageResult<>();
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ InsuranceApplication srcApplication = insuranceApplicationService.get(applicationId);
|
|
|
|
+ InsuranceApplication destApplication = new InsuranceApplication();
|
|
|
|
+
|
|
|
|
+ PojoUtils.map(srcApplication,destApplication);
|
|
|
|
+
|
|
|
|
+ destApplication.setId(UUID.randomUUID().toString());
|
|
|
|
+ destApplication.setStatus(PolicyStatus.Draft.getValue() + "");
|
|
|
|
+
|
|
|
|
+ destApplication.setCreateBy(principal.getName());
|
|
|
|
+ destApplication.setCreateTime(new Date());
|
|
|
|
+
|
|
|
|
+ String policyNo = insuranceApplicationService.generatePolicyNo(destApplication.getCreateTime(),1);
|
|
|
|
+ destApplication.setPolicyNo(policyNo);
|
|
|
|
+
|
|
|
|
+ DateTime srcStartTime = new DateTime(srcApplication.getStartTime());
|
|
|
|
+ DateTime srcEndTime = new DateTime(srcApplication.getEndTime());
|
|
|
|
+
|
|
|
|
+ //todo 修改投保时间
|
|
|
|
+ destApplication.setStartTime(srcApplication.getEndTime());
|
|
|
|
+ int days = Days.daysBetween(srcStartTime,srcEndTime).getDays();
|
|
|
|
+
|
|
|
|
+ destApplication.setEndTime(srcEndTime.plusDays(days).toDate());
|
|
|
|
+ destApplication.setCombinePolicyId(null);
|
|
|
|
+ destApplication.setFinishTime(null);
|
|
|
|
+ destApplication.setUpdateBy(null);
|
|
|
|
+ destApplication.setUpdateTime(null);
|
|
|
|
+
|
|
|
|
+ insuranceApplicationService.insert(destApplication);
|
|
|
|
+
|
|
|
|
+ //todo 新增一份每月投保单
|
|
|
|
+ InsurancePolicy destPolicy = new InsurancePolicy();
|
|
|
|
+ destPolicy.setId(UUID.randomUUID().toString());
|
|
|
|
+ destPolicy.setLatestApplicationId(destApplication.getId());
|
|
|
|
+ destPolicy.setPolicyNo(destApplication.getPolicyNo());
|
|
|
|
+
|
|
|
|
+ destPolicy.setDelFlag(false);
|
|
|
|
+ destPolicy.setCreateBy(principal.getName());
|
|
|
|
+ destPolicy.setCreateTime(new Date());
|
|
|
|
+ destPolicy.setNo(1);
|
|
|
|
+
|
|
|
|
+ int affectCount = insurancePolicyService.insert(destPolicy);
|
|
|
|
+
|
|
|
|
+ InsurancePolicy lastPolicy = applicationPolicyService.findLastPolicyByApplicationId(srcApplication.getId());
|
|
|
|
+
|
|
|
|
+ if (affectCount > 0) {
|
|
|
|
+ //todo 将投保人导入
|
|
|
|
+ List<InsurancePolicyMember> memberList = insurancePolicyMemberService.findByPolicyId(lastPolicy.getId());
|
|
|
|
+
|
|
|
|
+ for (InsurancePolicyMember srcMember : memberList) {
|
|
|
|
+ InsurancePolicyMember destMember = new InsurancePolicyMember();
|
|
|
|
+
|
|
|
|
+ destMember.setId(UUID.randomUUID().toString());
|
|
|
|
+ destMember.setPolicyId(destPolicy.getId());
|
|
|
|
+ destMember.setMemberId(srcMember.getMemberId());
|
|
|
|
+ destMember.setDelFlag(false);
|
|
|
|
+ destMember.setCreateBy(principal.getName());
|
|
|
|
+ destMember.setCreateTime(new Date());
|
|
|
|
+ destMember.setStatus(srcMember.getStatus());
|
|
|
|
+
|
|
|
|
+ insurancePolicyMemberService.insert(destMember);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //todo 关联投保申请单月与每月投保单
|
|
|
|
+ ApplicationPolicy applicationPolicy = new ApplicationPolicy();
|
|
|
|
+ applicationPolicy.setId(UUID.randomUUID().toString());
|
|
|
|
+
|
|
|
|
+ applicationPolicy.setApplicationId(destApplication.getId());
|
|
|
|
+ applicationPolicy.setPolicyId(destPolicy.getId());
|
|
|
|
+
|
|
|
|
+ applicationPolicyService.insert(applicationPolicy);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ msgResult.setData(destApplication.getId());
|
|
|
|
+ msgResult.setResult(true);
|
|
|
|
+ }
|
|
|
|
+ catch(Exception ex){
|
|
|
|
+ log.error(ex.getMessage(),ex);
|
|
|
|
+
|
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
+
|
|
|
|
+ msgResult.setResult(false);
|
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return msgResult;
|
|
|
|
+ }
|
|
}
|
|
}
|