|
@@ -3,12 +3,9 @@ package com.jpsoft.picc.modules.auth.controller;
|
|
|
import com.github.pagehelper.Page;
|
|
|
import com.jpsoft.picc.modules.base.entity.Company;
|
|
|
import com.jpsoft.picc.modules.base.service.CompanyService;
|
|
|
-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.service.InsuranceApplicationService;
|
|
|
-import com.jpsoft.picc.modules.business.service.InsurancePolicyRecordService;
|
|
|
-import com.jpsoft.picc.modules.business.service.InsurancePolicyService;
|
|
|
+import com.jpsoft.picc.modules.business.entity.*;
|
|
|
+import com.jpsoft.picc.modules.business.service.*;
|
|
|
+import com.jpsoft.picc.modules.common.constant.PolicyStatus;
|
|
|
import com.jpsoft.picc.modules.common.dto.MessageResult;
|
|
|
import com.jpsoft.picc.modules.common.dto.Sort;
|
|
|
import com.jpsoft.picc.modules.common.utils.PojoUtils;
|
|
@@ -27,10 +24,8 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Api(description="每月投保单")
|
|
|
@RestController
|
|
@@ -50,6 +45,12 @@ public class InsurancePolicyController {
|
|
|
@Autowired
|
|
|
private InsuranceApplicationService insuranceApplicationService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private InsurancePolicyMemberService insurancePolicyMemberService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApplicationPolicyService applicationPolicyService;
|
|
|
+
|
|
|
@ApiOperation(value="每月投保单列表")
|
|
|
@RequestMapping(value = "pageList",method = RequestMethod.POST)
|
|
|
@ApiImplicitParams({
|
|
@@ -149,7 +150,7 @@ public class InsurancePolicyController {
|
|
|
MessageResult<Map> msgResult = new MessageResult<>();
|
|
|
|
|
|
Map<String,Object> searchParams = new HashMap<>();
|
|
|
- searchParams.put("status","70");
|
|
|
+ searchParams.put("status",String.valueOf(PolicyStatus.SendOutPolicy.getValue()));
|
|
|
|
|
|
List<Sort> sortList = new ArrayList<>();
|
|
|
sortList.add(new Sort("id_","asc"));
|
|
@@ -187,4 +188,147 @@ public class InsurancePolicyController {
|
|
|
|
|
|
return msgResult;
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value="下月投保单查询")
|
|
|
+ @RequestMapping(value = "nextMonthList",method = RequestMethod.POST)
|
|
|
+ public MessageResult<Map> nextMonthList(
|
|
|
+ @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
|
|
|
+ @RequestParam(value="pageSize",defaultValue="20") int pageSize,
|
|
|
+ HttpServletRequest request){
|
|
|
+ AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
|
|
|
+ Company company = companyService.findByCreateBy(principal.getName());
|
|
|
+
|
|
|
+ MessageResult<Map> msgResult = new MessageResult<>();
|
|
|
+ List<String> policyIds = new ArrayList<>();
|
|
|
+
|
|
|
+ List<Sort> sortList = new ArrayList<>();
|
|
|
+ sortList.add(new Sort("id_","asc"));
|
|
|
+
|
|
|
+ Map<String,Object> searchParamsInsuranceApplication = new HashMap<>();
|
|
|
+ searchParamsInsuranceApplication.put("status",String.valueOf(PolicyStatus.SendOutPolicy.getValue()));
|
|
|
+ searchParamsInsuranceApplication.put("companyId",company.getId());
|
|
|
+ Page<InsuranceApplication> pageInsuranceApplication = insuranceApplicationService.pageSearch(searchParamsInsuranceApplication,1,1000,sortList);
|
|
|
+ for(InsuranceApplication insuranceApplication : pageInsuranceApplication.getResult()){
|
|
|
+ Map<String,Object> searchParamsInsurancePolicy = new HashMap<>();
|
|
|
+ searchParamsInsurancePolicy.put("applicationId",insuranceApplication.getId());
|
|
|
+ searchParamsInsurancePolicy.put("status",String.valueOf(PolicyStatus.SendOutPolicy.getValue()));
|
|
|
+ Page<InsurancePolicy> pageInsurancePolicy = insurancePolicyService.pageSearch(searchParamsInsurancePolicy,1,1000,sortList);
|
|
|
+ for(InsurancePolicy insurancePolicy : pageInsurancePolicy.getResult()){
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
|
|
|
+ Calendar allEnd = Calendar.getInstance();
|
|
|
+ allEnd.setTime(insuranceApplication.getEndTime());
|
|
|
+ Calendar startTime = Calendar.getInstance();
|
|
|
+ startTime.setTime(insurancePolicy.getStartTime());
|
|
|
+ startTime.add(Calendar.MONTH,1);
|
|
|
+ Calendar endTime = Calendar.getInstance();
|
|
|
+ endTime.setTime(insurancePolicy.getEndTime());
|
|
|
+ endTime.add(Calendar.MONTH,1);
|
|
|
+ if(endTime.before(allEnd)){
|
|
|
+ //增加每月投保单
|
|
|
+ InsurancePolicy newInsurancePolicy = new InsurancePolicy();
|
|
|
+ newInsurancePolicy.setId(UUID.randomUUID().toString());
|
|
|
+ newInsurancePolicy.setInsuranceFee(insurancePolicy.getInsuranceFee());
|
|
|
+ newInsurancePolicy.setStartTime(startTime.getTime());
|
|
|
+ newInsurancePolicy.setEndTime(endTime.getTime());
|
|
|
+ newInsurancePolicy.setNumber(insurancePolicy.getNumber());
|
|
|
+ newInsurancePolicy.setNo(insurancePolicy.getNo()+1);
|
|
|
+ newInsurancePolicy.setEffectiveDate(sdf.format(startTime));
|
|
|
+ newInsurancePolicy.setDelFlag(false);
|
|
|
+ newInsurancePolicy.setCreateBy(principal.getName());
|
|
|
+ newInsurancePolicy.setCreateTime(new Date());
|
|
|
+ insurancePolicyService.insert(newInsurancePolicy);
|
|
|
+
|
|
|
+ //增加投保单与每月投保单关联
|
|
|
+ ApplicationPolicy newApplicationPolicy = new ApplicationPolicy();
|
|
|
+ newApplicationPolicy.setId(UUID.randomUUID().toString());
|
|
|
+ newApplicationPolicy.setApplicationId(insuranceApplication.getId());
|
|
|
+ newApplicationPolicy.setPolicyId(newInsurancePolicy.getId());
|
|
|
+ applicationPolicyService.insert(newApplicationPolicy);
|
|
|
+
|
|
|
+ //增加花名册
|
|
|
+ Map<String,Object> searchParamsInsurancePolicyMember = new HashMap<>();
|
|
|
+ searchParamsInsurancePolicyMember.put("policyId",insurancePolicy.getId());
|
|
|
+ Page<InsurancePolicyMember> pageInsurancePolicyMember = insurancePolicyMemberService.pageSearch(searchParamsInsurancePolicyMember,1,1000,sortList);
|
|
|
+ for(InsurancePolicyMember insurancePolicyMember : pageInsurancePolicyMember.getResult()){
|
|
|
+ InsurancePolicyMember newinsurancePolicyMember = new InsurancePolicyMember();
|
|
|
+ newinsurancePolicyMember.setId(UUID.randomUUID().toString());
|
|
|
+ newinsurancePolicyMember.setPolicyId(newInsurancePolicy.getId());
|
|
|
+ newinsurancePolicyMember.setMemberId(insurancePolicyMember.getMemberId());
|
|
|
+ newinsurancePolicyMember.setDelFlag(false);
|
|
|
+ newinsurancePolicyMember.setCreateBy(principal.getName());
|
|
|
+ newinsurancePolicyMember.setCreateTime(new Date());
|
|
|
+ insurancePolicyMemberService.insert(newinsurancePolicyMember);
|
|
|
+ }
|
|
|
+
|
|
|
+ //记录投保单ID
|
|
|
+ policyIds.add(newInsurancePolicy.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //按ID重新读取每月投保单
|
|
|
+ Map<String,Object> searchParamsInsurancePolicy = new HashMap<>();
|
|
|
+ searchParamsInsurancePolicy.put("ids",policyIds);
|
|
|
+ Page<InsurancePolicy> pageInsurancePolicy = insurancePolicyService.pageSearch(searchParamsInsurancePolicy,1,1000,sortList);
|
|
|
+
|
|
|
+ msgResult.setResult(true);
|
|
|
+ msgResult.setData(PojoUtils.pageWrapper(pageInsurancePolicy));
|
|
|
+
|
|
|
+ return msgResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value="显示参保人员列表")
|
|
|
+ @RequestMapping(value = "pageListPolicyMember",method = RequestMethod.POST)
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "policyId",value = "每月投保单编号", required = true, paramType = "form",dataType = "String")
|
|
|
+ })
|
|
|
+ public MessageResult<Map> pageListPolicyMember(
|
|
|
+ @RequestParam(value="policyId",defaultValue="") String policyId,
|
|
|
+ @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
|
|
|
+ @RequestParam(value="pageSize",defaultValue="20") int pageSize){
|
|
|
+ MessageResult<Map> msgResult = new MessageResult<>();
|
|
|
+
|
|
|
+ List<Sort> sortList = new ArrayList<>();
|
|
|
+ sortList.add(new Sort("create_time","asc"));
|
|
|
+ Map<String,Object> searchParams = new HashMap<>();
|
|
|
+ searchParams.put("policyId",policyId);
|
|
|
+
|
|
|
+ Page<InsurancePolicyMember> page = insurancePolicyMemberService.pageSearch(searchParams,pageIndex,pageSize,sortList);
|
|
|
+
|
|
|
+ msgResult.setResult(true);
|
|
|
+ msgResult.setData(PojoUtils.pageWrapper(page));
|
|
|
+
|
|
|
+ return msgResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value="提交花名册")
|
|
|
+ @RequestMapping(value = "submitRoster",method = RequestMethod.POST)
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "policyId",value = "每月投保单编号", required = true, paramType = "form",dataType = "String")
|
|
|
+ })
|
|
|
+ public MessageResult<InsuranceApplication> submitRoster(String policyId,HttpServletRequest request){
|
|
|
+ AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
|
|
|
+
|
|
|
+ MessageResult<InsuranceApplication> msgResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
+
|
|
|
+ insurancePolicy.setStatus(String.valueOf(PolicyStatus.PendingMakePolicy.getValue()));
|
|
|
+ insurancePolicy.setUpdateBy(principal.getName());
|
|
|
+ insurancePolicy.setUpdateTime(new Date());
|
|
|
+
|
|
|
+ insurancePolicyService.update(insurancePolicy);
|
|
|
+
|
|
|
+ msgResult.setResult(true);
|
|
|
+ }
|
|
|
+ catch(Exception ex){
|
|
|
+ logger.error(ex.getMessage(),ex);
|
|
|
+
|
|
|
+ msgResult.setResult(false);
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return msgResult;
|
|
|
+ }
|
|
|
}
|