From c35d4cc65b01b0a3b88e88f25d485d38b1ef12bd Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 20 五月 2025 10:35:13 +0800 Subject: [PATCH] 提交一把 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 156 insertions(+), 13 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java index f3ea9df..f55fd08 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java @@ -377,6 +377,66 @@ @Override + public Integer createSys(SettleClaims settleClaims) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + settleClaims.setOrigin(Constants.ONE); + if(Objects.isNull(settleClaims) + || Objects.isNull(settleClaims.getMemberName()) + || Objects.isNull(settleClaims.getSolutionName()) + || Objects.isNull(settleClaims.getDuId()) + || Objects.isNull(settleClaims.getWorktypeId()) + || Objects.isNull(settleClaims.getHappenTime()) + || Objects.isNull(settleClaims.getType()) + || Objects.isNull(settleClaims.getInHospital()) + || Objects.isNull(settleClaims.getMedicalInsurance()) + || Objects.isNull(settleClaims.getContent()) + || Objects.isNull(settleClaims.getInformantName()) + || Objects.isNull(settleClaims.getInformantPhone())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(!loginUserInfo.getType().equals(Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔"); + } + //鏌ヨ鏄惁瀛樺湪宸叉彁鎶ョ殑鏁版嵁 鏍规嵁浜哄憳鍜屼繚闄╂柟妗堣繘琛岃繃婊� 鏄惁瀛樺湪杩涜涓殑鏁版嵁 + if(settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + .eq(SettleClaims::getSolutionId,settleClaims.getSolutionId()) + .eq(SettleClaims::getMemberId,loginUserInfo.getId()) + .in(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey(), + Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!"); + } + settleClaims.setCreateDate(new Date()); + settleClaims.setIsdeleted(Constants.ZERO); + settleClaims.setCompanyId(loginUserInfo.getCompanyId()); + settleClaims.setStatus(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()); + settleClaims.setCreator(loginUserInfo.getId()); + settleClaims.setCheckUserId(loginUserInfo.getId()); + settleClaimsMapper.insert(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); + } + } + + return settleClaims.getId(); + } + @Override public Integer create(SettleClaims settleClaims) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(Objects.isNull(settleClaims) @@ -1001,6 +1061,7 @@ } SettleClaims settleClaims = new SettleClaims(); BeanUtils.copyProperties(settleClaimsDTO,settleClaims); + settleClaims.setReportNumStatus(Constants.ZERO); if(Objects.nonNull(settleClaims.getId())){ settleClaims.setEditDate(new Date()); settleClaims.setEditor(loginUserInfo.getId()); @@ -1499,7 +1560,34 @@ } - + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void updCaseType(CaseTypeDTO dto){ + if(Objects.isNull(dto) + || Objects.isNull(dto.getId()) + || Objects.isNull(dto.getCaseType()) + || !(dto.getCaseType()>=Constants.ONE&&dto.getCaseType()<=Constants.THREE) + ){ + 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.ACCEPTANCE.getKey(),settleClaims.getStatus())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); + } + //瀛樺偍鏃ュ織 + this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo()); + settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) + .set(SettleClaims::getEditor,loginUserInfo.getId()) + .set(SettleClaims::getCaseType,dto.getCaseType())); + } @@ -1556,16 +1644,25 @@ if(!user.getType().equals(Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�"); } - //鏌ヨ鏄惁鏈夋姤妗堝彿鏇存敼璁板綍 - if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) - && settleClaimsLogMapper.selectCount(new QueryWrapper<SettleClaimsLog>().lambda() - .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_ADDCODE.getKey()) - .eq(SettleClaimsLog::getSettleClainmsId,param.getId()))>=Constants.ONE){ + if(Constants.equalsInteger(model.getReportNumStatus(),Constants.TWO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); } - if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())&&StringUtils.isNotBlank(model.getReportNum())){ - 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)))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); } + + +// //鏌ヨ鏄惁鏈夋姤妗堝彿鏇存敼璁板綍 +// if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) +// && settleClaimsLogMapper.selectCount(new QueryWrapper<SettleClaimsLog>().lambda() +// .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_ADDCODE.getKey()) +// .eq(SettleClaimsLog::getSettleClainmsId,param.getId()))>=Constants.ONE){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); +// } +// if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())&&StringUtils.isNotBlank(model.getReportNum())){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀规姤妗堝彿锛屾棤娉曞啀娆′慨鏀�"); +// } settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() .eq(SettleClaims::getId,param.getId()).set(SettleClaims::getEditDate, DateUtil.getCurrDateTime()).set(SettleClaims::getReportNum,param.getReportNum())); @@ -1573,6 +1670,7 @@ SettleClaims update = new SettleClaims(); update.setEditDate(new Date()); update.setEditor(user.getId()); + update.setReportNumStatus(model.getReportNumStatus()+Constants.ONE); update.setId(model.getId()); update.setCheckDate(update.getEditDate()); update.setCheckInfo("娣诲姞澶囨鍙�"); @@ -1608,7 +1706,7 @@ ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey()) ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey()) ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.COMPENSATION.getKey()) - ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_CLOSE_CASE.getKey()) + ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_FEE.getKey()) ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey()) )){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇峰綋鍓嶄笉鏀寔璇ユ搷浣渵"); @@ -1867,7 +1965,9 @@ if(Objects.isNull(settleClaims)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){ + 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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } @@ -1876,12 +1976,14 @@ SettleClaims update = new SettleClaims(); update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); + if(Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus())){ + update.setFeeUpdate(Constants.ONE); + } 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)); - //澶勭悊鍘嗗彶鏁版嵁 List<CompensationVO> oldList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); for (CompensationVO compensationVO:oldList) { @@ -1912,7 +2014,6 @@ @Override @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(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�"); @@ -1924,7 +2025,12 @@ if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){ 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.setId(settleClaims.getId()); + settleClaimsMapper.updateById(update); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, @@ -1933,5 +2039,42 @@ } +// @Override +// @Transactional(rollbackFor = {BusinessException.class,Exception.class}) +// public void payCash(PayCashDTO dto){ +// if(Objects.isNull(dto) +// || Objects.isNull(dto.getId()) +// || StringUtils.isBlank(dto.getDescribe()) +// ){ +// 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.COMPENSATION.getKey(),settleClaims.getStatus())){ +// 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.setId(settleClaims.getId()); +// settleClaimsMapper.updateById(update); +// +// //瀛樺偍鏃ュ織 +// this.saveSettleClaimsLog(settleClaims, +// Constants.SettleClaimsLogType.CONFIRM_FEE, +// Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo()); +// } + + + + + } -- Gitblit v1.9.3