|
@@ -32,9 +32,11 @@ import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springblade.archive.dto.SaveApplyDTO;
|
|
|
+import org.springblade.archive.entity.ArchiveConclusion;
|
|
|
import org.springblade.archive.entity.ArchiveProjectConfig;
|
|
|
import org.springblade.archive.entity.ArchivesAuto;
|
|
|
import org.springblade.archive.entity.ExpertInspection;
|
|
|
+import org.springblade.archive.mapper.ArchiveConclusionMapper;
|
|
|
import org.springblade.archive.service.*;
|
|
|
import org.springblade.archive.utils.ArchiveTreeUtil;
|
|
|
import org.springblade.archive.utils.FileTransJavaDemo;
|
|
@@ -63,9 +65,7 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.FileUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
-import org.springblade.manager.entity.ArchiveTreeContract;
|
|
|
-import org.springblade.manager.entity.ContractInfo;
|
|
|
-import org.springblade.manager.entity.ProjectInfo;
|
|
|
+import org.springblade.manager.entity.*;
|
|
|
import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
|
import org.springblade.manager.feign.ContractClient;
|
|
|
import org.springblade.manager.feign.ProjectClient;
|
|
@@ -93,6 +93,7 @@ import java.io.FileInputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.net.URL;
|
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
@@ -137,6 +138,8 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
|
|
|
private final IExpertInspectionService inspectionService;
|
|
|
|
|
|
+ private final ArchiveConclusionMapper conclusionMapper;
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -3009,6 +3012,82 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
|
|
|
return vo;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 在线验收-编写报告
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ArchiveConclusion getArchiveConclusion(Long projectId) {
|
|
|
+ Long userId = AuthUtil.getUserId();
|
|
|
+ ArchiveConclusion conclusion = baseMapper.getArchiveConclusion(projectId, userId);
|
|
|
+ //如果为空返回模板
|
|
|
+ if (conclusion == null){
|
|
|
+ //当保存的时候发现key为5代表是模板
|
|
|
+ ArchiveConclusion archiveConclusion = new ArchiveConclusion();
|
|
|
+ Long id = SnowFlakeUtil.getId();
|
|
|
+ archiveConclusion.setId(id);
|
|
|
+ archiveConclusion.setWorldUrl("https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com//upload/20231122/377ab5022240b55f9b63e2f4e3aae437.docx");
|
|
|
+ return archiveConclusion;
|
|
|
+ }
|
|
|
+ //否则返回草稿
|
|
|
+ return conclusion;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 在线excel 档案修改回调
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ExcelEditCallback callbackSave(ExcelEditCallback callback) {
|
|
|
+ ExcelEditCallback editCallback = new ExcelEditCallback();
|
|
|
+ editCallback.setError(0); //初始化返回值
|
|
|
+ int status = callback.getStatus();
|
|
|
+ //status=6,表示点击保存按钮
|
|
|
+ if (status == 3 || status == 6)
|
|
|
+ {
|
|
|
+ //获取url
|
|
|
+ String downloadUri = callback.getUrl();
|
|
|
+ downloadUri = downloadUri.replaceAll("amp;", "");
|
|
|
+ try {
|
|
|
+ //获取onlyOffice缓存中的文件流
|
|
|
+ URL url = new URL(downloadUri);
|
|
|
+ java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
|
|
|
+ connection.setRequestMethod("GET");
|
|
|
+ connection.setConnectTimeout(5 * 1000);
|
|
|
+ InputStream inputStream = connection.getInputStream();
|
|
|
+ if (inputStream == null) {
|
|
|
+ throw new Exception("文件为空");
|
|
|
+ }
|
|
|
+ //判断当前key是否存在,不存在则新增,存在则修改
|
|
|
+ String id = callback.getKey();
|
|
|
+ if (StringUtils.isBlank(id)){
|
|
|
+ throw new Exception("key不能为null");
|
|
|
+ }
|
|
|
+// id = id.substring(0, id.lastIndexOf("_"));
|
|
|
+// ArchiveConclusion conclusion = conclusionMapper.selectById(id);
|
|
|
+ ArchiveConclusion conclusion = conclusionMapper.selectOne(new LambdaQueryWrapper<ArchiveConclusion>().eq(ArchiveConclusion::getExpertId,AuthUtil.getUserId()));
|
|
|
+ //上传新文件到文件服务器
|
|
|
+ BladeFile bladeFile = iossClient.uploadFileByInputStream2("结论.docx",inputStream);
|
|
|
+ if (bladeFile == null || StringUtils.isBlank(bladeFile.getLink())){
|
|
|
+ throw new Exception("文件上传失败");
|
|
|
+ }
|
|
|
+ if (conclusion == null){
|
|
|
+ ArchiveConclusion archiveConclusion = new ArchiveConclusion();
|
|
|
+ archiveConclusion.setWorldUrl(bladeFile.getLink());
|
|
|
+ archiveConclusion.setId(SnowFlakeUtil.getId());
|
|
|
+ archiveConclusion.setExpertId(AuthUtil.getUserId());
|
|
|
+ archiveConclusion.setProjectId(callback.getProjectId());
|
|
|
+ conclusionMapper.insert(archiveConclusion);
|
|
|
+ }else {
|
|
|
+ conclusion.setWorldUrl(bladeFile.getLink());
|
|
|
+ conclusionMapper.updateById(conclusion);
|
|
|
+ }
|
|
|
+ inputStream.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ editCallback.setError(1);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return editCallback;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
public void deleteFile(String defaultDir,Long id){
|