Browse Source

BUG修复

huangjn 3 năm trước cách đây
mục cha
commit
d817e24bba

+ 26 - 9
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -31,7 +31,6 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.jackson.JsonUtil;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.evisa.feign.EVisaClient;
@@ -230,8 +229,10 @@ public class InformationWriteQueryController extends BladeController {
 	@ApiOperation(value = "复制节点填报数据")
 	public R<Boolean> copyContractNodeSubmitBusinessData(@RequestBody CopyContractTreeNodeVO copyVO){
 		if(StringUtils.isNotEmpty(copyVO.getNeedCopyPrimaryKeyId()) && copyVO.getCopyBatchToPaths().size() > 0){
+		    //查询被复制节点
+            WbsTreeContract wbsTreeContract = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyVO.getNeedCopyPrimaryKeyId());
 			//获取被复制节点的表格
-			List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyVO.getNeedCopyPrimaryKeyId()), "queryTable", "");
+			List<WbsTreeContract> tableList = this.wbsTreeContractClient.queryChildByParentId(wbsTreeContract, "queryTable", "");
 			if(tableList != null && tableList.size() > 0){
 				//获取合同段信息
 				ContractInfo contract = this.contractClient.getContractById(Long.parseLong(tableList.get(0).getContractId()));
@@ -240,9 +241,10 @@ public class InformationWriteQueryController extends BladeController {
 					String removeString = new Integer("1").equals(contract.getContractType()) ? "1,2,3" : "5,6,7";
 					//删除掉不符合条件的数据
 					tableList.removeIf(table -> Arrays.asList(removeString.split(",")).contains(table.getTableType().toString()));
-				}
-				if(tableList.size() <= 0){
-					return R.data(300, false, "当前合同段已开启数据隔离,当前节点下未找到符合复制条件的数据");
+
+                    if(tableList.size() <= 0){
+                        return R.data(300, false, "当前合同段已开启数据隔离,当前节点下未找到符合复制条件的数据");
+                    }
 				}
 
 				//获取表格的业务数据
@@ -264,13 +266,22 @@ public class InformationWriteQueryController extends BladeController {
 
 				//获取数据写入的节点信息
 				List<CopyContractTreeNodeVO.CopyBatch> batchPathList = copyVO.getCopyBatchToPaths();
+				//删除数据SQL
+                List<String> removeSqlList = new ArrayList<>();
 				//新增数据SQL
 				List<String> saveSqlList = new ArrayList<>();
 				for(CopyContractTreeNodeVO.CopyBatch copyBatch : batchPathList){
 					//获取表格信息
 					List<WbsTreeContract> copyToTableList = this.wbsTreeContractClient.queryChildByParentId(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(copyBatch.getPrimaryKeyId()), "queryTable", "");
 					if(copyToTableList != null && copyToTableList.size() > 0){
-						//检测是否表格是否存在差异(如果存在oldId则优先使用这个字段,不存在时才使用id)
+                        //首先,记录数据删除sql
+                        for(WbsTreeContract table : copyToTableList){
+                            if(StringUtils.isNotEmpty(table.getInitTableName())){
+                                removeSqlList.add("delete from " + table.getInitTableName() + " where p_key_id = " + table.getPKeyId());
+                            }
+                        }
+
+						//其次,检测是否表格是否存在差异(如果存在oldId则优先使用这个字段,不存在时才使用id)
 						List<WbsTreeContract> remainTableList = copyToTableList.stream().filter(toTable -> tableBusinessDataMap.containsKey(StringUtils.isNotEmpty(toTable.getOldId()) ? toTable.getOldId() : toTable.getId().toString())).collect(Collectors.toList());
 						//循环有数据的表格
 						for(WbsTreeContract remainTable : remainTableList){
@@ -315,8 +326,14 @@ public class InformationWriteQueryController extends BladeController {
 						}
 					}
 				}
-				//保存数据
-				JsonUtil.toJson(saveSqlList);
+                //删除原本填写的数据
+                if(removeSqlList.size() > 0){
+                    for(String sql : removeSqlList){
+                        this.jdbcTemplate.execute(sql);
+                    }
+                }
+
+				//保存新获取的数据
 				if(saveSqlList.size() > 0){
 					for(String sql : saveSqlList){
 						this.jdbcTemplate.execute(sql);
@@ -1163,7 +1180,7 @@ public class InformationWriteQueryController extends BladeController {
 				newData.setOldId(half.getId().toString());
 				//设置合同段等信息
 				newData.setWbsType(treeContract.getWbsType());
-				newData.setContractId(vo.getContractId());
+				newData.setContractId(treeContract.getContractId());
 				newData.setContractIdRelation(treeContract.getContractIdRelation());
 				newData.setContractType(treeContract.getContractType());
 				newData.setCreateTime(new Date());

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

@@ -3,7 +3,6 @@ package org.springblade.business.feignClient;
 import lombok.AllArgsConstructor;
 import org.springblade.business.feign.InformationQueryClient;
 import org.springblade.business.service.IInformationQueryService;
-import org.springblade.core.secure.BladeUser;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -119,6 +119,8 @@ public class ExcelTabController extends BladeController {
 
     private final FileUtilsClient fileUtilsClient;
 
+    private final IWbsParamService wbsParamService;
+
     /**
      * 详情
      */
@@ -736,8 +738,11 @@ public class ExcelTabController extends BladeController {
             WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
                     .eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,contractId));
 
+            //处理文件提名
+            String fileName = this.wbsParamService.crateFileTitle(wbsTreeContractByP.getPKeyId(), Long.parseLong(wbsTreeContractByP.getContractId()));
+
             //huangjn 保存成功后调用生成资料查询列表数据
-            this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "文件名称(后面再完善)", Integer.parseInt(classify), 2);
+            this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", fileName, Integer.parseInt(classify), 2);
 /*        }else{ //更新
             sqlInfo = "update  "+tabName+" set ";
             for (String keys : dataMap2.keySet()){

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

@@ -35,6 +35,7 @@ import org.springblade.manager.dto.FormData;
 import org.springblade.manager.entity.ExcelTab;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.service.IWbsParamService;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.manager.vo.ExceTabTreVO;
@@ -67,6 +68,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 	private final IWbsTreeContractService wbsTreeContractService;
 	private final IWbsTreeService wbsTreeService;
 	private final JdbcTemplate jdbcTemplate;
+
+	private final IWbsParamService wbsParamService;
+
 	@Override
 	public IPage<ExcelTabVO> selectExcelTabPage(IPage<ExcelTabVO> page, ExcelTabVO excelTab) {
 		return page.setRecords(baseMapper.selectExcelTabPage(page, excelTab));
@@ -247,8 +251,11 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 					WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
 							.eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,tableInfo.getContractId()));
 
+					//处理文件提名
+					String fileName = this.wbsParamService.crateFileTitle(wbsTreeContractByP.getPKeyId(), Long.parseLong(wbsTreeContractByP.getContractId()));
+
 					//huangjn 保存成功后调用生成资料查询列表数据
-					this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "文件名称(后面再完善)", Integer.parseInt(tableInfo.getClassify()), 2);
+					this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", fileName, Integer.parseInt(tableInfo.getClassify()), 2);
 				/*}else{ //更新
 					sqlInfo = "update  "+tabName+" set ";
 					for (String keys : dataMap2.keySet()){