Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

liuyc 3 жил өмнө
parent
commit
5ac4f8486c
23 өөрчлөгдсөн 425 нэмэгдсэн , 113 устгасан
  1. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TableFile.java
  2. 23 12
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TextdictInfo.java
  3. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java
  4. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java
  5. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictDataInfoVO.java
  6. 73 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictInfo_vo.java
  7. 32 0
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleTypeVO.java
  8. 77 38
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  9. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/controller/MaterialProgressController.java
  10. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/NeiWaiYeProgressController.java
  11. 67 26
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  12. 11 8
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExpaileHtml.java
  13. 63 11
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java
  14. 10 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java
  15. 8 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.xml
  16. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  17. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  18. 0 1
      blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java
  19. 17 0
      blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java
  20. 3 0
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java
  21. 14 0
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml
  22. 7 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java
  23. 11 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TableFile.java

@@ -70,7 +70,7 @@ public class TableFile implements Serializable {
 	/**
 	* 附件pdf路径
 	*/
-		private String domainPdfUrl;
+	private String domainPdfUrl;
 
 	/**
 	 * 状态

+ 23 - 12
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TextdictInfo.java

@@ -39,9 +39,7 @@ import lombok.EqualsAndHashCode;
 	@TableName("m_textdict_info")
 	@ApiModel(value = "Dict对象", description = "Dict对象")
 	public class TextdictInfo implements  Serializable {
-
 	private static final long serialVersionUID = 1L;
-
 	@ApiModelProperty("主键id")
 	@TableId(
 			value = "id",
@@ -52,25 +50,38 @@ import lombok.EqualsAndHashCode;
 			using = ToStringSerializer.class
 	)
 	/**
-	* 字典名称
+	* 名称
 	*/
-		private String dictValue;
+		private String name;
 	/**
-	* 排序
+	* 类型
 	*/
-		private Integer sort;
+		private Integer type;
 	/**
-	* 字段Id
+	* html 坐标
 	*/
-		private Long comId;
+		private String trTd;
 	/**
-	* 是否默认值
+	*  xy 坐标
 	*/
-		private Integer isDefult;
+		private String xy;
 
 	/**
-	 * 是否默认值
+	 * 表单Id
 	 */
-	private Integer isDeleted;
+	private String tabId;
 
+	/**
+	 * 元素key
+	 */
+	private String colKey;
+	/**
+	 * 签字人角色
+	 */
+	private String sigRoleId;
+
+	/**
+	 * 是否删除
+	 */
+	private Integer isDeleted;
 }

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -190,7 +190,7 @@ public class WbsTreeContract extends BaseEntity {
      * 用户端是否隐藏
      */
     @ApiModelProperty(value = "用户端是否隐藏")
-    private String isBussShow;
+    private Integer isBussShow;
 
 
     @ApiModelProperty(value = "原id,如果当前字段有数据则说明这条数据是复制节点")

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

@@ -53,7 +53,7 @@ public interface WbsTreeContractClient {
     List<WbsTreeContract> queryContractSubmitWbsTreeByContractId(@RequestParam String contractId);
 
     @PostMapping(API_PREFIX + "/queryChildByParentId")
-    List<WbsTreeContract> queryChildByParentId(@RequestBody WbsTreeContract treeNode, @RequestParam String queryTable);
+    List<WbsTreeContract> queryChildByParentId(@RequestBody WbsTreeContract treeNode, @RequestParam String queryTable, @RequestParam String classify);
 
     @PostMapping(API_PREFIX + "/saveBatch")
     Boolean saveBatch(@RequestBody List<WbsTreeContract> list);

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictDataInfoVO.java

@@ -52,6 +52,6 @@ public class TextdictDataInfoVO implements Serializable  {
 
 
 	@ApiModelProperty(value = "字段Id")
-	private List<TextdictInfo> textInfo;
+	private List<TextdictInfo_vo> textInfo;
 
 }

+ 73 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TextdictInfo_vo.java

@@ -0,0 +1,73 @@
+/*
+ *      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.manager.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 参数信息表实体类
+ *
+ * @author BladeX
+ * @since 2022-06-17
+ */
+	@Data
+	@ApiModel(value = "Dict对象", description = "Dict对象")
+	public class TextdictInfo_vo implements  Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("主键id")
+	@TableId(
+			value = "id",
+			type = IdType.ASSIGN_ID
+	)
+	private Long id;
+	@JsonSerialize(
+			using = ToStringSerializer.class
+	)
+	/**
+	* 字典名称
+	*/
+		private String dictValue;
+	/**
+	* 排序
+	*/
+		private Integer sort;
+	/**
+	* 字段Id
+	*/
+		private Long comId;
+	/**
+	* 是否默认值
+	*/
+		private Integer isDefult;
+
+	/**
+	 * 是否默认值
+	 */
+	private Integer isDeleted;
+
+}

+ 32 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/vo/RoleTypeVO.java

@@ -0,0 +1,32 @@
+package org.springblade.system.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RoleTypeVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * roleId
+     */
+    private String label;
+
+
+    /**
+     *
+     */
+    private String value;
+
+}
+

+ 77 - 38
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -223,7 +223,7 @@ public class InformationWriteQueryController extends BladeController {
 	public R<Boolean> copyContractNodeSubmitBusinessData(@RequestBody CopyContractTreeNodeVO copyVO){
 		if(StringUtils.isNotEmpty(copyVO.getNeedCopyPrimaryKeyId()) && copyVO.getCopyBatchToPaths().size() > 0){
 			//获取被复制节点的表格
-			List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyVO.getNeedCopyPrimaryKeyId()), "queryTable");
+			List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyVO.getNeedCopyPrimaryKeyId()), "queryTable", "");
 			if(tableList != null && tableList.size() > 0){
 				//获取表格的业务数据
 				Map<String, List<List<Map<String, Object>>>> tableBusinessDataMap = new HashMap<>();
@@ -248,7 +248,7 @@ public class InformationWriteQueryController extends BladeController {
 				List<String> saveSqlList = new ArrayList<>();
 				for(CopyContractTreeNodeVO.CopyBatch copyBatch : batchPathList){
 					//获取表格信息
-					List<WbsTreeContract> copyToTableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyBatch.getPrimaryKeyId()), "queryTable");
+					List<WbsTreeContract> copyToTableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyBatch.getPrimaryKeyId()), "queryTable", "");
 					if(copyToTableList != null && copyToTableList.size() > 0){
 						//检测是否表格是否存在差异(如果存在oldId则优先使用这个字段,不存在时才使用id)
 						List<WbsTreeContract> remainTableList = copyToTableList.stream().filter(toTable -> tableBusinessDataMap.containsKey(StringUtils.isNotEmpty(toTable.getOldId()) ? toTable.getOldId() : toTable.getId().toString())).collect(Collectors.toList());
@@ -352,7 +352,7 @@ public class InformationWriteQueryController extends BladeController {
 					//如果不匹配,默认为未填报
 					status = "1";
 					//查询表格
-					List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable");
+					List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable", classify);
 					if(tableList != null && tableList.size() > 0){
 						for(WbsTreeContract table : tableList){
 							if(new Integer("2").equals(table.getIsTabPdf())){
@@ -366,7 +366,7 @@ public class InformationWriteQueryController extends BladeController {
 			}
 		} else {
 			//查询表格
-			List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable");
+			List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId), "queryTable", classify);
 			if(tableList != null && tableList.size() > 0){
 				for(WbsTreeContract table : tableList){
 					if(new Integer("2").equals(table.getIsTabPdf())){
@@ -591,6 +591,7 @@ public class InformationWriteQueryController extends BladeController {
 		if("1".equals(vo.getCopyType())){
 			if(StringUtils.isNotEmpty(vo.getNeedCopyPrimaryKeyId())){
 				WbsTreeContract parent = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getParentPrimaryKeyId());
+
 				//重塑关键信息
 				Map<Long,Long> oldToNewIdMap = new HashMap<>();
 				allList.forEach(node -> oldToNewIdMap.put(node.getId(), SnowFlakeUtil.getId()));
@@ -621,6 +622,14 @@ public class InformationWriteQueryController extends BladeController {
 					}
 					newData.setCreateTime(new Date());
 					newData.setUpdateTime(new Date());
+					//初始化是否显示表格,默认显示
+					newData.setIsBussShow("1");
+					//初始化表格是否上传附件,默认未上传
+					newData.setTabFileType(1);
+					//初始化单表是否可以预览,默认不能
+					newData.setIsTabPdf(1);
+					//初始化PDF路径
+					newData.setPdfUrl(null);
 					newData.setCreateUser(AuthUtil.getUserId());
 					//保存到集合中
 					saveList.add(newData);
@@ -671,6 +680,14 @@ public class InformationWriteQueryController extends BladeController {
 						newData.setCreateTime(new Date());
 						newData.setUpdateTime(new Date());
 						newData.setCreateUser(AuthUtil.getUserId());
+						//初始化是否显示表格,默认显示
+						newData.setIsBussShow("1");
+						//初始化表格是否上传附件,默认未上传
+						newData.setTabFileType(1);
+						//初始化单表是否可以预览,默认不能
+						newData.setIsTabPdf(1);
+						//初始化PDF路径
+						newData.setPdfUrl(null);
 
 						//重塑父节点关联关系
 						String ancestors = newData.getAncestors();
@@ -732,7 +749,7 @@ public class InformationWriteQueryController extends BladeController {
 		parentList.forEach(parent -> {
 			if(!new Integer("6").equals(parent.getDeptCategory())){
 				//查询子节点
-				List<WbsTreeContract> childs = this.wbsTreeContractClient.queryChildByParentId(parent, "notQueryTable");
+				List<WbsTreeContract> childs = this.wbsTreeContractClient.queryChildByParentId(parent, "notQueryTable", "");
 				if(childs != null && childs.size() > 0){
 					//添加入结果集
 					childList.addAll(childs);
@@ -741,7 +758,7 @@ public class InformationWriteQueryController extends BladeController {
 				}
 			} else {
 				//工序,则查询对应的表格数据
-				List<WbsTreeContract> childs = this.wbsTreeContractClient.queryChildByParentId(parent, "queryTable");
+				List<WbsTreeContract> childs = this.wbsTreeContractClient.queryChildByParentId(parent, "queryTable", "");
 				if(childs != null && childs.size() > 0){
 					//添加入结果集
 					childList.addAll(childs);
@@ -806,7 +823,7 @@ public class InformationWriteQueryController extends BladeController {
 			//获取当前父节点下所有工序节点及填报资料
 			List<QueryProcessDataVO> queryDataResult;
 			if(new Integer("2").equals(contractInfo.getContractType())){
-				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 1, contractIdRelation);
+				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 2, contractIdRelation);
 			} else {
 				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 1, contractId);
 			}
@@ -1010,12 +1027,8 @@ public class InformationWriteQueryController extends BladeController {
 			//todo 当前节点及其子节点
 			//当前节点及其子节点时,半选说明其下的子节点并不是全部选中的,所以这时候只需要根据全选的查询其全部子节点即可
 			if(allSelectedNodeList.size() > 0){
-				//获取主键
-				List<String> allSelectedList = allSelectedNodeList.stream().map(AddContractTreeNodeVO.Node::getPrimaryKeyId).distinct().collect(Collectors.toList());
-				//查询对应数据
-				selectedNodeList = this.wbsTreePrivateClient.queryByPKeyIds(allSelectedList);
-				//剔除与当前操作节点相同的ID
-				selectedNodeList.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()));
+				//查询数据
+				selectedNodeList = this.unifiedCode(allSelectedNodeList, treeContract);
 
 				//全选的集合则进一步向下查询
 				List<WbsTreePrivate> childList = new ArrayList<>();
@@ -1042,16 +1055,22 @@ public class InformationWriteQueryController extends BladeController {
 
 		} else {
 			//todo 仅当前节点操作
-			if(halfSelectedNodeList.size() > 0){
-				//获取主键
-				List<String> halfSelectedList = halfSelectedNodeList.stream().map(AddContractTreeNodeVO.Node::getPrimaryKeyId).distinct().collect(Collectors.toList());
+			if(allSelectedNodeList.size() > 0){
 				//查询数据
-				selectedNodeList = this.wbsTreePrivateClient.queryByPKeyIds(halfSelectedList);
-				//剔除与当前操作节点相同的ID
-				selectedNodeList.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()));
+				selectedNodeList = this.unifiedCode(allSelectedNodeList, treeContract);
+
+				//检查当前操作的节点是否是填报节点,如果是则需要查询相关联表格
+				List<WbsTreePrivate> submitNodeList = selectedNodeList.stream().filter(treePrivate -> Arrays.asList("1,2,3,4".split(",")).contains(treePrivate.getMajorDataType().toString())).distinct().collect(Collectors.toList());
+
+				List<WbsTreePrivate> childList = new ArrayList<>();
+				if(submitNodeList.size() > 0){
+					this.foreachQueryChild(submitNodeList, childList);
+					//将表格数据设置
+					selectedNodeList.addAll(childList);
+				}
 			}
 			//处理半选
-			this.disposeHalfSelectList(vo, allSelectedNodeList, selectedNodeList);
+			this.disposeHalfSelectList(vo, halfSelectedNodeList, selectedNodeList);
 
 		}
 
@@ -1071,8 +1090,10 @@ public class InformationWriteQueryController extends BladeController {
 
 				//重塑pKeyId、id和parentId
 				newData.setPKeyId(SnowFlakeUtil.getId());
-				newData.setId(OldIdToNewIdMap.containsKey(half.getId()) ? OldIdToNewIdMap.get(half.getId()) : SnowFlakeUtil.getId());
-				newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) ? treeContract.getId() : SnowFlakeUtil.getId());
+				if(new Integer("1").equals(half.getType())){
+					newData.setId(OldIdToNewIdMap.containsKey(half.getId()) ? OldIdToNewIdMap.get(half.getId()) : SnowFlakeUtil.getId());
+				}
+				newData.setParentId(OldIdToNewIdMap.containsKey(half.getParentId()) ? OldIdToNewIdMap.get(half.getParentId()) : treeContract.getId().equals(half.getParentId()) || treeContract.getOldId().equals(half.getParentId().toString()) ? treeContract.getId() : SnowFlakeUtil.getId());
 				//记录旧ID
 				newData.setOldId(half.getId().toString());
 				//设置合同段等信息
@@ -1082,6 +1103,16 @@ public class InformationWriteQueryController extends BladeController {
 				newData.setContractType(treeContract.getContractType());
 				newData.setCreateTime(new Date());
 
+				//设置节点名称
+				for(AddContractTreeNodeVO.Node addVO : selectList){
+					if(half.getPKeyId().toString().equals(addVO.getPrimaryKeyId())){
+						if(StringUtils.isNotEmpty(addVO.getNodeName())){
+							newData.setFullName(addVO.getNodeName());
+						}
+						break;
+					}
+				}
+
 				//重塑父节点关联关系
 				String ancestors = newData.getAncestors();
 				if(StringUtils.isNotEmpty(ancestors)){
@@ -1126,6 +1157,17 @@ public class InformationWriteQueryController extends BladeController {
 		return this.saveOrCopyNodeTree(saveList, saveLedger);
 	}
 
+	private List<WbsTreePrivate> unifiedCode(List<AddContractTreeNodeVO.Node> allSelectedNodeList, WbsTreeContract treeContract){
+		//获取主键
+		List<String> halfSelectedList = allSelectedNodeList.stream().map(AddContractTreeNodeVO.Node::getPrimaryKeyId).distinct().collect(Collectors.toList());
+		//查询数据
+		List<WbsTreePrivate> selectedNodeList = this.wbsTreePrivateClient.queryByPKeyIds(halfSelectedList);
+		//剔除与当前操作节点相同的ID
+		selectedNodeList.removeIf(wbsTreePrivate -> treeContract.getId().equals(wbsTreePrivate.getId()) || treeContract.getOldId().equals(wbsTreePrivate.getId().toString()));
+
+		return selectedNodeList;
+	}
+
 	@NotNull
 	private R<Boolean> saveOrCopyNodeTree(List<WbsTreeContract> saveList, List<ConstructionLedger> saveLedger) {
 		if(saveList.size() > 0){
@@ -1169,21 +1211,18 @@ public class InformationWriteQueryController extends BladeController {
 	 */
 	private void foreachQueryChild(List<WbsTreePrivate> parentList, List<WbsTreePrivate> childList){
 		parentList.forEach(parent -> {
-			if(!new Integer("6").equals(parent.getDeptCategory())){
-				//查询子节点
-				List<WbsTreePrivate> childs = this.wbsTreePrivateClient.queryChildByParentId(parent);
-				if(childs != null && childs.size() > 0){
-					//添加入结果集
-					childList.addAll(childs);
-					//还有子级,继续向下
-					this.foreachQueryChild(childs, childList);
-				}
-			} else {
-				//说明是工序,查询这个节点下是否存在表格数据
-				List<WbsTreePrivate> exlTables = this.wbsTreePrivateClient.queryExcelTableByParentId(parent);
-				if(exlTables != null && exlTables.size() > 0){
-					childList.addAll(exlTables);
-				}
+			//查询子节点
+			List<WbsTreePrivate> childs = this.wbsTreePrivateClient.queryChildByParentId(parent);
+			if(childs != null && childs.size() > 0){
+				//添加入结果集
+				childList.addAll(childs);
+				//还有子级,继续向下
+				this.foreachQueryChild(childs, childList);
+			}
+			//查询这个节点下是否存在表格数据
+			List<WbsTreePrivate> exlTables = this.wbsTreePrivateClient.queryExcelTableByParentId(parent);
+			if(exlTables != null && exlTables.size() > 0){
+				childList.addAll(exlTables);
 			}
 		});
 	}
@@ -1372,7 +1411,7 @@ public class InformationWriteQueryController extends BladeController {
 			//获取当前父节点下所有工序节点及填报资料
 			List<QueryProcessDataVO> queryDataResult;
 			if(new Integer("2").equals(contractInfo.getContractType())){
-				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 1, contractIdRelation);
+				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 2, contractIdRelation);
 			} else {
 				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 1, contractId);
 			}

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/MaterialProgressController.java

@@ -42,7 +42,7 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
- * 点赞记录表 控制器
+ * 资料进度 控制器
  *
  * @author BladeX
  * @since 2022-06-21
@@ -154,7 +154,7 @@ public class MaterialProgressController extends BladeController {
             nodes.setWbsType(node.getWbsType());
 
             //检查是否还有下级
-            List<WbsTreeContract> childList = this.wbsTreeContractClient.queryChildByParentId(nodes, "");
+            List<WbsTreeContract> childList = this.wbsTreeContractClient.queryChildByParentId(nodes, "noeQueryTable", "");
 
             //设置参数
             reVO.setTreeMaterialProgressList("0".equals(node.getParentId().toString()) ? contract.getContractName() : node.getTitle(), node.getId().toString(), node.getPrimaryKeyId(), contractId, standingBookNotAmount, standingBookEndAmount,

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

@@ -53,7 +53,7 @@ public class NeiWaiYeProgressController {
             List<NeiWaiYeProgressVO> result = new ArrayList<>();
 
             //获取当前节点的子节点
-            List<WbsTreeContract> childList = this.wbsTreeContractClient.queryChildByParentId(node, "");
+            List<WbsTreeContract> childList = this.wbsTreeContractClient.queryChildByParentId(node, "noeQueryTable", "");
 
             //获取当前节点下的所有填报节点
             List<QueryProcessDataVO> queryProcessDataVOList;

+ 67 - 26
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -8,14 +8,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.itextpdf.html2pdf.ConverterProperties;
-import com.itextpdf.html2pdf.HtmlConverter;
 import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
 import com.itextpdf.io.font.FontProgram;
 import com.itextpdf.io.font.FontProgramFactory;
-import com.itextpdf.kernel.geom.PageSize;
-import com.itextpdf.kernel.pdf.PdfDocument;
-import com.itextpdf.kernel.pdf.PdfPage;
-import com.itextpdf.kernel.pdf.PdfWriter;
 import com.itextpdf.layout.font.FontProvider;
 import com.spire.xls.Workbook;
 import com.spire.xls.Worksheet;
@@ -44,7 +39,6 @@ import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.unit.FileUtils;
 import org.springblade.manager.unit.HtmlToPdf;
-import org.springblade.manager.unit.PdfConvertA4Utils;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.wrapper.ExcelTabWrapper;
 import org.springblade.resource.feign.CommonFileClient;
@@ -186,6 +180,9 @@ public class ExcelTabController extends BladeController {
     @ApiOperationSupport(order = 5)
     @ApiOperation(value = "修改", notes = "传入excelTab")
     public R update(@Valid @RequestBody ExcelTab excelTab) {
+        if(excelTab.getFileUrl().equals("")||excelTab.getFileUrl().equals("null")){
+            excelTab.setFileType(2);
+        }
         return R.status(excelTabService.updateById(excelTab));
     }
 
@@ -643,7 +640,7 @@ public class ExcelTabController extends BladeController {
                 dataMap2.put(k,lastStr);
             }else{
                 if(!(dataInfo2.getString(dataMap.get(k))).equals("")) {
-                    dataMap2.put(k, dataInfo2.getString(dataMap.get(k)));
+                    dataMap2.put(k, dataInfo2.getString(dataMap.get(k))+"__"+dataMap.get(k).split("__")[1]);
                 }
             }
         }
@@ -678,12 +675,6 @@ public class ExcelTabController extends BladeController {
             WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                     .eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,contractId));
 
-
-            UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.in("p_key_id",pkeyId);
-            updateWrapper.set("is_tab_pdf",2);
-            wbsTreeContractService.update(updateWrapper);
-
             //huangjn 保存成功后调用生成资料查询列表数据
             this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "文件名称(后面再完善)", Integer.parseInt(classify), 2);
         }else{ //更新
@@ -695,6 +686,11 @@ public class ExcelTabController extends BladeController {
             sqlInfo = sqlInfo + " where p_key_id="+pkeyId;
         }
 
+        UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.in("p_key_id",pkeyId);
+        updateWrapper.set("is_tab_pdf",2);
+        wbsTreeContractService.update(updateWrapper);
+
         jdbcTemplate.execute(sqlInfo);
         this.getBussPdfInfo(Long.parseLong(pkeyId));
        }
@@ -1111,7 +1107,7 @@ public class ExcelTabController extends BladeController {
     })
     public R getBussDataInfo(Long pkeyId) throws FileNotFoundException {
 
-        Map<String, String> reData = new HashMap<>();
+        Map<String, Object> reData = new HashMap<>();
 
         WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
@@ -1159,7 +1155,7 @@ public class ExcelTabController extends BladeController {
                     String myData = mysqlData.get(key[0])+"";
                     System.out.println(myData);
                     if(StringUtils.isNotEmpty(myData)&& !myData.equals("null")){
-                        if(myData.indexOf(",")>=0){
+                        if(myData.indexOf(",")>=0 && data.html().indexOf("el-date-picker")<0){
                             String [] dataVal = myData.split(",");
                             for(String val:dataVal){
                                 if(key[1].equals(val.split("__")[1])){
@@ -1167,7 +1163,15 @@ public class ExcelTabController extends BladeController {
                                 }
                             }
                         }else{
-                            reData.put(keyData,myData);
+                            if(key[1].equals(myData.split("__")[1])) {
+                                if(data.html().indexOf("el-date-picker")>=0 && reData.containsKey("pickerKey")){
+                                    String pickerKey = reData.get("pickerKey")+","+keyData;
+                                    reData.put("pickerKey",pickerKey);
+                                }else{
+                                    reData.put("pickerKey",keyData);
+                                }
+                                reData.put(keyData, myData.split("__")[0]);
+                            }
                         }
                     }
                 }
@@ -1228,7 +1232,7 @@ public class ExcelTabController extends BladeController {
                     String myData = mysqlData.get(key[0])+"";
                     System.out.println(myData);
                     if(StringUtils.isNotEmpty(myData)&& !myData.equals("null")){
-                        if(myData.indexOf(",")>=0){
+                        if(myData.indexOf(",")>=0&&data.html().indexOf("el-date-picker")<0){
                             String [] dataVal = myData.split(",");
                             for(String val:dataVal){
                                 if(key[1].equals(val.split("__")[1])){
@@ -1236,7 +1240,15 @@ public class ExcelTabController extends BladeController {
                                 }
                             }
                         }else{
-                            data.empty().append(myData);
+                            if(key[1].equals(myData.split("__")[1])) {
+                                if(myData.indexOf(".000Z")>=0&&myData.indexOf("T")>=0){
+                                    String dataStr[] = myData.split("T")[0].split("-");
+                                    String dataVal = StringUtil.format("{}年{}月{}日", new Object[]{dataStr[0], dataStr[1], Integer.parseInt(dataStr[2])+1});
+                                    data.empty().append(dataVal);
+                                }else{
+                                    data.empty().append(myData.split("__")[0]);
+                                }
+                            }
                         }
                     }
                 }
@@ -1282,7 +1294,7 @@ public class ExcelTabController extends BladeController {
             tableFileService.saveOrUpdate(tableFile);
         }
 
-        List<TableFile> tableFileList = tableFileService.getBaseMapper().selectList(Wrappers.<TableFile>query().lambda().eq(TableFile::getTabId, pkeyId));
+        List<TableFile> tableFileList = tableFileService.getBaseMapper().selectList(Wrappers.<TableFile>query().lambda().eq(TableFile::getTabId, pkeyId).eq(TableFile::getIsDeleted,0));
         tableFileList.sort(Comparator.comparing(TableFile::getType));
 
         //
@@ -1313,6 +1325,7 @@ public class ExcelTabController extends BladeController {
         WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
         List<WbsTreeContract> wbsTreeContractList = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>query().lambda().eq(WbsTreeContract::getId,wbsTreeContract.getId()).eq(WbsTreeContract::getContractId,wbsTreeContract.getContractId()));
+
         long newPkId = SnowFlakeUtil.getId();
         Long  id = wbsTreeContract.getId();
         wbsTreeContract.setPKeyId(newPkId);
@@ -1326,13 +1339,41 @@ public class ExcelTabController extends BladeController {
         wbsTreeContract.setDeptName(deptName);
         wbsTreeContract.setIsCopeTab(2);
         wbsTreeContract.setIsTabPdf(1); // pdf 不能预览
-        wbsTreeContract.setIsBussShow("1"); // 是否隐藏表
+        wbsTreeContract.setIsBussShow(1); // 是否隐藏表
         wbsTreeContract.setTabFileType(1);//没有上传附件
-        wbsTreeContractService.save(wbsTreeContract);
+        wbsTreeContract.setPdfUrl("");
+
 
+        String tabName = wbsTreeContract.getInitTableName();
         // 复制表数据
+        String querySql = "select * from "+tabName+" where p_key_id="+pkeyId ;
+        Map<String, Object> dataMap2 = jdbcTemplate.queryForMap(querySql);
 
+        dataMap2.remove("p_key_id");
+        dataMap2.remove("id");
 
+        // sql 组装
+        String sqlInfo="";
+
+            sqlInfo = "INSERT INTO "+tabName+" ( ";
+
+            String keyStr = "id,p_key_id,";
+            String valStr = SnowFlakeUtil.getId() + ","+wbsTreeContract.getPKeyId() + ",";
+
+            for (String keys : dataMap2.keySet()){
+                if(!(dataMap2.get(keys)+"").equals("null")){
+                    keyStr += keys+",";
+                    valStr += "'"+dataMap2.get(keys)+"',";
+                }
+            }
+            keyStr=keyStr.substring(0,keyStr.lastIndexOf(","));
+            valStr=valStr.substring(0,valStr.lastIndexOf(","));
+
+            sqlInfo = sqlInfo + keyStr+") VALUES (" +valStr +")";
+
+            //huangjn 保存成功后调用生成资料查询列表数据
+            jdbcTemplate.execute(sqlInfo);
+        wbsTreeContractService.save(wbsTreeContract);
         return R.data("成功");
     }
 
@@ -1368,20 +1409,20 @@ public class ExcelTabController extends BladeController {
         NewBladeFile newBladeFile = new NewBladeFile();
         if(fileExtension.contains("xlsx")){
             newBladeFile = this.commonFileClient.excelToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("xls")){
             newBladeFile = this.commonFileClient.excelToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("docx")){
             newBladeFile = this.commonFileClient.wordToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("png") || file.getOriginalFilename().contains("jpg")){
             newBladeFile = this.commonFileClient.pngOrJpgToPdf(file);
-
+            tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
         } else if(fileExtension.contains("pdf")){
             tableFile.setDomainPdfUrl(bladeFile1.getLink());
         }
-        tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
+
         tableFile.setStatus("finished");
         tableFileService.save(tableFile);
 

+ 11 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExpaileHtml.java

@@ -4,15 +4,14 @@ import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.IoUtil;
-import org.springblade.core.tool.utils.ResourceUtil;
+import org.springblade.core.tool.utils.*;
 import org.springblade.manager.service.IExctabCellService;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -20,12 +19,16 @@ import java.util.regex.Pattern;
 public  class ExpaileHtml {
 
    // private final IExctabCellService exctabCellService;
+/*
+    public static void main(String[] args) throws IOException {
+        *//*String thmlUrl = "/Users/hongchuangyanfa/Desktop/1539066383856304128.html" ;
+        expailHtmlInfo(thmlUrl);*//*
+        String sql ="2022-08-15T16:00:00.000Z";
+        String dataStr[] = sql.split("T")[0].split("-");
+        System.out.println(StringUtil.format("{}年{}月{}日", new Object[]{dataStr[0], dataStr[1], Integer.parseInt(dataStr[2])+1}) );
+
+    }*/
 
- /*   public static void main(String[] args) throws IOException {
-        String thmlUrl = "/Users/hongchuangyanfa/Desktop/1539066383856304128.html" ;
-        expailHtmlInfo(thmlUrl);
-    }
-*/
     // 清表上传解析方案
     public  static void expailHtmlInfo(String thmlUrl) throws FileNotFoundException {
 

+ 63 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.manager.controller;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -29,15 +31,14 @@ import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.IoUtil;
-import org.springblade.core.tool.utils.ResourceUtil;
+import org.springblade.core.tool.utils.*;
 import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.vo.TextdictDataInfoVO;
+import org.springblade.manager.vo.TextdictInfo_vo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -49,7 +50,10 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 参数信息表 控制器
@@ -182,10 +186,11 @@ public class TextdictInfoController extends BladeController {
 		}else if(textdictInfo.getTextId().equals("textarea")){ // 文本域
 			int rowspan = element.attr("ROWSPAN").equals("") ? 0 : Integer.parseInt(element.attr("ROWSPAN"));
 			//@focus='getInformation("+oncklickText+")'
-			element.empty().append("<el-input :rows="+rowspan*2+"  type='textarea' v-model="+vmode+"  @focus='getInformation("+oncklickText+")'   keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'  > </el-input>");
+			element.empty().append("<el-input :rows="+rowspan*2+"  type='textarea' placeholder="+placeholder+" v-model="+vmode+"    keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'  > </el-input>");
+			element.children().get(0).attr("@focus","getInformation("+oncklickText+")");
 		}else if(textdictInfo.getTextId().equals("select")){ // 下拉框
 			String selectText = " <el-select v-model="+vmode+" placeholder='请选择'>"; //v-model="+keyname+"
-			List<TextdictInfo> optionList = textdictInfo.getTextInfo();
+			List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
 			if(optionList!=null && optionList.size()>=1){
 				for (int i= 0 ; i<optionList.size();i++)
 				selectText +="<el-option  :key='"+i+"' :label='"+optionList.get(i).getDictValue()+"'   :value='"+i+"' > </el-option>";
@@ -195,7 +200,7 @@ public class TextdictInfoController extends BladeController {
 		}else if(textdictInfo.getTextId().equals("radio")){ // 单选按钮
 
 			String radioText = "<template>";
-			List<TextdictInfo> optionList = textdictInfo.getTextInfo();
+			List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
 			if(optionList!=null && optionList.size()>=1){
 				for (int i= 0 ; i<optionList.size();i++)
 					radioText +=" <el-radio  label="+i+">"+optionList.get(i).getDictValue()+"</el-radio>";
@@ -204,23 +209,70 @@ public class TextdictInfoController extends BladeController {
 			element.empty().append(radioText);
 		}else if(textdictInfo.getTextId().equals("checkbox")){ // 多选框
 			String checkbox = "";
-			List<TextdictInfo> optionList = textdictInfo.getTextInfo();
+			List<TextdictInfo_vo> optionList = textdictInfo.getTextInfo();
 			if(optionList!=null && optionList.size()>=1){
 				for (int i= 0 ; i<optionList.size();i++)
 					checkbox +="<el-checkbox>"+optionList.get(i).getDictValue()+"</el-checkbox>";
 			}
 			element.empty().append(checkbox);
 		}else if(textdictInfo.getTextId().equals("date")){ // 日期
-			element.empty().append("<el-date-picker v-model="+vmode+" type='date' format='YYYY年MM月DD日' @focus='getInformation("+oncklickText+")' placeholder="+placeholder+" keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'   placeholder='"+placeholder+"'> </el-date-picker>");
+			element.empty().append("<el-date-picker v-model="+vmode+" type='date' format='YYYY年MM月DD日' placeholder="+placeholder+" keyname="+keyname+" weighing="+weighing+"  @contextmenu.prevent.native='RightClick("+parm+")' trIndex="+trindex+" tdIndex="+tdindex+"  x1="+x1+" x2="+x2+" y1="+y1+" y2="+y2+" style='width:100%;height:100%'   placeholder='"+placeholder+"'> </el-date-picker>");
+			element.children().get(0).attr("@focus","getInformation("+oncklickText+")");
 		}else if(textdictInfo.getTextId().equals("daterange")){ // 时间段
-			element.empty().append("<el-date-picker  type='date' format='YYYY年MM月DD日'></el-date-picker> 至 <el-date-picker type='date' format='YYYY年MM月DD日' ></el-date-picker>");
+			element.empty().append("<el-date-picker  v-model="+vmode+" type='datetimerange'  start-placeholder='开始日期'  end-placeholder='结束日期' format='YYYY年MM月DD日' >");
+			element.children().get(0).attr("keyname",keyname);
 		}
 
 		File writefile = new File(wbsTreePrivate.getHtmlUrl());
 		FileUtil.writeToFile(writefile, doc.html(), Boolean.parseBoolean("UTF-8"));
 
 		return R.success("操作成功");
-
 	}
 
+	/**
+	 *保存电签
+	 */
+	@PostMapping("/save_sigInfo")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
+	public R<String> saveSigInfo(@Valid @RequestBody JSONObject dataInfo) throws IOException {
+
+		JSONArray jsonArray = dataInfo.getJSONArray("dataInfo");
+		Long tableId = jsonArray.getJSONObject(0).getLong("tabId");
+
+		WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.getByPKeyId(tableId);
+		// 读取html页面信息
+		File file1 = ResourceUtil.getFile(wbsTreePrivate.getHtmlUrl());
+		String htmlString =  IoUtil.readToString(new FileInputStream(file1));
+		// 样式集合
+		Document doc = Jsoup.parse(htmlString);
+		//解析
+		Element table = doc.select("table").first();
+		Elements trs = table.select("tr");
+
+		List<TextdictInfo> textdictInfos = new ArrayList<>();
+
+		for (int i =0 ; i<jsonArray.size();i++){
+			JSONObject jsonObject = jsonArray.getJSONObject(i);
+			TextdictInfo textdictInfo = new TextdictInfo();
+			String[] trtd = jsonObject.getString("trTd").split("_");
+			Element element = trs.get(Integer.parseInt(trtd[0])).select("td").get(Integer.parseInt(trtd[1]));
+
+			String x1 = element.children().get(0).attr("x1");
+			String x2 = element.children().get(0).attr("x2");
+			String y1 = element.children().get(0).attr("y1");
+			String y2 = element.children().get(0).attr("y2");
+			String id = element.children().get(0).attr("keyname");
+			textdictInfo.setName("电签位置配置");
+			textdictInfo.setType(2);
+			textdictInfo.setColKey(id);
+			textdictInfo.setSigRoleId(jsonObject.getString("sigRoleId"));
+			textdictInfo.setTrTd(jsonObject.getString("trTd"));
+			textdictInfo.setTabId(jsonObject.getString("tabId"));
+			textdictInfo.setIsDeleted(1);
+			textdictInfos.add(textdictInfo);
+		}
+		textdictInfoService.saveOrUpdateBatch(textdictInfos);
+		return R.success("操作成功");
+	}
 }

+ 10 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -2,6 +2,8 @@ package org.springblade.manager.feign;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.mixsmart.utils.StringUtils;
@@ -76,12 +78,17 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
     }
 
     @Override
-    public List<WbsTreeContract> queryChildByParentId(WbsTreeContract treeNode, String queryTable) {
+    public List<WbsTreeContract> queryChildByParentId(WbsTreeContract treeNode, String queryTable, String classify) {
         if ("queryTable".equals(queryTable)) {
+            LambdaQueryWrapper<WbsTreeContract> wrapper = Wrappers.lambdaQuery();
+            wrapper.eq(WbsTreeContract::getParentId, treeNode.getId()).eq(WbsTreeContract::getContractId, treeNode.getContractId()).eq(WbsTreeContract::getType, "2");
+            if(StringUtils.isNotEmpty(classify)){
+                wrapper.in(WbsTreeContract::getTableType, "1".equals(classify) ? Arrays.asList("1,2,3".split(",")) : Arrays.asList("4,5,6".split(",")));
+            }
             //查询表格
-            return this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, treeNode.getId()).eq(WbsTreeContract::getContractId, treeNode.getContractId()).eq(WbsTreeContract::getType, "2"));
+            return this.wbsTreeContractService.list(wrapper);
         } else {
-            return this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, treeNode.getId()).eq(WbsTreeContract::getContractId, treeNode.getContractId()).eq(WbsTreeContract::getType, "1").eq(WbsTreeContract::getWbsType, treeNode.getWbsType()));
+            return this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, treeNode.getId()).eq(WbsTreeContract::getContractId, treeNode.getContractId()).eq(WbsTreeContract::getType, "1"));
         }
     }
 

+ 8 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TextdictInfoMapper.xml

@@ -6,13 +6,16 @@
     <resultMap id="textdictInfoResultMap" type="org.springblade.manager.entity.TextdictInfo">
         <result column="id" property="id"/>
         <result column="is_deleted" property="isDeleted"/>
-        <result column="dict_value" property="dictValue"/>
-        <result column="sort" property="sort"/>
-        <result column="com_id" property="comId"/>
-        <result column="is_defult" property="isDefult"/>
+        <result column="name" property="name"/>
+        <result column="type" property="type"/>
+        <result column="tr_td" property="trTd"/>
+        <result column="x_y" property="xy"/>
+        <result column="tab_id" property="tabId"/>
+        <result column="col_key" property="colKey"/>
+        <result column="sig_role_id" property="sigRoleId"/>
+        <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
-
     <select id="selectTextdictInfoPage" resultMap="textdictInfoResultMap">
         select * from m_textdict_info where is_deleted = 0
     </select>

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -408,7 +408,7 @@ public class WbsTreeContractServiceImpl
         wbsTreeContract.setIsLinkTable(wbsTree.getIsLinkTable());
         wbsTreeContract.setExcelId(wbsTree.getExcelId());
         wbsTreeContract.setHtmlUrl(wbsTree.getHtmlUrl());
-        wbsTreeContract.setIsBussShow("1");
+        wbsTreeContract.setIsBussShow(1);
         return wbsTreeContract;
     }
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -1533,7 +1533,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         wbsTreeContract.setIsLinkTable(wbsTree.getIsLinkTable());
         wbsTreeContract.setExcelId(wbsTree.getExcelId());
         wbsTreeContract.setHtmlUrl(wbsTree.getHtmlUrl());
-        wbsTreeContract.setIsBussShow("1");
+        wbsTreeContract.setIsBussShow(1);
         return wbsTreeContract;
     }
 

+ 0 - 1
blade-service/blade-system/src/main/java/org/springblade/system/SystemApplication.java

@@ -32,6 +32,5 @@ public class SystemApplication {
 	public static void main(String[] args) {
 		BladeApplication.run(AppConstant.APPLICATION_SYSTEM_NAME, SystemApplication.class, args);
 	}
-
 }
 

+ 17 - 0
blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java

@@ -43,6 +43,7 @@ import org.springblade.system.service.IRoleService;
 import org.springblade.system.user.cache.UserCache;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.vo.GrantVO;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 import org.springblade.system.vo.RoleVO2;
 import org.springblade.system.wrapper.RoleWrapper;
@@ -206,5 +207,21 @@ public class RoleController extends BladeController {
         return R.data(list);
     }
 
+    //电签 -- 角色类型
+    @ApiOperationSupport(order = 9)
+    @GetMapping("/getRoleTypeInfo")
+    @ApiOperation(value = "列表", notes = "传入role")
+    public R<List<RoleTypeVO>> getRoleTypeInfo() {
+        List<RoleTypeVO> list = roleService.getRoleTypeInfo();
+        return R.data(list);
+    }
 
+    //电签 -- 角色类型
+    @ApiOperationSupport(order = 10)
+    @GetMapping("/getRoleInfoByParentId")
+    @ApiOperation(value = "列表", notes = "传入role")
+    public R<List<RoleTypeVO>> getRoleInfoByParentId(String ParentId) {
+        List<RoleTypeVO> list = roleService.getRoleInfoByParentId(ParentId);
+        return R.data(list);
+    }
 }

+ 3 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.java

@@ -22,6 +22,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.entity.WbsTableOwnerRole;
 import org.springblade.manager.vo.WbsTableOwnerRoleVO;
 import org.springblade.system.entity.Role;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 
 import java.util.List;
@@ -77,5 +78,7 @@ public interface RoleMapper extends BaseMapper<Role> {
 
     List<WbsTableOwnerRole> selectRoleAndTableOwnerListByRoleId(Long roleId);
 
+    List<RoleTypeVO> getRoleTypeInfo();
 
+    List<RoleTypeVO> getRoleInfoByParentId(String ParentId);
 }

+ 14 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/RoleMapper.xml

@@ -19,6 +19,14 @@
         <result column="value" property="value"/>
         <result column="key" property="key"/>
     </resultMap>
+
+    <resultMap id="RoleTypeVOMap" type="org.springblade.system.vo.RoleTypeVO">
+        <id column="id" property="id"/>
+        <result column="label" property="label"/>
+        <result column="value" property="value"/>
+    </resultMap>
+
+
     <insert id="bindRoleAndPost">
         insert into m_role_post (r_id,p_id) values (#{rId},#{pId})
     </insert>
@@ -83,5 +91,11 @@
         from m_wbs_table_owner_role where role_id = #{roleId}
     </select>
 
+    <select id="getRoleTypeInfo" resultMap="RoleTypeVOMap">
+        select id as `value`,role_name as label from blade_role where is_deleted = 0 and parent_id=0 and role_name like '%方%'
+    </select>
 
+    <select id="getRoleInfoByParentId" resultMap="RoleTypeVOMap">
+        select id,id as `value`,role_name as label from blade_role where is_deleted = 0 and parent_id=#{ParentId}
+    </select>
 </mapper>

+ 7 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/IRoleService.java

@@ -22,6 +22,7 @@ import org.springblade.manager.entity.WbsTableOwnerRole;
 import org.springblade.manager.vo.WbsTableOwnerRoleVO;
 import org.springblade.system.dto.RoleDTO;
 import org.springblade.system.entity.Role;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 
 import javax.validation.constraints.NotEmpty;
@@ -51,6 +52,7 @@ public interface IRoleService extends IService<Role> {
      */
     List<RoleVO> tree(String tenantId);
 
+
     /**
      * 权限配置
      *
@@ -118,4 +120,9 @@ public interface IRoleService extends IService<Role> {
 
     List<Role> selectParentRole();
 
+
+    // 电签 -- 获取角色类型
+    List<RoleTypeVO> getRoleTypeInfo();
+
+    List<RoleTypeVO> getRoleInfoByParentId(String ParentId);
 }

+ 11 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RoleServiceImpl.java

@@ -41,6 +41,7 @@ import org.springblade.system.mapper.RoleMapper;
 import org.springblade.system.service.IRoleMenuService;
 import org.springblade.system.service.IRoleScopeService;
 import org.springblade.system.service.IRoleService;
+import org.springblade.system.vo.RoleTypeVO;
 import org.springblade.system.vo.RoleVO;
 import org.springblade.system.wrapper.RoleWrapper;
 import org.springframework.stereotype.Service;
@@ -265,6 +266,16 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
         return baseMapper.selectList(Wrappers.<Role>query().lambda().eq(Role::getParentId, 0));
     }
 
+    @Override
+    public List<RoleTypeVO> getRoleTypeInfo() {
+        return baseMapper.getRoleTypeInfo();
+    }
+
+    @Override
+    public List<RoleTypeVO> getRoleInfoByParentId(String ParentId) {
+        return baseMapper.getRoleInfoByParentId(ParentId);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     public Boolean submitRoleAndTableOwner(List<Long> roleIds, List<Long> tableOwners) {
         for (Long role : roleIds) {