From e29d594f812c201abaa2e2d1c031a9ab61ba8200 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 03 六月 2025 09:09:27 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/core/utils/DateUtil.java | 14
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java | 2
server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java | 10 +
server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java | 4
server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java | 17 +
server/service/src/main/java/com/doumee/core/utils/Constants.java | 23 ++
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 53 -----
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 399 +++++++++++++++++++++++++++++++++++++++
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java | 56 +++++
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java | 1
10 files changed, 511 insertions(+), 68 deletions(-)
diff --git a/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java b/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
index 9f7e5d9..33a98f7 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
@@ -6,6 +6,9 @@
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.vo.CompensationVO;
import com.doumee.dao.business.vo.RiskConfigVO;
+import com.doumee.dao.business.vo.dataBoard.InsuranceDataVO;
+import com.doumee.dao.business.vo.dataBoard.SettleClaimsDataVO;
+import com.doumee.service.business.InsuranceApplyService;
import com.doumee.service.business.SettleClaimsService;
import com.doumee.service.system.SystemDictDataService;
import io.swagger.annotations.Api;
@@ -29,6 +32,7 @@
@Autowired
private SettleClaimsService settleClaimsService;
+
@ApiOperation("鑾峰彇椋庨櫓閰嶇疆")
@GetMapping("/getRiskConfig")
@@ -180,4 +184,17 @@
}
+ @ApiOperation("鐞嗚禂鎶ユ鏁版嵁鎶ヨ〃")
+ @GetMapping("/getSettleClaimsDataVO")
+ public ApiResponse<SettleClaimsDataVO> getSettleClaimsDataVO() {
+ return ApiResponse.success(settleClaimsService.getSettleClaimsDataVO());
+ }
+
+ @ApiOperation("鐞嗚禂鎶ユ鏁版嵁鎶ヨ〃")
+ @GetMapping("/getInsuranceDataVO")
+ public ApiResponse<InsuranceDataVO> getInsuranceDataVO() {
+ return ApiResponse.success(settleClaimsService.getInsuranceDataVO());
+ }
+
+
}
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 00e3625..c81b7c9 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -21,7 +21,10 @@
import java.math.RoundingMode;
import java.net.URL;
import java.net.URLDecoder;
+import java.time.Instant;
import java.time.LocalDate;
+import java.time.Period;
+import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.Date;
@@ -317,6 +320,26 @@
return Constants.countPriceVO(countCyclePriceDTO.getStartDate(),countCyclePriceDTO.getSolutions());
}
+ public static int calculateAge(String idCard,Date dateDate) {
+ if (idCard == null || idCard.length() != 18) {
+ throw new IllegalArgumentException("韬唤璇佸彿鐮佸繀椤绘槸18浣�");
+ }
+
+ // 鎻愬彇鍑虹敓鏃ユ湡
+ String birthDateStr = idCard.substring(6, 14); // 渚嬪锛�19900101
+ LocalDate birthDate = LocalDate.parse(birthDateStr);
+ Instant instant = dateDate.toInstant();
+ // 鑾峰彇褰撳墠鏃ユ湡
+ LocalDate currentDate = instant.atZone(ZoneId.systemDefault()).toLocalDate(); // 杞崲涓� LocalDate
+
+ // 璁$畻骞撮緞
+ Period period = Period.between(birthDate, currentDate);
+ int age = period.getYears(); // 鐩存帴鑾峰彇骞翠唤宸嵆涓哄勾榫�
+
+ return age;
+ }
+
+
public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){
CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
//澶�
diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
index be3b15b..065ac27 100644
--- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3204,13 +3204,13 @@
public static void main(String[] args) throws Exception{
-// System.out.println(DateUtil.DateToStr(
-// DateUtil.afterDateByType(new Date(),1,-1),"yyyy-MM")
-// );
-
- System.out.println(DateUtil.getBetweenHours(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 10:46:43"),
- DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 07:41:43")));
- ;
+ System.out.println(DateUtil.DateToStr(
+ DateUtil.afterDateByType(new Date(),1,-11),"yyyy-MM")
+ );
+//
+// System.out.println(DateUtil.getBetweenHours(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 10:46:43"),
+// DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 07:41:43")));
+// ;
// System.out.println(DateUtil.getLongDateTime(new Date()));;
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
index b1fbc38..72f77bd 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
@@ -59,6 +59,9 @@
@ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎emeber锛�", example = "1")
private Integer memberId;
+ @ApiModelProperty(value = "浜哄憳骞撮緞", example = "1")
+ private Integer memberAge;
+
@ApiModelProperty(value = "浜嬫晠鍙戠敓鏃堕棿")
private String happenTime;
@@ -157,6 +160,13 @@
private Integer riskNewUser ;
@ApiModelProperty(value = "璁捐鏁忔劅璇嶏紝澶氫釜鑻辨枃閫楀彿闅斿紑")
private String riskSensitive;
+
+ @ApiModelProperty(value = "寤惰繜鎶ユ椋庨櫓 0鍚�1鏄�")
+ private Integer riskDelayUnit ;
+
+ @ApiModelProperty(value = "淇濆崟鏈敓鏁堥闄� 0鍚�1鏄�")
+ private Integer riskUnTakeEffect ;
+
@ApiModelProperty(value = "鎶ユ鍙疯缃姸鎬� 0鏈缃� 1宸茶缃� 2宸蹭慨鏀�")
private Integer reportNumStatus;
@ApiModelProperty(value = "鎵�鏈夎禂浠橀」淇℃伅锛坖son鏁扮粍[{name:鈥滀紮椋熻垂鈥�,val:100,info:鈥滀紮椋熻垂璇存槑鈥�,type:0}]锛�,type:0涓昏璧斾粯椤� 1鍏朵粬璧斾粯椤� 2瀹氭崯鏂规璐圭敤\t")
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java
index 99ef2ad..886e15d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java
@@ -18,5 +18,7 @@
@ApiModelProperty(value = "绗簩涓弬鏁� - 绾靛悜鍧愭爣", example = "1")
private String dataSecond;
+ @ApiModelProperty(value = "绗笁涓弬鏁�", example = "1")
+ private String dataThird;
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java
index fca212e..69c20de 100644
--- a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java
@@ -40,4 +40,60 @@
@ApiModelProperty(value = "骞冲潎鐞嗚禂澶勭悊鏃堕暱 杩�6涓湀")
private List<DataListVO> averageSettleClaimsList;
+
+ @ApiModelProperty(value = "鏈湀澶氭鍑洪櫓娆℃暟")
+ private Integer riskTimesCxTotal;
+ @ApiModelProperty(value = "鏈湀澶氭鍑洪櫓娆℃暟鐜瘮")
+ private BigDecimal riskTimesCxRata;
+ @ApiModelProperty(value = "鐤戜技閲嶅鎶ユ椋庨櫓娆℃暟")
+ private Integer riskRepeatTotal;
+ @ApiModelProperty(value = "鐤戜技閲嶅鎶ユ椋庨櫓娆℃暟鐜瘮")
+ private BigDecimal riskRepeatRata;
+ @ApiModelProperty(value = "绱㈣禂娆℃暟杩囧娆℃暟")
+ private Integer riskTimesSpTotal;
+ @ApiModelProperty(value = "鐤戜技閲嶅鎶ユ椋庨櫓娆℃暟鐜瘮")
+ private BigDecimal riskTimesSpRata;
+ @ApiModelProperty(value = "鏂板憳宸ュ嚭闄╅闄╂鏁�")
+ private Integer riskNewUserTotal;
+ @ApiModelProperty(value = "鏂板憳宸ュ嚭闄╅闄╃幆姣�")
+ private BigDecimal riskNewUserRata;
+ @ApiModelProperty(value = "鏁忔劅璇嶉闄╂鏁�")
+ private Integer riskSensitiveTotal;
+ @ApiModelProperty(value = "鏁忔劅璇嶉闄╃幆姣�")
+ private BigDecimal riskSensitiveRata;
+ @ApiModelProperty(value = "寤惰繜鎶ユ椋庨櫓娆℃暟")
+ private Integer riskDelayUnitTotal;
+ @ApiModelProperty(value = "寤惰繜鎶ユ椋庨櫓鐜瘮")
+ private BigDecimal riskDelayUnitRata;
+ @ApiModelProperty(value = "淇濆崟鏈敓鏁堥闄╂鏁�")
+ private Integer riskUnTakeEffectTotal;
+ @ApiModelProperty(value = "淇濆崟鏈敓鏁堥闄╃幆姣�")
+ private BigDecimal riskUnTakeEffectRata;
+
+
+ @ApiModelProperty(value = "椋庨櫓鏁忔劅璇嶆姤琛�")
+ private List<DataListVO> sensitiveDataList;
+
+ @ApiModelProperty(value = "鍖哄煙鍒嗗竷")
+ private List<DataListVO> areaDataList;
+
+ @ApiModelProperty(value = "鍚勭被鍨嬫浠跺垎甯�")
+ private List<DataListVO> caseTypeDataList;
+
+ @ApiModelProperty(value = "鐞嗚禂閲戦瓒嬪娍 - 鏈�")
+ private List<DataListVO> monthTotalMoneyDataList;
+
+ @ApiModelProperty(value = "缁撴鐜�")
+ private List<DataListVO> closeRataDataList;
+
+
+ @ApiModelProperty(value = "浜嬫晠绫诲瀷鍒嗗竷")
+ private List<DataListVO> typeDataList;
+
+ @ApiModelProperty(value = "浜哄憳骞撮緞鍒嗗竷")
+ private List<DataListVO> memberAgeDataList;
+
+ @ApiModelProperty(value = "宸ョ鏁伴噺鍒嗗竷")
+ private List<DataListVO> workTypeDataList;
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
index 2c36e68..4b36834 100644
--- a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -189,7 +189,6 @@
void testSendEmail();
-// InsuranceDataVO getInsuranceDataVO();
}
diff --git a/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java b/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java
index f6db356..076d5eb 100644
--- a/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java
@@ -5,6 +5,7 @@
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.SettleClaims;
import com.doumee.dao.business.vo.CompensationVO;
+import com.doumee.dao.business.vo.dataBoard.InsuranceDataVO;
import com.doumee.dao.business.vo.dataBoard.SettleClaimsDataVO;
import com.doumee.service.system.impl.SystemDictDataServiceImpl;
import io.swagger.models.auth.In;
@@ -267,4 +268,7 @@
void updReceiveInfo(UpdReceiveInfoDTO dto);
SettleClaimsDataVO getSettleClaimsDataVO();
+
+
+ InsuranceDataVO getInsuranceDataVO();
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 906ff97..5800416 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -3766,59 +3766,6 @@
return applyPowerVO;
}
-// @Override
-// public InsuranceDataVO getInsuranceDataVO(){
-// InsuranceDataVO insuranceDataVO = new InsuranceDataVO();
-// insuranceDataVO.setInsuranceTotal(Constants.ZERO);
-// insuranceDataVO.setInsuranceAddTotal(Constants.ZERO);
-// insuranceDataVO.setInsuranceApplyTotal(Constants.ZERO);
-// insuranceDataVO.setInsuranceApplyAddTotal(Constants.ZERO);
-// insuranceDataVO.setInsuranceUserTotal(Constants.ZERO);
-// insuranceDataVO.setInsuranceUserAddTotal(Constants.ZERO);
-// insuranceDataVO.setTotalAddFee(BigDecimal.ZERO);
-// insuranceDataVO.setTotalFee(BigDecimal.ZERO);
-// //鏈湀鏃ユ湡
-// String monthData = DateUtil.DateToStr(new Date(),"yyyy-MM");
-// //淇濋櫓鍏徃鏁伴噺
-// List<Insurance> insuranceList = insuranceMapper.selectList(new QueryWrapper<Insurance>().lambda().eq(Insurance::getIsdeleted,Constants.ZERO).eq(Insurance::getStatus,Constants.ZERO));
-// if(CollectionUtils.isNotEmpty(insuranceList)){
-// insuranceDataVO.setInsuranceTotal(insuranceList.size());
-// insuranceDataVO.setInsuranceAddTotal(insuranceList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
-// }
-//
-// //淇濆崟鏁伴噺
-// List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>()
-// .lambda().eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
-// Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
-// );
-// if(CollectionUtils.isNotEmpty(insuranceApplyList)){
-// insuranceDataVO.setInsuranceApplyTotal(insuranceApplyList.size());
-// insuranceDataVO.setInsuranceApplyAddTotal(insuranceApplyList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
-// }
-//
-// //鍦ㄤ繚浜烘暟
-// List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>().selectAll(ApplyDetail.class)
-// .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
-// .eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
-// Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
-// .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
-// .apply(" ( t.START_TIME >= now() and t.END_TIME <= now() ) ")
-// );
-// if(CollectionUtils.isNotEmpty(applyDetailList)){
-// insuranceDataVO.setInsuranceUserTotal(applyDetailList.size());
-// insuranceDataVO.setInsuranceUserAddTotal(
-// applyDetailList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
-// .equals(monthData)).collect(Collectors.toList()).size());
-//
-// insuranceDataVO.setTotalFee(applyDetailList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-// insuranceDataVO.setTotalAddFee(applyDetailList.stream()
-// .filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
-// .equals(monthData)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-// }
-//
-// return insuranceDataVO;
-// }
-
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index aa101c3..e4d916d 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -14,6 +14,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dto.*;
+import com.doumee.dao.business.join.ApplyDetailJoinMapper;
import com.doumee.dao.business.join.MultifileJoinMapper;
import com.doumee.dao.business.join.SettleClaimsJoinMapper;
import com.doumee.dao.business.join.SettleClaimsLogJoinMapper;
@@ -23,6 +24,7 @@
import com.doumee.dao.business.vo.SettleClaimsMoneyVO;
import com.doumee.dao.business.vo.SettleParentStatusVO;
import com.doumee.dao.business.vo.dataBoard.DataListVO;
+import com.doumee.dao.business.vo.dataBoard.InsuranceDataVO;
import com.doumee.dao.business.vo.dataBoard.SettleClaimsDataVO;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.SettleClaimsLogService;
@@ -53,6 +55,7 @@
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -100,6 +103,18 @@
@Autowired
private ApplyDetailMapper applyDetailMapper;
+ @Autowired
+ private AreasMapper areasMapper;
+
+
+ @Autowired
+ private WorktypeMapper worktypeMapper;
+
+ @Autowired
+ private InsuranceMapper insuranceMapper;
+
+ @Autowired
+ private ApplyDetailJoinMapper applyDetailJoinMapper;
/**
* 鍒犻櫎闄勪欢
* @return
@@ -1378,6 +1393,9 @@
settleClaims.setOrigin(Constants.ZERO);
settleClaims.setMemberName(member.getName());
settleClaims.setCreateDate(new Date());
+ settleClaims.setMemberAge(
+ Constants.calculateAge(member.getIdcardNo(),DateUtil.StringToDate(settleClaims.getHappenTime()))
+ );
if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)&&StringUtils.isBlank(settleClaims.getCode())){
Long nextCode = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda().ne(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())
.eq(SettleClaims::getOrigin,Constants.ZERO) .like(SettleClaims::getCreateDate,DateUtil.getDate(new Date(),"yyyy-MM-dd"))
@@ -1443,6 +1461,12 @@
}
public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){
+ settleClaims.setRiskDelayUnit(Constants.ZERO);
+ settleClaims.setRiskUnTakeEffect(Constants.ZERO);
+ settleClaims.setRiskNewUser(Constants.ZERO);
+ settleClaims.setRiskTimesCx(Constants.ZERO);
+ settleClaims.setRiskTimesSp(Constants.ZERO);
+ settleClaims.setRiskRepeat(Constants.ZERO);
//鏍规嵁淇濆崟淇℃伅 鏌ヨ鍑轰富鏂规
InsuranceApply insuranceApply = insuranceApplyMapper.selectById(settleClaims.getInsuranceApplyId());
if(Objects.isNull(insuranceApply)){
@@ -1491,6 +1515,7 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
}else{
map.put("info","浜嬫晠鍙戠敓鏃堕棿鏃╀簬淇濆崟鐢熸晥鏃堕棿"+solutionsBase.getRiskNewUserUnit()+(Constants.equalsInteger(solutionsBase.getRiskNewUserUnit(),Constants.ONE)?"灏忔椂鍐�":"澶╁唴"));
+ settleClaims.setRiskUnTakeEffect(Constants.ONE);
riskList.add(map);
}
}else{
@@ -1507,17 +1532,20 @@
if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ZERO)){
if(DateUtil.getBetweenMin(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"鍒嗛挓");
+ settleClaims.setRiskDelayUnit(Constants.ONE);
riskList.add(map);
}
}else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ONE)){
if(DateUtil.getBetweenHours(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"灏忔椂");
riskList.add(map);
+ settleClaims.setRiskDelayUnit(Constants.ONE);
}
}else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.TWO)){
if(DateUtil.getBetweenDay(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"澶�");
riskList.add(map);
+ settleClaims.setRiskDelayUnit(Constants.ONE);
}
}
}
@@ -2912,7 +2940,7 @@
settleClaimsTotal.setDataFirst(monthData);
settleClaimsTotal.setDataSecond(
- settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).toString()
+ settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size()+""
);
settleClaimsFee.setDataFirst(monthData);
@@ -2922,9 +2950,14 @@
averageSettleClaims.setDataFirst(monthData);
Integer sumHours = closeCaseMonthList.stream().map(j->
j.getTotalHours()).reduce(Constants.ZERO,Integer::sum);
- averageSettleClaims.setDataSecond(
- new BigDecimal(sumHours.toString()).divide(new BigDecimal((closeCaseMonthList.size()*24)+"")).toString()
- );
+ if(Objects.isNull(sumHours)||CollectionUtils.isEmpty(closeCaseMonthList)
+ || Constants.equalsInteger(sumHours,Constants.ZERO)){
+ averageSettleClaims.setDataSecond("0");
+ }else{
+ averageSettleClaims.setDataSecond(
+ new BigDecimal(sumHours.toString()).divide(new BigDecimal((closeCaseMonthList.size()*24)+""),2,BigDecimal.ROUND_HALF_UP).toString());
+ }
+ ;
settleClaimsTotalList.add(settleClaimsTotal);
settleClaimsFeeList.add(settleClaimsFee);
@@ -2945,21 +2978,373 @@
settleClaimsDataVO.setAverageSettleClaimsTime(
new BigDecimal(closeCaseList.stream().map(i->i.getTotalHours()).reduce(Constants.ZERO,Integer::sum).toString())
.divide(new BigDecimal((closeCaseList.size()*24)+"") ,2,BigDecimal.ROUND_HALF_UP)
-
);
+ String monthDate = DateUtil.getFomartDate(new Date(),"yyyy-MM");
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.MONTH, -1);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+ String lastMonth = sdf.format(calendar.getTime());
+
+ //椋庨櫓妗堜欢鍗犳瘮鏁版嵁
+ settleClaimsDataVO.setRiskTimesCxTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&Constants.equalsInteger(i.getRiskTimesCx(),Constants.ONE))
+ .collect(Collectors.toList()).size());
+ Integer lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&Constants.equalsInteger(i.getRiskTimesCx(),Constants.ONE))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskTimesCxRata(this.jsRata(settleClaimsDataVO.getRiskTimesCxTotal(),lastMonthTotal));
+
+ settleClaimsDataVO.setRiskRepeatTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&Constants.equalsInteger(i.getRiskRepeat(),Constants.ONE))
+ .collect(Collectors.toList()).size());
+ lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&Constants.equalsInteger(i.getRiskRepeat(),Constants.ONE))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskRepeatRata(this.jsRata(settleClaimsDataVO.getRiskRepeatTotal(),lastMonthTotal));
+
+ settleClaimsDataVO.setRiskTimesSpTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&Constants.equalsInteger(i.getRiskTimesSp(),Constants.ONE))
+ .collect(Collectors.toList()).size());
+ lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&Constants.equalsInteger(i.getRiskTimesSp(),Constants.ONE))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskTimesSpRata(this.jsRata(settleClaimsDataVO.getRiskTimesSpTotal(),lastMonthTotal));
+
+ settleClaimsDataVO.setRiskNewUserTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&Constants.equalsInteger(i.getRiskNewUser(),Constants.ONE))
+ .collect(Collectors.toList()).size());
+ lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&Constants.equalsInteger(i.getRiskNewUser(),Constants.ONE))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskNewUserRata(this.jsRata(settleClaimsDataVO.getRiskNewUserTotal(),lastMonthTotal));
+
+ settleClaimsDataVO.setRiskSensitiveTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&StringUtils.isNotBlank(i.getRiskSensitive()))
+ .collect(Collectors.toList()).size());
+ lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&StringUtils.isNotBlank(i.getRiskSensitive()))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskSensitiveRata(this.jsRata(settleClaimsDataVO.getRiskSensitiveTotal(),lastMonthTotal));
+
+ settleClaimsDataVO.setRiskDelayUnitTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&Constants.equalsInteger(i.getRiskDelayUnit(),Constants.ONE))
+ .collect(Collectors.toList()).size());
+ lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&Constants.equalsInteger(i.getRiskDelayUnit(),Constants.ONE))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskDelayUnitRata(this.jsRata(settleClaimsDataVO.getRiskDelayUnitTotal(),lastMonthTotal));
+
+
+ settleClaimsDataVO.setRiskUnTakeEffectTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate)
+ &&Constants.equalsInteger(i.getRiskUnTakeEffect(),Constants.ONE))
+ .collect(Collectors.toList()).size());
+ lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth)
+ &&Constants.equalsInteger(i.getRiskUnTakeEffect(),Constants.ONE))
+ .collect(Collectors.toList()).size();
+ settleClaimsDataVO.setRiskUnTakeEffectRata(this.jsRata(settleClaimsDataVO.getRiskUnTakeEffectTotal(),lastMonthTotal));
+
+ //椋庨櫓鏁忔劅璇嶆姤琛�
+ List<String> sensitiveList = settleClaimsList.stream().filter(i->StringUtils.isNotBlank(i.getRiskSensitive())).map(i->i.getRiskSensitive()).collect(Collectors.toList());
+ if(CollectionUtils.isNotEmpty(sensitiveList)){
+ List<String> allSensitiveStrList = new ArrayList<>();
+ for (String string:sensitiveList) {
+ allSensitiveStrList.addAll(Arrays.asList(string.split(",")));
+ }
+ Set<String> sensitiveSetList = new HashSet<>(allSensitiveStrList);
+ List<DataListVO> sensitiveDataList = new ArrayList<>();
+ for (String string:sensitiveSetList) {
+ DataListVO dataListVO = new DataListVO();
+ dataListVO.setDataFirst(string);
+ dataListVO.setDataSecond(allSensitiveStrList.stream().filter(i->i.equals(string)).collect(Collectors.toList()).size()+"");
+ sensitiveDataList.add(dataListVO);
+ }
+ settleClaimsDataVO.setSensitiveDataList(sensitiveDataList);
+ }
+
+ //鍖哄煙妗堜欢绫诲瀷鍒嗗竷
+ this.getAreaDistribution(settleClaimsDataVO,
+ settleClaimsList.stream().filter(i->StringUtils.isNotBlank(i.getAreaId())).collect(Collectors.toList()));
+
+ //鍚勭被鍨嬫浠跺垎甯�
+ this.getCaseType(settleClaimsDataVO,
+ settleClaimsList.stream().filter(i->Objects.nonNull(i.getCaseType())).collect(Collectors.toList()));
+
+ //鎸夋湀缁熻妗堜欢閲戦
+ this.getSettleTotalMoneyData(settleClaimsDataVO,
+ settleClaimsList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList()));
+
+ //缁撴鐜�
+ this.getCloseRata(settleClaimsDataVO,
+ settleClaimsList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList()));
+
+ //骞撮緞鍒嗗竷
+ this.getMemberAgeDataList(settleClaimsDataVO,
+ settleClaimsList.stream().filter(i->Objects.nonNull(i.getMemberAge())).collect(Collectors.toList()));
+
+ //宸ョ鏁版嵁鍒嗗竷
+ this.getWorkTypeDate(settleClaimsDataVO,
+ settleClaimsList.stream().filter(i->Objects.nonNull(i.getWorktypeId())).collect(Collectors.toList()));
}
-
-
return settleClaimsDataVO;
+ }
+ public BigDecimal jsRata(Integer a,Integer b){
+ if(Objects.isNull(a)||Objects.isNull(b)||Constants.equalsInteger(a,Constants.ZERO)||Constants.equalsInteger(b,Constants.ZERO)){
+ return BigDecimal.ZERO;
+ }
+ return new BigDecimal(a.toString()).divide(new BigDecimal(b.toString()),2,BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.ONE);
}
+ public void getAreaDistribution(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<Areas> areasList = areasMapper.selectList(new QueryWrapper<Areas>().lambda().isNull(Areas::getParentId).orderByAsc(Areas::getId));
+ List<DataListVO> areaDataList = new ArrayList<>();
+ for (Areas areas:areasList) {
+ DataListVO dataListVO = new DataListVO();
+ dataListVO.setDataFirst(areas.getName());
+ dataListVO.setDataSecond(
+ settleClaimsList.stream().filter(i->i.getAreaId().indexOf(areas.getCode())>=Constants.ZERO).collect(Collectors.toList()).size()+""
+ );
+ dataListVO.setDataThird(areas.getCode());
+ areaDataList.add(dataListVO);
+ }
+ settleClaimsDataVO.setAreaDataList(areaDataList);
+ }
+
+
+ public void getCaseType(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<DataListVO> caseTypeDataList = new ArrayList<>();
+ //1=鍖荤枟锛�2=浼ゆ畫锛�3=姝讳骸
+ for (int i = 1; i <= 3; i++) {
+ int finalI = i;
+ DataListVO dataListVO = new DataListVO();
+ if(finalI==1){
+ dataListVO.setDataFirst("鍖荤枟");
+ }else{
+ dataListVO.setDataFirst(Constants.equalsInteger(finalI,Constants.TWO)?"浼ゆ畫":"姝讳骸");
+ }
+ dataListVO.setDataSecond(settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getCaseType())&&Constants.equalsInteger(j.getCaseType(), finalI)).collect(Collectors.toList()).size()+"");
+ caseTypeDataList.add(dataListVO);
+ }
+ settleClaimsDataVO.setCaseTypeDataList(caseTypeDataList);
+ }
+
+
+ public void getSettleTotalMoneyData(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<DataListVO> monthTotalMoneyDataList = new ArrayList<>();
+ for (int i = -11; i <= 0 ; i++) {
+ String month = DateUtil.DateToStr(
+ DateUtil.afterDateByType(new Date(),1,i),"yyyy-MM");
+ DataListVO dataListVO = new DataListVO();
+ dataListVO.setDataFirst(month);
+ BigDecimal hpAccount = settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(month))
+ .map(j->j.getHpAccount().add(j.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add);
+ dataListVO.setDataSecond(hpAccount.compareTo(BigDecimal.ZERO)>Constants.ZERO?
+ hpAccount.divide(new BigDecimal("10000"),2,BigDecimal.ROUND_HALF_UP).toString():"0"
+ );
+ monthTotalMoneyDataList.add(dataListVO);
+ }
+ settleClaimsDataVO.setMonthTotalMoneyDataList(monthTotalMoneyDataList);
+ }
+ public void getCloseRata(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<DataListVO> closeRataDataList = new ArrayList<>();
+ for (int i = -5; i <= 0 ; i++) {
+ String month = DateUtil.DateToStr(
+ DateUtil.afterDateByType(new Date(),1,i),"yyyy-MM");
+ DataListVO dataListVO = new DataListVO();
+ dataListVO.setDataFirst(month);
+ List<SettleClaims> monthList = settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(month)).collect(Collectors.toList());
+ if(CollectionUtils.isNotEmpty(monthList)){
+ List<SettleClaims> closeCaseList = monthList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(closeCaseList)){
+ dataListVO.setDataSecond("0");
+ }else{
+ dataListVO.setDataSecond(new BigDecimal(closeCaseList.size()+"").divide(new BigDecimal(monthList.size()+""),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%");
+ }
+ }else{
+ dataListVO.setDataSecond("0");
+ }
+ closeRataDataList.add(dataListVO);
+ }
+ settleClaimsDataVO.setCloseRataDataList(closeRataDataList);
+ }
+
+
+ public void getType(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<DataListVO> typeDataList = new ArrayList<>();
+ //0宸ヤ綔鏈熼棿鍙椾激 1涓婁笅鐝�斾腑鍙椾激 2闈炲伐浣滄椂闂村彈浼� 3鎰忓鍙椾激
+ for (int i = 0; i <= 3; i++) {
+ int finalI = i;
+ DataListVO dataListVO = new DataListVO();
+ if(finalI==0){
+ dataListVO.setDataFirst("宸ヤ綔鏈熼棿鍙椾激");
+ }else if(finalI==1){
+ dataListVO.setDataFirst("涓婁笅鐝�斾腑鍙椾激");
+ }else{
+ dataListVO.setDataFirst(Constants.equalsInteger(finalI,Constants.TWO)?"闈炲伐浣滄椂闂村彈浼�":"鎰忓鍙椾激");
+ }
+ dataListVO.setDataSecond(settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getType())&&Constants.equalsInteger(j.getCaseType(), finalI)).collect(Collectors.toList()).size()+"");
+ typeDataList.add(dataListVO);
+ }
+ settleClaimsDataVO.setTypeDataList(typeDataList);
+ }
+
+
+ public void getMemberAgeDataList(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<DataListVO> memberAgeDataList = new ArrayList<>();
+
+ DataListVO dataListVOa = new DataListVO();
+ dataListVOa.setDataFirst("18-25");
+ dataListVOa.setDataSecond(
+ settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getMemberAge())&&
+ (j.getMemberAge() >= 18 || j.getMemberAge() <= 25))
+ .collect(Collectors.toList()).size()+""
+ );
+ memberAgeDataList.add(dataListVOa);
+
+
+ DataListVO dataListVOb = new DataListVO();
+ dataListVOb.setDataFirst("26-35");
+ dataListVOb.setDataSecond(
+ settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getMemberAge())&&
+ (j.getMemberAge() >= 26 || j.getMemberAge() <= 35))
+ .collect(Collectors.toList()).size()+""
+ );
+ memberAgeDataList.add(dataListVOb);
+
+ DataListVO dataListVOc = new DataListVO();
+ dataListVOc.setDataFirst("36-45");
+ dataListVOc.setDataSecond(
+ settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getMemberAge())&&
+ (j.getMemberAge() >= 36 || j.getMemberAge() <= 45))
+ .collect(Collectors.toList()).size()+""
+ );
+ memberAgeDataList.add(dataListVOc);
+
+ DataListVO dataListVOd = new DataListVO();
+ dataListVOd.setDataFirst("46-55");
+ dataListVOd.setDataSecond(
+ settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getMemberAge())&&
+ (j.getMemberAge() >= 46 || j.getMemberAge() <= 55))
+ .collect(Collectors.toList()).size()+""
+ );
+ memberAgeDataList.add(dataListVOd);
+
+ DataListVO dataListVOe = new DataListVO();
+ dataListVOe.setDataFirst("56-65");
+ dataListVOe.setDataSecond(
+ settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getMemberAge())&&
+ (j.getMemberAge() >= 56 || j.getMemberAge() <= 65))
+ .collect(Collectors.toList()).size()+""
+ );
+ memberAgeDataList.add(dataListVOe);
+
+
+ DataListVO dataListVOf = new DataListVO();
+ dataListVOf.setDataFirst("65+");
+ dataListVOf.setDataSecond(
+ settleClaimsList.stream()
+ .filter(j->Objects.nonNull(j.getMemberAge())&&
+ j.getMemberAge() >= 66 )
+ .collect(Collectors.toList()).size()+""
+ );
+ memberAgeDataList.add(dataListVOf);
+ settleClaimsDataVO.setMemberAgeDataList(memberAgeDataList);
+ }
+
+
+
+ public void getWorkTypeDate(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){
+ List<DataListVO> workTypeDataList = new ArrayList<>();
+ if(CollectionUtils.isEmpty(settleClaimsList)){
+ return ;
+ }
+ List<Integer> workTypeIdList = settleClaimsList.stream().map(i->i.getWorktypeId()).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(workTypeIdList)){
+ return ;
+ }
+ Set<Integer> setWorkType = new HashSet<>(workTypeIdList);
+ List<Worktype> workTypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda().eq(Worktype::getIsdeleted,Constants.ZERO).in(Worktype::getId,setWorkType));
+ if(CollectionUtils.isEmpty(workTypeList)){
+ return ;
+ }
+ for (Worktype worktype:workTypeList) {
+ DataListVO dataListVO = new DataListVO();
+ dataListVO.setDataFirst(worktype.getName());
+ dataListVO.setDataSecond(
+ settleClaimsList.stream().filter(i->Constants.equalsInteger(i.getWorktypeId(),worktype.getId())).collect(Collectors.toList()).size()+"");
+ workTypeDataList.add(dataListVO);
+ }
+ workTypeDataList = workTypeDataList.stream().sorted(Comparator.comparing(DataListVO::getDataSecond).reversed()).collect(Collectors.toList());
+ settleClaimsDataVO.setWorkTypeDataList(workTypeDataList);
+ }
+
+
+
+ @Override
+ public InsuranceDataVO getInsuranceDataVO(){
+ InsuranceDataVO insuranceDataVO = new InsuranceDataVO();
+ insuranceDataVO.setInsuranceTotal(Constants.ZERO);
+ insuranceDataVO.setInsuranceAddTotal(Constants.ZERO);
+ insuranceDataVO.setInsuranceApplyTotal(Constants.ZERO);
+ insuranceDataVO.setInsuranceApplyAddTotal(Constants.ZERO);
+ insuranceDataVO.setInsuranceUserTotal(Constants.ZERO);
+ insuranceDataVO.setInsuranceUserAddTotal(Constants.ZERO);
+ insuranceDataVO.setTotalAddFee(BigDecimal.ZERO);
+ insuranceDataVO.setTotalFee(BigDecimal.ZERO);
+ //鏈湀鏃ユ湡
+ String monthData = DateUtil.DateToStr(new Date(),"yyyy-MM");
+ //淇濋櫓鍏徃鏁伴噺
+ List<Insurance> insuranceList = insuranceMapper.selectList(new QueryWrapper<Insurance>().lambda().eq(Insurance::getIsdeleted,Constants.ZERO).eq(Insurance::getStatus,Constants.ZERO));
+ if(CollectionUtils.isNotEmpty(insuranceList)){
+ insuranceDataVO.setInsuranceTotal(insuranceList.size());
+ insuranceDataVO.setInsuranceAddTotal(insuranceList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
+ }
+
+ //淇濆崟鏁伴噺
+ List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>()
+ .lambda().eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
+ Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+ );
+ if(CollectionUtils.isNotEmpty(insuranceApplyList)){
+ insuranceDataVO.setInsuranceApplyTotal(insuranceApplyList.size());
+ insuranceDataVO.setInsuranceApplyAddTotal(insuranceApplyList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
+ }
+
+ //鍦ㄤ繚浜烘暟
+ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>().selectAll(ApplyDetail.class)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+ .eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
+ Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+ .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
+ .apply(" ( t.START_TIME >= now() and t.END_TIME <= now() ) ")
+ );
+ if(CollectionUtils.isNotEmpty(applyDetailList)){
+ insuranceDataVO.setInsuranceUserTotal(applyDetailList.size());
+ insuranceDataVO.setInsuranceUserAddTotal(
+ applyDetailList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
+ .equals(monthData)).collect(Collectors.toList()).size());
+
+ insuranceDataVO.setTotalFee(applyDetailList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ insuranceDataVO.setTotalAddFee(applyDetailList.stream()
+ .filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
+ .equals(monthData)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+
+ return insuranceDataVO;
+ }
--
Gitblit v1.9.3