@@ -0,0 +1,22 @@ | |||||
package cc.smtweb.system.bpm.web.canal; | |||||
import org.springframework.beans.factory.annotation.Value; | |||||
import org.springframework.context.annotation.Configuration; | |||||
/** | |||||
* @Author yaoq | |||||
* @Date 2022年07月20日 10:38 | |||||
* @Description | |||||
*/ | |||||
@Configuration | |||||
public class FilePathConfig { | |||||
@Value("${canal.file.path}") | |||||
private String path; | |||||
public String getPath() { | |||||
return path; | |||||
} | |||||
} | |||||
@@ -6,10 +6,11 @@ package cc.smtweb.system.bpm.web.common; | |||||
* @Desc: bpm模块的常量 | * @Desc: bpm模块的常量 | ||||
*/ | */ | ||||
public interface BpmConst { | public interface BpmConst { | ||||
String DEF_PWD = "abc@123456"; //初始密码 | |||||
interface DataRight { | interface DataRight { | ||||
public final static String CUR_VALUE = "_CURRENT";//本区划、本机构、本部门 | |||||
public final static String ALL_DEPT = "_ALL_DEPT";//全部门权限 | |||||
public final static int V_SELF = 0;//不含下级 | |||||
public final static int V_INCLUDE_CHILDREN = 1;//含下级 | |||||
public final static Long CUR_VALUE = 999L;//本机构,本部门 | |||||
public final static Long ALL_DEPT = 998L;//全部门权限 | |||||
} | } | ||||
} | } |
@@ -0,0 +1,47 @@ | |||||
package cc.smtweb.system.bpm.web.common; | |||||
import cc.smtweb.framework.core.common.IntEnum; | |||||
import cc.smtweb.framework.core.common.StrEnum; | |||||
/** | |||||
* Created by Akmm at 2022/3/23 9:39 | |||||
* 系统的一些枚举变量 | |||||
*/ | |||||
public interface BpmEnum { | |||||
// 权限类型 | |||||
class MenuRightType extends StrEnum { | |||||
public static MenuFuncRight instance = new MenuFuncRight(); | |||||
public static StrEnumBean DATA = instance.addEnum("data", "数据权限"); | |||||
public static StrEnumBean FUNC = instance.addEnum("func", "功能权限"); | |||||
public static StrEnumBean FIELD = instance.addEnum("field", "字段权限"); | |||||
} | |||||
class MenuType extends IntEnum { | |||||
public static MenuType instance = new MenuType(); | |||||
public static IntEnumBean DESIGN = instance.addEnum(0, "设计器页面"); | |||||
public static IntEnumBean CUSTOM = instance.addEnum(1, "自定义页面"); | |||||
public static IntEnumBean LINK = instance.addEnum(2, "外部链接"); | |||||
} | |||||
// 功能权限枚举 | |||||
class MenuFuncRight extends StrEnum { | |||||
public static MenuFuncRight instance = new MenuFuncRight(); | |||||
public static StrEnumBean READ = instance.addEnum("read", "查看"); | |||||
public static StrEnumBean WRITE = instance.addEnum("write", "修改"); | |||||
} | |||||
class UserStatu extends IntEnum { | |||||
public static UserStatu instance = new UserStatu(); | |||||
public static IntEnumBean NOACT = instance.addEnum(0, "未激活"); | |||||
public static IntEnumBean NORMAL = instance.addEnum(1, "已激活"); | |||||
public static IntEnumBean LOCK = instance.addEnum(2, "已锁定"); | |||||
public static IntEnumBean STOP = instance.addEnum(9, "已停用"); | |||||
} | |||||
class DataRightType extends StrEnum { | |||||
public static DataRightType instance = new DataRightType(); | |||||
public static StrEnumBean PARTY = instance.addEnum("party", "机构权限"); | |||||
public static StrEnumBean DEPT = instance.addEnum("dept", "部门权限"); | |||||
} | |||||
} |
@@ -21,7 +21,7 @@ import java.util.List; | |||||
public class DynPageTreeHandler extends AbstractTreeHandler<SwMap> { | public class DynPageTreeHandler extends AbstractTreeHandler<SwMap> { | ||||
protected long pageId; | protected long pageId; | ||||
//过滤条件 | //过滤条件 | ||||
private SwMap filter; | |||||
protected SwMap filter; | |||||
//对应的数据集定义 | //对应的数据集定义 | ||||
private PageDataset pageDataSet; | private PageDataset pageDataSet; | ||||
@@ -6,6 +6,8 @@ import cc.smtweb.framework.core.common.SwEnum; | |||||
import cc.smtweb.framework.core.db.DbEngine; | import cc.smtweb.framework.core.db.DbEngine; | ||||
import cc.smtweb.framework.core.exception.BizException; | import cc.smtweb.framework.core.exception.BizException; | ||||
import cc.smtweb.framework.core.session.UserSession; | import cc.smtweb.framework.core.session.UserSession; | ||||
import cc.smtweb.system.bpm.web.common.BpmConst; | |||||
import cc.smtweb.system.bpm.web.common.BpmEnum; | |||||
import cc.smtweb.system.bpm.web.sys.user.user.User; | import cc.smtweb.system.bpm.web.sys.user.user.User; | ||||
import cc.smtweb.system.bpm.web.sys.user.user.UserCache; | import cc.smtweb.system.bpm.web.sys.user.user.UserCache; | ||||
import cc.smtweb.system.bpm.web.sys.user.user.UserParty; | import cc.smtweb.system.bpm.web.sys.user.user.UserParty; | ||||
@@ -63,7 +65,7 @@ public class LoginHelper { | |||||
throw new BizException("账号或者密码出错"); | throw new BizException("账号或者密码出错"); | ||||
} | } | ||||
if (SwEnum.UserStatu.NORMAL.value != user.getStatu()) { | |||||
if (BpmEnum.UserStatu.NORMAL.value != user.getStatu()) { | |||||
throw new BizException("账户状态异常"); | throw new BizException("账户状态异常"); | ||||
} | } | ||||
} | } | ||||
@@ -130,7 +132,7 @@ public class LoginHelper { | |||||
// throw new BizException("账号或者密码出错"); | // throw new BizException("账号或者密码出错"); | ||||
// } | // } | ||||
// | // | ||||
// if (SwEnum.UserStatu.NORMAL.value != user.getStatu()) { | |||||
// if (BpmEnum.UserStatu.NORMAL.value != user.getStatu()) { | |||||
// throw new BizException("账户状态异常"); | // throw new BizException("账户状态异常"); | ||||
// } | // } | ||||
// | // | ||||
@@ -154,7 +156,7 @@ public class LoginHelper { | |||||
* @throws Exception | * @throws Exception | ||||
*/ | */ | ||||
public static void checkPwdLevel(String pwd) throws Exception { | public static void checkPwdLevel(String pwd) throws Exception { | ||||
if (SwConsts.DEF_PWD.equals(pwd)) return; | |||||
if (BpmConst.DEF_PWD.equals(pwd)) return; | |||||
} | } | ||||
@@ -2,11 +2,16 @@ package cc.smtweb.system.bpm.web.sys.user.dataRightGroup; | |||||
import cc.smtweb.framework.core.common.SwMap; | import cc.smtweb.framework.core.common.SwMap; | ||||
import cc.smtweb.framework.core.db.impl.DefaultEntity; | import cc.smtweb.framework.core.db.impl.DefaultEntity; | ||||
import cc.smtweb.framework.core.exception.SwException; | |||||
import cc.smtweb.framework.core.util.JsonUtil; | import cc.smtweb.framework.core.util.JsonUtil; | ||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageLoadHandler; | import cc.smtweb.system.bpm.web.engine.dynPage.DynPageLoadHandler; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageSaveHandler; | import cc.smtweb.system.bpm.web.engine.dynPage.DynPageSaveHandler; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageTreeHandler; | |||||
import cc.smtweb.system.bpm.web.sys.user.dataRight.DataRightDefine; | |||||
import cc.smtweb.system.bpm.web.sys.user.dataRight.DataRightDefineCache; | |||||
import java.util.List; | |||||
import java.util.Map; | import java.util.Map; | ||||
/** | /** | ||||
@@ -15,6 +20,7 @@ import java.util.Map; | |||||
* @Desc: | * @Desc: | ||||
*/ | */ | ||||
public class DataRightGroupHandler { | public class DataRightGroupHandler { | ||||
private final static String drgValueTree = "drgValueTree"; | |||||
static class DrgSaveHandler extends DynPageSaveHandler { | static class DrgSaveHandler extends DynPageSaveHandler { | ||||
@@ -29,9 +35,47 @@ public class DataRightGroupHandler { | |||||
static class DrgLoadHandle extends DynPageLoadHandler { | static class DrgLoadHandle extends DynPageLoadHandler { | ||||
@Override | @Override | ||||
public DynPageTreeHandler getTreeWorker(SwMap filter, PageDataset pageDataSet) { | |||||
if (pageDataSet.name.equals("drgValueTree")) { | |||||
return new DrgValueTreeHandler(form.getId(), filter, pageDataSet); | |||||
} | |||||
return super.getTreeWorker(filter, pageDataSet); | |||||
} | |||||
@Override | |||||
protected void afterLoadBean(PageDataset dataset, SwMap bean) { | protected void afterLoadBean(PageDataset dataset, SwMap bean) { | ||||
super.afterLoadBean(dataset, bean); | super.afterLoadBean(dataset, bean); | ||||
bean.put("sdrg_content", JsonUtil.parseList(bean.readString("sdrg_content"), Map.class)); | bean.put("sdrg_content", JsonUtil.parseList(bean.readString("sdrg_content"), Map.class)); | ||||
} | } | ||||
} | } | ||||
static class DrgValueTreeHandler extends DynPageTreeHandler { | |||||
public DrgValueTreeHandler(long pageId, SwMap filter, PageDataset pageDataSet) { | |||||
super(pageId, filter, pageDataSet); | |||||
} | |||||
@Override | |||||
protected List<SwMap> getChildren(long id) { | |||||
DataRightDefine define = DataRightDefineCache.getInstance().get(filter.readLong("type")); | |||||
if (define == null) return null; | |||||
IDataRightTreeWorker worker; | |||||
try { | |||||
worker = IDataRightTreeFactory.getInstance().getWork(define.getCode()); | |||||
} catch (Exception e) { | |||||
throw new SwException(e); | |||||
} | |||||
return worker.getChildren(id); | |||||
} | |||||
@Override | |||||
protected long getId(SwMap bean) { | |||||
return bean.readLong("id"); | |||||
} | |||||
@Override | |||||
protected String getText(SwMap bean) { | |||||
return bean.readString("text"); | |||||
} | |||||
} | |||||
} | } |
@@ -0,0 +1,43 @@ | |||||
package cc.smtweb.system.bpm.web.sys.user.dataRightGroup; | |||||
import cc.smtweb.framework.core.exception.SwException; | |||||
import cc.smtweb.system.bpm.web.common.BpmEnum; | |||||
import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl.DeptDataRightTreeWork; | |||||
import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl.PartyDataRightTreeWork; | |||||
import java.util.HashMap; | |||||
import java.util.Map; | |||||
/** | |||||
* @Author yaoq | |||||
* @Date 2022年09月20日 9:26 | |||||
* @Description | |||||
*/ | |||||
public class IDataRightTreeFactory { | |||||
private volatile static IDataRightTreeFactory instance = null; | |||||
public static IDataRightTreeFactory getInstance() { | |||||
if (instance == null) { | |||||
synchronized (IDataRightTreeFactory.class) { | |||||
if (instance == null) instance = new IDataRightTreeFactory(); | |||||
} | |||||
} | |||||
return instance; | |||||
} | |||||
private Map<String, Class<? extends IDataRightTreeWorker>> mapWorks; | |||||
private IDataRightTreeFactory() { | |||||
mapWorks = new HashMap<>(); | |||||
mapWorks.put(BpmEnum.DataRightType.PARTY.value, PartyDataRightTreeWork.class); | |||||
mapWorks.put(BpmEnum.DataRightType.DEPT.value, DeptDataRightTreeWork.class); | |||||
} | |||||
public IDataRightTreeWorker getWork(String key) throws Exception { | |||||
Class<? extends IDataRightTreeWorker> cls = mapWorks.get(key); | |||||
if (cls == null) throw new SwException("暂不支持[" + key + "]类型权限!"); | |||||
return cls.newInstance(); | |||||
} | |||||
} |
@@ -0,0 +1,21 @@ | |||||
package cc.smtweb.system.bpm.web.sys.user.dataRightGroup; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import java.util.List; | |||||
/** | |||||
* Created by Akmm at 2016/9/13 11:52 | |||||
* 数据权限类定义 | |||||
*/ | |||||
public interface IDataRightTreeWorker { | |||||
List<SwMap> getExtraValues(); | |||||
SwMap buildExtraValue(long key, String value); | |||||
List<SwMap> getChildren(long id); | |||||
//获取值的显示文本 | |||||
String getText(long value); | |||||
} |
@@ -0,0 +1,56 @@ | |||||
package cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.util.CommUtil; | |||||
import cc.smtweb.system.bpm.web.common.BpmConst; | |||||
import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.IDataRightTreeWorker; | |||||
import cc.smtweb.system.bpm.web.sys.user.dept.Dept; | |||||
import cc.smtweb.system.bpm.web.sys.user.dept.DeptCache; | |||||
import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; | |||||
import java.util.ArrayList; | |||||
import java.util.Collection; | |||||
import java.util.List; | |||||
/** | |||||
* @Author yaoq | |||||
* @Date 2022年09月22日 15:48 | |||||
* @Description | |||||
*/ | |||||
public class DeptDataRightTreeWork implements IDataRightTreeWorker { | |||||
@Override | |||||
public SwMap buildExtraValue(long key, String value) { | |||||
SwMap swMap = new SwMap(); | |||||
swMap.put("id", key); | |||||
swMap.put("text", value); | |||||
return swMap; | |||||
} | |||||
@Override | |||||
public List<SwMap> getExtraValues() { | |||||
List<SwMap> list = new ArrayList<>(); | |||||
list.add(buildExtraValue(BpmConst.DataRight.ALL_DEPT, "所有部门")); | |||||
list.add(buildExtraValue(BpmConst.DataRight.CUR_VALUE, "所属部门")); | |||||
return list; | |||||
} | |||||
@Override | |||||
public List<SwMap> getChildren(long id) { | |||||
List<SwMap> list = new ArrayList<>(); | |||||
list.addAll(getExtraValues()); | |||||
Collection<Dept> depts = DeptCache.getInstance().getAll(); | |||||
if (CommUtil.isEmpty(depts)) return list; | |||||
depts.forEach(dept -> { | |||||
list.add(buildExtraValue(dept.getId(), dept.getName())); | |||||
}); | |||||
return list; | |||||
} | |||||
@Override | |||||
public String getText(long value) { | |||||
if (BpmConst.DataRight.CUR_VALUE == value) return "所属部门"; | |||||
if (BpmConst.DataRight.ALL_DEPT == value) return "所有部门"; | |||||
return PartyCache.getInstance().getNameById(value); | |||||
} | |||||
} |
@@ -0,0 +1,55 @@ | |||||
package cc.smtweb.system.bpm.web.sys.user.dataRightGroup.impl; | |||||
import cc.smtweb.framework.core.common.SwMap; | |||||
import cc.smtweb.framework.core.util.CommUtil; | |||||
import cc.smtweb.system.bpm.web.common.BpmConst; | |||||
import cc.smtweb.system.bpm.web.sys.user.dataRightGroup.IDataRightTreeWorker; | |||||
import cc.smtweb.system.bpm.web.sys.user.party.Party; | |||||
import cc.smtweb.system.bpm.web.sys.user.party.PartyCache; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import java.util.Set; | |||||
/** | |||||
* @Author yaoq | |||||
* @Date 2022年09月22日 15:48 | |||||
* @Description | |||||
*/ | |||||
public class PartyDataRightTreeWork implements IDataRightTreeWorker { | |||||
@Override | |||||
public SwMap buildExtraValue(long key, String value) { | |||||
SwMap swMap = new SwMap(); | |||||
swMap.put("id", key); | |||||
swMap.put("text", value); | |||||
return swMap; | |||||
} | |||||
@Override | |||||
public List<SwMap> getExtraValues() { | |||||
List<SwMap> list = new ArrayList<>(); | |||||
list.add(buildExtraValue(BpmConst.DataRight.CUR_VALUE, "所属机构")); | |||||
return list; | |||||
} | |||||
@Override | |||||
public List<SwMap> getChildren(long id) { | |||||
long key = id; | |||||
if (key <= 0) key = -1; | |||||
Set<Party> partys = PartyCache.getInstance().getChildren(key); | |||||
List<SwMap> list = new ArrayList<>(); | |||||
list.addAll(getExtraValues()); | |||||
if (CommUtil.isEmpty(partys)) return list; | |||||
partys.forEach(party -> { | |||||
list.add(buildExtraValue(party.getId(), party.getName())); | |||||
}); | |||||
return list; | |||||
} | |||||
@Override | |||||
public String getText(long value) { | |||||
if (BpmConst.DataRight.CUR_VALUE == value) return "所属机构"; | |||||
return PartyCache.getInstance().getNameById(value); | |||||
} | |||||
} |
@@ -8,6 +8,7 @@ import cc.smtweb.framework.core.db.vo.ModelProject; | |||||
import cc.smtweb.framework.core.util.CommUtil; | import cc.smtweb.framework.core.util.CommUtil; | ||||
import cc.smtweb.framework.core.util.JsonUtil; | import cc.smtweb.framework.core.util.JsonUtil; | ||||
import cc.smtweb.framework.core.util.StringUtil; | import cc.smtweb.framework.core.util.StringUtil; | ||||
import cc.smtweb.system.bpm.web.common.BpmEnum; | |||||
import cc.smtweb.system.bpm.web.design.db.ModelCatalogTreeHelper; | import cc.smtweb.system.bpm.web.design.db.ModelCatalogTreeHelper; | ||||
import cc.smtweb.system.bpm.web.design.db.ModelProjectCache; | import cc.smtweb.system.bpm.web.design.db.ModelProjectCache; | ||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | ||||
@@ -223,7 +224,7 @@ public class MenuHandler { | |||||
protected void afterQuery(List<SwMap> listData) { | protected void afterQuery(List<SwMap> listData) { | ||||
super.afterQuery(listData); | super.afterQuery(listData); | ||||
listData.forEach(row -> { | listData.forEach(row -> { | ||||
row.put("sm_type_text", SwEnum.MenuType.instance.getName(row.readInt("sm_type"))); | |||||
row.put("sm_type_text", BpmEnum.MenuType.instance.getName(row.readInt("sm_type"))); | |||||
}); | }); | ||||
} | } | ||||
} | } | ||||
@@ -48,4 +48,10 @@ public class PartyCache extends AbstractEntityCache<Party> { | |||||
Set<Party> children = getChildren(key); | Set<Party> children = getChildren(key); | ||||
return CommUtil.isEmpty(children); | return CommUtil.isEmpty(children); | ||||
} | } | ||||
public final String getNameById(Long id) { | |||||
Party party = get(id); | |||||
if (party == null) return ""; | |||||
return party.getName(); | |||||
} | |||||
} | } |
@@ -7,6 +7,7 @@ import cc.smtweb.framework.core.db.DbEngine; | |||||
import cc.smtweb.framework.core.exception.BizException; | import cc.smtweb.framework.core.exception.BizException; | ||||
import cc.smtweb.framework.core.mvc.service.SwListData; | import cc.smtweb.framework.core.mvc.service.SwListData; | ||||
import cc.smtweb.framework.core.util.StringUtil; | import cc.smtweb.framework.core.util.StringUtil; | ||||
import cc.smtweb.system.bpm.web.common.BpmEnum; | |||||
import cc.smtweb.system.bpm.web.design.form.ModelForm; | import cc.smtweb.system.bpm.web.design.form.ModelForm; | ||||
import cc.smtweb.system.bpm.web.design.form.ModelFormCache; | import cc.smtweb.system.bpm.web.design.form.ModelFormCache; | ||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | ||||
@@ -83,7 +84,7 @@ public class RoleHandler { | |||||
right.setFunc(formData.readStringSet("func")); | right.setFunc(formData.readStringSet("func")); | ||||
right.setData(formData.readListMap("data")); | right.setData(formData.readListMap("data")); | ||||
if (item.getMenu() > 0L) | if (item.getMenu() > 0L) | ||||
right.setField(MenuCache.getInstance().get(item.getMenu()).getRightSet(SwEnum.MenuRightType.FIELD.value), formData.readStringSet("write"), formData.readStringSet("read")); | |||||
right.setField(MenuCache.getInstance().get(item.getMenu()).getRightSet(BpmEnum.MenuRightType.FIELD.value), formData.readStringSet("write"), formData.readStringSet("read")); | |||||
rc.saveItem(right); | rc.saveItem(right); | ||||
} | } | ||||
role.setPrivilege(rc.toContentStr()); | role.setPrivilege(rc.toContentStr()); | ||||
@@ -168,7 +169,7 @@ public class RoleHandler { | |||||
Menu menu = MenuCache.getInstance().get(item.getMenu()); | Menu menu = MenuCache.getInstance().get(item.getMenu()); | ||||
if (menu == null) return SwListData.create(list, 0); | if (menu == null) return SwListData.create(list, 0); | ||||
ModelForm mf = ModelFormCache.getInstance().get(menu.getPageId()); | ModelForm mf = ModelFormCache.getInstance().get(menu.getPageId()); | ||||
for (String f : menu.getRightSet(SwEnum.MenuRightType.FIELD.value)) { | |||||
for (String f : menu.getRightSet(BpmEnum.MenuRightType.FIELD.value)) { | |||||
String name = getFieldName(mf, f); | String name = getFieldName(mf, f); | ||||
if (name == null) continue; | if (name == null) continue; | ||||
SwMap row = new SwMap(); | SwMap row = new SwMap(); | ||||
@@ -202,11 +203,11 @@ public class RoleHandler { | |||||
if (item == null) return SwListData.create(list, 0); | if (item == null) return SwListData.create(list, 0); | ||||
Menu menu = MenuCache.getInstance().get(item.getMenu()); | Menu menu = MenuCache.getInstance().get(item.getMenu()); | ||||
if (menu == null) return SwListData.create(list, 0); | if (menu == null) return SwListData.create(list, 0); | ||||
for (String f : menu.getRightSet(SwEnum.MenuRightType.FUNC.value)) { | |||||
for (String f : menu.getRightSet(BpmEnum.MenuRightType.FUNC.value)) { | |||||
if (StringUtil.isEmpty(f)) continue; | if (StringUtil.isEmpty(f)) continue; | ||||
SwMap row = new SwMap(); | SwMap row = new SwMap(); | ||||
row.put("f_id", f); | row.put("f_id", f); | ||||
row.put("f_name", SwEnum.MenuFuncRight.instance.getName(f)); | |||||
row.put("f_name", BpmEnum.MenuFuncRight.instance.getName(f)); | |||||
list.add(row); | list.add(row); | ||||
} | } | ||||
return SwListData.create(list, 0); | return SwListData.create(list, 0); | ||||
@@ -238,7 +239,7 @@ public class RoleHandler { | |||||
RoleRightContent rc = new RoleRightContent(role.getPrivilege()); | RoleRightContent rc = new RoleRightContent(role.getPrivilege()); | ||||
Map<String, Object> data = rc.getDataRight(item.getId()); | Map<String, Object> data = rc.getDataRight(item.getId()); | ||||
for (String f : menu.getRightSet(SwEnum.MenuRightType.DATA.value)) { | |||||
for (String f : menu.getRightSet(BpmEnum.MenuRightType.DATA.value)) { | |||||
if (StringUtil.isEmpty(f)) continue; | if (StringUtil.isEmpty(f)) continue; | ||||
SwMap row = new SwMap(); | SwMap row = new SwMap(); | ||||
row.put("key", f); | row.put("key", f); | ||||
@@ -13,6 +13,7 @@ import cc.smtweb.framework.core.mvc.service.AbstractHandler; | |||||
import cc.smtweb.framework.core.util.CommUtil; | import cc.smtweb.framework.core.util.CommUtil; | ||||
import cc.smtweb.framework.core.util.DateUtil; | import cc.smtweb.framework.core.util.DateUtil; | ||||
import cc.smtweb.framework.core.util.StringUtil; | import cc.smtweb.framework.core.util.StringUtil; | ||||
import cc.smtweb.system.bpm.web.common.BpmConst; | |||||
import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | import cc.smtweb.system.bpm.web.design.form.define.PageDataset; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageDelHandler; | import cc.smtweb.system.bpm.web.engine.dynPage.DynPageDelHandler; | ||||
import cc.smtweb.system.bpm.web.engine.dynPage.DynPageListHandler; | import cc.smtweb.system.bpm.web.engine.dynPage.DynPageListHandler; | ||||
@@ -100,7 +101,7 @@ public class UserHandler { | |||||
} | } | ||||
if (bean.isNew()) { | if (bean.isNew()) { | ||||
((User) bean).setCreate(DateUtil.nowDateTimeLong()); | ((User) bean).setCreate(DateUtil.nowDateTimeLong()); | ||||
((User) bean).setPwd(LoginHelper.encodePwd(bean.getEntityId(), SwConsts.DEF_PWD)); | |||||
((User) bean).setPwd(LoginHelper.encodePwd(bean.getEntityId(), BpmConst.DEF_PWD)); | |||||
} | } | ||||
Set<Long> up = UserPartyCache.getInstance().getIdByUser(bean.getEntityId()); | Set<Long> up = UserPartyCache.getInstance().getIdByUser(bean.getEntityId()); | ||||
@@ -224,7 +225,7 @@ public class UserHandler { | |||||
Set<Long> idList = params.readLongSet("ids"); | Set<Long> idList = params.readLongSet("ids"); | ||||
Set<User> userList = UserCache.getInstance().getUserList(idList); | Set<User> userList = UserCache.getInstance().getUserList(idList); | ||||
userList.forEach(user -> { | userList.forEach(user -> { | ||||
user.setPwd(LoginHelper.encodePwd(user.getId(), SwConsts.DEF_PWD)); | |||||
user.setPwd(LoginHelper.encodePwd(user.getId(), BpmConst.DEF_PWD)); | |||||
}); | }); | ||||
DbEngine.getInstance().doTrans(new IDbWorker() { | DbEngine.getInstance().doTrans(new IDbWorker() { | ||||
@Override | @Override | ||||
@@ -308,6 +308,7 @@ public class ClientInstance { | |||||
if (!path.endsWith("/")) { | if (!path.endsWith("/")) { | ||||
path = path + "/"; | path = path + "/"; | ||||
} | } | ||||
path = path + "increment/"; | |||||
File file = new File(path + "/" + DateUtil.toLongDateTimeString(null) + ".cf"); | File file = new File(path + "/" + DateUtil.toLongDateTimeString(null) + ".cf"); | ||||
if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录 | if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录 | ||||
file.getParentFile().mkdirs(); | file.getParentFile().mkdirs(); | ||||
@@ -46,6 +46,7 @@ public abstract class AbstractFileWork { | |||||
if (!path.endsWith("/")) { | if (!path.endsWith("/")) { | ||||
path = path + "/"; | path = path + "/"; | ||||
} | } | ||||
path = path + "increment/"; | |||||
log.debug("[解析canal文件] path:" + path); | log.debug("[解析canal文件] path:" + path); | ||||
File dir = new File(path); | File dir = new File(path); | ||||
File[] fs = dir.listFiles(new FileFilter() { | File[] fs = dir.listFiles(new FileFilter() { | ||||
@@ -175,11 +176,20 @@ public abstract class AbstractFileWork { | |||||
getDbEngine().update("delete from " + canalVO.getTableName() + " where " + canalVO.getIdField() + " = ? ", canalVO.getId()); | getDbEngine().update("delete from " + canalVO.getTableName() + " where " + canalVO.getIdField() + " = ? ", canalVO.getId()); | ||||
} | } | ||||
/** | |||||
* @Author yaoq | |||||
* @Date j 9:55 | |||||
* @Params sql | |||||
* @Return java.util.Map<java.lang.String, java.lang.String> | |||||
* @Description 解析mysql create 语句, 转换成 {filed,type} 格式 | |||||
*/ | |||||
protected Map<String, String> decodeCreateSql(String sql) { | protected Map<String, String> decodeCreateSql(String sql) { | ||||
Map<String, String> map = new HashMap<>(); | Map<String, String> map = new HashMap<>(); | ||||
String data = sql.substring(sql.indexOf("(") + 1, sql.lastIndexOf(")")).trim().replaceAll("`", ""); | String data = sql.substring(sql.indexOf("(") + 1, sql.lastIndexOf(")")).trim().replaceAll("`", ""); | ||||
String[] rows = data.split(","); | String[] rows = data.split(","); | ||||
for (String row : rows) { | for (String row : rows) { | ||||
//索引不管 | |||||
if (row.contains("INDEX")) continue; | |||||
if (row.contains("PRIMARY KEY")) { | if (row.contains("PRIMARY KEY")) { | ||||
map.put(idField, row.substring(row.indexOf("(") + 1, row.lastIndexOf(")"))); | map.put(idField, row.substring(row.indexOf("(") + 1, row.lastIndexOf(")"))); | ||||
continue; | continue; | ||||
@@ -1 +1,125 @@ | |||||
[{"type":"kbsql","fields":[{"INT":"INT"},{"BIGINT":"BIGINT"},{"INTEGER":"INTEGER"},{"NUMERIC":"NUMERIC"},{"TINYINT":"TINYINT"},{"SMALLINT":"SMALLINT"},{"CHAR":"CHAR"},{"TEXT":"TEXT"},{"BLOB":"BLOB"},{"CLOB":"CLOB"},{"VARCHAR":"VARCHAR2"}]},{"type":"dmsql","fields":[{"INT":"INT"},{"BIGINT":"BIGINT"},{"INTEGER":"INTEGER"},{"NUMERIC":"NUMERIC"},{"TINYINT":"TINYINT"},{"SMALLINT":"SMALLINT"},{"CHAR":"CHAR"},{"TEXT":"TEXT"},{"BLOB":"BLOB"},{"CLOB":"CLOB"},{"VARCHAR":"VARCHAR2"}]},{"type":"oracle","fields":[{"INT":"INT"},{"BIGINT":"BIGINT"},{"INTEGER":"INTEGER"},{"NUMERIC":"NUMERIC"},{"TINYINT":"TINYINT"},{"SMALLINT":"SMALLINT"},{"CHAR":"CHAR"},{"TEXT":"VARCHAR2"},{"BLOB":"BLOB"},{"CLOB":"CLOB"},{"VARCHAR":"VARCHAR2"}]}] | |||||
[ | |||||
{ | |||||
"type": "kbsql", | |||||
"fields": [ | |||||
{ | |||||
"INT": "INT" | |||||
}, | |||||
{ | |||||
"BIGINT": "BIGINT" | |||||
}, | |||||
{ | |||||
"INTEGER": "INTEGER" | |||||
}, | |||||
{ | |||||
"NUMERIC": "NUMERIC" | |||||
}, | |||||
{ | |||||
"TINYINT": "TINYINT" | |||||
}, | |||||
{ | |||||
"SMALLINT": "SMALLINT" | |||||
}, | |||||
{ | |||||
"CHAR": "CHAR" | |||||
}, | |||||
{ | |||||
"TEXT": "TEXT" | |||||
}, | |||||
{ | |||||
"MEDIUMTEXT": "TEXT" | |||||
}, | |||||
{ | |||||
"BLOB": "BLOB" | |||||
}, | |||||
{ | |||||
"CLOB": "CLOB" | |||||
}, | |||||
{ | |||||
"VARCHAR": "VARCHAR2" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"type": "dmsql", | |||||
"fields": [ | |||||
{ | |||||
"INT": "INT" | |||||
}, | |||||
{ | |||||
"BIGINT": "BIGINT" | |||||
}, | |||||
{ | |||||
"INTEGER": "INTEGER" | |||||
}, | |||||
{ | |||||
"NUMERIC": "NUMERIC" | |||||
}, | |||||
{ | |||||
"TINYINT": "TINYINT" | |||||
}, | |||||
{ | |||||
"SMALLINT": "SMALLINT" | |||||
}, | |||||
{ | |||||
"CHAR": "CHAR" | |||||
}, | |||||
{ | |||||
"TEXT": "TEXT" | |||||
}, | |||||
{ | |||||
"MEDIUMTEXT": "TEXT" | |||||
}, | |||||
{ | |||||
"BLOB": "BLOB" | |||||
}, | |||||
{ | |||||
"CLOB": "CLOB" | |||||
}, | |||||
{ | |||||
"VARCHAR": "VARCHAR2" | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
"type": "oracle", | |||||
"fields": [ | |||||
{ | |||||
"INT": "INT" | |||||
}, | |||||
{ | |||||
"BIGINT": "BIGINT" | |||||
}, | |||||
{ | |||||
"INTEGER": "INTEGER" | |||||
}, | |||||
{ | |||||
"NUMERIC": "NUMERIC" | |||||
}, | |||||
{ | |||||
"TINYINT": "TINYINT" | |||||
}, | |||||
{ | |||||
"SMALLINT": "SMALLINT" | |||||
}, | |||||
{ | |||||
"CHAR": "CHAR" | |||||
}, | |||||
{ | |||||
"TEXT": "VARCHAR2" | |||||
}, | |||||
{ | |||||
"MEDIUMTEXT": "VARCHAR2" | |||||
}, | |||||
{ | |||||
"BLOB": "BLOB" | |||||
}, | |||||
{ | |||||
"CLOB": "CLOB" | |||||
}, | |||||
{ | |||||
"VARCHAR": "VARCHAR2" | |||||
} | |||||
] | |||||
} | |||||
] |
@@ -57,7 +57,6 @@ public interface SwConsts { | |||||
String TEXT_SUFFIX = "_text"; | String TEXT_SUFFIX = "_text"; | ||||
String NAME_ID = "id"; | String NAME_ID = "id"; | ||||
String DEF_PWD = "abc@123456"; //初始密码 | |||||
String LOGIN_VERIFY_CODE = "_VERIFY_CODE"; | String LOGIN_VERIFY_CODE = "_VERIFY_CODE"; | ||||
String _LOGIN_USER_ID_IN_SESSION = "_LOGIN_USER_ID_IN_SESSION"; | String _LOGIN_USER_ID_IN_SESSION = "_LOGIN_USER_ID_IN_SESSION"; | ||||
@@ -355,36 +355,6 @@ public interface SwEnum { | |||||
public static StrEnumBean FLOW_LT_MS = instance.addEnum("FLOW_LT_MS", "左树-主子列表(含编辑卡片、工作流)"); | public static StrEnumBean FLOW_LT_MS = instance.addEnum("FLOW_LT_MS", "左树-主子列表(含编辑卡片、工作流)"); | ||||
} | } | ||||
// 权限类型 | |||||
class MenuRightType extends StrEnum { | |||||
public static MenuFuncRight instance = new MenuFuncRight(); | |||||
public static StrEnumBean DATA = instance.addEnum("data", "数据权限"); | |||||
public static StrEnumBean FUNC = instance.addEnum("func", "功能权限"); | |||||
public static StrEnumBean FIELD = instance.addEnum("field", "字段权限"); | |||||
} | |||||
class MenuType extends IntEnum { | |||||
public static MenuType instance = new MenuType(); | |||||
public static IntEnumBean DESIGN = instance.addEnum(0, "设计器页面"); | |||||
public static IntEnumBean CUSTOM = instance.addEnum(1, "自定义页面"); | |||||
public static IntEnumBean LINK = instance.addEnum(2, "外部链接"); | |||||
} | |||||
// 功能权限枚举 | |||||
class MenuFuncRight extends StrEnum { | |||||
public static MenuFuncRight instance = new MenuFuncRight(); | |||||
public static StrEnumBean READ = instance.addEnum("read", "查看"); | |||||
public static StrEnumBean WRITE = instance.addEnum("write", "修改"); | |||||
} | |||||
class UserStatu extends IntEnum { | |||||
public static UserStatu instance = new UserStatu(); | |||||
public static IntEnumBean NOACT = instance.addEnum(0, "未激活"); | |||||
public static IntEnumBean NORMAL = instance.addEnum(1, "已激活"); | |||||
public static IntEnumBean LOCK = instance.addEnum(2, "已锁定"); | |||||
public static IntEnumBean STOP = instance.addEnum(9, "已停用"); | |||||
} | |||||
// 用户等级 | // 用户等级 | ||||
class UserLevel extends IntEnum { | class UserLevel extends IntEnum { | ||||
public static UserLevel instance = new UserLevel(); | public static UserLevel instance = new UserLevel(); | ||||