Merge remote-tracking branch 'origin/master'

yun-zuoyi
alwaysfrin 7 years ago
commit 1b6e373c0e

@ -47,7 +47,7 @@ public interface ISysMenuService {
* @param id * @param id
* @return * @return
*/ */
void deleteSysMenuById(String id); void deleteSysMenuById(Long id);
/** /**
* id * id

@ -3,7 +3,7 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.*; import cn.estsh.i3plus.pojo.platform.bean.*;
import org.apache.shiro.authc.AuthenticationException;
import java.util.List; import java.util.List;
/** /**
@ -22,7 +22,7 @@ public interface ISysUserService {
* @param languageCode * @param languageCode
* @return * @return
*/ */
SessionUser queryUserLogin(String loginName, String password, String languageCode); SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException;
/** /**
* *
@ -56,6 +56,12 @@ public interface ISysUserService {
void updateSysUserPassword(String userIdStr,String password,String newPwd) throws Exception; void updateSysUserPassword(String userIdStr,String password,String newPwd) throws Exception;
/** /**
*
* @param userId
*/
void updateUserLoginLastDateTime(Long userId);
/**
* *
* @param sysUser * @param sysUser
* @return * @return

@ -33,6 +33,7 @@ import java.util.Map;
@Api(description="登陆授权demo") @Api(description="登陆授权demo")
public class DemoAuthController extends CoreBaseController { public class DemoAuthController extends CoreBaseController {
public static final Logger LOGGER = LoggerFactory.getLogger(DemoAuthController.class); public static final Logger LOGGER = LoggerFactory.getLogger(DemoAuthController.class);
@Autowired @Autowired
private ISystemLoginService systemLoginService; private ISystemLoginService systemLoginService;

@ -14,6 +14,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authc.AuthenticationException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -63,7 +64,9 @@ public class AuthController {
ResultBean result = new ResultBean(true, "", AuthUtil.getSessionUser()); ResultBean result = new ResultBean(true, "", AuthUtil.getSessionUser());
result.setUrl("/"); result.setUrl("/");
return result; return result;
} catch (ImppBusiException e) { }catch (AuthenticationException e) {
return new ResultBean(false,e.getMessage());
}catch (ImppBusiException e) {
return new ResultBean(false,e.getErrorDetail() + ",so:" + e.getErrorSolution()); return new ResultBean(false,e.getErrorDetail() + ",so:" + e.getErrorSolution());
}catch (Exception e){ }catch (Exception e){
return ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); return ResultBean.fail(e.getMessage()).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());

@ -8,6 +8,7 @@
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.Organize; import cn.estsh.i3plus.pojo.platform.bean.Organize;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu; import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.impp.framework.base.controller.BaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -33,7 +34,7 @@
@RestController @RestController
@RequestMapping("/sys-menu") @RequestMapping("/sys-menu")
@Api(description = "系统功能服务") @Api(description = "系统功能服务")
public class SysMenuController { public class SysMenuController extends BaseController {
public static final Logger LOGGER = LoggerFactory.getLogger(SysMenuController.class); public static final Logger LOGGER = LoggerFactory.getLogger(SysMenuController.class);
@ -51,7 +52,7 @@ public class SysMenuController {
.notNull("menuTypeId", menu.getMenuTypeId()); .notNull("menuTypeId", menu.getMenuTypeId());
//新增初始化 //新增初始化
ConvertBean.modelInitialize(menu, AuthUtil.getSessionUser()); ConvertBean.modelInitialize(menu, getSessionUser());
if(menu.getParentId() == null || menu.getParentId().intValue() == 0){ if(menu.getParentId() == null || menu.getParentId().intValue() == 0){
menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue()); menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue());
} }
@ -78,7 +79,7 @@ public class SysMenuController {
.notNull("menuCode", sysMenu.getMenuCode()) .notNull("menuCode", sysMenu.getMenuCode())
.notNull("name", sysMenu.getName()); .notNull("name", sysMenu.getName());
ConvertBean.modelUpdate(sysMenu, AuthUtil.getSessionUser()); ConvertBean.modelUpdate(sysMenu, getSessionUser());
sysMenuService.updateSysMenu(sysMenu); sysMenuService.updateSysMenu(sysMenu);
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -95,9 +96,9 @@ public class SysMenuController {
public ResultBean deleteSysMenu(@PathVariable("id") String id) { public ResultBean deleteSysMenu(@PathVariable("id") String id) {
try { try {
// 数据校验 // 数据校验
ValidatorBean.checkNotNull(id, "系统功能id 不能为空"); ValidatorBean.checkIsNumber(id, "系统功能id 不能为空");
sysMenuService.deleteSysMenuById(id); sysMenuService.deleteSysMenuById(Long.parseLong(id));
return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep); LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
@ -172,7 +173,7 @@ public class SysMenuController {
ValidatorBean.checkNotNull(id, "功能id 不能为空"); ValidatorBean.checkNotNull(id, "功能id 不能为空");
ValidatorBean.checkNotZero(status, "功能状态不能为空"); ValidatorBean.checkNotZero(status, "功能状态不能为空");
sysMenuService.updateSysMenuStatus(id,status,AuthUtil.getSessionUser()); sysMenuService.updateSysMenuStatus(id,status,getSessionUser());
return new ResultBean(true); return new ResultBean(true);
} catch(ImppBusiException busExcep){ } catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep); LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
@ -192,7 +193,7 @@ public class SysMenuController {
ValidatorBean.checkNotNull(ids, "功能id 不能为空"); ValidatorBean.checkNotNull(ids, "功能id 不能为空");
ValidatorBean.checkNotZero(status, "功能状态不能为空"); ValidatorBean.checkNotZero(status, "功能状态不能为空");
sysMenuService.updateSysMenuStatusByIds(ids,status,AuthUtil.getSessionUser()); sysMenuService.updateSysMenuStatusByIds(ids,status,getSessionUser());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch(ImppBusiException busExcep){ } catch(ImppBusiException busExcep){

@ -59,7 +59,7 @@ public class TaskTimeController {
ValidatorBean.beginValid(taskTimeExpression); ValidatorBean.beginValid(taskTimeExpression);
taskTime.setRedTimeName(taskTimeExpression.getName()); taskTime.setRedTimeName(taskTimeExpression.getName());
taskTime.setRedTimeExpression(taskTimeExpression.getTimeExpression()); taskTime.setRedTimeExpression(taskTimeExpression.getExpressionContent());
taskTime.setTaskStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); taskTime.setTaskStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue());
ConvertBean.modelInitialize(taskTime, AuthUtil.getSessionUser()); ConvertBean.modelInitialize(taskTime, AuthUtil.getSessionUser());
@ -95,7 +95,7 @@ public class TaskTimeController {
// 数据冗余 // 数据冗余
taskTime.setRedTimeName(taskTimeExpression.getName()); taskTime.setRedTimeName(taskTimeExpression.getName());
taskTime.setRedTimeExpression(taskTimeExpression.getTimeExpression()); taskTime.setRedTimeExpression(taskTimeExpression.getExpressionContent());
ConvertBean.modelUpdate(taskTime, AuthUtil.getSessionUser()); ConvertBean.modelUpdate(taskTime, AuthUtil.getSessionUser());

@ -46,16 +46,12 @@ public class TaskTimeExpressionController {
// 数据校验 // 数据校验
ValidatorBean.beginValid(timeExpression) ValidatorBean.beginValid(timeExpression)
.notNull("name", timeExpression.getName()) .notNull("name", timeExpression.getName())
.notNull("timeExpression", timeExpression.getTimeExpression()) .notNull("expressionContent", timeExpression.getExpressionContent())
.notNull("timeDescription", timeExpression.getTimeDescription()); .notNull("expressionStartDatetime",timeExpression.getExpressionStartDatetime());
ConvertBean.modelInitialize(timeExpression, AuthUtil.getSessionUser()); taskTimeExpressionService.insertTaskTimeExpression(timeExpression);
timeExpression = taskTimeExpressionService.insertTaskTimeExpression(timeExpression); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
return ResultBean.success("操作成功")
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(timeExpression);
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep); LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
return ResultBean.fail(busExcep.getErrorShow()); return ResultBean.fail(busExcep.getErrorShow());
@ -73,16 +69,11 @@ public class TaskTimeExpressionController {
ValidatorBean.beginValid(timeExpression) ValidatorBean.beginValid(timeExpression)
.notNull("id", timeExpression.getId()) .notNull("id", timeExpression.getId())
.notNull("name", timeExpression.getName()) .notNull("name", timeExpression.getName())
.notNull("timeExpression", timeExpression.getTimeExpression()) .notNull("timeExpression", timeExpression.getExpressionContent());
.notNull("timeDescription", timeExpression.getTimeDescription());
ConvertBean.modelInitialize(timeExpression, AuthUtil.getSessionUser());
taskTimeExpressionService.updateTaskTimeExpression(timeExpression); taskTimeExpressionService.updateTaskTimeExpression(timeExpression);
return ResultBean.success("操作成功") return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultObject(timeExpression);
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep); LOGGER.error(busExcep.getErrorMsg() + "{}", busExcep.getErrorDetail(), busExcep);
return ResultBean.fail(busExcep.getErrorShow()); return ResultBean.fail(busExcep.getErrorShow());

@ -13,6 +13,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -86,31 +87,20 @@ public class SystemLoginService implements ISystemLoginService {
*/ */
public SysUser getUserLoginInfo(String loginName,String pwd) { public SysUser getUserLoginInfo(String loginName,String pwd) {
SysUser user = sysUserRDao.getByProperty("userLoginName",loginName); SysUser user = sysUserRDao.getByProperty("userLoginName",loginName);
try { // 密码加密
pwd = EncryptTool.hexMD5(pwd);
}catch (Exception e){
e.printStackTrace();
}
if(user == null){ //用户不存在 if(user == null){ //用户不存在
throw ImppExceptionBuilder.newInstance() throw new AuthenticationException("用户不存在");
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) }else {
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode()) try { // 密码加密
.setErrorDetail("用户不存在") pwd = EncryptTool.hexMD5(pwd);
.setErrorSolution("重新登陆") } catch (Exception e) {
.build(); LOGGER.error("登录密码加密出错。");
} throw new AuthenticationException("登陆密码错误");
}
if (!StringUtils.equals(user.getUserLoginPassword(),pwd )) { //密码不符 if (!StringUtils.equals(user.getUserLoginPassword(), pwd)) { //密码不符
throw ImppExceptionBuilder.newInstance() throw new AuthenticationException("登陆密码错误");
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) }
.setErrorCode(ImppExceptionEnum.LOGIN_EXCEPTION.getCode()) return user;
.setErrorDetail("登陆密码错误")
.setErrorSolution("重新输入")
.build();
} }
return user;
} }
/** /**

@ -103,9 +103,9 @@ public class SysMenuService implements ISysMenuService {
} }
@Override @Override
public void deleteSysMenuById(String id) { public void deleteSysMenuById(Long id) {
LOGGER.info("系统功能 SYS_MENU Key:{}", id); LOGGER.info("系统功能 SYS_MENU Key:{}", id);
long count = sysMenuRDao.findByPropertyCount("parentId",Long.parseLong(id)); long count = sysMenuRDao.findByPropertyCount("parentId",id);
if(count >= 1){ if(count >= 1){
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
@ -116,8 +116,8 @@ public class SysMenuService implements ISysMenuService {
} }
refRoleMenuRDao.deleteByProperty("menuId",id); refRoleMenuRDao.deleteById(id);
sysMenuRDao.deleteById(Long.parseLong(id)); sysMenuRDao.deleteById(id);
} }
@Override @Override

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao;
import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.EncryptTool; import cn.estsh.i3plus.platform.common.tool.EncryptTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -18,6 +19,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean; import cn.estsh.impp.framework.boot.util.ValidatorBean;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.AuthenticationToken;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -70,36 +72,42 @@ public class SysUserService implements ISysUserService {
private RefUserPositionRepository refUserPositionRDao; private RefUserPositionRepository refUserPositionRDao;
@Override @Override
public SessionUser queryUserLogin(String loginName, String password, String languageCode) { public SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException {
LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode);
SysUser user = getSysUserByLoginName(loginName); // SysUser user = this.getSysUserByLoginName(loginName);
//
if(user == null){ // if(user == null){
throw ImppExceptionBuilder.newInstance() // throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) // .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.LOGIN_USER_NAME_EXCEPTION.getCode()) // .setErrorCode(ImppExceptionEnum.LOGIN_USER_NAME_EXCEPTION.getCode())
.setErrorDetail("用户名不存在") // .setErrorDetail("用户名不存在")
.setErrorSolution("请重新输入用户名") // .setErrorSolution("请重新输入用户名")
.build(); // .build();
} // }
//
AuthenticationToken token = null; // AuthenticationToken token = null;
switch (user.getUserTypeId()) { // switch (user.getUserTypeId()) {
case 2: // case 2:
token = new AdminToken(loginName, password, languageCode); // token = new AdminToken(loginName, password, languageCode);
break; // break;
case 3: // case 3:
token = new SaAdminToken(loginName, password, languageCode); // token = new SaAdminToken(loginName, password, languageCode);
break; // break;
default: // default:
token = new UserToken(loginName, password, languageCode); // token = new UserToken(loginName, password, languageCode);
break; // break;
} // }
// SessionUser sessionUser = AuthUtil.login(token);
UserToken token = new UserToken(loginName,password,languageCode);
System.out.println("=============" + token);
SessionUser sessionUser = AuthUtil.login(token); SessionUser sessionUser = AuthUtil.login(token);
SysUser user = this.getSysUserByLoginName(loginName);
packSessionUser(sessionUser, user, user.getUserTypeId(), languageCode); packSessionUser(sessionUser, user, user.getUserTypeId(), languageCode);
AuthUtil.setSessionUser(sessionUser); AuthUtil.setSessionUser(sessionUser);
updateUserLoginLastDateTime(user.getId());
return sessionUser; return sessionUser;
} }
@ -107,7 +115,7 @@ public class SysUserService implements ISysUserService {
public void updateSysUserStatus(String id, int status, SessionUser user) { public void updateSysUserStatus(String id, int status, SessionUser user) {
LOGGER.debug("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName()); LOGGER.debug("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName());
SysUser sysUser = sysUserRDao.getById(Long.parseLong(id)); SysUser sysUser = sysUserRDao.getById(Long.parseLong(id));
// sysUser.setUserStatusId(status); sysUser.setUserStatus(status);
sysUser.setModifyUser(user.getUserName()); sysUser.setModifyUser(user.getUserName());
sysUserRDao.update(sysUser); sysUserRDao.update(sysUser);
} }
@ -120,7 +128,7 @@ public class SysUserService implements ISysUserService {
List<SysUser> list = sysUserRDao.findByHqlWhere(where); List<SysUser> list = sysUserRDao.findByHqlWhere(where);
if(null != list && list.size() > 0){ if(null != list && list.size() > 0){
for (SysUser sysUser : list) { for (SysUser sysUser : list) {
// sysUser.setUserStatusId(status); sysUser.setUserStatus(status);
sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
ConvertBean.modelUpdate(sysUser,user); ConvertBean.modelUpdate(sysUser,user);
} }
@ -182,6 +190,18 @@ public class SysUserService implements ISysUserService {
} }
@Override @Override
public void updateUserLoginLastDateTime(Long userId) {
SysUser user = sysUserRDao.getById(userId);
SysUserInfo userInfo = sysUserInfoRDao.getById(user.getUserInfoId());
user.setUserLoginLastDateTime(TimeTool.getNowTime(true));
userInfo.setUserLoginLastDateTime(TimeTool.getNowTime(true));
sysUserInfoRDao.save(userInfo);
sysUserRDao.save(user);
}
@Override
public SysUser insertSysUser(SysUser sysUser)throws Exception { public SysUser insertSysUser(SysUser sysUser)throws Exception {
LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser);

@ -1,5 +1,5 @@
#项目端口 #项目端口
server.port=8081 server.port=8080
#用户登陆路径 #用户登陆路径
filter.shiro.user.loginuri = /login filter.shiro.user.loginuri = /login

@ -1,5 +1,5 @@
#项目端口 #项目端口
server.port=8080 server.port=51010
#用户登陆路径 #用户登陆路径
filter.shiro.user.loginuri = /login filter.shiro.user.loginuri = /login

@ -54,8 +54,8 @@ public class TestTaskTimeExpressionService extends TestBase {
public void testInsertTaskTimeExpression() { public void testInsertTaskTimeExpression() {
TaskTimeExpression taskTimeExpression = new TaskTimeExpression(); TaskTimeExpression taskTimeExpression = new TaskTimeExpression();
taskTimeExpression.setName("表达式"); taskTimeExpression.setName("表达式");
taskTimeExpression.setTimeExpression("0000000"); taskTimeExpression.setExpressionContent("0000000");
taskTimeExpression.setTimeDescription("描述"); taskTimeExpression.setExpressionDescription("描述");
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {
taskTimeExpression.setId(null); taskTimeExpression.setId(null);

Loading…
Cancel
Save