|
@@ -158,13 +158,10 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R saveAndSyn(WbsFormElement wbsFormElement, String tableName) {
|
|
|
- //新增元素字段
|
|
|
- //查询当前元素表中元素的最后一个key_?值
|
|
|
+ public boolean saveAndSyn(WbsFormElement wbsFormElement, String tableName) {
|
|
|
try {
|
|
|
- QueryWrapper<WbsFormElement> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("f_id", wbsFormElement.getFId());
|
|
|
- List<WbsFormElement> wbsFormElements = baseMapper.selectList(queryWrapper);
|
|
|
+ //获取当前表单下所有元素
|
|
|
+ List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda().eq(WbsFormElement::getFId, wbsFormElement.getFId()));
|
|
|
String substring = "";
|
|
|
List<String> eKeyNum = new ArrayList<>();
|
|
|
if (wbsFormElements.size() > 0) {
|
|
@@ -187,104 +184,138 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
String newName = wbsFormElement.getEKey();
|
|
|
wbsFormElement.setStatus(1);
|
|
|
|
|
|
- //同步
|
|
|
StringBuilder sbr1 = new StringBuilder();
|
|
|
- String fieldType = judgeDataType(wbsFormElement.getEType());
|
|
|
+ String fieldType = getInitTableFiledType(wbsFormElement.getEType());
|
|
|
|
|
|
if ("varchar".equals(fieldType)) {
|
|
|
if (wbsFormElement.getELength() > 1000 || wbsFormElement.getELength() < 10) {
|
|
|
- return R.fail("请输入正确的字符串长度,范围为10-1000");
|
|
|
+ throw new ServiceException("请输入正确的长度,范围为10-1000");
|
|
|
} else {
|
|
|
+ //新增
|
|
|
baseMapper.insert(wbsFormElement);
|
|
|
|
|
|
+ //同步
|
|
|
sbr1.append(" ").append(fieldType).append("(").append(wbsFormElement.getELength()).append(")");
|
|
|
String sql = newName + " " + sbr1;
|
|
|
baseMapper.alterAddFiled(sql, tableName);
|
|
|
- return R.data(wbsFormElement, "操作成功");
|
|
|
+ return true;
|
|
|
}
|
|
|
+
|
|
|
} else if ("bigint".equals(fieldType)) {
|
|
|
if (wbsFormElement.getELength() > 255 || wbsFormElement.getELength() < 10) {
|
|
|
- return R.fail("请输入正确的整数长度,范围为10-255");
|
|
|
+ throw new ServiceException("请输入正确的长度,范围为10-255");
|
|
|
} else {
|
|
|
+ //新增
|
|
|
baseMapper.insert(wbsFormElement);
|
|
|
+
|
|
|
+ //同步
|
|
|
sbr1.append(" ").append(fieldType).append("(").append(wbsFormElement.getELength()).append(")");
|
|
|
String sql = newName + " " + sbr1;
|
|
|
baseMapper.alterAddFiled(sql, tableName);
|
|
|
- return R.data(wbsFormElement, "操作成功");
|
|
|
+ return true;
|
|
|
}
|
|
|
+
|
|
|
} else if ("decimal".equals(fieldType)) {
|
|
|
if (wbsFormElement.getELength() > 65 || wbsFormElement.getELength() < 10) {
|
|
|
- return R.fail("请输入正确的小数长度,范围为10-65");
|
|
|
+ throw new ServiceException("请输入正确的长度,范围为10-65");
|
|
|
} else {
|
|
|
+ //新增
|
|
|
baseMapper.insert(wbsFormElement);
|
|
|
sbr1.append(" ").append(fieldType).append("(").append(wbsFormElement.getELength()).append(")");
|
|
|
String sql = newName + " " + sbr1;
|
|
|
+
|
|
|
+ //同步
|
|
|
baseMapper.alterAddFiled(sql, tableName);
|
|
|
- return R.data(wbsFormElement, "操作成功");
|
|
|
+ return true;
|
|
|
}
|
|
|
} else if ("datetime".equals(fieldType)) {
|
|
|
- baseMapper.insert(wbsFormElement);
|
|
|
- sbr1.append(" ").append(fieldType).append("(").append(0).append(")");
|
|
|
- String sql = newName + " " + sbr1;
|
|
|
- baseMapper.alterAddFiled(sql, tableName);
|
|
|
- return R.data(wbsFormElement, "操作成功");
|
|
|
+ if (wbsFormElement.getELength() != 0) {
|
|
|
+ throw new ServiceException("请输入正确的长度,范围为0");
|
|
|
+ } else {
|
|
|
+ //新增
|
|
|
+ baseMapper.insert(wbsFormElement);
|
|
|
+ sbr1.append(" ").append(fieldType).append("(").append(0).append(")");
|
|
|
+ String sql = newName + " " + sbr1;
|
|
|
+
|
|
|
+ //同步
|
|
|
+ baseMapper.alterAddFiled(sql, tableName);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
baseMapper.deleteElement(wbsFormElement);
|
|
|
throw new ServiceException("未获取到对应实体表信息,新增失败");
|
|
|
}
|
|
|
-
|
|
|
- return R.fail("操作失败");
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean deleteAndSyn(String ids, String eKey, String tableName) {
|
|
|
- deleteLogic(Func.toLongList(ids));
|
|
|
+ //判断字段是否存在实体表中
|
|
|
int row = baseMapper.judgeFiled(eKey, tableName);
|
|
|
+
|
|
|
if (row > 0) {
|
|
|
+ //是否存在填报数据
|
|
|
+ int row1 = baseMapper.assertFiledExist(tableName, eKey);
|
|
|
+ if (row1 > 0) {
|
|
|
+ throw new ServiceException("当前元素字段存在填报数据,删除失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除实体表字段
|
|
|
baseMapper.deleteTableFiled(eKey, tableName);
|
|
|
}
|
|
|
+
|
|
|
+ //逻辑删除元素字段
|
|
|
+ deleteLogic(Func.toLongList(ids));
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String updateAndSyn(List<WbsFormElement> wbsFormElementList, String initTableName) {
|
|
|
- QueryWrapper<WbsFormElement> queryWrapper = new QueryWrapper<>();
|
|
|
+ public boolean updateAndSyn(List<WbsFormElement> wbsFormElementList, String initTableName) {
|
|
|
String fId = "";
|
|
|
for (WbsFormElement wbsFormElement : wbsFormElementList) {
|
|
|
fId = wbsFormElement.getFId();
|
|
|
+ break;
|
|
|
}
|
|
|
+ //当前元素表下所有元素信息
|
|
|
+ List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda().eq(WbsFormElement::getFId, fId));
|
|
|
|
|
|
- queryWrapper.eq("f_id", fId);
|
|
|
- List<WbsFormElement> wbsFormElements = baseMapper.selectList(queryWrapper);
|
|
|
for (WbsFormElement wbsFormElement : wbsFormElements) {
|
|
|
String eKey = wbsFormElement.getEKey();
|
|
|
Integer eLength = wbsFormElement.getELength();
|
|
|
- String eType = judgeDataType(wbsFormElement.getEType());
|
|
|
-
|
|
|
- if (eType.equals("bigint") && (eLength > 255 || eLength < 10)) { //整数
|
|
|
- return "2";
|
|
|
- } else if (eType.equals("varchar") && (eLength > 1000 || eLength < 10)) { //字符串
|
|
|
- return "1";
|
|
|
- } else if (eType.equals("decimal") && (eLength > 65 || eLength < 10)) { //小数
|
|
|
- return "3";
|
|
|
+ String eType = getInitTableFiledType(wbsFormElement.getEType());
|
|
|
+
|
|
|
+ if (eType.equals("bigint") && (eLength > 255 || eLength < 10)) {
|
|
|
+ throw new ServiceException("请输入正确长度,范围为10-255之间");
|
|
|
+ } else if (eType.equals("varchar") && (eLength > 1000 || eLength < 10)) {
|
|
|
+ throw new ServiceException("请输入正确长度,范围为10-1000之间");
|
|
|
+ } else if (eType.equals("decimal") && (eLength > 65 || eLength < 10)) {
|
|
|
+ throw new ServiceException("请输入正确长度,范围为10-65之间");
|
|
|
}
|
|
|
- try {
|
|
|
- baseMapper.updateFiledType(initTableName, eKey, eType, eLength);
|
|
|
- } catch (Exception e) {
|
|
|
- throw new ServiceException("未获取到对应实体表信息,修改失败");
|
|
|
+
|
|
|
+ //当前字段类型
|
|
|
+ String filedTypeOld = baseMapper.selectFiledType(initTableName, eKey);
|
|
|
+
|
|
|
+ if (!eType.equals(filedTypeOld)) {
|
|
|
+ //修改前判断,字段是否存在填报数据
|
|
|
+ int row = baseMapper.assertFiledExist(initTableName, eKey);
|
|
|
+ if (row > 0) {
|
|
|
+ throw new ServiceException("选择修改的元素字段下存在填报数据,不允许修改字段类型");
|
|
|
+ }
|
|
|
}
|
|
|
+ //修改
|
|
|
+ baseMapper.updateFiledType(initTableName, eKey, eType, eLength);
|
|
|
}
|
|
|
|
|
|
- return "0";
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<WbsFormElementDTO2> findWbsTreeTableSameLevel(String parentId) {
|
|
|
return baseMapper.selectWbsTreeTableListByParentId(parentId);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -299,7 +330,6 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
number++;
|
|
|
}
|
|
|
return true;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -311,17 +341,14 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
@Override
|
|
|
public void importElement2(List<WbsFormElementBatchExcel> data, Boolean isCovered, String tableId) {
|
|
|
//TODO
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public WbsFormElement searchElementDetailByTableElementKey(String fId, String tableElementKey) {
|
|
|
String[] s = tableElementKey.split("_");
|
|
|
- /*WbsTree wbsTree = baseMapper.selectElementInTableByFid(fId);*/
|
|
|
return baseMapper.selectOne(Wrappers.<WbsFormElement>query().lambda()
|
|
|
.eq(WbsFormElement::getFId, fId)
|
|
|
.eq(WbsFormElement::getEName, s[1]));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -369,7 +396,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
this.saveFormElement(formElementDTO);
|
|
|
|
|
|
} else if (formElementDTO.getSubmitStatus() == 1) {
|
|
|
- if (formElementDTO.getElementList().size() <=0 ){
|
|
|
+ if (formElementDTO.getElementList().size() <= 0) {
|
|
|
throw new ServiceException("请添加至少一个元素信息");
|
|
|
}
|
|
|
//关联-在已有元素表中新增元素,在实体表中追加字段
|
|
@@ -400,7 +427,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
WbsFormElement firstWbsFormElement;
|
|
|
List<WbsFormElement> newList;
|
|
|
//存在元素
|
|
|
- if(wbsFormElements.size() > 0){
|
|
|
+ if (wbsFormElements.size() > 0) {
|
|
|
Collections.reverse(wbsFormElements);
|
|
|
firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
|
|
|
|
|
@@ -409,7 +436,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
!wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
|
|
|
).collect(Collectors.toList());
|
|
|
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//不存在元素
|
|
|
firstWbsFormElement = new WbsFormElement();
|
|
|
firstWbsFormElement.setEKey("key_0");
|
|
@@ -448,12 +475,10 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
}
|
|
|
newKeyNumber++;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -484,7 +509,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
WbsFormElement firstWbsFormElement;
|
|
|
List<WbsFormElement> newList;
|
|
|
//存在元素
|
|
|
- if(wbsFormElements.size() > 0){
|
|
|
+ if (wbsFormElements.size() > 0) {
|
|
|
Collections.reverse(wbsFormElements);
|
|
|
firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
|
|
|
|
|
@@ -493,7 +518,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
!wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
|
|
|
).collect(Collectors.toList());
|
|
|
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//不存在元素
|
|
|
firstWbsFormElement = new WbsFormElement();
|
|
|
firstWbsFormElement.setEKey("key_0");
|
|
@@ -545,7 +570,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
if (nodeIds.size() <= 0) {
|
|
|
throw new ServiceException("请至少选择一个节点进行新增操作");
|
|
|
} else {
|
|
|
- if (formElementDTO.getElementList().size() <=0 ){
|
|
|
+ if (formElementDTO.getElementList().size() <= 0) {
|
|
|
throw new ServiceException("请添加至少一个元素信息");
|
|
|
}
|
|
|
for (String nodeId : nodeIds) {
|