| | |
| | | import com.doumee.dao.business.vo.RiskConfigVO; |
| | | 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.SettleClaimsDataVO; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.SettleClaimsLogService; |
| | | import com.doumee.service.business.SettleClaimsService; |
| | |
| | | } |
| | | } |
| | | //记录日志 |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); |
| | | |
| | | |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,null); |
| | | //存储待办信息 |
| | | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; |
| | | //删除其他待办 |
| | |
| | | |
| | | settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setSupplementFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey())).collect(Collectors.toList())); |
| | | } |
| | | |
| | | //查询操作记录 |
| | |
| | | }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){ |
| | | settleClaims.setFinishDate(lastConfirm.getCreateDate()); |
| | | } |
| | | 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); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return settleClaims; |
| | | } |
| | | |
| | |
| | | .last("limit 1"))); |
| | | } |
| | | settleClaims.setExtData(settleClaimsExtMapper.selectOne(new QueryWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,id).last("limit 1"))); |
| | | settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); |
| | | return settleClaims; |
| | | } |
| | | |
| | |
| | | settleClaimsMapper.updateById(oldSettleClaims); |
| | | //记录日志 |
| | | Constants.SettleClaimsLogType settleClaimsLogType = Constants.SettleClaimsLogType.UPDATE_DATA; |
| | | this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null); |
| | | this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null,null); |
| | | return oldSettleClaims.getId(); |
| | | } |
| | | |
| | |
| | | |
| | | Constants.SettleClaimsLogType settleClaimsLogType = Constants.SettleClaimsLogType.SUPPLEMENT; |
| | | String content = settleClaimsLogType.getInfo().replace("${param}", scSupplementDTO.getSupplement()); |
| | | this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content); |
| | | this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content,null); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content){ |
| | | public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content,Constants.SettleClaimsStatus settleClaimsStatus){ |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | SettleClaimsLog settleClaimsLog = new SettleClaimsLog(); |
| | | settleClaimsLog.setCreateDate(new Date()); |
| | |
| | | settleClaimsLog.setContent(content); |
| | | settleClaimsLog.setObjType(settleClaimsLogType.getKey()); |
| | | settleClaimsLog.setObjId(settleClaims.getId()); |
| | | if(Objects.nonNull(settleClaimsStatus)){ |
| | | settleClaimsLog.setParentStatus(settleClaimsStatus.getParentKey()); |
| | | settleClaimsLog.setStatus(settleClaimsStatus.getKey()); |
| | | } |
| | | settleClaimsLogMapper.insert(settleClaimsLog); |
| | | } |
| | | |
| | |
| | | PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper)); |
| | | for (SettleClaims settleClaims:pageData.getRecords()) { |
| | | settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); |
| | | settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount())); |
| | | |
| | | settleClaims.setPcAccount(Constants.getBigDecimalNoNull(settleClaims.getHpAccount()).add(Constants.getBigDecimalNoNull(settleClaims.getHpOtherAccount()))); |
| | | } |
| | | return pageData; |
| | | } |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){ |
| | | public Integer saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){ |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!loginUserInfo.getType().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非企业员工无法进行该操作"); |
| | |
| | | if(Objects.isNull(settleClaimsDTO) |
| | | || Objects.isNull(settleClaimsDTO.getSaveType()) |
| | | || Objects.isNull(settleClaimsDTO.getMemberId()) |
| | | ||StringUtils.isBlank(settleClaimsDTO.getIdcardNo()) |
| | | || StringUtils.isBlank(settleClaimsDTO.getIdcardNo()) |
| | | || Objects.isNull(settleClaimsDTO.getInsuranceApplyId()) |
| | | || Objects.isNull(settleClaimsDTO.getApplyDetailId()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | |
| | | settleClaimsMapper.insert(settleClaims); |
| | | } |
| | | this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo); |
| | | |
| | | //记录日志 |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); |
| | | if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){ |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,Constants.SettleClaimsStatus.RETURN_ACCEPTANCE); |
| | | if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){ |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.PLATFORM_REGISTER,null,Constants.SettleClaimsStatus.CONFIRM_INFORMATION); |
| | | } |
| | | } |
| | | return settleClaims.getId(); |
| | | } |
| | | |
| | | public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){ |
| | |
| | | } |
| | | List<Map<String,String>> riskList = new ArrayList<>(); |
| | | //查询保单明细数据 |
| | | ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId()).eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 ")); |
| | | ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda() |
| | | .eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId()) |
| | | .eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 ")); |
| | | //是否开启 新员工报案 0不允许 1允许 |
| | | if(Constants.equalsInteger(solutionsBase.getRiskNewUserStatus(),Constants.ONE) |
| | | && Objects.nonNull(solutionsBase.getRiskNewUserUnit()) |
| | |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | |
| | | |
| | | List<Multifile> relationFileList = settleClaimsDTO.getRelationFileList(); |
| | | if(CollectionUtils.isNotEmpty(relationFileList)){ |
| | | for (int i = 0; i < reportVideo.size(); i++) { |
| | | Multifile multifile = reportVideo.get(i); |
| | | for (int i = 0; i < relationFileList.size(); i++) { |
| | | Multifile multifile = relationFileList.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | |
| | | |
| | | List<Multifile> outpatientFileList = settleClaimsDTO.getOutpatientFileList(); |
| | | if(CollectionUtils.isNotEmpty(outpatientFileList)){ |
| | | for (int i = 0; i < reportVideo.size(); i++) { |
| | | Multifile multifile = reportVideo.get(i); |
| | | for (int i = 0; i < outpatientFileList.size(); i++) { |
| | | Multifile multifile = outpatientFileList.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | |
| | | |
| | | List<Multifile> hospitalFileList = settleClaimsDTO.getHospitalFileList(); |
| | | if(CollectionUtils.isNotEmpty(hospitalFileList)){ |
| | | for (int i = 0; i < reportVideo.size(); i++) { |
| | | Multifile multifile = reportVideo.get(i); |
| | | for (int i = 0; i < hospitalFileList.size(); i++) { |
| | | Multifile multifile = hospitalFileList.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | |
| | | |
| | | List<Multifile> disabilityFileList = settleClaimsDTO.getDisabilityFileList(); |
| | | if(CollectionUtils.isNotEmpty(disabilityFileList)){ |
| | | for (int i = 0; i < reportVideo.size(); i++) { |
| | | Multifile multifile = reportVideo.get(i); |
| | | for (int i = 0; i < disabilityFileList.size(); i++) { |
| | | Multifile multifile = disabilityFileList.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | |
| | | |
| | | List<Multifile> otherFileList = settleClaimsDTO.getOtherFileList(); |
| | | if(CollectionUtils.isNotEmpty(otherFileList)){ |
| | | for (int i = 0; i < reportVideo.size(); i++) { |
| | | Multifile multifile = reportVideo.get(i); |
| | | for (int i = 0; i < otherFileList.size(); i++) { |
| | | Multifile multifile = otherFileList.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | |
| | | multifile.setSortnum(i+1); |
| | | multifileJoinMapper.insert(multifile); |
| | | } |
| | | } |
| | | } |
| | | List<Multifile> supplementFileList = settleClaimsDTO.getSupplementFileList(); |
| | | if(CollectionUtils.isNotEmpty(supplementFileList)){ |
| | | for (int i = 0; i < supplementFileList.size(); i++) { |
| | | Multifile multifile = supplementFileList.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(settleClaims.getId()); |
| | | multifile.setObjType(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey()); |
| | | multifile.setSortnum(i+1); |
| | | multifileJoinMapper.insert(multifile); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // public void getRiskSettleDetail(Integer id){ |
| | |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"待企业补充文件,请等待企业补充文件"); |
| | | } |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe()); |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe(),null); |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ONE)); |
| | | .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) |
| | | .set(SettleClaims::getWaitSupplementInfo,dto.getDescribe()) |
| | | .set(SettleClaims::getWaitSupplement,Constants.ONE)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | 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())); |
| | |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(settleClaims.getId()); |
| | | //添加材料放入 其他材料业务内 |
| | | multifile.setObjType(Constants.MultiFile.LP_OTHER_FILE.getKey()); |
| | | multifile.setObjType(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey()); |
| | | multifile.setSortnum(i+1); |
| | | multifileJoinMapper.insert(multifile); |
| | | } |
| | | } |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null); |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null,null); |
| | | } |
| | | |
| | | |
| | |
| | | if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您企业的数据,您无法进行该操作"); |
| | | } |
| | | if(!Constants.equalsInteger(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey(),settleClaims.getStatus())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | } |
| | | // if(!Constants.equalsInteger(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey(),settleClaims.getStatus())){ |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | // } |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.RETURN_SETTLE,null); |
| | | 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())); |
| | | } |
| | |
| | | if(Objects.isNull(settleClaims)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())){ |
| | | if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()) |
| | | || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | } |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo()); |
| | | this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo(),null); |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) |
| | | .eq(SettleClaims::getId,dto.getId()) |
| | | .set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) |
| | | .set(SettleClaims::getEditor,loginUserInfo.getId()) |
| | | .set(SettleClaims::getCaseType,dto.getCaseType())); |
| | | } |
| | |
| | | Constants.SettleClaimsStatus settleClaimsStatus = |
| | | Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsStatus.CONFIRM_INFORMATION:Constants.SettleClaimsStatus.FINISH_ACCEPTANCE; |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsLogType.PLATFORM_REGISTER:Constants.SettleClaimsLogType.PLATFORM_RETURN,dto.getDescribe()); |
| | | this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsLogType.PLATFORM_REGISTER:Constants.SettleClaimsLogType.PLATFORM_RETURN,dto.getDescribe(),settleClaimsStatus); |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, |
| | | DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,settleClaimsStatus.getKey())); |
| | | .eq(SettleClaims::getId,dto.getId()) |
| | | .set(SettleClaims::getEditDate, DateUtil.getCurrDateTime()) |
| | | .set(SettleClaims::getEditor,loginUserInfo.getId()) |
| | | .set(SettleClaims::getStatus,settleClaimsStatus.getKey())); |
| | | } |
| | | |
| | | |
| | |
| | | if(Constants.equalsInteger(model.getReportNumStatus(),Constants.TWO)){ |
| | | 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.WAIT_DEAL.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)))){ |
| | | 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.getReportNumStatus(),Constants.ZERO)) |
| | | // ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey()) |
| | | // &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)) |
| | | ) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"仅可修改一次报案号"); |
| | | } |
| | | |
| | |
| | | if(Objects.isNull(settleClaims)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus())){ |
| | | if(!Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey(),settleClaims.getStatus())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | } |
| | | if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){ |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS, |
| | | dto.getDescribe()); |
| | | dto.getDescribe(),Constants.SettleClaimsStatus.ACCEPTANCE); |
| | | }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){ |
| | | //拒绝受理 |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE, |
| | | Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe())); |
| | | Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe()),Constants.SettleClaimsStatus.REJECT_DEAL); |
| | | }else if(Constants.equalsInteger(dto.getStatus(),Constants.TWO)){ |
| | | //受理商议审批 |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS, |
| | | dto.getDescribe()); |
| | | dto.getDescribe(),Constants.SettleClaimsStatus.REJECT_DEAL); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | List<CompensationVO> modelList = new ArrayList<>(); |
| | | if (Objects.nonNull(settleClaims)) { |
| | | if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ZERO)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ |
| | | if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ |
| | | modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); |
| | | }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ |
| | | }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.TWO)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ |
| | | modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); |
| | | } |
| | | } |
| | |
| | | if(Objects.isNull(settleClaims)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()))||Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())){ |
| | | if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()) |
| | | ||Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus()))){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | } |
| | | |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_LP_DEAL, |
| | | Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo()); |
| | | Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION); |
| | | } |
| | | |
| | | |
| | |
| | | Constants.SettleClaimsLogType settleClaimsLogType = Constants.equalsInteger(dto.getStatus(),Constants.ZERO) |
| | | ?Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS:Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE; |
| | | this.saveSettleClaimsLog(settleClaims, settleClaimsLogType |
| | | ,settleClaimsLogType.getInfo().replace("${param}",dto.getDescribe())); |
| | | ,settleClaimsLogType.getInfo().replace("${param}",dto.getDescribe()),settleClaimsStatus); |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, DateUtil.getCurrDateTime()) |
| | | .set(SettleClaims::getEditor,loginUserInfo.getId()) |
| | |
| | | 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.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey()); |
| | | settleClaimsMapper.updateById(update); |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_HP_DEAL, |
| | | Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo()); |
| | | Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo(),Constants.SettleClaimsStatus.COMPENSATION); |
| | | } |
| | | |
| | | |
| | |
| | | update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | //处理历史数据 |
| | | List<CompensationVO> oldList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); |
| | | for (CompensationVO compensationVO:oldList) { |
| | | if(compensationVO.getName().equals(Constants.compensation.YL_COMPENSATION.getName())){ |
| | | compensationVO.setFee(update.getYlClaimAccount()); |
| | | }else if(compensationVO.getName().equals(Constants.compensation.WG_COMPENSATION.getName())){ |
| | | compensationVO.setFee(update.getWgClaimAccount()); |
| | | }else if(compensationVO.getName().equals(Constants.compensation.SC_COMPENSATION.getName())){ |
| | | compensationVO.setFee(update.getScClaimAccount()); |
| | | }else if(compensationVO.getName().equals(Constants.compensation.SW_COMPENSATION.getName())){ |
| | | compensationVO.setFee(update.getSwClaimAccount()); |
| | | }else{ |
| | | continue; |
| | | } |
| | | } |
| | | update.setAccountContent(JSONArray.toJSONString(oldList)); |
| | | update.setId(settleClaims.getId()); |
| | | // update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | // //处理历史数据 |
| | | // List<CompensationVO> oldList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); |
| | | // for (CompensationVO compensationVO:oldList) { |
| | | // if(compensationVO.getName().equals(Constants.compensation.YL_COMPENSATION.getName())){ |
| | | // compensationVO.setFee(update.getYlClaimAccount()); |
| | | // }else if(compensationVO.getName().equals(Constants.compensation.WG_COMPENSATION.getName())){ |
| | | // compensationVO.setFee(update.getWgClaimAccount()); |
| | | // }else if(compensationVO.getName().equals(Constants.compensation.SC_COMPENSATION.getName())){ |
| | | // compensationVO.setFee(update.getScClaimAccount()); |
| | | // }else if(compensationVO.getName().equals(Constants.compensation.SW_COMPENSATION.getName())){ |
| | | // compensationVO.setFee(update.getSwClaimAccount()); |
| | | // }else{ |
| | | // continue; |
| | | // } |
| | | // } |
| | | 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.setFeeUpdate(Constants.ONE); |
| | | settleClaimsMapper.updateById(update); |
| | | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_UPD_FEE, |
| | | Constants.SettleClaimsLogType.PLATFORM_UPD_FEE.getInfo()); |
| | | dto.getDescribe(),null); |
| | | } |
| | | |
| | | |
| | |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void confirmFee(Integer id){ |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!loginUserInfo.getType().equals(Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非管理员无法进行该操作"); |
| | | if(!loginUserInfo.getType().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非企业人员无法进行该操作"); |
| | | } |
| | | SettleClaims settleClaims = settleClaimsJoinMapper.selectById(id); |
| | | if(Objects.isNull(settleClaims)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | //如果是企业 查询是否是自己企业的数据 |
| | | if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您企业的数据,您无法进行该操作"); |
| | | } |
| | | SettleClaims update = new SettleClaims(); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setStatus(Constants.SettleClaimsStatus.WAIT_DEAL.getKey()); |
| | | update.setStatus(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey()); |
| | | update.setId(settleClaims.getId()); |
| | | settleClaimsMapper.updateById(update); |
| | | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.CONFIRM_FEE, |
| | | Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo()); |
| | | Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo(),Constants.SettleClaimsStatus.CONFIRM_FEE); |
| | | } |
| | | |
| | | |
| | |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setStatus(Constants.SettleClaimsStatus.CLOSE_CASE.getKey()); |
| | | update.setCheckDate(new Date()); |
| | | update.setCheckUserId(loginUserInfo.getId()); |
| | | update.setCheckInfo(Constants.SettleClaimsStatus.CLOSE_CASE.name()); |
| | | update.setId(settleClaims.getId()); |
| | | settleClaimsMapper.updateById(update); |
| | | |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_FINISH, |
| | | dto.getDescribe()); |
| | | dto.getDescribe(),Constants.SettleClaimsStatus.CLOSE_CASE); |
| | | } |
| | | |
| | | |
| | |
| | | public List<SettleParentStatusVO> getParentStatus(SettleClaims settleClaims){ |
| | | List<SettleParentStatusVO> settleParentStatusVOList = new ArrayList<>(); |
| | | List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogMapper |
| | | .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()).orderByDesc(SettleClaimsLog::getCreateDate)); |
| | | .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()) |
| | | .isNotNull(SettleClaimsLog::getParentStatus) |
| | | .orderByDesc(SettleClaimsLog::getId)); |
| | | //立案退回状态数据 |
| | | if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){ |
| | | SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO(); |
| | |
| | | //获取当前日志最大的父状态 |
| | | Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o)); |
| | | if(optionalInteger.isPresent()){ |
| | | for (int i = 1; i <= 5; i++) { |
| | | |
| | | for (int i = 1; i <= (optionalInteger.get()<5?optionalInteger.get():5); i++) { |
| | | SettleParentStatusVO s = new SettleParentStatusVO(); |
| | | Constants.SettleClaimsLogParentStatus parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i); |
| | | s.setParentTitle(parentStatus.getName()); |
| | | s.setChildTitle(parentStatus.getInfo()); |
| | | s.setStatus(Constants.ZERO); |
| | | //如果是等于父状态 则去查询实际的业务状态 |
| | | if(Constants.equalsInteger(i,optionalInteger.get())){ |
| | | Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream() |
| | | .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst(); |
| | | if(settleClaimsLogOptional.isPresent()){ |
| | | s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType())); |
| | | } |
| | | Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream() |
| | | .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst(); |
| | | if(settleClaimsLogOptional.isPresent()){ |
| | | s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType())); |
| | | s.setOptDate(settleClaimsLogOptional.get().getCreateDate()); |
| | | } |
| | | settleParentStatusVOList.add(s); |
| | | |
| | | } |
| | | } |
| | | //添加撤案数据 |
| | |
| | | settleParentStatusCHVO.setChildTitle("企业主动撤案"); |
| | | settleParentStatusCHVO.setStatus(Constants.THREE); |
| | | Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() |
| | | .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); |
| | | .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); |
| | | if(optionalSettleClaimsSLLog.isPresent()){ |
| | | settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); |
| | | } |
| | |
| | | //如果最大的父业务状态 大于 默认的6类数据 则直接显示默认配置 |
| | | s.setChildTitle(parentStatus.getInfo()); |
| | | s.setStatus(Constants.ZERO); |
| | | int finalI = i; |
| | | Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream() |
| | | .filter(j->Constants.equalsInteger(j.getParentStatus(), finalI)).findFirst(); |
| | | if(optionalSettleClaimsLog.isPresent()){ |
| | | s.setOptDate(optionalSettleClaimsLog.get().getCreateDate()); |
| | | } |
| | | }else if(optionalInteger.get()<i){ |
| | | //如果最大的父业务状态 小于 默认的6类数据 则直接显示默认未处理配置 |
| | | s.setChildTitle(parentStatus.getWaitInfo()); |
| | | if(Constants.equalsInteger(i,Constants.SettleClaimsLogParentStatus.LS.getKey())){ |
| | | // //报案审批通过后要显示 |
| | | Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream() |
| | | .filter(j-> |
| | | Constants.equalsInteger(j.getObjType(),Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE.getKey()) |
| | | || Constants.equalsInteger(j.getObjType(),Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS.getKey()) |
| | | ).findFirst(); |
| | | if(settleClaimsLogOptional.isPresent()){ |
| | | s.setStatus(Constants.ONE); |
| | | settleParentStatusVOList.add(s); |
| | | continue; |
| | | } |
| | | } |
| | | s.setStatus(Constants.TWO); |
| | | }else{ |
| | | //如果是等于父状态 则去查询实际的业务状态 |
| | |
| | | .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst(); |
| | | if(settleClaimsLogOptional.isPresent()){ |
| | | s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType())); |
| | | s.setOptDate(settleClaimsLogOptional.get().getCreateDate()); |
| | | } |
| | | } |
| | | s.setStatus(Constants.ONE); |
| | |
| | | } |
| | | } |
| | | return settleParentStatusVOList; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void updHurtType(UpdHurtTypeDTO dto){ |
| | | if(Objects.isNull(dto) |
| | | || Objects.isNull(dto.getId()) |
| | | || Objects.isNull(dto.getHurtType()) |
| | | || !(Constants.equalsInteger(dto.getHurtType(),Constants.ZERO) || Constants.equalsInteger(dto.getHurtType(),Constants.ONE)) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!loginUserInfo.getType().equals(Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非管理员无法进行该操作"); |
| | | } |
| | | SettleClaims settleClaims = settleClaimsJoinMapper.selectById(dto.getId()); |
| | | if(Objects.isNull(settleClaims)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey(),settleClaims.getStatus()) |
| | | || Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()) |
| | | // || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus()) |
| | | )){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | } |
| | | if(!Constants.equalsInteger(settleClaims.getHurtType(),Constants.TWO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已修改过,无法再次修改"); |
| | | } |
| | | SettleClaims update = new SettleClaims(); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setHurtType(dto.getHurtType()); |
| | | update.setId(settleClaims.getId()); |
| | | settleClaimsMapper.updateById(update); |
| | | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.UPD_HURT_TYPE, |
| | | Constants.SettleClaimsLogType.UPD_HURT_TYPE.getInfo(),null); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void updReceiveInfo(UpdReceiveInfoDTO dto){ |
| | | if(Objects.isNull(dto) |
| | | || Objects.isNull(dto.getId()) |
| | | || StringUtils.isBlank(dto.getReceiveBank()) |
| | | || StringUtils.isBlank(dto.getReceiveAccount()) |
| | | || StringUtils.isBlank(dto.getReceiveUserName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!loginUserInfo.getType().equals(Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非企业人员无法进行该操作"); |
| | | } |
| | | SettleClaims settleClaims = settleClaimsJoinMapper.selectById(dto.getId()); |
| | | if(Objects.isNull(settleClaims)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | //如果是企业 查询是否是自己企业的数据 |
| | | if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您企业的数据,您无法进行该操作"); |
| | | } |
| | | if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus()) || Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus()) ) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转~"); |
| | | } |
| | | |
| | | SettleClaims update = new SettleClaims(); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setReceiveBank(dto.getReceiveBank()); |
| | | update.setReceiveAccount(dto.getReceiveAccount()); |
| | | update.setReceiveUserName(dto.getReceiveUserName()); |
| | | update.setId(settleClaims.getId()); |
| | | settleClaimsMapper.updateById(update); |
| | | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.UPD_RECEIVE_INFO, |
| | | Constants.SettleClaimsLogType.UPD_RECEIVE_INFO.getInfo(),null); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<String> getDiscussProblemType(){ |
| | | String types = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.DISCUSS_PROBLEM_TYPE).getCode(); |
| | | if(StringUtils.isNotBlank(types)){ |
| | | return Arrays.asList(types.split(",")); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SettleClaimsDataVO getSettleClaimsDataVO(){ |
| | | SettleClaimsDataVO settleClaimsDataVO = new SettleClaimsDataVO(); |
| | | settleClaimsDataVO.setSettleClaimsTotal(Constants.ZERO); |
| | | settleClaimsDataVO.setAverageSettleClaimsTime(BigDecimal.ZERO); |
| | | settleClaimsDataVO.setSettleClaimsTotalFee(BigDecimal.ZERO); |
| | | settleClaimsDataVO.setRefuseRata(BigDecimal.ZERO); |
| | | settleClaimsDataVO.setAcceptanceRata(BigDecimal.ZERO); |
| | | settleClaimsDataVO.setCloseCaseRata(BigDecimal.ZERO); |
| | | |
| | | |
| | | List<SettleClaims> settleClaimsList = settleClaimsMapper.selectList(new QueryWrapper<SettleClaims>().lambda().eq(SettleClaims::getIsdeleted,Constants.ZERO)); |
| | | if(CollectionUtils.isNotEmpty(settleClaimsList)){ |
| | | Integer totalSettleClaimsNum = settleClaimsList.size(); |
| | | List<SettleClaims> closeCaseList = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus()) |
| | | &&Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList()); |
| | | for (SettleClaims settleClaims:closeCaseList) { |
| | | if(Objects.nonNull(settleClaims.getCheckDate())&&Objects.nonNull(settleClaims.getCreateDate())){ |
| | | settleClaims.setTotalHours( |
| | | (int)DateUtil.getBetweenHours(settleClaims.getCreateDate(),settleClaims.getCheckDate()) |
| | | ); |
| | | }else{ |
| | | settleClaims.setTotalHours(Constants.ZERO); |
| | | } |
| | | } |
| | | Integer closeCaseNum = closeCaseList.size(); |
| | | //未包含 立案退回 立案退回可以再次提交的 |
| | | Integer refuseNum = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())&& |
| | | (Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey()) |
| | | ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())) |
| | | ).collect(Collectors.toList()).size(); |
| | | Integer acceptanceNum = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())&& |
| | | (Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) |
| | | ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey()) |
| | | ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.COMPENSATION.getKey()) |
| | | ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CONFIRM_FEE.getKey()) |
| | | ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey()) |
| | | ) |
| | | ).collect(Collectors.toList()).size(); |
| | | if(Objects.nonNull(closeCaseNum)&&!Constants.equalsInteger(closeCaseNum,Constants.ZERO)){ |
| | | settleClaimsDataVO.setCloseCaseRata(new BigDecimal(closeCaseNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | if(Objects.nonNull(refuseNum)&&!Constants.equalsInteger(refuseNum,Constants.ZERO)){ |
| | | settleClaimsDataVO.setRefuseRata(new BigDecimal(refuseNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | if(Objects.nonNull(acceptanceNum)&&!Constants.equalsInteger(acceptanceNum,Constants.ZERO)){ |
| | | settleClaimsDataVO.setAcceptanceRata(new BigDecimal(acceptanceNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP)); |
| | | } |
| | | |
| | | List<DataListVO> settleClaimsTotalList = new ArrayList<>(); |
| | | List<DataListVO> settleClaimsFeeList = new ArrayList<>(); |
| | | List<DataListVO> averageSettleClaimsList = new ArrayList<>(); |
| | | |
| | | for (int i = 5; i >=0 ; i--) { |
| | | //每个月的数据 |
| | | String monthData = DateUtil.DateToStr(DateUtil.afterDateByType(new Date(),1,i*-1),"yyyy-MM"); |
| | | DataListVO settleClaimsTotal = new DataListVO(); |
| | | DataListVO settleClaimsFee = new DataListVO(); |
| | | DataListVO averageSettleClaims = new DataListVO(); |
| | | |
| | | settleClaimsTotal.setDataFirst(monthData); |
| | | settleClaimsTotal.setDataSecond( |
| | | settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).toString() |
| | | ); |
| | | |
| | | settleClaimsFee.setDataFirst(monthData); |
| | | List<SettleClaims> closeCaseMonthList = closeCaseList.stream().filter(j->Objects.nonNull(j.getCheckDate())&&DateUtil.DateToStr(j.getCheckDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()); |
| | | settleClaimsFee.setDataSecond(closeCaseMonthList.stream().map(j->j.getHpAccount().add(j.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add).toString()); |
| | | |
| | | 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() |
| | | ); |
| | | |
| | | settleClaimsTotalList.add(settleClaimsTotal); |
| | | settleClaimsFeeList.add(settleClaimsFee); |
| | | averageSettleClaimsList.add(averageSettleClaims); |
| | | |
| | | } |
| | | settleClaimsDataVO.setSettleClaimsFeeList(settleClaimsFeeList); |
| | | settleClaimsDataVO.setAverageSettleClaimsList(averageSettleClaimsList); |
| | | settleClaimsDataVO.setSettleClaimsTotalList(settleClaimsTotalList); |
| | | |
| | | //总理赔金额 |
| | | settleClaimsDataVO.setSettleClaimsTotalFee(closeCaseList.stream().map(i->i.getHpAccount().add(i.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | |
| | | //总理赔案件数 |
| | | settleClaimsDataVO.setSettleClaimsTotal(settleClaimsList.size()); |
| | | |
| | | //平均理赔处理时长天数 总计处理时长(单位小时)除以 记录数 换算到天 |
| | | 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) |
| | | |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | return settleClaimsDataVO; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |