|
@@ -327,43 +327,56 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
@Override
|
|
@Override
|
|
public boolean updateBatchByPid(List<WbsTreePrivateDTO3> wbsTreePrivates) {
|
|
public boolean updateBatchByPid(List<WbsTreePrivateDTO3> wbsTreePrivates) {
|
|
try {
|
|
try {
|
|
- //修改当前私有项目元素表基础信息
|
|
|
|
- wbsTreePrivates.forEach(list -> {
|
|
|
|
- this.update(Wrappers.<WbsTreePrivate>lambdaUpdate()
|
|
|
|
- .set(WbsTreePrivate::getNodeName, list.getNodeName())
|
|
|
|
- .set(WbsTreePrivate::getFullName, list.getNodeName())
|
|
|
|
- .set(WbsTreePrivate::getTableType, list.getTableType())
|
|
|
|
- .set(WbsTreePrivate::getTableOwner, list.getTableOwner())
|
|
|
|
- .set(WbsTreePrivate::getFillRate, list.getFillRate())
|
|
|
|
- .set(WbsTreePrivate::getNodeType, list.getNodeType())
|
|
|
|
- .eq(WbsTreePrivate::getPKeyId, list.getPKeyId())
|
|
|
|
- );
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- //获取最新项目表信息
|
|
|
|
|
|
+ //获取数据源
|
|
List<Long> pKeyIds = wbsTreePrivates.stream().map(WbsTreePrivateDTO3::getPKeyId).collect(Collectors.toList());
|
|
List<Long> pKeyIds = wbsTreePrivates.stream().map(WbsTreePrivateDTO3::getPKeyId).collect(Collectors.toList());
|
|
List<WbsTreePrivate> wbsTreePrivateNew = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
List<WbsTreePrivate> wbsTreePrivateNew = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
- .select(WbsTreePrivate::getNodeName, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getId, WbsTreePrivate::getSort, WbsTreePrivate::getProjectId)
|
|
|
|
|
|
+ .select(WbsTreePrivate::getProjectId, WbsTreePrivate::getPKeyId, WbsTreePrivate::getNodeName, WbsTreePrivate::getTableOwner, WbsTreePrivate::getTableType, WbsTreePrivate::getFillRate)
|
|
.in(WbsTreePrivate::getPKeyId, pKeyIds));
|
|
.in(WbsTreePrivate::getPKeyId, pKeyIds));
|
|
|
|
+
|
|
|
|
+ //将wbsTreePrivateNew转为对应Map
|
|
|
|
+ Map<Long, String> wbsTreePrivateNameMap = wbsTreePrivateNew.stream().collect(Collectors.toMap(WbsTreePrivate::getPKeyId, WbsTreePrivate::getNodeName));
|
|
|
|
+ Map<Long, Integer> wbsTreePrivateTabTypeMap = wbsTreePrivateNew.stream().collect(Collectors.toMap(WbsTreePrivate::getPKeyId, WbsTreePrivate::getTableType));
|
|
|
|
+ Map<Long, String> wbsTreePrivateTabOwnerMap = wbsTreePrivateNew.stream().collect(Collectors.toMap(WbsTreePrivate::getPKeyId, WbsTreePrivate::getTableOwner));
|
|
|
|
+ Map<Long, String> wbsTreePrivateFillRateMap = wbsTreePrivateNew.stream().collect(Collectors.toMap(WbsTreePrivate::getPKeyId, WbsTreePrivate::getFillRate));
|
|
|
|
+
|
|
|
|
+ //获取项目下所有合同段ids
|
|
String projectId = wbsTreePrivateNew.stream().map(WbsTreePrivate::getProjectId).findAny().orElse(null);
|
|
String projectId = wbsTreePrivateNew.stream().map(WbsTreePrivate::getProjectId).findAny().orElse(null);
|
|
|
|
+ List<Long> contractInfoIds = contractInfoMapper.selectList(Wrappers.<ContractInfo>lambdaQuery().select(ContractInfo::getId, ContractInfo::getContractType).eq(ContractInfo::getPId, projectId)).stream().filter(f -> f.getContractType() == 1).map(ContractInfo::getId).collect(Collectors.toList());
|
|
|
|
|
|
- //修改当前项目下所有合同段中的元素表基础信息
|
|
|
|
- if (StringUtils.isNotEmpty(projectId) && wbsTreePrivateNew.size() > 0) {
|
|
|
|
- //获取所有合同段ids
|
|
|
|
- List<Long> contractInfoIds = contractInfoMapper.selectList(Wrappers.<ContractInfo>lambdaQuery().select(ContractInfo::getId).eq(ContractInfo::getPId, projectId)).stream().map(ContractInfo::getId).collect(Collectors.toList());
|
|
|
|
- if (contractInfoIds.size() > 0) {
|
|
|
|
- for (Long contractId : contractInfoIds) {
|
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateNew) {
|
|
|
|
- //判断当前合同段是否存在该元素表、以及该元素表父级节点(包括新增、复制节点)
|
|
|
|
- long row = wbsTreeContractMapper.selectCount(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
|
- .eq(WbsTreeContract::getStatus, 1)
|
|
|
|
- .eq(WbsTreeContract::getContractId, contractId)
|
|
|
|
- .eq(WbsTreeContract::getProjectId, projectId)
|
|
|
|
- .and(obj -> obj.eq(WbsTreeContract::getId, wbsTreePrivate.getId()).or().eq(WbsTreeContract::getParentId, wbsTreePrivate.getId()).or().eq(WbsTreeContract::getOldId, wbsTreePrivate.getId()))
|
|
|
|
- );
|
|
|
|
- //修改原始、复制、新增节点下的元素表
|
|
|
|
- if (row > 0) {
|
|
|
|
- wbsTreeContractMapper.updateContractTablesInfo(contractId, wbsTreePrivate);
|
|
|
|
|
|
+ //修改当前私有项目元素表基础信息
|
|
|
|
+ for (WbsTreePrivateDTO3 wbsTreePrivate : wbsTreePrivates) {
|
|
|
|
+ //数据变动才修改
|
|
|
|
+ if (!wbsTreePrivateNameMap.get(wbsTreePrivate.getPKeyId()).equals(wbsTreePrivate.getNodeName())
|
|
|
|
+ || !wbsTreePrivateTabTypeMap.get(wbsTreePrivate.getPKeyId()).equals(wbsTreePrivate.getTableType())
|
|
|
|
+ || !wbsTreePrivateTabOwnerMap.get(wbsTreePrivate.getPKeyId()).equals(wbsTreePrivate.getTableOwner())
|
|
|
|
+ || !wbsTreePrivateFillRateMap.get(wbsTreePrivate.getPKeyId()).equals(wbsTreePrivate.getFillRate())
|
|
|
|
+ ) {
|
|
|
|
+ WbsTreePrivate wbsTreePrivateParam = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
|
|
|
|
+ if (wbsTreePrivateParam != null) {
|
|
|
|
+ //修改
|
|
|
|
+ boolean update = this.update(Wrappers.<WbsTreePrivate>lambdaUpdate()
|
|
|
|
+ .set(WbsTreePrivate::getNodeName, wbsTreePrivate.getNodeName())
|
|
|
|
+ .set(WbsTreePrivate::getFullName, wbsTreePrivate.getNodeName())
|
|
|
|
+ .set(WbsTreePrivate::getTableType, wbsTreePrivate.getTableType())
|
|
|
|
+ .set(WbsTreePrivate::getTableOwner, wbsTreePrivate.getTableOwner())
|
|
|
|
+ .set(WbsTreePrivate::getFillRate, wbsTreePrivate.getFillRate())
|
|
|
|
+ .set(WbsTreePrivate::getNodeType, wbsTreePrivate.getNodeType())
|
|
|
|
+ .eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getPKeyId())
|
|
|
|
+ );
|
|
|
|
+ if (update) {
|
|
|
|
+ //直接修改合同段下所有类似的表(根据full_name=node_name模糊搜索)
|
|
|
|
+ for (Long contractInfoId : contractInfoIds) {
|
|
|
|
+ List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
|
+ .select(WbsTreeContract::getPKeyId)
|
|
|
|
+ .eq(WbsTreeContract::getStatus, 1)
|
|
|
|
+ .eq(WbsTreeContract::getProjectId, projectId)
|
|
|
|
+ .eq(WbsTreeContract::getContractId, contractInfoId)
|
|
|
|
+ .like(WbsTreeContract::getFullName, wbsTreePrivateNameMap.get(wbsTreePrivate.getPKeyId())));
|
|
|
|
+ //批量修改
|
|
|
|
+ if (wbsTreeContracts.size() > 0) {
|
|
|
|
+ List<Long> pKeyIdsContracts = wbsTreeContracts.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
|
|
|
|
+ wbsTreeContractMapper.updateContractTablesInfo(contractInfoId, wbsTreePrivateParam, pKeyIdsContracts);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -907,14 +920,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
/*源配置sourceListMap,目标配置distListMap*/
|
|
/*源配置sourceListMap,目标配置distListMap*/
|
|
List<Map<String, Object>> distListMap = this.jdbcTemplate.queryForList("select a.id,a.name,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
List<Map<String, Object>> distListMap = this.jdbcTemplate.queryForList("select a.id,a.name,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + distNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(projectId));
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + distNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(projectId));
|
|
- List<Map<String, Object>> sourceListMap =this.getSourceListMap(projectInfo,selectNodeNow,selectNodeAndChildNodes);
|
|
|
|
- compareAndSync(sourceListMap,distListMap,projectId);
|
|
|
|
|
|
+ List<Map<String, Object>> sourceListMap = this.getSourceListMap(projectInfo, selectNodeNow, selectNodeAndChildNodes);
|
|
|
|
+ compareAndSync(sourceListMap, distListMap, projectId);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- private List<Map<String, Object>> getSourceListMap(ProjectInfo projectInfo, WbsTreePrivate selectNodeNow,List<WbsTreePrivate> selectNodeAndChildNodes){
|
|
|
|
|
|
+ private List<Map<String, Object>> getSourceListMap(ProjectInfo projectInfo, WbsTreePrivate selectNodeNow, List<WbsTreePrivate> selectNodeAndChildNodes) {
|
|
List<Map<String, Object>> sourceListMap = new ArrayList<>();
|
|
List<Map<String, Object>> sourceListMap = new ArrayList<>();
|
|
if (("private").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
if (("private").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
// 节点参数nodeId绑定的是m_wbs_private 的p_key_id
|
|
// 节点参数nodeId绑定的是m_wbs_private 的p_key_id
|
|
@@ -927,38 +940,38 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
selectNodeAndChildNodes.add(selectNodeNow);*/
|
|
selectNodeAndChildNodes.add(selectNodeNow);*/
|
|
List<Long> sourceNodeIds = jdbcTemplate.queryForList("select p_key_id from m_wbs_tree_private where id in(" + selectNodeAndChildNodes.stream().map(WbsTreePrivate::getId).map(Object::toString).collect(Collectors.joining(",")) + ") and is_deleted=0 and project_id =" + sourceRootNode.getProjectId(), Long.class);
|
|
List<Long> sourceNodeIds = jdbcTemplate.queryForList("select p_key_id from m_wbs_tree_private where id in(" + selectNodeAndChildNodes.stream().map(WbsTreePrivate::getId).map(Object::toString).collect(Collectors.joining(",")) + ") and is_deleted=0 and project_id =" + sourceRootNode.getProjectId(), Long.class);
|
|
/*List<Long> distNodeIds = selectNodeAndChildNodes.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());*/
|
|
/*List<Long> distNodeIds = selectNodeAndChildNodes.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());*/
|
|
- sourceListMap = this.jdbcTemplate.queryForList("select a.id,a.name ,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
|
|
|
|
+ sourceListMap = this.jdbcTemplate.queryForList("select a.id,a.name ,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + sourceNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(sourceRootNode.getProjectId()));
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + sourceNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(sourceRootNode.getProjectId()));
|
|
/*List<Map<String, Object>> distListMap = this.jdbcTemplate.queryForList("select a.id,a.name,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
/*List<Map<String, Object>> distListMap = this.jdbcTemplate.queryForList("select a.id,a.name,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + distNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(projectId));*/
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + distNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(projectId));*/
|
|
- /* compareAndSync(sourceListMap,distListMap,projectId);*/
|
|
|
|
- }else{
|
|
|
|
|
|
+ /* compareAndSync(sourceListMap,distListMap,projectId);*/
|
|
|
|
+ } else {
|
|
/*WBS同步到public*/
|
|
/*WBS同步到public*/
|
|
/* List<WbsTreePrivate> selectNodeAndChildNodes = Optional.ofNullable(this.getChildNodes(selectNodeNow)).orElse(new ArrayList<>());
|
|
/* List<WbsTreePrivate> selectNodeAndChildNodes = Optional.ofNullable(this.getChildNodes(selectNodeNow)).orElse(new ArrayList<>());
|
|
selectNodeAndChildNodes.add(selectNodeNow);*/
|
|
selectNodeAndChildNodes.add(selectNodeNow);*/
|
|
- List<Long> sourceNodeIds = jdbcTemplate.queryForList("select id from m_wbs_tree where id in ("+selectNodeAndChildNodes.stream().map(WbsTreePrivate::getId).map(Objects::toString).collect(Collectors.joining(","))+")",Long.class);
|
|
|
|
|
|
+ List<Long> sourceNodeIds = jdbcTemplate.queryForList("select id from m_wbs_tree where id in (" + selectNodeAndChildNodes.stream().map(WbsTreePrivate::getId).map(Objects::toString).collect(Collectors.joining(",")) + ")", Long.class);
|
|
/* List<Long> distNodeIds = selectNodeAndChildNodes.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());*/
|
|
/* List<Long> distNodeIds = selectNodeAndChildNodes.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());*/
|
|
- sourceListMap = this.jdbcTemplate.queryForList("select a.id,a.name ,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime from m_wbs_param a join m_wbs_tree b on a.node_id = b.id where b.id in(" + sourceNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1");
|
|
|
|
|
|
+ sourceListMap = this.jdbcTemplate.queryForList("select a.id,a.name ,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime from m_wbs_param a join m_wbs_tree b on a.node_id = b.id where b.id in(" + sourceNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1");
|
|
/*List<Map<String, Object>> distListMap = this.jdbcTemplate.queryForList("select a.id,a.name,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
/*List<Map<String, Object>> distListMap = this.jdbcTemplate.queryForList("select a.id,a.name,a.k,a.v,a.remark,a.node_id nodeId ,b.id privateId,a.update_time updateTime " +
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + distNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(projectId));*/
|
|
"from m_wbs_param a join m_wbs_tree_private b on a.node_id = b.p_key_id where b.project_id in(?) and b.p_key_id in(" + distNodeIds.stream().map(Object::toString).collect(Collectors.joining(",")) + ") and a.is_deleted=0 and a.type=1 ", Long.parseLong(projectId));*/
|
|
- /* compareAndSync(sourceListMap,distListMap,projectId);*/
|
|
|
|
|
|
+ /* compareAndSync(sourceListMap,distListMap,projectId);*/
|
|
}
|
|
}
|
|
return sourceListMap;
|
|
return sourceListMap;
|
|
}
|
|
}
|
|
|
|
|
|
- public void compareAndSync( List<Map<String, Object>> sourceListMap,List<Map<String, Object>> distListMap,String projectId){
|
|
|
|
|
|
+ public void compareAndSync(List<Map<String, Object>> sourceListMap, List<Map<String, Object>> distListMap, String projectId) {
|
|
/*存在多个同名参数;保留日期最新那个参数*/
|
|
/*存在多个同名参数;保留日期最新那个参数*/
|
|
BinaryOperator<Map<String, Object>> mapBinaryOperator = (m1, m2) -> {
|
|
BinaryOperator<Map<String, Object>> mapBinaryOperator = (m1, m2) -> {
|
|
Object sts = m1.get("updateTime");
|
|
Object sts = m1.get("updateTime");
|
|
Object dts = m2.get("updateTime");
|
|
Object dts = m2.get("updateTime");
|
|
if (Func.isNotEmpty(sts) && Func.isNotEmpty(dts)) {
|
|
if (Func.isNotEmpty(sts) && Func.isNotEmpty(dts)) {
|
|
LocalDateTime sldt = ((Timestamp) sts).toLocalDateTime();
|
|
LocalDateTime sldt = ((Timestamp) sts).toLocalDateTime();
|
|
- LocalDateTime tldt = ((Timestamp)dts).toLocalDateTime();
|
|
|
|
|
|
+ LocalDateTime tldt = ((Timestamp) dts).toLocalDateTime();
|
|
return sldt.isAfter(tldt) ? m1 : m2;
|
|
return sldt.isAfter(tldt) ? m1 : m2;
|
|
}
|
|
}
|
|
return m2;
|
|
return m2;
|
|
};
|
|
};
|
|
- BiPredicate<Map<String, Object>, Map<String, Object>> timeComparison = (m1, m2) -> mapBinaryOperator.apply(m1,m2).equals(m1);
|
|
|
|
|
|
+ BiPredicate<Map<String, Object>, Map<String, Object>> timeComparison = (m1, m2) -> mapBinaryOperator.apply(m1, m2).equals(m1);
|
|
/*id+k 就是匹配码*/
|
|
/*id+k 就是匹配码*/
|
|
/*用匹配码链接源节点和目标节点的参数*/
|
|
/*用匹配码链接源节点和目标节点的参数*/
|
|
/*源无目标有不复制,源有目标无,则复制*/
|
|
/*源无目标有不复制,源有目标无,则复制*/
|
|
@@ -974,7 +987,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
Map<String, Object> u = distMap.get(k);
|
|
Map<String, Object> u = distMap.get(k);
|
|
String t = Func.toStr(u.get("v"));
|
|
String t = Func.toStr(u.get("v"));
|
|
if (!s.equals(t)) {
|
|
if (!s.equals(t)) {
|
|
- if(timeComparison.test(v,u)){
|
|
|
|
|
|
+ if (timeComparison.test(v, u)) {
|
|
u.put("v", s);
|
|
u.put("v", s);
|
|
updateMap.put(u.get("id").toString(), u);
|
|
updateMap.put(u.get("id").toString(), u);
|
|
}
|
|
}
|
|
@@ -1764,20 +1777,21 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
|
|
|
/**
|
|
/**
|
|
* 批量同步表单配置信息
|
|
* 批量同步表单配置信息
|
|
|
|
+ *
|
|
* @param map
|
|
* @param map
|
|
*/
|
|
*/
|
|
@Async
|
|
@Async
|
|
@Override
|
|
@Override
|
|
- public void batchSynTableConfig(Map<Long,Long> map) {
|
|
|
|
- System.out.println("异步同步表单配置:map大小:"+map.size());
|
|
|
|
|
|
+ public void batchSynTableConfig(Map<Long, Long> map) {
|
|
|
|
+ System.out.println("异步同步表单配置:map大小:" + map.size());
|
|
//获取所有表单配置
|
|
//获取所有表单配置
|
|
List<TextdictInfo> list = baseMapper.getALLTableConfig(map.keySet());
|
|
List<TextdictInfo> list = baseMapper.getALLTableConfig(map.keySet());
|
|
- if (list != null && list.size() > 0){
|
|
|
|
- System.out.println("异步同步表单配置:配置总条数:"+list.size());
|
|
|
|
|
|
+ if (list != null && list.size() > 0) {
|
|
|
|
+ System.out.println("异步同步表单配置:配置总条数:" + list.size());
|
|
//id设置为null,替换调tableId
|
|
//id设置为null,替换调tableId
|
|
for (TextdictInfo info : list) {
|
|
for (TextdictInfo info : list) {
|
|
info.setId(null);
|
|
info.setId(null);
|
|
- info.setTabId(map.get(Long.parseLong(info.getTabId()))+"");
|
|
|
|
|
|
+ info.setTabId(map.get(Long.parseLong(info.getTabId())) + "");
|
|
}
|
|
}
|
|
//批量保存
|
|
//批量保存
|
|
if (list.size() > 1000) {
|
|
if (list.size() > 1000) {
|