| | |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | |
| | | import com.doumee.dao.business.vo.CompensationVO; |
| | | 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.system.model.SystemUser; |
| | | import com.doumee.service.business.SettleClaimsLogService; |
| | | import com.doumee.service.business.SettleClaimsService; |
| | |
| | | settleClaims.setEditDate(date); |
| | | settleClaims.setEditor(loginUserInfo.getId()); |
| | | |
| | | List<SettleClaimsMoneyVO> feeList = settleClaims.getAccountList(); |
| | | List<CompensationVO> feeList = settleClaims.getAccountList(); |
| | | BigDecimal mainFee = new BigDecimal(0); |
| | | BigDecimal ortherFee = new BigDecimal(0); |
| | | if(feeList!=null && feeList.size()>0){ |
| | | for(SettleClaimsMoneyVO fee : feeList){ |
| | | for(CompensationVO fee : feeList){ |
| | | if(Constants.equalsObject(fee.getType(),Constants.ZERO)){ |
| | | mainFee = mainFee.add(Constants.formatBigdecimal(fee.getMoney())); |
| | | mainFee = mainFee.add(Constants.formatBigdecimal(fee.getFee())); |
| | | }else{ |
| | | ortherFee = ortherFee.add(Constants.formatBigdecimal(fee.getMoney())); |
| | | ortherFee = ortherFee.add(Constants.formatBigdecimal(fee.getFee())); |
| | | } |
| | | } |
| | | settleClaims.setHpAccountContent(JSONObject.toJSONString(feeList)); |
| | |
| | | settleClaimsExtMapper.insert(settleClaims.getExtData()); |
| | | //处理附件开始 |
| | | multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda() |
| | | .set(Multifile::getIsdeleted,Constants.ZERO) |
| | | .set(Multifile::getIsdeleted,Constants.ONE) |
| | | .eq(Multifile::getObjId,model.getId()) |
| | | .in(Multifile::getObjType,Constants.MultiFile.LP_YGGX_FILE.getKey() |
| | | .in(Multifile::getObjType |
| | | ,Constants.MultiFile.LP_YGGX_FILE.getKey() |
| | | ,Constants.MultiFile.LP_ZYCL_FILE.getKey() |
| | | ,Constants.MultiFile.LP_MZCL_FILE.getKey() |
| | | ,Constants.MultiFile.LP_OTHER_FILE.getKey() |
| | | ,Constants.MultiFile.LP_SCZL_FILE.getKey())); |
| | | ,Constants.MultiFile.LP_SCZL_FILE.getKey() |
| | | ,Constants.MultiFile.LP_SGXC_FILE.getKey() |
| | | ,Constants.MultiFile.LP_DZBD_FILE.getKey() |
| | | ) |
| | | |
| | | ); |
| | | dealSysFileListBiz(settleClaims); |
| | | } |
| | | |
| | |
| | | List<Multifile> outpatientFileList = settleClaims.getOutpatientFileList();//门诊材料 |
| | | List<Multifile> otherFileList = settleClaims.getOtherFileList();//其他材料 |
| | | List<Multifile> disabilityFileList = settleClaims.getDisabilityFileList();//伤残材料 |
| | | List<Multifile> dzbdFileList = settleClaims.getDzbdFileList();//电子保单 |
| | | List<Multifile> reportFileList = settleClaims.getReportFileList();//报案视频 |
| | | List<Multifile> insetList = new ArrayList<>(); |
| | | insetList.addAll(getMultifileListByObjtype(relationFileList,Constants.MultiFile.LP_YGGX_FILE.getKey(),settleClaims)); |
| | | insetList.addAll(getMultifileListByObjtype(hospitalFileList,Constants.MultiFile.LP_ZYCL_FILE.getKey(),settleClaims)); |
| | | insetList.addAll(getMultifileListByObjtype(outpatientFileList,Constants.MultiFile.LP_MZCL_FILE.getKey(),settleClaims)); |
| | | insetList.addAll(getMultifileListByObjtype(otherFileList,Constants.MultiFile.LP_OTHER_FILE.getKey(),settleClaims)); |
| | | insetList.addAll(getMultifileListByObjtype(disabilityFileList,Constants.MultiFile.LP_SCZL_FILE.getKey(),settleClaims)); |
| | | insetList.addAll(getMultifileListByObjtype(dzbdFileList,Constants.MultiFile.LP_DZBD_FILE.getKey(),settleClaims)); |
| | | insetList.addAll(getMultifileListByObjtype(reportFileList,Constants.MultiFile.LP_SGXC_FILE.getKey(),settleClaims)); |
| | | if(CollectionUtils.isNotEmpty(insetList)){ |
| | | multifileJoinMapper.insert(insetList); |
| | | } |
| | |
| | | || StringUtils.isBlank(multifile.getName()) ){ |
| | | continue; |
| | | } |
| | | multifile.setId(null); |
| | | multifile.setCreator(model.getEditor()); |
| | | multifile.setCreateDate(model.getEditDate()); |
| | | multifile.setEditor(model.getEditor()); |
| | |
| | | settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setPayFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_PAY_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | } |
| | | |
| | | //查询操作记录 |
| | |
| | | }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){ |
| | | settleClaims.setFinishDate(lastConfirm.getCreateDate()); |
| | | } |
| | | return settleClaims; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public SettleClaims getSettleClaimsDetailForSd(Integer id){ |
| | | MPJLambdaWrapper<SettleClaims> queryWrapper = new MPJLambdaWrapper<SettleClaims>(); |
| | | queryWrapper.selectAll(SettleClaims.class) |
| | | .selectAs(SettleClaimsExt::getBxOrg,SettleClaims::getCompanyName) |
| | | .selectAs(SettleClaimsExt::getBxName,SettleClaims::getSolutionName) |
| | | .selectAs(SettleClaimsExt::getMemberName,SettleClaims::getMemberName) |
| | | .selectAs(SettleClaimsExt::getMemberIdcard,SettleClaims::getMemberIdcardNo) |
| | | .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime) |
| | | .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime) |
| | | .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode) |
| | | .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId) |
| | | .eq(SettleClaims::getId,id); |
| | | SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,queryWrapper); |
| | | if(settleClaims == null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ |
| | | settleClaims.setAccountList(JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class )); |
| | | } |
| | | List<Multifile> multifileList = multifileJoinMapper.selectJoinList(Multifile.class, |
| | | new MPJLambdaWrapper<Multifile>() |
| | | .selectAll(Multifile.class) |
| | | .selectAs(SystemUser::getRealname,Multifile::getCreatorName) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) |
| | | .eq(Multifile::getObjId,id) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .orderByAsc(Multifile::getCreateDate) |
| | | ); |
| | | String rPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); |
| | | String path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.SETTLE_FILE).getCode(); |
| | | if(multifileList!=null){ |
| | | for(Multifile f : multifileList){ |
| | | if(f!=null&& StringUtils.isNotBlank(f.getFileurl())){ |
| | | f.setFileurlFull(path+f.getFileurl()); |
| | | } |
| | | } |
| | | } |
| | | Multifile baoxiandanFile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>() |
| | | .lambda().eq(Multifile::getObjId,settleClaims.getInsuranceApplyId()) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey()) |
| | | .last("limit 1")); |
| | | if(baoxiandanFile!=null&& StringUtils.isNotBlank(baoxiandanFile.getFileurl())){ |
| | | path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); |
| | | baoxiandanFile.setFileurlFull(path+baoxiandanFile.getFileurl()); |
| | | } |
| | | settleClaims.setBaoxiandanFile(baoxiandanFile);//保险单 |
| | | if(CollectionUtils.isNotEmpty(multifileList)){ |
| | | settleClaims.setReportFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SGXC_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setRelationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_YGGX_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setOutpatientFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_MZCL_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setHospitalFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_ZYCL_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setDisabilityFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SCZL_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setPayFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_PAY_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList())); |
| | | |
| | | } |
| | | |
| | | //查询操作记录 |
| | | List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogJoinMapper.selectJoinList(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()) |
| | | .orderByAsc(SettleClaimsLog::getCreateDate) |
| | | ); |
| | | settleClaims.setSettleClaimsLogList(settleClaimsLogList); |
| | | SettleClaimsLog lastConfirm = settleClaimsLogMapper.selectOne(new QueryWrapper<SettleClaimsLog>().lambda() |
| | | .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId()) |
| | | .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION.getKey()) |
| | | .orderByDesc(SettleClaimsLog::getCreateDate) |
| | | .last(" limit 1") |
| | | ); |
| | | |
| | | Multifile multifile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>() |
| | | .lambda() |
| | | .eq(Multifile::getObjId,settleClaims.getId()) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .in(Multifile::getObjType, |
| | | Constants.MultiFile.LP_SGXC_FILE.getKey(), |
| | | Constants.MultiFile.LP_YGGX_FILE.getKey(), |
| | | Constants.MultiFile.LP_MZCL_FILE.getKey(), |
| | | Constants.MultiFile.LP_ZYCL_FILE.getKey(), |
| | | Constants.MultiFile.LP_SCZL_FILE.getKey(), |
| | | Constants.MultiFile.LP_JACL_FILE.getKey()) |
| | | .orderByDesc(Multifile::getCreateDate) |
| | | .last(" limit 1") |
| | | ); |
| | | |
| | | if(!Objects.isNull(lastConfirm)&&!Objects.isNull(multifile)){ |
| | | settleClaims.setFinishDate(lastConfirm.getCreateDate().compareTo(multifile.getCreateDate())>=0?lastConfirm.getCreateDate():multifile.getCreateDate()); |
| | | }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){ |
| | | settleClaims.setFinishDate(lastConfirm.getCreateDate()); |
| | | } |
| | | if(Constants.equalsObject(settleClaims.getOrigin(),Constants.ONE)){ |
| | | settleClaims.setExtData(settleClaimsExtMapper.selectOne(new LambdaQueryWrapper<SettleClaimsExt>() |
| | | .eq(SettleClaimsExt::getIsdeleted,Constants.ZERO) |
| | | .eq(SettleClaimsExt::getSettileClaimsId,settleClaims.getId()) |
| | | .last("limit 1"))); |
| | | } |
| | | settleClaims.setExtData(settleClaimsExtMapper.selectOne(new QueryWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,id).last("limit 1"))); |
| | | return settleClaims; |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | settleClaimsMapper.deleteById(id); |
| | | settleClaimsMapper.update(new UpdateWrapper<SettleClaims>().lambda().set(SettleClaims::getIsdeleted,Constants.ONE).eq(SettleClaims::getId,id)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | .selectAs(Worktype::getName,SettleClaims::getWorktypeName) |
| | | .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime) |
| | | .selectAs(DispatchUnit::getName,SettleClaims::getDuName) |
| | | .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime) |
| | | .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime) |
| | | .leftJoin(Company.class,Company::getId,SettleClaims::getCompanyId) |
| | | .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId) |
| | | .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId) |
| | |
| | | //企业用户只看自己的数据 |
| | | pageWrap.getModel().setCompanyId(user.getCompanyId()); |
| | | } |
| | | queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(SettleClaims::getOrigin,Constants.ZERO); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberIdcardNo()),Member::getIdcardNo, pageWrap.getModel().getMemberIdcardNo()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getInformantName()),SettleClaims::getInformantName, pageWrap.getModel().getInformantName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreateDateStr()),SettleClaims::getCreateDate, pageWrap.getModel().getCreateDateStr()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getHappenTime()),SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName()); |
| | | queryWrapper.eq(pageWrap.getModel().getBaseSolutionId()!=null,Solutions::getBaseId, pageWrap.getModel().getBaseSolutionId()); |
| | | queryWrapper.eq(pageWrap.getModel().getBaseDuId()!=null,DispatchUnit::getBaseId, pageWrap.getModel().getBaseDuId()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),Solutions::getName, pageWrap.getModel().getSolutionName()); |
| | | queryWrapper.eq(pageWrap.getModel().getInHospital()!=null,SettleClaims::getInHospital, pageWrap.getModel().getInHospital()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus()!=null,SettleClaims::getStatus, pageWrap.getModel().getStatus()); |
| | | queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId()); |
| | | queryWrapper.eq(pageWrap.getModel().getOrigin()!=null,SettleClaims::getOrigin, pageWrap.getModel().getOrigin()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),SettleClaims::getCode, pageWrap.getModel().getCode()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getReportNum()),SettleClaims::getReportNum, pageWrap.getModel().getReportNum()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getApplyCode()),InsuranceApply::getCode, pageWrap.getModel().getApplyCode()); |
| | | |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.eq(SettleClaims::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.eq(SettleClaims::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.ge(SettleClaims::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.le(SettleClaims::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.eq(SettleClaims::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.ge(SettleClaims::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.le(SettleClaims::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.eq(SettleClaims::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.eq(SettleClaims::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getSortnum() != null) { |
| | | queryWrapper.eq(SettleClaims::getSortnum, pageWrap.getModel().getSortnum()); |
| | | } |
| | | if (pageWrap.getModel().getSolutionId() != null) { |
| | | queryWrapper.eq(SettleClaims::getSolutionId, pageWrap.getModel().getSolutionId()); |
| | | } |
| | | if (pageWrap.getModel().getCompanyId() != null) { |
| | | queryWrapper.eq(SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId()); |
| | | } |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | | queryWrapper.eq(SettleClaims::getMemberId, pageWrap.getModel().getMemberId()); |
| | | } |
| | | if (pageWrap.getModel().getHappenTime() != null) { |
| | | queryWrapper.eq(SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime()); |
| | | } |
| | | if (pageWrap.getModel().getIdcardNo() != null) { |
| | | queryWrapper.eq(SettleClaims::getIdcardNo, pageWrap.getModel().getIdcardNo()); |
| | | |
| | | } |
| | | if (pageWrap.getModel().getDuId() != null) { |
| | | queryWrapper.eq(SettleClaims::getDuId, pageWrap.getModel().getDuId()); |
| | | } |
| | | if (pageWrap.getModel().getWorktypeId() != null) { |
| | | queryWrapper.eq(SettleClaims::getWorktypeId, pageWrap.getModel().getWorktypeId()); |
| | | } |
| | | if (pageWrap.getModel().getFee() != null) { |
| | | queryWrapper.eq(SettleClaims::getFee, pageWrap.getModel().getFee()); |
| | | } |
| | | if (pageWrap.getModel().getCheckInfo() != null) { |
| | | queryWrapper.eq(SettleClaims::getCheckInfo, pageWrap.getModel().getCheckInfo()); |
| | | } |
| | | if (pageWrap.getModel().getCheckUserId() != null) { |
| | | queryWrapper.eq(SettleClaims::getCheckUserId, pageWrap.getModel().getCheckUserId()); |
| | | } |
| | | if (pageWrap.getModel().getCode() != null) { |
| | | queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | if(pageWrap.getModel().getStatus().equals(Constants.ZERO)){ |
| | | queryWrapper.in(SettleClaims::getStatus, Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey() |
| | | ,Constants.SettleClaimsStatus.DEAL_ING.getKey() |
| | | ,Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()); |
| | | }else{ |
| | | queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | |
| | | |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.eq(SettleClaims::getType, pageWrap.getModel().getType()); |
| | | } |
| | | if (pageWrap.getModel().getInHospital() != null) { |
| | | queryWrapper.eq(SettleClaims::getInHospital, pageWrap.getModel().getInHospital()); |
| | | } |
| | | if (pageWrap.getModel().getMedicalInsurance() != null) { |
| | | queryWrapper.eq(SettleClaims::getMedicalInsurance, pageWrap.getModel().getMedicalInsurance()); |
| | | } |
| | | if (pageWrap.getModel().getContent() != null) { |
| | | queryWrapper.eq(SettleClaims::getContent, pageWrap.getModel().getContent()); |
| | | } |
| | | if (pageWrap.getModel().getInformantName() != null) { |
| | | queryWrapper.eq(SettleClaims::getInformantName, pageWrap.getModel().getInformantName()); |
| | | } |
| | | if (pageWrap.getModel().getInformantPhone() != null) { |
| | | queryWrapper.eq(SettleClaims::getInformantPhone, pageWrap.getModel().getInformantPhone()); |
| | | } |
| | | if (pageWrap.getModel().getAreaId() != null) { |
| | | queryWrapper.eq(SettleClaims::getAreaId, pageWrap.getModel().getAreaId()); |
| | | } |
| | | if (pageWrap.getModel().getAreaInfo() != null) { |
| | | queryWrapper.eq(SettleClaims::getAreaInfo, pageWrap.getModel().getAreaInfo()); |
| | | } |
| | | if (pageWrap.getModel().getReportNum() != null) { |
| | | queryWrapper.eq(SettleClaims::getReportNum, pageWrap.getModel().getReportNum()); |
| | | } |
| | | if (pageWrap.getModel().getInsuranceApplyId() != null) { |
| | | queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId()); |
| | | } |
| | | queryWrapper.orderByDesc(SettleClaims::getCreateDate); |
| | | /*for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | |
| | | } |
| | | }*/ |
| | | 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())); |
| | | } |
| | | return pageData; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<SettleClaims> findPageForSd(PageWrap<SettleClaims> pageWrap) { |
| | | IPage<SettleClaims> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | MPJLambdaWrapper<SettleClaims> queryWrapper = new MPJLambdaWrapper<SettleClaims>(); |
| | | queryWrapper.selectAll(SettleClaims.class) |
| | | .selectAs(SettleClaimsExt::getBxOrg,SettleClaims::getCompanyName) |
| | | .selectAs(SettleClaimsExt::getBxName,SettleClaims::getSolutionName) |
| | | .selectAs(SettleClaimsExt::getMemberName,SettleClaims::getMemberName) |
| | | .selectAs(SettleClaimsExt::getMemberIdcard,SettleClaims::getMemberIdcardNo) |
| | | .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime) |
| | | .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime) |
| | | .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode) |
| | | .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId); |
| | | queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(SettleClaims::getOrigin,Constants.ONE); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getReportNum()),SettleClaims::getReportNum, pageWrap.getModel().getReportNum()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),SettleClaimsExt::getBxOrg, pageWrap.getModel().getCompanyName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getInformantName()),SettleClaims::getInformantName, pageWrap.getModel().getInformantName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getHappenTime()),SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreateDateStr()),SettleClaims::getCreateDate, pageWrap.getModel().getCreateDateStr()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),SettleClaimsExt::getMemberName, pageWrap.getModel().getMemberName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),SettleClaimsExt::getBxName, pageWrap.getModel().getSolutionName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getApplyCode()),SettleClaimsExt::getBxCode, pageWrap.getModel().getApplyCode()); |
| | | queryWrapper.eq(pageWrap.getModel().getInHospital()!=null,SettleClaims::getInHospital, pageWrap.getModel().getInHospital()); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus()!=null,SettleClaims::getStatus, pageWrap.getModel().getStatus()); |
| | | 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())); |
| | | settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount())); |
| | | } |
| | | return pageData; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public long count(SettleClaims settleClaims) { |
| | |
| | | SettleClaims settleClaims = new SettleClaims(); |
| | | BeanUtils.copyProperties(settleClaimsDTO,settleClaims); |
| | | settleClaims.setReportNumStatus(Constants.ZERO); |
| | | settleClaims.setOrigin(Constants.ZERO); |
| | | if(Objects.nonNull(settleClaims.getId())){ |
| | | settleClaims.setEditDate(new Date()); |
| | | settleClaims.setEditor(loginUserInfo.getId()); |
| | |
| | | //处理风险信息 |
| | | this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService); |
| | | } |
| | | |
| | | settleClaimsMapper.updateById(settleClaims); |
| | | }else{ |
| | | settleClaims.setCreateDate(new Date()); |
| | |
| | | } |
| | | List<CompensationVO> modelList = new ArrayList<>(); |
| | | if (Objects.nonNull(settleClaims)) { |
| | | if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ |
| | | if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ZERO)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ |
| | | modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); |
| | | }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.TWO)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ |
| | | }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ |
| | | modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); |
| | | } |
| | | } |
| | |
| | | SettleClaims update = new SettleClaims(); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | 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)); |
| | | update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)&&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.ZERO)&&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.ZERO)&&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.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setAccountContent(dto.getCompensationJson()); |
| | | update.setId(settleClaims.getId()); |
| | | update.setStatus(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey()); |
| | |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setHpAccountContent(dto.getCompensationJson()); |
| | | update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); |
| | | 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()); |
| | |
| | | |
| | | |
| | | |
| | | 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)); |
| | | //立案退回状态数据 |
| | | if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){ |
| | | SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO(); |
| | | settleParentStatusVO.setParentTitle("报案"); |
| | | settleParentStatusVO.setStatus(Constants.ONE); |
| | | settleParentStatusVO.setChildTitle(Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getName()); |
| | | Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream() |
| | | .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey())).findFirst(); |
| | | if(optionalSettleClaimsLog.isPresent()){ |
| | | settleParentStatusVO.setOptDate(optionalSettleClaimsLog.get().getCreateDate()); |
| | | } |
| | | settleParentStatusVOList.add(settleParentStatusVO); |
| | | return settleParentStatusVOList; |
| | | } |
| | | //暂存状态 无主流程数据 |
| | | if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){ |
| | | return settleParentStatusVOList; |
| | | } |
| | | //商议审批不通过 |
| | | if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){ |
| | | SettleParentStatusVO settleParentStatusBAVO = new SettleParentStatusVO(); |
| | | settleParentStatusBAVO.setParentTitle("报案"); |
| | | settleParentStatusBAVO.setChildTitle("已报案"); |
| | | settleParentStatusBAVO.setStatus(Constants.ZERO); |
| | | Optional<SettleClaimsLog> optionalSettleClaimsBALog = settleClaimsLogList.stream() |
| | | .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.ONE)).findFirst(); |
| | | if(optionalSettleClaimsBALog.isPresent()){ |
| | | settleParentStatusBAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate()); |
| | | } |
| | | settleParentStatusVOList.add(settleParentStatusBAVO); |
| | | |
| | | SettleParentStatusVO settleParentStatusLAVO = new SettleParentStatusVO(); |
| | | settleParentStatusLAVO.setParentTitle("立案"); |
| | | settleParentStatusLAVO.setChildTitle("已立案"); |
| | | settleParentStatusLAVO.setStatus(Constants.ZERO); |
| | | Optional<SettleClaimsLog> optionalSettleClaimsLALog = settleClaimsLogList.stream() |
| | | .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.TWO)).findFirst(); |
| | | if(optionalSettleClaimsLALog.isPresent()){ |
| | | settleParentStatusLAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate()); |
| | | } |
| | | settleParentStatusVOList.add(settleParentStatusBAVO); |
| | | |
| | | SettleParentStatusVO settleParentStatusSLVO = new SettleParentStatusVO(); |
| | | settleParentStatusSLVO.setParentTitle("受理"); |
| | | settleParentStatusSLVO.setChildTitle("商议拒绝"); |
| | | settleParentStatusSLVO.setStatus(Constants.THREE); |
| | | Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() |
| | | .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.THREE)).findFirst(); |
| | | if(optionalSettleClaimsSLLog.isPresent()){ |
| | | settleParentStatusSLVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); |
| | | } |
| | | settleParentStatusVOList.add(settleParentStatusSLVO); |
| | | |
| | | return settleParentStatusVOList; |
| | | } |
| | | |
| | | //主动撤销 |
| | | if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN.getKey())){ |
| | | List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream() |
| | | .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList()); |
| | | //获取当前日志最大的父状态 |
| | | Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o)); |
| | | if(optionalInteger.isPresent()){ |
| | | for (int i = 1; i <= 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())); |
| | | } |
| | | } |
| | | settleParentStatusVOList.add(s); |
| | | } |
| | | } |
| | | //添加撤案数据 |
| | | SettleParentStatusVO settleParentStatusCHVO = new SettleParentStatusVO(); |
| | | settleParentStatusCHVO.setParentTitle("已撤案"); |
| | | settleParentStatusCHVO.setChildTitle("企业主动撤案"); |
| | | settleParentStatusCHVO.setStatus(Constants.THREE); |
| | | Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() |
| | | .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); |
| | | if(optionalSettleClaimsSLLog.isPresent()){ |
| | | settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); |
| | | } |
| | | settleParentStatusVOList.add(settleParentStatusCHVO); |
| | | return settleParentStatusVOList; |
| | | } |
| | | |
| | | |
| | | List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream() |
| | | .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList()); |
| | | Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o)); |
| | | if(optionalInteger.isPresent()){ |
| | | for (int i = 1; i <= 6; i++) { |
| | | SettleParentStatusVO s = new SettleParentStatusVO(); |
| | | Constants.SettleClaimsLogParentStatus parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i); |
| | | s.setParentTitle(parentStatus.getName()); |
| | | if(optionalInteger.get()>i){ |
| | | //如果最大的父业务状态 大于 默认的6类数据 则直接显示默认配置 |
| | | s.setChildTitle(parentStatus.getInfo()); |
| | | s.setStatus(Constants.ZERO); |
| | | }else if(optionalInteger.get()<i){ |
| | | //如果最大的父业务状态 小于 默认的6类数据 则直接显示默认未处理配置 |
| | | s.setChildTitle(parentStatus.getWaitInfo()); |
| | | s.setStatus(Constants.TWO); |
| | | }else{ |
| | | //如果是等于父状态 则去查询实际的业务状态 |
| | | 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())); |
| | | } |
| | | } |
| | | s.setStatus(Constants.ONE); |
| | | } |
| | | settleParentStatusVOList.add(s); |
| | | } |
| | | } |
| | | return settleParentStatusVOList; |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |