huangtf 1 rok pred
rodič
commit
5e6d010a26

+ 33 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -523,10 +523,43 @@ public class ArchivesAutoController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "刷新项目档案", notes = "传入projectId,contractId")
 	public R<String> refreshProjectArchive(@RequestParam Long projectId, @RequestParam Long contractId,@RequestParam Long nodeId) {
+		try{
+
+			ContractInfo contract = contractClient.getContractById(contractId);
+
+			Integer isArchivesAuto = contract.getIsArchivesAuto();
+			if(isArchivesAuto!=-1 && isArchivesAuto!=null && isArchivesAuto!=0){
+				return R.fail("当前合同段已经在自动组卷中,请耐心等待");
+			}
+			log.info("开始刷新档号....");
+			//设置自动组卷中
+			contractClient.updateIsArchivesAutoById(contractId,1);
+
+			archivesAutoService.refreshFileNumberThread(projectId,contractId,nodeId);
+			return R.success("开始刷新档号中,请耐心等待");
+		}catch (Exception e){
+			e.printStackTrace();
+			log.error("刷新档。"+e.getMessage()+"--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+			//设置自动组卷结束
+			contractClient.updateIsArchivesAutoById(contractId,0);
+			return R.fail(e.getMessage());
+		}
+	}
+
+	/**
+	 * 刷新指定项目的档案
+	 * @param projectId 项目id
+	 * @return R
+	 */
+	@PostMapping("/refreshFileNumber1")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "刷新项目档案", notes = "传入projectId,contractId")
+	public R<String> refreshProjectArchive1(@RequestParam Long projectId, @RequestParam Long contractId,@RequestParam Long nodeId) {
 		archivesAutoService.refreshFileNumberNoSlipt(projectId,contractId,null,false);
 		return R.data("刷新成功");
 	}
 
+
 	/**
 	 * 批量编辑
 	 */

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

@@ -88,6 +88,8 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 
 	void archiveAutoMethodThread(Long projectId, Long contractId, Long nodeId);
 
+	void refreshFileNumberThread(Long projectId, Long contractId, Long nodeId);
+
 	List<User> getArchiveDestroyUser(Long projectId);
 
 	List<Map<String, List<Map<String, String>>>> getArchivesCabinet(ArchivesAutoVO archivesAuto);

+ 26 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -2145,6 +2145,32 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		});
 	}
 
+
+	@Override
+	public void refreshFileNumberThread(Long projectId, Long contractId, Long nodeId) {
+		executorService.execute(()->{
+			try{
+				//将项目未锁定案卷拆卷
+				log.info("[自动组卷]{}","开始对未锁定案卷拆卷。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+
+				//设置完成度10%
+				contractClient.updateIsArchivesAutoById(contractId,10);
+
+				//项目自动组卷入口
+				this.refreshFileNumberNoSlipt(projectId,contractId,null,false);
+
+				//设置自动组卷结束
+				contractClient.updateIsArchivesAutoById(contractId,0);
+				log.info("[自动组卷]{}","自动组卷完成。projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+			}catch (Exception e){
+				e.printStackTrace();
+				log.error("自动组卷报错。"+e.getMessage()+"--projectId:"+projectId+"-contractId:"+contractId+"-nodeId:"+nodeId);
+				//设置自动组卷结束
+				contractClient.updateIsArchivesAutoById(contractId, 0);
+			}
+		});
+	}
+
 	@Override
 	public List<User> getArchiveDestroyUser(Long projectId) {
 		return autoMapper.getArchiveDestroyUser(projectId);