From e1c072109e62f4adcb53af0d2c69b896b9159059 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 29 五月 2025 18:21:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java |  285 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 265 insertions(+), 20 deletions(-)

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 e752211..aa101c3 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
@@ -67,6 +67,8 @@
     @Autowired
     private SettleClaimsMapper settleClaimsMapper;
     @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
     private SettleClaimsExtMapper settleClaimsExtMapper;
 
     @Autowired
@@ -396,6 +398,7 @@
         }
         if(!Constants.equalsObject(settleClaims.getStatus(),Constants.ZERO)
                 &&(  Objects.isNull(settleClaims.getExtData().getBxName())
+                || Objects.isNull(settleClaims.getExtData().getReportDate())
                 || Objects.isNull(settleClaims.getExtData().getBxCode())
                 || Objects.isNull(settleClaims.getExtData().getBxEnddate())
                 || Objects.isNull(settleClaims.getExtData().getBxOrg())
@@ -567,6 +570,7 @@
         )>Constants.ZERO){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!");
         }
+
         settleClaims.setCreateDate(new Date());
         settleClaims.setIsdeleted(Constants.ZERO);
         settleClaims.setCompanyId(loginUserInfo.getCompanyId());
@@ -783,7 +787,102 @@
         List<SettleParentStatusVO> parentStatusVOList = this.getParentStatus(settleClaims);
         settleClaims.setParentStatusVOList(parentStatusVOList);
         settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
+
+        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey())
+            || Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){
+            SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class,
+                    new MPJLambdaWrapper<SettleClaimsLog>()
+                            .selectAll(SettleClaimsLog.class)
+                            .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
+                            .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
+                            .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
+                            .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
+                            .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                            .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                            .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE.getKey(),
+                            Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getKey())
+                    .orderByDesc(SettleClaimsLog::getCreateDate)
+                    .last(" limit 1")
+            );
+            settleClaims.setRefuseSettleClaimsLog(settleClaimsLog);
+        }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){
+            SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class,
+                    new MPJLambdaWrapper<SettleClaimsLog>()
+                            .selectAll(SettleClaimsLog.class)
+                            .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
+                            .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
+                            .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
+                            .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
+                            .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                            .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                            .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey())
+                            .orderByDesc(SettleClaimsLog::getCreateDate)
+                            .last(" limit 1")
+            );
+            settleClaims.setRefuseSettleClaimsLog(settleClaimsLog);
+        }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+                &&Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE)
+        ){
+            SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class,
+                    new MPJLambdaWrapper<SettleClaimsLog>()
+                            .selectAll(SettleClaimsLog.class)
+                            .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
+                            .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
+                            .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
+                            .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
+                            .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                            .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                            .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE.getKey())
+                            .orderByDesc(SettleClaimsLog::getCreateDate)
+                            .last(" limit 1")
+            );
+            settleClaims.setRefuseSettleClaimsLog(settleClaimsLog);
+        }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())){
+            SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class,
+                    new MPJLambdaWrapper<SettleClaimsLog>()
+                            .selectAll(SettleClaimsLog.class)
+                            .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
+                            .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
+                            .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
+                            .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
+                            .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                            .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                            .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_FINISH.getKey())
+                            .orderByDesc(SettleClaimsLog::getCreateDate)
+                            .last(" limit 1")
+            );
+            settleClaims.setRefuseSettleClaimsLog(settleClaimsLog);
+        }
+
+        if((Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+                || Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey()))
+        && Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE)){
+            SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class,
+                    new MPJLambdaWrapper<SettleClaimsLog>()
+                            .selectAll(SettleClaimsLog.class)
+                            .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
+                            .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
+                            .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
+                            .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
+                            .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                            .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                            .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE.getKey())
+                            .orderByDesc(SettleClaimsLog::getCreateDate)
+                            .last(" limit 1")
+            );
+            settleClaims.setSupplementSettleClaimsLog(settleClaimsLog);
+        }
+        dealNoticeOldDataBiz(settleClaims);//澶勭悊寰呭姙鑴忔暟鎹�
         return settleClaims;
+    }
+
+    private void dealNoticeOldDataBiz(SettleClaims settleClaims) {
+        if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())
+                ||Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN.getKey())
+                ||Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())
+                ||Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey())){
+            deletedNoticeBiz(null,settleClaims);
+        }
     }
 
 
@@ -1112,6 +1211,7 @@
                 .selectAs(Member::getIdcardNo,SettleClaims::getMemberIdcardNo)
                 .selectAs(Worktype::getName,SettleClaims::getWorktypeName)
                 .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
+                .selectAs(InsuranceApply::getCode,SettleClaims::getApplyCode)
                 .selectAs(DispatchUnit::getName,SettleClaims::getDuName)
                 .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
                 .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime)
@@ -1130,7 +1230,8 @@
             }else {
                 queryWrapper. in(Company::getId, user.getCompanyIdList());
             }
-        } else  {
+            queryWrapper.ne(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
+        }{
             //浼佷笟鐢ㄦ埛鍙湅鑷繁鐨勬暟鎹�
             pageWrap.getModel().setCompanyId(user.getCompanyId());
         }
@@ -1186,6 +1287,7 @@
                 .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime)
                 .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime)
                 .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode)
+                .selectAs(SettleClaimsExt::getReportDate,SettleClaims::getReportDate)
                 .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId);
         queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO);
         queryWrapper.eq(SettleClaims::getOrigin,Constants.ONE);
@@ -1202,7 +1304,9 @@
         queryWrapper.orderByDesc(SettleClaims::getCreateDate);
         PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper));
         for (SettleClaims settleClaims:pageData.getRecords()) {
-            settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
+            if(Objects.nonNull(settleClaims.getStatus())){
+                settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
+            }
             settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount()));
         }
         return pageData;
@@ -1252,24 +1356,56 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST);
             }
         }
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(settleClaimsDTO.getInsuranceApplyId());
+        if(Objects.isNull(insuranceApply)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        ApplyDetail applyDetail = applyDetailMapper.selectById(settleClaimsDTO.getApplyDetailId());
+        if(Objects.isNull(applyDetail)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        Member member =memberMapper.selectById(settleClaimsDTO.getMemberId());
+        if(member == null){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍑洪櫓浜轰俊鎭笉姝g‘锛�");
+        }
+        if(!(Constants.equalsInteger(insuranceApply.getId(),applyDetail.getApplyId())||Constants.equalsInteger(applyDetail.getMemberId(),member.getId()))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"淇℃伅鍖归厤閿欒");
+        }
         SettleClaims settleClaims = new SettleClaims();
         BeanUtils.copyProperties(settleClaimsDTO,settleClaims);
         settleClaims.setReportNumStatus(Constants.ZERO);
+        settleClaims.setCompanyId(loginUserInfo.getCompanyId());
         settleClaims.setOrigin(Constants.ZERO);
+        settleClaims.setMemberName(member.getName());
+        settleClaims.setCreateDate(new Date());
+        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"))
+            )+1;
+            settleClaims.setCode("YYBLP-"+DateUtil.getDate(new Date(),"yyyyMMdd")+
+                    (StringUtils.leftPad(nextCode.toString(),2,"0"))
+            );
+        }
         if(Objects.nonNull(settleClaims.getId())){
+            SettleClaims model = settleClaimsMapper.selectById(settleClaims.getId());
+            if(Objects.isNull(model)){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY);
+            }
+            if(!(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()))){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛屼慨鏀�");
+            }
             settleClaims.setEditDate(new Date());
             settleClaims.setEditor(loginUserInfo.getId());
             settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)?
                     Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
-            if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){
+            if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)&&
+                    Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){
                 //澶勭悊椋庨櫓淇℃伅
                 this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService);
             }
             settleClaimsMapper.updateById(settleClaims);
         }else{
-            settleClaims.setCreateDate(new Date());
             settleClaims.setIsdeleted(Constants.ZERO);
-            settleClaims.setCompanyId(loginUserInfo.getCompanyId());
             settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)?
                     Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
             if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){
@@ -1287,7 +1423,23 @@
                 this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.PLATFORM_REGISTER,null,Constants.SettleClaimsStatus.CONFIRM_INFORMATION);
             }
         }
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()) ||
+                Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){
+            //-濡傛灉鏄緟绔嬫鎴栬�呭凡绔嬫寰呭鏍革紝缁欏钩鍙扮鍙戝緟鍔為�氱煡-------------
+            sendNoticeBiz(Constants.ZERO,settleClaims,Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())?Constants.NoticeType.ZERO:Constants.NoticeType.TWO);
+        }
         return settleClaims.getId();
+    }
+
+    private String getNoticeConttent(SettleClaims settleClaims) {
+        if(StringUtils.isBlank(settleClaims.getMemberName()) && settleClaims.getMemberId()!=null){
+            Member member = memberMapper.selectById(settleClaims.getMemberId());
+            if(member!=null){
+                settleClaims.setMemberName(member.getName());
+            }
+        }
+        return  "鎶ユ鍙凤細"+StringUtils.defaultString(settleClaims.getCode(),"")+"  鍑洪櫓浜猴細"+StringUtils.defaultString(settleClaims.getMemberName(),"");
     }
 
     public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){
@@ -1298,7 +1450,7 @@
         }
         Date happenTime = DateUtil.StringToDate(settleClaims.getHappenTime());
         if(happenTime.getTime() < insuranceApply.getStartTime().getTime() || happenTime.getTime() > insuranceApply.getEndTime().getTime()){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓浜嬩欢鏈湪淇濆崟鐢熸晥鑼冨洿鍐�");
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪淇濆崟鐢熸晥鑼冨洿鍐�");
         }
         Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
         if(Objects.isNull(solutions)){
@@ -1317,6 +1469,7 @@
         if(Constants.equalsInteger(solutionsBase.getRiskNewUserStatus(),Constants.ONE)
                 && Objects.nonNull(solutionsBase.getRiskNewUserUnit())
                 && Objects.nonNull(solutionsBase.getRiskNewUserTime())
+                && happenTime.getTime() < applyDetail.getStartTime().getTime()
         ){
             if(happenTime.getTime() > applyDetail.getEndTime().getTime()){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
@@ -1333,6 +1486,7 @@
                     throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
                 }
             }
+
             if(happenTime.getTime() < startDate.getTime() ){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
             }else{
@@ -1352,17 +1506,17 @@
             //鏍规嵁閰嶇疆 鏌ヨ 寤惰繜鎶ユ鎻愰啋鏃堕棿鍗曚綅 0鍒嗛挓 1灏忔椂 2澶�
             if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ZERO)){
                 if(DateUtil.getBetweenMin(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
-                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"鍒嗛挓");
+                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"鍒嗛挓");
                     riskList.add(map);
                 }
             }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ONE)){
                 if(DateUtil.getBetweenHours(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
-                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"灏忔椂");
+                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"灏忔椂");
                     riskList.add(map);
                 }
             }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.TWO)){
                 if(DateUtil.getBetweenDay(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
-                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"澶�");
+                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"澶�");
                     riskList.add(map);
                 }
             }
@@ -1397,7 +1551,7 @@
                     .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR)  ")
                     .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("2")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" DAY)  ")
             );
-            if(cxcs > Constants.TWO){
+            if(cxcs >= Constants.TWO){
                 Map<String,String> map = new HashMap<>();
                 map.put("title","鐤戜技閲嶅鎶ユ");
                 map.put("info","璇ュ嚭闄╀汉鍦�"+riskConfigVO.getRiskRepeatReportTime()+(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")?"灏忔椂":"澶�")+"鍐呭凡鎶ユ"+cxcs+"娆�");
@@ -1413,8 +1567,9 @@
                 && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){
             Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
                     .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId())
+                            .eq(SettleClaims::getIsdeleted,Constants.ZERO)
                     .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
-                    .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY)  ")
+                    .apply(" CREATE_DATE > DATE_SUB(now(), INTERVAL 365 DAY)  ")
             );
             if(cxcs > Integer.valueOf(riskConfigVO.getRiskClaimTimes())){
                 Map<String,String> map = new HashMap<>();
@@ -1429,7 +1584,7 @@
         if(StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWordsOpen())
                 && StringUtils.equals(riskConfigVO.getRiskSensitiveWordsOpen(),Constants.ONE+"")
                 && StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWords())){
-            String [] words = riskConfigVO.getRiskSensitiveWords().split(",");
+            String [] words = riskConfigVO.getRiskSensitiveWords().split(";");
             String sensitiveWord = ""; 
             for (String word:words) {
                 if(settleClaims.getContent().indexOf(word)>=Constants.ZERO){
@@ -1686,6 +1841,10 @@
                 .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime())
                         .set(SettleClaims::getWaitSupplementInfo,dto.getDescribe())
                 .set(SettleClaims::getWaitSupplement,Constants.ONE));
+
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //濡傛灉鍙戣捣浠e姙,閫氱煡浼佷笟
+        sendNoticeBiz(Constants.ONE,settleClaims,Constants.NoticeType.THREE);
     }
 
     @Override
@@ -1726,6 +1885,7 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
             }
             settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                            .set(SettleClaims::getWaitSupplement,Constants.ZERO)
                     .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ZERO));
         }
         multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,dto.getId()).eq(Multifile::getObjType,Constants.MultiFile.LP_OTHER_FILE.getKey()));
@@ -1751,6 +1911,10 @@
         }
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null,null);
+        //鍒犻櫎浼佷笟鐨勪唬鍔為�氱煡------
+        deletedNoticeBiz(null,settleClaims );
+        sendNoticeBiz(Constants.ZERO,settleClaims,Constants.NoticeType.TWO);
+
     }
 
 
@@ -1784,6 +1948,9 @@
         this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.RETURN_SETTLE,null,Constants.SettleClaimsStatus.RETURN);
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
                 .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,Constants.SettleClaimsStatus.RETURN.getKey()));
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //缁欎紒涓氬彂閫氱煡锛屽凡缁撴-------------
+        sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.FOURTEEN);
     }
 
 
@@ -1852,6 +2019,15 @@
                 .set(SettleClaims::getEditDate, DateUtil.getCurrDateTime())
                 .set(SettleClaims::getEditor,loginUserInfo.getId())
                 .set(SettleClaims::getStatus,settleClaimsStatus.getKey()));
+
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        if( Constants.equalsInteger(settleClaimsStatus.getKey(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()) ){
+            //濡傛灉鏄鏍搁�氳繃宸茬珛妗堝緟瀹℃牳锛岀粰骞冲彴鍙戝緟鍙楃悊寰呭姙閫氱煡-------------
+            sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.TWO);
+        }else{
+            //濡傛灉鏄鏍镐笉閫氳繃锛岄��鍥炵珛妗� 锛岀粰浼佷笟鍙戦�氱煡-------------
+            sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.ONE);
+        }
     }
 
 
@@ -1880,8 +2056,11 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
         }
         if(!(
-                (Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE))
-                ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+                (Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+                        &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE))
+                ||((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+                        || Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+                        || Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey()))
                         &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO))
 //                        ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey())
 //                        &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO))
@@ -2004,7 +2183,8 @@
             //瀛樺偍鏃ュ織
             this.saveSettleClaimsLog(settleClaims,
                     Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS,
-                    dto.getDescribe(),Constants.SettleClaimsStatus.ACCEPTANCE);
+                    Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?dto.getDescribe():(dto.getDescribe() + " 闂绫诲瀷锛�"+dto.getSyProblemOpts())
+                    ,Constants.SettleClaimsStatus.ACCEPTANCE);
         }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){
             //鎷掔粷鍙楃悊
             settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
@@ -2018,14 +2198,54 @@
             //鍙楃悊鍟嗚瀹℃壒
             settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
                     .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId())
-                    .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.REJECT_DEAL.getKey()));
+                    .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey()));
             //瀛樺偍鏃ュ織
             this.saveSettleClaimsLog(settleClaims,
                     Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS,
-                    dto.getDescribe(),Constants.SettleClaimsStatus.REJECT_DEAL);
+                    dto.getDescribe() + " 闂绫诲瀷锛�"+dto.getSyProblemOpts(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT);
+        }
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){
+            //-濡傛灉鏄鎵归�氳繃锛屾垚涓哄凡鍙楃悊锛岀粰骞冲彴绔彂浠g悊绠楀緟鍔為�氱煡-------------
+            sendNoticeBiz(Constants.ZERO,settleClaims , Constants.NoticeType.EIGHT );
+            sendNoticeBiz(Constants.ONE,settleClaims,Constants.NoticeType.FIFTEEN);
+        }else  if(Constants.equalsInteger(dto.getStatus(),Constants.TWO)){
+            //濡傛灉鍙戣捣鍟嗚瀹℃壒锛岄�氱煡骞冲彴
+            sendNoticeBiz(Constants.ZERO, settleClaims , Constants.NoticeType.FIVE );
+            sendNoticeBiz(Constants.ONE,settleClaims,Constants.NoticeType.SIXTEEN);
+        }else{
+            //濡傛灉鏄彈鐞嗘嫆缁�,閫氱煡浼佷笟
+            sendNoticeBiz(Constants.ONE,  settleClaims,Constants.NoticeType.SEVEN);
         }
     }
 
+    private void sendNoticeBiz(int plat, SettleClaims settleClaims, Constants.NoticeType noticeType) {
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
+        Notices notices = new Notices(noticeObjectType
+                ,plat
+                ,settleClaims.getId()
+                ,getNoticeConttent(settleClaims)
+                ,settleClaims.getCompanyId()
+                ,noticeType);
+        noticesMapper.insert(notices);
+    }
+    private void deletedNoticeBiz(Integer  plat, SettleClaims settleClaim ) {
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda()
+                .eq(plat!=null,Notices::getPalt,plat)
+                .eq(Notices::getObjType,noticeObjectType.getKey())
+                .eq(Notices::getObjId,settleClaim.getId())
+                .notIn(Notices::getType,Constants.NoticeType.ONE.getStatus(),
+                        Constants.NoticeType.FOUR.getStatus(),
+                        Constants.NoticeType.SEVEN.getStatus(),
+                        Constants.NoticeType.FOURTEEN.getStatus(),
+                        Constants.NoticeType.FIFTEEN.getStatus(),
+                        Constants.NoticeType.SIXTEEN.getStatus(),
+                        Constants.NoticeType.SEVENTEEN.getStatus(),
+                        Constants.NoticeType.THIRTEEN.getStatus(),
+                        Constants.NoticeType.EIGHTEEN.getStatus()))//1, 3, 4, 7,13, 14, 15, 16, 17, 18
+        ;
+    }
 
     @Override
     public List<CompensationVO> getCompensation(CompensationFeeDTO compensationFeeDTO){
@@ -2103,12 +2323,16 @@
         update.setId(settleClaims.getId());
         update.setStatus(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey());
         settleClaimsMapper.updateById(update);
-
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_LP_DEAL,
                 Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION);
-    }
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //缁欏钩鍙板彂寰呮牳璧斿緟鍔為�氱煡-------------
+        sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.NINE);
+        //缁欎紒涓氬彂閫氬凡鐞嗙畻-------------
+        sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.SEVENTEEN);
+}
 
 
     /**
@@ -2148,6 +2372,14 @@
                 .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, DateUtil.getCurrDateTime())
                         .set(SettleClaims::getEditor,loginUserInfo.getId())
                 .set(SettleClaims::getStatus,settleClaimsStatus.getKey()));
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        if( Constants.equalsInteger(settleClaimsStatus.getKey(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) ){
+            //濡傛灉鏄鏍搁�氳繃宸茬珛妗堝緟瀹℃牳锛岀粰骞冲彴鍙戝緟鍙楃悊寰呭姙閫氱煡-------------
+            sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.TWO);
+        }else{
+            //濡傛灉鏄鏍镐笉閫氳繃锛岄��鍥炵珛妗� 锛岀粰浼佷笟鍙戦�氱煡-------------
+            sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.ONE);
+        }
     }
 
 
@@ -2193,6 +2425,9 @@
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_HP_DEAL,
                 Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo(),Constants.SettleClaimsStatus.COMPENSATION);
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //缁欎紒涓氬彂閫氬凡鏍歌禂寰呯‘璁ら噾棰濓紝鍙戜唬鍔�-------------
+        sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.TEN);
     }
 
 
@@ -2250,13 +2485,17 @@
         update.setHpAccountContent(dto.getCompensationJson());
         update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setId(settleClaims.getId()); 
+        update.setId(settleClaims.getId());
+        update.setFeeUpdate(Constants.ONE);
         settleClaimsMapper.updateById(update);
 
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_UPD_FEE,
                 dto.getDescribe(),null);
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //缁欎紒涓氬彂閫氶噾棰濆彉鏇撮�氱煡-------------
+        sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.EIGHTEEN);
     }
 
 
@@ -2286,6 +2525,9 @@
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.CONFIRM_FEE,
                 Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo(),Constants.SettleClaimsStatus.CONFIRM_FEE);
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //缁欏钩鍙板彂寰呭姙锛屽凡纭閲戦锛屽彂寰呯粨妗堜唬鍔�-------------
+        sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.TWELVE);
     }
 
 
@@ -2347,6 +2589,9 @@
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_FINISH,
                 dto.getDescribe(),Constants.SettleClaimsStatus.CLOSE_CASE);
+        deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡
+        //缁欎紒涓氬彂閫氱煡锛屽凡缁撴-------------
+        sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.THIRTEEN);
     }
 
 

--
Gitblit v1.9.3