|  | @@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSONArray;
 | 
	
		
			
				|  |  |  import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
	
		
			
				|  |  |  import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 | 
	
		
			
				|  |  |  import io.swagger.annotations.*;
 | 
	
		
			
				|  |  |  import lombok.AllArgsConstructor;
 | 
	
	
		
			
				|  | @@ -644,25 +645,17 @@ public class TextdictInfoController extends BladeController {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 查询历史数据
 | 
	
		
			
				|  |  | -        String querySql = String.format("select * from m_textdict_info where project_id = %d and tab_id = %d and type in (2,6) and is_deleted = 0"
 | 
	
		
			
				|  |  | -                    , Long.parseLong(wbsTreePrivate.getProjectId()), wbsTreePrivate.getPKeyId());
 | 
	
		
			
				|  |  | -        List<TextdictInfo> oldTextDictInfos = jdbcTemplate.query(querySql, new BeanPropertyRowMapper<>(TextdictInfo.class));
 | 
	
		
			
				|  |  | -        Map<String, TextdictInfo> oldTextDictInfoMap;
 | 
	
		
			
				|  |  | -        if (!oldTextDictInfos.isEmpty()) {
 | 
	
		
			
				|  |  | -            oldTextDictInfoMap = oldTextDictInfos.stream().collect(Collectors.toMap(item -> item.getProjectId() + item.getExcelId()
 | 
	
		
			
				|  |  | -                    + (item.getColKey() != null && item.getColKey().contains("__") ? item.getColKey().split("__")[0] : item.getColKey())
 | 
	
		
			
				|  |  | -                    + item.getSigRoleId(), textdictInfo -> textdictInfo));
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            querySql = String.format("SELECT * from m_textdict_info WHERE project_id = %d and excel_id = %d and type in (2, 6) and exists (SELECT 1 from m_wbs_tree_private WHERE p_key_id = tab_id and html_url = '%s' )"
 | 
	
		
			
				|  |  | -                    , Long.parseLong(wbsTreePrivate.getProjectId()), wbsTreePrivate.getExcelId(), wbsTreePrivate.getHtmlUrl());
 | 
	
		
			
				|  |  | -            oldTextDictInfos = jdbcTemplate.query(querySql, new BeanPropertyRowMapper<>(TextdictInfo.class));
 | 
	
		
			
				|  |  | -            if (!oldTextDictInfos.isEmpty()) {
 | 
	
		
			
				|  |  | -                oldTextDictInfoMap = oldTextDictInfos.stream().collect(Collectors.toMap(item -> item.getProjectId() + item.getExcelId()
 | 
	
		
			
				|  |  | -                        + (item.getColKey() != null && item.getColKey().contains("__") ? item.getColKey().split("__")[0] : item.getColKey())
 | 
	
		
			
				|  |  | -                        + item.getSigRoleId(), textdictInfo -> textdictInfo));
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                oldTextDictInfoMap = new HashMap<>();
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +        Map<String, TextdictInfo> oldTextDictInfoMap = new HashMap<>();
 | 
	
		
			
				|  |  | +        List<TextdictInfoVO> oldTextDictInfos = new ArrayList<>();
 | 
	
		
			
				|  |  | +        TextdictInfoVO param = new TextdictInfoVO();
 | 
	
		
			
				|  |  | +        param.setProjectId(wbsTreePrivate.getProjectId());
 | 
	
		
			
				|  |  | +        param.setTabId(wbsTreePrivate.getPKeyId() + "");
 | 
	
		
			
				|  |  | +        param.setShowType(1);
 | 
	
		
			
				|  |  | +        param.setType(2);
 | 
	
		
			
				|  |  | +        IPage<TextdictInfoVO> signConfigs = textdictInfoService.selectTextdictInfoPage(new Page<>(1, 1000), param);
 | 
	
		
			
				|  |  | +        if (signConfigs != null && signConfigs.getRecords() != null && !signConfigs.getRecords().isEmpty()) {
 | 
	
		
			
				|  |  | +            oldTextDictInfos = signConfigs.getRecords();
 | 
	
		
			
				|  |  | +            oldTextDictInfoMap = oldTextDictInfos.stream().collect(Collectors.toMap(item -> item.getProjectId() + item.getId(), textdictInfo -> textdictInfo));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 由于要实现电签 一对多(1个key 对应多个电签Id)
 | 
	
		
			
				|  |  |          Map<String,String> keyMap = new HashMap<>();
 | 
	
	
		
			
				|  | @@ -719,12 +712,10 @@ public class TextdictInfoController extends BladeController {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              textdictInfo.setColKey(colKey);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            TextdictInfo info = oldTextDictInfoMap.get(wbsTreePrivate.getProjectId() + wbsTreePrivate.getExcelId() + (colKey != null && colKey.contains("__") ? colKey.split("__")[0] : colKey) + sigRoleId);
 | 
	
		
			
				|  |  | +            TextdictInfo info = oldTextDictInfoMap.get(wbsTreePrivate.getProjectId() + id);
 | 
	
		
			
				|  |  |              if (info != null) {
 | 
	
		
			
				|  |  | -                textdictInfo.setId(info.getId());
 | 
	
		
			
				|  |  |                  updateList.add(textdictInfo);
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  | -                textdictInfo.setId(SnowFlakeUtil.getId());
 | 
	
		
			
				|  |  |                  addList.add(textdictInfo);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              newTextDictInfos.add(textdictInfo);
 | 
	
	
		
			
				|  | @@ -751,7 +742,7 @@ public class TextdictInfoController extends BladeController {
 | 
	
		
			
				|  |  |          String str1 = wbsTreePrivate.getHtmlUrl().replace("Desktop//privateUrl", "Desktop/privateUrl");
 | 
	
		
			
				|  |  |          String replace = str1.replace("\\", "\\\\");
 | 
	
		
			
				|  |  |          if (!oldTextDictInfos.isEmpty()) {
 | 
	
		
			
				|  |  | -            Set<Long> set = oldTextDictInfos.stream().map(TextdictInfo::getId).collect(Collectors.toSet());
 | 
	
		
			
				|  |  | +            Set<Long> set = oldTextDictInfos.stream().map(TextdictInfoVO::getId).collect(Collectors.toSet());
 | 
	
		
			
				|  |  |              // 先逻辑删除然后修改
 | 
	
		
			
				|  |  |              this.textdictInfoService.update(Wrappers.<TextdictInfo>lambdaUpdate().eq(TextdictInfo::getProjectId, wbsTreePrivate.getProjectId())
 | 
	
		
			
				|  |  |                      .eq(TextdictInfo::getExcelId, wbsTreePrivate.getExcelId()).in(TextdictInfo::getType, 2, 6).in(TextdictInfo::getId, set).set(TextdictInfo::getIsDeleted, 1));
 |