|
@@ -1245,13 +1245,81 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
|
|
|
List<WbsTreeContract> list = stringListEntry.getValue();
|
|
|
for (WbsTreeContract wbsTreeContract : list) {
|
|
|
if(wbsTreeContract.getIsCopeTab()==null||wbsTreeContract.getIsCopeTab()!=2){
|
|
|
-
|
|
|
+ WbsTreeContract wbsInfo = this.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
+ .eq(WbsTreeContract::getPKeyId, wbsTreeContract.getPKeyId()));
|
|
|
+ List<WbsTreeContract> wbsTreeContractList = this.getBaseMapper().selectList(Wrappers.<WbsTreeContract>query().lambda()
|
|
|
+ .likeRight(WbsTreeContract::getNodeName,wbsInfo.getNodeName())
|
|
|
+ .eq(WbsTreeContract::getContractId, wbsInfo.getContractId())
|
|
|
+ .eq(WbsTreeContract::getParentId, wbsInfo.getParentId())
|
|
|
+ .eq(WbsTreeContract::getTableOwner, wbsInfo.getTableOwner()));
|
|
|
+ List<WbsTreeContract> wbsTreeContractList2 = wbsTreeContractList.stream().sorted(Comparator.comparing(WbsTreeContract::getCreateTime).reversed()).collect(Collectors.toList());
|
|
|
+ Set<String> strings = wbsTreeContractList2.stream().map(o -> o.getNodeName()).collect(Collectors.toSet());
|
|
|
+ List<WbsTreeContract>wbsTreeContractList3=wbsTreeContractList.stream().sorted(Comparator.comparing(WbsTreeContract::getCreateTime)).collect(Collectors.toList());
|
|
|
+ Boolean flag=false;
|
|
|
+ if(strings.size()!=wbsTreeContractList3.size()){
|
|
|
+ flag=true;
|
|
|
+ for (int i = 0; i < wbsTreeContractList3.size(); i++) {
|
|
|
+ if(wbsTreeContractList3.get(i).getIsCopeTab()!=null&&wbsTreeContractList3.get(i).getIsCopeTab().equals(Integer.valueOf(2))){
|
|
|
+ String nodeName=wbsTreeContractList3.get(0).getNodeName();
|
|
|
+ nodeName=nodeName+"__"+(i);
|
|
|
+ wbsTreeContractList3.get(i).setNodeName(nodeName);
|
|
|
+ String update="UPDATE m_wbs_tree_contract Set node_name= "+"'"+wbsTreeContractList3.get(i).getNodeName()+"'"+" WHERE p_key_id="+wbsTreeContractList3.get(i).getPKeyId();
|
|
|
+ jdbcTemplate.update(update);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //新增
|
|
|
+ long tabGroupId = SnowFlakeUtil.getId();
|
|
|
+ long newPkId = SnowFlakeUtil.getId();
|
|
|
+ WbsTreeContract wbsTreeContract1 = new WbsTreeContract();
|
|
|
+ BeanUtil.copy(wbsInfo, wbsTreeContract1);
|
|
|
+ wbsTreeContract1.setPKeyId(newPkId);
|
|
|
+ wbsTreeContract1.setCreateTime(new Date());
|
|
|
+ wbsTreeContract1.setTabGroupId(tabGroupId);
|
|
|
+ String nodeName;
|
|
|
+ if(flag){
|
|
|
+ nodeName=wbsTreeContractList3.get(wbsTreeContractList3.size()-1).getNodeName();
|
|
|
+ }else {
|
|
|
+ nodeName= wbsTreeContractList2.get(0).getNodeName();
|
|
|
+ }
|
|
|
+ if (nodeName.indexOf("__") >= 0) {
|
|
|
+ String[] oldName = nodeName.split("__");
|
|
|
+ nodeName = oldName[0] + "__" + (Integer.parseInt(oldName[1]) + 1);
|
|
|
+ } else {
|
|
|
+ nodeName = nodeName + "__" + 1;
|
|
|
+ }
|
|
|
+ wbsTreeContract1.setNodeName(nodeName);
|
|
|
+ wbsTreeContract1.setIsCopeTab(2);
|
|
|
+ wbsTreeContract1.setIsTabPdf(1); // pdf 不能预览
|
|
|
+ wbsTreeContract1.setIsBussShow(1); // 是否隐藏表
|
|
|
+ wbsTreeContract1.setTabFileType(1);//没有上传附件
|
|
|
+ wbsTreeContract1.setPdfUrl("");
|
|
|
+ wbsTreeContract.setIsDeleted(1);
|
|
|
+ String tabName = wbsTreeContract.getInitTableName();
|
|
|
+ // 字段查询 并去掉公式字段
|
|
|
+ String colkeys = "SELECT GROUP_CONCAT(COLUMN_NAME) as colkeys from information_schema.COLUMNS c where c.table_name='" + tabName + "' and COLUMN_NAME not in('id','p_key_id')";
|
|
|
+ Map<String, Object> stringObjectMap = jdbcTemplate.queryForMap(colkeys);
|
|
|
+ colkeys = stringObjectMap.get("colkeys") + "";
|
|
|
+ // 复制表数据
|
|
|
+ String querySql = "insert into " + tabName + " (id,p_key_id," + colkeys + ") select '" + newPkId + "','" + newPkId + "'," + colkeys + " from " + tabName + " where p_key_id=" + wbsTreeContract1.getPKeyId();
|
|
|
+ jdbcTemplate.execute(querySql);
|
|
|
+ this.save(wbsTreeContract1);
|
|
|
+ for (WbsTreeContract wbsTreeCont : wbsTreeContractList2) {
|
|
|
+ UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.in("p_key_id", wbsTreeCont.getPKeyId() + "");
|
|
|
+ updateWrapper.set("tab_group_id", tabGroupId);
|
|
|
+ this.update(updateWrapper);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ tabs = baseMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, node.getId())
|
|
|
+ .eq(WbsTreeContract::getContractId, node.getContractId()).eq(WbsTreeContract::getType, 2)
|
|
|
+ .eq(WbsTreeContract::getWbsId, node.getWbsId())
|
|
|
+ .apply("(wbs_type is null OR wbs_type = " + node.getWbsType() + ")")
|
|
|
+ .eq(WbsTreeContract::getStatus, 1)
|
|
|
+ .ne(WbsTreeContract::getIsBussShow, 2)); //隐藏的表单不操作
|
|
|
Map<Long, WbsTreeContract> tabMaps = tabs.stream().collect(Collectors.toMap(WbsTreeContract::getPKeyId, Function.identity()));
|
|
|
|
|
|
//初始化表
|