北京数据版本记录问题---fixbug 28898

yun-zuoyi
castle.zang 2 years ago
parent 749b72ae53
commit 1faa91e59b

@ -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> {
SysPojoVersion getPojoVersion(SysPojoVersion bean);
List<SysPojoVersion> findPojoVersionByUserBetweenTime(String userName, String startDate, String endDate);
List<SysPojoVersion> findPojoVersionByUserBetweenTime(SysVersionExportModel model);
/**
*
* @param model
* @param pager
* @return
*/
ListPager<SysPojoVersion> findPojoVersionByModel(SysVersionModel model, Pager pager);
}

@ -73,4 +73,10 @@ public interface ISysRoleService extends ICrudService<SysRole> {
*/
@ApiOperation(value = "查询符合条件的角色")
List<SysRole> findAllByRoleProperty(SysRole sysRole);
/**
* +id
* @return
*/
List<SysRole> findAllCommonRoles();
}

@ -250,6 +250,10 @@
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
</dependencies>
<build>

@ -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<SysRole> allCommonRoles;
try {
allCommonRoles = sysRoleService.findAllCommonRoles();
} catch (Exception e) {
return ResultBean.fail().setErrorMsg(e.getMessage());
}
return ResultBean.success().setResultList(allCommonRoles);
}
// /**
// * 根据递归获取所有父节点 ID 获取所有 菜单
// * @param list

@ -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<SysPojoVersion>
return pojoVersionService;
}
@GetMapping("/list-all")
@ApiOperation(value = "查询版本记录对象", notes = "查询版本记录对象")
ResultBean queryByModel(SysVersionModel model, Pager pager) {
ListPager<SysPojoVersion> 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<SysPojoVersion> queryPojoVersionByPagerCloud(@RequestBody CloudPagerModel<SysPojoVersion> model) {
@ -83,14 +91,14 @@ public class SysPojoVersionController extends CrudBaseController<SysPojoVersion>
@GetMapping("/export-user-operation")
@ApiOperation(value = "导出用户操作数据", notes = "导出用户操作数据")
BaseResultBean<SysPojoVersion> exportUserOperation(HttpServletResponse response, String userName, String startDate, String endDate) {
BaseResultBean<SysPojoVersion> 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<SysPojoVersion> pojoVersions = pojoVersionService.findPojoVersionByUserBetweenTime(userName, startDate, endDate);
List<SysPojoVersion> pojoVersions = pojoVersionService.findPojoVersionByUserBetweenTime(model);
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "user-operation-" + System.currentTimeMillis() + ".xls";

@ -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 {

@ -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<SysPojoVersion> implement
@Autowired
private ISysPojoVersionDetailService pojoVersionDetailService;
@Autowired
private SysRefUserRoleRepository refUserRoleRepository;
@Override
public BaseRepository<SysPojoVersion, Long> getRepository() {
return pojoVersionRDao;
@ -49,9 +63,22 @@ public class SysPojoVersionService extends CrudService<SysPojoVersion> implement
}
@Override
public List<SysPojoVersion> findPojoVersionByUserBetweenTime(String userName, String startDate, String endDate) {
public List<SysPojoVersion> 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<SysRefUserRole> refUserRoles = refUserRoleRepository.findByHqlWhere(roleRefPackBean);
List<String> userNameList = refUserRoles.stream().map(SysRefUserRole::getRoleNameRdd).collect(Collectors.toList());
DdlPreparedPack.getInPackList(userNameList,"modifyUser",packBean);
}
DdlPreparedPack.timeBuilder(startDate, endDate, "modifyDatetime", true, false, packBean);
List<SysPojoVersion> pojoVersions = pojoVersionRDao.findByHqlWhere(packBean);
@ -67,6 +94,48 @@ public class SysPojoVersionService extends CrudService<SysPojoVersion> implement
}
@Override
public ListPager<SysPojoVersion> findPojoVersionByModel(SysVersionModel model, Pager pager) {
// String organizeCode = AuthUtil.getOrganizeCode();
Long roleId = model.getRoleId();
List<SysRefUserRole> 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<String> 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<SysPojoVersion> 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()));

@ -312,6 +312,13 @@ public class SysRoleService extends CrudService<SysRole> implements ISysRoleServ
return roleRDao.findByHqlWhere(packBean);
}
@Override
public List<SysRole> findAllCommonRoles() {
String organizeCode = AuthUtil.getOrganizeCode();
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode);
return roleRDao.findByHqlWhere(ddlPackBean);
}
// @Override
// public void packAfterRefreshCache() {

@ -38,7 +38,7 @@
<app.charset>UTF-8</app.charset>
<app.jdk.version>1.8</app.jdk.version>
<!-- <project.dependency.version>1.0-TEST-SNAPSHOT</project.dependency.version>-->
<log4j2.version>2.18.0</log4j2.version>
<log4j2.version>2.19.0</log4j2.version>
<qms.icloud.version>1.0.0.1</qms.icloud.version>
<eam.icloud.version>1.0.0.1</eam.icloud.version>
<jackson.databind.version>2.13.2.2</jackson.databind.version>
@ -46,7 +46,8 @@
<jackson.annotation.version>2.13.2</jackson.annotation.version>
<project.patch.version>1.0.0.1-patch</project.patch.version>
<xstream.version>1.4.19</xstream.version>
<impp.framework.boot.version>1.0.0.3</impp.framework.boot.version>
<impp.framework.boot.version>1.0-TEST-SNAPSHOT</impp.framework.boot.version>
<!-- <impp.framework.boot.version>1.0.0.2</impp.framework.boot.version>-->
<i3plus.core.icloud.version>1.0.0.1</i3plus.core.icloud.version>
<i3plus.wms.icloud.version>1.0.0.1</i3plus.wms.icloud.version>
<i3plus.mes.icloud.version>1.0.0.1</i3plus.mes.icloud.version>

Loading…
Cancel
Save