在线编辑文件无法被有效区分

This commit is contained in:
gaojiabao
2023-06-20 13:24:02 +08:00
parent 24d44f8eef
commit 896e1a6448
3 changed files with 82 additions and 3 deletions
@@ -6,11 +6,17 @@ import com.adc.da.slrs.OnlineFileLog.service.OnlineFileLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@RestController
@RequestMapping("/${restPath}/lawss/OnlineFileLog")
@Api(description = "|OnlineFileLog|")
@@ -29,4 +35,26 @@ public class OnlineFileLogController {
return Result.error("转换失败");
}
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(value = "createBussMQ_onlineId_MQ_file", durable = "true"),
exchange = @Exchange(value = "create-onlineId_MQ_file", ignoreDeclarationExceptions = "true"),
key = "create-key_onlineId_MQ_file"))
public List<Object> createonlineIdMQ(Map<String,String> bussMap) throws Exception{
List<Object> obj = new ArrayList<>();
String onlineid = bussMap.get("ONLINEID");
if(StringUtils.isNotBlank(onlineid)){
String attFileIds = onlineFileLogService.selectOnlineFile(onlineid);
if(StringUtils.isNotBlank(attFileIds)){
String[] split = attFileIds.split(",");
if(split != null) {
List<String> asList = Arrays.asList(split);
for (String data : asList){
obj.add(data);
}
}
}
}
return obj;
}
}
@@ -4,11 +4,11 @@ import com.adc.da.att.dao.UserDao;
import com.adc.da.att.entity.AttFileEO;
import com.adc.da.att.entity.TsUser;
import com.adc.da.att.service.IAttFileEOService;
import com.adc.da.att.util.CreateOnlineAttIdFileMQUtil;
import com.adc.da.att.vo.AttFileVo;
import com.adc.da.file.store.IFileStore;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.sys.entity.UserEO;
import com.adc.da.util.MD5Util;
import com.adc.da.util.UUIDUtils;
import com.adc.da.util.WaterMarkUtil;
@@ -32,8 +32,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.text.SimpleDateFormat;
@@ -69,6 +67,9 @@ public class AttFileEOController {
@Value("${upload.file.white.lists}")
private String uploadFileWhiteLists; //上传文件白名单
@Autowired
private CreateOnlineAttIdFileMQUtil createOnlineAttIdFileMQUtil;
@ApiOperation(value = "|获取企标文件")
@GetMapping("/getBusStandFileByAttId")
@@ -328,6 +329,17 @@ public class AttFileEOController {
@GetMapping("/downloadFileForSarNew")
// @RequiresPermissions("sys:file:downloadFileForSar")
public void downloadFileForSarNew(String fileId, HttpServletResponse response, HttpServletRequest request) throws Exception {
if(StringUtils.isNotBlank(fileId)){
if(!fileId.contains("ATT_FILE_")){
Map<String, String> bussMap = new HashMap<>();
bussMap.put("ONLINEID",fileId);
String id = createOnlineAttIdFileMQUtil.CreateOnlineAttIdFileMQ(bussMap);
if(StringUtils.isNotBlank(id)) {
fileId = id;
}
}
}
AttFileEO attFileEO = attFileEOService.getFileInfo(fileId);
InputStream is = null;
OutputStream os = null;
@@ -0,0 +1,39 @@
package com.adc.da.att.util;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
@Component
public class CreateOnlineAttIdFileMQUtil {
@Autowired
private AmqpTemplate rabbitTemplate;
/**
*
* @param
* @param //在线编辑的id转换为att格式
*/
public String CreateOnlineAttIdFileMQ(Map<String,String> standMap){
//发送消息队列
Object obj = this.rabbitTemplate.convertSendAndReceive("create-onlineId_MQ_file", "create-key_onlineId_MQ_file", standMap);
if(obj==null) {
return null;
}
Map<String, Object> objectObjectMap = new HashMap<>();
objectObjectMap.put("attId",obj);
String id = "";
Object attId = objectObjectMap.get("attId");
if(attId!=null){
id = attId.toString();
String[] split = id.split("]");
String[] split1 = split[0].split("\\[");
id = split1[1];
}
return id;
}
}