|
@@ -26,6 +26,7 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
|
|
|
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
|
|
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
|
|
|
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
|
|
|
+import org.apache.commons.lang.StringEscapeUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
import org.springblade.core.log.exception.ServiceException;
|
|
@@ -331,17 +332,17 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
public String submitWbsTreeInProject(WbsTreeContractDTO pawDTO) {
|
|
|
String wbsTreeIds = pawDTO.getWbsTreeIds();
|
|
|
/*if (StringUtils.isEmpty(wbsTreeIds)) {
|
|
|
- return "1";
|
|
|
+ throw new ServiceException("请选择需要关联的节点树");
|
|
|
}*/
|
|
|
String[] ids = wbsTreeIds.split(",");
|
|
|
List<String> idList1 = Arrays.asList(ids);
|
|
|
List<String> idList2 = new ArrayList<>();
|
|
|
//查询出当前私有库下所有的wbs节点
|
|
|
- QueryWrapper<WbsTreePrivate> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("wbs_id", pawDTO.getWbsId());
|
|
|
- queryWrapper.eq("project_id", pawDTO.getProjectId());
|
|
|
- queryWrapper.eq("type", 1);
|
|
|
- List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(queryWrapper);
|
|
|
+ List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
|
+ .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
+ .eq(WbsTreePrivate::getType, 1)
|
|
|
+ );
|
|
|
for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
|
|
|
idList2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
}
|
|
@@ -353,28 +354,28 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
List<WbsTree> allNodeList = findAllNodeList(wbsTreeIds);
|
|
|
List<WbsTree> wbsTreeListAll = new ArrayList<>();
|
|
|
for (WbsTree wbsTree : allNodeList) {
|
|
|
- QueryWrapper<WbsTree> queryWrapper1 = new QueryWrapper<>();
|
|
|
- queryWrapper1.eq("wbs_id", pawDTO.getWbsId());
|
|
|
- queryWrapper1.eq("type", 2);
|
|
|
- queryWrapper1.eq("parent_id", wbsTree.getId());
|
|
|
- List<WbsTree> wbsTreeList = wbsTreeMapper.selectList(queryWrapper1);
|
|
|
+ List<WbsTree> wbsTreeList = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
+ .eq(WbsTree::getWbsId, pawDTO.getWbsId())
|
|
|
+ .eq(WbsTree::getType, 2)
|
|
|
+ .eq(WbsTree::getParentId, wbsTree.getId())
|
|
|
+ );
|
|
|
wbsTreeListAll.addAll(wbsTreeList);
|
|
|
}
|
|
|
for (WbsTree wbsTree : wbsTreeListAll) {
|
|
|
tableId1.add(String.valueOf(wbsTree.getId()));
|
|
|
}
|
|
|
//获取项目私有树下所有的元素表
|
|
|
- QueryWrapper<WbsTreePrivate> queryWrapper3 = new QueryWrapper<>();
|
|
|
- queryWrapper3.eq("wbs_id", pawDTO.getWbsId());
|
|
|
- queryWrapper3.eq("project_id", pawDTO.getProjectId());
|
|
|
- queryWrapper3.eq("type", 2);
|
|
|
- List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(queryWrapper3);
|
|
|
+ List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
|
+ .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
|
+ );
|
|
|
for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates1) {
|
|
|
tableId2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
}
|
|
|
List<String> diffrent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
|
|
|
if (diffrent1.size() == 0) {
|
|
|
- return "2";
|
|
|
+ throw new ServiceException("未进行任何操作");
|
|
|
} else {
|
|
|
if (tableId1.size() > tableId2.size()) {
|
|
|
//同步元素表
|
|
@@ -383,15 +384,19 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
Long snowId1 = SnowFlakeUtil.getId();
|
|
|
wbsTreePrivateMapper.insertCombination1(snowId1, wbsTree, pawDTO.getWbsType(), pawDTO.getProjectId());
|
|
|
}
|
|
|
- return "3";
|
|
|
+ return "1";
|
|
|
}
|
|
|
- //TODO 暂未说明是否要同步删除
|
|
|
+ //TODO 是否要同步删除元素表
|
|
|
}
|
|
|
} else {
|
|
|
if (idList1.size() > idList2.size()) {
|
|
|
+ //新增前去删除当前项目已经引用的旧的私有节点,避免重复引用
|
|
|
+ wbsTreePrivateMapper.delete(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId()));
|
|
|
+
|
|
|
for (String id : diffrent) {
|
|
|
//项目私有wbs节点库存在该节点且为删除状态,那么修改is_deleted=0,否则新增
|
|
|
WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition2(id, pawDTO.getProjectId(), pawDTO.getWbsId());
|
|
|
+
|
|
|
if (wbsTreePrivate != null) {
|
|
|
//修改该节点
|
|
|
wbsTreePrivateMapper.updateByCondition(id, pawDTO.getProjectId(), pawDTO.getWbsId());
|
|
@@ -411,15 +416,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
//新增元素表
|
|
|
for (WbsTree tree : wbsTreeTableList) {
|
|
|
//判重
|
|
|
- QueryWrapper<WbsTreePrivate> queryWrapper1 = new QueryWrapper<>();
|
|
|
- queryWrapper1.eq("id", tree.getId());
|
|
|
- queryWrapper1.eq("wbs_id", pawDTO.getWbsId());
|
|
|
- queryWrapper1.eq("project_id", pawDTO.getProjectId());
|
|
|
- queryWrapper1.eq("parent_id", tree.getParentId());
|
|
|
- queryWrapper1.eq("dept_name", tree.getDeptName());
|
|
|
- queryWrapper1.eq("type", 2);
|
|
|
- WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper1);
|
|
|
- System.out.println(wbsTreePrivates1 + " wbsTreePrivates1 ");
|
|
|
+ WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getId, tree.getId())
|
|
|
+ .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
|
+ .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
+ .eq(WbsTreePrivate::getParentId, tree.getParentId())
|
|
|
+ .eq(WbsTreePrivate::getDeptName, tree.getDeptName())
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
|
+ );
|
|
|
if (wbsTreePrivates1 == null) {
|
|
|
Long snowId1 = SnowFlakeUtil.getId();
|
|
|
wbsTreePrivateMapper.insertCombination1(snowId1, tree, pawDTO.getWbsType(), pawDTO.getProjectId());
|
|
@@ -434,22 +438,27 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
WbsTreePrivate wbsTreePrivate1 = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getWbsId(), pawDTO.getReferencePrivateWbsProjectId());
|
|
|
//引用的私有库根节点primaryKeyId,赋值给新增的私有树wbsId字段
|
|
|
String wbsId = String.valueOf(pawDTO.getPrimaryKeyId());
|
|
|
+ if (wbsTreePrivate1 == null) {
|
|
|
+ throw new ServiceException("当前WBS私有树不存在,请重新选择");
|
|
|
+ }
|
|
|
wbsTreePrivate1.setWbsId(wbsId);
|
|
|
Long snowId = SnowFlakeUtil.getId();
|
|
|
+
|
|
|
+ //新增
|
|
|
wbsTreePrivateMapper.insertCombination2(snowId, wbsTreePrivate1, pawDTO.getProjectId()); //pawDTO.getProjectId() 为当前项目id
|
|
|
//查询该节点下是否有元素表
|
|
|
List<WbsTree> wbsTreeTableList = wbsTreePrivateMapper.selectIsTable(wbsTreePrivate1.getId(), pawDTO.getReferencePrivateWbsProjectId());
|
|
|
if (wbsTreeTableList.size() > 0) {
|
|
|
for (WbsTree tree : wbsTreeTableList) {
|
|
|
//判重
|
|
|
- QueryWrapper<WbsTreePrivate> queryWrapper2 = new QueryWrapper<>();
|
|
|
- queryWrapper2.eq("id", tree.getId());
|
|
|
- queryWrapper2.eq("wbs_id", pawDTO.getWbsId());
|
|
|
- queryWrapper2.eq("project_id", pawDTO.getProjectId());
|
|
|
- queryWrapper2.eq("parent_id", tree.getParentId());
|
|
|
- queryWrapper2.eq("dept_name", tree.getDeptName());
|
|
|
- queryWrapper2.eq("type", 2);
|
|
|
- WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(queryWrapper2);
|
|
|
+ WbsTreePrivate wbsTreePrivates1 = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .eq(WbsTreePrivate::getId, tree.getId())
|
|
|
+ .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
|
+ .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
|
+ .eq(WbsTreePrivate::getParentId, tree.getParentId())
|
|
|
+ .eq(WbsTreePrivate::getDeptName, tree.getDeptName())
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
|
+ );
|
|
|
if (wbsTreePrivates1 == null) {
|
|
|
Long snowId1 = SnowFlakeUtil.getId();
|
|
|
tree.setWbsId(String.valueOf(pawDTO.getPrimaryKeyId()));
|
|
@@ -471,7 +480,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return "4";
|
|
|
+ return "2";
|
|
|
}
|
|
|
|
|
|
public List<WbsTree> findAllNodeList(String wbsTreeIds) {
|
|
@@ -514,21 +523,13 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
|
|
|
String deptName = formElementDTO.getDeptName();
|
|
|
- if (deptName.length() > 50 || deptName.length() < 1) {
|
|
|
- throw new ServiceException("表名长度错误,输入范围1-50个字符长度");
|
|
|
- }
|
|
|
- if (deptName.contains(".")) {
|
|
|
- deptName = deptName.replace(".", "");
|
|
|
- }
|
|
|
- if (deptName.contains(" ")) {
|
|
|
- deptName = deptName.replace(" ", "");
|
|
|
- }
|
|
|
- if (deptName.contains("_")) {
|
|
|
- deptName = deptName.replace("_", "");
|
|
|
+ if (deptName.length() > 100 || deptName.length() < 1) {
|
|
|
+ throw new ServiceException("表名长度错误,输入范围1-100个字符长度");
|
|
|
}
|
|
|
//初始化表名
|
|
|
- String realName = getFirstSpell(deptName);
|
|
|
- String newTableName = "m_wbs_f" + DateUtil.time().substring(8, 14) + "_" + realName;
|
|
|
+ //String realName = getFirstSpell(deptName);
|
|
|
+ Long id = SnowFlakeUtil.getId();
|
|
|
+ String newTableName = "m_wbs_form_" + DateUtil.time() + "_" + id.toString();
|
|
|
formElementDTO.setInitTableName(newTableName);
|
|
|
|
|
|
//创建元素表
|