|
@@ -17,25 +17,21 @@
|
|
|
package org.springblade.manager.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import org.springblade.core.tool.utils.BeanUtil;
|
|
|
-import org.springblade.core.tool.utils.DateUtil;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
+import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
-import org.springblade.manager.dto.WbsFormElementDTO;
|
|
|
-import org.springblade.manager.entity.WbsFormInitEntity;
|
|
|
+import org.springblade.manager.entity.WbsFormElement;
|
|
|
import org.springblade.manager.excel.WbsFormElementExcel;
|
|
|
import org.springblade.manager.mapper.WbsFormElementMapper;
|
|
|
import org.springblade.manager.service.IWbsFormElementService;
|
|
|
-import org.springblade.core.mp.base.BaseServiceImpl;
|
|
|
-import org.springblade.manager.entity.WbsFormElement;
|
|
|
import org.springblade.manager.vo.WbsFormElementVO;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -161,56 +157,90 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean saveAndSyn(WbsFormElement wbsFormElement, String tableName) {
|
|
|
+ public R saveAndSyn(WbsFormElement wbsFormElement, String tableName) {
|
|
|
//新增元素字段
|
|
|
//查询当前元素表中元素的最后一个key_?值
|
|
|
QueryWrapper<WbsFormElement> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("f_id", wbsFormElement.getFId());
|
|
|
List<WbsFormElement> wbsFormElements = baseMapper.selectList(queryWrapper);
|
|
|
String substring = "";
|
|
|
- for (WbsFormElement formElement : wbsFormElements) {
|
|
|
- String eKey = formElement.getEKey();
|
|
|
- substring = eKey.substring(eKey.length() - 1);
|
|
|
- }
|
|
|
- long newFiled = Long.parseLong(substring) + 1;
|
|
|
- String substring1 = "key_" + newFiled;
|
|
|
- wbsFormElement.setEKey(substring1);
|
|
|
- if (wbsFormElement.getEType() == 4) {
|
|
|
- wbsFormElement.setELength(0);
|
|
|
+ List<String> eKeyNum = new ArrayList<>();
|
|
|
+ if (wbsFormElements.size() > 0) {
|
|
|
+ for (WbsFormElement formElement : wbsFormElements) {
|
|
|
+ String eKey = formElement.getEKey();
|
|
|
+ substring = eKey.split("_")[1];
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(substring)) {
|
|
|
+ long newFiled = Long.parseLong(substring) + 1;
|
|
|
+ String substring1 = "key_" + newFiled;
|
|
|
+ eKeyNum.add(substring1);
|
|
|
+ if (wbsFormElement.getEType() == 4) {
|
|
|
+ wbsFormElement.setELength(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wbsFormElement.setEKey(eKeyNum.get(eKeyNum.size() - 1));
|
|
|
+ } else {
|
|
|
+ wbsFormElement.setEKey("key_1");
|
|
|
}
|
|
|
- int insert = baseMapper.insert(wbsFormElement);
|
|
|
- if (insert > 0) {
|
|
|
- String newName = wbsFormElement.getEKey();
|
|
|
- //同步
|
|
|
- StringBuffer sbr1 = new StringBuffer();
|
|
|
- String fieldType = judgeDataType(wbsFormElement.getEType());
|
|
|
- if ("varchar".equals(fieldType)) {
|
|
|
- sbr1.append(" " + fieldType + "(" + wbsFormElement.getELength() + ")");
|
|
|
- } else if ("bigint".equals(fieldType)) {
|
|
|
- sbr1.append(" " + fieldType + "(" + wbsFormElement.getELength() + ")");
|
|
|
- } else if ("decimal".equals(fieldType)) {
|
|
|
- sbr1.append(" " + fieldType + "(" + wbsFormElement.getELength() + ")");
|
|
|
- } else if ("datetime".equals(fieldType)) {
|
|
|
- sbr1.append(" " + fieldType + "(" + 0 + ")");
|
|
|
+ String newName = wbsFormElement.getEKey();
|
|
|
+ //同步
|
|
|
+ StringBuilder sbr1 = new StringBuilder();
|
|
|
+ String fieldType = judgeDataType(wbsFormElement.getEType());
|
|
|
+ if ("varchar".equals(fieldType)) {
|
|
|
+ if (wbsFormElement.getELength() > 1000 || wbsFormElement.getELength() < 10) {
|
|
|
+ return R.fail("请输入正确的字符串长度,范围为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, "操作成功");
|
|
|
}
|
|
|
+ } else if ("bigint".equals(fieldType)) {
|
|
|
+ if (wbsFormElement.getELength() > 255 || wbsFormElement.getELength() < 10) {
|
|
|
+ return R.fail("请输入正确的整数长度,范围为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, "操作成功");
|
|
|
+ }
|
|
|
+ } else if ("decimal".equals(fieldType)) {
|
|
|
+ if (wbsFormElement.getELength() > 65 || wbsFormElement.getELength() < 10) {
|
|
|
+ return R.fail("请输入正确的小数长度,范围为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, "操作成功");
|
|
|
+ }
|
|
|
+ } 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 true;
|
|
|
+ return R.data(wbsFormElement, "操作成功");
|
|
|
}
|
|
|
- return false;
|
|
|
+ return R.fail("操作失败");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean deleteAndSyn(String ids, String eKey, String tableName) {
|
|
|
deleteLogic(Func.toLongList(ids));
|
|
|
- //同步删除实体表字段 TODO 删除前判断实体表是否关联数据
|
|
|
- baseMapper.deleteTableFiled(eKey, tableName);
|
|
|
+ //删除前判断是否存在该key
|
|
|
+ int row = baseMapper.judgeFiled(eKey, tableName);
|
|
|
+ if (row > 0) {
|
|
|
+ //同步删除实体表字段 TODO 删除前判断实体表是否关联数据
|
|
|
+ baseMapper.deleteTableFiled(eKey, tableName);
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean updateAndSyn(List<WbsFormElement> wbsFormElementList, String initTableName) {
|
|
|
+ public String updateAndSyn(List<WbsFormElement> wbsFormElementList, String initTableName) {
|
|
|
QueryWrapper<WbsFormElement> queryWrapper = new QueryWrapper<>();
|
|
|
String fId = "";
|
|
|
for (WbsFormElement wbsFormElement : wbsFormElementList) {
|
|
@@ -222,8 +252,19 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
|
|
|
String eKey = wbsFormElement.getEKey();
|
|
|
Integer eLength = wbsFormElement.getELength();
|
|
|
String eType = judgeDataType(wbsFormElement.getEType());
|
|
|
- baseMapper.updateFiledType(initTableName, eKey, eType, eLength);
|
|
|
+ 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";
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ baseMapper.updateFiledType(initTableName, eKey, eType, eLength);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
}
|
|
|
- return true;
|
|
|
+ return "0";
|
|
|
}
|
|
|
}
|