From a28247ecb3751689b9aa64c2e3d32c646cd88e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 22 一月 2024 18:19:34 +0800 Subject: [PATCH] 111 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 242 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 224 insertions(+), 18 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 4c1b365..4846864 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 @@ -1,19 +1,31 @@ package com.doumee.service.business.impl; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; +import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.MultifileMapper; +import com.doumee.dao.business.SettleClaimsLogMapper; import com.doumee.dao.business.SettleClaimsMapper; -import com.doumee.dao.business.model.SettleClaims; +import com.doumee.dao.business.dto.SCSupplementDTO; +import com.doumee.dao.business.join.SettleClaimsJoinMapper; +import com.doumee.dao.business.model.*; +import com.doumee.service.business.SettleClaimsLogService; import com.doumee.service.business.SettleClaimsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.core.util.CollectionUtils; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -28,29 +40,223 @@ @Autowired private SettleClaimsMapper settleClaimsMapper; + @Autowired + private SettleClaimsLogMapper settleClaimsLogMapper; + + @Autowired + private MultifileMapper multifileMapper; + + @Autowired + private SettleClaimsJoinMapper settleClaimsJoinMapper; + @Override public Integer create(SettleClaims settleClaims) { -// if(Objects.isNull(settleClaims) -// || Objects.isNull() -// ){ -// -// } - - - - - - - - - + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(Objects.isNull(settleClaims) + || Objects.isNull(settleClaims.getMemberId()) + || Objects.isNull(settleClaims.getSolutionId()) + || 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.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()) + ){ + 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); + multifileMapper.insert(multifile); + } + } + //璁板綍鏃ュ織 + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); return settleClaims.getId(); } + + public SettleClaims getSettleClaimsDetail(Integer id){ + SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,new MPJLambdaWrapper<SettleClaims>() + .selectAll(SettleClaims.class) + .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId) + .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId) + + ); + + + return settleClaims; + } + + + + @Override + public Integer updateForCompany(SettleClaims settleClaims) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(Objects.isNull(settleClaims) + || Objects.isNull(settleClaims.getId()) + || Objects.isNull(settleClaims.getMemberId()) + || Objects.isNull(settleClaims.getSolutionId()) + || Objects.isNull(settleClaims.getDuId()) + || Objects.isNull(settleClaims.getWorktypeId()) + || Objects.isNull(settleClaims.getType()) + || Objects.isNull(settleClaims.getInHospital()) + || Objects.isNull(settleClaims.getMedicalInsurance()) + || 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(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔"); + } + SettleClaims oldSettleClaims = settleClaimsMapper.selectById(settleClaims.getId()); + if(Objects.isNull(oldSettleClaims)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇敼鏁版嵁"); + } + if(!oldSettleClaims.getSolutionId().equals(settleClaims.getSolutionId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶淇敼鏂规淇℃伅"); + } + if(!(oldSettleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE) + || oldSettleClaims.getStatus().equals(Constants.SettleClaimsStatus.CONFIRM_INFORMATION))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔"); + } + oldSettleClaims.setEditor(loginUserInfo.getId()); + oldSettleClaims.setEditDate(new Date()); + oldSettleClaims.setDuId(settleClaims.getDuId()); + oldSettleClaims.setWorktypeId(settleClaims.getWorktypeId()); + oldSettleClaims.setInHospital(settleClaims.getInHospital()); + oldSettleClaims.setMedicalInsurance(settleClaims.getMedicalInsurance()); + oldSettleClaims.setAreaId(settleClaims.getAreaId()); + oldSettleClaims.setAreaInfo(settleClaims.getAreaInfo()); + oldSettleClaims.setType(settleClaims.getType()); + oldSettleClaims.setInformantName(settleClaims.getInformantName()); + oldSettleClaims.setInformantPhone(settleClaims.getInformantPhone()); + oldSettleClaims.setCheckUserId(loginUserInfo.getId()); + settleClaimsMapper.updateById(oldSettleClaims); + //璁板綍鏃ュ織 + Constants.SettleClaimsLogType settleClaimsLogType = Constants.SettleClaimsLogType.UPDATE_DATA; + this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null); + return oldSettleClaims.getId(); + } + + @Override + public void supplement(SCSupplementDTO scSupplementDTO){ + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(Objects.isNull(scSupplementDTO) + || Objects.isNull(scSupplementDTO.getId()) + || Objects.isNull(scSupplementDTO.getSupplement()) + || Objects.isNull(scSupplementDTO.getObjType()) + || !(scSupplementDTO.getObjType().equals(Constants.ZERO)) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(!loginUserInfo.getType().equals(Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔"); + } + SettleClaims settleClaims = settleClaimsMapper.selectById(scSupplementDTO.getId()); + if(!(settleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE) + || settleClaims.getStatus().equals(Constants.SettleClaimsStatus.CONFIRM_INFORMATION))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔"); + } + settleClaims.setEditor(loginUserInfo.getId()); + settleClaims.setEditDate(new Date()); + settleClaims.setCheckUserId(loginUserInfo.getId()); + settleClaims.setCheckInfo(scSupplementDTO.getSupplement()); + settleClaimsMapper.updateById(settleClaims); + + Constants.SettleClaimsLogType settleClaimsLogType = Constants.SettleClaimsLogType.SUPPLEMENT; + String content = settleClaimsLogType.getInfo().replace("${param}", scSupplementDTO.getSupplement()); + this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content); + } + + + + + @Override + public void claimsUploadFile(SCSupplementDTO scSupplementDTO){ + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(Objects.isNull(scSupplementDTO) + || Objects.isNull(scSupplementDTO.getId()) + || Objects.isNull(scSupplementDTO.getSupplement()) + || Objects.isNull(scSupplementDTO.getObjType()) + || Objects.isNull(scSupplementDTO.getFileUrl()) + || Objects.isNull(scSupplementDTO.getFileType()) + || scSupplementDTO.getObjType().equals(Constants.ZERO) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + + SettleClaims settleClaims = settleClaimsMapper.selectById(scSupplementDTO.getId()); + if(!(settleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE) + || settleClaims.getStatus().equals(Constants.SettleClaimsStatus.CONFIRM_INFORMATION))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔"); + } + + Multifile multifile = new Multifile(); + if(loginUserInfo.getType().equals(Constants.ONE)){ + multifile.setCompanyId(loginUserInfo.getCompanyId()); + } + multifile.setCreator(loginUserInfo.getId()); + multifile.setCreateDate(new Date()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setObjId(scSupplementDTO.getId()); + multifile.setName(scSupplementDTO.getFileUrl().substring(scSupplementDTO.getFileUrl().lastIndexOf("/") + 1)); + multifile.setType(scSupplementDTO.getFileType()); + multifileMapper.insert(multifile); + } + + + + + public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content){ + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + SettleClaimsLog settleClaimsLog = new SettleClaimsLog(); + settleClaimsLog.setCreateDate(new Date()); + settleClaimsLog.setCreator(loginUserInfo.getId()); + settleClaimsLog.setIsdeleted(Constants.ZERO); + settleClaimsLog.setSettleClainmsId(settleClaims.getId()); + settleClaimsLog.setTitle(settleClaimsLogType.getName()); + settleClaimsLog.setContent(content); + settleClaimsLog.setObjType(settleClaimsLogType.getKey()); + settleClaimsLog.setObjId(settleClaims.getId()); + settleClaimsLogMapper.insert(settleClaimsLog); + } + @Override public void deleteById(Integer id) { settleClaimsMapper.deleteById(id); -- Gitblit v1.9.3