浏览代码

案卷收集

“zhifk” 2 年之前
父节点
当前提交
90906867ff

+ 86 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchivesAutoVO.java

@@ -16,10 +16,14 @@
  */
 package org.springblade.archive.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.springblade.archive.entity.ArchivesAuto;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 视图实体类
  *
@@ -31,4 +35,86 @@ import lombok.EqualsAndHashCode;
 public class ArchivesAutoVO extends ArchivesAuto {
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 当前页
+	 */
+	@ApiModelProperty("当前页")
+	private Integer current;
+
+	/**
+	 * 当前页
+	 */
+	@ApiModelProperty("当前页显示条数")
+	private Integer size;
+
+	/**
+	 * 输入框查询条件
+	 */
+	@ApiModelProperty("输入框查询条件")
+	private String queryValue;
+
+	/**
+	 * 节点查询条件
+	 */
+	@ApiModelProperty("节点查询条件")
+	private String nodeIds;
+
+	private List<String> nodeIdArray;
+	/**
+	* 案卷收集附件信息
+	* */
+	@ApiModelProperty("附件信息")
+	private List<ApprovalFile> approvalFileList = new ArrayList<>();
+	@Data
+	public static class ApprovalFile {
+
+		/**
+		 * 文件绑定的节点ID
+		 */
+		private String nodeId;
+
+		/**
+		 * 文件编号
+		 */
+		private String fileNumber;
+
+		/**
+		 * 文件名称
+		 */
+		private String fileName;
+
+		/**
+		 * 文件时间
+		 */
+		private String fileTime;
+
+		/**
+		 * 文件路径
+		 */
+		private String fileUrl;
+
+		/**
+		 * PDF文件路径
+		 */
+		private String pdfFileUrl;
+
+		/**
+		 * 文件页数
+		 */
+		private Integer filePage;
+
+		/**
+		 * 是否需要审批,0不需要,1需要
+		 */
+		private Integer isApproval;
+
+		/**
+		 * 是否需要认证,0不需要,1需要
+		 */
+		private Integer isNeedCertification;
+		/**
+		 * 责任者
+		 */
+		private String dutyUser;
+	}
 }

+ 129 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileAutoController.java

@@ -0,0 +1,129 @@
+package org.springblade.archive.controller;
+
+import com.alibaba.excel.util.DateUtils;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import org.apache.commons.lang.StringUtils;
+import org.springblade.archive.service.IArchivesAutoService;
+import org.springblade.archive.vo.ArchivesAutoVO;
+import org.springblade.business.entity.ArchiveFile;
+import org.springblade.business.feign.ArchiveFileClient;
+import org.springblade.business.vo.ArchiveFileVO;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.evisa.feign.EVisaClient;
+import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.manager.feign.ArchiveTreeContractClient;
+import org.springblade.resource.feign.IOSSClient;
+import org.springblade.system.user.entity.UserOauth;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ *  控制器
+ *
+ * @author BladeX
+ * @since 2022-07-08
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/archiveFileAuto")
+@Api(value = "案卷收集接口", tags = "案卷收集接口")
+public class ArchiveFileAutoController extends BladeController {
+
+    private final ArchiveFileClient archiveFileClient;
+    private final IOSSClient iossClient;
+    private final ArchiveTreeContractClient archiveTreeContractClient;
+    private final EVisaClient eVisaClient;
+    private final IArchivesAutoService archivesAutoService;
+    /**
+     * 批量新增
+     */
+    @PostMapping("/batchSave")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "批量新增")
+    public R<Boolean> batchSave(@RequestBody List<ArchivesAutoVO> archiveList){
+        try {
+            for(ArchivesAutoVO archive : archiveList) {
+                if(archive.getId() == null){
+                    int l = (int) System.currentTimeMillis();
+                    List<ArchivesAutoVO.ApprovalFile> saveList = archive.getApprovalFileList();
+                    ArchiveFileVO saveVos = new ArchiveFileVO();
+                    if (saveList != null && saveList.size() > 0) {
+                        int i = 1;
+                        for (ArchivesAutoVO.ApprovalFile approvalFile : saveList) {
+                            ArchiveFileVO saveVo = BeanUtil.copy(approvalFile, ArchiveFileVO.class);
+                            saveVo.setSort(l + i);
+                            saveVo.setStatus(new Integer("0").equals(saveVo.getIsApproval()) ? 2 : 0);
+                            saveVo.setIsCertification(new Integer("0").equals(saveVo.getIsNeedCertification()) ? 1 : 0);
+                            saveVos.getList().add(saveVo);
+                            i++;
+                        }
+                    }
+                    this.archiveFileClient.saveArchiveFile(saveVos);
+
+                    String archiveId = "";
+                    //获取方式
+                    archiveId = "FromNode_" + archive.getNodeId();
+                    archive.setId(Long.parseLong(archiveId));
+                    //待修改
+                    archive.setIsDeleted(0);
+                    archive.setIsArchive(0);
+
+                    archivesAutoService.save(archive);
+                }else{
+                    archivesAutoService.updateById(archive);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            return R.data(false);
+        }
+        return R.data(true);
+    }
+    /**
+     * 分页
+     */
+    @PostMapping("/page")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "分页")
+    public R<Object> page( ArchivesAutoVO queryVo){
+        if(queryVo.getNodeId() == null || queryVo.getNodeId().equals("")){
+            return  R.data(null);
+        }
+        List<ArchiveTreeContract> archiveTreeContracts = this.archiveTreeContractClient.queryAllChildByAncestors(queryVo.getNodeIds());
+        if(archiveTreeContracts != null && archiveTreeContracts.size() > 0){
+            List<String> ids = JSONArray.parseArray(JSONObject.toJSONString(archiveTreeContracts.stream().map(ArchiveTreeContract::getId).distinct().collect(Collectors.toList())), String.class);
+            ids.add(queryVo.getNodeId().toString());
+            queryVo.setNodeIdArray(ids);
+        }
+
+        return R.data(archivesAutoService.selectArchivesAutoFilePage(queryVo));
+    }
+
+
+    /**
+     * 迁移文件
+     */
+    @PostMapping("/migrateFile")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "迁移文件", notes = "传入ids")
+    public R migrateFile(@RequestParam String ids,@RequestParam String nodeId) {
+        return R.status(this.archiveFileClient.updateArchiveFileByNodeId(ids,nodeId));
+    }
+}

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

@@ -16,6 +16,7 @@
  */
 package org.springblade.archive.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.archive.entity.ArchivesAuto;
 import org.springblade.archive.vo.ArchivesAutoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,4 +40,7 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 	 */
 	List<ArchivesAutoVO> selectArchivesAutoPage(IPage page, ArchivesAutoVO archivesAuto);
 
+	Integer selectArchivesAutoFileCount(@Param("vo") ArchivesAutoVO vo);
+
+	List<ArchivesAuto> selectArchivesAutoFilePage(@Param("current") Integer current, @Param("size") Integer size, @Param("vo")  ArchivesAutoVO vo);
 }

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

@@ -51,4 +51,38 @@
         select * from u_archives_auto where is_deleted = 0
     </select>
 
+
+    <select id="selectArchivesAutoFileCount" resultType="java.lang.Integer">
+        select count(id) from u_archive_file where is_deleted = 0
+        <if test="vo.projectId != null and vo.projectId != ''">
+            and project_id = #{vo.projectId}
+        </if>
+        <if test="vo.contractId != null and vo.contractId != ''">
+            and contract_id = #{vo.contractId}
+        </if>
+        <if test="vo.nodeIds != null and vo.nodeIds != ''">
+            and node_id in
+            <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
+                #{nodeId}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="selectArchivesAutoFilePage" resultMap="archivesAutoResultMap">
+        select * from u_archive_file where is_deleted = 0
+        <if test="vo.projectId != null and vo.projectId != ''">
+            and project_id = #{vo.projectId}
+        </if>
+        <if test="vo.contractId != null and vo.contractId != ''">
+            and contract_id = #{vo.contractId}
+        </if>
+        <if test="vo.nodeIds != null and vo.nodeIds != ''">
+            and node_id in
+            <foreach collection="vo.nodeIdArray" item="nodeId" open="(" separator="," close=")">
+                #{nodeId}
+            </foreach>
+        </if>
+        order by sort,create_time DESC
+    </select>
+
 </mapper>

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

@@ -38,4 +38,5 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	 */
 	IPage<ArchivesAutoVO> selectArchivesAutoPage(IPage<ArchivesAutoVO> page, ArchivesAutoVO archivesAuto);
 
+	IPage<ArchivesAutoVO> selectArchivesAutoFilePage(ArchivesAutoVO queryVo);
 }

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

@@ -16,14 +16,22 @@
  */
 package org.springblade.archive.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang.StringUtils;
 import org.springblade.archive.entity.ArchivesAuto;
 import org.springblade.archive.vo.ArchivesAutoVO;
 import org.springblade.archive.mapper.ArchivesAutoMapper;
 import org.springblade.archive.service.IArchivesAutoService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.system.entity.DictBiz;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  *  服务实现类
  *
@@ -38,4 +46,28 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return page.setRecords(baseMapper.selectArchivesAutoPage(page, archivesAuto));
 	}
 
+	@Override
+	public IPage<ArchivesAutoVO> selectArchivesAutoFilePage(ArchivesAutoVO vo) {
+		Query query = new Query();
+		query.setCurrent(vo.getCurrent());
+		query.setSize(vo.getSize());
+		//设置分页
+		IPage<ArchivesAutoVO> iPage = Condition.getPage(query);
+
+		//汇总
+		Integer total = this.baseMapper.selectArchivesAutoFileCount(vo);
+		if(total == null){
+			total = 0;
+		}
+		//分页
+		int current = (vo.getCurrent() - 1) * vo.getSize();
+
+		List<ArchivesAuto> pageList = this.baseMapper.selectArchivesAutoFilePage(current, vo.getSize(), vo);
+		//设置分页信息
+		iPage.setTotal(total);
+		List<ArchivesAutoVO> pageVoList = JSONArray.parseArray(JSONObject.toJSONString(pageList), ArchivesAutoVO.class);
+
+		return iPage.setRecords(pageVoList);
+	}
+
 }