数据缓存及业务缓存优化完成

yun-zuoyi
wei.peng 5 years ago
parent 8f2d13a3c2
commit cd86301a83

@ -0,0 +1,20 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysDataSource;
import cn.estsh.i3plus.pojo.platform.bean.SysPosition;
import cn.estsh.impp.framework.base.service.ICacheCrudService;
import io.swagger.annotations.ApiOperation;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @Date : 2018-10-19 16:36
* @Modify :
**/
public interface ISysDataSourceService extends ICacheCrudService<SysDataSource> {
@ApiOperation(value = "数据源检查",notes = "数据源唯一检查(软件类型,数据源代码)")
void checkSysDataSourceOnly(SysDataSource bean);
}

@ -84,8 +84,8 @@ public interface ISysDepartmentService extends ICacheCrudService<SysDepartment>
// @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)")
// ListPager<SysDepartment> findSysDepartmentPagerByOrganizeId(SysDepartment department, List<Long> organizeIdList, Pager pager);
//
// @ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)")
// ListPager<SysDepartment> findSysDepartmentPagerByIdList(SysDepartment department, List<Long> idList, Pager pager);
@ApiOperation(value = "查询部门信息",notes = "查询部门信息(分页、组织ID集合、组合)")
ListPager<SysDepartment> findSysDepartmentPagerByIdList(SysDepartment department, List<Long> idList, Pager pager);
@ApiOperation(value = "根据组织获取部门数量")
List<SysDepartment> findByOrganizeIdList(List<Long> organizeIdList);

@ -2,7 +2,7 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan;
import cn.estsh.impp.framework.base.service.ICacheCrudService;
import cn.estsh.impp.framework.base.service.ICrudService;
import io.swagger.annotations.ApiOperation;
/**
* @Description :
@ -12,4 +12,8 @@ import cn.estsh.impp.framework.base.service.ICrudService;
* @Modify:
**/
public interface ISysPojoVersionPlanService extends ICacheCrudService<SysPojoVersionPlan> {
@ApiOperation(value = "版本计划唯一检查")
void checkSysPojoVersionPlanOnly(SysPojoVersionPlan bean);
}

@ -74,14 +74,6 @@ public interface ISysPositionService extends ICacheCrudService<SysPosition> {
// @ApiOperation(value = "查询岗位信息",notes = "查询岗位信息 (分页,组合)")
// ListPager<SysPosition> querySysPosition(SysPosition position, Pager pager);
@ApiOperation(value = "账号检查",notes = "检查账号的登录名是否重复")
boolean heckSysPositionCode(String code, long id);
/**
*
* @param position
*/
@ApiOperation(value = "岗位检查",notes = "岗位检查唯一(岗位代码)")
void checkSysPositionOnly(SysPosition position);

@ -1,7 +1,11 @@
package cn.estsh.i3plus.core.apiservice.controller.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -9,6 +13,7 @@ import cn.estsh.impp.framework.boot.license.ImppLicenseTool;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -16,6 +21,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
* @Description :
* @Reference :
@ -33,6 +40,11 @@ public class BackstageController extends CoreBaseController {
@Autowired
private ISystemInitService systemInitService;
@Autowired
private ISysMenuService menuService;
@Autowired
private ICoreMemTreeService memTreeService;
@GetMapping(value = "/redis-put-all")
@ -101,6 +113,50 @@ public class BackstageController extends CoreBaseController {
}
}
@GetMapping(value = "/reset/menu/soft-type")
@ApiOperation(value = "重置菜单产品类型属性",notes = "重新加载授权数据")
public ResultBean restSysMenuSoftType(){
try {
List<SysMenu> menuList = menuService.findAll();
if(CollectionUtils.isNotEmpty(menuList)){
/** 设置功能权限 softType 默认值*/
Map<Long,SysMenu> menuMap = new HashMap<>();
for (SysMenu menu : menuList) {
menu.setSoftType(CommonEnumUtil.SOFT_TYPE.IMPP.getValue());
menuMap.put(menu.getId(),menu);
}
List<SysMenu> treeMenus = memTreeService.packTreeSysMenu(menuList, CommonEnumUtil.SOFT_TYPE.IMPP.getMenuRootId());
if(CollectionUtils.isNotEmpty(treeMenus)){
for (SysMenu menu : treeMenus) {
CommonEnumUtil.SOFT_TYPE softType = CommonEnumUtil.SOFT_TYPE.valueOfMenuRootId(menu.getId());
if(Objects.nonNull(softType)){
menu.setSoftType(softType.getValue());
List<Long> childMenus = memTreeService.findChildSysMenu(menu);
if(CollectionUtils.isNotEmpty(childMenus)){
for (Long key : childMenus) {
if(menuMap.containsKey(key)){
menuMap.get(key).setSoftType(softType.getValue());
}
}
}
}
}
}
menuService.saveBatch(new ArrayList<>(menuMap.values()));
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}

@ -0,0 +1,106 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDataSourceService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionPlanService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDataSource;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.base.service.ICrudService;
import cn.estsh.impp.framework.boot.datasource.ImppJdbcTemplateFactory;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.web.bind.annotation.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Objects;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @CreateDate : 20-4-21 2:56
* @Modify:
**/
@RestController
@Api(tags = "数据源服务")
@RequestMapping(CommonConstWords.BASE_URL_CORE+"/data-source")
public class SysDataSourceController extends CrudBaseController<SysDataSource> {
@Autowired
private ISysDataSourceService dataSourceService;
@Override
public ICrudService getCrudService() {
return dataSourceService;
}
@Override
public SysDataSource validatorInsertBean(SysDataSource bean) throws Exception {
ValidatorBean.beginValid(bean)
.notNull("sourceName",bean.getSourceName())
.notNull("softType",bean.getSoftType())
.notNull("sourceCode",bean.getSourceCode())
.notNull("sourceType",bean.getSourceType())
.notNull("sourceHost",bean.getSourceHost())
.notNull("sourcePort",bean.getSourcePort())
.notNull("sourceUserName",bean.getSourceUserName())
.notNull("sourcePassword",bean.getSourcePassword());
try {
bean.setSourceStatus(CommonEnumUtil.DATA_SOURCE_STATUS.CONN_FAILURE.getValue());
NamedParameterJdbcTemplate template = ImppJdbcTemplateFactory.getNamedParameterJdbcTemplate(bean);
if(template != null) {
try {
Connection conn = template.getJdbcTemplate().getDataSource().getConnection();
if(Objects.nonNull(conn)){
bean.setSourceStatus(CommonEnumUtil.DATA_SOURCE_STATUS.CONN_SUCCESS.getValue());
}
}catch (SQLException e){
e.printStackTrace();
}
}
}catch (Exception e){
e.printStackTrace();
}
return bean;
}
@GetMapping(value = "/connection-check/{id}")
@ApiOperation(value = "数据源连接检查")
public ResultBean<SysDataSource> checkConnection(@PathVariable("id") Long id) {
try {
SysDataSource source = dataSourceService.get(id);
NamedParameterJdbcTemplate template = ImppJdbcTemplateFactory.getNamedParameterJdbcTemplate(source);
if(template != null) {
try {
Connection conn = template.getJdbcTemplate().getDataSource().getConnection();
if(Objects.nonNull(conn)){
source.setSourceStatus(CommonEnumUtil.DATA_SOURCE_STATUS.CONN_SUCCESS.getValue());
dataSourceService.update(source);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}catch (SQLException e){
e.printStackTrace();
}
}
return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
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.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.StringTool;
@ -12,6 +13,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDepartment;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserDepartment;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
@ -53,12 +55,40 @@ public class SysDepartmentController extends CrudBaseController<SysDepartment> {
@Autowired
private IPersonnelService personnelService;
@Autowired
private ISysOrganizeService organizeService;
@Override
public ICrudService getCrudService() {
return departmentService;
}
// /**
@Override
public SysDepartment validatorInsertBean(SysDepartment bean) throws Exception {
//条件验证
ValidatorBean.beginValid(bean)
.notNull("name", bean.getName())
.notNull("departmentCode", bean.getDepartmentCode())
.checkNotZero("organizeId", bean.getOrganizeId());
SysOrganize organize = organizeService.get(bean.getOrganizeId());
ValidatorBean.checkNotNull(organize, "不存在的组织信息");
bean.setOrganizeNameRdd(organize.getName());
if (bean.getParentId() == null || bean.getParentId() <= 0) {
bean.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue());
bean.setParentNameRdd("顶级部门");
} else {
SysDepartment department = departmentService.get(bean.getParentId());
ValidatorBean.checkNotNull(department, "不存在的上级部门信息");
bean.setParentNameRdd(department.getName());
bean.setOrganizeId(department.getOrganizeId());
}
return bean;
}
// /**
// * 添加部门
// * @param department 部门
// * @return 处理结果
@ -145,29 +175,29 @@ public class SysDepartmentController extends CrudBaseController<SysDepartment> {
// }
// }
//
// @GetMapping(value = "/list-user")
// @ApiOperation(value = "查询所有部门", notes = "查询所有部门")
// public ResultBean findSysDepartmentList() {
// try {
// List<SysDepartment> result = null;
// if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
// result = departmentService.findSysDepartmentList();
// }else {
// List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
// if(refList != null && refList.size() > 0){
// List<Long> idList = new ArrayList<>(refList.size());
// refList.forEach(ref -> idList.add(ref.getDepartmentId()));
// result = departmentService.findSysDepartmentListByIdList(idList);
// }
//
// }
// return ResultBean.success("操作成功").setResultList(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } catch (ImppBusiException busExcep) {
// return ResultBean.fail(busExcep);
// } catch (Exception e) {
// return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
// }
// }
@GetMapping(value = "/list-user")
@ApiOperation(value = "查询所有部门", notes = "查询所有部门")
public ResultBean findSysDepartmentList() {
try {
List<SysDepartment> result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
result = departmentService.findAll();
}else {
List<SysRefUserDepartment> refList = personnelService.findSysRefUserDepartmentByOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
if(refList != null && refList.size() > 0){
List<Long> idList = new ArrayList<>(refList.size());
refList.forEach(ref -> idList.add(ref.getDepartmentId()));
result = departmentService.findByOrganizeIdList(idList);
}
}
return ResultBean.success("操作成功").setResultList(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
//
// /**
// * 根据id查询部门
@ -223,6 +253,31 @@ public class SysDepartmentController extends CrudBaseController<SysDepartment> {
// return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
// }
// }
@Override
@GetMapping(value = "/query")
@ApiOperation(value = "查询部门", notes = "组合查询部门信息外加分页信息")
public ResultBean queryPager(SysDepartment bean, Pager pager) {
try {
List<Long> refIdList = null;
if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) {
refIdList = memTreeService.findDepartmentIdListByOrganizeIdAndDepartmentId(bean.getOrganizeId(), bean.getParentId());
} else {
refIdList = memTreeService.findDepartmentIdListByOrganizeIdAndDepartmentIdAndUserId(
bean.getOrganizeId(), bean.getParentId(), getSessionUser().getUser().getId());
}
return ResultBean.success("操作成功")
.setListPager(departmentService.findSysDepartmentPagerByIdList(bean, refIdList, pager))
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
//
// /**
// * 删除部门

@ -326,5 +326,10 @@ public class SysEnumController extends CoreBaseController {
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.LOG_DETAIL_SHOW_TYPE.values()));
}
@GetMapping("/data-source-type")
@ApiOperation(value = "数据源类型", notes = "数据源类型")
public ResultBean getDataSourceType() {
return new ResultBean(true, "操作成功",
LocaleUtils.getEnumLocaleResValuesToList(CommonEnumUtil.DATA_SOURCE_TYPE.values()));
}
}

@ -3,20 +3,39 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.platform.common.exception.BaseImppException;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
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.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMenu;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.base.service.ICrudService;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
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.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description :
@ -304,121 +323,121 @@ public class SysMenuController extends CrudBaseController<SysMenu> {
// }
//
//
//
// /**
// * 文件上传
// * @param multipart 文件
// * @return 处理结果
// */
// @Deprecated
// @PostMapping("/upload")
// @ApiOperation(value = "文件上传", notes = "文件上传")
// public ResultBean singleFileUpload(@RequestParam("file") MultipartFile multipart) {
// try {
// startMultiService();
// ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
//
// if(multipart.isEmpty()){
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("请选择需要上传的文件。")
// .build();
// }
// List<SysMenu> list = excelTool.importData("permission.xls",multipart.getInputStream(), SysMenu.class);
//
// Map<String,SysMenu> map = new HashMap<>();
// list.forEach(menu -> {
// ValidatorBean.checkNotNull(menu.getMenuCode(), "功能代码不能为空");
// ValidatorBean.checkNotNull(menu.getParentId(), "父级功能ID不能为空");
// ValidatorBean.checkNotNull(menu.getSoftType(), "产品类型不能为空");
//
// menu.setId(Long.parseLong(menu.getMenuCode()));
// if (!map.containsKey(menu.getMenuCode())) {
// map.put(menu.getMenuCode(),menu);
// } else {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("功能代码【" + menu.getMenuCode() + "】重复")
// .build();
// }
//
// });
//
// list.forEach(menu -> {
// menu.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue());
// menu.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
// if(menu.getParentId().longValue() != -1){
// SysMenu mu = map.get(menu.getParentId().toString());
// ValidatorBean.checkNotNull(mu, "【"+menu.getParentId()+"】不存在的父节点信息");
// menu.setNameZhShortening(StringTool.getAllFirstLetter(mu.getName()));
// menu.setParentNameRdd(mu.getName());
// }
// });
//
// return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
// .setResultList(menuService.refreshSysMenu(list));
// }catch(ImppBusiException busExcep){
// return ResultBean.fail(busExcep);
// }catch(BaseImppException busExcep){
// return ResultBean.fail(busExcep);
// }catch(Exception e){
// return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
// }
// }
//
// /**
// * 文件下载
// *
// * @param response response
// * @return 处理结果
// */
// @GetMapping("/download/excel")
// @ApiOperation(value = "权限文件下载", notes = "权限文件下载")
// public void singleDownload(HttpServletResponse response) {
// try {
// startMultiService();
// ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
// String fileName = "menu_" + System.currentTimeMillis() + ".xls";
// List<SysMenu> list = menuService.findSysMenuAll();
//
// File file = new File(fileName);
// file.createNewFile();
// File excle = excelTool.exportData(file, list, SysMenu.class, new String[]{
// "menuCode", "name","parentId","menuType","softType","menuStatus","parentNameRdd","menuUrl","menuClassPath","menuGrade","menuSort"
// ,"menuCss","menuIcon","menuDescription"
// });
//
// response.setContentType("application/force-download"); // 设置强制下载不打开
// response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); // 设置文件名
// response.addHeader("Content-type", FileContentTypeTool.getContentType(StringTool.getStringFileSuffix(fileName,true)));
//
// // 设置文件名
// BufferedInputStream bis = null;
// try {
// bis = new BufferedInputStream(new DataInputStream(new FileInputStream(excle)));
// OutputStream os = response.getOutputStream();
// byte[] buffer = new byte[1024];
// int i = bis.read(buffer);
// while (i != -1) {
// os.write(buffer, 0, i);
// i = bis.read(buffer);
// }
// } catch (Exception e) {
// e.printStackTrace();
// } finally {
// IOUtils.closeQuietly(bis);
// }
// file.delete(); // 删除临时文件
// ResultBean.success("下载").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }catch(ImppBusiException busExcep){
// ResultBean.fail(busExcep);
// } catch (FileNotFoundException e) {
// ImppExceptionBuilder.newInstance().buildExceptionResult(e);
// } catch (Exception e) {
// ImppExceptionBuilder.newInstance().buildExceptionResult(e);
// }
// }
/**
*
* @param multipart
* @return
*/
@Deprecated
@PostMapping("/upload")
@ApiOperation(value = "文件上传", notes = "文件上传")
public ResultBean singleFileUpload(@RequestParam("file") MultipartFile multipart) {
try {
startMultiService();
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
if(multipart.isEmpty()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("请选择需要上传的文件。")
.build();
}
List<SysMenu> list = excelTool.importData("permission.xls",multipart.getInputStream(), SysMenu.class);
Map<String,SysMenu> map = new HashMap<>();
list.forEach(menu -> {
ValidatorBean.checkNotNull(menu.getMenuCode(), "功能代码不能为空");
ValidatorBean.checkNotNull(menu.getParentId(), "父级功能ID不能为空");
ValidatorBean.checkNotNull(menu.getSoftType(), "产品类型不能为空");
menu.setId(Long.parseLong(menu.getMenuCode()));
if (!map.containsKey(menu.getMenuCode())) {
map.put(menu.getMenuCode(),menu);
} else {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("功能代码【" + menu.getMenuCode() + "】重复")
.build();
}
});
list.forEach(menu -> {
menu.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue());
menu.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
if(menu.getParentId().longValue() != -1){
SysMenu mu = map.get(menu.getParentId().toString());
ValidatorBean.checkNotNull(mu, "【"+menu.getParentId()+"】不存在的父节点信息");
menu.setNameZhShortening(StringTool.getAllFirstLetter(mu.getName()));
menu.setParentNameRdd(mu.getName());
}
});
return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultList(menuService.saveBatch(list));
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(BaseImppException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
*
* @param response response
* @return
*/
@GetMapping("/download/excel")
@ApiOperation(value = "权限文件下载", notes = "权限文件下载")
public void singleDownload(HttpServletResponse response) {
try {
startMultiService();
ExcelTool excelTool = new ExcelTool(entityManager, redisRes);
String fileName = "menu_" + System.currentTimeMillis() + ".xls";
List<SysMenu> list = menuService.findAll();
File file = new File(fileName);
file.createNewFile();
File excle = excelTool.exportData(file, list, SysMenu.class, new String[]{
"menuCode", "name","parentId","menuType","softType","menuStatus","parentNameRdd","menuUrl","menuClassPath","menuGrade","menuSort"
,"menuCss","menuIcon","menuDescription"
});
response.setContentType("application/force-download"); // 设置强制下载不打开
response.addHeader("Content-Disposition", "attachment;fileName=" + fileName); // 设置文件名
response.addHeader("Content-type", FileContentTypeTool.getContentType(StringTool.getStringFileSuffix(fileName,true)));
// 设置文件名
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(new DataInputStream(new FileInputStream(excle)));
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[1024];
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(bis);
}
file.delete(); // 删除临时文件
ResultBean.success("下载").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
ResultBean.fail(busExcep);
} catch (FileNotFoundException e) {
ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} catch (Exception e) {
ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -77,7 +77,27 @@ public class SysOrganizeController extends CrudBaseController<SysOrganize> {
return organizeService;
}
// /**
@Override
public SysOrganize validatorInsertBean(SysOrganize bean) throws Exception {
//条件验证
ValidatorBean.beginValid(bean)
.notNull("name", bean.getName())
.notNull("organizeCode", bean.getOrganizeCode())
.notNull("organizeType", bean.getOrganizeType());
if(bean.getParentId() == null || bean.getParentId() <= 0){
bean.setParentId(CommonEnumUtil.PARENT.DEFAULT.getValue());
bean.setParentNameRdd("顶级组织");
}else{
SysOrganize organize = organizeService.get(bean.getParentId());
ValidatorBean.checkNotNull(organize,"不存在的上级组织信息");
bean.setParentNameRdd(organize.getName());
}
return bean;
}
// /**
// * 新增组织
// * @param organize 组织
// * @return 处理结果

@ -30,7 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(tags = "对象历史计划")
@RequestMapping(CommonConstWords.BASE_URL_CORE+"/pojo-version-plan")
public class SysPojoVersionPlanDetailController extends CrudBaseController<SysPojoVersionPlan> {
public class SysPojoVersionPlanController extends CrudBaseController<SysPojoVersionPlan> {
@Autowired
private ISysPojoVersionPlanService pojoVersionService;
@ -46,6 +46,8 @@ public class SysPojoVersionPlanDetailController extends CrudBaseController<SysPo
.notNull("softType",bean.getSoftType())
.notNull("refClassTitle",bean.getRefClassTitle());
bean.setPlanStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue());
pojoVersionService.checkSysPojoVersionPlanOnly(bean);
return bean;
}
@ -57,7 +59,8 @@ public class SysPojoVersionPlanDetailController extends CrudBaseController<SysPo
.notNull("softType",bean.getSoftType())
.notNull("planStatus",bean.getPlanStatus())
.notNull("refClassTitle",bean.getRefClassTitle());
bean.setPlanStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue());
pojoVersionService.checkSysPojoVersionPlanOnly(bean);
return bean;
}

@ -1,20 +1,32 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
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.SysPosition;
import cn.estsh.impp.framework.base.controller.CrudBaseController;
import cn.estsh.impp.framework.base.service.ICrudService;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* @Description :
* @Reference :
@ -31,6 +43,9 @@ public class SysPositionController extends CrudBaseController<SysPosition> {
@Autowired
private ISysPositionService positionService;
@Autowired
private ICoreMemTreeService coreMemTreeService;
@Override
public ICrudService getCrudService() {
return positionService;
@ -61,4 +76,51 @@ public class SysPositionController extends CrudBaseController<SysPosition> {
return bean;
}
/**
*
* @return
*/
@GetMapping(value = "/list-user")
@ApiOperation(value = "查询所有岗位", notes = "查询所有岗位")
public ResultBean findSysPositionListUser(SysPosition position) {
try {
List<SysPosition> result = null;
if(AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.USER)){
position.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
}
result = positionService.findAllByBean(position);
return ResultBean.success("操作成功").setResultList(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
@Override
@ApiOperation(value = "查询岗位", notes = "复杂查询岗位带分页")
public ResultBean queryPager(SysPosition bean, Pager pager) {
try {
ListPager<SysPosition> listPager = null;
List<Long> idList = new ArrayList<>();
if(bean.getParentId() != null){
idList = coreMemTreeService.findSysPositionChildIdList(bean.getParentId());
}
if(!AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)){
bean.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode());
}
listPager = positionService.querySysPosition(bean,idList, pager);
return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Queue;

@ -121,15 +121,16 @@ public class PojoVersionQueueReceiver {
differing = Maps.difference(beforeMap, afterMap).entriesDiffering();
// 忽略版本控制属性
if(differing != null ){
for (String key : CommonConstWords.POJO_VERSION_ATTR_INGNORE) {
if(differing.containsKey(key)){
differing.remove(key);
}
}
pojoCompare = differing.toString();
}
// // 忽略版本控制属性
// if(differing != null ){
// for (String key : CommonConstWords.POJO_VERSION_ATTR_INGNORE) {
// if(differing.containsKey(key)){
// differing.remove(key);
// }
// }
// pojoCompare = differing.toString();
// }
pojoCompare = differing != null && differing.size() > 0 ? differing.toString() : null;
versionNo = Objects.nonNull(beforeVersion) ? beforeVersion.getVersionNo() : 0;
afterVersion.setVersionNo(++versionNo);

@ -114,7 +114,7 @@ public class CoreTreeService implements ICoreTreeService {
@Override
@ApiOperation(value = "父节点检查", notes = "检查岗位的父节点是否是当前节点的子节点")
public void doValidatorSysPositionParentId(SysPosition position) {
if (position != null) {
if (position != null && !CommonEnumUtil.PARENT.DEFAULT.getValue().equals(position.getParentId())) {
if (position.getParentId().longValue() == position.getId().longValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())

@ -0,0 +1,81 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDataSourceService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysDataSource;
import cn.estsh.i3plus.pojo.platform.repository.SysDataSourceRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CacheCrudService;
import cn.estsh.impp.framework.boot.datasource.ImppJdbcTemplateFactory;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import com.alibaba.fastjson.JSON;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @CreateDate : 20-5-11 11:12
* @Modify:
**/
@Service
public class SysDataSourceService extends CacheCrudService<SysDataSource> implements ISysDataSourceService {
@Autowired
private SysDataSourceRepository dataSourceRDao;
@Override
public BaseRepository<SysDataSource, Long> getRepository() {
return dataSourceRDao;
}
@Override
public void checkSysDataSourceOnly(SysDataSource bean) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean);
DdlPreparedPack.getNumNOEqualPack(bean.getId(),"id",packBean);
DdlPreparedPack.getNumEqualPack(bean.getSoftType(),"softType",packBean);
DdlPreparedPack.getStringEqualPack(bean.getSourceCode(),"sourceCode",packBean);
if(dataSourceRDao.findByHqlWhereCount(packBean) > 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("数据代码已存在")
.setErrorSolution("请重新操作")
.build();
}
}
@Override
public void packAfterRefreshCache() {
List<SysDataSource> list = getMemCacheDataSource();
ImppRedis imppRedis = getRedisBusiCache();
if(CollectionUtils.isNotEmpty(list)){
if(Objects.nonNull(imppRedis)){
for (SysDataSource source : list) {
String redisKey = ImppJdbcTemplateFactory.getDataSourceName(source.getSourceName());
imppRedis.putObject(redisKey, JSON.toJSONString(source), -1);
}
}else{
LOGGER.info("同步数据到错误:无法获取Redis连接信息");
}
}
}
@Override
public DdlPackBean getFindPagerPackBean(SysDataSource bean) {
return CoreHqlPack.packSysDataSource(bean);
}
}

@ -70,6 +70,11 @@ public class SysDepartmentService extends CacheCrudService<SysDepartment> implem
return departmentRDao;
}
@Override
public DdlPackBean getFindPagerPackBean(SysDepartment bean) {
return CoreHqlPack.packDdlBeanSysDepartment(bean,null);
}
// @Override
// @ApiOperation(value = "新增部门信息")
// public SysDepartment insertSysDepartment(SysDepartment department) {
@ -289,12 +294,12 @@ public class SysDepartmentService extends CacheCrudService<SysDepartment> implem
// }
// }
//
// @Override
// public ListPager<SysDepartment> findSysDepartmentPagerByIdList(SysDepartment department, List<Long> idList, Pager pager) {
// DdlPackBean packBean = CoreHqlPack.packDdlBeanSysDepartment(department, idList);
// pager = PagerHelper.getPager(pager, departmentRDao.findByHqlWhereCount(packBean));
// return new ListPager(departmentRDao.findByHqlWherePage(packBean , pager), pager);
// }
@Override
public ListPager<SysDepartment> findSysDepartmentPagerByIdList(SysDepartment department, List<Long> idList, Pager pager) {
DdlPackBean packBean = CoreHqlPack.packDdlBeanSysDepartment(department, idList);
pager = PagerHelper.getPager(pager, departmentRDao.findByHqlWhereCount(packBean));
return new ListPager(departmentRDao.findByHqlWherePage(packBean , pager), pager);
}
@Override

@ -240,6 +240,14 @@ public class SysOrganizeService extends CacheCrudService<SysOrganize> implements
// }
//
@Override
public DdlPackBean getFindPagerPackBean(SysOrganize bean) {
return CoreHqlPack.packHqlSysOrganize(bean, null);
}
@Override
public SysOrganize get(SysOrganize bean) {
SysOrganize result = getCacheIndex(bean.hashCode());

@ -1,10 +1,16 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionPlanService;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan;
import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionPlanRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CacheCrudService;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -25,4 +31,21 @@ public class SysPojoVersionPlanService extends CacheCrudService<SysPojoVersionPl
public BaseRepository<SysPojoVersionPlan, Long> getRepository() {
return pojoVersionPlanRDao;
}
@Override
public void checkSysPojoVersionPlanOnly(SysPojoVersionPlan bean) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(bean);
DdlPreparedPack.getNumNOEqualPack(bean.getId(),"id",packBean);
DdlPreparedPack.getNumEqualPack(bean.getSoftType(),"softType",packBean);
DdlPreparedPack.getStringEqualPack(bean.getRefClass(),"refClass",packBean);
if(pojoVersionPlanRDao.findByHqlWhereCount(packBean) > 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("任务计划已存在")
.setErrorSolution("请重新操作")
.build();
}
}
}

@ -4,7 +4,9 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysPojoVersionService;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersion;
import cn.estsh.i3plus.pojo.platform.bean.SysPojoVersionPlan;
import cn.estsh.i3plus.pojo.platform.repository.SysPojoVersionRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.base.service.CrudService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -32,4 +34,10 @@ public class SysPojoVersionService extends CrudService<SysPojoVersion> implement
public SysPojoVersion getPojoVersion(SysPojoVersion bean) {
return pojoVersionRDao.getByProperty(DdlPackBean.getDdlPackBean(bean));
}
@Override
public DdlPackBean packFindAllBean(SysPojoVersion bean) {
return CoreHqlPack.packHqlSysPojoVersion(bean);
}
}

@ -56,6 +56,11 @@ public class SysPositionService extends CacheCrudService<SysPosition> implements
}
@Override
public DdlPackBean getFindPagerPackBean(SysPosition bean) {
return CoreHqlPack.packHqlSysPosition(bean);
}
@Override
public SysPosition packBeforeInsert(SysPosition bean) {
checkSysPositionOnly(bean);
@ -94,16 +99,12 @@ public class SysPositionService extends CacheCrudService<SysPosition> implements
}
@Override
public boolean heckSysPositionCode(String code, long id) {
StringBuffer sw = new StringBuffer();
HqlPack.getStringEqualPack(code,"positionCode",sw);
HqlPack.getNumNOEqualPack(id,"id",sw);
return positionRDao.findByHqlWhereCount(sw.toString()) <= 0;
}
@Override
public void checkSysPositionOnly(SysPosition position) {
if(!heckSysPositionCode(position.getPositionCode(), position.getId())){
DdlPackBean packBean = DdlPackBean.getDdlPackBean(position);
DdlPreparedPack.getNumNOEqualPack(position.getId(),"id",packBean);
DdlPreparedPack.getStringEqualPack(position.getPositionCode(),"positionCode",packBean);
if(positionRDao.findByHqlWhereCount(packBean) > 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())

@ -119,6 +119,9 @@ public class SysUserService implements ISysUserService {
@Autowired
private ICoreMemTreeService memTreeService;
@Autowired
private ISysFileService fileService;
@Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes;
@ -876,6 +879,25 @@ public class SysUserService implements ISysUserService {
/**
*
* @param userInfo
* @return
*/
public void packSysUserInfoImage(SysUserInfo userInfo){
try {
LOGGER.debug("平台用户 SYS_USER user id :{}", userInfo.getId());
if(Objects.nonNull(userInfo.getUserImageId())){
SysFile file = fileService.getSysFileById(userInfo.getUserImageId());
if(Objects.nonNull(file)){
userInfo.setImageFileUrl(file.getFilePath());
}
}
}catch (Exception e){
LOGGER.error(" SysUser Peck Organize information Error userId : {} Exception Message : {} " ,userInfo.getId(),e.getMessage());
}
}
/**
*
* @param user
* @return
*/

Loading…
Cancel
Save