Răsfoiți Sursa

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

huangtf 2 ani în urmă
părinte
comite
5f50cd2b9f

+ 3 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/entity/ArchivesAuto.java

@@ -157,6 +157,9 @@ public class ArchivesAuto extends BaseEntity {
 
 	private Integer autoFileSort;
 
+	//是否已销毁
+	private Integer isDestroy;
+
 	/**
 	 * 立卷单位
 	 * **/

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreePrivateClient.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.feign;
 
+import org.springblade.manager.entity.TextdictInfo;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
 import org.springblade.manager.vo.WbsTreePrivateVO;
@@ -8,6 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -60,4 +62,7 @@ public interface WbsTreePrivateClient {
     @PostMapping(API_PREFIX + "/saveObj")
     void saveObj(@RequestBody WbsTreePrivate wbsTreePrivate);
 
+    @PostMapping(API_PREFIX + "/saveTextDictList")
+    void saveTextDictList(@RequestBody ArrayList<TextdictInfo> obj);
+
 }

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

@@ -440,5 +440,14 @@ public class ArchivesAutoController extends BladeController {
 		return R.status(archivesAutoService.updateBatchById(JSONArray.parseArray(JSONObject.toJSONString(archivesAutoVo.getList()), ArchivesAuto.class)));
 	}
 
+	/**
+	 * 获取节点载体类别集合
+	 */
+	@GetMapping("/getCarrierTypeByDict")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "获取节点载体类别集合", notes = "获取节点载体类别集合")
+	public R getCarrierTypeByDict(){
+		return R.data(archivesAutoService.getCarrierTypeByDict());
+	}
 
 }

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

@@ -23,6 +23,8 @@ import org.springblade.archive.entity.ArchivesAuto;
 import org.springblade.archive.vo.ArchivesAutoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.system.entity.DictBiz;
+
 import java.util.List;
 import java.util.Map;
 
@@ -102,4 +104,8 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
 
 
 	Integer splitFiles(@Param("ids") List<Long> ids);
+
+	List<DictBiz> getCarrierTypeByDict();
+
+	void batchDestroyByIds(@Param("ids")List<String> ids);
 }

+ 20 - 3
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -225,8 +225,9 @@
     <select id="pageByArchivesAuto2" resultMap="archivesAutoResultMap">
         select uaa.* from
         (SELECT id FROM m_archive_tree_contract WHERE project_id =#{vo.projectId}
+        and 1=2
         <foreach collection="vo.nodeIdArray" item="nodeId">
-            and ancestors like concat('%',#{nodeId},'%') or id = #{nodeId}
+            or ancestors like concat('%',#{nodeId},'%') or id = #{nodeId}
         </foreach>
         ) matc left join u_archives_auto uaa on matc.id = uaa.node_id left join u_archive_file uaf on uaa.id = uaf.archive_id
         where uaa.is_deleted = 0
@@ -272,7 +273,7 @@
     <select id="getAllArchiveByContractType" resultType="org.springblade.archive.vo.ArchivesAutoVO">
         SELECT uaa.id,matc.tree_code as 'contractType'
         FROM m_archive_tree_contract matc left join u_archives_auto uaa on uaa.node_id =matc.id
-        WHERE uaa.project_id =#{projectId} and uaa.is_deleted = #{type}
+        WHERE uaa.project_id =#{projectId} and uaa.is_deleted = #{type} and uaa.is_destroy = #{type}
     </select>
     <select id="getAllArchiveAgeByContractType" resultType="java.util.Map">
         SELECT CASE uaa.storage_time WHEN '1' THEN '10年' WHEN '2' THEN '30年' ELSE '永久' END as name,COUNT(uaa.storage_time) as value
@@ -288,7 +289,13 @@
                 where project_id = #{vo.projectId} and ancestors like concat('%', #{vo.nodeId}, '%') or id = #{vo.nodeId}
             ) matc
         left join u_archives_auto uaa on matc.id = uaa.node_id
-        where uaa.is_deleted = #{vo.isDeleted}
+        where
+        <if test="vo.isDeleted == 0">
+            uaa.is_deleted = 0 and uaa.is_destroy = 0
+        </if>
+        <if test="vo.isDeleted == 1">
+            uaa.is_deleted = 1 and uaa.is_destroy = 1
+        </if>
         <if test="vo.storageTime != null and vo.storageTime != ''">
             and uaa.storage_time = #{vo.storageTime}
         </if>
@@ -301,6 +308,9 @@
         FROM  u_archives_auto WHERE project_id =#{projectId} AND filing_unit is not NULL
         GROUP BY filing_unit
     </select>
+    <select id="getCarrierTypeByDict" resultType="org.springblade.system.entity.DictBiz">
+        SELECT * FROM blade_dict_biz WHERE code = 'storage_type' AND  parent_id > 0 AND tenant_id = 000000
+    </select>
 
 
     <update id="splitFiles" >
@@ -310,6 +320,13 @@
             #{id}
         </foreach>
     </update>
+    <update id="batchDestroyByIds">
+        update u_archives_auto set is_deleted = 1 ,is_destroy = 1 where
+        id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 
 
 </mapper>

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

@@ -21,6 +21,7 @@ import org.springblade.archive.vo.ArchivesAutoVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.system.entity.DictBiz;
 
 import java.util.List;
 import java.util.Map;
@@ -75,4 +76,6 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	void refreshFileNumberNoSlipt(Long projectId,Long contractId,Long nodeId);
 
 	void test();
+
+    List<DictBiz> getCarrierTypeByDict();
 }

+ 22 - 14
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -85,6 +85,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	private ArchiveTreeContractClient archiveTreeContractClient;
 	private ContractClient contractClient;
 	private ProjectClient projectClient;
+	private final ArchivesAutoMapper autoMapper;
 
 	@Autowired
 	private ExecutorService executorService;
@@ -119,6 +120,9 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		if (StringUtils.isNotBlank(vo.getMonth())) {
 			vo.setMonths(Arrays.asList(vo.getMonth().split(",")));
 		}
+		if (StringUtils.isNotBlank(vo.getCarrierType())) {
+			vo.setCarrierTypes(Arrays.asList(vo.getCarrierType().split(",")));
+		}
 		List<ArchivesAutoVO> archivesAutos = null;
 		if (StringUtils.isNotBlank(vo.getNodeIds())){
 			vo.setNodeIdArray(Arrays.asList(vo.getNodeIds().split(",")));
@@ -362,8 +366,8 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			List<Long> collect = files.stream().map(file -> file.getId()).collect(Collectors.toList());
 			archiveFileClient.batchDeleteArchiveFile(collect);
 		}
-		//删除案卷
-		baseMapper.deleteBatchIds(list);
+		//销毁案卷
+		baseMapper.batchDestroyByIds(list);
 	}
 
 
@@ -1064,6 +1068,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		queryWrapper.in("node_id", ids)
 				.eq("is_deleted",0)
 				.eq("is_archive",1)
+				.ne("is_auto_file",1)
 				.orderByAsc("tree_sort")
 				.orderByAsc("auto_file_sort")
 				.orderByAsc("file_number");
@@ -1191,20 +1196,19 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		String back = "";
 
 
-		for (String frontUrl : frontUrls) {
-			if (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[0]) && config.getFactorType().contains("1")) {
-				front = frontUrl;
-			}else if (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[1]) && config.getFactorType().contains("2")) {
-				cataLog = frontUrl;
-			}
-			else if  (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[2]) && config.getFactorType().contains("3")) {
-				spare = frontUrl;
-			}
-			else if  (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[3]) && config.getFactorType().contains("4")) {
-				back = frontUrl;
+		if(frontUrls != null ) {
+			for (String frontUrl : frontUrls) {
+				if (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[0]) && config.getFactorType().contains("1")) {
+					front = frontUrl;
+				} else if (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[1]) && config.getFactorType().contains("2")) {
+					cataLog = frontUrl;
+				} else if (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[2]) && config.getFactorType().contains("3")) {
+					spare = frontUrl;
+				} else if (frontUrl.contains(ArchiveAutoPdfServiceImpl.ARCHIVE_NUMBER[3]) && config.getFactorType().contains("4")) {
+					back = frontUrl;
+				}
 			}
 		}
-
 		List<String> fileUrls =new ArrayList<>();
 		if (!archivesAuto.isMedia()) {
 			List<ArchiveFile> result = this.archiveFileClient.getArchiveFileByArchivesId(archivesAuto.getId().toString(),"");
@@ -1458,6 +1462,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		System.out.println();
 	}
 
+	@Override
+	public List<DictBiz> getCarrierTypeByDict() {
+		return autoMapper.getCarrierTypeByDict();
+	}
 
 
 }

+ 16 - 17
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1340,15 +1340,12 @@ public class InformationWriteQueryController extends BladeController {
         if (("1").equals(vo.getCopyType())) {
             //首先查询需要复制的节点及其下级所有子节点的信息
             WbsTreeContract needCopyNode = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getNeedCopyPrimaryKeyId());
-            // 获取当前节点的所有子节点
-            /*String vocational = SnowFlakeUtil.getId() + "";*/
 
             //新增施工台账
             List<WbsTreeContract> saveList = new ArrayList<>();
             List<ConstructionLedger> saveLedger = new ArrayList<>();
 
             //获取子级节点、表信息
-            //List<WbsTreeContract> nodeChildAll = informationQueryService.getNodeChildAllByNodeId(needCopyNode.getId() + "", needCopyNode.getContractId(), vo.getNeedCopyPrimaryKeyId());
             List<WbsTreeContract> needCopyChildNodes = this.getChildNodes(needCopyNode);
             if (ObjectUtil.isEmpty(needCopyChildNodes) || needCopyChildNodes.size() == 0) {
                 //最下层级节点复制
@@ -1372,6 +1369,7 @@ public class InformationWriteQueryController extends BladeController {
 
             if (StringUtils.isNotEmpty(vo.getNeedCopyPrimaryKeyId())) {
                 WbsTreeContract parent = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getParentPrimaryKeyId());
+
                 //重塑关键信息
                 Map<Long, Long> oldToNewIdMap = new HashMap<>();
                 //节点信息
@@ -1432,7 +1430,7 @@ public class InformationWriteQueryController extends BladeController {
                         this.createLedger(newData, saveLedger, nodeMap, null);
                     }
                     //表单所属方,只有勾选了对应的所属方权限才复制数据;勾选了复制数据才能复制,否则只是创建节点、表
-                    // 组织复制值Sql
+                    //组织复制值Sql
                     if (node.getType() == 2 && StringUtils.isNotEmpty(newData.getInitTableName()) && finalTabOwner1.contains(node.getTableOwner()) && vo.getIsCopyData() == 1) {
                         String tableName = newData.getInitTableName();
                         String col = nodeTabColsMap.get(tableName);
@@ -1769,7 +1767,7 @@ public class InformationWriteQueryController extends BladeController {
                         }
 
                     } else if (ObjectUtil.isNotEmpty(needTab.getIsCopeTab()) && (new Integer(2).equals(needTab.getIsCopeTab()) || new Integer(3).equals(needTab.getIsCopeTab()))) {
-                        //如果不存在,则新增复制的表,toCopyNodeTab == null && getIsCopeTab != null && =2为复制表、=3为频率表
+                        //如果不存在,则新增复制的表,toCopyNodeTab == null && getIsCopeTab != null && =2为复制表、=3为频率表
                         WbsTreeContract objTab = BeanUtil.copyProperties(needTab, WbsTreeContract.class);
                         if (objTab != null) {
                             Long oldPKeyId = needTab.getPKeyId();
@@ -2649,6 +2647,7 @@ public class InformationWriteQueryController extends BladeController {
         //保存集合
         List<WbsTreeContract> saveList = new ArrayList<>();
         List<ConstructionLedger> saveLedger = new ArrayList<>();
+
         //原始表ids,电签位置信息使用
         List<Long> oldTabIds = selectedNodeList.stream().filter(f -> new Integer(2).equals(f.getType())).map(WbsTreeContract::getId).collect(Collectors.toList());
 
@@ -2766,7 +2765,6 @@ public class InformationWriteQueryController extends BladeController {
         return booleanR;
     }
 
-
     @Async
     public void updateTextDictInfos(List<WbsTreeContract> nowTabs, List<Long> oldTabIds, String projectId) {
         if (oldTabIds.size() > 0) {
@@ -2778,8 +2776,9 @@ public class InformationWriteQueryController extends BladeController {
                 if (nowTab != null) {
                     nowTab.setHtmlUrl(tab.getHtmlUrl());
                     nowTab.setExcelId(tab.getExcelId());
+                    nowTab.setIsTypePrivatePid(tab.getPKeyId());
                     nowTab.setInitTableName(tab.getInitTableName());
-                    String updateSql = "update m_wbs_tree_contract set html_url = '" + nowTab.getHtmlUrl() + "',excel_id = " + nowTab.getExcelId() + ",init_table_name = '" + nowTab.getInitTableName() + "' where p_key_id = " + nowTab.getPKeyId();
+                    String updateSql = "update m_wbs_tree_contract set html_url = '" + nowTab.getHtmlUrl() + "',excel_id = " + nowTab.getExcelId() + ",init_table_name = '" + nowTab.getInitTableName() + "',is_type_private_pid = " + nowTab.getIsTypePrivatePid() + " where p_key_id = " + nowTab.getPKeyId();
                     resultSQL.add(updateSql);
                 }
             }
@@ -2809,17 +2808,17 @@ public class InformationWriteQueryController extends BladeController {
 
         if (saveList.size() > 0) {
             StringBuilder str = new StringBuilder();
-            str.append("-"+saveList.get(0).getFullName());
+            str.append("-" + saveList.get(0).getFullName());
             //保存施工日志
-//            if (saveLedger.size() > 0) {
-//                this.constructionLedgerService.saveBatch(saveLedger, 1000);
-//                str.append("-[");
-//                for (ConstructionLedger ledger : saveLedger) {
-//                    str.append(ledger.getSite() + ",");
-//                }
-//                str.deleteCharAt(str.length() - 1);
-//                str.append("]");
-//            }
+            /*if (saveLedger.size() > 0) {
+                this.constructionLedgerService.saveBatch(saveLedger, 1000);
+                str.append("-[");
+                for (ConstructionLedger ledger : saveLedger) {
+                    str.append(ledger.getSite() + ",");
+                }
+                str.deleteCharAt(str.length() - 1);
+                str.append("]");
+            }*/
 
             try {
                 //获取当前节点的所有父节点

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreePrivateClientImpl.java

@@ -214,6 +214,11 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
         wbsTreePrivateService.save(wbsTreePrivate);
     }
 
+    @Override
+    public void saveTextDictList(ArrayList<TextdictInfo> obj) {
+        textDictInfoService.insertBatch(obj, 1000);
+    }
+
     private void foreachSetChildList(List<WbsTreeContractTreeVOS> vosResult, List<WbsTreePrivateVO> voList) {
         voList.forEach(wbsTreePrivateVO -> {
             WbsTreeContractTreeVOS vos = new WbsTreeContractTreeVOS();

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

@@ -358,12 +358,12 @@
             matc1.node_name as name,
             (SELECT COUNT(*)
              FROM u_archives_auto uaa1
-             WHERE  uaa1.is_deleted =0 and (uaa1.node_id in
+             WHERE  uaa1.is_destroy =0 and uaa1.is_deleted =0 and (uaa1.node_id in
                  (select id from m_archive_tree_contract matc2 WHERE matc2.project_id = #{projectId} and matc2.ancestors like CONCAT('%',matc1.id,'%')) or uaa1.node_id = matc1.id)
             ) as 'auto',
             (SELECT COUNT(*)
              FROM u_archives_auto uaa1
-             WHERE  uaa1.is_deleted =1 and (uaa1.node_id in
+             WHERE  uaa1.is_destroy =1 and uaa1.is_deleted =1 and (uaa1.node_id in
                 (select id from m_archive_tree_contract matc2 WHERE matc2.project_id = #{projectId} and matc2.ancestors like CONCAT('%',matc1.id,'%')) or uaa1.node_id = matc1.id)
             ) as 'deleted',
             if((SELECT COUNT(*) from m_archive_tree_contract matc WHERE parent_id = matc1.id)=0,false,true) as hasChildren

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -755,7 +755,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             /*检验单附表处理*/
             List<FormData> inspectionList = new ArrayList<>();
             /*0检验表1评定表*/
-            this.tec.getTableAll().stream().filter(e -> e.getTableType().equals(1) || e.getNodeName().contains("评定表")).forEach(e -> {
+            this.tec.getTableAll().stream().filter(e -> e.getTableType().equals(1) ||e.getTableType().equals(5)).forEach(e -> {
                 /*获取所有挂在表里的元素映射关系*/
                 this.tec.getKeyMappers().stream().filter(p -> p.getPkId().equals(e.getPKeyId())).forEach(k -> {
                     /*元素长度筛选超页的元素*/
@@ -769,7 +769,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 /*检查是否存在附表,不存在挂载*/
                 List<NodeTable> subTabList = this.tec.getTableAll().stream().filter(e -> e.getNodeName().contains("附表")).collect(Collectors.toList());
                 if (subTabList.size() == 0) {
-                    boolean pd=tec.getTableAll().stream().anyMatch(e->e.getNodeName().contains("评定表"));
+                    boolean pd=tec.getTableAll().stream().anyMatch(e->e.getTableType().equals(5));
                     WbsTreePrivate sub = wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().and(e->e.eq(WbsTreePrivate::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").or().eq(WbsTreePrivate::getFullName, pd?"质量检验评定表(附表)":"质量检验表(附表)")).eq(WbsTreePrivate::getProjectId, tec.getProjectId()).eq(WbsTreePrivate::getIsLinkTable,2));
                     if (sub == null) {
                         this.tec.getLog().append("该项目没有挂有附表信息");
@@ -779,7 +779,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         WbsTreeContract wtc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, one.getParentId()).eq(WbsTreeContract::getContractId,tec.getContractId()).eq(WbsTreeContract::getWbsId, one.getWbsId()).and(e->e.eq(WbsTreeContract::getNodeName, pd?"质量检验评定表(附表)":"质量检验表(附表)").or().eq(WbsTreeContract::getFullName, pd?"质量检验评定表(附表)":"质量检验表(附表)")));
                         if (wtc != null) {
                             /*附表的顺序在检验单或者评定表之后*/
-                            int sort=this.tec.getTableAll().stream().filter(e ->e.getTableType().equals(1) || e.getNodeName().contains("评定表")).map(NodeTable::getSort).max(Integer::compareTo).orElse(30);
+                            int sort=this.tec.getTableAll().stream().filter(e ->e.getTableType().equals(1) || e.getTableType().equals(5)).map(NodeTable::getSort).max(Integer::compareTo).orElse(30);
                             this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate()
                                     .set(WbsTreeContract::getSort,sort).set(WbsTreeContract::getContractType,-1).set(WbsTreeContract::getAncestors,one.getAncestors())
                                     .set(WbsTreeContract::getIsCopeTab,2)