Przeglądaj źródła

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf 2 lat temu
rodzic
commit
68483e0da4

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO.java

@@ -142,4 +142,6 @@ public class ArchiveTreeContractVO extends ArchiveTreeContract implements INode<
 	@ApiModelProperty(value = "自动立卷关联Id")
 	private Long archiveAutoNodeId;
 
+	private String allName; //全路经名
+
 }

+ 35 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -220,5 +220,39 @@ public class ArchiveTreeContractController extends BladeController {
 	}
 
 
-	
+	/**
+	 * 保存立卷规则设置
+	 */
+	@PostMapping("/saveArchiveAutoRule")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "保存立卷规则设置", notes = "传入archiveAutoType规则类型,nodeIds逗号拼接选择节点id")
+	public R saveArchiveAutoRule(@ApiParam(value = "立卷规则", required = true) @RequestParam Integer archiveAutoType,
+					@ApiParam(value = "主键集合", required = true) @RequestParam String nodeIds) {
+		return R.status(archiveTreeContractService.saveArchiveAutoRule(archiveAutoType,nodeIds));
+	}
+
+
+	/**
+	 * 查看立卷规则设置
+	 */
+	@PostMapping("/getArchiveAutoRule")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "修改立卷规则设置", notes = "传入节点id")
+	public R getArchiveAutoRule(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+		Map<String, List<ArchiveTreeContractVO>> ruleMap=archiveTreeContractService.getArchiveAutoRule(id);
+		return R.data(ruleMap);
+	}
+
+	/**
+	 * 修改立卷规则设置
+	 */
+	@PostMapping("/updateArchiveAutoRule")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "修改立卷规则设置", notes = "传入修改的archiveAutoType规则类型,nodeIds逗号拼接选择节点id")
+	public R updateArchiveAutoRule(@ApiParam(value = "立卷规则", required = true) @RequestParam Integer archiveAutoType,
+					@ApiParam(value = "主键集合", required = true) @RequestParam String nodeIds) {
+		return R.status(archiveTreeContractService.updateArchiveAutoRule(archiveAutoType,nodeIds));
+	}
+
+
 }

+ 12 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FirstController.java

@@ -223,7 +223,7 @@ public class FirstController extends BladeController {
 
                     //获取填报数据
                     List<Map<String, Object>> firstBusinessDataInfos = this.getFirstBusinessDataImpl2(firstId, tableNode.getContractId());
-
+                    ProjectInfo projectInfo = projectInfoService.getById(tableNode.getProjectId());
                     try {
                         //处理数据
                         for (Map<String, Object> dataMap : firstBusinessDataInfos) {
@@ -241,6 +241,17 @@ public class FirstController extends BladeController {
                                     Document doc = Jsoup.parse(htmlString);
                                     Element table = doc.select("table").first();
                                     Elements trs = table.select("tr");
+                                    //添加标题
+                                    CellRange[] columns = sheet.getMergedCells();
+                                    for (int i = 0; i < columns.length; i++) {
+                                        CellRange cellRange = columns[i];
+                                        System.out.println(cellRange.getStyle().getFont().getSize());
+                                        if (cellRange.getStyle().getFont().getSize() >= 12) {
+                                            cellRange.setText(projectInfo.getProjectName());
+                                            cellRange.getStyle().getFont().setSize(20);
+                                            break;
+                                        }
+                                    }
 
                                     if (ObjectUtil.isNotEmpty(dataMap)) {
                                         for (String val : dataMap.keySet()) {

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

@@ -56,4 +56,11 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 	 * @return
 	 */
 	int updateAllSonNodeIdsForArchiveAutoRule(@Param("treeContract") ArchiveTreeContract treeContract);
+
+	/**
+	 * 获取节点下所有设置规则节点
+	 * @param treeContract
+	 * @return
+	 */
+	List<ArchiveTreeContractVO> getAllSonNodeIdsForArchiveAutoRuleSelected(@Param("treeContract")ArchiveTreeContract treeContract);
 }

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

@@ -36,6 +36,7 @@
         <result column="ext_id" property="extId"/>
         <result column="archive_auto_type" property="archiveAutoType"/>
         <result column="archive_auto_node_id" property="archiveAutoNodeId"/>
+        <result column="archive_auto_select" property="archiveAutoSelect"/>
     </resultMap>
 
 
@@ -232,4 +233,13 @@
                 and archive_auto_type != 3
             </if>
     </update>
+
+    <select id="getAllSonNodeIdsForArchiveAutoRuleSelected" resultMap="archiveTreeContractResultMap">
+        select * from m_archive_tree_contract
+        where is_deleted = 0
+        and ancestors like concat('', #{treeContract.ancestors}, '%')
+        and archive_auto_select=1
+        order by ancestors asc,sort asc
+    </select>
+
 </mapper>

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

@@ -27,6 +27,9 @@ import org.springblade.manager.vo.ArchiveTreeVO;
 
 import java.util.List;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  *  服务类
  *
@@ -65,4 +68,16 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 	 * @return
 	 */
 	boolean saveArchiveAutoRule(Integer archiveAutoType,String nodeIds);
+
+
+
+	Map<String, List<ArchiveTreeContractVO>> getArchiveAutoRule(Long id);
+
+	/**
+	 *项目级立卷规则更新
+	 * @return
+	 */
+	boolean updateArchiveAutoRule(Integer archiveAutoType,String nodeIds);
+
+
 }

+ 111 - 22
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.mixsmart.utils.StringUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
@@ -122,39 +123,127 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return ForestNodeMerger.merge(baseMapper.tree2(tenantId, disPlayTree, nodeType,projectId));
 	}
 
+	/**
+	 * 保存组卷规则设置
+	 * @param archiveAutoType
+	 * @param nodeIds
+	 * @return
+	 */
 	@Override
 	public boolean saveArchiveAutoRule(Integer archiveAutoType, String nodeIds) {
 		//项目级不需要考虑是否为wbs节点,已经同步出来了都属于归档树节点,直接按归档树节点处理
+		try{
+			//步骤1保存选择节点的立卷规则。
+			String[] ids = nodeIds.split(",");
 
-		//步骤1保存选择节点的立卷规则。
-		String[] ids = nodeIds.split(",");
+			Long archiveAutoNodeId=null;
+
+			//分类并卷规则的需要生成个随机数,作为同一个分类赋值archiveAutoNodeId
+			if(archiveAutoType==2){
+				double ran=(Math.random()*100000000) + 1;
+				archiveAutoNodeId=Long.parseLong(System.currentTimeMillis()+""+ran);
+			}
+			for(String nodeId:ids){
+				long nodeIdLong = Long.parseLong(nodeId);
+				ArchiveTreeContract archiveTreeContract = baseMapper.selectById(nodeIdLong);
+				archiveTreeContract.setArchiveAutoSelect(1);
+				archiveTreeContract.setArchiveAutoType(archiveAutoType);
+				if(archiveAutoType==2){
+					//分类并卷规则 提交都是一个分类类型
+					archiveTreeContract.setArchiveAutoNodeId(archiveAutoNodeId);
+				}else{
+					//最高并卷规则 选择节点的ID
+					archiveTreeContract.setArchiveAutoNodeId(nodeIdLong);
+				}
+				baseMapper.updateById(archiveTreeContract);
+
+				//TODO 步骤2保存选择节点下所有子节点的立卷规则。注意立卷规则优先级覆盖原则。(单独组卷>分类并卷>最高并卷)
+				baseMapper.updateAllSonNodeIdsForArchiveAutoRule(archiveTreeContract);
+			}
+
+			return true;
+
+		}catch (Exception e){
+			e.printStackTrace();
+			return false;
+		}
+	}
+
+
+	/**
+	 * 获取节点规则查看
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public Map<String, List<ArchiveTreeContractVO>> getArchiveAutoRule(Long id) {
+
+		Map<String, List<ArchiveTreeContractVO>> map= new HashMap<>();
+		List<ArchiveTreeContractVO> voList_1_3 = new ArrayList<>();//最高规则和单独组卷的tab显示节点及节点下有设置的节点(archive_auto_select=1)
+		List<ArchiveTreeContractVO> voList_2 = new ArrayList<>();//分类并卷的tab显示当前节点的相同分类节点
+
+
+		ArchiveTreeContract archiveTreeContract = baseMapper.selectById(id);
 
-		Long archiveAutoNodeId=null;
+		//获取当前节点下所有设置的节点
+		List<ArchiveTreeContractVO> list=baseMapper.getAllSonNodeIdsForArchiveAutoRuleSelected(archiveTreeContract);
+		for(ArchiveTreeContractVO vo:list){
 
-		//分类并卷规则的需要生成个随机数,作为同一个分类赋值archiveAutoNodeId
-		if(archiveAutoType==2){
-			double ran=(Math.random()*100000000) + 1;
-			archiveAutoNodeId=Long.parseLong(System.currentTimeMillis()+""+ran);
 		}
-		for(String nodeId:ids){
-			long nodeIdLong = Long.parseLong(nodeId);
-			ArchiveTreeContract archiveTreeContract = baseMapper.selectById(nodeIdLong);
-			archiveTreeContract.setArchiveAutoSelect(1);
-			archiveTreeContract.setArchiveAutoType(archiveAutoType);
+
+
+
+		return map;
+	}
+
+
+	@Override
+	public boolean updateArchiveAutoRule(Integer archiveAutoType, String nodeIds) {
+		//项目级不需要考虑是否为wbs节点,已经同步出来了都属于归档树节点,直接按归档树节点处理
+
+
+		String[] ids = nodeIds.split(",");
+		Set<String> idsSet=new HashSet<>(Arrays.asList(ids));
+
+		//判断修改的原来是否是分类并卷规则类型
+		List<ArchiveTreeContract> archiveTreeContracts_db=null;
+		long nodeId_0_Long = Long.parseLong(ids[0]);
+		ArchiveTreeContract archiveTreeContract0 = baseMapper.selectById(nodeId_0_Long);
+		Integer archiveAutoType_db = archiveTreeContract0.getArchiveAutoType();
+		if(archiveAutoType_db==2){
+			//获取分类ID
+			Long archiveAutoNodeId_db = archiveTreeContract0.getArchiveAutoNodeId();
+			//获取该分类下的设置选择节点 archiveAutoSelect=1的,不是范围内的所有子节点
+			archiveTreeContracts_db = baseMapper.selectList(Wrappers.<ArchiveTreeContract>lambdaQuery()
+					.eq(ArchiveTreeContract::getArchiveAutoNodeId, archiveAutoNodeId_db)
+					.eq(ArchiveTreeContract::getArchiveAutoSelect, 1)
+			);
+		}else{
+			//原来是最高,单独规则类型的
+
 			if(archiveAutoType==2){
-				//分类并卷规则 提交都是一个分类类型
-				archiveTreeContract.setArchiveAutoNodeId(archiveAutoNodeId);
-			}else{
-				//最高并卷规则 选择节点的ID
-				archiveTreeContract.setArchiveAutoNodeId(nodeIdLong);
+				//修改成分类并卷
+			}
+			if(archiveAutoType==1){
+				//修改成最高
+			}
+			if(archiveAutoType==3){
+				//修改成单独
+				for(String nodeId:ids){
+					//步骤1更新选择节点的立卷规则。
+					long nodeIdLong = Long.parseLong(nodeId);
+					ArchiveTreeContract archiveTreeContract = baseMapper.selectById(nodeIdLong);
+					archiveTreeContract.setArchiveAutoSelect(1);
+					archiveTreeContract.setArchiveAutoType(archiveAutoType);
+					archiveTreeContract.setArchiveAutoNodeId(nodeIdLong);//最高/单独规则 选择节点的ID
+					baseMapper.updateById(archiveTreeContract);
+					//步骤2保存选择节点下所有子节点的立卷规则。注意立卷规则优先级覆盖原则。(单独组卷>分类并卷>最高并卷)
+					baseMapper.updateAllSonNodeIdsForArchiveAutoRule(archiveTreeContract);
+				}
 			}
-			baseMapper.updateById(archiveTreeContract);
 		}
 
-		//TODO 步骤2保存选择节点下所有子节点的立卷规则。注意立卷规则优先级覆盖原则。(单独组卷>分类并卷>最高并卷)
-		/*
-		* 测试覆盖
-		* */
+
 		return false;
 	}