From 1faa91e59bfb3195affb305d1161e9f81739552b Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Sun, 11 Dec 2022 09:54:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=97=E4=BA=AC=E6=95=B0=E6=8D=AE=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=AE=B0=E5=BD=95=E9=97=AE=E9=A2=98---fixbug=2028898?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/busi/ISysPojoVersionService.java | 14 ++++- .../core/api/iservice/busi/ISysRoleService.java | 6 ++ modules/i3plus-core-apiservice/pom.xml | 4 ++ .../apiservice/controller/base/AuthController.java | 18 +++++- .../controller/busi/SysPojoVersionController.java | 38 ++++++----- .../apiservice/mq/PojoVersionQueueReceiver.java | 19 +++--- .../serviceimpl/busi/SysPojoVersionService.java | 73 +++++++++++++++++++++- .../serviceimpl/busi/SysRoleService.java | 7 +++ pom.xml | 5 +- 9 files changed, 152 insertions(+), 32 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPojoVersionService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPojoVersionService.java index 1502a0f..b203d4f 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPojoVersionService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysPojoVersionService.java @@ -1,6 +1,10 @@ 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.SysPojoVersion; +import cn.estsh.i3plus.pojo.platform.model.SysVersionExportModel; +import cn.estsh.i3plus.pojo.platform.model.SysVersionModel; import cn.estsh.impp.framework.base.service.ICrudService; import java.util.List; @@ -16,6 +20,14 @@ public interface ISysPojoVersionService extends ICrudService { SysPojoVersion getPojoVersion(SysPojoVersion bean); - List findPojoVersionByUserBetweenTime(String userName, String startDate, String endDate); + List findPojoVersionByUserBetweenTime(SysVersionExportModel model); + + /** + * 根据条件分页查询 + * @param model + * @param pager + * @return + */ + ListPager findPojoVersionByModel(SysVersionModel model, Pager pager); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index 796d2e5..0f4c295 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -73,4 +73,10 @@ public interface ISysRoleService extends ICrudService { */ @ApiOperation(value = "查询符合条件的角色") List findAllByRoleProperty(SysRole sysRole); + + /** + * 查询所有的角色名称+id + * @return + */ + List findAllCommonRoles(); } diff --git a/modules/i3plus-core-apiservice/pom.xml b/modules/i3plus-core-apiservice/pom.xml index ee717bf..7b2d97d 100644 --- a/modules/i3plus-core-apiservice/pom.xml +++ b/modules/i3plus-core-apiservice/pom.xml @@ -250,6 +250,10 @@ spring-boot-starter-data-elasticsearch 2.4.2 + + org.quartz-scheduler + quartz + diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java index 050c511..302c7ae 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.controller.base; import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysLocaleLanguageService; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.util.CommonConstWords; @@ -11,6 +12,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; +import cn.estsh.i3plus.pojo.platform.bean.SysRole; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -56,6 +58,9 @@ public class AuthController extends CoreBaseController { @Autowired private ISysMenuService sysMenuService; + @Autowired + private ISysRoleService sysRoleService; + /** * 获取登录用户信息 * @@ -280,8 +285,19 @@ public class AuthController extends CoreBaseController { return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("菜单信息不存在"); } } + /*------------------------数据版本记录功能查询------------------------------*/ - + @GetMapping("/role/query") + @ApiOperation(value = "获取所有的角色", notes = "获取所有的角色") + public ResultBean getAllRoles() { + List allCommonRoles; + try { + allCommonRoles = sysRoleService.findAllCommonRoles(); + } catch (Exception e) { + return ResultBean.fail().setErrorMsg(e.getMessage()); + } + return ResultBean.success().setResultList(allCommonRoles); + } // /** // * 根据递归获取所有父节点 ID 获取所有 菜单 // * @param list diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPojoVersionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPojoVersionController.java index 8027e63..17b6f71 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPojoVersionController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysPojoVersionController.java @@ -6,9 +6,13 @@ import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.util.CommonConstWords; import cn.estsh.i3plus.platform.common.util.FileContentTypeTool; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.common.CloudPagerModel; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion; +import cn.estsh.i3plus.pojo.platform.model.SysVersionExportModel; +import cn.estsh.i3plus.pojo.platform.model.SysVersionModel; import cn.estsh.impp.framework.base.controller.CrudBaseController; import cn.estsh.impp.framework.base.service.ICrudService; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -21,20 +25,12 @@ import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; -import java.io.BufferedInputStream; -import java.io.DataInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.OutputStream; +import java.io.*; import java.util.LinkedHashMap; import java.util.List; @@ -65,6 +61,18 @@ public class SysPojoVersionController extends CrudBaseController return pojoVersionService; } + @GetMapping("/list-all") + @ApiOperation(value = "查询版本记录对象", notes = "查询版本记录对象") + ResultBean queryByModel(SysVersionModel model, Pager pager) { + ListPager pojoVersionByModel; + try { + pojoVersionByModel = pojoVersionService.findPojoVersionByModel(model, pager); + return ResultBean.success().setListPager(pojoVersionByModel); + } catch (Exception e) { + return ResultBean.fail().setErrorMsg(e.getMessage()); + } + } + @PostMapping("/cloud-query") @ApiOperation(value = "查询数据", notes = "复杂查询,分页,排序") BaseResultBean queryPojoVersionByPagerCloud(@RequestBody CloudPagerModel model) { @@ -83,14 +91,14 @@ public class SysPojoVersionController extends CrudBaseController @GetMapping("/export-user-operation") @ApiOperation(value = "导出用户操作数据", notes = "导出用户操作数据") - BaseResultBean exportUserOperation(HttpServletResponse response, String userName, String startDate, String endDate) { + BaseResultBean exportUserOperation(HttpServletResponse response, @RequestBody SysVersionExportModel model) { File file =null; try { - final String ZERO_TIME = " 00:00:00"; - startDate += ZERO_TIME; - endDate += ZERO_TIME; +// final String ZERO_TIME = " 00:00:00"; +// startDate += ZERO_TIME; +// endDate += ZERO_TIME; - List pojoVersions = pojoVersionService.findPojoVersionByUserBetweenTime(userName, startDate, endDate); + List pojoVersions = pojoVersionService.findPojoVersionByUserBetweenTime(model); ExcelTool excelTool = new ExcelTool(entityManager, redisRes); String fileName = "user-operation-" + System.currentTimeMillis() + ".xls"; diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java index eb3213c..8a75395 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/PojoVersionQueueReceiver.java @@ -102,18 +102,16 @@ public class PojoVersionQueueReceiver { if (!"insert".equals(afterVersion.getVersionMethodName())) { // 不是新增数据的时候则需要查询历史记录 // 已存在数据封装 - if (afterVersion != null) { - afterVersion.setOrderByParam("createDatetime"); - afterVersion.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); - beforeVersion = pojoVersionService.getPojoVersion(afterVersion); - if (Objects.nonNull(beforeVersion)) { - beforeVersionDetail = pojoVersionDetailService.get(beforeVersion.getPojoDetailId()); - if (Objects.nonNull(beforeVersionDetail)) { - beforeMap.putAll(JsonUtilTool.decode(beforeVersionDetail.getPojoAfter(), Map.class)); - } + afterVersion.setOrderByParam("createDatetime"); + afterVersion.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + beforeVersion = pojoVersionService.getPojoVersion(afterVersion); + if (Objects.nonNull(beforeVersion)) { + beforeVersionDetail = pojoVersionDetailService.get(beforeVersion.getPojoDetailId()); + if (Objects.nonNull(beforeVersionDetail)) { + beforeMap.putAll(JsonUtilTool.decode(beforeVersionDetail.getPojoAfter(), Map.class)); } - operateType = CommonEnumUtil.DAO_OPERATE_TYPE.UPDATE; } + operateType = CommonEnumUtil.DAO_OPERATE_TYPE.UPDATE; } // 不保存字段 数据剔除 @@ -166,7 +164,6 @@ public class PojoVersionQueueReceiver { } } catch (Exception e) { LOGGER.error("pojoVersion 消息处理失败{}", new String(message.getBody()), e); - e.printStackTrace(); isNack = true; } finally { try { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPojoVersionService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPojoVersionService.java index 01e830f..49760cd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPojoVersionService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysPojoVersionService.java @@ -3,20 +3,31 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionDetailService; import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +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.jpa.dao.BaseRepository; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion; import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan; +import cn.estsh.i3plus.pojo.platform.bean.SysRefUserRole; +import cn.estsh.i3plus.pojo.platform.model.SysVersionExportModel; +import cn.estsh.i3plus.pojo.platform.model.SysVersionModel; import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionPlanRepository; import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository; import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CrudService; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +import org.apache.logging.log4j.util.Strings; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; +import java.util.stream.Collectors; /** * @Description : @@ -37,6 +48,9 @@ public class SysPojoVersionService extends CrudService implement @Autowired private ISysPojoVersionDetailService pojoVersionDetailService; + @Autowired + private SysRefUserRoleRepository refUserRoleRepository; + @Override public BaseRepository getRepository() { return pojoVersionRDao; @@ -49,9 +63,22 @@ public class SysPojoVersionService extends CrudService implement } @Override - public List findPojoVersionByUserBetweenTime(String userName, String startDate, String endDate) { + public List findPojoVersionByUserBetweenTime(SysVersionExportModel model) { + String endDate = model.getEndDate(); + String startDate = model.getStartDate(); + String userName = model.getUserName(); + Long roleId = model.getRoleId(); DdlPackBean packBean = DdlPackBean.getDdlPackBean(); - DdlPreparedPack.getStringEqualPack(userName, "modifyUser", packBean); + if (Strings.isNotBlank(userName)){ + DdlPreparedPack.getStringEqualPack(userName, "modifyUser", packBean); + } + if (!Objects.isNull(roleId) && Strings.isBlank(userName)){ + DdlPackBean roleRefPackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getNumEqualPack(roleId,"roleId",roleRefPackBean); + List refUserRoles = refUserRoleRepository.findByHqlWhere(roleRefPackBean); + List userNameList = refUserRoles.stream().map(SysRefUserRole::getRoleNameRdd).collect(Collectors.toList()); + DdlPreparedPack.getInPackList(userNameList,"modifyUser",packBean); + } DdlPreparedPack.timeBuilder(startDate, endDate, "modifyDatetime", true, false, packBean); List pojoVersions = pojoVersionRDao.findByHqlWhere(packBean); @@ -67,6 +94,48 @@ public class SysPojoVersionService extends CrudService implement } @Override + public ListPager findPojoVersionByModel(SysVersionModel model, Pager pager) { +// String organizeCode = AuthUtil.getOrganizeCode(); + Long roleId = model.getRoleId(); + List sysRefUserRoleList = new ArrayList<>(); + if (!Objects.isNull(roleId)){ + //查询角色查询出所有的拥有该角色的人员名称 + DdlPackBean rolePackBean = DdlPackBean.getDdlPackBean(); + DdlPreparedPack.getNumEqualPack(roleId,"roleId",rolePackBean); + sysRefUserRoleList.addAll(refUserRoleRepository.findByHqlWhere(rolePackBean)); + } + + DdlPackBean versionPackBean = DdlPackBean.getDdlPackBean(); + Long planId = model.getPlanId(); + String pojoCompare = model.getPojoCompare(); + Long refId = model.getRefId(); + String modifyDateTimeStart = model.getModifyDateTimeStart(); + String modifyDateTimeEnd = model.getModifyDateTimeEnd(); + if (!Objects.isNull(planId)){ + DdlPreparedPack.getNumEqualPack(planId,"planId",versionPackBean); + } + if (Strings.isNotBlank(pojoCompare)){ + DdlPreparedPack.getStringRightLikerPack(pojoCompare,"pojoCompare",versionPackBean); + } + + if (!Objects.isNull(refId)){ + DdlPreparedPack.getNumEqualPack(refId,"refId",versionPackBean); + } + + if (Strings.isNotBlank(modifyDateTimeStart) && Strings.isNotBlank(modifyDateTimeEnd)){ + DdlPreparedPack.timeBuilder(modifyDateTimeStart,modifyDateTimeEnd,"createDatetime",versionPackBean,true); + } + if (sysRefUserRoleList.size() > 0){ + List userNameList = sysRefUserRoleList.stream().map(SysRefUserRole::getUserNameRdd).collect(Collectors.toList()); + DdlPreparedPack.getInPackList(userNameList,"createUser",versionPackBean); + } + int count = pojoVersionRDao.findByHqlWhereCount(versionPackBean); + pager = PagerHelper.getPager(pager, count); + List sysPojoVersionList = pojoVersionRDao.findByHqlWherePage(versionPackBean, pager); + return new ListPager<>(sysPojoVersionList,pager); + } + + @Override public SysPojoVersion packGetBean(SysPojoVersion bean) { if (Objects.nonNull(bean)) { bean.setVersionDetail(pojoVersionDetailService.get(bean.getPojoDetailId())); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index 009ed45..5c41814 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -312,6 +312,13 @@ public class SysRoleService extends CrudService implements ISysRoleServ return roleRDao.findByHqlWhere(packBean); } + @Override + public List findAllCommonRoles() { + String organizeCode = AuthUtil.getOrganizeCode(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + return roleRDao.findByHqlWhere(ddlPackBean); + } + // @Override // public void packAfterRefreshCache() { diff --git a/pom.xml b/pom.xml index b55e845..81f880d 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ UTF-8 1.8 - 2.18.0 + 2.19.0 1.0.0.1 1.0.0.1 2.13.2.2 @@ -46,7 +46,8 @@ 2.13.2 1.0.0.1-patch 1.4.19 - 1.0.0.3 + 1.0-TEST-SNAPSHOT + 1.0.0.1 1.0.0.1 1.0.0.1