| | |
| | | return 1; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Integer createSys(SettleClaims settleClaims) { |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Integer createOrEditSys(SettleClaims settleClaims) { |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | settleClaims.setOrigin(Constants.ONE); |
| | | if(Objects.isNull(settleClaims) |
| | |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非平台管理员无法进行该操作"); |
| | | } |
| | | Date date =new Date(); |
| | | settleClaims.setCreateDate(date); |
| | | settleClaims.setEditDate(date); |
| | | settleClaims.setIsdeleted(Constants.ZERO); |
| | | settleClaims.setCreator(loginUserInfo.getId()); |
| | | // |
| | | settleClaims.setEditor(loginUserInfo.getId()); |
| | | |
| | | List<SettleClaimsMoneyVO> feeList = settleClaims.getAccountList(); |
| | | BigDecimal mainFee = new BigDecimal(0); |
| | | BigDecimal ortherFee = new BigDecimal(0); |
| | |
| | | settleClaims.setHpAccount(mainFee); |
| | | settleClaims.setHpOtherAccount(ortherFee); |
| | | } |
| | | settleClaimsMapper.insert(settleClaims); |
| | | if(settleClaims.getId() ==null){ |
| | | //如果是新增记录 |
| | | dealCreateSysBiz(settleClaims,date,loginUserInfo); |
| | | }else{ |
| | | //如果更新 |
| | | dealUpdateSysBiz(settleClaims,date,loginUserInfo); |
| | | } |
| | | return settleClaims.getId(); |
| | | } |
| | | |
| | | |
| | | private void dealUpdateSysBiz(SettleClaims settleClaims, Date date, LoginUserInfo loginUserInfo) { |
| | | SettleClaims model = settleClaimsMapper.selectById(settleClaims.getId()); |
| | | if(model ==null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | settleClaimsMapper.updateById(settleClaims); |
| | | //删除原来的扩展属性信息,保留最新的 |
| | | settleClaimsExtMapper.delete(new UpdateWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,model.getId())); |
| | | settleClaims.getExtData().setCreator(settleClaims.getCreator()); |
| | | settleClaims.getExtData().setCreateDate(date); |
| | | settleClaims.getExtData().setEditor(settleClaims.getCreator()); |
| | | settleClaims.getExtData().setEditDate(date); |
| | | settleClaims.getExtData().setIsdeleted(Constants.ZERO); |
| | | settleClaims.getExtData().setSettileClaimsId(settleClaims.getId()); |
| | | settleClaimsExtMapper.insert(settleClaims.getExtData()); |
| | | //处理附件开始 |
| | | multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda() |
| | | .set(Multifile::getIsdeleted,Constants.ZERO) |
| | | .eq(Multifile::getObjId,model.getId()) |
| | | .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())); |
| | | dealSysFileListBiz(settleClaims); |
| | | } |
| | | |
| | | //--------------处理附件开始---------------- |
| | | List<Multifile> reportVideo = settleClaims.getReportFileList(); |
| | | if(CollectionUtils.isNotEmpty(reportVideo)){ |
| | | for (int i = 0; i < reportVideo.size(); i++) { |
| | | Multifile multifile = reportVideo.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件内容异常"); |
| | | } |
| | | multifile.setCreator(loginUserInfo.getId()); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(settleClaims.getId()); |
| | | multifile.setObjType(Constants.ONE); |
| | | multifile.setSortnum(i+1); |
| | | multifileJoinMapper.insert(multifile); |
| | | } |
| | | private void dealCreateSysBiz(SettleClaims settleClaims,Date date,LoginUserInfo loginUserInfo) { |
| | | settleClaims.setCreateDate(date); |
| | | settleClaims.setIsdeleted(Constants.ZERO); |
| | | settleClaims.setCreator(loginUserInfo.getId()); |
| | | |
| | | settleClaimsMapper.insert(settleClaims); |
| | | settleClaims.getExtData().setCreator(settleClaims.getCreator()); |
| | | settleClaims.getExtData().setCreateDate(date); |
| | | settleClaims.getExtData().setEditor(settleClaims.getCreator()); |
| | | settleClaims.getExtData().setEditDate(date); |
| | | settleClaims.getExtData().setIsdeleted(Constants.ZERO); |
| | | settleClaims.getExtData().setSettileClaimsId(settleClaims.getId()); |
| | | settleClaimsExtMapper.insert(settleClaims.getExtData()); |
| | | //处理附件开始 |
| | | dealSysFileListBiz(settleClaims); |
| | | } |
| | | |
| | | /** |
| | | * 处理附件开始 |
| | | * @param settleClaims |
| | | */ |
| | | |
| | | private void dealSysFileListBiz(SettleClaims settleClaims) { |
| | | List<Multifile> relationFileList = settleClaims.getRelationFileList();//员工关系材料 |
| | | List<Multifile> hospitalFileList = settleClaims.getHospitalFileList();//住院材料 |
| | | List<Multifile> outpatientFileList = settleClaims.getOutpatientFileList();//门诊材料 |
| | | List<Multifile> otherFileList = settleClaims.getOtherFileList();//其他材料 |
| | | List<Multifile> disabilityFileList = settleClaims.getDisabilityFileList();//伤残材料 |
| | | 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)); |
| | | if(CollectionUtils.isNotEmpty(insetList)){ |
| | | multifileJoinMapper.insert(insetList); |
| | | } |
| | | //--------------处理附件结束---------------- |
| | | |
| | | return settleClaims.getId(); |
| | | } |
| | | |
| | | private Collection<? extends Multifile> getMultifileListByObjtype(List<Multifile> list, int key,SettleClaims model) { |
| | | List<Multifile> insetList = new ArrayList<>(); |
| | | if(CollectionUtils.isNotEmpty(list)){ |
| | | int index = 0; |
| | | for (int i = 0; i < list.size(); i++) { |
| | | Multifile multifile = list.get(i); |
| | | if(Objects.isNull(multifile.getFileurl()) |
| | | || Objects.isNull(multifile.getType()) |
| | | || StringUtils.isBlank(multifile.getName()) ){ |
| | | continue; |
| | | } |
| | | multifile.setCreator(model.getEditor()); |
| | | multifile.setCreateDate(model.getEditDate()); |
| | | multifile.setEditor(model.getEditor()); |
| | | multifile.setEditDate(model.getEditDate()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(model.getId()); |
| | | multifile.setObjType(key); |
| | | multifile.setSortnum(index++); |
| | | insetList.add(multifile); |
| | | } |
| | | } |
| | | return insetList; |
| | | } |
| | | |
| | | @Override |
| | | public Integer create(SettleClaims settleClaims) { |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | |
| | | //多次出险提醒 |
| | | if(StringUtils.isNotBlank(riskConfigVO.getRiskTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskTimesOpen(),Constants.ONE+"") |
| | | && StringUtils.isNotBlank(riskConfigVO.getRiskTimesReportTimes())){ |
| | | Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId()) |
| | | .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) |
| | | .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") |
| | |
| | | && StringUtils.equals(riskConfigVO.getRiskRepeatReportOpen(),Constants.ONE+"") |
| | | && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTimeUnit()) |
| | | && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTime())){ |
| | | Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId()) |
| | | .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) |
| | | .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR) ") |
| | |
| | | if(StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimesOpen()) |
| | | && StringUtils.equals(riskConfigVO.getRiskClaimTimesOpen(),Constants.ONE+"") |
| | | && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){ |
| | | Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId()) |
| | | .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) |
| | | .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") |