sangwenwei 1 рік тому
батько
коміт
fe16fab805
29 змінених файлів з 824 додано та 821 видалено
  1. 188 2
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/controller/AssessDailyOfficeWorkSignatureCallBackController.java
  2. 170 2
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/controller/AssessDailyReportSignatureCallBackController.java
  3. 0 64
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/domain/SignatureDailyFile.java
  4. 0 21
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/AssessSignatureDailyFileMapper.java
  5. 1 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/AssessSignatureDailyOfficeWorkMapper.java
  6. 1 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/AssessSignatureProjectReportMapper.java
  7. 0 20
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/xml/AssessSignatureDailyFileMapper.xml
  8. 1 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/xml/AssessSignatureDailyOfficeWorkMapper.xml
  9. 1 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/xml/AssessSignatureProjectReportMapper.xml
  10. 9 117
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureDailyOfficeWorkService.java
  11. 8 113
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureProjectReportService.java
  12. 1 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/dto/AssessSignatureDailyOfficeWorkDTO.java
  13. 0 70
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/dto/AssessSignatureDailyWorkAttachmentDTO.java
  14. 1 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/dto/AssessSignatureProjectReportRelationDTO.java
  15. 1 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/mapper/xml/CwProjectRecordsMapper.xml
  16. 187 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/controller/DailyOfficeWorkSignatureCallBackController.java
  17. 194 2
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/controller/DailyReportSignatureCallBackController.java
  18. 0 64
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/domain/CwSignatureDailyFile.java
  19. 0 16
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/SignatureDailyFileMapper.java
  20. 1 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/SignatureDailyOfficeWorkMapper.java
  21. 1 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/SignatureProjectReportMapper.java
  22. 0 12
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/xml/SignatureDailyFileMapper.xml
  23. 31 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/xml/SignatureDailyOfficeWorkMapper.xml
  24. 1 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/xml/SignatureProjectReportMapper.xml
  25. 16 123
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureDaulyOfficeWorkService.java
  26. 9 114
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureProjectReportService.java
  27. 1 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/dto/SignatureDailyOfficeWorkDTO.java
  28. 0 71
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/dto/SignatureDailyWorkAttachmentDTO.java
  29. 1 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/dto/SignatureProjectReportRelationDTO.java

+ 188 - 2
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/controller/AssessDailyOfficeWorkSignatureCallBackController.java

@@ -6,10 +6,14 @@ import com.jeeplus.assess.assessSignatureDaily.domain.PresignCallBack;
 import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureDailyOfficeWorkMapper;
 import com.jeeplus.assess.assessSignatureDaily.service.AssessSignatureDailyOfficeWorkService;
 import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureDailyOfficeWorkDTO;
+import com.jeeplus.assess.utils.Global;
+import com.jeeplus.assess.utils.SignaturePostUtil;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.ResponseUtil;
 
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import org.slf4j.Logger;
@@ -17,15 +21,19 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -37,6 +45,8 @@ import java.util.concurrent.TimeUnit;
 @RequestMapping(value = "/assessDailyOfficeWork/signatureCallBack")
 public class AssessDailyOfficeWorkSignatureCallBackController {
     private static Logger logger = LoggerFactory.getLogger(ResponseUtil.class);
+    private static final String DIRECTORY  = Global.getConfig("directory");
+
 
     @Autowired
     private AssessSignatureDailyOfficeWorkService dailyOfficeWorkService;
@@ -93,7 +103,8 @@ public class AssessDailyOfficeWorkSignatureCallBackController {
         String signatureUrl = null;
         if(StringUtils.isNotBlank(presignCallBack.getStoragePath())){
             signatureUrl = presignCallBack.getStoragePath().replace("oss:/","");
-
+            //必须得再进行一次替换,否则无法下载到本地
+            signatureUrl = signatureUrl.replace("/xg-qz","");
             dailyOfficeWork.setSignatureUrl(signatureUrl);
             dailyOfficeWork.setSignatureUrlFlag(1);
 
@@ -113,6 +124,154 @@ public class AssessDailyOfficeWorkSignatureCallBackController {
         }
         //修改签章对应信息文件
         signatureDailyOfficeWorkMapper.updateSignatureInfo(dailyOfficeWork);
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getById (dailyOfficeWork.getCreateById());
+        //将文件下载并对原有文件地址进行替换
+        String deleteFile = null;
+        String unzipFileStr = null;
+        try{
+            String path = null;
+            if(System.getProperty("os.name").toLowerCase().contains("win")){
+                path = "D:/attachment-file/";
+            }else{
+                path = "/attachment-file/";
+            }
+            String aliyunUrl = "http://cdn.gangwaninfo.com";
+            String aliDownloadUrl = "http://oss.gangwaninfo.com";
+
+
+            String file = aliyunUrl + signatureUrl;
+            file = file.replace("amp;","");
+            String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
+            String cons = "";
+            if (file.contains(aliyunUrl)){
+                cons = aliyunUrl;
+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+            }else {
+                cons = aliDownloadUrl;
+            }
+            String ossKey = file.split(cons+"/")[1];
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+//            ossClientService.downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+            //将下载下来的文件转换为file文件
+            File srcFile = new File(path+fileName);
+            deleteFile = path+fileName;
+
+            //截取文件名称
+            String srcFileName = srcFile.getName().substring(0,srcFile.getName().lastIndexOf("."));
+
+            //解压后文件地址
+            unzipFileStr = path + srcFileName;
+
+            //将下载后的文件进行解压
+            SignaturePostUtil.unZipFile(srcFile,unzipFileStr);
+
+            //遍历解压后文件夹中的所有文件信息
+            File unZipFile = new File(unzipFileStr);
+
+            File[] unZipFileList = unZipFile.listFiles();
+
+            if(null != unZipFileList && unZipFileList.length>0){
+                for (File f : unZipFileList) {
+                    String filepath = "";
+                    //取得上传文件
+                    //将文件上传到oss云盘中
+                    MultipartFile cMultiFile = new MockMultipartFile("file", f.getName(), null, new FileInputStream(f));
+                    if (!cMultiFile.isEmpty()) {
+                        // 文件保存路径
+                        String realPath =DIRECTORY.replace("/","")+"/cw_signature_daily_file"+SpringUtil.getBean ( IWorkAttachmentApi.class ).datePath()+"/"+ System.currentTimeMillis();
+                        //文件原名称
+                        String newName = cMultiFile.getOriginalFilename();
+                        if(org.apache.commons.lang3.StringUtils.isNotBlank(newName)){
+                            newName = newName.substring(13, newName.length());
+                            //SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFile2OSS(cMultiFile.getInputStream(),realPath,newName);
+                            SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFileSignatureOSS(f.getPath(),realPath,newName);
+                            filepath = "/" + realPath + newName;
+                        }
+                    }
+
+                    System.out.println(f.getName());
+                    //截取文件后缀名
+                    String substring = f.getName().substring(f.getName().lastIndexOf(".")+1, f.getName().length());
+
+                    String newFileName = f.getName().substring(13, f.getName().length());
+
+                    //将签章完成的附件进行保存到附件表中
+                    WorkAttachmentInfo workattachment = new WorkAttachmentInfo();
+                    workattachment.setDelFlag(0);
+                    workattachment.setUrl(filepath);
+                    workattachment.setType(substring);
+                    workattachment.setAttachmentName(newFileName);
+                    workattachment.setAttachmentFlag("signatured_daily");
+                    workattachment.setFileSize(String.valueOf(f.length()));
+                    workattachment.setAttachmentId(dailyOfficeWork.getId());
+                    workattachment.setAttachmentType("");
+                    String id = UUID.randomUUID().toString().replace("-", "");
+                    workattachment.setId(id);
+                    workattachment.setCreateTime(new Date());
+                    workattachment.setUpdateTime(new Date());
+                    //先查询数据库中是否已经对数据进行保存
+                    //若未保存,则进行保存,否则直接跳过
+                    List<WorkAttachmentInfo> byAttachmentIdAndUrl = SpringUtil.getBean ( IWorkAttachmentApi.class ).getByAttachmentIdAndUrlAndAttachmentFlag(workattachment);
+                    if(byAttachmentIdAndUrl.size() == 0){
+                        Map<String,String> map = new HashMap<>();
+                        String workAttachment = JSON.toJSONString((workattachment));
+                        String userDTOInfo = JSON.toJSONString((userDTO));
+                        map.put("workAttachment",workAttachment);
+                        map.put("userDTO",userDTOInfo);
+                        SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+//                        ossServiceMapper.insert(workattachment);
+
+                        //将附件信息添加到签章附件信息表中
+//                        CwSignatureDailyFile cwSignatureDailyFile = new CwSignatureDailyFile();
+//                        cwSignatureDailyFile.setDelFlag(0);
+//                        cwSignatureDailyFile.setId(UUID.randomUUID().toString().replace("-", ""));
+//                        cwSignatureDailyFile.setCreateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setUpdateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setCreateTime(new Date());
+//                        cwSignatureDailyFile.setUpdateTime(new Date());
+//                        cwSignatureDailyFile.setReportFileId(id);
+//                        cwSignatureDailyFile.setFileAffiliation("1");
+//                        signatureDailyOfficeWorkMapper.insertFile(cwSignatureDailyFile);
+                    }
+
+                    //遍历该contractId对应的报告信息,将报告信息中的附件地址进行替换
+
+                    //查询报告文件信息(电子章)
+                    /*List<WorkAttachment> fileList = attachmentMapper.selectWorkAttachmentByReportId(projectReportData.getId());
+                    if(fileList.size()>0){
+                        for (WorkAttachment workattachment : fileList) {
+                            //根据url截取文件名成
+                            String workattachmentName = workattachment.getUrl().substring(workattachment.getUrl().lastIndexOf("/")+1, workattachment.getUrl().length());
+
+                            if(f.getName().contains(workattachmentName)){
+                                workattachment.setUrl(filepath);
+                                workattachment.setType(substring);
+                                workattachment.setAttachmentName(f.getName());
+                                attachmentMapper.updateByIdOnSignature(workattachment);
+                            }
+                        }
+                    }*/
+                }
+            }
+
+            //将报告数据中的盖章状态更改为已盖章
+            //cwProjectReportService.updateReportSealType(projectReportData);
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(deleteFile)){
+                //根据路径创建文件对象
+                File file = new File(deleteFile);
+                //路径是个文件且不为空时删除文件
+                if(file.isFile()&&file.exists()){
+                    file.delete();
+                }
+            }
+            File file = new File(unzipFileStr);
+            deleteFile(file);
+        }
 
         return null;
     }
@@ -145,4 +304,31 @@ public class AssessDailyOfficeWorkSignatureCallBackController {
         }
         return null;
     }
+
+    public static Boolean deleteFile(File file) {
+        //判断文件不为null或文件目录存在
+        if (file == null || !file.exists()) {
+            System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确");
+            return false;
+        }
+        //获取目录下子文件
+        File[] files = file.listFiles();
+        //遍历该目录下的文件对象
+        for (File f : files) {
+            //判断子目录是否存在子目录,如果是文件则删除
+            if (f.isDirectory()) {
+                //递归删除目录下的文件
+                deleteFile(f);
+            } else {
+                //文件删除
+                f.delete();
+                //打印文件名
+                System.out.println("文件名:" + f.getName());
+            }
+        }
+        //文件夹删除
+        file.delete();
+        System.out.println("目录名:" + file.getName());
+        return true;
+    }
 }

+ 170 - 2
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/controller/AssessDailyReportSignatureCallBackController.java

@@ -6,10 +6,14 @@ import com.jeeplus.assess.assessSignatureDaily.domain.PresignCallBack;
 import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureProjectReportMapper;
 import com.jeeplus.assess.assessSignatureDaily.service.AssessSignatureProjectReportService;
 import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureProjectReportRelationDTO;
+import com.jeeplus.assess.utils.Global;
+import com.jeeplus.assess.utils.SignaturePostUtil;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.ResponseUtil;
 
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import org.slf4j.Logger;
@@ -17,15 +21,19 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -38,6 +46,9 @@ import java.util.concurrent.TimeUnit;
 public class AssessDailyReportSignatureCallBackController {
     private static Logger logger = LoggerFactory.getLogger(ResponseUtil.class);
 
+    private static final String DIRECTORY  = Global.getConfig("directory");
+
+
     @Autowired
     private AssessSignatureProjectReportService signatureProjectReportService;
     @Autowired
@@ -93,7 +104,8 @@ public class AssessDailyReportSignatureCallBackController {
         String signatureUrl = null;
         if(StringUtils.isNotBlank(presignCallBack.getStoragePath())){
             signatureUrl = presignCallBack.getStoragePath().replace("oss:/","");
-
+            //必须得再进行一次替换,否则无法下载到本地
+            signatureUrl = signatureUrl.replace("/xg-qz","");
             dailyOfficeWork.setSignatureUrl(signatureUrl);
             dailyOfficeWork.setSignatureUrlFlag(1);
 
@@ -113,6 +125,135 @@ public class AssessDailyReportSignatureCallBackController {
         }
         //修改签章对应信息文件
         signatureProjectReportMapper.updateSignatureInfo(dailyOfficeWork);
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getById (dailyOfficeWork.getCreateById());
+        //将文件下载并对原有文件地址进行替换
+        String deleteFile = null;
+        String unzipFileStr = null;
+        try{
+            String path = null;
+            if(System.getProperty("os.name").toLowerCase().contains("win")){
+                path = "D:/attachment-file/";
+            }else{
+                path = "/attachment-file/";
+            }
+            String aliyunUrl = "http://cdn.gangwaninfo.com";
+            String aliDownloadUrl = "http://oss.gangwaninfo.com";
+
+
+            String file = aliyunUrl + signatureUrl;
+            file = file.replace("amp;","");
+            String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
+            String cons = "";
+            if (file.contains(aliyunUrl)){
+                cons = aliyunUrl;
+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+            }else {
+                cons = aliDownloadUrl;
+            }
+            String ossKey = file.split(cons+"/")[1];
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+//            ossClientService.downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+            //将下载下来的文件转换为file文件
+            File srcFile = new File(path+fileName);
+            deleteFile = path+fileName;
+
+            //截取文件名称
+            String srcFileName = srcFile.getName().substring(0,srcFile.getName().lastIndexOf("."));
+
+            //解压后文件地址
+            unzipFileStr = path + srcFileName;
+
+            //将下载后的文件进行解压
+            SignaturePostUtil.unZipFile(srcFile,unzipFileStr);
+
+            //遍历解压后文件夹中的所有文件信息
+            File unZipFile = new File(unzipFileStr);
+
+            File[] unZipFileList = unZipFile.listFiles();
+
+            if(null != unZipFileList && unZipFileList.length>0){
+                for (File f : unZipFileList) {
+                    String filepath = "";
+                    //取得上传文件
+                    //将文件上传到oss云盘中
+                    MultipartFile cMultiFile = new MockMultipartFile("file", f.getName(), null, new FileInputStream(f));
+                    if (!cMultiFile.isEmpty()) {
+                        // 文件保存路径
+                        String realPath =DIRECTORY.replace("/","")+"/cw_signature_report_file"+SpringUtil.getBean ( IWorkAttachmentApi.class ).datePath()+"/"+ System.currentTimeMillis();
+                        //文件原名称
+                        String newName = cMultiFile.getOriginalFilename();
+                        if(org.apache.commons.lang3.StringUtils.isNotBlank(newName)){
+                            newName = newName.substring(13, newName.length());
+                            //SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFile2OSS(cMultiFile.getInputStream(),realPath,newName);
+                            SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFileSignatureOSS(f.getPath(),realPath,newName);
+                            filepath = "/" + realPath + newName;
+                        }
+                    }
+
+                    System.out.println(f.getName());
+                    //截取文件后缀名
+                    String substring = f.getName().substring(f.getName().lastIndexOf(".")+1, f.getName().length());
+
+                    String newFileName = f.getName().substring(13, f.getName().length());
+
+                    //将签章完成的附件进行保存到附件表中
+                    WorkAttachmentInfo workattachment = new WorkAttachmentInfo();
+                    workattachment.setDelFlag(0);
+                    workattachment.setUrl(filepath);
+                    workattachment.setType(substring);
+                    workattachment.setAttachmentName(newFileName);
+                    workattachment.setAttachmentFlag("signatured_report");
+                    workattachment.setFileSize(String.valueOf(f.length()));
+                    workattachment.setAttachmentId(dailyOfficeWork.getId());
+                    workattachment.setAttachmentType("");
+                    String id = UUID.randomUUID().toString().replace("-", "");
+                    workattachment.setId(id);
+                    workattachment.setCreateTime(new Date());
+                    workattachment.setUpdateTime(new Date());
+                    //先查询数据库中是否已经对数据进行保存
+                    //若未保存,则进行保存,否则直接跳过
+                    List<WorkAttachmentInfo> byAttachmentIdAndUrl = SpringUtil.getBean ( IWorkAttachmentApi.class ).getByAttachmentIdAndUrlAndAttachmentFlag(workattachment);
+                    if(byAttachmentIdAndUrl.size() == 0){
+                        Map<String,String> map = new HashMap<>();
+                        String workAttachment = JSON.toJSONString((workattachment));
+                        String userDTOInfo = JSON.toJSONString((userDTO));
+                        map.put("workAttachment",workAttachment);
+                        map.put("userDTO",userDTOInfo);
+                        SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+//                        ossServiceMapper.insert(workattachment);
+
+                        //将附件信息添加到签章附件信息表中
+//                        CwSignatureDailyFile cwSignatureDailyFile = new CwSignatureDailyFile();
+//                        cwSignatureDailyFile.setDelFlag(0);
+//                        cwSignatureDailyFile.setId(UUID.randomUUID().toString().replace("-", ""));
+//                        cwSignatureDailyFile.setCreateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setUpdateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setCreateTime(new Date());
+//                        cwSignatureDailyFile.setUpdateTime(new Date());
+//                        cwSignatureDailyFile.setReportFileId(id);
+//                        cwSignatureDailyFile.setFileAffiliation("1");
+//                        signatureDailyOfficeWorkMapper.insertFile(cwSignatureDailyFile);
+                    }
+
+
+                }
+            }
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(deleteFile)){
+                //根据路径创建文件对象
+                File file = new File(deleteFile);
+                //路径是个文件且不为空时删除文件
+                if(file.isFile()&&file.exists()){
+                    file.delete();
+                }
+            }
+            File file = new File(unzipFileStr);
+            deleteFile(file);
+        }
 
         return null;
     }
@@ -145,4 +286,31 @@ public class AssessDailyReportSignatureCallBackController {
         }
         return null;
     }
+
+    public static Boolean deleteFile(File file) {
+        //判断文件不为null或文件目录存在
+        if (file == null || !file.exists()) {
+            System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确");
+            return false;
+        }
+        //获取目录下子文件
+        File[] files = file.listFiles();
+        //遍历该目录下的文件对象
+        for (File f : files) {
+            //判断子目录是否存在子目录,如果是文件则删除
+            if (f.isDirectory()) {
+                //递归删除目录下的文件
+                deleteFile(f);
+            } else {
+                //文件删除
+                f.delete();
+                //打印文件名
+                System.out.println("文件名:" + f.getName());
+            }
+        }
+        //文件夹删除
+        file.delete();
+        System.out.println("目录名:" + file.getName());
+        return true;
+    }
 }

+ 0 - 64
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/domain/SignatureDailyFile.java

@@ -1,64 +0,0 @@
-package com.jeeplus.assess.assessSignatureDaily.domain;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.jeeplus.core.domain.BaseEntity;
-import com.jeeplus.sys.service.dto.UserDTO;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 签章附件表
- * @author: 徐滕
- * @version: 2022-11-10 15:02
- */
-@Data
-@TableName("signature_daily_file")
-public class SignatureDailyFile extends BaseEntity {
-
-    /**
-     * work_attachment_id
-     */
-    private String reportFileId;
-    /**
-     * 文件类型
-     * 1:正文
-     * 2:封面
-     * 3:报表
-     * 4:附注
-     * 5:其他
-     */
-    private String fileType;
-
-    /**
-     * 盖章类型
-     * 1:电子章
-     * 2:不盖章
-     */
-    private String sealType;
-
-    /**
-     * 已盖章
-     */
-    private String sealedFile;
-
-    /**
-     * 盖章人
-     */
-    private UserDTO sealUser;
-
-    /**
-     * 盖章时间
-     */
-    private Date sealDate;
-
-    /**
-     * 备注信息
-     */
-    private String remarks;
-
-    /**
-     * 附件归属(0:未盖章签章文件;1:已盖章签章文件)
-     */
-    private String fileAffiliation;
-}

+ 0 - 21
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/AssessSignatureDailyFileMapper.java

@@ -1,21 +0,0 @@
-package com.jeeplus.assess.assessSignatureDaily.mapper;
-
-import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import com.jeeplus.assess.assessSignatureDaily.domain.SignatureDailyFile;
-import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureDailyWorkAttachmentDTO;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface AssessSignatureDailyFileMapper extends BaseMapper<SignatureDailyFile> {
-    List<AssessSignatureDailyWorkAttachmentDTO> selectByInfoId(String id);
-
-    SignatureDailyFile selectInfoByFileId(@Param("id") String id);
-
-    @InterceptorIgnore(tenantLine = "true")
-    Integer deleteAttachement(@Param("id") String id,@Param("attachmentFlag") String attachmentFlag);
-}

+ 1 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/AssessSignatureDailyOfficeWorkMapper.java

@@ -21,7 +21,7 @@ public interface AssessSignatureDailyOfficeWorkMapper extends BaseMapper<AssessS
 
     AssessSignatureDailyOfficeWorkDTO findById(@Param("id") String id);
 
-    List<WorkAttachmentInfo> findFiles(@Param("id") String id);
+    List<WorkAttachmentInfo> findFiles(@Param("id") String id,@Param("flag") String flag);
 
     void updateStatusById(@Param("status") String status,@Param("id") String id);
 

+ 1 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/AssessSignatureProjectReportMapper.java

@@ -22,7 +22,7 @@ public interface AssessSignatureProjectReportMapper extends BaseMapper<AssessSig
 
     AssessSignatureProjectReportRelationDTO findById(@Param("id") String id);
 
-    List<WorkAttachmentInfo> findFiles(@Param("id") String id);
+    List<WorkAttachmentInfo> findFiles(@Param("id") String id,@Param("flag") String flag);
 
     void updateStatusById(@Param("status") String status, @Param("id") String id);
 

+ 0 - 20
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/xml/AssessSignatureDailyFileMapper.xml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureDailyFileMapper">
-    <select id="selectByInfoId"
-            resultType="com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureDailyWorkAttachmentDTO">
-        select id,url,file_size as size,attachment_name as name from work_attachment where del_flag = 0 and attachment_id = #{id}
-    </select>
-
-    <select id="selectInfoByFileId" resultType="com.jeeplus.assess.assessSignatureDaily.domain.SignatureDailyFile">
-        select * from signature_daily_file where report_file_id = #{id} and del_flag = '0'
-    </select>
-
-    <delete id="deleteAttachement">
-        delete from work_attachment
-		WHERE
-			del_flag = 0
-			AND attachment_id = #{id}
-			AND attachment_flag = #{attachmentFlag}
-    </delete>
-</mapper>

+ 1 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/xml/AssessSignatureDailyOfficeWorkMapper.xml

@@ -94,6 +94,7 @@
 		WHERE
 			del_flag = 0
 			AND attachment_id = #{id}
+			and attachment_flag = #{flag}
 	</select>
 
     <update id="updateStatusById">

+ 1 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/mapper/xml/AssessSignatureProjectReportMapper.xml

@@ -101,6 +101,7 @@
 		WHERE
 			del_flag = 0
 			AND attachment_id = #{id}
+			and attachment_flag = #{flag}
 	</select>
 
     <update id="updateStatusById">

+ 9 - 117
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureDailyOfficeWorkService.java

@@ -10,10 +10,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.jeeplus.assess.assessSignatureDaily.domain.*;
-import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureDailyFileMapper;
 import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureDailyOfficeWorkMapper;
 import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureDailyOfficeWorkDTO;
-import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureDailyWorkAttachmentDTO;
 import com.jeeplus.assess.utils.Global;
 import com.jeeplus.assess.utils.SignaturePostUtil;
 import com.jeeplus.assess.workContract.mapper.WorkContractInfoMapper;
@@ -27,7 +25,6 @@ import com.jeeplus.sys.feign.IWorkAttachmentApi;
 import com.jeeplus.sys.service.dto.UserDTO;
 import net.sf.json.JSONObject;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.annotations.Mapper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -59,8 +56,6 @@ public class AssessSignatureDailyOfficeWorkService {
     @Resource
     private IFlowableApi flowTaskService;
 
-    @Resource
-    private AssessSignatureDailyFileMapper signatureDailyFileMapper;
 
 
     /**
@@ -171,7 +166,7 @@ public class AssessSignatureDailyOfficeWorkService {
         if (ObjectUtil.isNotEmpty(dailyOfficeWorkDTO)){
             BeanUtils.copyProperties(dailyOfficeWorkDTO, dto);
             //查询附件信息
-            List<WorkAttachmentInfo> fileList = signatureDailyOfficeWorkMapper.findFiles(id);
+            List<WorkAttachmentInfo> fileList = signatureDailyOfficeWorkMapper.findFiles(id,"signatureDaily");
 
             if (CollectionUtils.isNotEmpty(fileList)) {
                 for (WorkAttachmentInfo i : fileList) {
@@ -180,38 +175,14 @@ public class AssessSignatureDailyOfficeWorkService {
             }
             dto.setFiles(fileList);
             //查询已签章附件
-            List<AssessSignatureDailyWorkAttachmentDTO> signatureList = new ArrayList<>();
-            if (null !=dailyOfficeWorkDTO){
-                List<AssessSignatureDailyWorkAttachmentDTO> dtos = signatureDailyFileMapper.selectByInfoId(dailyOfficeWorkDTO.getId());
-                if (null != dtos){
-
-                    Iterator<AssessSignatureDailyWorkAttachmentDTO> it = dtos.iterator();
-                    while(it.hasNext()){
-                        AssessSignatureDailyWorkAttachmentDTO d = it.next();
-                        //根据id查出cw_project_report_file文件表的其他信息
-                        //未签章附件
-                        SignatureDailyFile file = signatureDailyFileMapper.selectInfoByFileId(d.getId());
-                        if (null != file) {
-                            d.setFileType(file.getFileType());
-                            d.setSealType(file.getSealType());
-                            d.setSealedFile(file.getSealedFile());
-                            d.setSealUser(file.getSealUser());
-                            d.setSealDate(file.getSealDate());
-                            d.setRemarks(file.getRemarks());
-                            UserDTO userDTO = new UserDTO();
-                            //根据创建人id查出创建人名称
-                            UserDTO byId = SpringUtil.getBean(IUserApi.class).getById(file.getCreateById());
-                            userDTO.setId(file.getCreateById());
-                            userDTO.setName(byId.getName());
-                            d.setCreateBy(userDTO);
-                            d.setCreateTime(file.getCreateTime());
-                            signatureList.add(d);
-                            it.remove();
-                        }
-                    }
-                    dto.setSignatureFiles(signatureList);
+            List<WorkAttachmentInfo> fileList1 = signatureDailyOfficeWorkMapper.findFiles(id,"signatured_daily");
+
+            if (CollectionUtils.isNotEmpty(fileList1)) {
+                for (WorkAttachmentInfo i : fileList1) {
+                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
                 }
             }
+            dto.setSignatureFiles(fileList1);
         }
         return dto;
     }
@@ -237,16 +208,8 @@ public class AssessSignatureDailyOfficeWorkService {
         signatureDailyOfficeWork.setUpdateTime(new Date());
         signatureDailyOfficeWorkMapper.updateById(signatureDailyOfficeWork);
         // 修改附件信息列表
-        if ("5".equals(dto.getStatus())){
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles2(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
-
-            }
-        }else {
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
-
-            }
+        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
+            updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
         }
 
         //生成签章信息
@@ -348,8 +311,6 @@ public class AssessSignatureDailyOfficeWorkService {
                 }
             }
         }
-        signatureDailyFileMapper.deleteAttachement(id,"signatureDaily");
-
         //保存信息
         for (WorkAttachmentInfo dto : list) {
             //判断是否存在
@@ -386,75 +347,6 @@ public class AssessSignatureDailyOfficeWorkService {
         }
     }
 
-    /**
-     * 修改附件信息  对附件信息做持久化操作
-     * @param list 待修改的附件列表
-     * @param userDTO 当前登录用户
-     * @param id 关联id
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void updateFiles2(List<WorkAttachmentInfo> list, UserDTO userDTO, String id, String attachmentFlag) {
-        int j = 1;
-        String names = new String();
-        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
-        for (WorkAttachmentInfo dto : list) {
-            names = names + "," +dto.getUrl();
-        }
-        //查询保存的附件信息
-        List<WorkAttachmentInfo> infoList = mapper.findListByIdAndAttachmentFlag(id,attachmentFlag);
-        if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(infoList)) {
-            for (WorkAttachmentInfo i : infoList) {
-                if (!names.contains(i.getUrl())) {
-//                    ossServiceMapper.deleteById(i.getId());
-                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(i.getId());
-                }
-            }
-        }
-        signatureDailyFileMapper.deleteAttachement(id,"signatureDaily");
-
-        //保存信息
-        for (WorkAttachmentInfo dto : list) {
-            //判断是否存在
-            Integer isExit = mapper.findIsExit(id, dto.getName());
-            if (isExit == 0) {
-                WorkAttachmentInfo i = new WorkAttachmentInfo();
-                //包含了url、size、name
-                i.setId(UUID.randomUUID().toString().replace("-", ""));
-//                i.getCreateBy().setId(userDTO.getId());
-                i.setCreateTime(new Date());
-//                i.getUpdateBy().setId(userDTO.getId());
-                i.setUpdateTime(new Date());
-                i.setDelFlag(0);
-                i.setUrl(dto.getUrl());
-                //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
-                }
-                i.setAttachmentId(id);
-                i.setAttachmentName(dto.getName());
-                i.setAttachmentFlag(attachmentFlag);
-                i.setFileSize(dto.getSize());
-                i.setSort(j);
-                Map<String,String> map = new HashMap<>();
-                String workAttachment = JSON.toJSONString((i));
-                String userDTOInfo = JSON.toJSONString((userDTO));
-                map.put("workAttachment",workAttachment);
-                map.put("userDTO",userDTOInfo);
-                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
-//                ossServiceMapper.insertWorkAttachment(i, userDTO);
-                SignatureDailyFile cwSignatureDailyFile = new SignatureDailyFile();
-                BeanUtils.copyProperties(dto, cwSignatureDailyFile);
-                cwSignatureDailyFile.setReportFileId(i.getId());
-                cwSignatureDailyFile.setCreateById(userDTO.getId());
-                cwSignatureDailyFile.setCreateTime(new Date());
-                cwSignatureDailyFile.setUpdateById(userDTO.getId());
-                cwSignatureDailyFile.setUpdateTime(new Date());
-                signatureDailyFileMapper.insert(cwSignatureDailyFile);
-                j++;
-            }
-        }
-    }
 
     /*8
     删除

+ 8 - 113
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/AssessSignatureProjectReportService.java

@@ -10,10 +10,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.jeeplus.assess.assessSignatureDaily.domain.*;
-import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureDailyFileMapper;
 import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureProjectReportMapper;
 import com.jeeplus.assess.assessSignatureDaily.mapper.AssessSignatureProjectReportRelevanceNumberMapper;
-import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureDailyWorkAttachmentDTO;
 import com.jeeplus.assess.assessSignatureDaily.service.dto.AssessSignatureProjectReportRelationDTO;
 import com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListInfo;
 import com.jeeplus.assess.program.configuration.projectList.mapper.ProjectListMapper;
@@ -66,8 +64,6 @@ public class AssessSignatureProjectReportService {
     @Resource
     private IFlowableApi flowTaskService;
 
-    @Resource
-    private AssessSignatureDailyFileMapper signatureDailyFileMapper;
 
     /**
      * 列表查询
@@ -180,7 +176,7 @@ public class AssessSignatureProjectReportService {
                 dto.setProjectList(dtoList);
             }
             //查询附件信息
-            List<WorkAttachmentInfo> fileList = signatureProjectReportMapper.findFiles(id);
+            List<WorkAttachmentInfo> fileList = signatureProjectReportMapper.findFiles(id,"signatureReport");
             if (CollectionUtils.isNotEmpty(fileList)) {
                 for (WorkAttachmentInfo i : fileList) {
                     i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
@@ -188,38 +184,13 @@ public class AssessSignatureProjectReportService {
             }
             dto.setFiles(fileList);
             //查询已签章附件
-            List<AssessSignatureDailyWorkAttachmentDTO> signatureList = new ArrayList<>();
-            if (null !=reportRelationDTO){
-                List<AssessSignatureDailyWorkAttachmentDTO> dtos = signatureDailyFileMapper.selectByInfoId(reportRelationDTO.getId());
-                if (null != dtos){
-
-                    Iterator<AssessSignatureDailyWorkAttachmentDTO> it = dtos.iterator();
-                    while(it.hasNext()){
-                        AssessSignatureDailyWorkAttachmentDTO d = it.next();
-                        //根据id查出cw_project_report_file文件表的其他信息
-                        //未签章附件
-                        SignatureDailyFile file = signatureDailyFileMapper.selectInfoByFileId(d.getId());
-                        if (null != file) {
-                            d.setFileType(file.getFileType());
-                            d.setSealType(file.getSealType());
-                            d.setSealedFile(file.getSealedFile());
-                            d.setSealUser(file.getSealUser());
-                            d.setSealDate(file.getSealDate());
-                            d.setRemarks(file.getRemarks());
-                            UserDTO userDTO = new UserDTO();
-                            //根据创建人id查出创建人名称
-                            UserDTO byId = SpringUtil.getBean(IUserApi.class).getById(file.getCreateById());
-                            userDTO.setId(file.getCreateById());
-                            userDTO.setName(byId.getName());
-                            d.setCreateBy(userDTO);
-                            d.setCreateTime(file.getCreateTime());
-                            signatureList.add(d);
-                            it.remove();
-                        }
-                    }
-                    dto.setSignatureFiles(signatureList);
+            List<WorkAttachmentInfo> fileList1 = signatureProjectReportMapper.findFiles(id,"signatured_report");
+            if (CollectionUtils.isNotEmpty(fileList1)) {
+                for (WorkAttachmentInfo i : fileList1) {
+                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
                 }
             }
+            dto.setSignatureFiles(fileList1);
         }
         return dto;
     }
@@ -252,14 +223,8 @@ public class AssessSignatureProjectReportService {
             }
         }
         // 修改附件信息列表
-        if ("5".equals(dto.getStatus())){
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles2(dto.getFiles(), userDTO, dto.getId(),"signatureReport");
-            }
-        }else {
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureReport");
-            }
+        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
+            updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureReport");
         }
         //获取当前节点信息
         String currentTask = flowTaskService.getCurrentTaskName(dto.getProcInsId());
@@ -349,76 +314,6 @@ public class AssessSignatureProjectReportService {
     }
 
     /**
-     * 修改附件信息 对签章附件做持久化处理
-     * @param list 待修改的附件列表
-     * @param userDTO 当前登录用户
-     * @param id 关联id
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void updateFiles2(List<WorkAttachmentInfo> list, UserDTO userDTO, String id, String attachmentFlag) {
-        int j = 1;
-        String names = new String();
-        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
-        for (WorkAttachmentInfo dto : list) {
-            names = names + "," +dto.getUrl();
-        }
-        //查询保存的附件信息
-        List<WorkAttachmentInfo> infoList = mapper.findListByIdAndAttachmentFlag(id,attachmentFlag);
-        if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(infoList)) {
-            for (WorkAttachmentInfo i : infoList) {
-                if (!names.contains(i.getUrl())) {
-//                    ossServiceMapper.deleteById(i.getId());
-                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(i.getId());
-                }
-            }
-        }
-        signatureDailyFileMapper.deleteAttachement(id,"signatureReport");
-        //保存信息
-        for (WorkAttachmentInfo dto : list) {
-            //判断是否存在
-            Integer isExit = mapper.findIsExit(id, dto.getName());
-            if (isExit == 0) {
-                WorkAttachmentInfo i = new WorkAttachmentInfo();
-                //包含了url、size、name
-                i.setId(UUID.randomUUID().toString().replace("-", ""));
-//                i.getCreateBy().setId(userDTO.getId());
-                i.setCreateTime(new Date());
-//                i.getUpdateBy().setId(userDTO.getId());
-                i.setUpdateTime(new Date());
-                i.setDelFlag(0);
-                i.setUrl(dto.getUrl());
-                //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
-                }
-                i.setAttachmentId(id);
-                i.setAttachmentName(dto.getName());
-                i.setAttachmentFlag(attachmentFlag);
-                i.setFileSize(dto.getSize());
-                i.setSort(j);
-                Map<String,String> map = new HashMap<>();
-                String workAttachment = JSON.toJSONString((i));
-                String userDTOInfo = JSON.toJSONString((userDTO));
-                map.put("workAttachment",workAttachment);
-                map.put("userDTO",userDTOInfo);
-                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
-//                ossServiceMapper.insertWorkAttachment(i, userDTO);
-                SignatureDailyFile cwSignatureDailyFile = new SignatureDailyFile();
-                BeanUtils.copyProperties(dto, cwSignatureDailyFile);
-                cwSignatureDailyFile.setReportFileId(i.getId());
-                cwSignatureDailyFile.setCreateById(userDTO.getId());
-                cwSignatureDailyFile.setCreateTime(new Date());
-                cwSignatureDailyFile.setUpdateById(userDTO.getId());
-                cwSignatureDailyFile.setUpdateTime(new Date());
-                signatureDailyFileMapper.insert(cwSignatureDailyFile);
-                j++;
-            }
-        }
-    }
-
-
-    /**
      * 修改附件信息
      * @param list 待修改的附件列表
      * @param userDTO 当前登录用户

+ 1 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/dto/AssessSignatureDailyOfficeWorkDTO.java

@@ -77,7 +77,7 @@ public class AssessSignatureDailyOfficeWorkDTO extends BaseEntity {
         //未签章附件
         private List<WorkAttachmentInfo> files;
         //已签章附件
-        private List<AssessSignatureDailyWorkAttachmentDTO> signatureFiles;
+        private List<WorkAttachmentInfo> signatureFiles;
 
 
         /**

+ 0 - 70
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/dto/AssessSignatureDailyWorkAttachmentDTO.java

@@ -1,70 +0,0 @@
-package com.jeeplus.assess.assessSignatureDaily.service.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.jeeplus.core.service.dto.BaseDTO;
-import com.jeeplus.sys.service.dto.UserDTO;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 报告附件表
- * @author: 徐滕
- * @version: 2022-11-10 15:02
- */
-@Data
-public class AssessSignatureDailyWorkAttachmentDTO extends BaseDTO {
-
-    private String name;
-
-    private String size;
-
-    private String url;
-
-    private UserDTO createBy;
-//    @TableField(exist = false)
-//    private String createBy;
-
-    @TableField(exist = false)
-    private String by;
-
-    /**
-     * 文件类型
-     * 1:正文
-     * 2:封面
-     * 3:报表
-     * 4:附注
-     * 5:其他
-     */
-    private String fileType;
-
-    /**
-     * 盖章类型
-     * 1:电子章
-     * 2:不盖章
-     */
-    private String sealType;
-
-    /**
-     * 已盖章
-     */
-    private String sealedFile;
-
-    /**
-     * 盖章人
-     */
-    private UserDTO sealUser;
-
-    /**
-     * 盖章时间
-     */
-    private Date sealDate;
-
-    /**
-     * 备注信息
-     */
-    private String remarks;
-
-    @TableField(exist = false)
-    private String reportFileId;
-}

+ 1 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/assessSignatureDaily/service/dto/AssessSignatureProjectReportRelationDTO.java

@@ -76,7 +76,7 @@ public class AssessSignatureProjectReportRelationDTO extends BaseEntity {
     //未签章附件
     private List<WorkAttachmentInfo> files;
     //已签章附件
-    private List<AssessSignatureDailyWorkAttachmentDTO> signatureFiles;
+    private List<WorkAttachmentInfo> signatureFiles;
 
     private List<ProgramProjectListInfo> projectList;
     @Excel(name = "签章项目", width = 30, orderNum = "3")

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/mapper/xml/CwProjectRecordsMapper.xml

@@ -402,6 +402,7 @@
         left join cw_project_report pr on a.id =pr.project_id and pr.del_flag = '0'
         left join cw_project_report_new_line new_line on pr.id = new_line.report_id and new_line.del_flag = '0'
         ${ew.customSqlSegment}
+        and new_line.report_no is not null
         ORDER BY a.create_time DESC
     </select>
 

+ 187 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/controller/DailyOfficeWorkSignatureCallBackController.java

@@ -4,11 +4,15 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.finance.invoice.util.SignaturePostUtil;
 import com.jeeplus.finance.projectReport.domain.PresignCallBack;
 import com.jeeplus.finance.signatureDaily.mapper.SignatureDailyOfficeWorkMapper;
 import com.jeeplus.finance.signatureDaily.service.SignatureDaulyOfficeWorkService;
 import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyOfficeWorkDTO;
+import com.jeeplus.finance.utils.Global;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import org.slf4j.Logger;
@@ -16,15 +20,19 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -37,6 +45,8 @@ import java.util.concurrent.TimeUnit;
 public class DailyOfficeWorkSignatureCallBackController {
     private static Logger logger = LoggerFactory.getLogger(ResponseUtil.class);
 
+    private static final String DIRECTORY  = Global.getConfig("directory");
+
     @Autowired
     private SignatureDaulyOfficeWorkService dailyOfficeWorkService;
     @Autowired
@@ -92,7 +102,7 @@ public class DailyOfficeWorkSignatureCallBackController {
         String signatureUrl = null;
         if(StringUtils.isNotBlank(presignCallBack.getStoragePath())){
             signatureUrl = presignCallBack.getStoragePath().replace("oss:/","");
-
+            signatureUrl = signatureUrl.replace("/xg-qz","");
             dailyOfficeWork.setSignatureUrl(signatureUrl);
             dailyOfficeWork.setSignatureUrlFlag(1);
 
@@ -112,6 +122,154 @@ public class DailyOfficeWorkSignatureCallBackController {
         }
         //修改签章对应信息文件
         signatureDailyOfficeWorkMapper.updateSignatureInfo(dailyOfficeWork);
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getById (dailyOfficeWork.getCreateById());
+        //将文件下载并对原有文件地址进行替换
+        String deleteFile = null;
+        String unzipFileStr = null;
+        try{
+            String path = null;
+            if(System.getProperty("os.name").toLowerCase().contains("win")){
+                path = "D:/attachment-file/";
+            }else{
+                path = "/attachment-file/";
+            }
+            String aliyunUrl = "http://cdn.gangwaninfo.com";
+            String aliDownloadUrl = "http://oss.gangwaninfo.com";
+
+
+            String file = aliyunUrl + signatureUrl;
+            file = file.replace("amp;","");
+            String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
+            String cons = "";
+            if (file.contains(aliyunUrl)){
+                cons = aliyunUrl;
+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+            }else {
+                cons = aliDownloadUrl;
+            }
+            String ossKey = file.split(cons+"/")[1];
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+//            ossClientService.downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+            //将下载下来的文件转换为file文件
+            File srcFile = new File(path+fileName);
+            deleteFile = path+fileName;
+
+            //截取文件名称
+            String srcFileName = srcFile.getName().substring(0,srcFile.getName().lastIndexOf("."));
+
+            //解压后文件地址
+            unzipFileStr = path + srcFileName;
+
+            //将下载后的文件进行解压
+            SignaturePostUtil.unZipFile(srcFile,unzipFileStr);
+
+            //遍历解压后文件夹中的所有文件信息
+            File unZipFile = new File(unzipFileStr);
+
+            File[] unZipFileList = unZipFile.listFiles();
+
+            if(null != unZipFileList && unZipFileList.length>0){
+                for (File f : unZipFileList) {
+                    String filepath = "";
+                    //取得上传文件
+                    //将文件上传到oss云盘中
+                    MultipartFile cMultiFile = new MockMultipartFile("file", f.getName(), null, new FileInputStream(f));
+                    if (!cMultiFile.isEmpty()) {
+                        // 文件保存路径
+                        String realPath =DIRECTORY.replace("/","")+"/cw_signature_daily_file"+SpringUtil.getBean ( IWorkAttachmentApi.class ).datePath()+"/"+ System.currentTimeMillis();
+                        //文件原名称
+                        String newName = cMultiFile.getOriginalFilename();
+                        if(org.apache.commons.lang3.StringUtils.isNotBlank(newName)){
+                            newName = newName.substring(13, newName.length());
+                            //SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFile2OSS(cMultiFile.getInputStream(),realPath,newName);
+                            SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFileSignatureOSS(f.getPath(),realPath,newName);
+                            filepath = "/" + realPath + newName;
+                        }
+                    }
+
+                    System.out.println(f.getName());
+                    //截取文件后缀名
+                    String substring = f.getName().substring(f.getName().lastIndexOf(".")+1, f.getName().length());
+
+                    String newFileName = f.getName().substring(13, f.getName().length());
+
+                    //将签章完成的附件进行保存到附件表中
+                    WorkAttachmentInfo workattachment = new WorkAttachmentInfo();
+                    workattachment.setDelFlag(0);
+                    workattachment.setUrl(filepath);
+                    workattachment.setType(substring);
+                    workattachment.setAttachmentName(newFileName);
+                    workattachment.setAttachmentFlag("signatured_daily");
+                    workattachment.setFileSize(String.valueOf(f.length()));
+                    workattachment.setAttachmentId(dailyOfficeWork.getId());
+                    workattachment.setAttachmentType("");
+                    String id = UUID.randomUUID().toString().replace("-", "");
+                    workattachment.setId(id);
+                    workattachment.setCreateTime(new Date());
+                    workattachment.setUpdateTime(new Date());
+                    //先查询数据库中是否已经对数据进行保存
+                    //若未保存,则进行保存,否则直接跳过
+                    List<WorkAttachmentInfo> byAttachmentIdAndUrl = SpringUtil.getBean ( IWorkAttachmentApi.class ).getByAttachmentIdAndUrlAndAttachmentFlag(workattachment);
+                    if(byAttachmentIdAndUrl.size() == 0){
+                        Map<String,String> map = new HashMap<>();
+                        String workAttachment = JSON.toJSONString((workattachment));
+                        String userDTOInfo = JSON.toJSONString((userDTO));
+                        map.put("workAttachment",workAttachment);
+                        map.put("userDTO",userDTOInfo);
+                        SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+//                        ossServiceMapper.insert(workattachment);
+
+                        //将附件信息添加到签章附件信息表中
+//                        CwSignatureDailyFile cwSignatureDailyFile = new CwSignatureDailyFile();
+//                        cwSignatureDailyFile.setDelFlag(0);
+//                        cwSignatureDailyFile.setId(UUID.randomUUID().toString().replace("-", ""));
+//                        cwSignatureDailyFile.setCreateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setUpdateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setCreateTime(new Date());
+//                        cwSignatureDailyFile.setUpdateTime(new Date());
+//                        cwSignatureDailyFile.setReportFileId(id);
+//                        cwSignatureDailyFile.setFileAffiliation("1");
+//                        signatureDailyOfficeWorkMapper.insertFile(cwSignatureDailyFile);
+                    }
+
+                    //遍历该contractId对应的报告信息,将报告信息中的附件地址进行替换
+
+                    //查询报告文件信息(电子章)
+                    /*List<WorkAttachment> fileList = attachmentMapper.selectWorkAttachmentByReportId(projectReportData.getId());
+                    if(fileList.size()>0){
+                        for (WorkAttachment workattachment : fileList) {
+                            //根据url截取文件名成
+                            String workattachmentName = workattachment.getUrl().substring(workattachment.getUrl().lastIndexOf("/")+1, workattachment.getUrl().length());
+
+                            if(f.getName().contains(workattachmentName)){
+                                workattachment.setUrl(filepath);
+                                workattachment.setType(substring);
+                                workattachment.setAttachmentName(f.getName());
+                                attachmentMapper.updateByIdOnSignature(workattachment);
+                            }
+                        }
+                    }*/
+                }
+            }
+
+            //将报告数据中的盖章状态更改为已盖章
+            //cwProjectReportService.updateReportSealType(projectReportData);
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(deleteFile)){
+                //根据路径创建文件对象
+                File file = new File(deleteFile);
+                //路径是个文件且不为空时删除文件
+                if(file.isFile()&&file.exists()){
+                    file.delete();
+                }
+            }
+            File file = new File(unzipFileStr);
+            deleteFile(file);
+        }
 
         return null;
     }
@@ -144,4 +302,31 @@ public class DailyOfficeWorkSignatureCallBackController {
         }
         return null;
     }
+
+    public static Boolean deleteFile(File file) {
+        //判断文件不为null或文件目录存在
+        if (file == null || !file.exists()) {
+            System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确");
+            return false;
+        }
+        //获取目录下子文件
+        File[] files = file.listFiles();
+        //遍历该目录下的文件对象
+        for (File f : files) {
+            //判断子目录是否存在子目录,如果是文件则删除
+            if (f.isDirectory()) {
+                //递归删除目录下的文件
+                deleteFile(f);
+            } else {
+                //文件删除
+                f.delete();
+                //打印文件名
+                System.out.println("文件名:" + f.getName());
+            }
+        }
+        //文件夹删除
+        file.delete();
+        System.out.println("目录名:" + file.getName());
+        return true;
+    }
 }

+ 194 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/controller/DailyReportSignatureCallBackController.java

@@ -4,11 +4,16 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSON;
 import com.jeeplus.common.redis.RedisUtils;
 import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.finance.invoice.util.SignaturePostUtil;
 import com.jeeplus.finance.projectReport.domain.PresignCallBack;
+import com.jeeplus.finance.signatureDaily.mapper.SignatureDailyOfficeWorkMapper;
 import com.jeeplus.finance.signatureDaily.mapper.SignatureProjectReportMapper;
 import com.jeeplus.finance.signatureDaily.service.SignatureProjectReportService;
 import com.jeeplus.finance.signatureDaily.service.dto.SignatureProjectReportRelationDTO;
+import com.jeeplus.finance.utils.Global;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.utils.StringUtils;
 import org.slf4j.Logger;
@@ -16,15 +21,19 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -37,6 +46,9 @@ import java.util.concurrent.TimeUnit;
 public class DailyReportSignatureCallBackController {
     private static Logger logger = LoggerFactory.getLogger(ResponseUtil.class);
 
+    private static final String DIRECTORY  = Global.getConfig("directory");
+
+
     @Autowired
     private SignatureProjectReportService signatureProjectReportService;
     @Autowired
@@ -45,6 +57,9 @@ public class DailyReportSignatureCallBackController {
     private SignatureProjectReportMapper signatureProjectReportMapper;
 
     @Autowired
+    private SignatureDailyOfficeWorkMapper signatureDailyOfficeWorkMapper;
+
+    @Autowired
     private StringRedisTemplate stringRedisTemplate;
 
 //    private final DailyOfficeWorkDao dailyOfficeWorkDao = SpringContextHolder.getBean(DailyOfficeWorkDao.class);
@@ -92,7 +107,8 @@ public class DailyReportSignatureCallBackController {
         String signatureUrl = null;
         if(StringUtils.isNotBlank(presignCallBack.getStoragePath())){
             signatureUrl = presignCallBack.getStoragePath().replace("oss:/","");
-
+            //必须得再进行一次替换,否则无法下载到本地
+            signatureUrl = signatureUrl.replace("/xg-qz","");
             dailyOfficeWork.setSignatureUrl(signatureUrl);
             dailyOfficeWork.setSignatureUrlFlag(1);
 
@@ -113,6 +129,155 @@ public class DailyReportSignatureCallBackController {
         //修改签章对应信息文件
         signatureProjectReportMapper.updateSignatureInfo(dailyOfficeWork);
 
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getById (dailyOfficeWork.getCreateById());
+        //将文件下载并对原有文件地址进行替换
+        String deleteFile = null;
+        String unzipFileStr = null;
+        try{
+            String path = null;
+            if(System.getProperty("os.name").toLowerCase().contains("win")){
+                path = "D:/attachment-file/";
+            }else{
+                path = "/attachment-file/";
+            }
+            String aliyunUrl = "http://cdn.gangwaninfo.com";
+            String aliDownloadUrl = "http://oss.gangwaninfo.com";
+
+
+            String file = aliyunUrl + signatureUrl;
+            file = file.replace("amp;","");
+            String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
+            String cons = "";
+            if (file.contains(aliyunUrl)){
+                cons = aliyunUrl;
+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+            }else {
+                cons = aliDownloadUrl;
+            }
+            String ossKey = file.split(cons+"/")[1];
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+//            ossClientService.downQzByStreamSaveLocal(ossKey,fileName,path+fileName);
+            //将下载下来的文件转换为file文件
+            File srcFile = new File(path+fileName);
+            deleteFile = path+fileName;
+
+            //截取文件名称
+            String srcFileName = srcFile.getName().substring(0,srcFile.getName().lastIndexOf("."));
+
+            //解压后文件地址
+            unzipFileStr = path + srcFileName;
+
+            //将下载后的文件进行解压
+            SignaturePostUtil.unZipFile(srcFile,unzipFileStr);
+
+            //遍历解压后文件夹中的所有文件信息
+            File unZipFile = new File(unzipFileStr);
+
+            File[] unZipFileList = unZipFile.listFiles();
+
+            if(null != unZipFileList && unZipFileList.length>0){
+                for (File f : unZipFileList) {
+                    String filepath = "";
+                    //取得上传文件
+                    //将文件上传到oss云盘中
+                    MultipartFile cMultiFile = new MockMultipartFile("file", f.getName(), null, new FileInputStream(f));
+                    if (!cMultiFile.isEmpty()) {
+                        // 文件保存路径
+                        String realPath =DIRECTORY.replace("/","")+"/cw_signature_report_file"+SpringUtil.getBean ( IWorkAttachmentApi.class ).datePath()+"/"+ System.currentTimeMillis();
+                        //文件原名称
+                        String newName = cMultiFile.getOriginalFilename();
+                        if(org.apache.commons.lang3.StringUtils.isNotBlank(newName)){
+                            newName = newName.substring(13, newName.length());
+                            //SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFile2OSS(cMultiFile.getInputStream(),realPath,newName);
+                            SpringUtil.getBean ( IWorkAttachmentApi.class ).uploadFileSignatureOSS(f.getPath(),realPath,newName);
+                            filepath = "/" + realPath + newName;
+                        }
+                    }
+
+                    System.out.println(f.getName());
+                    //截取文件后缀名
+                    String substring = f.getName().substring(f.getName().lastIndexOf(".")+1, f.getName().length());
+
+                    String newFileName = f.getName().substring(13, f.getName().length());
+
+                    //将签章完成的附件进行保存到附件表中
+                    WorkAttachmentInfo workattachment = new WorkAttachmentInfo();
+                    workattachment.setDelFlag(0);
+                    workattachment.setUrl(filepath);
+                    workattachment.setType(substring);
+                    workattachment.setAttachmentName(newFileName);
+                    workattachment.setAttachmentFlag("signatured_report");
+                    workattachment.setFileSize(String.valueOf(f.length()));
+                    workattachment.setAttachmentId(dailyOfficeWork.getId());
+                    workattachment.setAttachmentType("");
+                    String id = UUID.randomUUID().toString().replace("-", "");
+                    workattachment.setId(id);
+                    workattachment.setCreateTime(new Date());
+                    workattachment.setUpdateTime(new Date());
+                    //先查询数据库中是否已经对数据进行保存
+                    //若未保存,则进行保存,否则直接跳过
+                    List<WorkAttachmentInfo> byAttachmentIdAndUrl = SpringUtil.getBean ( IWorkAttachmentApi.class ).getByAttachmentIdAndUrlAndAttachmentFlag(workattachment);
+                    if(byAttachmentIdAndUrl.size() == 0){
+                        Map<String,String> map = new HashMap<>();
+                        String workAttachment = JSON.toJSONString((workattachment));
+                        String userDTOInfo = JSON.toJSONString((userDTO));
+                        map.put("workAttachment",workAttachment);
+                        map.put("userDTO",userDTOInfo);
+                        SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+//                        ossServiceMapper.insert(workattachment);
+
+                        //将附件信息添加到签章附件信息表中
+//                        CwSignatureDailyFile cwSignatureDailyFile = new CwSignatureDailyFile();
+//                        cwSignatureDailyFile.setDelFlag(0);
+//                        cwSignatureDailyFile.setId(UUID.randomUUID().toString().replace("-", ""));
+//                        cwSignatureDailyFile.setCreateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setUpdateById(dailyOfficeWork.getCreateById());
+//                        cwSignatureDailyFile.setCreateTime(new Date());
+//                        cwSignatureDailyFile.setUpdateTime(new Date());
+//                        cwSignatureDailyFile.setReportFileId(id);
+//                        cwSignatureDailyFile.setFileAffiliation("1");
+//                        signatureDailyOfficeWorkMapper.insertFile(cwSignatureDailyFile);
+                    }
+
+                    //遍历该contractId对应的报告信息,将报告信息中的附件地址进行替换
+
+                    //查询报告文件信息(电子章)
+                    /*List<WorkAttachment> fileList = attachmentMapper.selectWorkAttachmentByReportId(projectReportData.getId());
+                    if(fileList.size()>0){
+                        for (WorkAttachment workattachment : fileList) {
+                            //根据url截取文件名成
+                            String workattachmentName = workattachment.getUrl().substring(workattachment.getUrl().lastIndexOf("/")+1, workattachment.getUrl().length());
+
+                            if(f.getName().contains(workattachmentName)){
+                                workattachment.setUrl(filepath);
+                                workattachment.setType(substring);
+                                workattachment.setAttachmentName(f.getName());
+                                attachmentMapper.updateByIdOnSignature(workattachment);
+                            }
+                        }
+                    }*/
+                }
+            }
+
+            //将报告数据中的盖章状态更改为已盖章
+            //cwProjectReportService.updateReportSealType(projectReportData);
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(deleteFile)){
+                //根据路径创建文件对象
+                File file = new File(deleteFile);
+                //路径是个文件且不为空时删除文件
+                if(file.isFile()&&file.exists()){
+                    file.delete();
+                }
+            }
+            File file = new File(unzipFileStr);
+            deleteFile(file);
+        }
+
         return null;
     }
 
@@ -144,4 +309,31 @@ public class DailyReportSignatureCallBackController {
         }
         return null;
     }
+
+    public static Boolean deleteFile(File file) {
+        //判断文件不为null或文件目录存在
+        if (file == null || !file.exists()) {
+            System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确");
+            return false;
+        }
+        //获取目录下子文件
+        File[] files = file.listFiles();
+        //遍历该目录下的文件对象
+        for (File f : files) {
+            //判断子目录是否存在子目录,如果是文件则删除
+            if (f.isDirectory()) {
+                //递归删除目录下的文件
+                deleteFile(f);
+            } else {
+                //文件删除
+                f.delete();
+                //打印文件名
+                System.out.println("文件名:" + f.getName());
+            }
+        }
+        //文件夹删除
+        file.delete();
+        System.out.println("目录名:" + file.getName());
+        return true;
+    }
 }

+ 0 - 64
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/domain/CwSignatureDailyFile.java

@@ -1,64 +0,0 @@
-package com.jeeplus.finance.signatureDaily.domain;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.jeeplus.core.domain.BaseEntity;
-import com.jeeplus.sys.service.dto.UserDTO;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 签章附件表
- * @author: 徐滕
- * @version: 2022-11-10 15:02
- */
-@Data
-@TableName("cw_signature_daily_file")
-public class CwSignatureDailyFile extends BaseEntity {
-
-    /**
-     * work_attachment_id
-     */
-    private String reportFileId;
-    /**
-     * 文件类型
-     * 1:正文
-     * 2:封面
-     * 3:报表
-     * 4:附注
-     * 5:其他
-     */
-    private String fileType;
-
-    /**
-     * 盖章类型
-     * 1:电子章
-     * 2:不盖章
-     */
-    private String sealType;
-
-    /**
-     * 已盖章
-     */
-    private String sealedFile;
-
-    /**
-     * 盖章人
-     */
-    private UserDTO sealUser;
-
-    /**
-     * 盖章时间
-     */
-    private Date sealDate;
-
-    /**
-     * 备注信息
-     */
-    private String remarks;
-
-    /**
-     * 附件归属(0:未盖章签章文件;1:已盖章签章文件)
-     */
-    private String fileAffiliation;
-}

+ 0 - 16
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/SignatureDailyFileMapper.java

@@ -1,16 +0,0 @@
-package com.jeeplus.finance.signatureDaily.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.jeeplus.finance.signatureDaily.domain.CwSignatureDailyFile;
-import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyWorkAttachmentDTO;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface SignatureDailyFileMapper extends BaseMapper<CwSignatureDailyFile> {
-    List<SignatureDailyWorkAttachmentDTO> selectByInfoId(String id);
-
-    CwSignatureDailyFile selectInfoByFileId(@Param("id") String id);
-}

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/SignatureDailyOfficeWorkMapper.java

@@ -21,7 +21,7 @@ public interface SignatureDailyOfficeWorkMapper extends BaseMapper<SignatureDail
 
     SignatureDailyOfficeWorkDTO findById(@Param("id") String id);
 
-    List<WorkAttachmentInfo> findFiles(@Param("id") String id);
+    List<WorkAttachmentInfo> findFiles(@Param("id") String id,@Param("flag") String flag);
 
     void updateStatusById(@Param("status") String status,@Param("id") String id);
 

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/SignatureProjectReportMapper.java

@@ -23,7 +23,7 @@ public interface SignatureProjectReportMapper extends BaseMapper<SignatureProjec
 
     SignatureProjectReportRelationDTO findById(@Param("id") String id);
 
-    List<WorkAttachmentInfo> findFiles(@Param("id") String id);
+    List<WorkAttachmentInfo> findFiles(@Param("id") String id,@Param("flag") String flag);
 
     void updateStatusById(@Param("status") String status, @Param("id") String id);
 

+ 0 - 12
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/xml/SignatureDailyFileMapper.xml

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jeeplus.finance.signatureDaily.mapper.SignatureDailyFileMapper">
-    <select id="selectByInfoId"
-            resultType="com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyWorkAttachmentDTO">
-        select id,url,file_size as size,attachment_name as name from work_attachment where del_flag = 0 and attachment_id = #{id}
-    </select>
-
-    <select id="selectInfoByFileId" resultType="com.jeeplus.finance.signatureDaily.domain.CwSignatureDailyFile">
-        select * from cw_signature_daily_file where report_file_id = #{id} and del_flag = '0'
-    </select>
-</mapper>

+ 31 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/xml/SignatureDailyOfficeWorkMapper.xml

@@ -94,6 +94,7 @@
 		WHERE
 			del_flag = 0
 			AND attachment_id = #{id}
+			and attachment_flag = #{flag}
 	</select>
 
     <update id="updateStatusById">
@@ -191,4 +192,34 @@
         where a.signature_contract_id = #{contractId} and a.del_flag = 0
     </select>
 
+    <insert id="insertProjectReportFile">
+        insert into cw_signature_daily_file (
+        id,
+        create_by_id,
+        create_time,
+        update_by_id,
+        update_time,
+        del_flag,
+        report_file_id,
+        file_type,
+        seal_type,
+        remarks,
+        file_affiliation
+        )
+        values
+        (
+        #{id},
+       #{createById},
+       #{createTime},
+       #{updateById},
+       #{updateTime},
+       #{delFlag},
+       #{reportFileId},
+       #{fileType},
+       #{sealType},
+       #{remarks},
+       #{fileAffiliation}
+        )
+    </insert>
+
 </mapper>

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/mapper/xml/SignatureProjectReportMapper.xml

@@ -101,6 +101,7 @@
 		WHERE
 			del_flag = 0
 			AND attachment_id = #{id}
+			and attachment_flag = #{flag}
 	</select>
 
     <update id="updateStatusById">

+ 16 - 123
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureDaulyOfficeWorkService.java

@@ -15,16 +15,9 @@ import com.jeeplus.finance.contractRegistration.mapper.ContractInfoMapper;
 import com.jeeplus.finance.invoice.util.SignaturePostUtil;
 import com.jeeplus.finance.projectReport.domain.*;
 import com.jeeplus.finance.projectReport.mapper.CwProjectReportMapper;
-import com.jeeplus.finance.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
-import com.jeeplus.finance.reimbursementApproval.approvalInfo.domain.CwReimbursementInfo;
-import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.QueryListDto;
-import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.RetureListDto;
-import com.jeeplus.finance.signatureDaily.domain.CwSignatureDailyFile;
 import com.jeeplus.finance.signatureDaily.domain.SignatureDailyOfficeWork;
-import com.jeeplus.finance.signatureDaily.mapper.SignatureDailyFileMapper;
 import com.jeeplus.finance.signatureDaily.mapper.SignatureDailyOfficeWorkMapper;
 import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyOfficeWorkDTO;
-import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyWorkAttachmentDTO;
 import com.jeeplus.finance.utils.Global;
 import com.jeeplus.flowable.feign.IFlowableApi;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
@@ -33,7 +26,6 @@ import com.jeeplus.sys.feign.IWorkAttachmentApi;
 import com.jeeplus.sys.service.dto.UserDTO;
 import net.sf.json.JSONObject;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.annotations.Mapper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -64,8 +56,7 @@ public class SignatureDaulyOfficeWorkService {
     @Resource
     private IFlowableApi flowTaskService;
 
-    @Resource
-    private SignatureDailyFileMapper signatureDailyFileMapper;
+
 
     @Resource
     private CwProjectReportMapper reportMapper;
@@ -179,7 +170,7 @@ public class SignatureDaulyOfficeWorkService {
         if (ObjectUtil.isNotEmpty(dailyOfficeWorkDTO)){
             BeanUtils.copyProperties(dailyOfficeWorkDTO, dto);
             //查询附件信息
-            List<WorkAttachmentInfo> fileList = signatureDailyOfficeWorkMapper.findFiles(id);
+            List<WorkAttachmentInfo> fileList = signatureDailyOfficeWorkMapper.findFiles(id,"signatureDaily");
 
             if (CollectionUtils.isNotEmpty(fileList)) {
                 for (WorkAttachmentInfo i : fileList) {
@@ -187,39 +178,15 @@ public class SignatureDaulyOfficeWorkService {
                 }
             }
             //查询已签章附件
-            List<SignatureDailyWorkAttachmentDTO> signatureList = new ArrayList<>();
-            if (null !=dailyOfficeWorkDTO){
-                List<SignatureDailyWorkAttachmentDTO> dtos = signatureDailyFileMapper.selectByInfoId(dailyOfficeWorkDTO.getId());
-                if (null != dtos){
-
-                    Iterator<SignatureDailyWorkAttachmentDTO> it = dtos.iterator();
-                    while(it.hasNext()){
-                        SignatureDailyWorkAttachmentDTO d = it.next();
-                        //根据id查出cw_project_report_file文件表的其他信息
-                        //未签章附件
-                        CwSignatureDailyFile file = signatureDailyFileMapper.selectInfoByFileId(d.getId());
-                        if (null != file) {
-                            d.setFileType(file.getFileType());
-                            d.setSealType(file.getSealType());
-                            d.setSealedFile(file.getSealedFile());
-                            d.setSealUser(file.getSealUser());
-                            d.setSealDate(file.getSealDate());
-                            d.setRemarks(file.getRemarks());
-                            UserDTO userDTO = new UserDTO();
-                            //根据创建人id查出创建人名称
-                            UserDTO byId = SpringUtil.getBean(IUserApi.class).getById(file.getCreateById());
-                            userDTO.setId(file.getCreateById());
-                            userDTO.setName(byId.getName());
-                            d.setCreateBy(userDTO);
-                            d.setCreateTime(file.getCreateTime());
-                            signatureList.add(d);
-                            it.remove();
-                        }
-                    }
-                    dto.setSignatureFiles(signatureList);
+            List<WorkAttachmentInfo> fileList1 = signatureDailyOfficeWorkMapper.findFiles(id,"signatured_daily");
+            if (CollectionUtils.isNotEmpty(fileList1)) {
+                for (WorkAttachmentInfo i : fileList1) {
+                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
                 }
             }
+
             dto.setFiles(fileList);
+            dto.setSignatureFiles(fileList1);
         }
         return dto;
     }
@@ -245,14 +212,8 @@ public class SignatureDaulyOfficeWorkService {
         signatureDailyOfficeWork.setUpdateTime(new Date());
         signatureDailyOfficeWorkMapper.updateById(signatureDailyOfficeWork);
         // 修改附件信息列表
-        if ("5".equals(dto.getStatus())){
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles2(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
-            }
-        }else {
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
-            }
+        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
+            updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
         }
 
         //生成签章信息
@@ -477,11 +438,12 @@ public class SignatureDaulyOfficeWorkService {
         signatureContract.setSend(true);
         signatureContract.setSignatories(signatories);
         signatureContract.setSn("");
-        if(null != dailyOfficeWork && StringUtils.isNotBlank(dailyOfficeWork.getNumber())){
-            signatureContract.setSubject(dailyOfficeWork.getNumber() + "。" + dailyOfficeWork.getSignatureName());//添加项目名称
-        }else if(null != dailyOfficeWork && StringUtils.isNotBlank(dailyOfficeWork.getSignatureName())){
-            signatureContract.setSubject(dailyOfficeWork.getSignatureName());//添加项目名称
-        }
+        signatureContract.setSubject(dailyOfficeWork.getSignatureName());//添加项目名称
+//        if(null != dailyOfficeWork && StringUtils.isNotBlank(dailyOfficeWork.getNumber())){
+//            signatureContract.setSubject(dailyOfficeWork.getNumber() + "。" + dailyOfficeWork.getSignatureName());//添加项目名称
+//        }else if(null != dailyOfficeWork && StringUtils.isNotBlank(dailyOfficeWork.getSignatureName())){
+//
+//        }
         JSONObject json = JSONObject.fromObject(signatureContract);
         String contractIdMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/createbycategory", json.toString());
         hashMap = JSON.parseObject(contractIdMapStr, HashMap.class);
@@ -582,7 +544,6 @@ public class SignatureDaulyOfficeWorkService {
                 }
             }
         }
-        reportMapper.deleteAttachement(id,"signatureDaily");
         //保存信息
         for (WorkAttachmentInfo dto : list) {
             //判断是否存在
@@ -619,74 +580,6 @@ public class SignatureDaulyOfficeWorkService {
         }
     }
 
-    /**
-     * 修改附件信息
-     * @param list 待修改的附件列表
-     * @param userDTO 当前登录用户
-     * @param id 关联id
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void updateFiles2(List<WorkAttachmentInfo> list, UserDTO userDTO, String id, String attachmentFlag) {
-        int j = 1;
-        String names = new String();
-        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
-        for (WorkAttachmentInfo dto : list) {
-            names = names + "," +dto.getUrl();
-        }
-        //查询保存的附件信息
-        List<WorkAttachmentInfo> infoList = mapper.findListByIdAndAttachmentFlag(id,attachmentFlag);
-        if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(infoList)) {
-            for (WorkAttachmentInfo i : infoList) {
-                if (!names.contains(i.getUrl())) {
-//                    ossServiceMapper.deleteById(i.getId());
-                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(i.getId());
-                }
-            }
-        }
-        reportMapper.deleteAttachement(id,"signatureDaily");
-        //保存信息
-        for (WorkAttachmentInfo dto : list) {
-            //判断是否存在
-            Integer isExit = mapper.findIsExit(id, dto.getName());
-            if (isExit == 0) {
-                WorkAttachmentInfo i = new WorkAttachmentInfo();
-                //包含了url、size、name
-                i.setId(UUID.randomUUID().toString().replace("-", ""));
-//                i.getCreateBy().setId(userDTO.getId());
-                i.setCreateTime(new Date());
-//                i.getUpdateBy().setId(userDTO.getId());
-                i.setUpdateTime(new Date());
-                i.setDelFlag(0);
-                i.setUrl(dto.getUrl());
-                //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
-                }
-                i.setAttachmentId(id);
-                i.setAttachmentName(dto.getName());
-                i.setAttachmentFlag(attachmentFlag);
-                i.setFileSize(dto.getSize());
-                i.setSort(j);
-                Map<String,String> map = new HashMap<>();
-                String workAttachment = JSON.toJSONString((i));
-                String userDTOInfo = JSON.toJSONString((userDTO));
-                map.put("workAttachment",workAttachment);
-                map.put("userDTO",userDTOInfo);
-                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
-//                ossServiceMapper.insertWorkAttachment(i, userDTO);
-                CwSignatureDailyFile cwSignatureDailyFile = new CwSignatureDailyFile();
-                BeanUtils.copyProperties(dto, cwSignatureDailyFile);
-                cwSignatureDailyFile.setReportFileId(i.getId());
-                cwSignatureDailyFile.setCreateById(userDTO.getId());
-                cwSignatureDailyFile.setCreateTime(new Date());
-                cwSignatureDailyFile.setUpdateById(userDTO.getId());
-                cwSignatureDailyFile.setUpdateTime(new Date());
-                signatureDailyFileMapper.insert(cwSignatureDailyFile);
-                j++;
-            }
-        }
-    }
 
     /*8
     删除

+ 9 - 114
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/SignatureProjectReportService.java

@@ -20,15 +20,10 @@ import com.jeeplus.finance.projectReport.domain.Location;
 import com.jeeplus.finance.projectReport.domain.SignatorieInfo;
 import com.jeeplus.finance.projectReport.domain.SignatureContract;
 import com.jeeplus.finance.projectReport.mapper.CwProjectReportMapper;
-import com.jeeplus.finance.signatureDaily.domain.CwSignatureDailyFile;
-import com.jeeplus.finance.signatureDaily.domain.SignatureDailyOfficeWork;
 import com.jeeplus.finance.signatureDaily.domain.SignatureProjectReportRelation;
 import com.jeeplus.finance.signatureDaily.domain.SignatureProjectReportRelevanceNumber;
-import com.jeeplus.finance.signatureDaily.mapper.SignatureDailyFileMapper;
 import com.jeeplus.finance.signatureDaily.mapper.SignatureProjectReportMapper;
 import com.jeeplus.finance.signatureDaily.mapper.SignatureProjectReportRelevanceNumberMapper;
-import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyOfficeWorkDTO;
-import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyWorkAttachmentDTO;
 import com.jeeplus.finance.signatureDaily.service.dto.SignatureProjectReportRelationDTO;
 import com.jeeplus.finance.utils.Global;
 import com.jeeplus.flowable.feign.IFlowableApi;
@@ -75,8 +70,6 @@ public class SignatureProjectReportService {
     @Resource
     private IFlowableApi flowTaskService;
 
-    @Resource
-    private SignatureDailyFileMapper signatureDailyFileMapper;
 
     @Resource
     private CwProjectReportMapper reportMapper;
@@ -192,7 +185,7 @@ public class SignatureProjectReportService {
                 dto.setProjectList(dtoList);
             }
             //查询附件信息
-            List<WorkAttachmentInfo> fileList = signatureProjectReportMapper.findFiles(id);
+            List<WorkAttachmentInfo> fileList = signatureProjectReportMapper.findFiles(id,"signatureReport");
             if (CollectionUtils.isNotEmpty(fileList)) {
                 for (WorkAttachmentInfo i : fileList) {
                     i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
@@ -200,38 +193,14 @@ public class SignatureProjectReportService {
             }
             dto.setFiles(fileList);
             //查询已签章附件
-            List<SignatureDailyWorkAttachmentDTO> signatureList = new ArrayList<>();
-            if (null !=reportRelationDTO){
-                List<SignatureDailyWorkAttachmentDTO> dtos = signatureDailyFileMapper.selectByInfoId(reportRelationDTO.getId());
-                if (null != dtos){
-
-                    Iterator<SignatureDailyWorkAttachmentDTO> it = dtos.iterator();
-                    while(it.hasNext()){
-                        SignatureDailyWorkAttachmentDTO d = it.next();
-                        //根据id查出cw_project_report_file文件表的其他信息
-                        //未签章附件
-                        CwSignatureDailyFile file = signatureDailyFileMapper.selectInfoByFileId(d.getId());
-                        if (null != file) {
-                            d.setFileType(file.getFileType());
-                            d.setSealType(file.getSealType());
-                            d.setSealedFile(file.getSealedFile());
-                            d.setSealUser(file.getSealUser());
-                            d.setSealDate(file.getSealDate());
-                            d.setRemarks(file.getRemarks());
-                            UserDTO userDTO = new UserDTO();
-                            //根据创建人id查出创建人名称
-                            UserDTO byId = SpringUtil.getBean(IUserApi.class).getById(file.getCreateById());
-                            userDTO.setId(file.getCreateById());
-                            userDTO.setName(byId.getName());
-                            d.setCreateBy(userDTO);
-                            d.setCreateTime(file.getCreateTime());
-                            signatureList.add(d);
-                            it.remove();
-                        }
-                    }
-                    dto.setSignatureFiles(signatureList);
+            List<WorkAttachmentInfo> fileList1 = signatureProjectReportMapper.findFiles(id,"signatured_report");
+            if (CollectionUtils.isNotEmpty(fileList1)) {
+                for (WorkAttachmentInfo i : fileList1) {
+                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
                 }
             }
+            dto.setSignatureFiles(fileList1);
+
         }
         return dto;
     }
@@ -264,14 +233,8 @@ public class SignatureProjectReportService {
             }
         }
         // 修改附件信息列表
-        if ("5".equals(dto.getStatus())){
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles2(dto.getFiles(), userDTO, dto.getId(),"signatureReport");
-            }
-        }else {
-            if (CollectionUtils.isNotEmpty(dto.getFiles())) {
-                updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureReport");
-            }
+        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
+            updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureReport");
         }
         //获取当前节点信息
         String currentTask = flowTaskService.getCurrentTaskName(dto.getProcInsId());
@@ -421,74 +384,6 @@ public class SignatureProjectReportService {
         }
     }
 
-    /**
-     * 修改附件信息 对签章附件做持久化处理
-     * @param list 待修改的附件列表
-     * @param userDTO 当前登录用户
-     * @param id 关联id
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public void updateFiles2(List<WorkAttachmentInfo> list, UserDTO userDTO, String id, String attachmentFlag) {
-        int j = 1;
-        String names = new String();
-        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
-        for (WorkAttachmentInfo dto : list) {
-            names = names + "," +dto.getUrl();
-        }
-        //查询保存的附件信息
-        List<WorkAttachmentInfo> infoList = mapper.findListByIdAndAttachmentFlag(id,attachmentFlag);
-        if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(infoList)) {
-            for (WorkAttachmentInfo i : infoList) {
-                if (!names.contains(i.getUrl())) {
-//                    ossServiceMapper.deleteById(i.getId());
-                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(i.getId());
-                }
-            }
-        }
-        reportMapper.deleteAttachement(id,"signatureReport");
-        //保存信息
-        for (WorkAttachmentInfo dto : list) {
-            //判断是否存在
-            Integer isExit = mapper.findIsExit(id, dto.getName());
-            if (isExit == 0) {
-                WorkAttachmentInfo i = new WorkAttachmentInfo();
-                //包含了url、size、name
-                i.setId(UUID.randomUUID().toString().replace("-", ""));
-//                i.getCreateBy().setId(userDTO.getId());
-                i.setCreateTime(new Date());
-//                i.getUpdateBy().setId(userDTO.getId());
-                i.setUpdateTime(new Date());
-                i.setDelFlag(0);
-                i.setUrl(dto.getUrl());
-                //文件类型处理
-                List<String> strings = Arrays.asList(dto.getName().split("\\."));
-                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
-                    i.setType(strings.get(1));
-                }
-                i.setAttachmentId(id);
-                i.setAttachmentName(dto.getName());
-                i.setAttachmentFlag(attachmentFlag);
-                i.setFileSize(dto.getSize());
-                i.setSort(j);
-                Map<String,String> map = new HashMap<>();
-                String workAttachment = JSON.toJSONString((i));
-                String userDTOInfo = JSON.toJSONString((userDTO));
-                map.put("workAttachment",workAttachment);
-                map.put("userDTO",userDTOInfo);
-                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
-//                ossServiceMapper.insertWorkAttachment(i, userDTO);
-                CwSignatureDailyFile cwSignatureDailyFile = new CwSignatureDailyFile();
-                BeanUtils.copyProperties(dto, cwSignatureDailyFile);
-                cwSignatureDailyFile.setReportFileId(i.getId());
-                cwSignatureDailyFile.setCreateById(userDTO.getId());
-                cwSignatureDailyFile.setCreateTime(new Date());
-                cwSignatureDailyFile.setUpdateById(userDTO.getId());
-                cwSignatureDailyFile.setUpdateTime(new Date());
-                signatureDailyFileMapper.insert(cwSignatureDailyFile);
-                j++;
-            }
-        }
-    }
 
 
     public String remove(String id) {

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/dto/SignatureDailyOfficeWorkDTO.java

@@ -78,7 +78,7 @@ public class SignatureDailyOfficeWorkDTO extends BaseEntity {
         //未签章附件
         private List<WorkAttachmentInfo> files;
         //已签章附件
-        private List<SignatureDailyWorkAttachmentDTO> signatureFiles;
+        private List<WorkAttachmentInfo> signatureFiles;
 
         /**
          * 签章contractId

+ 0 - 71
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/dto/SignatureDailyWorkAttachmentDTO.java

@@ -1,71 +0,0 @@
-package com.jeeplus.finance.signatureDaily.service.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.jeeplus.core.service.dto.BaseDTO;
-import com.jeeplus.sys.service.dto.UserDTO;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 报告附件表
- * @author: 徐滕
- * @version: 2022-11-10 15:02
- */
-@Data
-public class SignatureDailyWorkAttachmentDTO extends BaseDTO {
-
-    private String name;
-
-    private String size;
-
-    private String url;
-
-    private UserDTO createBy;
-//    @TableField(exist = false)
-//    private String createBy;
-
-    @TableField(exist = false)
-    private String by;
-
-    /**
-     * 文件类型
-     * 1:正文
-     * 2:封面
-     * 3:报表
-     * 4:附注
-     * 5:其他
-     */
-    private String fileType;
-
-    /**
-     * 盖章类型
-     * 1:电子章
-     * 2:不盖章
-     */
-    private String sealType;
-
-    /**
-     * 已盖章
-     */
-    private String sealedFile;
-
-    /**
-     * 盖章人
-     */
-    private UserDTO sealUser;
-
-    /**
-     * 盖章时间
-     */
-    private Date sealDate;
-
-    /**
-     * 备注信息
-     */
-    private String remarks;
-
-    @TableField(exist = false)
-    private String reportFileId;
-}

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/signatureDaily/service/dto/SignatureProjectReportRelationDTO.java

@@ -113,6 +113,6 @@ public class SignatureProjectReportRelationDTO extends BaseEntity {
      */
     private Integer signatureFlag;
     //已签章附件信息
-    private List<SignatureDailyWorkAttachmentDTO> signatureFiles;
+    private List<WorkAttachmentInfo> signatureFiles;
 
 }