Ver código fonte

1.限额改为公式填写。
2.投保器改为起始时间(上月截止时间+1),截止时间=起始时间+1月-1天。

zhengqiang 5 anos atrás
pai
commit
ea8bc91373

+ 12 - 2
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsuranceApplicationController.java

@@ -15,6 +15,7 @@ import com.jpsoft.picc.modules.common.dto.Sort;
 import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.business.entity.InsuranceApplication;
 import com.jpsoft.picc.modules.business.service.InsuranceApplicationService;
+import com.jpsoft.picc.modules.common.utils.VelocityHelper;
 import com.jpsoft.picc.modules.sys.entity.DataDictionary;
 import com.jpsoft.picc.modules.sys.service.DataDictionaryService;
 import io.swagger.annotations.Api;
@@ -458,12 +459,21 @@ public class InsuranceApplicationController {
 
         List<Map<String,Object>> mapList = new ArrayList<Map<String,Object>>();
 
+        Map<String,Object> varsMap = new HashMap<>();
+        varsMap.put("num",insuranceApplication.getInsuredNumber());
+
         for(InsuranceDefinitionLimit  insuranceDefinitionLimit:insuranceDefinitionLimitList){
             Map<String,Object> map1 = new HashMap<String,Object>();
             map1.put("id",insuranceDefinitionLimit.getId());
             map1.put("name",insuranceDefinitionLimit.getName());
-            map1.put("limit",insuranceDefinitionLimit.getLimit());
-            map1.put("unit",insuranceDefinitionLimit.getUnit());
+
+            //限额这里可能是公式,需要带入人数
+            String limit = VelocityHelper.format(insuranceDefinitionLimit.getLimit(),varsMap);
+            map1.put("limit",limit);
+
+            String unit = VelocityHelper.format(insuranceDefinitionLimit.getUnit(),varsMap);
+            map1.put("unit",unit);
+
             mapList.add(map1);
         }
 

+ 16 - 3
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.java

@@ -753,6 +753,8 @@ public class InsurancePolicyController {
         PojoUtils.map(srcPolicy,destPolicy);
 
         DateTime startTime = new DateTime(srcPolicy.getEndTime());
+        startTime = startTime.plusDays(1);
+
         destPolicy.setId(UUID.randomUUID().toString());
         destPolicy.setNo(srcPolicy.getNo()+1);
 
@@ -764,7 +766,8 @@ public class InsurancePolicyController {
         destPolicy.setPolicyNo(policyNoArr[0] + "-" + df.format(destPolicy.getNo()));
 
         destPolicy.setStartTime(startTime.toDate());
-        destPolicy.setEndTime(startTime.plusMonths(1).toDate());
+        destPolicy.setEndTime(startTime.plusMonths(1).plusDays(-1).toDate());
+
         destPolicy.setEffectiveDate(startTime.toString("yyyyMM"));
         destPolicy.setStatus(PolicyStatus.Draft.getValue() + "");
         destPolicy.setCreateTime(new Date());
@@ -905,12 +908,22 @@ public class InsurancePolicyController {
 
         List<Map<String,Object>> mapList = new ArrayList<Map<String,Object>>();
 
+
+        Map<String,Object> varsMap = new HashMap<>();
+        varsMap.put("num",insurancePolicy.getNumber());
+
         for(InsuranceDefinitionLimit  insuranceDefinitionLimit:insuranceDefinitionLimitList){
             Map<String,Object> map1 = new HashMap<String,Object>();
             map1.put("id",insuranceDefinitionLimit.getId());
             map1.put("name",insuranceDefinitionLimit.getName());
-            map1.put("limit",insuranceDefinitionLimit.getLimit());
-            map1.put("unit",insuranceDefinitionLimit.getUnit());
+
+            //限额这里可能是公式,需要带入人数
+            String limit = VelocityHelper.format(insuranceDefinitionLimit.getLimit(),varsMap);
+            map1.put("limit",limit);
+
+            String unit = VelocityHelper.format(insuranceDefinitionLimit.getUnit(),varsMap);
+            map1.put("unit",unit);
+
             mapList.add(map1);
         }
 

+ 197 - 194
picc-common/src/main/java/com/jpsoft/picc/modules/base/entity/InsuranceDefinitionLimit.java

@@ -4,218 +4,221 @@ import java.io.Serializable;
 import java.util.Date;
 import java.text.SimpleDateFormat;
 import java.math.BigDecimal;
+
 import org.springframework.format.annotation.DateTimeFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModel;
 
 /**
-  描述:base_insurance_definition_limit的实体类
+ * 描述:base_insurance_definition_limit的实体类
  */
 @ApiModel(value = "base_insurance_definition_limit的实体类")
 public class InsuranceDefinitionLimit {
     @ApiModelProperty(value = "编号")
-	private String id;
-	@ApiModelProperty(value = "险种信息ID")
-	private String definitionId;
+    private String id;
+    @ApiModelProperty(value = "险种信息ID")
+    private String definitionId;
     @ApiModelProperty(value = "险种信息")
-	private InsuranceDefinition definition;
+    private InsuranceDefinition definition;
     @ApiModelProperty(value = "限额名称")
-	private String name;
+    private String name;
     @ApiModelProperty(value = "责任限额/免赔额")
-	private String limit;
+    private String limit;
     @ApiModelProperty(value = "计算单位(次/元/人/万)")
-	private String unit;
+    private String unit;
     @ApiModelProperty(value = "状态")
-	private String status;
+    private String status;
     @ApiModelProperty(value = "是否删除")
-	private Boolean delFlag;
+    private Boolean delFlag;
     @ApiModelProperty(value = "创建人")
-	private String createBy;
+    private String createBy;
     @ApiModelProperty(value = "创建时间")
-	private Date createTime;
+    private Date createTime;
     @ApiModelProperty(value = "修改人")
-	private String updateBy;
+    private String updateBy;
     @ApiModelProperty(value = "修改时间")
-	private Date updateTime;
-	@ApiModelProperty(value = "序号")
-	private Integer sortNo;
-
-    /**
-	 *获取编号
-	 */
-    	public String getId(){
-		return id;
-	}
-	
-	/**
-	 *设置编号
-	 */
-	public void setId(String id){
-		this.id = id;
-	}
-
-	/**
-	 *获取险种信息
-	 */
-	public String getDefinitionId(){
-		return definitionId;
-	}
-
-	/**
-	 *获取险种信息
-	 */
-	public void setDefinitionId(String definitionId){
-		this.definitionId = definitionId;
-	}
-
-	/**
-	 *获取险种信息
-	 */
-    	public InsuranceDefinition getDefinition(){
-		return definition;
-	}
-	
-	/**
-	 *设置险种信息
-	 */
-	public void setDefinition(InsuranceDefinition definition){
-		this.definition = definition;
-	}
-
-	/**
-	 *获取限额名称
-	 */
-    	public String getName(){
-		return name;
-	}
-	
-	/**
-	 *设置限额名称
-	 */
-	public void setName(String name){
-		this.name = name;
-	}
-
-	/**
-	 *获取责任限额/免赔额
-	 */
-    	public String getLimit(){
-		return limit;
-	}
-	
-	/**
-	 *设置责任限额/免赔额
-	 */
-	public void setLimit(String limit){
-		this.limit = limit;
-	}
-
-	/**
-	 *获取计算单位(次/元/人/万)
-	 */
-    	public String getUnit(){
-		return unit;
-	}
-	
-	/**
-	 *设置计算单位(次/元/人/万)
-	 */
-	public void setUnit(String unit){
-		this.unit = unit;
-	}
-
-	/**
-	 *获取状态
-	 */
-    	public String getStatus(){
-		return status;
-	}
-	
-	/**
-	 *设置状态
-	 */
-	public void setStatus(String status){
-		this.status = status;
-	}
-
-	/**
-	 *获取是否删除
-	 */
-    	public Boolean getDelFlag(){
-		return delFlag;
-	}
-	
-	/**
-	 *设置是否删除
-	 */
-	public void setDelFlag(Boolean delFlag){
-		this.delFlag = delFlag;
-	}
-
-	/**
-	 *获取创建人
-	 */
-    	public String getCreateBy(){
-		return createBy;
-	}
-	
-	/**
-	 *设置创建人
-	 */
-	public void setCreateBy(String createBy){
-		this.createBy = createBy;
-	}
-	/**
-	 *获取创建时间
-	 */
-    	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
-		public Date getCreateTime(){
-		return createTime;
-	}
-	
-	/**
-	 *设置创建时间
-	 */
-	public void setCreateTime(Date createTime){
-		this.createTime = createTime;
-	}
-
-	/**
-	 *获取修改人
-	 */
-	public String getUpdateBy(){
-		return updateBy;
-	}
-	
-	/**
-	 *设置修改人
-	 */
-	public void setUpdateBy(String updateBy){
-		this.updateBy = updateBy;
-	}
-	/**
-	 *获取修改时间
-	 */
-    	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
-		public Date getUpdateTime(){
-		return updateTime;
-	}
-	
-	/**
-	 *设置修改时间
-	 */
-	public void setUpdateTime(Date updateTime){
-		this.updateTime = updateTime;
-	}
-
-	public Integer getSortNo() {
-		return sortNo;
-	}
-
-	public void setSortNo(Integer sortNo) {
-		this.sortNo = sortNo;
-	}
+    private Date updateTime;
+    @ApiModelProperty(value = "序号")
+    private Integer sortNo;
+
+    /**
+     * 获取编号
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * 设置编号
+     */
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取险种信息
+     */
+    public String getDefinitionId() {
+        return definitionId;
+    }
+
+    /**
+     * 获取险种信息
+     */
+    public void setDefinitionId(String definitionId) {
+        this.definitionId = definitionId;
+    }
+
+    /**
+     * 获取险种信息
+     */
+    public InsuranceDefinition getDefinition() {
+        return definition;
+    }
+
+    /**
+     * 设置险种信息
+     */
+    public void setDefinition(InsuranceDefinition definition) {
+        this.definition = definition;
+    }
+
+    /**
+     * 获取限额名称
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 设置限额名称
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 获取责任限额/免赔额
+     */
+    public String getLimit() {
+        return limit;
+    }
+
+    /**
+     * 设置责任限额/免赔额
+     */
+    public void setLimit(String limit) {
+        this.limit = limit;
+    }
+
+    /**
+     * 获取计算单位(次/元/人/万)
+     */
+    public String getUnit() {
+        return unit;
+    }
+
+    /**
+     * 设置计算单位(次/元/人/万)
+     */
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    /**
+     * 获取状态
+     */
+    public String getStatus() {
+        return status;
+    }
+
+    /**
+     * 设置状态
+     */
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    /**
+     * 获取是否删除
+     */
+    public Boolean getDelFlag() {
+        return delFlag;
+    }
+
+    /**
+     * 设置是否删除
+     */
+    public void setDelFlag(Boolean delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    /**
+     * 获取创建人
+     */
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    /**
+     * 设置创建人
+     */
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    /**
+     * 获取创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 设置创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取修改人
+     */
+    public String getUpdateBy() {
+        return updateBy;
+    }
+
+    /**
+     * 设置修改人
+     */
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    /**
+     * 获取修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    /**
+     * 设置修改时间
+     */
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Integer getSortNo() {
+        return sortNo;
+    }
+
+    public void setSortNo(Integer sortNo) {
+        this.sortNo = sortNo;
+    }
 }

+ 4 - 1
picc-common/src/main/java/com/jpsoft/picc/modules/business/entity/InsurancePolicy.java

@@ -60,7 +60,7 @@ public class InsurancePolicy {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone ="GMT+8")
     @ApiModelProperty(value = "转账时间")
     private Date transferTime;
-    @ApiModelProperty(value = "保险代理人")
+    @ApiModelProperty(value = "保险代理人编号")
     private String agentId;
     @ApiModelProperty(value = "保险代理人")
     private InsuranceAgent agent;
@@ -117,6 +117,9 @@ public class InsurancePolicy {
     @ApiModelProperty(value = "社会推广员佣金")
     private BigDecimal promoterFee;
 
+    @ApiModelProperty(value = "社会推广员用户名")
+    private String promoter;
+
     /**
      * 状态翻译
      * @return

+ 6 - 2
picc-common/src/main/resources/mapper/business/InsurancePolicy.xml

@@ -32,7 +32,7 @@
         <result property="finishTime" column="finish_time"/>
         <result property="commission" column="commission_"/>
         <result property="commissionTime" column="commission_time"/>
-
+        <result property="promoter" column="promoter_"/>
         <association property="agent" column="agent_id" select="com.jpsoft.picc.modules.base.dao.InsuranceAgentDAO.get"></association>
         <association property="definition" column="definition_id" select="com.jpsoft.picc.modules.base.dao.InsuranceDefinitionDAO.get"></association>
         <association property="company" column="company_id" select="com.jpsoft.picc.modules.base.dao.CompanyDAO.get"></association>
@@ -48,7 +48,7 @@
 	    (id_,definition_id,status_,process_status,insurance_fee,start_time,end_time,
 	    number_,account_bank,issuing_bank,singl_number,transfer_time,
 	    agent_id,insurance_policy_file,no_,effective_date,del_flag,create_by,create_time,update_by,update_time,
-	    company_id,latest_application_id,policy_no,finish_time,commission_,commission_time)
+	    company_id,latest_application_id,policy_no,finish_time,commission_,commission_time,promoter_)
 		values
 		(
             #{id,jdbcType=VARCHAR}
@@ -78,6 +78,7 @@
             ,#{finishTime,jdbcType= TIMESTAMP }
             ,#{commission,jdbcType= NUMERIC }
             ,#{commissionTime,jdbcType= TIMESTAMP }
+            ,#{promoter,jdbcType=VARCHAR}
 		)
 	]]>
     </insert>
@@ -165,6 +166,9 @@
             <if test="commissionTime!=null">
                 commission_time=#{commissionTime,jdbcType= TIMESTAMP },
             </if>
+            <if test="promoter!=null">
+                promoter_=#{promoter,jdbcType= VARCHAR },
+            </if>
         </set>
         where id_=#{id}
     </update>

+ 40 - 7
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsuranceApplicationController.java

@@ -14,6 +14,7 @@ import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.common.dto.Sort;
 import com.jpsoft.picc.modules.common.utils.PojoUtils;
 import com.jpsoft.picc.modules.common.utils.SignUtil;
+import com.jpsoft.picc.modules.common.utils.VelocityHelper;
 import com.jpsoft.picc.modules.sys.service.DataDictionaryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -279,6 +280,18 @@ public class InsuranceApplicationController {
             //险种关联限额
             List<InsuranceDefinitionLimit> insuranceDefinitionLimits = insuranceDefinitionLimitService.findByDefinitionId(insuranceApplication.getDefinitionId());
 
+            Map<String,Object> varsMap = new HashMap<>();
+            varsMap.put("num",insuranceApplication.getInsuredNumber());
+
+            for(InsuranceDefinitionLimit  insuranceDefinitionLimit : insuranceDefinitionLimits){
+                //限额这里可能是公式,需要带入人数
+                String limit = VelocityHelper.format(insuranceDefinitionLimit.getLimit(),varsMap);
+                insuranceDefinitionLimit.setLimit(limit);
+
+                String unit = VelocityHelper.format(insuranceDefinitionLimit.getUnit(),varsMap);
+                insuranceDefinitionLimit.setUnit(unit);
+            }
+
             acceptInsuranceDTO.setInsuranceDefLimitList(insuranceDefinitionLimits);
 
             //关联岗位
@@ -403,6 +416,8 @@ public class InsuranceApplicationController {
                 srcPolicyStatus = PolicyStatus.valueOf(Integer.valueOf(insurancePolicy.getStatus()));
             }
 
+            Company company = companyService.get(insuranceApplication.getCompanyId());
+
             insurancePolicy.setLatestApplicationId(applicationId);
             insurancePolicy.setCompanyId(insuranceApplication.getCompanyId());
 
@@ -416,6 +431,8 @@ public class InsuranceApplicationController {
             insurancePolicy.setStartTime(startTime.toDate());
             insurancePolicy.setEndTime(startTime.plusMonths(1).toDate());
             insurancePolicy.setStatus(String.valueOf(PolicyStatus.PendingTrial.getValue()));
+            insurancePolicy.setPromoter(company.getPromoter()); //保存一份推广人,以免企业退广人发生变化
+
             insurancePolicy.setUpdateBy(principal.getName());
             insurancePolicy.setUpdateTime(new Date());
 
@@ -455,7 +472,8 @@ public class InsuranceApplicationController {
 
             DateTime startTime = new DateTime(insuranceApplicationDTO.getStartTime());
 
-            DateTime endTime = startTime.plusMonths(insuranceApplicationDTO.getMonthNumber());
+            //加月份后减一天
+            DateTime endTime = startTime.plusMonths(insuranceApplicationDTO.getMonthNumber()).plusDays(-1);
 
             if(insuranceApplication==null){
                 insuranceApplication = new InsuranceApplication();
@@ -711,10 +729,12 @@ public class InsuranceApplicationController {
             @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"),
+            @ApiImplicitParam(name = "status",value = "投保单状态", required = false, paramType = "form",dataType = "String")
     })
     public MessageResult<Map> statusCount(String definitionId,
                                           @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
                                           @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime,
+                                          String status,
                                           HttpServletRequest request){
         AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
 
@@ -754,10 +774,21 @@ public class InsuranceApplicationController {
             }
 
             for(PolicyStatus policyStatus : PolicyStatus.values()){
-                searchParams.put("status", policyStatus.getValue() + "");
-                Page<InsuranceApplication> page = insuranceApplicationService.pageSearch(searchParams, 1, 1, sortList);
+                boolean processed = false;
 
-                dataMap.put(policyStatus.getValue() + "", page.getTotal());
+                if (StringUtils.isEmpty(status)){
+                    processed = true;
+                }
+                else if(status.equals(String.valueOf(policyStatus.getValue()))){
+                    processed = true;
+                }
+
+                if (processed) {
+                    searchParams.put("status", policyStatus.getValue() + "");
+                    Page<InsuranceApplication> page = insuranceApplicationService.pageSearch(searchParams, 1, 1, sortList);
+
+                    dataMap.put(policyStatus.getValue() + "", page.getTotal());
+                }
             }
 
             msgResult.setData(dataMap);
@@ -800,12 +831,14 @@ public class InsuranceApplicationController {
 
             DateTime srcStartTime = new DateTime(srcApplication.getStartTime());
             DateTime srcEndTime = new DateTime(srcApplication.getEndTime());
+            int days = Days.daysBetween(srcStartTime,srcEndTime).getDays();
 
             //todo 修改投保时间
-            destApplication.setStartTime(srcApplication.getEndTime());
-            int days = Days.daysBetween(srcStartTime,srcEndTime).getDays();
+            DateTime destStartTime = srcEndTime.plusDays(1);
+            DateTime destEndTime = destStartTime.plusDays(days);
 
-            destApplication.setEndTime(srcEndTime.plusDays(days).toDate());
+            destApplication.setStartTime(destStartTime.toDate());
+            destApplication.setEndTime(destEndTime.toDate());
             destApplication.setCombinePolicyId(null);
             destApplication.setFinishTime(null);
             destApplication.setUpdateBy(null);

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

@@ -15,6 +15,7 @@ import com.jpsoft.picc.modules.common.dto.MessageResult;
 import com.jpsoft.picc.modules.common.dto.Sort;
 import com.jpsoft.picc.modules.common.utils.OSSUtil;
 import com.jpsoft.picc.modules.common.utils.PojoUtils;
+import com.jpsoft.picc.modules.common.utils.VelocityHelper;
 import com.jpsoft.picc.modules.sys.entity.User;
 import com.jpsoft.picc.modules.sys.service.DataDictionaryService;
 import com.jpsoft.picc.modules.sys.service.UserService;
@@ -491,6 +492,18 @@ public class InsurancePolicyController {
             //险种关联限额
             List<InsuranceDefinitionLimit> insuranceDefinitionLimits = insuranceDefinitionLimitService.findByDefinitionId(insuranceDefinition.getId());
 
+            Map<String,Object> varsMap = new HashMap<>();
+            varsMap.put("num",insurancePolicy.getNumber());
+
+            for(InsuranceDefinitionLimit  insuranceDefinitionLimit : insuranceDefinitionLimits){
+                //限额这里可能是公式,需要带入人数
+                String limit = VelocityHelper.format(insuranceDefinitionLimit.getLimit(),varsMap);
+                insuranceDefinitionLimit.setLimit(limit);
+
+                String unit = VelocityHelper.format(insuranceDefinitionLimit.getUnit(),varsMap);
+                insuranceDefinitionLimit.setUnit(unit);
+            }
+
             acceptInsuranceDTO.setInsuranceDefLimitList(insuranceDefinitionLimits);
 
             //关联岗位
@@ -597,10 +610,12 @@ public class InsurancePolicyController {
             @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"),
+            @ApiImplicitParam(name = "status",value = "投保单状态", required = false, paramType = "form",dataType = "String")
     })
     public MessageResult<Map> statusCount(String definitionId,
                                        @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
                                        @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime,
+                                       String status,
                                        HttpServletRequest request){
         MessageResult<Map> msgResult = new MessageResult<>();
         Map<String, Object> dataMap = new HashMap<>();
@@ -639,10 +654,21 @@ public class InsurancePolicyController {
             }
 
             for(PolicyStatus policyStatus : PolicyStatus.values()) {
-                searchParams.put("status", policyStatus.getValue() + "");
-                Page<InsurancePolicy> page = insurancePolicyService.nextMonthPageList(searchParams, 1, 1000, sortList);
+                boolean processed = false;
 
-                dataMap.put(policyStatus.getValue() + "", page.getTotal());
+                if (StringUtils.isEmpty(status)){
+                    processed = true;
+                }
+                else if(status.equals(String.valueOf(policyStatus.getValue()))){
+                    processed = true;
+                }
+
+                if (processed) {
+                    searchParams.put("status", policyStatus.getValue() + "");
+                    Page<InsurancePolicy> page = insurancePolicyService.nextMonthPageList(searchParams, 1, 1000, sortList);
+
+                    dataMap.put(policyStatus.getValue() + "", page.getTotal());
+                }
             }
 
             msgResult.setData(dataMap);