huangjn 3 роки тому
батько
коміт
a7f989cd0f
25 змінених файлів з 234 додано та 68 видалено
  1. 0 1
      blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java
  2. 23 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java
  3. 1 3
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/InformationQueryClient.java
  4. 1 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/TaskClient.java
  5. 2 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/ArchiveFileVO.java
  6. 6 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/ArchiveTaskVO.java
  7. 7 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java
  8. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO.java
  9. 12 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO2.java
  10. 3 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeContractTreeVOS.java
  11. 17 5
      blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java
  12. 13 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/FixedFlowController.java
  13. 60 23
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  14. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/InformationQueryClientImpl.java
  15. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/TaskClientImpl.java
  16. 16 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  17. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskMapper.java
  18. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskMapper.xml
  19. 1 3
      blade-service/blade-business/src/main/java/org/springblade/business/service/IInformationQueryService.java
  20. 17 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java
  21. 5 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java
  22. 17 21
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  23. 15 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java
  24. 3 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml
  25. 3 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

+ 0 - 1
blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java

@@ -243,7 +243,6 @@ public class OssEndpoint {
 		newBladeFile.setPage(1);
 
 		return newBladeFile;
-//		return null;
 	}
 
 	/**

+ 23 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java

@@ -116,5 +116,28 @@ public class ArchiveFile extends BaseEntity {
 	@ApiModelProperty("责任者")
     private String dutyUser;
 
+    /**
+     * 图幅
+     */
+    @ApiModelProperty("图幅")
+    private String sheetType;
+
+    /**
+     * 图表来源
+     */
+    @ApiModelProperty("图表来源")
+    private String sheetSource;
+
+    /**
+     * 图号
+     */
+    @ApiModelProperty("图号")
+    private String drawingNo;
+
+    /**
+     * 引用变更令编号
+     */
+    @ApiModelProperty("引用变更令编号")
+    private String citeChangeNumber;
 
 }

+ 1 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/InformationQueryClient.java

@@ -19,14 +19,12 @@ public interface InformationQueryClient {
 
     /**
      * 保存填报时新增或修改填报资料记录表数据
-     * @param user 当前操作用户
      * @param wbsId 当前填报节点
      * @param fileName 文件题名
      * @param classify 1施工2质检
      * @param sourceType 1原生2数据化
-     * @param dataId 1原生2数据化
      */
     @PostMapping(API_PREFIX + "/saveOrUpdateInformationQueryData")
-    void saveOrUpdateInformationQueryData(@RequestBody BladeUser user, @RequestParam Long wbsId, @RequestParam String fileName, @RequestParam Integer classify, @RequestParam Integer sourceType, @RequestParam Long dataId);
+    void saveOrUpdateInformationQueryData(@RequestParam Long wbsId, @RequestParam String fileName, @RequestParam Integer classify, @RequestParam Integer sourceType);
 
 }

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/TaskClient.java

@@ -26,7 +26,7 @@ public interface TaskClient {
      * 根据数据源ID获取任务实例
      */
     @PostMapping(QUERY_FORM_DATA_ID)
-    R<List<Task>> queryTaskListByFormDataId(@RequestParam String ids);
+    List<Task> queryTaskListByFormDataId(@RequestParam String formDataIds);
 
     /**
      * 发起流程

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/ArchiveFileVO.java

@@ -76,4 +76,6 @@ public class ArchiveFileVO extends ArchiveFile {
 
 	private List<String> nodeIdArray;
 
+	private String sheetSourceValue;
+
 }

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/ArchiveTaskVO.java

@@ -39,4 +39,10 @@ public class ArchiveTaskVO {
     @ApiModelProperty("限定审批时间(天)")
     private Integer restrictDay;
 
+    @ApiModelProperty("项目ID")
+    private String projectId;
+
+    @ApiModelProperty("合同段ID")
+    private String contractId;
+
 }

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -1,6 +1,7 @@
 package org.springblade.manager.feign;
 
 import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,6 +21,12 @@ public interface WbsTreeContractClient {
      */
     String API_PREFIX = "/api/manager/WbsTreeContract";
 
+    /**
+     * 监理、业主获取划分树
+     */
+    @GetMapping(API_PREFIX + "/lazyTree")
+    List<WbsTreeContractTreeVOS> lazyTree(@RequestParam Long parentId, @RequestParam String contractId, @RequestParam String contractIdRelation, @RequestParam Integer type);
+
     @PostMapping(API_PREFIX + "/updateContractNodeParameter")
     Boolean updateContractNodeParameter(@RequestBody WbsTreeContract node);
 

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO.java

@@ -19,6 +19,7 @@ package org.springblade.manager.vo;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.core.tool.node.INode;
@@ -97,5 +98,10 @@ public class ArchiveTreeVO extends ArchiveTree implements INode<ArchiveTreeVO> {
      */
     private Integer isUploadFileDisplayConfigurationTree;
 
+    /**
+     * 是否为竣工图 '0'否 '1'是
+     */
+    private Integer isBuiltDrawing;
+
 
 }

+ 12 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO2.java

@@ -45,6 +45,10 @@ public class TreeNodeVO2 extends BaseNode<TreeNode> {
      */
     private Integer isDisplayTree;
 
+    /**
+     * 是否是竣工图
+     */
+    private Integer isBuiltDrawing;
 
     public TreeNodeVO2() {
     }
@@ -123,6 +127,14 @@ public class TreeNodeVO2 extends BaseNode<TreeNode> {
         this.value = value;
     }
 
+    public Integer getIsBuiltDrawing() {
+        return isBuiltDrawing;
+    }
+
+    public void setIsBuiltDrawing(Integer isBuiltDrawing) {
+        this.isBuiltDrawing = isBuiltDrawing;
+    }
+
     public String toString() {
         return "TreeNode(tenantId=" + this.getTenantId()
                 + ",ancestors" + this.getAncestors()

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeContractTreeVOS.java

@@ -61,4 +61,7 @@ public class WbsTreeContractTreeVOS {
     @ApiModelProperty("划分编号")
     private String partitionCode;
 
+    @ApiModelProperty("合同段ID")
+    private String contractIdRelation;
+
 }

+ 17 - 5
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -53,17 +53,28 @@ public class ArchiveFileController extends BladeController {
 
 	/**
 	 * 批量废除
-	 * @param id 列表主键
+	 * @param ids 列表主键
 	 * @return 废除结果
 	 */
 	@PostMapping("batchAbolish")
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "批量废除")
-	public R<Boolean> batchAbolish(@RequestParam String id){
-		//获取所有相关记录
-//		this.
+	public R<Boolean> batchAbolish(@RequestParam String ids){
+		//获取所有相关任务记录
+		List<Task> taskList =  this.taskClient.queryTaskListByFormDataId(ids);
+		if(taskList != null && taskList.size() > 0){
+			//执行废除
+			for(Task task : taskList){
+				this.taskClient.abolishTask(task);
+			}
+		} else {
+			//为空说明可能是已审批的任务,修改业务数据的审批状态为未上报并撤签即可
+			this.archiveFileService.update(Wrappers.<ArchiveFile>lambdaUpdate().set(ArchiveFile::getStatus, 0).in(ArchiveFile::getId, Arrays.asList(ids.split(","))));
+			// todo ================== 调用撤签
+			// todo ================== 调用撤签
+		}
 
-		return null;
+		return R.data(true);
 	}
 
 	/**
@@ -79,6 +90,7 @@ public class ArchiveFileController extends BladeController {
 			TaskVO taskVO = new TaskVO();
 			BeanUtils.copyProperties(archiveTaskVO, taskVO);
 			taskVO.setFormDataId(archiveTaskIds);
+			taskVO.setApprovalType(2);
 			//启动流程
 			this.taskClient.startTask(taskVO);
 			//修改状态为待审批

+ 13 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/FixedFlowController.java

@@ -69,6 +69,18 @@ public class FixedFlowController extends BladeController {
 		//获取项目人员
 		List<SaveUserInfoByProjectDTO> contractUserList = this.projectAssignmentUserClient.queryContractDownAllUser(contractId);
 
+		//先处理管理员
+		for(RoleVO vos : roleVOS){
+			if(vos.getRoleName().contains("管理员")){
+				RoleVO adminVO = new RoleVO();
+				BeanUtils.copyProperties(vos, adminVO);
+				List<RoleVO> childRoles = new ArrayList<>();
+				childRoles.add(adminVO);
+				vos.setChildren(childRoles);
+				break;
+			}
+		}
+
 		//返回结果
 		List<RoleSignPfxUserVO> result = new ArrayList<>();
 		for(RoleVO vo : roleVOS){
@@ -78,7 +90,7 @@ public class FixedFlowController extends BladeController {
 			pfxUserVo.setRoleName(vo.getRoleName());
 
 			//处理子节点
-			List<RoleVO> childRoles =  vo.getChildren();
+			List<RoleVO> childRoles = vo.getChildren();
 			if(childRoles != null && childRoles.size() > 0) {
 				for (RoleVO childVo : childRoles) {
 					//设置实体

+ 60 - 23
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -51,6 +51,7 @@ import org.springblade.business.entity.InformationQuery;
 import org.springblade.business.service.IInformationQueryService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -93,16 +94,41 @@ public class InformationWriteQueryController extends BladeController {
 			@ApiImplicitParam(name = "wbsType", value = "模板类型, 1质检,2试验", required = true),
 			@ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
 	})
-	public R<List<WbsTreeContractTreeVOS>> queryMappingStructureTree(@RequestParam String parentId, @RequestParam Integer wbsType, @RequestParam String contractId){
-		if(StringUtils.isEmpty(parentId) || "0".equals(parentId)){
-			//直接返回
-			return R.data(this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, wbsType, "0"));
-		}
-		//不是根节点,则获取子节点
-		List<WbsTreeContractTreeVOS> result = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
-		//判断当前节点下是不是只有一个子节点
-		if(result != null && result.size() == 1){
-			this.foreachQueryChildNode(result, contractId);
+	public R<List<WbsTreeContractTreeVOS>> queryMappingStructureTree(@RequestParam String parentId, @RequestParam Integer wbsType, @RequestParam String contractId, @RequestParam String contractIdRelation){
+		List<WbsTreeContractTreeVOS> result;
+
+		//获取合同段,检查是否是监理合同段
+		ContractInfo contractInfo = this.contractClient.getContractById(Long.parseLong(contractId));
+
+		if(new Integer("2").equals(contractInfo.getContractType())){
+			//监理合同段
+			List<WbsTreeContractTreeVOS> childList = this.wbsTreeContractClient.lazyTree(StringUtils.isNotEmpty(parentId) ? Long.parseLong(parentId) : 0, contractId, contractIdRelation, contractInfo.getContractType());
+			if(childList != null && childList.size() == 1){
+				//需要向下展开
+				this.foreachQueryChildNode(childList, childList.get(0).getContractIdRelation(), contractInfo.getContractType());
+			}
+			if(StringUtils.isEmpty(contractIdRelation) && "0".equals(parentId)){
+				//给个顶点
+				WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();
+				vos.setTitle(contractInfo.getContractName());
+				vos.setChildren(childList);
+				result = new ArrayList<>();
+				result.add(vos);
+			} else {
+				result = childList;
+			}
+
+		} else {
+			if(StringUtils.isEmpty(parentId) || "0".equals(parentId)){
+				//直接返回
+				return R.data(this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, wbsType, "0"));
+			}
+			//不是根节点,则获取子节点
+			result = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
+			//判断当前节点下是不是只有一个子节点
+			if(result != null && result.size() == 1){
+				this.foreachQueryChildNode(result, contractId, contractInfo.getContractType());
+			}
 		}
 
 		return R.data(result);
@@ -112,15 +138,18 @@ public class InformationWriteQueryController extends BladeController {
 	 * 如果子节点只有一个,则进一步查询该子节点的下级节点
 	 * @param result 子节点集合
 	 */
-	private void foreachQueryChildNode(List<WbsTreeContractTreeVOS> result, String contractId){
+	private void foreachQueryChildNode(List<WbsTreeContractTreeVOS> result, String contractId, Integer initialContractType){
 		result.forEach(vos -> {
-			List<WbsTreeContractTreeVOS> child = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, vos.getId());
+			String id = new Integer("2").equals(initialContractType) ? vos.getPrimaryKeyId() : vos.getId();
+			String primaryKeyId = new Integer("2").equals(initialContractType) ? vos.getId() : vos.getPrimaryKeyId();
+
+			List<WbsTreeContractTreeVOS> child = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, id);
 			if(child != null && child.size() == 1){
 				//如果子节点还是只有一个,则进一步向下查询
-				this.foreachQueryChildNode(child, contractId);
+				this.foreachQueryChildNode(child, contractId, initialContractType);
 			}
 			//判断当前节点是否被标记为首件
-			TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, vos.getPrimaryKeyId()));
+			TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, primaryKeyId));
 			vos.setIsFirst(first != null);
 
 			vos.setChildren(child);
@@ -321,23 +350,31 @@ public class InformationWriteQueryController extends BladeController {
 			@ApiImplicitParam(name = "parentId", value = "父节点,为空则查询第一级节点"),
 			@ApiImplicitParam(name = "contractId", value = "合同段ID", required = true)
 	})
-	public R<List<WbsTreeContractTreeVOS>> queryContractWbsTreeByContractIdAndType(@RequestParam String parentId, @RequestParam String contractId){
+	public R<List<WbsTreeContractTreeVOS>> queryContractWbsTreeByContractIdAndType(@RequestParam String parentId, @RequestParam String contractId, @RequestParam String contractIdRelation){
 		List<WbsTreeContractTreeVOS> rootTreeNode;
 
-		if(com.alibaba.nacos.common.utils.StringUtils.isEmpty(parentId)){
-			//为空,说明初始化
-			//获取根节点
-			rootTreeNode = this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, 1, "0");
+		//获取合同段,检查是否是监理合同段
+		ContractInfo contractInfo = this.contractClient.getContractById(Long.parseLong(contractId));
+		if(new Integer("2").equals(contractInfo.getContractType())){
+			//监理合同段,需要获取关联的施工方合同段根节点数据
+			rootTreeNode = this.wbsTreeContractClient.lazyTree(StringUtils.isNotEmpty(parentId) ? Long.parseLong(parentId) : 0, contractId, contractIdRelation, contractInfo.getContractType());
 		} else {
-			//不为空,获取其下子节点
-			rootTreeNode = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
+			if(com.alibaba.nacos.common.utils.StringUtils.isEmpty(parentId)){
+				//为空,说明初始化
+				//获取根节点
+				rootTreeNode = this.clientTreePublicCodeClient.queryContractWbsTreeByContractIdAndType(contractId, 1, "0");
+			} else {
+				//不为空,获取其下子节点
+				rootTreeNode = this.wbsTreeContractClient.queryContractWbsTreeByContractIdAndType(contractId, 1, parentId);
+			}
 		}
 
 		//其他参数
 		if(rootTreeNode != null && rootTreeNode.size() != 0){
 			rootTreeNode.forEach(vo -> {
+				String primaryKeyId = new Integer("2").equals(contractInfo.getContractType()) ? vo.getId() : vo.getPrimaryKeyId();
 				//获取上传的图纸
-				ContractTreeDrawings drawings = this.contractTreeDrawingsService.queryCurrentNodeDrawings(vo.getPrimaryKeyId());
+				ContractTreeDrawings drawings = this.contractTreeDrawingsService.queryCurrentNodeDrawings(primaryKeyId);
 				if(drawings != null){
 					//主键
 					vo.setDrawingsId(drawings.getId());
@@ -346,7 +383,7 @@ public class InformationWriteQueryController extends BladeController {
 				}
 
 				//判断当前节点是否被标记为首件
-				TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, vo.getPrimaryKeyId()));
+				TreeContractFirst first = this.treeContractFirstService.getOne(Wrappers.<TreeContractFirst>lambdaQuery().eq(TreeContractFirst::getIsDeleted, 0).eq(TreeContractFirst::getWbsNodeId, primaryKeyId));
 				vo.setIsFirst(first != null);
 			});
 		}

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/InformationQueryClientImpl.java

@@ -13,7 +13,7 @@ public class InformationQueryClientImpl implements InformationQueryClient {
     private final IInformationQueryService iInformationQueryService;
 
     @Override
-    public void saveOrUpdateInformationQueryData(BladeUser user, Long wbsId, String fileName, Integer classify, Integer sourceType, Long dataId) {
-        this.iInformationQueryService.saveOrUpdateInformationQueryData(user, wbsId, fileName, classify, sourceType, dataId);
+    public void saveOrUpdateInformationQueryData(Long wbsId, String fileName, Integer classify, Integer sourceType) {
+        this.iInformationQueryService.saveOrUpdateInformationQueryData( wbsId, fileName, classify, sourceType);
     }
 }

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/TaskClientImpl.java

@@ -17,8 +17,8 @@ public class TaskClientImpl implements TaskClient {
     private final ITaskService taskService;
 
     @Override
-    public R<List<Task>> queryTaskListByFormDataId(String ids) {
-        return null;
+    public List<Task> queryTaskListByFormDataId(String formDataIds) {
+        return this.taskService.queryTaskListByFormDataId(formDataIds);
     }
 
     @Override

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

@@ -25,6 +25,10 @@
         <result column="is_need_certification" property="isNeedCertification"/>
         <result column="duty_user" property="dutyUser"/>
         <result column="pdf_file_url" property="pdfFileUrl"/>
+        <result column="sheet_type" property="sheetType"/>
+        <result column="sheet_source" property="sheetSource"/>
+        <result column="drawing_no" property="drawingNo"/>
+        <result column="cite_change_number" property="citeChangeNumber"/>
     </resultMap>
 
     <select id="selectArchiveFileCount" resultMap="archiveFileResultMap">
@@ -35,6 +39,12 @@
         <if test="vo.isCertificationValue != null and vo.isCertificationValue != ''">
             and is_certification = #{vo.isCertificationValue}
         </if>
+        <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=")">
@@ -51,6 +61,12 @@
         <if test="vo.isCertificationValue != null and vo.isCertificationValue != ''">
             and is_certification = #{vo.isCertificationValue}
         </if>
+        <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=")">

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskMapper.java

@@ -30,7 +30,7 @@ import java.util.List;
  */
 public interface TaskMapper extends BaseMapper<Task> {
 
-    List<Task> queryTaskListByFormDataId(@Param("formDataId") String formDataId);
+    Task queryTaskListByFormDataId(@Param("formDataId") String formDataId);
 
     List<Task> queryBatchList(@Param("projectId") String projectId, @Param("contractId") String contractId);
 

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskMapper.xml

@@ -31,7 +31,7 @@
     </resultMap>
 
     <select id="queryTaskListByFormDataId" resultMap="taskResultMap">
-        select id,form_data_id,approval_type from u_task where form_data_id like #{formDataId} group by id
+        select id,form_data_id,process_instance_id,approval_type from u_task where form_data_id like #{formDataId} and status = 1 and is_deleted = 0
     </select>
 
     <select id="queryBatchList" resultMap="taskResultMap">

+ 1 - 3
blade-service/blade-business/src/main/java/org/springblade/business/service/IInformationQueryService.java

@@ -35,14 +35,12 @@ public interface IInformationQueryService extends BaseService<InformationQuery>
 
 	/**
 	 * 保存填报时新增或修改填报资料记录表数据
-	 * @param user 当前操作用户
 	 * @param wbsId 当前填报节点
 	 * @param fileName 文件题名
 	 * @param classify 1施工2质检
 	 * @param sourceType 1原生2数据化
-	 * @param dataId 1原生2数据化
 	 */
-	void saveOrUpdateInformationQueryData(BladeUser user, Long wbsId, String fileName, Integer classify, Integer sourceType, Long dataId);
+	void saveOrUpdateInformationQueryData(Long wbsId, String fileName, Integer classify, Integer sourceType);
 
 	/**
 	 * 获取当前合同段下所有的上报批次

+ 17 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/ArchiveFileServiceImpl.java

@@ -2,6 +2,7 @@ package org.springblade.business.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.vo.ArchiveFileVO;
@@ -10,6 +11,8 @@ import org.springblade.business.service.IArchiveFileService;
 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.springblade.system.feign.IDictBizClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -23,8 +26,11 @@ import java.util.List;
  * @since 2022-07-08
  */
 @Service
+@AllArgsConstructor
 public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, ArchiveFile> implements IArchiveFileService {
 
+	private final IDictBizClient dictBizClient;
+
 	@Override
 	public IPage<ArchiveFileVO> selectArchiveFilePage(ArchiveFileVO vo) {
 		Query query = new Query();
@@ -49,9 +55,20 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
 		//设置分页信息
 		iPage.setTotal(total);
 		List<ArchiveFileVO> pageVoList = JSONArray.parseArray(JSONObject.toJSONString(pageList), ArchiveFileVO.class);
+
+		//获取业务字典
+		List<DictBiz> sheetSourceList = this.dictBizClient.getList("sheet_source", "notRoot").getData();
+
 		pageVoList.forEach(vos -> {
 			vos.setIsApprovalValue(new Integer("0").equals(vos.getStatus()) ? "未上报" : new Integer("1").equals(vos.getStatus()) ? "待审批" : new Integer("2").equals(vos.getStatus()) ? "已审批" : "已废除");
 			vos.setIsCertificationValue(new Integer("1").equals(vos.getIsCertification()) ? "已认证" : "未认证");
+			if(StringUtils.isNotEmpty(vos.getSheetSource())){
+				sheetSourceList.forEach(source -> {
+					if(source.getDictKey().equals(vos.getSheetSource())){
+						vos.setSheetSourceValue(source.getDictValue());
+					}
+				});
+			}
 		});
 
 		return iPage.setRecords(pageVoList);

+ 5 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -12,6 +12,7 @@ import org.springblade.business.mapper.InformationQueryMapper;
 import org.springblade.business.service.IInformationQueryService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springframework.stereotype.Service;
@@ -32,7 +33,9 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
 	private final WbsTreeContractClient wbsTreeContractClient;
 
 	@Override
-	public void saveOrUpdateInformationQueryData(BladeUser user, Long primaryKeyId, String fileName, Integer classify, Integer sourceType, Long dataId) {
+	public void saveOrUpdateInformationQueryData(Long primaryKeyId, String fileName, Integer classify, Integer sourceType) {
+		BladeUser user = AuthUtil.getUser();
+
 		//判断当前填报节点下是否已经存在相应数据
 		InformationQuery oldData = this.baseMapper.getInformationQueryByWbsId(primaryKeyId, classify);
 
@@ -77,7 +80,7 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
 			//是否是试验节点
 			newData.setIsExperiment(contractTree.getIsExpernode());
 			//数据ID
-			newData.setDataId(dataId);
+//			newData.setDataId(dataId);
 			//流程状态,默认未上报
 			newData.setTaskStatus(0);
 			//填报人ID及姓名

+ 17 - 21
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1,20 +1,4 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
-package org.springblade.business.service.impl;
+ package org.springblade.business.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
@@ -78,10 +62,19 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     private final IArchiveFileService archiveFileService;
 
     @Override
-    public List<Task> queryTaskListByFormDataId(String ids) {
-//        String[] idArray = ids.split(",");
-//        return this.baseMapper.queryTaskListByFormDataId();
-        return null;
+    public List<Task> queryTaskListByFormDataId(String formDataIds) {
+        List<Task> result = new ArrayList<>();
+        List<Long> record = new ArrayList<>();
+
+        String[] formDataIdArray = formDataIds.split(",");
+        for(String formDataId : formDataIdArray){
+            Task task = this.baseMapper.queryTaskListByFormDataId(formDataId);
+            if(!record.contains(task.getId())){
+                record.add(task.getId());
+                result.add(task);
+            }
+        }
+        return result;
     }
 
     @Override
@@ -103,6 +96,9 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         if(StringUtils.isNotEmpty(masterTaskId)){
             //结束主流程
             this.newFlowClient.completeApprovalTask(masterTaskId, task.getProcessInstanceId(), "上报人主动废除");
+            //修改主流程状态为3
+            this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 3).eq(Task::getId, task.getId()));
+            //修改业务数据状态为未上报
             this.updateBusinessDataByFormDataId(task, 0);
         }
 

+ 15 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -27,6 +27,21 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     private final IDictBizClient dictBizClient;
 
+    @Override
+    public List<WbsTreeContractTreeVOS> lazyTree(Long parentId, String contractId, String contractIdRelation, Integer type) {
+        List<WbsTreeContractTreeVO> result = this.wbsTreeContractService.lazyTreeTwo(contractIdRelation, parentId, type, contractId);
+
+        List<WbsTreeContractTreeVOS> vos = JSONArray.parseArray(JSONObject.toJSONString(result), WbsTreeContractTreeVOS.class);
+
+        vos.forEach(voData -> {
+            voData.setLeaf(new Integer("6").equals(voData.getDeptCategory()));
+            //检查是否有下级
+            List<WbsTreeContractTreeVO> childs = this.contractInfoService.queryContractWbsTreeByContractIdAndType(voData.getContractIdRelation(), voData.getWbsType(), voData.getKey());
+            voData.setExsitChild(childs == null || childs.size() == 0);
+        });
+        return vos;
+    }
+
     @Override
     public Boolean updateContractNodeParameter(WbsTreeContract node) {
         return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getDeptName, node.getDeptName()).set(WbsTreeContract::getFullName, node.getDeptName()).set(WbsTreeContract::getPartitionCode, node.getPartitionCode()).eq(WbsTreeContract::getPKeyId, node.getPKeyId()));

+ 3 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -41,6 +41,7 @@
         <result column="isStorageNode" property="isStorageNode"/>
         <result column="isDisplayTree" property="isDisplayTree"/>
         <result column="isStorageNode" property="isStorageNode"/>
+        <result column="isBuiltDrawing" property="isBuiltDrawing"/>
     </resultMap>
 
     <update id="updateBatch">
@@ -105,7 +106,8 @@
         major_data_type AS "majorDataType",
         display_hierarchy AS "displayHierarchy",
         is_storage_node AS "isStorageNode",
-        is_upload_file_display_configuration_tree AS "isDisplayTree"
+        is_upload_file_display_configuration_tree AS "isDisplayTree",
+        is_built_drawing AS "isBuiltDrawing"
         FROM m_archive_tree
         WHERE is_deleted = 0
         <if test=" tenantId!=null and tenantId!='' ">

+ 3 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -393,7 +393,7 @@
         dept.id AS "value",
         dept.id AS "key" ,
         dept.parent_id,
-        dept.full_name AS "fullName",
+        IFNULL(dept.full_name,dept.dept_name) AS "fullName",
         dept.tenant_id AS "tenantId",
         dept.contract_id_relation AS "contractIdRelation",
         (SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_contract WHERE parent_id = dept.id and
@@ -405,6 +405,8 @@
         <if test="contractIdRelation != null and contractIdRelation != ''">
             AND contract_id_relation = #{contractIdRelation}
         </if>
+        /* major_data_type = 5是日志类型,日志类型不需要直接在划分树上体现 */
+        AND (major_data_type != 5 or major_data_type is null)
         AND dept.contract_id = #{contractId}
         AND dept.contract_type = #{contractType}
         AND parent_id = #{parentId}