Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

“zhifk” 2 vuotta sitten
vanhempi
commit
e1f7afabf2
20 muutettua tiedostoa jossa 351 lisäystä ja 33 poistoa
  1. 3 1
      blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchiveExaminingSocketVo.java
  2. 7 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java
  3. 14 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO3.java
  4. 7 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveExaminingReportController.java
  5. 55 1
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java
  6. 11 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java
  7. 69 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml
  8. 2 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchiveExaminingReportService.java
  9. 6 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java
  10. 49 19
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveExaminingReportImpl.java
  11. 43 9
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java
  12. 3 3
      blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java
  13. 15 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java
  14. 2 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.java
  15. 7 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  16. 16 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java
  17. 5 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java
  18. 13 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml
  19. 5 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java
  20. 19 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

+ 3 - 1
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchiveExaminingSocketVo.java

@@ -14,12 +14,14 @@ import java.util.List;
 public class ArchiveExaminingSocketVo {
     private Integer status;
     private List<ArchiveExaminingReportDetail> detailList;
+    private String pdfUrl;
 
     public ArchiveExaminingSocketVo() {
     }
 
-    public ArchiveExaminingSocketVo(Integer status, List<ArchiveExaminingReportDetail> detailList) {
+    public ArchiveExaminingSocketVo(Integer status,String pdfUrl,List<ArchiveExaminingReportDetail> detailList) {
         this.status = status;
+        this.pdfUrl = pdfUrl;
         this.detailList = detailList;
     }
 }

+ 7 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -74,6 +74,13 @@ public interface ArchiveFileClient {
     @PostMapping(API_PREFIX + "/getAllArchiveFileSize")
     Long getAllArchiveFileSize(@RequestBody Long projectId);
 
+    @PostMapping(API_PREFIX + "/getAllArchiveFileByArchiveIds")
+    List<ArchiveFile> getAllArchiveFileByArchiveIds(@RequestBody List<String> ids);
+
+    //批量删除档案文件
+    @PostMapping(API_PREFIX + "/batchDeleteArchiveFile")
+    void batchDeleteArchiveFile(@RequestBody List<Long> ids);
+
     @PostMapping(API_PREFIX + "/getListByNodeID")
     List<ArchiveFile> getListByNodeID(@RequestParam String nodeId,@RequestParam Integer isArchive);
 }

+ 14 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO3.java

@@ -0,0 +1,14 @@
+package org.springblade.manager.vo;
+
+import lombok.Data;
+import org.springblade.manager.entity.ArchiveTreeContract;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/4/25 15:14
+ **/
+@Data
+public class ArchiveTreeContractVO3 extends ArchiveTreeContract {
+    private boolean notExsitChild;
+}

+ 7 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveExaminingReportController.java

@@ -5,6 +5,7 @@ import com.itextpdf.text.DocumentException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import lombok.extern.java.Log;
 import org.springblade.archive.entity.ArchiveExaminingReport;
 import org.springblade.archive.service.IArchiveExaminingReportService;
 import org.springblade.archive.vo.ArchiveExaminingVo;
@@ -102,4 +103,10 @@ public class ArchiveExaminingReportController {
 
     }
 
+    @GetMapping("/getCurrentExaminingInfo")
+    @ApiOperation(value = "获取当前正在检测的报告信息")
+    public R getCurrentExaminingInfo(Long reportId){
+        return R.data(archiveExaminingReportService.getCurrentExaminingInfo(reportId));
+    }
+
 }

+ 55 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -16,11 +16,13 @@
  */
 package org.springblade.archive.controller;
 
+import cn.hutool.core.text.split.SplitIter;
 import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.apache.commons.lang.StringUtils;
 import org.springblade.archive.service.IArchiveAutoPdfService;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.mp.support.Condition;
@@ -36,6 +38,7 @@ import org.springblade.archive.wrapper.ArchivesAutoWrapper;
 import org.springblade.archive.service.IArchivesAutoService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -103,7 +106,8 @@ public class ArchivesAutoController extends BladeController {
 			@ApiImplicitParam(name = "secretLevel", value = "保密级别"),
 			@ApiImplicitParam(name = "carrierType", value = "类别"),
 			@ApiImplicitParam(name = "queryValue", value = "输入框模糊搜索"),
-			@ApiImplicitParam(name = "searchType", value = "搜索类型1案卷2文件")
+			@ApiImplicitParam(name = "searchType", value = "搜索类型1案卷2文件"),
+			@ApiImplicitParam(name = "nodeIds", value = "搜索树的节点id集合")
 	})
 	public R<IPage<ArchivesAutoVO>> pageByArchivesAuto(ArchivesAutoVO archivesAuto) {
 		IPage<ArchivesAutoVO> pages = archivesAutoService.pageByArchivesAuto(archivesAuto);
@@ -173,6 +177,56 @@ public class ArchivesAutoController extends BladeController {
 		return R.status(archivesAutoService.saveOrUpdate(archivesAuto));
 	}
 
+	/**
+	 * 分页-档案鉴定
+	 */
+	@GetMapping("/pageByAuthenticate")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页-档案鉴定", notes = "传入archivesAuto")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "nodeId", value = "节点id", required = true),
+			@ApiImplicitParam(name = "projectId", value = "项目id", required = true),
+			@ApiImplicitParam(name = "storageTime", value = "保管期限", required = false),
+			@ApiImplicitParam(name = "filingUnit", value = "立卷单位", required = false),
+			@ApiImplicitParam(name = "isDeleted", value = "是否删除", required = false)
+	})
+	public R<IPage<ArchivesAutoVO>> pageByAuthenticate(ArchivesAutoVO archivesAuto) {
+		IPage<ArchivesAutoVO> pages = archivesAutoService.pageByAuthenticate(archivesAuto);
+		return R.data(pages);
+	}
+
+	/**
+	 * 批量销毁档案-档案鉴定
+	 */
+	@GetMapping("/batchDestroyArchive")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "批量销毁档案-档案鉴定", notes = "传入节点id")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "nodeId", value = "节点id", required = true),
+	})
+	public R batchDestroyArchive(String ids ){
+		if (StringUtils.isBlank(ids)){
+			return R.fail("参数错误");
+		}
+		archivesAutoService.batchDestroyArchive(ids);
+		return R.success("销毁成功");
+	}
+
+	/**
+	 * 获取立卷单位列表-档案鉴定
+	 */
+	@GetMapping("/getFilingUnitList")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "获取立卷单位列表-档案鉴定", notes = "传入节点id")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "nodeId", value = "节点id", required = true),
+	})
+	public R getFilingUnitList(Long projectId){
+		return R.data(archivesAutoService.getFilingUnitList(projectId));
+	}
+
+
+
 	
 	/**
 	 * 删除 

+ 11 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java

@@ -64,6 +64,16 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 	 */
     List<ArchivesAutoVO> pageByArchivesAuto(IPage page, @Param("vo") ArchivesAutoVO vo);
 
+	/**
+	 *  档案利用-档案查询,带范围
+	 */
+	List<ArchivesAutoVO> pageByArchivesAuto2(IPage page, @Param("vo") ArchivesAutoVO vo);
+
+	/**
+	 *  档案鉴定-档案查询
+	 */
+	List<ArchivesAutoVO> pageByAuthenticate(IPage page, @Param("vo") ArchivesAutoVO vo);
+
 	/**
 	 * 获取当前项目所有案卷,并设置合同类型
 	 */
@@ -75,4 +85,5 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 	@MapKey("storage_time")
 	List<Map<String,String>> getAllArchiveAgeByContractType(@Param("projectId") Long projectId);
 
+	List<String> getFilingUnitList(@Param("projectId") Long projectId);
 }

+ 69 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -182,6 +182,54 @@
         </if>
         GROUP BY uaa.id
     </select>
+
+    <select id="pageByArchivesAuto2" resultMap="archivesAutoResultMap">
+        select uaa.* from
+        (SELECT id FROM m_archive_tree_contract WHERE project_id =#{vo.projectId}
+        <foreach collection="vo.nodeIdArray" item="nodeId">
+            and ancestors like concat('%',#{nodeId},'%') or id = #{nodeId}
+        </foreach>
+        ) matc left join u_archives_auto uaa on matc.id = uaa.node_id left join u_archive_file uaf on uaa.id = uaf.archive_id
+        where uaa.is_deleted = 0
+        <if test="vo.searchType == 1 and vo.queryValue != null and vo.queryValue != ''">
+            and uaa.name like concat('%',#{vo.queryValue},'%')
+        </if>
+        <if test="vo.searchType == 2 and vo.queryValue != null and vo.queryValue != ''">
+            and uaf.file_name like concat('%',#{vo.queryValue},'%')
+        </if>
+        <if test="vo.storageTimes != null and vo.storageTimes != ''">
+            and uaa.storage_time in
+            <foreach collection="vo.storageTimes" item="storageTime" open="(" separator="," close=")">
+                #{storageTime}
+            </foreach>
+        </if>
+        <if test="vo.secretLevels != null and vo.secretLevels != ''">
+            and uaa.secret_level in
+            <foreach collection="vo.secretLevels" item="secretLevel" open="(" separator="," close=")">
+                #{secretLevel}
+            </foreach>
+        </if>
+        <if test="vo.carrierTypes != null and vo.carrierTypes != ''">
+            and uaa.carrier_type in
+            <foreach collection="vo.carrierTypes" item="carrierType" open="(" separator="," close=")">
+                #{carrierType}
+            </foreach>
+        </if>
+        <if test="vo.years != null and vo.years != ''">
+            and
+            <foreach collection="vo.years" item="year" separator=" or" open="(" close=")" >
+                #{year} BETWEEN  DATE_FORMAT(uaa.start_date,'%Y') and DATE_FORMAT(uaa.end_date ,'%Y')
+            </foreach>
+        </if>
+        <if test="vo.months != null and vo.months != ''">
+            and
+            <foreach collection="vo.months" item="month" separator=" or" open="(" close=")">
+                #{month} BETWEEN  DATE_FORMAT(uaa.start_date,'%c') and DATE_FORMAT(uaa.end_date ,'%c')
+            </foreach>
+        </if>
+        GROUP BY uaa.id
+    </select>
+
     <select id="getAllArchiveByContractType" resultType="org.springblade.archive.vo.ArchivesAutoVO">
         SELECT uaa.id,matc.tree_code as 'contractType'
         FROM m_archive_tree_contract matc left join u_archives_auto uaa on uaa.node_id =matc.id
@@ -193,6 +241,27 @@
         WHERE matc.project_id =#{projectId} and uaa.is_deleted =0
         GROUP BY uaa.storage_time
     </select>
+<!--    档案鉴定,档案查询-->
+    <select id="pageByAuthenticate" resultType="org.springblade.archive.vo.ArchivesAutoVO">
+        select uaa.*
+        from(
+                select id from m_archive_tree_contract
+                where project_id = #{vo.projectId} and ancestors like concat('%', #{vo.nodeId}, '%') or id = #{vo.nodeId}
+            ) matc
+        left join u_archives_auto uaa on matc.id = uaa.node_id
+        where uaa.is_deleted = #{vo.isDeleted}
+        <if test="vo.storageTime != null and vo.storageTime != ''">
+            and uaa.storage_time = #{vo.storageTime}
+        </if>
+        <if test="vo.filingUnit != null and vo.filingUnit != ''">
+            and uaa.filing_unit = #{vo.filingUnit}
+        </if>
+    </select>
+    <select id="getFilingUnitList" resultType="java.lang.String">
+        SELECT filing_unit
+        FROM  u_archives_auto WHERE project_id =#{projectId} AND filing_unit is not NULL
+        GROUP BY filing_unit
+    </select>
 
 
 </mapper>

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchiveExaminingReportService.java

@@ -2,6 +2,7 @@ package org.springblade.archive.service;
 
 import com.itextpdf.text.DocumentException;
 import org.springblade.archive.entity.ArchiveExaminingReport;
+import org.springblade.archive.vo.ArchiveExaminingSocketVo;
 import org.springblade.archive.vo.ArchiveExaminingVo;
 import org.springblade.core.mp.base.BaseService;
 
@@ -17,4 +18,5 @@ public interface IArchiveExaminingReportService extends BaseService<ArchiveExami
 
     void getExamining(ArchiveExaminingVo vo, Long id) throws InterruptedException, DocumentException, IOException;
 
+    ArchiveExaminingSocketVo getCurrentExaminingInfo(Long reportId);
 }

+ 6 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java

@@ -51,6 +51,12 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 
 	List<Map<String, String>> getAllArchiveAgeByContractType(Long projectId);
 
+    IPage<ArchivesAutoVO> pageByAuthenticate(ArchivesAutoVO archivesAuto);
+
+	List<String> getFilingUnitList(Long projectId);
+
+	void batchDestroyArchive(String ids);
+
 	void archiveAutoMethod(Long project);
 
 	void splitArchvies(Long project);

+ 49 - 19
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveExaminingReportImpl.java

@@ -56,22 +56,28 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
     @Async
     @Override
     public void pushStatusBySocket(Long userId,Long id) throws IOException, InterruptedException {
-        Integer status;
-        //获取检测状态,如果正在检测,则一直推送
+        Integer status=1;
+        Date date = new Date();
+        //获取检测状态,如果正在检测,则数据变化时发送
         do {
-            Thread.sleep(5000L);
-            //获取最新检测的状态
+            Thread.sleep(4000L);
+            //判断报告状态
             ArchiveExaminingReport report = this.getById(id);
-            status = report.getStatus();
-            //获取检测详情
-            List<ArchiveExaminingReportDetail> list = detailService.list(new LambdaQueryWrapper<ArchiveExaminingReportDetail>()
-                    .eq(ArchiveExaminingReportDetail::getReportId, id));
-            for (ArchiveExaminingReportDetail detail : list) {
-                detail.setExaminingItem(detail.getExaminingType()+":"+detail.getExaminingItem());
+            Integer reportStatus = report.getStatus();
+            //判断详情状态
+            ArchiveExaminingReportDetail detail = detailService.getOne(new LambdaQueryWrapper<ArchiveExaminingReportDetail>()
+                    .eq(ArchiveExaminingReportDetail::getReportId, id)
+                    .orderByDesc(ArchiveExaminingReportDetail::getCreateTime)
+                    .last("limit 1"));
+            if (detail == null){
+                detail = new ArchiveExaminingReportDetail();
+                detail.setCreateTime(date);
+            }
+            if (reportStatus != status || detail.getCreateTime() != date){
+                webSocketServer.sendMessagesToArchive(userId+"","true");
+                status = reportStatus;
+                date = detail.getCreateTime();
             }
-            ArchiveExaminingSocketVo vo = new ArchiveExaminingSocketVo(status,list);
-            webSocketServer.sendMessagesToArchive(userId+"", JSON.toJSONString(vo));
-            status = report.getStatus();
         }while (status != 4);
 
     }
@@ -90,7 +96,7 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
         //检测中
             //真实性
         if (StringUtils.isNotBlank(vo.getAuthenticity()) && "1".equals(vo.getAuthenticity())) {
-            Thread.sleep(7000L);
+            Thread.sleep(5000L);
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_AUTHENTICITY,
                     ArchiveConstant.ARCHIVE_EXAMINING_STANDARD + "对固化信息有效性检测", 0, "无", 0));
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_AUTHENTICITY,
@@ -117,7 +123,7 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
                     ArchiveConstant.ARCHIVE_EXAMINING_STANDARD + "对电子档案封装包电子前面有效性检测", 0, "无", 0));
         }
         if (StringUtils.isNotBlank(vo.getIntegrality()) && "1".equals(vo.getIntegrality())) {
-            Thread.sleep(7000L);
+            Thread.sleep(5000L);
             //完整性
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_INTEGRALITY,
                     ArchiveConstant.ARCHIVE_EXAMINING_STANDARD + "对总件数相符性检测", 0, "无", 0));
@@ -144,7 +150,7 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
         }
             //可用性
         if (StringUtils.isNotBlank(vo.getUsability()) && "1".equals(vo.getUsability())) {
-            Thread.sleep(7000L);
+            Thread.sleep(5000L);
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_USABILITY,
                     ArchiveConstant.ARCHIVE_EXAMINING_STANDARD + "对信息包中元数据的可读性检测", 0, "无", 0));
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_USABILITY,
@@ -164,7 +170,7 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
         }
             //安全性
         if (StringUtils.isNotBlank(vo.getSecurity()) && "1".equals(vo.getSecurity())) {
-            Thread.sleep(7000L);
+            Thread.sleep(5000L);
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_SECURITY,
                     ArchiveConstant.ARCHIVE_EXAMINING_STANDARD + "对系统环境中是否安装杀毒软件检测", 0, "无", 0));
             detailService.save(new ArchiveExaminingReportDetail(vo.getProjectId(), id, ArchiveConstant.ARCHIVE_EXAMINING_SECURITY,
@@ -174,13 +180,32 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
         report.setStatus(3);
         this.updateById(report);
         String url = this.generateReportPdf(id);
-        Thread.sleep(7000L);
+        Thread.sleep(3000L);
         //完成
         report.setReportPdfUrl(url);
         report.setStatus(4);
         this.updateById(report);
     }
 
+    /**
+     * 获取最新的文档状态和详情
+     * @param reportId
+     * @return
+     */
+    @Override
+    public ArchiveExaminingSocketVo getCurrentExaminingInfo(Long reportId) {
+        //获取最新检测的状态
+        ArchiveExaminingReport report = this.getById(reportId);
+        //获取检测详情
+        List<ArchiveExaminingReportDetail> list = detailService.list(new LambdaQueryWrapper<ArchiveExaminingReportDetail>()
+                .eq(ArchiveExaminingReportDetail::getReportId, reportId));
+        for (ArchiveExaminingReportDetail detail : list) {
+            detail.setExaminingItem(detail.getExaminingType()+":"+detail.getExaminingItem());
+        }
+        ArchiveExaminingSocketVo vo = new ArchiveExaminingSocketVo(report.getStatus(),report.getReportPdfUrl(),list);
+        return vo;
+    }
+
     /**
      * 生成检测报告PDF
      */
@@ -189,6 +214,7 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
         int widthPercentage = 100;
         String uuid = StringUtil.randomUUID();
         String localUrl = "/www/wwwroot/Users/hongchuangyanfa/Desktop/archiveExaminingPdf/";
+//        String localUrl = "D:\\develop\\test\\";
         //新建一个pdf文档对象,前一个参数是纸张大小,后四个为边距
         Document document = new Document(PageSize.A4, 5, 5, 30, 30);
         //建立一个书写器
@@ -255,7 +281,11 @@ public class ArchiveExaminingReportImpl extends BaseServiceImpl<ArchiveExamining
         document.close();
         writer.close();
         BladeFile bladeFile = iossClient.uploadFile(uuid+".pdf", localUrl+uuid+".pdf");
-        return bladeFile.getLink();
+        if (bladeFile != null && StringUtils.isNotBlank(bladeFile.getLink())){
+            return bladeFile.getLink();
+        }else {
+            return null;
+        }
     }
 
 

+ 43 - 9
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -100,15 +100,23 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		if (StringUtils.isNotBlank(vo.getMonth())) {
 			vo.setMonths(Arrays.asList(vo.getMonth().split(",")));
 		}
-		List<ArchivesAutoVO> archivesAutos = baseMapper.pageByArchivesAuto(page, vo);
-		archivesAutos.stream().forEach(aa->{
-			if (StringUtils.isNotBlank(aa.getStorageTime())){
-				aa.setStorageTimeValue("9999".equals(aa.getStorageTime())?"永久":("30".equals(aa.getStorageTime())?"30年":"10年"));
-			}
-			if (StringUtils.isNotBlank(aa.getSecretLevel())){
-				aa.setSecretLevelValue("1".equals(aa.getSecretLevel())?"机密":("2".equals(aa.getSecretLevel())?"绝密":"秘密"));
-			}
-		});
+		List<ArchivesAutoVO> archivesAutos = null;
+		if (StringUtils.isNotBlank(vo.getNodeIds())){
+			vo.setNodeIdArray(Arrays.asList(vo.getNodeIds().split(",")));
+			archivesAutos = baseMapper.pageByArchivesAuto2(page, vo);
+		}else {
+			archivesAutos = baseMapper.pageByArchivesAuto(page, vo);
+		}
+		if (archivesAutos != null && archivesAutos.size() >0) {
+			archivesAutos.stream().forEach(aa -> {
+				if (StringUtils.isNotBlank(aa.getStorageTime())) {
+					aa.setStorageTimeValue("9999".equals(aa.getStorageTime()) ? "永久" : ("30".equals(aa.getStorageTime()) ? "30年" : "10年"));
+				}
+				if (StringUtils.isNotBlank(aa.getSecretLevel())) {
+					aa.setSecretLevelValue("1".equals(aa.getSecretLevel()) ? "机密" : ("2".equals(aa.getSecretLevel()) ? "绝密" : "秘密"));
+				}
+			});
+		}
 		return page.setRecords(archivesAutos);
 	}
 
@@ -267,6 +275,32 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		}
 	}
 
+	@Override
+	public IPage<ArchivesAutoVO> pageByAuthenticate(ArchivesAutoVO vo) {
+		IPage<ArchivesAutoVO> page = new Page<>(vo.getCurrent(),vo.getSize());
+		List<ArchivesAutoVO> list = baseMapper.pageByAuthenticate(page, vo);
+		return page.setRecords(list);
+	}
+
+	@Override
+	public List<String> getFilingUnitList(Long projectId) {
+		return baseMapper.getFilingUnitList(projectId);
+	}
+
+	@Override
+	public void batchDestroyArchive(String ids) {
+		List<String> list = Arrays.asList(ids.split(","));
+		//查询出档案的文件
+		List<ArchiveFile> files = archiveFileClient.getAllArchiveFileByArchiveIds(list);
+		//销毁阿里云上文件
+
+		//删除文件
+		List<Long> collect = files.stream().map(file -> file.getId()).collect(Collectors.toList());
+		archiveFileClient.batchDeleteArchiveFile(collect);
+		//删除案卷
+		baseMapper.deleteBatchIds(list);
+	}
+
 
 	/**
 	 * 检查当前案卷的文件集合是否在规格内,能否开始组卷。

+ 3 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java

@@ -117,13 +117,13 @@ public class EVisaTaskCheckController {
     /**
      * 资料查询批量上报,检查自定义流程,审批人权限
      */
-    @PostMapping("/checkCustomFlowUserIsEVisaPermissions2")
+    @PostMapping("/batchCheckCustomFlowUserIsEVisaPermissions2")
     @ApiOperation(value = "资料查询批量上报,检查自定义流程,审批人权限")
     @ApiOperationSupport(order = 6)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "customFlowUserList", value = "所选的任务人集合,集合形式", required = true),
             @ApiImplicitParam(name = "contractId", value = "合同段ID", required = true),
-            @ApiImplicitParam(name = "privatePKeyId", value = "表单列表中的isTypePrivatePid字段,集合形式"),
+            @ApiImplicitParam(name = "privatePKeyId", value = "资料查看选择的节点主键集合"),
             @ApiImplicitParam(name = "theLogPrimaryKeyId", value = "日志左侧所选的填报类型ID"),
             @ApiImplicitParam(name = "firstId", value = "首件记录ID,列表批量上报时传任意一个即可")
     })
@@ -138,7 +138,7 @@ public class EVisaTaskCheckController {
             }
 
             //获取电签配置
-            List<String> list = json.getJSONArray("wbsIds").toJavaList(String.class);
+            List<String> list = json.getJSONArray("privatePKeyId").toJavaList(String.class);
             Set<String> userNameFail = new HashSet<>();
             for (String nodeId : list) {
                 WbsTreeContract contract = wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.valueOf(nodeId));

+ 15 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -187,6 +187,21 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         }
     }
 
+    /**
+     * 根据案卷id集合返回所有的文件列表
+     * @param ids
+     * @return
+     */
+    @Override
+    public List<ArchiveFile> getAllArchiveFileByArchiveIds(List<String> ids) {
+        return fileMapper.getAllArchiveFileByArchiveIds(ids);
+    }
+
+    @Override
+    public void batchDeleteArchiveFile(List<Long> ids) {
+        fileMapper.deleteBatchIds(ids);
+    }
+
     @Override
     public List<ArchiveFile> getListByNodeID(String nodeId,Integer isArchive) {
         List<ArchiveFile> files = fileMapper.getListByNodeID(nodeId, isArchive);

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.java

@@ -73,5 +73,7 @@ public interface ArchiveFileMapper extends BaseMapper<ArchiveFile> {
 
 	List<ArchiveFile> getAllArchiveFileUrl(@Param("projectId")Long projectId);
 
+    List<ArchiveFile> getAllArchiveFileByArchiveIds(@Param("ids") List<String> ids);
+
 	public List<ArchiveFile> getListByNodeID(@Param("nodeId") String nodeId,@Param("isArchive")Integer isArchive);
 }

+ 7 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -287,6 +287,13 @@
         FROM u_archive_file uaf
         WHERE  uaf.project_id = #{projectId};
     </select>
+    <select id="getAllArchiveFileByArchiveIds" resultType="org.springblade.business.entity.ArchiveFile">
+        SELECT * FROM u_archive_file
+        WHERE archive_id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 
 
 

+ 16 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -338,4 +338,20 @@ public class ArchiveTreeContractController extends BladeController {
 		return R.fail(200, "同步失败");
 	}
 
+	/**
+	 * 根据节点类型获取档案,档案查询选择目录
+	 */
+	@GetMapping("getArchiveTreeByNodeType")
+	@ApiOperation(value = "根据节点类型获取档案,档案查询选择目录", notes = "传入项目id,节点类型")
+	public R getArchiveTreeByNodeType(Long projectId,Long nodeType){
+		return R.data(archiveTreeContractService.getArchiveTreeByNodeType(projectId,nodeType));
+	}
+	/**
+	 * 根据父节点获取子节点集合
+	 */
+	@GetMapping("getChildrenNodeByNodeId")
+	@ApiOperation(value = "根据节点id获取子节点集合", notes = "传入节点id")
+	public R getChildrenNodeByNodeId(Long nodeId){
+		return R.data(archiveTreeContractService.getChildrenNodeByNodeId(nodeId));
+	}
 }

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -24,6 +24,7 @@ import org.springblade.manager.vo.ArchiveTreeContractVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
+import org.springblade.manager.vo.ArchiveTreeContractVO3;
 import org.springblade.manager.vo.ArchiveTreeVO;
 
 import java.util.List;
@@ -77,4 +78,8 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 
 	@MapKey("id")
 	List<Map<String, Object>> getArchiveTreeAndArchiveCount(@Param("projectId") Long projectId,@Param("nodeId") Long nodeId);
+
+    List<ArchiveTreeContract> getArchiveTreeByNodeType(@Param("projectId")Long projectId,@Param("nodeType") Long nodeType);
+
+	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(@Param("nodeId") Long nodeId);
 }

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -368,5 +368,18 @@
             if((SELECT COUNT(*) from m_archive_tree_contract matc WHERE parent_id = matc1.id)=0,false,true) as hasChildren
         FROM m_archive_tree_contract matc1 WHERE matc1.project_id =#{projectId} and matc1.parent_id = #{nodeId}
     </select>
+    <select id="getArchiveTreeByNodeType" resultType="org.springblade.manager.entity.ArchiveTreeContract">
+        SELECT * FROM m_archive_tree_contract
+        WHERE  parent_id = (select id from m_archive_tree_contract
+                            WHERE parent_id = (select id from m_archive_tree_contract WHERE parent_id = 0 and project_id = #{projectId})
+                            and post_type = #{nodeType})
+          and is_deleted = 0
+
+    </select>
+    <select id="getChildrenNodeByNodeId" resultType="org.springblade.manager.vo.ArchiveTreeContractVO3">
+        select matc1.*,if((SELECT COUNT(*) from m_archive_tree_contract matc WHERE matc.parent_id = matc1.id)=0,true,false)
+            as notExsitChild
+        from m_archive_tree_contract matc1 WHERE matc1.parent_id = #{nodeId} and matc1.is_deleted =0
+    </select>
 
 </mapper>

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java

@@ -28,6 +28,7 @@ import org.springblade.manager.vo.ArchiveTreeContractVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
+import org.springblade.manager.vo.ArchiveTreeContractVO3;
 
 
 import java.util.ArrayList;
@@ -35,6 +36,7 @@ import java.util.List;
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.LongStream;
 
 /**
  *  服务类
@@ -94,4 +96,7 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
 	List<Map<String,Object>> getArchiveTreeAndArchiveCount(Long projectId,Long nodeId);
 
+    List<ArchiveTreeContract> getArchiveTreeByNodeType(Long projectId, Long nodeType);
+
+	List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(Long nodeId);
 }

+ 19 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -854,5 +854,24 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return baseMapper.getArchiveTreeAndArchiveCount(projectId,nodeId);
 	}
 
+	@Override
+	public List<ArchiveTreeContract> getArchiveTreeByNodeType(Long projectId, Long nodeType) {
+		if (nodeType == 1){
+			nodeType = 1537246243393589249L;
+		}else if (nodeType == 2){
+			nodeType = 1537247986361782274L;
+		}else if (nodeType == 3){
+			nodeType = 1537246384519335938L;
+		}else {
+			nodeType = 1607574141119365122L;
+		}
+		return baseMapper.getArchiveTreeByNodeType(projectId,nodeType);
+	}
+
+	@Override
+	public List<ArchiveTreeContractVO3> getChildrenNodeByNodeId(Long nodeId) {
+		return baseMapper.getChildrenNodeByNodeId(nodeId);
+	}
+
 
 }