From 6544203a132369d9d1db2531596f837fcc9fa39f Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 15 五月 2025 18:32:07 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 251 insertions(+), 9 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 5a501ce..74ad590 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,7 +1,6 @@
package com.doumee.service.business.impl;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -14,6 +13,7 @@
import com.doumee.dao.business.SettleClaimsLogMapper;
import com.doumee.dao.business.SettleClaimsMapper;
import com.doumee.dao.business.dto.SCSupplementDTO;
+import com.doumee.dao.business.dto.SettleClaimsDTO;
import com.doumee.dao.business.join.MultifileJoinMapper;
import com.doumee.dao.business.join.SettleClaimsJoinMapper;
import com.doumee.dao.business.join.SettleClaimsLogJoinMapper;
@@ -27,10 +27,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -40,6 +42,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
+import java.nio.charset.Charset;
import java.util.*;
import java.util.stream.Collectors;
@@ -125,6 +128,11 @@
Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
//鍒犻櫎鍏朵粬寰呭姙
noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+
+ Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),model.getInformantName(),
+ model.getCompanyId(), Constants.NoticeType.FOUR);
+ noticesMapper.insert(notices);
+
Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_RETURN;
String info =applyLogType.getInfo();
@@ -440,6 +448,7 @@
List<File> fileList = new ArrayList<>();
List<Multifile> multifileList = multifileJoinMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getIsdeleted,Constants.ZERO)
.eq(Multifile::getObjId,id)
.isNotNull(Multifile::getFileurl)
.in(Multifile::getObjType, Arrays.asList(new Integer[]{
@@ -449,28 +458,31 @@
Constants.MultiFile.LP_SCZL_FILE.getKey(),
Constants.MultiFile.LP_JACL_FILE.getKey(),
}))
+ .orderByAsc(Multifile::getCreateDate)
);
if(multifileList== null || multifileList.size() == 0){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.SETTLE_FILE).getCode();
+ Integer sn = 1;
for(Multifile l : multifileList){
- File f = Constants.getFileByNetFile(path + l.getFileurl(),StringUtils.defaultString(l.getName(),"鏈懡鍚�"));
+ File f = Constants.getFileByNetFile(path + l.getFileurl(),StringUtils.defaultString(sn + "_" +l.getName(),"鏈懡鍚�"));
if(f !=null && f.isFile()){
fileList.add(f);
}
+ sn = sn +1;
}
if(fileList == null || fileList.size() == 0){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- String fileName = model.getInformantName() +"鐞嗚禂璧勬枡涓媉"+System.currentTimeMillis()+".zip" ;
- String encodeFileName = URLEncoder.encode(fileName);
+ String fileName = model.getInformantName() +"-鐞嗚禂璧勬枡-" +System.currentTimeMillis();
+ String encodeFileName =URLEncoder.encode(fileName, Charset.forName("UTF-8").toString())+".zip";
response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
response.setContentType("application/octet-stream");
response.setHeader("eva-opera-type", "download");
response.setHeader("eva-download-filename", encodeFileName);
Constants.packFilesToZip(fileList,response.getOutputStream());
- } catch (IOException e) {
+ } catch (Exception e) {
throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
}
}
@@ -554,8 +566,34 @@
.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());
+ }
return settleClaims;
}
@@ -674,7 +712,7 @@
multifile.setObjType(scSupplementDTO.getObjType());
multifile.setObjId(scSupplementDTO.getId());
multifile.setFileurl(scSupplementDTO.getFileUrl());
- multifile.setName(scSupplementDTO.getFileUrl().substring(scSupplementDTO.getFileUrl().lastIndexOf("/") + 1));
+ multifile.setName(scSupplementDTO.getFileName());
multifile.setType(scSupplementDTO.getFileType());
multifileJoinMapper.insert(multifile);
}
@@ -769,6 +807,7 @@
.leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId)
.leftJoin(Solutions.class,Solutions::getId,SettleClaims::getSolutionId);
queryWrapper.eq(DispatchUnit::getIsdeleted,Constants.ZERO);
+ queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO);
if(Constants.equalsInteger(user.getType(),Constants.ZERO)){
//鍙兘鐪嬫潈闄愯寖鍥村唴
if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){
@@ -847,7 +886,15 @@
queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode());
}
if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
+ 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());
@@ -879,7 +926,7 @@
if (pageWrap.getModel().getInsuranceApplyId() != null) {
queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId());
}
- queryWrapper.orderByAsc(SettleClaims::getCreateDate);
+ queryWrapper.orderByDesc(SettleClaims::getCreateDate);
/*for(PageWrap.SortData sortData: pageWrap.getSorts()) {
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
queryWrapper.orderByDesc(sortData.getProperty());
@@ -896,4 +943,199 @@
QueryWrapper<SettleClaims> wrapper = new QueryWrapper<>(settleClaims);
return settleClaimsMapper.selectCount(wrapper);
}
+
+
+ public void saveSettleClaims(SettleClaimsDTO settleClaimsDTO){
+ 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())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){
+ if(Objects.isNull(settleClaimsDTO.getSolutionId())
+ ||Objects.isNull(settleClaimsDTO.getWorktypeId())
+ ||Objects.isNull(settleClaimsDTO.getDuId())
+ ||StringUtils.isBlank(settleClaimsDTO.getHappenTime())
+ ||StringUtils.isBlank(settleClaimsDTO.getContent())
+ ||Objects.isNull(settleClaimsDTO.getType())
+ ||Objects.isNull(settleClaimsDTO.getInHospital())
+ ||Objects.isNull(settleClaimsDTO.getHurtType())
+ ||Objects.isNull(settleClaimsDTO.getMedicalInsurance())
+ ||StringUtils.isBlank(settleClaimsDTO.getInformantName())
+ ||StringUtils.isBlank(settleClaimsDTO.getInformantPhone())
+ ||StringUtils.isBlank(settleClaimsDTO.getReceiveUserName())
+ ||StringUtils.isBlank(settleClaimsDTO.getReceiveBank())
+ ||StringUtils.isBlank(settleClaimsDTO.getReceiveAccount())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ }
+ SettleClaims settleClaims = new SettleClaims();
+ BeanUtils.copyProperties(settleClaimsDTO,settleClaims);
+ if(Objects.nonNull(settleClaims.getId())){
+ settleClaims.setEditDate(new Date());
+ settleClaims.setEditor(loginUserInfo.getId());
+ settleClaimsMapper.updateById(settleClaims);
+ }else{
+ settleClaims.setCreateDate(new Date());
+ settleClaims.setIsdeleted(Constants.ZERO);
+ settleClaims.setCompanyId(loginUserInfo.getCompanyId());
+ settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)?
+ Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
+ settleClaims.setCreator(loginUserInfo.getId());
+ settleClaims.setCheckUserId(loginUserInfo.getId());
+ settleClaimsMapper.insert(settleClaims);
+ }
+ this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo);
+
+
+ }
+
+
+ public void saveFile(SettleClaims settleClaims,SettleClaimsDTO settleClaimsDTO,LoginUserInfo loginUserInfo){
+ multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId,settleClaims.getId())
+ .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_OTHER_FILE.getKey(),
+ Constants.MultiFile.LP_SCZL_FILE.getKey()
+ )
+ );
+ List<Multifile> reportVideo = settleClaimsDTO.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.MultiFile.LP_SGXC_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+
+ List<Multifile> relationFileList = settleClaimsDTO.getRelationFileList();
+ if(CollectionUtils.isNotEmpty(relationFileList)){
+ 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.MultiFile.LP_YGGX_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+
+ List<Multifile> outpatientFileList = settleClaimsDTO.getOutpatientFileList();
+ if(CollectionUtils.isNotEmpty(outpatientFileList)){
+ 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.MultiFile.LP_MZCL_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+
+ List<Multifile> hospitalFileList = settleClaimsDTO.getHospitalFileList();
+ if(CollectionUtils.isNotEmpty(hospitalFileList)){
+ 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.MultiFile.LP_ZYCL_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+
+ List<Multifile> disabilityFileList = settleClaimsDTO.getDisabilityFileList();
+ if(CollectionUtils.isNotEmpty(disabilityFileList)){
+ 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.MultiFile.LP_SCZL_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+
+ List<Multifile> otherFileList = settleClaimsDTO.getOtherFileList();
+ if(CollectionUtils.isNotEmpty(otherFileList)){
+ 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.MultiFile.LP_OTHER_FILE.getKey());
+ multifile.setSortnum(i+1);
+ multifileJoinMapper.insert(multifile);
+ }
+ }
+
+
+
+
+ }
+
+
+
+
}
--
Gitblit v1.9.3