|
@@ -652,17 +652,54 @@ public class CustomerApiController {
|
|
|
mpInfo.put("handedinprem",df.format(handedinprem));//已交保费
|
|
|
mpInfo.put("insureDay",(insureDay/365) +"年"+(insureDay%365)+"天");
|
|
|
//保障天数需要加上退保之前的天数
|
|
|
- scriptRequest = new Request("GET", "/shanglifeecif.surrenderprotectiontemp/_search?pretty=true&q=scustid:"+scustid);
|
|
|
+ scriptRequest = new Request("GET", "/shanglifeecif.tbcustomerinfo/_search?pretty=true&sort=sdate:asc&size=100&q=scustid:"+scustid);
|
|
|
response = restClient.performRequest(scriptRequest);
|
|
|
result = EntityUtils.toString(response.getEntity());
|
|
|
jsonObject = JSON.parseObject(result);
|
|
|
hitsobject = (JSONObject) jsonObject.get("hits");
|
|
|
array = JSON.parseArray(hitsobject.get("hits").toString());
|
|
|
+ Date fSdate = null;//最终起始日期,分段的
|
|
|
+ Date fEdate = null;//最终结束日期,分段的
|
|
|
for (int i = 0; i <array.size() ; i++) {
|
|
|
JSONObject json = (JSONObject)array.get(i);
|
|
|
JSONObject tbSource = JSON.parseObject(json.getString("_source"));
|
|
|
- if(tbSource.containsKey("tbday")){
|
|
|
- guaranteeDay+=tbSource.getInteger("tbday");
|
|
|
+ /**
|
|
|
+ * 获取该退报客户的所有保单信息,计算天数退保天数加上有效保单的天数
|
|
|
+ */
|
|
|
+ if(tbSource.containsKey("sdate") && tbSource.containsKey("edate")){
|
|
|
+ Date sdate = tbSource.getDate("sdate");
|
|
|
+ Date edate = tbSource.getDate("edate");
|
|
|
+ //获取第一条数据赋值给最后计算的开始和结束日期
|
|
|
+ if(i==0){
|
|
|
+ fSdate = sdate;
|
|
|
+ fEdate = edate;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 逻辑梳理
|
|
|
+ * 下一张保单的开始日期小于等于当前的结束日期 ,最终开始日期按照上一张保单的开始日期
|
|
|
+ * 下一张保单的开始日期大于当前的结束日期 ,需要计算第一部分的保障天数依次循环
|
|
|
+ */
|
|
|
+ if(i>0){
|
|
|
+ if(sdate.getTime()<=fEdate.getTime()){
|
|
|
+ //保单结束日期在最终结束日期之后,需要把保单结束日期赋值给最终结束日期
|
|
|
+ if(edate.getTime()>fEdate.getTime()){
|
|
|
+ fEdate = edate;
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ //保单的开始日期在结束日期之后,需要先计算前一段的日期差值加到保障天数
|
|
|
+ if(i!=array.size()){
|
|
|
+ guaranteeDay+=DateUtils.getDateDifDay(fEdate,fSdate);
|
|
|
+ fSdate = sdate;
|
|
|
+ fEdate = edate;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(i==(array.size()-1)){
|
|
|
+ guaranteeDay+=DateUtils.getDateDifDay(fEdate,fSdate);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|