From 3c0f585effdd24399a9fb0b73c267e5bb695a990 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 20 Dec 2018 18:40:56 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A6=96=E5=AD=97=E6=AF=8D=E7=BC=A9=E5=86=99=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20=E9=83=A8=E9=97=A8=E7=AE=A1=E7=90=86=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9F=A5=E8=AF=A2=E9=80=92=E5=BD=92=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/base/ISystemLoginService.java | 2 +- .../core/api/iservice/busi/ICoreTreeService.java | 3 ++ .../api/iservice/busi/ISysDepartmentService.java | 3 ++ .../controller/base/WhiteController.java | 2 +- .../controller/busi/SysDepartmentController.java | 32 ++++++++++++++++------ .../controller/busi/SysMenuController.java | 28 +++++++++++++------ .../serviceimpl/base/SystemLoginService.java | 4 +-- .../serviceimpl/busi/CoreTreeService.java | 14 ++++++++++ .../serviceimpl/busi/SysDepartmentService.java | 18 +++++++++++- 9 files changed, 85 insertions(+), 21 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java index abd69bc..3682242 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISystemLoginService.java @@ -31,5 +31,5 @@ public interface ISystemLoginService { SessionUser queryCheckSaAdminLogin(SaAdminToken authenticationToken); @ApiOperation(value = "登录密码错误",notes = "登录密码错误记录错误次数功能") - Integer doLoginPasswordError(String loginName); + Integer doLoginPasswordError(String loginName,String sessionId); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java index e7e5134..8e6a7af 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreTreeService.java @@ -90,6 +90,9 @@ public interface ICoreTreeService { @ApiOperation(value = "获取组织树",notes = "根据父节点获取组织树集合") List findSysOrganizeTreeByParentId(long parentId); + @ApiOperation(value = "获取组织子集ID集合",notes = "获取组织子集ID集合") + List findSysOrganizeChildIds(SysOrganize organize); + /** * 获取组织树 * @param id diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java index 9b47605..d5e02e5 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDepartmentService.java @@ -78,6 +78,9 @@ public interface ISysDepartmentService { @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组合)") ListPager findSysDepartmentByPager(SysDepartment department, Pager pager); + @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)") + ListPager findSysDepartmentByPager(SysDepartment department,List organizeIdList, Pager pager); + /** * 获取部门数量 * @return diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index c02fb3d..5bbc3c5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -95,7 +95,7 @@ public class WhiteController extends CoreBaseController { recordSysUserLog(user.getUser().getUserInfoId(), loginName,CommonEnumUtil.USER_LOGIN_STATUS.LOGIN_SUCCESS.getValue(), request); } catch (IncorrectCredentialsException e) { // 密码错误 - Integer num = systemLoginService.doLoginPasswordError(loginName); + Integer num = systemLoginService.doLoginPasswordError(loginName,request.getSession().getId()); num = CommonConstWords.USER_LOGIN_ERROR_MAX_NUM - num; result = ResultBean.fail(ImppExceptionEnum.LOGIN_EXCEPTION_USER_PASSWORD); if(num == 0){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java index 216ccea..07f9c8b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDepartmentController.java @@ -1,6 +1,8 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.busi.ICoreTreeService; import cn.estsh.i3plus.core.api.iservice.busi.ISysDepartmentService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysOrganizeService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; @@ -10,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysDepartment; +import cn.estsh.i3plus.pojo.platform.bean.SysOrganize; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -40,7 +43,13 @@ public class SysDepartmentController extends CoreBaseController { public static final Logger LOGGER = LoggerFactory.getLogger(SysDepartmentController.class); @Autowired - public ISysDepartmentService departmentService; + private ISysDepartmentService departmentService; + + @Autowired + private ICoreTreeService coreTreeService; + + @Autowired + private ISysOrganizeService organizeService; @PostMapping(value = "/insert") @ApiOperation(value = "添加部门", notes = "返回内容添加部门") @@ -146,14 +155,11 @@ public class SysDepartmentController extends CoreBaseController { SysDepartment department = departmentService.getSysDepartmentById(Long.parseLong(id)); - if(department != null){ return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(department); }else { return ResultBean.fail("数据不存在").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode()); } - - } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); return ResultBean.fail(busExcep); @@ -167,10 +173,20 @@ public class SysDepartmentController extends CoreBaseController { @ApiOperation(value = "查询部门", notes = "组合查询部门信息外加分页信息") public ResultBean querySysDepartment(SysDepartment department, Pager pager) { try { - ListPager departmentListPager = departmentService.findSysDepartmentByPager(department, pager); - return ResultBean.success("查询成功") - .setListPager(departmentListPager) - .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + ListPager list = null; + if(department.getOrganizeId() != null){ + SysOrganize organize = organizeService.getSysOrganizeById(department.getOrganizeId()); + if(organize != null){ + coreTreeService.findSysOrganizeChildrenTreePack(organize,0); + List childIds = coreTreeService.findSysOrganizeChildIds(organize); + list = departmentService.findSysDepartmentByPager(department,childIds, pager); + }else { + return ResultBean.fail("不存在组织信息").setCode(ResourceEnumUtil.MESSAGE.EMPTY.getCode()); + } + }else{ + list = departmentService.findSysDepartmentByPager(department, pager); + } + return ResultBean.success("查询成功").setListPager(list).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java index afe2dc8..e2534b4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMenuController.java @@ -53,9 +53,14 @@ public class SysMenuController extends CoreBaseController { //新增初始化 ConvertBean.modelInitialize(menu, getSessionUser()); + menu.setNameZhShortening(StringTool.getAllFirstLetter(menu.getName())); if(menu.getParentId() == null || menu.getParentId().intValue() == 0){ menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue()); } + if(menu.getMenuSort() == null){ + menu.setMenuSort(0); + } + menu.setMenuStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); menu = sysMenuService.insertSysMenu(menu); @@ -70,18 +75,25 @@ public class SysMenuController extends CoreBaseController { @PutMapping(value = "/update") @ApiOperation(value = "修改系统功能", notes = "系统功能") - public ResultBean updateSysMenu(SysMenu sysMenu) { + public ResultBean updateSysMenu(SysMenu menu) { try { // 数据校验 - ValidatorBean.beginValid(sysMenu) - .notNull("id", sysMenu.getId()) - .notNull("menuType", sysMenu.getMenuType()) - .notNull("menuCode", sysMenu.getMenuCode()) - .notNull("name", sysMenu.getName()); + ValidatorBean.beginValid(menu) + .notNull("id", menu.getId()) + .notNull("menuType", menu.getMenuType()) + .notNull("menuCode", menu.getMenuCode()) + .notNull("name", menu.getName()); - ConvertBean.modelUpdate(sysMenu, getSessionUser()); + ConvertBean.modelUpdate(menu, getSessionUser()); + menu.setNameZhShortening(StringTool.getAllFirstLetter(menu.getName())); + if(menu.getParentId() == null || menu.getParentId().intValue() == 0){ + menu.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue()); + } + if(menu.getMenuSort() == null){ + menu.setMenuSort(0); + } - sysMenuService.updateSysMenu(sysMenu); + sysMenuService.updateSysMenu(menu); return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java index dbae5e9..3d967f8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java @@ -97,10 +97,10 @@ public class SystemLoginService implements ISystemLoginService { @Override @ApiOperation(value = "登录密码错误",notes = "登录密码错误记录错误次数功能") - public Integer doLoginPasswordError(String loginName) { + public Integer doLoginPasswordError(String loginName,String sessionId) { SysUser user = sysUserRDao.getByProperty("userLoginName",loginName); if(user != null){ - String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + user.getId(); + String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + sessionId + "_" + user.getId(); Object redisValue = redisCore.getObject(redisKey); Integer num = redisValue == null ? 1 : Integer.parseInt(redisValue.toString()) + 1; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java index 0081cad..242128b 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreTreeService.java @@ -191,6 +191,20 @@ public class CoreTreeService implements ICoreTreeService { } @Override + public List findSysOrganizeChildIds(SysOrganize organize) { + List result = new ArrayList<>(); + if(null != organize){ + if(organize.getChildList() != null && organize.getChildList().size() > 0){ + for (SysOrganize org : organize.getChildList()) { + result.addAll(findSysOrganizeChildIds(org)); + } + } + result.add(organize.getId()); + } + return result; + } + + @Override @ApiOperation(value = "封装组织树",notes = "封装当前组织树") public void findSysOrganizeChildrenTreePack(SysOrganize parent, int step) { ++step; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java index d49247a..cd51851 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java @@ -173,7 +173,6 @@ public class SysDepartmentService implements ISysDepartmentService { @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组合)") public ListPager querySysDepartment(SysDepartment department, Pager pager) { LOGGER.info("部门 SysDepartment find department :{} page:{}", department, pager); - if (department == null) { //不传入实体对象,查询所有 int count = departmentRDao.listCount(); @@ -212,6 +211,23 @@ public class SysDepartmentService implements ISysDepartmentService { } @Override + public ListPager findSysDepartmentByPager(SysDepartment department, List organizeIdList, Pager pager) { + LOGGER.info("部门信息 DEPARTMENT department :{} organizeIdList:{}", department,organizeIdList); + + if (department == null) { + pager = PagerHelper.getPager(pager, departmentRDao.listCount()); + return new ListPager(departmentRDao.listPager(pager),pager); + } else { + + String hqlPack = CoreHqlPack.packHqlSysDepartment(department); + hqlPack += CoreHqlPack.packHqlIds("organizeId",organizeIdList.toArray(new Long[organizeIdList.size()])); + + pager = PagerHelper.getPager(pager, departmentRDao.findByHqlWhereCount(hqlPack)); + return new ListPager(departmentRDao.findByHqlWherePage(hqlPack + department.orderBy(),pager),pager); + } + } + + @Override public long getSysDepartmentCount() { return departmentRDao.listCount(); } From 470759395dbf81c3712f07e22c72e02a2de0eb45 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 20 Dec 2018 21:37:04 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Cloud=20=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=BB=84=E7=BB=87=E6=88=96=E8=80=85=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E4=B8=8B=E9=9D=A2=E7=9A=84=E4=BA=BA=E5=91=98=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/busi/ISysUserInfoService.java | 12 ++++++++ .../controller/busi/SysUserInfoController.java | 36 ++++++++++++++++------ .../serviceimpl/busi/SysUserInfoService.java | 32 ++++++++++++++++++- 3 files changed, 70 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java index d5d8c72..ccac749 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserInfoService.java @@ -120,6 +120,9 @@ public interface ISysUserInfoService { @ApiOperation(value = "关系查询-用户部门",notes = "查询用户部门关系") List findRefUserDepartmentByUserId(Long userId); + @ApiOperation(value = "关系查询-用户部门",notes = "根据部门或者组织集合查询用户部门关系") + List querySysRefUserDepartment(SysUserInfo userInfo); + /** * 查询用户岗位关系 * @param userId @@ -129,6 +132,15 @@ public interface ISysUserInfoService { List findSysRefUserPositionByUserId(Long userId); /** + * 根据(组织ID,部门ID,用户名称,用户工号) 查询用户信息 + * @param info + * @param idList 用户ID 集合 + * @return + */ + @ApiOperation(value = "查询用户信息-",notes = "根据组织、部门、名称+工号组合查询条件查询用户信息") + List querySysUserInfoList(SysUserInfo info, List idList); + + /** * 用户唯一校验 用户工号 * @param no * @param id diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java index 07446b2..ca9c9b2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserInfoController.java @@ -1,10 +1,8 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysDepartmentService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService; import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService; -import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysOrganizeService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; @@ -20,7 +18,6 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; -import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -28,6 +25,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -51,12 +50,6 @@ public class SysUserInfoController extends CoreBaseController{ private ISysDepartmentService departmentService; @Autowired - private SysOrganizeService organizeService; - - @Autowired - private ISysFileService sysFileService; - - @Autowired private ISysPositionService sysPositionService; @PostMapping(value="/insert") @@ -247,6 +240,31 @@ public class SysUserInfoController extends CoreBaseController{ } } + @GetMapping(value = "/query-ref-department") + @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") + public ResultBean queryRefDepartment(SysUserInfo userInfo) { + try { + List idList = new ArrayList<>(); + + List refs = sysUserInfoService.querySysRefUserDepartment(userInfo); + if(refs != null && refs.size() > 0){ + for (SysRefUserDepartment ref : refs) { + idList.add(ref.getUserId()); + } + } + + List result = sysUserInfoService.querySysUserInfoList(userInfo, idList); + + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); + } catch (ImppBusiException busExcep) { + LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); + return ResultBean.fail(busExcep); + } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); + } + } + @GetMapping(value = "/find-ref-position/{userId}") @ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系") public ResultBean findRefPosition(@PathVariable("userId") String userId) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java index 0c5fe9d..f89d1b7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserInfoService.java @@ -99,6 +99,8 @@ public class SysUserInfoService implements ISysUserInfoService { SysRefUserDepartment ref = null; for (SysDepartment department : departmentList) { ref = new SysRefUserDepartment(); + ref.setOrganizeId(department.getOrganizeId()); + ref.setOrganizeNameRdd(department.getOrganizeNameRdd()); ref.setDepartmentId(department.getId()); ref.setDepartmentNameRdd(department.getName()); ref.setUserId(userInfo.getId()); @@ -249,7 +251,7 @@ public class SysUserInfoService implements ISysUserInfoService { @Override @ApiOperation(value = "查询用户信息",notes = "根据复杂查询条件查询用户信息(分页信息)") public ListPager querySysUserInfo(SysUserInfo userInfo, Pager pager) { - LOGGER.info("定时任务 TASK_TIME TaskTime:{},Pager:{}",userInfo,pager); + LOGGER.info("查询用户信息 TASK_TIME TaskTime:{},Pager:{}",userInfo,pager); if(userInfo == null) { pager = PagerHelper.getPager(pager, sysUserInfoRDao.listCount()); return new ListPager(sysUserInfoRDao.listPager(pager),pager); @@ -267,6 +269,25 @@ public class SysUserInfoService implements ISysUserInfoService { } @Override + @ApiOperation(value = "关系查询-用户部门",notes = "根据部门或者组织集合查询用户部门关系") + public List querySysRefUserDepartment(SysUserInfo userInfo) { + if(userInfo != null){ + StringBuffer userIdWhere = new StringBuffer(); + + if(userInfo.getDepartmentIdList() != null){ + HqlPack.getInPack(StringUtils.join(userInfo.getDepartmentIdList(),","),"departmentId", userIdWhere); + } + if(userInfo.getOrganizeIdList() != null){ + HqlPack.getInPack( StringUtils.join(userInfo.getOrganizeIdList(),","),"organizeId",userIdWhere); + } + + return refUserDepartmentRDao.findByHqlWhere(userIdWhere.toString()); + }else { + return null; + } + } + + @Override @ApiOperation(value = "关系查询-用户岗位",notes = "查询用户岗位关系") public List findSysRefUserPositionByUserId(Long userId) { return refUserPositionRDao.findByProperty("userId",userId); @@ -289,6 +310,15 @@ public class SysUserInfoService implements ISysUserInfoService { } @Override + @ApiOperation(value = "查询用户信息-",notes = "根据组织、部门、名称+工号组合查询条件查询用户信息") + public List querySysUserInfoList(SysUserInfo info, List idList) { + LOGGER.info("查询用户信息 TASK_TIME SysUserInfo:{},List idList :{}",info,idList); + + String hqlPack = CoreHqlPack.packHqlSysUserInfo(info,idList); + return sysUserInfoRDao.findByHqlWhere(hqlPack); + } + + @Override @ApiOperation(value = "用户唯一校验 用户工号",notes = "用户唯一校验 用户工号") public boolean checkUserInfoByUserEmpNo(String no, long id) { int count; From e25703f3deed4f52d143b868620d710a9f39a31d Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Fri, 21 Dec 2018 00:31:46 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=20dash?= =?UTF-8?q?board?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/busi/ISysDashboardService.java | 4 +- .../busi/ISysTaskTimeExpressionService.java | 8 + .../busi/ISysTaskTimeRecordingService.java | 13 +- .../api/iservice/busi/ISysTaskTimeService.java | 24 +++ .../controller/DemoExceptionController.java | 55 +++++++ .../controller/busi/SysDashboardController.java | 173 +++++++++++++++------ .../controller/busi/SysDictionaryController.java | 2 +- .../controller/busi/SysMessageController.java | 28 ++++ .../busi/SysTaskTimeExpressionController.java | 33 +++- .../core/apiservice/mq/I3CoreQueueConfig.java | 3 - .../apiservice/mq/MessageLetterQueueReceiver.java | 3 +- .../apiservice/mq/MessageMailQueueReceiver.java | 2 +- .../core/apiservice/mq/ScheduleQueueReceiver.java | 67 ++++++++ .../core/apiservice/schedulejob/DemoJob.java | 8 - .../serviceimpl/busi/SysMessageService.java | 5 +- .../busi/SysTaskTimeExpressionService.java | 21 +++ .../busi/SysTaskTimeRecordingService.java | 10 +- .../serviceimpl/busi/SysTaskTimeService.java | 29 +++- .../serviceimpl/busi/SysToolTypeService.java | 2 +- .../src/main/resources/application-dev.properties | 6 +- .../core/apiservice/serviceimpl/busi/TestBase.java | 60 +++---- .../apiservice/serviceimpl/busi/TestMathOper.java | 59 +++++++ 22 files changed, 498 insertions(+), 117 deletions(-) create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoExceptionController.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java create mode 100644 modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMathOper.java diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java index da555a1..c2ad55e 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysDashboardService.java @@ -68,7 +68,7 @@ public interface ISysDashboardService { * @return */ @ApiOperation(value = "查询操作日志",notes = "查询平均响应耗时") - Map querySysLogSystemAvgExecuteTime(String startTime, String endTime); + Map querySysLogSystemAvgExecuteTime(String startTime, String endTime); /** * 查询时间段内各等级日志数量 @@ -77,5 +77,5 @@ public interface ISysDashboardService { * @return */ @ApiOperation(value = "查询系统日志",notes = "查询各模块系统日志数量") - Map querySysLogSystemByLevel(String startTime, String endTime); + Map querySysLogSystemByLevel(String startTime, String endTime); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java index 7955212..4a6628d 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeExpressionService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.api.iservice.busi; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; import io.swagger.annotations.ApiOperation; @@ -68,4 +69,11 @@ public interface ISysTaskTimeExpressionService { */ @ApiOperation(value = "任务表达式批量删除") void deleteSysTaskTimeExpressionByIds(Long[] ids); + + /** + * 查询表达式所关联的定时任务信息 + * @return + */ + @ApiOperation(value = "根据表达式id查询表达式关联任务信息",notes = "根据表达式id查询表达式关联任务信息") + List findRefExpressionTriggerList(Long id); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java index b325271..773cc4e 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeRecordingService.java @@ -1,13 +1,12 @@ package cn.estsh.i3plus.core.api.iservice.busi; -import cn.estsh.i3plus.pojo.platform.bean.SessionUser; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeRecording; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import io.swagger.annotations.ApiOperation; import java.util.List; /** - * @Description : 定时任务执行记录业务接口 + * @Description : 定时任务执行记录业务接口 * @Reference : * @Author : wei.peng * @Date : 2018-10-22 16:58:44.005 @@ -20,7 +19,7 @@ public interface ISysTaskTimeRecordingService { * @param taskTimeRecording */ @ApiOperation(value = "更新任务表达式信息") - void updateSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording); + void updateSysTaskTimeRecording(SysLogTaskTime taskTimeRecording); /** * 根据Key 删除数据 @@ -35,14 +34,14 @@ public interface ISysTaskTimeRecordingService { * @return */ @ApiOperation(value = "新增任务表达式信息") - SysTaskTimeRecording insertSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording); + SysLogTaskTime insertSysTaskTimeRecording(SysLogTaskTime taskTimeRecording); /** * 查询所有数据 * @return */ @ApiOperation(value = "查询任务表达式信息",notes = "查询所有任务表达式信息") - List findSysTaskTimeRecordingAll(); + List findSysTaskTimeRecordingAll(); /** * 根据id 数据 @@ -50,5 +49,5 @@ public interface ISysTaskTimeRecordingService { * @return */ @ApiOperation(value = "查询任务表达式信息",notes = "查询 ID 任务表达式信息") - SysTaskTimeRecording getSysTaskTimeRecordingById(Long id); + SysLogTaskTime getSysTaskTimeRecordingById(Long id); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java index 4f856c5..ad8ee60 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskTimeService.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import io.swagger.annotations.ApiOperation; import java.util.List; @@ -103,4 +104,27 @@ public interface ISysTaskTimeService { */ @ApiOperation(value = "立即执行") void executeSysTaskTimeById(Long id); + + /** + * 根据定时任务名称与组名称查询 + * @param name + * @param groupName + * @return + */ + @ApiOperation(value = "查询定时任务",notes = "根据定时任务名称与组名称查询") + SysTaskTime getSysTaskTimeByNameAndGroup(String name,String groupName); + + /** + * 添加定时任务执行日志 + * @param sysLogTaskTime + */ + @ApiOperation(value = "添加定时任务执行日志",notes = "添加定时任务执行日志") + void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime); + + /** + * 修改定时任务信息,不会更新quartz数据库 + * @param sysTaskTime + */ + @ApiOperation(value = "修改定时任务信息",notes = "修改定时任务信息,不会更新quartz数据库") + void updateSysTaskTime(SysTaskTime sysTaskTime); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoExceptionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoExceptionController.java new file mode 100644 index 0000000..fde4bbc --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoExceptionController.java @@ -0,0 +1,55 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud; +import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud; +import cn.estsh.i3plus.pojo.base.bean.BaseModelBean; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SessionUser; +import cn.estsh.i3plus.pojo.platform.bean.SysRole; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; + +import java.sql.SQLException; +import java.util.Map; + +@RestController +@RequestMapping("/impp") +@Api(description="异常服务测试") +public class DemoExceptionController { + + private static final Logger LOGGER = LoggerFactory.getLogger(DemoExceptionController.class); + @GetMapping(value="/test-exception") + @ApiOperation(value="测试异常") + public ResultBean testException(int type) throws Exception{ + try{ + if(type == 1){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()) + .setErrorCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()) + .setErrorDetail("手动抛出异常") + .build(); + }else if(type == 2){ + throw new SQLException("测试数据库异常"); + }else { + return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } + }catch(ImppBusiException busExcep){ + LOGGER.error(busExcep.getErrorMsg() + ":{}",busExcep.getErrorDetail(),busExcep); + return ResultBean.fail(busExcep); + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java index b40db50..0d728bb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java @@ -41,58 +41,32 @@ public class SysDashboardController extends CoreBaseController { @Autowired private ISysDashboardService sysDashboardService; - @Resource(name="imppSessionManager") + @Resource(name = "imppSessionManager") private DefaultWebSessionManager webSessionManager; - @Resource(name="redisCore") + @Resource(name = "redisCore") private ImppRedis redisCore; - @GetMapping("/get") - @ApiOperation(value = "获取dashboard数据") - public ResultBean getDashboardData(){ + @GetMapping("/get-basic") + @ApiOperation(value = "获取基础数据", notes = "获取基础数据,用户,部门,组织等信息") + public ResultBean getBasicInfo() { try { - Object ds = redisCore.getObject(PlatformConstWords.DASHBOARD_REDIS_KEY + new Date().getTime()); - if(ds == null){ - // 前10分钟的日期时间 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Calendar cal = Calendar.getInstance(); - cal.setTime(new Date()); - - String endTime = TimeTool.getNowTime(true); - cal.add(Calendar.MINUTE,-10); - String startTime = sdf.format(cal.getTime()); + // 保持时间,key统一 + Date nowDate = new Date(); + String redisKey = PlatformConstWords.REDIS_DASHBOARD_BASIC_INFO + "_" + nowDate.getTime(); - Map dashboardData = new HashMap<>(); + Map dashboardData = redisCore.getHashMap(redisKey); + if (dashboardData == null || dashboardData.size() == 0) { + dashboardData = new HashMap<>(); dashboardData.put("orgNum", sysDashboardService.getSysOrganizeCount()); - dashboardData.put("deptNum",sysDashboardService.getSysDepartmentCount()); - dashboardData.put("onlineUser",webSessionManager.getSessionDAO().getActiveSessions().size()); - dashboardData.put("logOperate",sysDashboardService.findNewSysLogOperateSize(10)); - dashboardData.put("logException",sysDashboardService.findNewSysLogExceptionSize(10)); - dashboardData.put("avgExecuteTime",sysDashboardService.querySysLogSystemAvgExecuteTime(startTime,endTime)); - dashboardData.put("levelLogNum",sysDashboardService.querySysLogSystemByLevel(startTime,endTime)); - dashboardData.put("userLoginLog",sysDashboardService.findSysUserLoginLog(10)); - - //获取上一分钟 - sdf = new SimpleDateFormat("yyyyMMddHHmm"); - cal.setTime(new Date()); - cal.add(Calendar.MINUTE,-1); - dashboardData.put("serverPressure",redisCore.getHashMap(CommonConstWords.REDIS_DASHBOARD_MINUTE_SOURCE + "_" + sdf.format(cal.getTime()))); - - //获取上一秒 - sdf = new SimpleDateFormat("yyyyMMddHHmmss"); - cal.setTime(new Date()); - cal.add(Calendar.SECOND,-1); - dashboardData.put("serverPressure",redisCore.getHashMap(CommonConstWords.REDIS_DASHBOARD_SECOND_PRESSURE + "_" + sdf.format(cal.getTime()))); - - redisCore.putObject(PlatformConstWords.DASHBOARD_REDIS_KEY + new Date().getTime(), - SerializeTool.serialization(dashboardData),60); - - return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultMap(dashboardData); - }else{ - return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultMap((Map) SerializeTool.deserialization(ds.toString())); + dashboardData.put("deptNum", sysDashboardService.getSysDepartmentCount()); + dashboardData.put("onlineUser", webSessionManager.getSessionDAO().getActiveSessions().size()); + dashboardData.put("userLoginLog", sysDashboardService.findSysUserLoginLog(10)); + + + redisCore.putHashMap(redisKey, dashboardData, 180); } + return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(dashboardData); } catch ( ImppBusiException busExcep) { return ResultBean.fail(busExcep); @@ -101,4 +75,115 @@ public class SysDashboardController extends CoreBaseController { } } + @GetMapping(value = "/get-log") + @ApiOperation(value = "查询日志", notes = "最近操作,异常日志") + public ResultBean getLogInfo() { + try { + // 保持时间,key统一 + Date nowDate = new Date(); + String redisKey = PlatformConstWords.REDIS_DASHBOARD_AVG_RESP_TIME + "_" + nowDate.getTime(); + + Map dashboardData = redisCore.getHashMap(redisKey); + if (dashboardData == null || dashboardData.size() == 0) { + dashboardData = new HashMap<>(); + dashboardData.put("logOperate", sysDashboardService.findNewSysLogOperateSize(10)); + dashboardData.put("logException", sysDashboardService.findNewSysLogExceptionSize(10)); + + redisCore.putHashMap(redisKey, dashboardData, 180); + } + + return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultMap(dashboardData); + } catch ( + ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/get-avg-response-time") + @ApiOperation(value = "获取平均响应时间", notes = "获取平均响应时间") + public ResultBean getAvgResponseTime() { + try { + // 保持时间,key统一 + Date nowDate = new Date(); + String redisKey = PlatformConstWords.REDIS_DASHBOARD_AVG_RESP_TIME + "_" + nowDate.getTime(); + + Map dashboardData = redisCore.getHashMap(redisKey); + if (dashboardData == null || dashboardData.size() == 0) { + // 获取前5分钟时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + dashboardData = sysDashboardService.querySysLogSystemAvgExecuteTime( + sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -5)),sdf.format(nowDate)); + + redisCore.putHashMap(redisKey, dashboardData, 180); + } + return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultMap(dashboardData); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } + } + + @GetMapping(value = "/get-level-log-num") + @ApiOperation(value = "获取各等级日志数量", notes = "获取各等级日志数量") + public ResultBean getLevelLogNum() { + try { + // 保持时间,key统一 + Date nowDate = new Date(); + String redisKey = PlatformConstWords.REDIS_DASHBOARD_LOG_NUM + "_" + nowDate.getTime(); + + Map dashboardData = redisCore.getHashMap(redisKey); + if (dashboardData == null || dashboardData.size() == 0) { + // 获取前10分钟时间,日志数量 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + dashboardData = sysDashboardService.querySysLogSystemByLevel( + sdf.format(TimeTool.timeCalc(new Date(), Calendar.MINUTE, -10)), sdf.format(nowDate)); + + redisCore.putHashMap(redisKey, dashboardData, 180); + } + return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultMap(dashboardData); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @GetMapping(value = "/get-server-pressure") + public ResultBean getServerPressure() { + try { + // 保持时间,key统一 + Date nowDate = new Date(); + String redisKey = PlatformConstWords.REDIS_DASHBOARD_SERVER_PRESSURE + "_" + nowDate.getTime(); + + Map dashboardData = redisCore.getHashMap(redisKey); + if (dashboardData == null || dashboardData.size() == 0) { + dashboardData = new HashMap<>(); + //获取上一分钟,请求来源数据 + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); + + dashboardData.put("requestSource", redisCore.getHashMap( + CommonConstWords.REDIS_DASHBOARD_MINUTE_SOURCE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -1)))); + + //获取上一秒,服务器压力数据 + sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + + dashboardData.put("serverPressure", redisCore.getObject( + CommonConstWords.REDIS_DASHBOARD_SECOND_PRESSURE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.SECOND, -1)))); + + redisCore.putHashMap(redisKey, dashboardData, 180); + } + return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultMap(dashboardData); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java index 29b90dc..b83b6e5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDictionaryController.java @@ -107,7 +107,7 @@ public class SysDictionaryController extends CoreBaseController{ .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) .setErrorDetail("字典不存在") - .setErrorSolution("请重新输入字典id") + .setErrorSolution("请重新选择") .build(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java index d60778a..8e9369c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java @@ -290,4 +290,32 @@ public class SysMessageController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + @PostMapping(value = "/user-message/insert") + @ApiOperation(value = "用户新增消息",notes = "用户新增消息") + public ResultBean insertUserMessage(SysMessage sysMessage){ + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 条件校验 + ValidatorBean.beginValid(sysMessage) + .notNull("messageTitle",sysMessage.getMessageTitle()) + .notNull("messageContent",sysMessage.getMessageContent()) + .notNull("messageReceiversId",sysMessage.getMessageReceiversId()); + + // 设置发件人名称 + sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); + sysMessage.setMessageSenderId(getSessionUser().getUserId()); + sysMessage.setMessageSenderNameRdd(getSessionUser().getUserName()); + sysMessage.setMessageSendTime(sdf.format(new Date())); + sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); + + sysMessageService.doSendSysMessage(sysMessage); + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java index 20161d4..40013cd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskTimeExpressionController.java @@ -1,12 +1,15 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeExpressionService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -40,6 +43,9 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ @Autowired private ISysTaskTimeExpressionService taskTimeExpressionService; + @Autowired + private ISysTaskTimeService sysTaskTimeService; + @PostMapping(value = "/insert") @ApiOperation(value = "新增系统时间表达式", notes = "系统时间表达式") public ResultBean insertSysTaskTimeExpression(SysTaskTimeExpression timeExpression) { @@ -71,6 +77,19 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ taskTimeExpressionService.updateSysTaskTimeExpression(timeExpression); + // 查询关联定时任务信息,并进行修改 + List refTrigger = taskTimeExpressionService.findRefExpressionTriggerList(timeExpression.getId()); + SysTaskTime sysTaskTime; + for (SysRefExpressionTrigger item: refTrigger) { + sysTaskTime = sysTaskTimeService.getSysTaskTimeByNameAndGroup(item.getTriggerName(),item.getTriggerGroupName()); + sysTaskTime.setTimeExpressionNameRdd(timeExpression.getName()); + sysTaskTime.setTimeExpressionContentRdd(timeExpression.getExpressionContent()); + sysTaskTime.setTaskStartDateTimeRdd(timeExpression.getExpressionStartDatetime()); + sysTaskTime.setTaskEndDateTimeRdd(timeExpression.getExpressionEndDatetime()); + + sysTaskTimeService.updateSysTaskTime(sysTaskTime,timeExpression); + } + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); @@ -81,12 +100,20 @@ public class SysTaskTimeExpressionController extends CoreBaseController{ @DeleteMapping(value = "/delete/{id}") @ApiOperation(value = "删除系统时间表达式", notes = "删除系统时间表达式") - public ResultBean deleteSysTaskTimeExpression(@PathVariable("id") String id) { + public ResultBean deleteSysTaskTimeExpression(@PathVariable("id") String idStr) { try { // 数据校验 - ValidatorBean.checkNotNull(id, "时间表达式id 不能为空"); + ValidatorBean.checkNotNull(idStr, "时间表达式id 不能为空"); + if(taskTimeExpressionService.getSysTaskTimeExpressionById(Long.parseLong(idStr)) == null){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) + .setErrorDetail("时间表达式不存在") + .setErrorSolution("请重新选择") + .build(); + } - taskTimeExpressionService.deleteSysTaskTimeExpressionById(Long.parseLong(id)); + taskTimeExpressionService.deleteSysTaskTimeExpressionById(Long.parseLong(idStr)); return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java index 2fb0093..9498b4f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueConfig.java @@ -20,9 +20,6 @@ public class I3CoreQueueConfig { public static final String IMPP_MESSAGE_QUEUE = "IMPP_MESSAGE_QUEUE"; - public static final String IMPP_MESSAGE_MAIL_QUEUE = "IMPP_MESSAGE_MAIL_QUEUE"; - public static final String IMPP_MESSAGE_LETTER_QUEUE = "IMPP_MESSAGE_LETTER_QUEUE"; - @Bean public Queue getImppMessageQueue() { LOGGER.info("【开启平台消息队列】"); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index 39472b8..81e8f1a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.core.apiservice.websocket.MessageWebSocket; import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage; @@ -44,7 +45,7 @@ public class MessageLetterQueueReceiver { * @param message * 发送:rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....)); */ - @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE) + @RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE) public void processImppMessage(SysMessage msg, Channel channel, Message message) { try { LOGGER.info("【MQ-IMPP_MESSAGE_LETTER_QUEUE】数据接收成功:{}",msg); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index 462acd3..277eb41 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -46,7 +46,7 @@ public class MessageMailQueueReceiver { * @param channel * @param message */ - @RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE) + @RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE) public void processImppMail(SysMessage msg, Channel channel, Message message) { try { LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功:{}",msg);msg = sysMessageService.insertSysMessage(msg); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java new file mode 100644 index 0000000..47cf33d --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java @@ -0,0 +1,67 @@ +package cn.estsh.i3plus.core.apiservice.mq; + +import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; +import com.rabbitmq.client.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @Description : 定时任务通道业务处理 + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-20 21:56 + * @Modify: + **/ +@Component +public class ScheduleQueueReceiver { + + private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleQueueReceiver.class); + + @Autowired + private ISysTaskTimeService sysTaskTimeService; + + /** + * 定时任务通道处理 + * @param logTaskTime + * @param channel + * @param message + */ + @RabbitListener(queues = PlatformConstWords.IMPP_SCHEDULE_QUEUE) + public void processSchedule(SysLogTaskTime logTaskTime, Channel channel, Message message) { + try { + LOGGER.info("【MQ-IMPP_SCHEDULE_QUEUE】数据接收成功:{}",logTaskTime); + // 跟新最后执行时间 及 任务状态 + SysTaskTime task = sysTaskTimeService.getSysTaskTimeByNameAndGroup(logTaskTime.getName(),logTaskTime.getGroupName()); + task.setLastRunDateTime(logTaskTime.getCreateDatetime()); + task.setTaskStatus(logTaskTime.getTaskStatus()); + sysTaskTimeService.updateSysTaskTime(task); + + // 添加定时任务日志 + logTaskTime.setTimeTaskId(task.getId()); + logTaskTime.setTimeExpressionNameRdd(task.getTimeExpressionNameRdd()); + logTaskTime.setTimeExpressionContentRdd(task.getTimeExpressionContentRdd()); + sysTaskTimeService.logInsertSysLogTaskTime(logTaskTime); + + //信息已处理 + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + } catch (IOException e) { + LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错:{}",e.getMessage(),e); + //丢弃这条消息 + try { + // 未成功处理,重新发送 + channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java index 17445ae..f424e1c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java @@ -34,11 +34,7 @@ public class DemoJob extends BaseImppScheduleJob { } @Autowired - private ISysTaskTimeService taskTimeService; - @Autowired private ISysMessageService sysMessageService; - @Autowired - private ISysConfigService sysConfigService; @Override public void executeImppJob(JobExecutionContext context, ApplicationProperties applicationProperties) { @@ -53,9 +49,5 @@ public class DemoJob extends BaseImppScheduleJob { sysMessage.setMessageReceiversId(PlatformConstWords.CONTACT_MAIL); sysMessage.setMessageReceiversNameRdd(PlatformConstWords.CONTACT_MAIL); sysMessageService.doSendSysMessage(sysMessage); - - taskTimeService.doSysTaskTimeLastDateByNameAndGroupName(TimeTool.getNowTime(true), - context.getJobDetail().getKey().getName(), - context.getJobDetail().getKey().getGroup()); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java index e5bc83e..a69b8e8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig; import cn.estsh.i3plus.platform.common.tool.StringTool; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -123,9 +124,9 @@ public class SysMessageService implements ISysMessageService { public void doSendSysMessage(SysMessage sysMessage) { // 判断消息类型推送到对应的队列 if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == sysMessage.getMessageType().intValue()){ - rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE,sysMessage); + rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE,sysMessage); }else{ - rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE,sysMessage); + rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java index 69b25df..d7d7676 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeExpressionService.java @@ -5,7 +5,9 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; +import cn.estsh.i3plus.pojo.platform.repository.SysRefExpressionTriggerRepository; import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeExpressionRepository; import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; @@ -37,6 +39,9 @@ public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionServi @Autowired private SysTaskTimeRepository taskTimeRDao; + @Autowired + private SysRefExpressionTriggerRepository sysRefExpressionTriggerRDao; + @Override @ApiOperation(value = "修改数据") public void updateSysTaskTimeExpression(SysTaskTimeExpression taskTimeExpression) { @@ -48,6 +53,16 @@ public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionServi @ApiOperation(value = "根据id删除数据") public void deleteSysTaskTimeExpressionById(Long id) { LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION :{}", id); + List refExpressionTriggerList = sysRefExpressionTriggerRDao.findByProperty("expressionId",id); + if(refExpressionTriggerList == null || refExpressionTriggerList.size() == 0){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("存在关联定时任务,无法删除") + .setErrorSolution("请重新选择") + .build(); + } + taskTimeExpressionRDao.deleteById(id); } @@ -102,4 +117,10 @@ public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionServi taskTimeExpressionRDao.deleteByIds(ids); } } + + @Override + @ApiOperation(value = "根据表达式id查询表达式关联任务信息",notes = "根据表达式id查询表达式关联任务信息") + public List findRefExpressionTriggerList(Long id) { + return sysRefExpressionTriggerRDao.findByProperty("expressionId",id); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java index dd343e8..c5812f5 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeRecordingService.java @@ -1,7 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeRecordingService; -import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeRecording; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRecordingRepository; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -28,7 +28,7 @@ public class SysTaskTimeRecordingService implements ISysTaskTimeRecordingService @Override @ApiOperation(value = "更新任务表达式信息") - public void updateSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording) { + public void updateSysTaskTimeRecording(SysLogTaskTime taskTimeRecording) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING :{}", taskTimeRecording); taskTimeRecordingRDao.update(taskTimeRecording); } @@ -42,21 +42,21 @@ public class SysTaskTimeRecordingService implements ISysTaskTimeRecordingService @Override @ApiOperation(value = "新增任务表达式信息") - public SysTaskTimeRecording insertSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording) { + public SysLogTaskTime insertSysTaskTimeRecording(SysLogTaskTime taskTimeRecording) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING :{}", taskTimeRecording); return taskTimeRecordingRDao.insert(taskTimeRecording); } @Override @ApiOperation(value = "查询任务表达式信息",notes = "查询所有任务表达式信息") - public List findSysTaskTimeRecordingAll() { + public List findSysTaskTimeRecordingAll() { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING find All"); return taskTimeRecordingRDao.findAll(); } @Override @ApiOperation(value = "查询任务表达式信息",notes = "查询 ID 任务表达式信息") - public SysTaskTimeRecording getSysTaskTimeRecordingById(Long id) { + public SysLogTaskTime getSysTaskTimeRecordingById(Long id) { LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING find id:{}", id); return taskTimeRecordingRDao.getOne(id); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java index ba42e9f..4cd0dd8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskTimeService.java @@ -10,6 +10,8 @@ import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime; import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression; +import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; +import cn.estsh.i3plus.pojo.platform.platrepositorymongo.SysLogTaskTimeRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefExpressionTriggerRepository; import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; @@ -48,6 +50,9 @@ public class SysTaskTimeService implements ISysTaskTimeService{ private SysRefExpressionTriggerRepository refExpressionTriggerRDao; @Autowired + private SysLogTaskTimeRepository sysLogTaskTimeRDao; + + @Autowired private Scheduler scheduler; @Override @@ -87,7 +92,7 @@ public class SysTaskTimeService implements ISysTaskTimeService{ .withDescription(taskTimeExpression.getExpressionDescription()) .withSchedule(schedBuilder) .startAt(sdf.parse(taskTimeExpression.getExpressionStartDatetime())); - if(taskTimeExpression.getExpressionEndDatetime() != null){ + if(taskTimeExpression.getExpressionEndDatetime() != null && !"".equals(taskTimeExpression.getExpressionEndDatetime())){ trigger = trigger.endAt(sdf.parse(taskTimeExpression.getExpressionEndDatetime())); } @@ -305,4 +310,26 @@ public class SysTaskTimeService implements ISysTaskTimeService{ .build(); } } + + @Override + @ApiOperation(value = "查询定时任务",notes = "根据定时任务名称与组名称查询") + public SysTaskTime getSysTaskTimeByNameAndGroup(String name, String groupName) { + List taskList = taskTimeRDao.findByProperty(new String[]{"name","groupName"},new Object[]{name,groupName}); + if (taskList != null && taskList.size() != 0){ + return taskList.get(0); + } + return null; + } + + @Override + @ApiOperation(value = "添加定时任务执行日志",notes = "添加定时任务执行日志") + public void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime) { + sysLogTaskTimeRDao.insert(sysLogTaskTime); + } + + @Override + @ApiOperation(value = "修改定时任务信息",notes = "修改定时任务信息,不会更新quartz数据库") + public void updateSysTaskTime(SysTaskTime sysTaskTime) { + taskTimeRDao.update(sysTaskTime); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java index caae1c4..50a2cfa 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysToolTypeService.java @@ -106,7 +106,7 @@ public class SysToolTypeService implements ISysToolTypeService { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail(count.get(0).getToolTypeNameRdd() + " - 存在关联硬件无法删除!") + .setErrorDetail("【" + count.get(0).getToolTypeNameRdd() + "】 - 存在关联硬件无法删除!") .setErrorSolution("请重新操作") .build(); }else { diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index ce37a0f..71ea553 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -1,15 +1,15 @@ #项目端口 server.port=8100 #本机ip -impp.server.ip=192.168.1.56 +impp.server.ip=192.168.1.35 #console控制台服务(zipkin追踪全路径) -impp.console.ip=http://csd.estsh.com +impp.console.ip=http://192.168.1.35:8010 ################ 功能配置1 ################ #若无法连接注册中心,是否需要一直检测加入 impp.cluster.fetch=true #服务注册中心 -impp.cluster.regist.center=http://regd.estsh.com/eureka/ +impp.cluster.regist.center=http://192.168.1.35:8000/eureka/ #多注册中心 #impp.cluster.regist.center=http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/ diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java index 3cc2fad..d806e8f 100644 --- a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestBase.java @@ -1,30 +1,20 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; +import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm; import cn.estsh.i3plus.pojo.base.shirotoken.UserToken; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.util.SpringContextsUtil; import cn.estsh.impp.framework.run.ImppGo; -import com.alibaba.fastjson.JSON; import org.apache.shiro.SecurityUtils; -import org.apache.shiro.authc.AuthenticationException; -import org.apache.shiro.authc.AuthenticationInfo; -import org.apache.shiro.authc.AuthenticationToken; -import org.apache.shiro.authc.SimpleAuthenticationInfo; -import org.apache.shiro.authz.AuthorizationInfo; -import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.mgt.DefaultSecurityManager; -import org.apache.shiro.realm.AuthorizingRealm; -import org.apache.shiro.session.Session; import org.apache.shiro.session.mgt.DefaultSessionContext; import org.apache.shiro.session.mgt.SessionContext; -import org.apache.shiro.subject.PrincipalCollection; import org.junit.After; import org.junit.Before; import org.junit.runner.RunWith; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.stereotype.Component; import org.springframework.test.context.junit4.SpringRunner; /** @@ -53,8 +43,8 @@ public class TestBase { securityManager.start(sessionContext); UserToken token = new UserToken("login_name", "login_pwd", "zh"); - SessionUser sessionUser = AuthUtil.login(token); - AuthUtil.setSessionUser(sessionUser); +// SessionUser sessionUser = AuthUtil.login(token); +// AuthUtil.setSessionUser(sessionUser); System.out.println("----------------->> 开始测试 <<-----------------"); } @@ -65,26 +55,26 @@ public class TestBase { } } - -@Component -class UserAuthRealm extends AuthorizingRealm { - - public UserAuthRealm() { - //添加支持的token - this.setAuthenticationTokenClass(UserToken.class); - } - - @Override - protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { - return new SimpleAuthorizationInfo(); - } - - @Override - protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { - SessionUser user = JSON.parseObject(TestBase.JSON_SESSION_USER, SessionUser.class); - return new SimpleAuthenticationInfo(user, ((UserToken) authenticationToken).getLoginPwd(), this.getName()); - } - -} - +// +//@Component +//class UserAuthRealm extends AuthorizingRealm { +// +// public UserAuthRealm() { +// //添加支持的token +// this.setAuthenticationTokenClass(UserToken.class); +// } +// +// @Override +// protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { +// return new SimpleAuthorizationInfo(); +// } +// +// @Override +// protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { +// SessionUser user = JSON.parseObject(TestBase.JSON_SESSION_USER, SessionUser.class); +// return new SimpleAuthenticationInfo(user, ((UserToken) authenticationToken).getLoginPwd(), this.getName()); +// } +// +//} +// diff --git a/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMathOper.java b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMathOper.java new file mode 100644 index 0000000..2d7a837 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/test/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestMathOper.java @@ -0,0 +1,59 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.pojo.platform.bean.SysConfig; +import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2018-12-20 17:02 + * @Modify: + **/ +public class TestMathOper extends TestBase { + + @Test + public void test(){ + System.out.println("Hello World !~"); + } + + @Autowired + private SysConfigRepository sysConfigRDao; + + String propertyName = "configType"; + String groupByName = "configType"; + String[] param = new String[]{"configType"}; + Object[] paramValue = new Object[]{1}; + + + @Test + public void testMax(){ + SysConfig sysConfig = new SysConfig(); + // max + System.out.println(sysConfigRDao.findMaxByProperties(propertyName,groupByName,param,paramValue)); + System.out.println(sysConfigRDao.findMaxByProperty(propertyName,groupByName,param[0],paramValue[0])); + } + + @Test + public void testMin(){ + // min + System.out.println(sysConfigRDao.findMinByProperties(propertyName,groupByName,param,paramValue)); + System.out.println(sysConfigRDao.findMinByProperty(propertyName,groupByName,param[0],paramValue[0])); + } + + @Test + public void testSum(){ + //sum + System.out.println(sysConfigRDao.findSumByProperties(propertyName,groupByName,param,paramValue)); + System.out.println(sysConfigRDao.findSumByProperty(propertyName,groupByName,param[0],paramValue[0])); + } + @Test + public void testAvg(){ + //avg + System.out.println(sysConfigRDao.findAvgByProperties(propertyName,groupByName,param,paramValue)); + System.out.println(sysConfigRDao.findAvgByProperty(propertyName,groupByName,param[0],paramValue[0])); + } + +} From 9868b8b647af30b54e5a9d5b00c74e819a4ba500 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 21 Dec 2018 14:55:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=99=BB=E5=BD=95Bug=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=EF=BC=8C=20Cloud=20=E8=BF=9E=E6=8E=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/SysOrderNoRuleController.java | 31 +++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java index ef267e4..9c39549 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java @@ -141,21 +141,6 @@ public class SysOrderNoRuleController extends CoreBaseController { } } - @GetMapping(value = "/get-order-no/{code}") - @ApiOperation(value = "根据单号规则代码,获取单号") - public ResultBean getOrderNo(@PathVariable("code") String code){ - try { - ValidatorBean.checkNotNull(code,"code不能为空"); - - SysOrderNoRule sysOrderNoRule = sysOrderNoRuleService.getSysOrderNoRuleCode(code); - return ResultBean.success("查询成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - @GetMapping(value = "/query") @ApiOperation(value = "单号规则复杂查询,分页,排序") public ResultBean querySysOrderNoRuleByPager(SysOrderNoRule sysOrderNoRule, Pager pager){ @@ -356,4 +341,20 @@ public class SysOrderNoRuleController extends CoreBaseController { .checkNotZero("serialNoLength",sysOrderNoRule.getSerialNoLength()) .checkNotZero("isCycle",sysOrderNoRule.getIsCycle()); } + + + @GetMapping(value = "/get-order-no/{code}") + @ApiOperation(value = "根据单号规则代码,生成单号") + public ResultBean getOrderNo(@PathVariable("code") String code){ + try { + ValidatorBean.checkNotNull(code,"code不能为空"); + + SysOrderNoRule sysOrderNoRule = sysOrderNoRuleService.getSysOrderNoRuleCode(code); + return ResultBean.success("查询成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } }