Преглед изворни кода

Merge remote-tracking branch 'origin/master'

tomatozq пре 5 година
родитељ
комит
00a33453e1

BIN
document/后端接口.xlsx


+ 8 - 0
picc-common/src/main/resources/mapper/business/InsurancePolicy.xml

@@ -145,6 +145,14 @@
             <if test="searchParams.applicationId != null">
                 and b.application_id like #{searchParams.applicationId}
             </if>
+            <if test="searchParams.status != null">
+                and b.status_ like #{searchParams.status}
+            </if>
+            <if test="searchParams.ids != null">
+                <foreach item="id" collection="ids"  open=" " separator=" ">
+                    or a.id_ = ${id}
+                </foreach>
+            </if>
         </where>
         <foreach item="sort" collection="sortList"  open="order by" separator=",">
             ${sort.name} ${sort.order}

+ 155 - 11
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsurancePolicyController.java

@@ -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;
+    }
 }

+ 52 - 0
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsurancePolicyUserController.java

@@ -324,4 +324,56 @@ public class InsurancePolicyUserController {
 
         return msgResult;
     }
+
+    @ApiOperation(value="替换参保人员")
+    @PostMapping("replace")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "ids",value = "被替换的条目Id,用,分隔", required = true, paramType = "form",dataType = "String"),
+            @ApiImplicitParam(name = "memberIds",value = "替换的企业用户ID,用,分隔", required = true, paramType = "form",dataType = "String"),
+    })
+    public MessageResult<String> replace(@RequestParam(value="ids",defaultValue="") String ids,
+                                     @RequestParam(value="memberIds",defaultValue="") String memberIds,
+                                     HttpServletRequest request){
+        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
+        Company company = companyService.findByCreateBy(principal.getName());
+
+        MessageResult<String> msgResult = new MessageResult<>();
+
+        try {
+            int affectCount = 0;
+            String[] arrayId = ids.split(",");
+            String[] arrayMemberId = memberIds.split(",");
+
+            for(int i=0;i<arrayId.length;i++) {
+                InsurancePolicyMember insurancePolicyMember = insurancePolicyMemberService.get(arrayId[i]);
+
+                insurancePolicyMember.setReplaceMemberId(insurancePolicyMember.getMemberId());
+                insurancePolicyMember.setMemberId(arrayMemberId[i]);
+                insurancePolicyMember.setUpdateBy(principal.getName());
+                insurancePolicyMember.setUpdateTime(new Date());
+
+                Integer count = insurancePolicyMemberService.update(insurancePolicyMember);
+
+                if(count > 0){
+                    affectCount++;
+                }
+            }
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setMessage("替换"+affectCount+"条数据。");
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
 }