yun-zuoyi
alwaysfrin 6 years ago
commit e2d315c161

@ -0,0 +1,41 @@
package cn.estsh.i3plus.core.api.iservice.base;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import io.swagger.annotations.ApiOperation;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-11 10:02
* @Modify:
**/
public interface ISystemInitService {
/**
*
*/
@ApiOperation(value = "初始化加载所有数据",notes = "初始化加载所有数据")
void loadAll();
/**
*
*/
@ApiOperation(value = "加载系统配置",notes = "加载系统配置")
void loadSysConfig();
/**
*
*/
@ApiOperation(value = "加载字典数据",notes = "加载字典数据")
void loadSysDictionary();
/**
*
*/
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
void loadSysLocaleLanguage();
@ApiOperation(value = "获取缓存中的数据",notes = "获取缓存中的数据")
Object getDataFromCache(String key,Class dataType);
}

@ -41,6 +41,9 @@ public interface IPersonnelService {
@ApiOperation(value = "查询账号信息")
List<SysUser> querySysUserByUserDetailModelOrIds(UserDetailModel model, List<Long> ids);
@ApiOperation(value = "查询账号信息")
ListPager<SysUser> querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List<Long> ids);
@ApiOperation(value = "获取用户信息")
SysUserInfo getSysUserInfoById(Long id);
@ -101,7 +104,16 @@ public interface IPersonnelService {
@ApiOperation(value = "岗位关系检查")
void checkSysPositionRef(Long positionId);
@ApiOperation(value = "岗位关系检查")
@ApiOperation(value = "部门关系检查")
void checkSysDepartmentRef(Long departmentId);
@ApiOperation(value = "组织关系检查")
void checkSysOrganizeRef(Long organizeId);
@ApiOperation(value = "密码规则校验")
void checkSysUserPassword(String password);
@ApiOperation(value = "菜单关系检查")
void refreshMenuRdd(Long menuId);
@ApiOperation(value = "岗位关系检查")

@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import io.swagger.annotations.ApiOperation;
import java.util.Date;
import java.util.List;
/**
@ -81,4 +82,13 @@ public interface ISysConfigService {
*/
@ApiOperation(value = "根据系统配置代码修改配置项")
void updateSysConfigByCode(String code,String value);
/**
*
* @param group
* @return
*/
@ApiOperation(value = "根据系统参数组来查找系统参数")
List findSysConfigByGroup(Integer group);
}

@ -103,4 +103,22 @@ public interface ISysDictionaryService {
*/
@ApiOperation(value = "设置默认字典项",notes = "根据id设置默认字典项")
void updateSysDictionaryDefaultById(Long id);
/**
*
* @param parentCode
* @param value
* @return
*/
@ApiOperation(value = "根据父节点 以及当前节点值 获取字典信息")
SysDictionary getSysDictionaryByParentCodeAndValue(String parentCode,String value);
/**
*
* @param parentCode
* @param name
* @return
*/
@ApiOperation(value = "根据父节点 以及当前节点名称 获取字典信息")
SysDictionary getSysDictionaryByParentCodeAndName(String parentCode,String name);
}

@ -67,4 +67,11 @@ public interface ISysFileService {
*/
@ApiOperation(value = "删除资源信息",notes = "根据ID批量删除资源信息")
void deleteSysFileByIds(Long[] ids);
/**
*
* @param file
*/
@ApiOperation(value = "上传文件资源",notes = "上传文件资源")
SysFile uploadFile(Object file) throws Exception;
}

@ -0,0 +1,32 @@
package cn.estsh.i3plus.core.apiservice.configuration;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-11 9:55
* @Modify:
**/
@Component
public class AppStartSystemInit implements CommandLineRunner {
public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG);
@Autowired
private ISystemInitService systemInitService;
@Override
public void run(String... args) throws Exception {
LOGGER.info(" Start Core Init Thread ");
systemInitService.loadAll();
}
}

@ -7,9 +7,12 @@ import cn.estsh.i3plus.platform.common.tool.EncryptTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
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.model.platform.UserDetailModel;
import cn.estsh.i3plus.pojo.model.platform.UserDetailPagerModel;
import cn.estsh.i3plus.pojo.platform.bean.*;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
@ -57,9 +60,23 @@ public class PersonnelController extends CoreBaseController {
SysUserInfo info = model.getSysUserInfo();
checkUserDetailModel(model, false);
personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user);
initUserDetail(info,user);
if(StringUtils.isBlank(info.getUserJoinDate())){
info.setUserJoinDate(TimeTool.getToday());
}
info.setUserInfoStatus(CommonEnumUtil.USER_INFO_STATUS.INCUMBENT.getValue());
info.setUserLoginNum(0);
info.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
ConvertBean.modelInitialize(info, AuthUtil.getSessionUser());
user.setUserType(CommonEnumUtil.USER_TYPE.USER.getValue());
user.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
user.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
user.setUserLoginNum(0);
ConvertBean.modelInitialize(user, AuthUtil.getSessionUser());
SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId()));
if(infoDepartment == null){
@ -117,10 +134,9 @@ public class PersonnelController extends CoreBaseController {
SysUserInfo info = model.getSysUserInfo();
checkUserDetailModel(model, true);
personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user);
initUserDetail(info,user);
SysDepartment infoDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getInfoDepartmentId()));
if(infoDepartment == null){
ValidatorBean.checkNotNull(infoDepartment,"用户主部门不存在");
@ -166,7 +182,6 @@ public class PersonnelController extends CoreBaseController {
}
}
@PutMapping(value="/user/update")
@ApiOperation(value="添加用户信息",notes="返回内容添加用户信息")
public ResultBean updateUserModel(UserDetailModel model) {
@ -174,6 +189,7 @@ public class PersonnelController extends CoreBaseController {
checkUserModel(model);
SysUser user = personnelService.getSysUserById(Long.parseLong(model.getUserId()));
initUser(model,user);
personnelService.checkSysUserPassword(model.getUserLoginPassword());
personnelService.checkSysUserOnly(user);
SysDepartment userDepartment = personnelService.getSysDepartmentById(Long.parseLong(model.getUserDepartmentId()));
@ -380,14 +396,12 @@ public class PersonnelController extends CoreBaseController {
}
}
@PostMapping(value = "/query-ref-department")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean queryRefDepartment(UserDetailModel model) {
public ResultBean queryRefDepartment(@RequestBody UserDetailModel model) {
try {
model.setUserDepartmentIdList(new ArrayList<String>(Arrays.asList(new String[]{"1072037153732694016"})));
List<Long> idList = new ArrayList<>();
model.setUserDepartmentIdList(new ArrayList<String>(Arrays.asList(new String[]{"1072037153732694016"})));
List<SysRefUserDepartment> refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model);
if(refs != null && refs.size() > 0){
@ -405,6 +419,27 @@ public class PersonnelController extends CoreBaseController {
}
}
@PostMapping(value = "/pager/query-ref-department")
@ApiOperation(value = "查询角色的所有角色权限关系", notes = "查询角色的所有角色权限关系")
public ResultBean queryPagerRefDepartment(@RequestBody UserDetailPagerModel model) {
try {
List<Long> idList = new ArrayList<>();
List<SysRefUserDepartment> refs = personnelService.querySysRefUserDepartmentByUserDetailModel(model.getUserDetailModel());
if(refs != null && refs.size() > 0){
for (SysRefUserDepartment ref : refs) {
idList.add(ref.getUserId());
}
}
ListPager<SysUser> result = personnelService.querySysUserPagerByUserDetailModelOrIds(model.getUserDetailModel(), model.getPager(), idList);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(result);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
*
* @param model
@ -450,33 +485,6 @@ public class PersonnelController extends CoreBaseController {
/**
*
* @param info
* @param user
* @throws Exception
*/
private void initUserDetail(SysUserInfo info ,SysUser user)throws Exception{
if(StringUtils.isBlank(info.getUserJoinDate())){
info.setUserJoinDate(TimeTool.getToday());
}
if(info != null){
info.setUserInfoStatus(CommonEnumUtil.USER_INFO_STATUS.INCUMBENT.getValue());
info.setUserLoginNum(0);
info.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
ConvertBean.modelInitialize(info, AuthUtil.getSessionUser());
}
if(user != null){
user.setUserType(CommonEnumUtil.USER_TYPE.USER.getValue());
user.setUserStatus(CommonEnumUtil.USER_STATUS.ENABLE.getValue());
user.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
user.setUserLoginNum(0);
ConvertBean.modelInitialize(user, AuthUtil.getSessionUser());
}
}
/**
*
* @param model
* @param user
* @throws Exception

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.core.apiservice.util.MailUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
@ -42,9 +43,13 @@ public class SysConfigController extends CoreBaseController {
@Autowired
private ISysConfigService sysConfigService;
@Autowired
private MailUtil mailUtil;
@Autowired
private ISystemInitService systemInitService;
@PostMapping("/insert")
@ApiOperation(value = "添加系统参数",notes = "添加系统参数")
public ResultBean insertSysConfig(SysConfig sysConfig) {
@ -63,6 +68,7 @@ public class SysConfigController extends CoreBaseController {
ConvertBean.modelInitialize(sysConfig,user);
sysConfigService.insertSysConfig(sysConfig);
systemInitService.loadSysConfig();
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -87,6 +93,7 @@ public class SysConfigController extends CoreBaseController {
}
sysConfigService.deleteSysConfigById(Long.parseLong(idStr));
systemInitService.loadSysConfig();
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -113,6 +120,7 @@ public class SysConfigController extends CoreBaseController {
ConvertBean.modelUpdate(sysConfig,user);
sysConfigService.updateSysConfig(sysConfig);
systemInitService.loadSysConfig();
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -213,6 +221,7 @@ public class SysConfigController extends CoreBaseController {
ValidatorBean.checkNotNull(value,"值不能为空");
sysConfigService.updateSysConfigByCode(code,value);
systemInitService.loadSysConfig();
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -240,4 +249,18 @@ public class SysConfigController extends CoreBaseController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping("/find-group/{group}")
@ApiOperation(value = "根据参数组查询系统参数")
public ResultBean findSysConfigByGroup(@PathVariable("group") Integer group){
try {
ValidatorBean.checkNotNull(group,"参数组不能为空");
List<SysConfig> sysConfigList = sysConfigService.findSysConfigByGroup(group);
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(sysConfigList);
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -109,22 +109,6 @@ public class SysDepartmentController extends CoreBaseController {
}
}
@DeleteMapping(value = "/delete/{id}")
@ApiOperation(value = "删除部门", notes = "根据部门id删除信息")
public ResultBean deleteSysDepartment(@PathVariable("id") String id) {
try {
//条件验证
ValidatorBean.checkNotNull(id, "id为空。");
departmentService.deleteSysDepartmentById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/list")
@ApiOperation(value = "查询所有部门", notes = "查询所有部门")
public ResultBean findSysDepartmentAll() {
@ -183,6 +167,22 @@ public class SysDepartmentController extends CoreBaseController {
}
}
@DeleteMapping(value = "/delete/{id}")
@ApiOperation(value = "删除部门", notes = "根据部门id删除信息")
public ResultBean deleteSysDepartment(@PathVariable("id") String id) {
try {
//条件验证
ValidatorBean.checkNotNull(id, "id为空。");
departmentService.deleteSysDepartmentById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@DeleteMapping(value = "/batch-delete")
@ApiOperation(value = "根据id批量删除", notes = "根据id批量删除")
public ResultBean deleteSysDepartmentByIds(String[] ids){

@ -3,8 +3,8 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
@ -168,15 +168,15 @@ public class SysDictionaryController extends CoreBaseController{
public ResultBean findSysDictionaryUserInfo() {
try {
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("1",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_SEX));
resultMap.put("2",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_FILE_TYPE));
resultMap.put("3",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_MARRIAGE));
resultMap.put("4",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_EDUCATION));
resultMap.put("5",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_NATIONALITY));
resultMap.put("6",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_CERTIFICATE_TYPE));
resultMap.put("7",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_GRADE));
resultMap.put("8",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_POLITICAL_STATUS));
resultMap.put("9",sysDictionaryService.findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_EMPLOYEE_TYPE));
resultMap.put("1",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_SEX));
resultMap.put("2",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_FILE_TYPE));
resultMap.put("3",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_MARRIAGE));
resultMap.put("4",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_EDUCATION));
resultMap.put("5",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_NATIONALITY));
resultMap.put("6",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_CERTIFICATE_TYPE));
resultMap.put("7",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_EMPLOYEE_GRADE));
resultMap.put("8",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_POLITICAL_STATUS));
resultMap.put("9",sysDictionaryService.findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_EMPLOYEE_TYPE));
return ResultBean.success("查询成功").setResultMap(resultMap).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {

@ -161,4 +161,18 @@ public class SysEnumController extends CoreBaseController{
return new ResultBean(true, "操作成功",
Arrays.asList(ImppEnumUtil.SYS_VALUE_TYPE.values()));
}
@GetMapping("/sys-math-symbol")
@ApiOperation(value = "数学表达式", notes = "数学表达式")
public ResultBean getSysMathSymbol(){
return new ResultBean(true, "操作成功",
Arrays.asList(CommonEnumUtil.MATH_SYMBOL.values()));
}
@GetMapping("/sys-config-group")
@ApiOperation(value = "系统配置组", notes = "系统配置组")
public ResultBean getSysConfigGroup(){
return new ResultBean(true, "操作成功",
Arrays.asList(ImppEnumUtil.SYS_CONFIG_GROUP.values()));
}
}

@ -3,22 +3,17 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
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.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
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.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -26,20 +21,14 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.InputStreamResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLConnection;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
/**
@ -161,7 +150,7 @@ public class SysFileController extends CoreBaseController{
@PostMapping("/upload")
@ApiOperation(value = "文件上传",notes = "文件上传")
public ResultBean singleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {
public ResultBean singleFileUpload(@RequestParam("file") MultipartFile file) {
try {
if(file.isEmpty()){
throw ImppExceptionBuilder.newInstance()
@ -181,25 +170,7 @@ public class SysFileController extends CoreBaseController{
.build();
}
FastDFSFile dfsFile = dfsClient.saveFile(file);
String filePath = dfsClient.getHostUi() + "/" + dfsFile.getDfsGroupName() + "/" + dfsFile.getDfsFileName();
SysDictionary dictionary = dictionaryService.getSysDictionaryByParentCodeAndCode(
CommonConstWords.DICTIONARY_FILE_TYPE,
StringTool.getStringFileSuffix(file.getOriginalFilename(),false));
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(dfsFile.getDfsGroupName());
sysFile.setDfsFileName(dfsFile.getDfsFileName());
sysFile.setFileSize(dfsFile.getContent().length);
sysFile.setFilePath(filePath);
sysFile.setFileOriginalName(file.getOriginalFilename());
sysFile.setFileTypeId(dictionary.getId());
sysFile.setFileTypeName(dictionary.getName());
sysFile.setUserId(getSessionUser().getUserId());
sysFile.setDownloadNum(0);
SysFile fileDb = sysFileService.insertSysFile(sysFile);
SysFile fileDb = sysFileService.uploadFile(file);
return ResultBean.success("上传成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(fileDb);
}catch(ImppBusiException busExcep){
@ -239,17 +210,17 @@ public class SysFileController extends CoreBaseController{
response.addHeader("Content-type", "application/octet-stream");// 设置文件名
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(fis);
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();
try {
bis = new BufferedInputStream(fis);
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 {
if (bis != null) {
try {

@ -1,13 +1,23 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogExceptionService;
import cn.estsh.i3plus.core.apiservice.util.ExcelUtil;
import cn.estsh.i3plus.core.apiservice.util.FileUtil;
import cn.estsh.i3plus.core.apiservice.util.ZipUtil;
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.platbean.SysLogException;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
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.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -18,6 +28,11 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @Description :
* @Reference :
@ -28,15 +43,24 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(description = "系统异常日志服务")
@RequestMapping(PlatformConstWords.BASE_URL + "/sys-log-exception")
public class SysLogExceptionController {
public class SysLogExceptionController extends CoreBaseController {
public static final Logger LOGGER = LoggerFactory.getLogger(SysLogExceptionController.class);
@Autowired
private ISysLogExceptionService sysLogExceptionService;
@Autowired
private ISysDictionaryService sysDictionaryService;
@Autowired
private ISysConfigService sysConfigService;
@Autowired
private ISysFileService sysFileService;
@GetMapping(value = "/query")
@ApiOperation(value = "异常日志复杂查询,分页,排序",notes = "异常日志复杂查询,分页,排序")
public ResultBean querySysLogOperateByPager(SysLogException sysLogException, Pager pager){
public ResultBean querySysLogExceptionByPager(SysLogException sysLogException, Pager pager){
try {
ListPager logExceptionList = sysLogExceptionService.querySysLogExceptionByPager(sysLogException, pager);
return ResultBean.success("查询成功").setListPager(logExceptionList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -46,4 +70,82 @@ public class SysLogExceptionController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping("/get-col")
@ApiOperation(value = "获取系统操作日志字段")
public ResultBean getSysLogExceptionCol(){
try {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysLogException.class));
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/export")
@ApiOperation(value = "导出系统异常日志")
public ResultBean exportSysLogException(SysLogException sysLogException, String[] colName, int pageSize,boolean isZip) {
ListPager listPager;
List result = new ArrayList();
File zipFile = null;
File excelDir = null;
File excelFile;
try {
Pager pager = new Pager();
pager.setCurrentPage(1);
// 判断是否超过excel最大导出数量设定值
int maxPageSize = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue());
if (pageSize == 0 || pageSize >= maxPageSize) {
pager.setPageSize(maxPageSize);
} else {
pager.setPageSize(pageSize);
}
// 数据校验
if(colName==null || colName.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("导出列不能为空")
.build();
}
excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime());
excelDir.mkdir();
do {
listPager = sysLogExceptionService.querySysLogExceptionByPager(sysLogException, pager);
pager = listPager.getObjectPager();
// 将excel导出至临时文件夹并上传
excelFile = new File(excelDir + File.separator + SysLogException.class.getSimpleName() + pager.getCurrentPage() + ".xls");
excelFile.createNewFile();
ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysLogException.class, colName);
result.add(sysFileService.uploadFile(excelFile));
pager.setCurrentPage(pager.getCurrentPage() + 1);
} while (pager.getCurrentPage() <= pager.getTotalPages());
// 将所有excel文件打包
if(isZip){
zipFile = ZipUtil.zipFile(null, excelDir);
result.add(sysFileService.uploadFile(zipFile));
ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} else {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} finally {
// 清理临时文件文件
if (zipFile != null) {
FileUtil.deletefile(zipFile.getPath());
}
FileUtil.deletefile(excelDir.getPath());
}
}
}

@ -1,14 +1,23 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogOperateService;
import cn.estsh.i3plus.core.apiservice.util.ExcelUtil;
import cn.estsh.i3plus.core.apiservice.util.FileUtil;
import cn.estsh.i3plus.core.apiservice.util.ZipUtil;
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.platbean.SysLogOperate;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
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.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -19,6 +28,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.websocket.server.PathParam;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -37,6 +49,15 @@ public class SysLogOperateController extends CoreBaseController {
@Autowired
private ISysLogOperateService logOperateService;
@Autowired
private ISysDictionaryService sysDictionaryService;
@Autowired
private ISysConfigService sysConfigService;
@Autowired
private ISysFileService sysFileService;
@PostMapping(value = "/insert")
@ApiOperation(value = "添加操作日志",notes = "添加操作日志")
public ResultBean insertSysLogOperateController(SysLogOperate logOperate){
@ -111,4 +132,83 @@ public class SysLogOperateController extends CoreBaseController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping("/get-col")
@ApiOperation(value = "获取系统操作日志字段")
public ResultBean getSysLogOperateCol(){
try {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysLogOperate.class));
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/export")
@ApiOperation(value = "导出操作日志")
public ResultBean exportSysLogOperate(SysLogOperate sysLogOperate, String[] colName, int pageSize, boolean isZip) {
ListPager listPager;
List result = new ArrayList();
File zipFile = null;
File excelDir = null;
File excelFile;
try {
Pager pager = new Pager();
pager.setCurrentPage(1);
// 判断是否超过excel最大导出数量设定值
int maxPageSize = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue());
if (pageSize == 0 || pageSize >= maxPageSize) {
pager.setPageSize(maxPageSize);
} else {
pager.setPageSize(pageSize);
}
// 数据校验
if(colName==null || colName.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("导出列不能为空")
.build();
}
excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime());
excelDir.mkdir();
do {
listPager = logOperateService.querySysLogOperateByPager(sysLogOperate, pager);
pager = listPager.getObjectPager();
// 将excel导出至临时文件夹并上传
excelFile = new File(excelDir + File.separator + SysLogOperate.class.getSimpleName() + pager.getCurrentPage() + ".xls");
excelFile.createNewFile();
ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysLogOperate.class, colName);
result.add(sysFileService.uploadFile(excelFile));
pager.setCurrentPage(pager.getCurrentPage() + 1);
} while (pager.getCurrentPage() <= pager.getTotalPages());
// 将所有excel文件打包
if(isZip){
zipFile = ZipUtil.zipFile(null, excelDir);
result.add(sysFileService.uploadFile(zipFile));
ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} else {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} finally {
// 清理临时文件文件
// 清理临时文件文件
if (zipFile != null) {
FileUtil.deletefile(zipFile.getPath());
}
FileUtil.deletefile(excelDir.getPath());
}
}
}

@ -5,20 +5,19 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLogSystemService;
import cn.estsh.i3plus.core.apiservice.util.ExcelUtil;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.core.apiservice.util.FileUtil;
import cn.estsh.i3plus.core.apiservice.util.ZipUtil;
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.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
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.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -28,7 +27,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -48,17 +49,11 @@ public class SysLogSystemController extends CoreBaseController{
private ISysLogSystemService logSystemService;
@Autowired
private ISysDictionaryService sysDictionaryService;
@Autowired
private ISysConfigService sysConfigService;
@Autowired
private ISysFileService sysFileService;
@Autowired
private FastDFSClient dfsClient;
@PostMapping(value = "/insert")
@ApiOperation(value="新增系统日志",notes = "新增系统日志")
public ResultBean insertSysLogSystem(SysLogSystem logSystem) {
@ -146,48 +141,68 @@ public class SysLogSystemController extends CoreBaseController{
}
@GetMapping(value = "/export")
@ApiOperation(value = "导出系统日志")
public ResultBean exportSysLogSystem(SysLogSystem sysLogSystem, String[] colName){
@ApiOperation(value = "导出系统异常日志")
public ResultBean exportSysLogSystem(SysLogSystem sysLogSystem, String[] colName, int pageSize, boolean isZip) {
ListPager listPager;
List result = new ArrayList();
File zipFile = null;
File excelDir = null;
File excelFile;
try {
Pager pager = new Pager();
pager.setCurrentPage(1);
pager.setPageSize(Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue()));
ListPager listPager;
String[] fileAbsolutePath;
List result = new ArrayList();
// 判断是否超过excel最大导出数量设定值
int maxPageSize = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue());
if (pageSize == 0 || pageSize >= maxPageSize) {
pager.setPageSize(maxPageSize);
} else {
pager.setPageSize(pageSize);
}
// 数据校验
if(colName==null || colName.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("导出列不能为空")
.build();
}
excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime());
excelDir.mkdir();
do {
listPager = logSystemService.querySysLogSystemByPager(sysLogSystem, pager);
pager = listPager.getObjectPager();
// 上传至文件服务器
FastDFSFile fastDFSFile = new FastDFSFile(SysOrderNoRule.class.getSimpleName() + pager.getCurrentPage() + ".xls",
ExcelUtil.exportData(listPager.getObjectList(),SysOrderNoRule.class,colName),"xls");
fileAbsolutePath = dfsClient.upload(fastDFSFile);
// 将excel导出至临时文件夹并上传
excelFile = new File(excelDir + File.separator + SysLogSystem.class.getSimpleName() + pager.getCurrentPage() + ".xls");
excelFile.createNewFile();
// 保证系统文件表中
String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1];
SysDictionary dictionary = sysDictionaryService.getSysDictionaryByParentCodeAndCode(
CommonConstWords.DICTIONARY_FILE_TYPE,fastDFSFile.getExt());
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(fileAbsolutePath[0]);
sysFile.setDfsFileName(fileAbsolutePath[1]);
sysFile.setFileSize(fastDFSFile.getContent().length);
sysFile.setFilePath(filePath);
sysFile.setFileOriginalName(fastDFSFile.getName());
sysFile.setFileTypeId(dictionary.getId());
sysFile.setFileTypeName(dictionary.getName());
sysFile.setDownloadNum(0);
result.add(sysFileService.insertSysFile(sysFile));
ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysLogSystem.class, colName);
result.add(sysFileService.uploadFile(excelFile));
pager.setCurrentPage(pager.getCurrentPage() + 1);
} while (pager.getCurrentPage() <= pager.getTotalPages());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}catch(ImppBusiException busExcep){
// 将所有excel文件打包
if(isZip){
zipFile = ZipUtil.zipFile(null, excelDir);
result.add(sysFileService.uploadFile(zipFile));
ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} else {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} finally {
// 清理临时文件文件
if (zipFile != null) {
FileUtil.deletefile(zipFile.getPath());
}
FileUtil.deletefile(excelDir.getPath());
}
}
}

@ -5,9 +5,12 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysOrderNoRuleService;
import cn.estsh.i3plus.core.apiservice.util.ExcelUtil;
import cn.estsh.i3plus.core.apiservice.util.FileUtil;
import cn.estsh.i3plus.core.apiservice.util.ZipUtil;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -16,6 +19,8 @@ import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
@ -36,6 +41,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -214,48 +220,68 @@ public class SysOrderNoRuleController extends CoreBaseController {
}
@GetMapping(value = "/export")
@ApiOperation(value = "导出单号规则")
public ResultBean exportSysOrderNoRule(SysOrderNoRule sysOrderNoRule, String[] colName){
@ApiOperation(value = "导出操作日志")
public ResultBean exportSysOrderNoRule(SysOrderNoRule sysOrderNoRule, String[] colName, int pageSize, boolean isZip) {
ListPager listPager;
List result = new ArrayList();
File zipFile = null;
File excelDir = null;
File excelFile;
try {
Pager pager = new Pager();
pager.setCurrentPage(1);
pager.setPageSize(Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue()));
ListPager listPager;
String[] fileAbsolutePath;
List result = new ArrayList();
// 判断是否超过excel最大导出数量设定值
int maxPageSize = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue());
if (pageSize == 0 || pageSize >= maxPageSize) {
pager.setPageSize(maxPageSize);
} else {
pager.setPageSize(pageSize);
}
// 数据校验
if(colName==null || colName.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("导出列不能为空")
.build();
}
excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime());
excelDir.mkdir();
do {
listPager = sysOrderNoRuleService.querySysOrderNoRuleByPager(sysOrderNoRule, pager);
pager = listPager.getObjectPager();
// 上传至文件服务器
FastDFSFile fastDFSFile = new FastDFSFile(SysOrderNoRule.class.getSimpleName() + pager.getCurrentPage() + ".xls",
ExcelUtil.exportData(listPager.getObjectList(),SysOrderNoRule.class,colName),"xls");
fileAbsolutePath = dfsClient.upload(fastDFSFile);
// 保证系统文件表中
String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1];
SysDictionary dictionary = sysDictionaryService.getSysDictionaryByParentCodeAndCode(
CommonConstWords.DICTIONARY_FILE_TYPE,fastDFSFile.getExt());
// 将excel导出至临时文件夹并上传
excelFile = new File(excelDir + File.separator + SysOrderNoRule.class.getSimpleName() + pager.getCurrentPage() + ".xls");
excelFile.createNewFile();
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(fileAbsolutePath[0]);
sysFile.setDfsFileName(fileAbsolutePath[1]);
sysFile.setFileSize(fastDFSFile.getContent().length);
sysFile.setFilePath(filePath);
sysFile.setFileOriginalName(fastDFSFile.getName());
sysFile.setFileTypeId(dictionary.getId());
sysFile.setFileTypeName(dictionary.getName());
sysFile.setDownloadNum(0);
result.add(sysFileService.insertSysFile(sysFile));
ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysOrderNoRule.class, colName);
result.add(sysFileService.uploadFile(excelFile));
pager.setCurrentPage(pager.getCurrentPage() + 1);
} while (pager.getCurrentPage() <= pager.getTotalPages());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}catch(ImppBusiException busExcep){
// 将所有excel文件打包
if(isZip){
zipFile = ZipUtil.zipFile(null, excelDir);
result.add(sysFileService.uploadFile(zipFile));
ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} else {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}catch(Exception e){
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} finally {
// 清理临时文件文件
if (zipFile != null) {
FileUtil.deletefile(zipFile.getPath());
}
FileUtil.deletefile(excelDir.getPath());
}
}
@ -264,15 +290,7 @@ public class SysOrderNoRuleController extends CoreBaseController {
public ResultBean importSysOrderNoRule(@RequestParam("file") MultipartFile file){
try {
List<SysOrderNoRule> sysOrderNoRuleList = ExcelUtil.importData(file.getOriginalFilename(),file.getInputStream(),SysOrderNoRule.class);
for (SysOrderNoRule item : sysOrderNoRuleList) {
//校验及初始化数据
validatorSysOrderNoRule(item);
item.setOrderNoRuleStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
item.setSerialNo(CommonEnumUtil.PARENT.DEFAULT.getValue());
sysOrderNoRuleService.insertSysOrderNoRule(item);
}
sysOrderNoRuleService.insertSysOrderNoRuleList(sysOrderNoRuleList);
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -293,7 +311,7 @@ public class SysOrderNoRuleController extends CoreBaseController {
// 保证系统文件表中
String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1];
SysDictionary dictionary = sysDictionaryService.getSysDictionaryByParentCodeAndCode(
CommonConstWords.DICTIONARY_FILE_TYPE,fastDFSFile.getExt());
BaseConstWords.DICTIONARY_FILE_TYPE,fastDFSFile.getExt());
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(fileAbsolutePath[0]);

@ -99,22 +99,6 @@ public class SysPositionController extends CoreBaseController {
}
}
@DeleteMapping(value="/delete/{id}")
@ApiOperation(value="删除岗位",notes="根据岗位id删除信息")
public ResultBean deleteSysPosition(@PathVariable("id") String id){
try {
//条件验证
ValidatorBean.checkNotNull(id,"id为空");
positionService.deleteSysPositionById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode());
}
}
@GetMapping(value="/list")
@ApiOperation(value="查询所有岗位",notes="查询所有岗位")
public ResultBean findSysPositionAll(){
@ -161,6 +145,22 @@ public class SysPositionController extends CoreBaseController {
}
}
@DeleteMapping(value="/delete/{id}")
@ApiOperation(value="删除岗位",notes="根据岗位id删除信息")
public ResultBean deleteSysPosition(@PathVariable("id") String id){
try {
//条件验证
ValidatorBean.checkNotNull(id,"id为空");
positionService.deleteSysPositionById(Long.parseLong(id));
return ResultBean.success("删除成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ResultBean.fail(e).setCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode());
}
}
@DeleteMapping(value = "/batch-delete")
@ApiOperation(value = "根据id批量删除", notes = "根据id批量删除")
public ResultBean deleteSysPositionByIds(String[] ids){
@ -182,5 +182,4 @@ public class SysPositionController extends CoreBaseController {
return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode());
}
}
}

@ -412,6 +412,8 @@ public class SysUserController extends CoreBaseController{
ValidatorBean.checkNotNull(password,"新密码不能为空");
ValidatorBean.checkNotNull(email,"邮件不能为空");
personnelService.checkSysUserPassword(password);
String redisKey = CommonConstWords.SESSION_VERIFICATION_USER_EMAIL + "_" + getSessionUser().getUserId();
Object redisValue = redisCore.getObject(redisKey);
if(redisValue != null){

@ -1,8 +1,9 @@
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.ISysPositionService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserInfoService;
import cn.estsh.i3plus.core.api.iservice.busi.*;
import cn.estsh.i3plus.core.apiservice.util.ExcelUtil;
import cn.estsh.i3plus.core.apiservice.util.FileUtil;
import cn.estsh.i3plus.core.apiservice.util.ZipUtil;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
@ -17,6 +18,7 @@ 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.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
@ -26,8 +28,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
@ -53,6 +56,12 @@ public class SysUserInfoController extends CoreBaseController{
@Autowired
private ISysPositionService sysPositionService;
@Autowired
private ISysConfigService sysConfigService;
@Autowired
private ISysFileService sysFileService;
@PostMapping(value="/insert")
@ApiOperation(value="添加用户信息",notes="返回内容添加用户信息")
public ResultBean insertSysUserInfo(SysUserInfo userInfo){
@ -297,4 +306,83 @@ public class SysUserInfoController extends CoreBaseController{
LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + "{}",e.getMessage(),e);
}
}
@GetMapping(value = "/export")
@ApiOperation(value = "导出用户信息")
public ResultBean exportSysUserInfo(SysUserInfo sysUserInfo, String[] colName, int pageSize,boolean isZip) {
ListPager listPager;
List result = new ArrayList();
File zipFile = null;
File excelDir = null;
File excelFile;
try {
Pager pager = new Pager();
pager.setCurrentPage(1);
// 判断是否超过excel最大导出数量设定值
int maxPageSize = Integer.parseInt(sysConfigService.getSysConfigByCode(PlatformConstWords.EXCEL_EXPORT_MAX_ROW).getConfigValue());
if (pageSize == 0 || pageSize >= maxPageSize) {
pager.setPageSize(maxPageSize);
} else {
pager.setPageSize(pageSize);
}
// 数据校验
if(colName==null || colName.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("导出列不能为空")
.build();
}
excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime());
excelDir.mkdir();
do {
listPager = sysUserInfoService.querySysUserInfo(sysUserInfo, pager);
pager = listPager.getObjectPager();
// 将excel导出至临时文件夹并上传
excelFile = new File(excelDir + File.separator + SysUserInfo.class.getSimpleName() + pager.getCurrentPage() + ".xls");
excelFile.createNewFile();
ExcelUtil.exportData(excelFile, listPager.getObjectList(), SysUserInfo.class, colName);
result.add(sysFileService.uploadFile(excelFile));
pager.setCurrentPage(pager.getCurrentPage() + 1);
} while (pager.getCurrentPage() <= pager.getTotalPages());
// 将所有excel文件打包
if(isZip){
zipFile = ZipUtil.zipFile(null, excelDir);
result.add(sysFileService.uploadFile(zipFile));
ExcelUtil.sendStationLetter(result,getSessionUser().getUser().getId());
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
} else {
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result);
}
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
} finally {
// 清理临时文件文件
if (zipFile != null) {
FileUtil.deletefile(zipFile.getPath());
}
FileUtil.deletefile(excelDir.getPath());
}
}
@GetMapping("/get-col")
@ApiOperation(value = "获取用户可导出字段")
public ResultBean getSysUserInfoColName(){
try {
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(ExcelUtil.getColName(SysUserInfo.class));
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -9,7 +9,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.rabbitmq.client.Channel;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -58,7 +58,8 @@ public class MessageLetterQueueReceiver {
SysRefUserMessage refUserMessage;
SysUser sysUser;
List userMessage;
List<SysRefUserMessage> userMessage;
ObjectMapper mapper = new ObjectMapper();
for (int i = 0; i < messageReceiver.length; i++) {
sysUser = sysUserService.getSysUserById(Long.parseLong(messageReceiver[i]));
@ -73,13 +74,14 @@ public class MessageLetterQueueReceiver {
refUserMessage.setReceiverNameRdd(sysUser.getUserName());
refUserMessage.setMessageStatus(ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue());
refUserMessage.setReceiverTime(TimeTool.getNowTime(true));
refUserMessage.setIsUrgent(msg.getIsUrgent());
sysMessageService.insertSysRefUserMessage(refUserMessage);
userMessage = sysMessageService.findSysRefUserMessageByUserIdAndStatus(sysUser.getUserInfoId(),
userMessage = sysMessageService.findSysRefUserMessageByUserIdAndStatus(sysUser.getId(),
ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue());
MessageWebSocket.sendMessage(sysUser.getUserInfoId(),
JSON.toJSONString(userMessage)
mapper.writeValueAsString(userMessage)
);
}

@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
* @Modify:
**/
@Service
public class DataSimpleServiceImpl implements IDataSimpleService {
public class DataSimpleService implements IDataSimpleService {
private Logger LOGGER = LoggerFactory.getLogger(this.getClass());
/*@Autowired

@ -0,0 +1,148 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysLocaleLanguageRepository;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description :
* @Reference :
* @Author : Adair Peng
* @CreateDate : 2019-01-11 12:34
* @Modify:
**/
@Service
public class SystemInitService implements ISystemInitService {
private static final Logger LOGGER = LoggerFactory.getLogger(SystemLoginService.class);
@Autowired
private SysConfigRepository configRDao;
@Autowired
private SysDictionaryRepository dictionaryRDao;
@Autowired
private SysLocaleLanguageRepository localeLanguageRDao;
@Resource(name="redisRes")
private ImppRedis redisRes;
private int type = ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue();
@Override
@ApiOperation(value = "初始化加载所有数据",notes = "初始化加载所有数据")
public void loadAll() {
type = ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue();
loadSysConfig();
loadSysDictionary();
loadSysLocaleLanguage();
}
@Override
@ApiOperation(value = "加载系统配置",notes = "加载系统配置")
public void loadSysConfig() {
String redisKey = null;
List<SysConfig> list = configRDao.findAll();
for (SysConfig config : list) {
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + config.getConfigCode();
//存放于缓存
putDataToCache(redisKey, config,SysConfig.class);
}
LOGGER.info("加载系统配置数量:【{}】",list.size());
}
@Override
@ApiOperation(value = "加载字典数据",notes = "加载字典数据")
public void loadSysDictionary() {
try {
List<SysDictionary> list = dictionaryRDao.findAll();
if(list != null && list.size() > 0){
Map<String, List<SysDictionary>> parentCodeMap = list.stream().collect(Collectors.groupingBy(SysDictionary::getParentCodeRdd));
Map<Long, List<SysDictionary>> parentIdMap = list.stream().collect(Collectors.groupingBy(SysDictionary::getParentId));
for (String key : parentCodeMap.keySet()) {
//存放于缓存
putDataToCache(CommonConstWords.REDIS_PREFIX_CACHE_DICTIONARY + "_" + key,
parentCodeMap.get(key),List.class);
}
for (long key : parentIdMap.keySet()) {
putDataToCache(CommonConstWords.REDIS_PREFIX_CACHE_DICTIONARY + "_" + key,
parentIdMap.get(key),List.class);
}
}
}catch (Exception e){
e.printStackTrace();
}
}
@Override
@ApiOperation(value = "加载语言数据",notes = "加载语言数据")
public void loadSysLocaleLanguage() {
// Redis 缓存
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
// TODO 汪云昊 实现
}
}
/**
*
* @param key
* @param data
* @param dataType
*/
private void putDataToCache(String key,Object data,Class dataType){
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
LOGGER.info(" Put Cache Redis Key:{},value:{},dataType:{}",key,data,dataType);
// Redis 缓存
if(dataType == List.class){
redisRes.putList(key,data,-1);
}else if(dataType == SysConfig.class){
redisRes.putObject(key,data,-1);
}else{
LOGGER.error("不支持树形{}存放缓存!",dataType);
}
}
}
/**
*
* @param key
* @param dataType
* @return
*/
@Override
@ApiOperation(value = "获取缓存中的数据",notes = "获取缓存中的数据")
public Object getDataFromCache(String key,Class dataType){
if(type == ImppEnumUtil.SYS_CACHE_TYPE.REDIS.getValue()){
// Redis 缓存
if(dataType == List.class){
return redisRes.getList(key,0,-1);
}else if(dataType == SysConfig.class){
return redisRes.getObject(key);
}else{
LOGGER.error("不支持树形{}存放缓存!",dataType);
}
}
return null;
}
}

@ -1,12 +1,16 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.core.apiservice.util.HqlModelPack;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
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.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.platform.UserDetailModel;
@ -84,6 +88,12 @@ public class PersonnelServiceService implements IPersonnelService {
@Resource(name="redisCore")
protected ImppRedis redisCore;
@Resource(name="redisRes")
private ImppRedis redisRes;
@Autowired
private ISystemInitService systemInitService;
@Override
public SysUser saveSysUser(SysUser user) {
LOGGER.debug("平台账号 SysUser user:{}", user);
@ -147,6 +157,16 @@ public class PersonnelServiceService implements IPersonnelService {
}
@Override
@ApiOperation(value = "查询账号信息")
public ListPager<SysUser> querySysUserPagerByUserDetailModelOrIds(UserDetailModel model,Pager pager, List<Long> ids) {
LOGGER.debug("平台用户 SysUser model:{} ids:{}", model, ids);
String modeWhere = HqlModelPack.packHqlSysUserByModelOrIds(model, ids);
pager = PagerHelper.getPager(pager, userRDao.findByHqlWhereCount(modeWhere));
return new ListPager(userRDao.findByHqlWherePage(modeWhere + model.orderBy(), pager), pager);
}
@Override
public SysUserInfo getSysUserInfoById(Long id) {
return userInfoRDao.getById(id);
}
@ -388,19 +408,52 @@ public class PersonnelServiceService implements IPersonnelService {
.setErrorSolution("请先删除子集信息在操作")
.build();
}
long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
if (refPositionCount >= 1) {
// long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
// if (refPositionCount >= 1) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId);
if (refUserInfoCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在用户关系引用信息无法删除!")
.setErrorSolution("请先删除用户关系信息再操作")
.setErrorDetail("存在用户信息无法删除!")
.setErrorSolution("请先删除用户引用信息再操作")
.build();
}
}
}
long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId);
if (refUserInfoCount >= 1) {
@Override
public void checkSysDepartmentRef(Long departmentId) {
LOGGER.debug("平台部门 SysDepartment departmentId:{}", departmentId);
if(departmentId != null){
long departmentCount = departmentRDao.findByPropertyCount("parentId",departmentId);
if (departmentCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关部门信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}
// long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
// if (refPositionCount >= 1) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long userInfoCount = userInfoRDao.findByPropertyCount("departmentId",departmentId);
if (userInfoCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
@ -408,101 +461,146 @@ public class PersonnelServiceService implements IPersonnelService {
.setErrorSolution("请先删除用户引用信息再操作")
.build();
}
long userCount = userRDao.findByPropertyCount("departmentId",departmentId);
if (userCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在账号信息无法删除!")
.setErrorSolution("请先删除账号引用信息再操作")
.build();
}
}
}
/************************************ 用户唯一检查 ****************************************/
@Override
public void checkSysOrganizeRef(Long organizeId) {
LOGGER.debug("平台部门 SysOrganize organizeId:{}", organizeId);
/**
*
* @param userLoginName
* @param userId
* @return
*/
private boolean checkSysUserLoginName(String userLoginName, long userId) {
int count = 0;
if(userId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(userLoginName,"userLoginName",sw);
HqlPack.getNumNOEqualPack(userId,"id",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
if(organizeId != null){
long organizeCount = organizeRDao.findByPropertyCount("parentId",organizeId);
if (organizeCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关组织信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}
}else{
count = userRDao.findByPropertyCount(
new String[]{"userLoginName","isValid"},
new Object[]{userLoginName,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
// long refPositionCount = refUserPositionRDao.findByPropertyCount("positionId",positionId);
// if (refPositionCount >= 1) {
// throw ImppExceptionBuilder.newInstance()
// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
// .setErrorDetail("存在用户关系引用信息无法删除!")
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long departmentCount = departmentRDao.findByPropertyCount("organizeId",organizeId);
if (departmentCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在部门信息无法删除!")
.setErrorSolution("请先删除部门引用信息再操作")
.build();
}
/**
*
* @param email
* @param infoId
* @return
*/
private boolean checkSysUserEmail(String email, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(email,"userEmail",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
long userInfoCount = userInfoRDao.findByPropertyCount("organizeId",organizeId);
if (userInfoCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在用户信息无法删除!")
.setErrorSolution("请先删除用户引用信息再操作")
.build();
}
}else{
count = userRDao.findByPropertyCount(
new String[]{"userEmail","isValid"},
new Object[]{email,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
long userCount = userRDao.findByPropertyCount("organizeId",organizeId);
if (userCount >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在账号信息无法删除!")
.setErrorSolution("请先删除账号引用信息再操作")
.build();
}
}
return count <= 0 ;
}
/**
*
* @param phone
* @param infoId
* @return
*/
private boolean checkSysUserPhone(String phone, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(phone,"userPhone",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
@Override
public void checkSysUserPassword(String password) {
LOGGER.debug("平台用户 SysUser password:{}", password);
}else{
count = userRDao.findByPropertyCount(
new String[]{"userPhone","isValid"},
new Object[]{phone,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
if(StringUtils.isNotBlank(password)){
// 密码长度校验
String redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_LENGTH;
SysConfig config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
/**
*
* @param empNo
* @param infoId
* @return
*/
private boolean checkSysUserEmpNo(String empNo, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(empNo,"userEmpNo",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
if(!checkPasswordLength(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码长度不足")
.setErrorSolution("请重新输入")
.build();
}
}else{
count = userRDao.findByPropertyCount(
new String[]{"userEmpNo","isValid"},
new Object[]{empNo,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
// 密码小写校验
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_LOWER_ENGLISH;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordLowerEnglish(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含小写英文")
.setErrorSolution("请重新输入")
.build();
}
// 密码大写校验
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_UPPERCASE_ENGLISH;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordUpperEnglish(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含大写英文")
.setErrorSolution("请重新输入")
.build();
}
// 密码特殊字符
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_SPECIAL_CHAR;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordSpecialChar(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含特殊字符")
.setErrorSolution("请重新输入")
.build();
}
// 密码特殊字符
redisKey = CommonConstWords.REDIS_PREFIX_CACHE_CONFIG + "_" + CommonConstWords.CONFIG_PWD_EXIST_NUMBER;
config = (SysConfig) systemInitService.getDataFromCache(redisKey, SysConfig.class);
if(!checkPasswordNumber(config,password)){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("密码必须包含数字")
.setErrorSolution("请重新输入")
.build();
}
}
return count <= 0 ;
}
@Override
@ -958,4 +1056,211 @@ public class PersonnelServiceService implements IPersonnelService {
}
}
}
/*********************************** 检查方法封装 ***********************************/
/**
*
* @return
*/
private boolean checkPasswordLength(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.NUMBER.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码长度)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
int length = Integer.parseInt(config.getConfigValue());
return password.trim().length() >= length;
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordLowerEnglish(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码英文小写配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isContainLowerCase(password);
}
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordUpperEnglish(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码英文大写配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isContainUpperCase(password);
}
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordNumber(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码数字配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isContainNumber(password);
}
}
}
return true;
}
/**
*
* @param password
* @return
*/
private boolean checkPasswordSpecialChar(SysConfig config,String password){
if(config != null){
if(config.getConfigValue() == null || config.getConfigType().equals(ImppEnumUtil.SYS_VALUE_TYPE.SWITCH.getValue())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.NOT_CONFIG_EXCEPTION.getCode())
.setErrorDetail("系统配置格式错误(密码特殊字符配置)")
.setErrorSolution("请先配置系统参数")
.build();
}else {
if(config.getConfigValue().equals(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValueStr())){
return StringTool.isConSpeCharacters(password);
}
}
}
return true;
}
/**
*
* @param userLoginName
* @param userId
* @return
*/
private boolean checkSysUserLoginName(String userLoginName, long userId) {
int count = 0;
if(userId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(userLoginName,"userLoginName",sw);
HqlPack.getNumNOEqualPack(userId,"id",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userLoginName","isValid"},
new Object[]{userLoginName,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
/**
*
* @param email
* @param infoId
* @return
*/
private boolean checkSysUserEmail(String email, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(email,"userEmail",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userEmail","isValid"},
new Object[]{email,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
/**
*
* @param phone
* @param infoId
* @return
*/
private boolean checkSysUserPhone(String phone, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(phone,"userPhone",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userPhone","isValid"},
new Object[]{phone,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
/**
*
* @param empNo
* @param infoId
* @return
*/
private boolean checkSysUserEmpNo(String empNo, long infoId) {
int count;
if(infoId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(empNo,"userEmpNo",sw);
HqlPack.getNumNOEqualPack(infoId,"userInfoId",sw);
count = userRDao.findByHqlWhereCount(sw.toString());
}else{
count = userRDao.findByPropertyCount(
new String[]{"userEmpNo","isValid"},
new Object[]{empNo,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
}

@ -105,4 +105,10 @@ public class SysConfigService implements ISysConfigService {
SysConfigRDao.updateByProperties("configCode",value,"configValue",value);
}
@Override
@ApiOperation(value = "根据系统参数组来查找系统参数")
public List findSysConfigByGroup(Integer group) {
return SysConfigRDao.findByProperty("configGroup",group);
}
}

@ -95,9 +95,9 @@ public class SysDepartmentService implements ISysDepartmentService {
.setErrorSolution("请先删除子集信息在操作")
.build();
}
// 删除部门
LOGGER.info("部门信息 DEPARTMENT :{}", id);
// 检查部门引用管理
personnelService.checkSysDepartmentRef(id);
// 删除数据
departmentRDao.deleteById(id);
}
@ -114,6 +114,10 @@ public class SysDepartmentService implements ISysDepartmentService {
.setErrorSolution("请先删除子集信息在操作")
.build();
}else {
for (Long id : ids) {
personnelService.checkSysDepartmentRef(id);
}
departmentRDao.deleteByIds(ids);
}
}

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -153,7 +154,7 @@ public class SysDictionaryService implements ISysDictionaryService {
@Override
@ApiOperation(value = "检出文件名称是否符合系统规范")
public boolean checkFileName(String fileName) {
List<SysDictionary> list = findSysDictionaryByParentCode(CommonConstWords.DICTIONARY_FILE_TYPE);
List<SysDictionary> list = findSysDictionaryByParentCode(BaseConstWords.DICTIONARY_FILE_TYPE);
if(list != null && list.size()> 0){
String suffix = StringTool.getStringFileSuffix(fileName,true);
@ -170,12 +171,8 @@ public class SysDictionaryService implements ISysDictionaryService {
@Override
@ApiOperation(value = "根据父节点 以及当前节点CODE 获取字典信息")
public SysDictionary getSysDictionaryByParentCodeAndCode(String parentCode, String code) {
List<SysDictionary> list = sysDictionaryRDao.findByProperty(new String[]{"parentCodeRdd","dictionaryCode"},
return sysDictionaryRDao.getByProperty(new String[]{"parentCodeRdd","dictionaryCode"},
new Object[]{parentCode,code});
if(list != null && list.size() > 0){
return list.get(0);
}
return null;
}
@Override
@ -188,4 +185,18 @@ public class SysDictionaryService implements ISysDictionaryService {
sysDictionaryRDao.updateByProperties("id",id,
"isDefault",CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
}
@Override
@ApiOperation(value = "根据父节点 以及当前节点值 获取字典信息")
public SysDictionary getSysDictionaryByParentCodeAndValue(String parentCode, String value) {
return sysDictionaryRDao.getByProperty(new String[]{"parentCodeRdd","dictionaryValue"},
new Object[]{parentCode,value});
}
@Override
@ApiOperation(value = "根据父节点 以及当前节点名称 获取字典信息")
public SysDictionary getSysDictionaryByParentCodeAndName(String parentCode, String name) {
return sysDictionaryRDao.getByProperty(new String[]{"parentCodeRdd","name"},
new Object[]{parentCode,name});
}
}

@ -1,18 +1,28 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.core.apiservice.util.FileUtil;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
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.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysFileRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
/**
@ -27,7 +37,13 @@ public class SysFileServiceImpl implements ISysFileService {
public static final Logger LOGGER = LoggerFactory.getLogger(SysFileServiceImpl.class);
@Autowired
public SysFileRepository sysFileRDao;
private SysFileRepository sysFileRDao;
@Autowired
private SysDictionaryRepository sysDictionaryRDao;
@Autowired
private FastDFSClient dfsClient;
@Override
@ApiOperation(value = "新增资源信息")
@ -83,4 +99,37 @@ public class SysFileServiceImpl implements ISysFileService {
LOGGER.info("文件资源 SYS_FILE ids:{}", ids.toString());
sysFileRDao.deleteByIds(ids);
}
@Override
@ApiOperation(value = "上传文件资源",notes = "上传文件资源")
public SysFile uploadFile(Object file) throws Exception{
FastDFSFile fastDFSFile;
// 判断参数类型
if(file instanceof File){
fastDFSFile = new FastDFSFile(((File)file).getName(), FileUtil.file2Byte(((File)file).getPath()),
StringTool.getStringFileSuffix(((File)file).getName(),true));
}else{
fastDFSFile = dfsClient.saveFile((MultipartFile) file);
}
String[] fileAbsolutePath = dfsClient.upload(fastDFSFile);
// 保存到系统文件表中
String filePath = dfsClient.getHostUi() + "/" + fileAbsolutePath[0] + "/" + fileAbsolutePath[1];
SysDictionary dictionary = sysDictionaryRDao.getByProperty(new String[]{"parentCodeRdd","dictionaryValue"},
new Object[]{BaseConstWords.DICTIONARY_FILE_TYPE, fastDFSFile.getExt()});
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(fileAbsolutePath[0]);
sysFile.setDfsFileName(fileAbsolutePath[1]);
sysFile.setFileSize(fastDFSFile.getContent().length);
sysFile.setFilePath(filePath);
sysFile.setFileOriginalName(fastDFSFile.getName());
sysFile.setFileTypeId(dictionary.getId());
sysFile.setFileTypeName(dictionary.getName());
sysFile.setDownloadNum(0);
sysFile.setCreateDatetime(TimeTool.getNowTime(true));
return insertSysFile(sysFile);
}
}

@ -102,6 +102,9 @@ public class SysOrganizeService implements ISysOrganizeService {
.setErrorSolution("请先删除子集信息在操作")
.build();
}
// 检查引用关系
personnelService.checkSysOrganizeRef(id);
// 删除数据
organizeRDao.deleteById(id);
}
@ -117,6 +120,10 @@ public class SysOrganizeService implements ISysOrganizeService {
.setErrorSolution("请先删除子集信息在操作")
.build();
}else {
// 检查引用关系
for (Long id : ids) {
personnelService.checkSysOrganizeRef(id);
}
organizeRDao.deleteByIds(ids);
}
}

@ -1,28 +1,38 @@
package cn.estsh.i3plus.core.apiservice.util;
import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.platform.common.tool.ReflexTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysTool;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.*;
import javax.persistence.EntityManager;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@ -39,9 +49,6 @@ import java.util.*;
public class ExcelUtil {
public static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtil.class);
private ExcelUtil() throws IOException {
}
private static ISysConfigService sysConfigService;
@Autowired
@ -49,6 +56,27 @@ public class ExcelUtil {
ExcelUtil.sysConfigService = sysConfigService;
}
private static EntityManager entityManager;
@Autowired
public void setEntityManager(EntityManager entityManager) {
ExcelUtil.entityManager = entityManager;
}
private static ISysDictionaryService sysDictionaryService;
@Autowired
public void setSysDictionaryService(ISysDictionaryService sysDictionaryService){
ExcelUtil.sysDictionaryService = sysDictionaryService;
}
private static RabbitTemplate rabbitTemplate;
@Autowired
public void setRabbitTemplate(RabbitTemplate rabbitTemplate) {
this.rabbitTemplate = rabbitTemplate;
}
/**
*
*
@ -56,15 +84,11 @@ public class ExcelUtil {
* @param exportClass
* @param exportCol
*/
public static byte[] exportData(List data, Class exportClass, String[] exportCol) {
File excelFile = null;
public static File exportData(File excelFile,List data, Class exportClass, String[] exportCol) {
FileOutputStream fos = null;
//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook workbook = new HSSFWorkbook();
try {
//创建临时文件
excelFile = File.createTempFile(exportClass.getSimpleName() + new Date().getTime(), ".xls");
LOGGER.info("临时文件所在的本地路径:" + excelFile.getCanonicalPath());
fos = new FileOutputStream(excelFile);
//建立新的sheet对象excel的表单
@ -74,18 +98,26 @@ public class ExcelUtil {
HSSFRow tableHeader = sheet.createRow(0);
// 类数据
Field[] declaredFields = exportClass.getDeclaredFields();
Field[] fields = new Field[exportCol.length];
Field[] allFields = ReflexTool.getAllField(exportClass.getName());
String colName;
// 获取字段中文名 优先使用 OutputColumn.name
for (int i = 0; i < exportCol.length; i++) {
for (Field field : declaredFields) {
if (field.getName().equals(exportCol[i])) {
fields[i] = field;
for (int j = 0 ; j < allFields.length ; j++){
if(exportCol[i].equals(allFields[j].getName())){
fields[i] = allFields[j];
if (field.isAnnotationPresent(ApiParam.class)) {
ApiParam fieldAnno = field.getAnnotation(ApiParam.class);
tableHeader.createCell(i, CellType.STRING).setCellValue(fieldAnno.value());
colName = null;
if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) {
colName = fields[i].getAnnotation(AnnoOutputColumn.class).name();
}
if (fields[i].isAnnotationPresent(ApiParam.class) && StringUtils.isBlank(colName)) {
colName = fields[i].getAnnotation(ApiParam.class).value();
}
tableHeader.createCell(i, CellType.STRING).setCellValue(colName);
}
}
}
@ -93,26 +125,48 @@ public class ExcelUtil {
//加载数据至excel对象
HSSFRow hssfRow;
Method method;
AnnoOutputColumn outputColumn;
Object cellValue;
for (int i = 0; i < data.size(); i++) {
hssfRow = sheet.createRow(i + 1);
for (int j = 0; j < fields.length; j++) {
method = exportClass.getDeclaredMethod("get" + StringTool.toUpperCaseFirstOne(fields[j].getName()));
hssfRow.createCell(j, CellType.STRING).setCellValue(
String.valueOf(method.invoke(data.get(i)))
);
fields[j].setAccessible(true);
cellValue = fields[j].get(data.get(i));
// 判断是否存在引用关系
if (fields[j].isAnnotationPresent(AnnoOutputColumn.class)) {
outputColumn = fields[j].getAnnotation(AnnoOutputColumn.class);
// 判断是否为枚举字段
if (outputColumn.refClass().isEnum()) {
method = outputColumn.refClass().getDeclaredMethod(
outputColumn.refForeignKey() + "Of" + StringTool.toUpperCaseFirstOne(outputColumn.value()),
outputColumn.refClass().getDeclaredMethod("get"
+ StringTool.toUpperCaseFirstOne(outputColumn.refForeignKey())).getReturnType());
cellValue = method.invoke(data.get(i), cellValue);
}else if(outputColumn.refClass().equals(SysDictionary.class) && cellValue != null){
cellValue = sysDictionaryService.getSysDictionaryByParentCodeAndValue(outputColumn.refForeignKey(), String.valueOf(cellValue)).getName();
} else if(!outputColumn.refClass().equals(Object.class) && !outputColumn.refClass().equals(SysDictionary.class)){
cellValue = selectByProperty(outputColumn.refClass(), outputColumn.value(), outputColumn.refForeignKey(), cellValue);
}
}
// excel 文本框最大长度
if(String.valueOf(cellValue).length() > 30000){
hssfRow.createCell(j, CellType.STRING).setCellValue(String.valueOf(cellValue).substring(0,30000));
}else{
hssfRow.createCell(j, CellType.STRING).setCellValue(String.valueOf(cellValue));
}
}
}
workbook.write(fos);
fos.flush();
return file2Byte(excelFile);
} catch (NoSuchMethodException e) {
LOGGER.error("属性get方法不存在", e);
} catch (IllegalAccessException e) {
LOGGER.error("Excel 导出异常!", e);
} catch (InvocationTargetException e) {
LOGGER.error("Excel 导出异常!", e);
} catch (IOException e) {
return excelFile;
} catch (Exception e) {
e.printStackTrace();
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode())
@ -121,13 +175,11 @@ public class ExcelUtil {
} finally {
try {
workbook.close();
fos.close();
excelFile.deleteOnExit();
fos.close();;
} catch (IOException e) {
LOGGER.error("IOException!", e);
}
}
return null;
}
/**
@ -172,11 +224,12 @@ public class ExcelUtil {
// excel列名与字段名映射
Map<String, Field> colName = new HashMap<>();
ApiParam fieldAnno;
for (Field field : importClass.getDeclaredFields()) {
if (field.isAnnotationPresent(ApiParam.class)) {
fieldAnno = field.getAnnotation(ApiParam.class);
colName.put(fieldAnno.value(), field);
for (Field field : ReflexTool.getAllField(importClass.getName())) {
if (field.isAnnotationPresent(AnnoOutputColumn.class)
&& !StringUtils.isBlank(field.getAnnotation(AnnoOutputColumn.class).name())) {
colName.put(field.getAnnotation(AnnoOutputColumn.class).name(), field);
} else if (field.isAnnotationPresent(ApiParam.class)) {
colName.put(field.getAnnotation(ApiParam.class).value(), field);
}
}
@ -191,61 +244,42 @@ public class ExcelUtil {
Row row;
Object obj;
Object cellValue = null;
AnnoOutputColumn inputColumn;
Method method;
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
row = sheet.getRow(i);
obj = importClass.newInstance();
for (int j = 0; j < fields.length; j++) {
row.getCell(j).setCellType(CellType.STRING);
if("".equals(row.getCell(j).getStringCellValue())){
cellValue = null;
}else if (fields[j].getType() == String.class) {
// 判断是否存在引用关系
if (fields[j].isAnnotationPresent(AnnoOutputColumn.class)) {
inputColumn = fields[j].getAnnotation(AnnoOutputColumn.class);
cellValue = row.getCell(j).getStringCellValue();
} else if (fields[j].getType() == Integer.class) {
cellValue = Integer.parseInt(row.getCell(j).getStringCellValue());
} else if (fields[j].getType() == Long.class) {
cellValue = Long.parseLong(row.getCell(j).getStringCellValue());
// 判断是否为枚举字段
if (inputColumn.refClass().isEnum()) {
method = inputColumn.refClass().getDeclaredMethod(
inputColumn.value() + "Of" + StringTool.toUpperCaseFirstOne(inputColumn.refForeignKey()),
inputColumn.refClass().getDeclaredMethod("get"
+ StringTool.toUpperCaseFirstOne(inputColumn.value())).getReturnType());
cellValue = method.invoke(null,cellValue);
}else if(inputColumn.refClass().equals(SysDictionary.class) && cellValue != null){
cellValue = sysDictionaryService.getSysDictionaryByParentCodeAndName(inputColumn.refForeignKey(), String.valueOf(cellValue)).getName();
} else if(!inputColumn.refClass().equals(Object.class) && !inputColumn.refClass().equals(SysDictionary.class)){
cellValue = selectByProperty(inputColumn.refClass(), inputColumn.refForeignKey(), inputColumn.value(), cellValue);
}
}else{
cellValue = getExcelCell(row.getCell(j),fields[j].getType());
}
importClass.getDeclaredMethod("set" + StringTool.toUpperCaseFirstOne(fields[j].getName()), fields[j].getType())
.invoke(obj, cellValue);
fields[j].setAccessible(true);
fields[j].set(obj,cellValue);
}
dataList.add(obj);
}
} catch (IOException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION.getCode())
.setErrorDetail("IO输入输出异常")
.build();
} catch (IllegalAccessException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode())
.setErrorDetail("无法访问导入类")
.setErrorSolution("请检查导入类访问修饰符")
.build();
} catch (InstantiationException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode())
.setErrorDetail("无法实例化导入类")
.setErrorSolution("请检查导入类是拥有无参构造方法")
.build();
} catch (InvocationTargetException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode())
.setErrorDetail("属性set方法实现错误")
.setErrorSolution("请检查属性set方法参数类型是否正确")
.build();
} catch (NoSuchMethodException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.REFLEX_EXCEPTION.getCode())
.setErrorDetail("没有找到属性set方法")
.setErrorSolution("请检查属性set方法是否存在")
.build();
} catch (Exception e){
e.printStackTrace();
}
return dataList;
}
@ -272,27 +306,35 @@ public class ExcelUtil {
// 创建表头
HSSFRow tableHeader = sheet.createRow(0);
HSSFRow tableData = sheet.createRow(1);
// 类数据
Field[] declaredFields = exportClass.getDeclaredFields();
ApiParam fieldAnno;
Field[] fields = ReflexTool.getAllField(exportClass.getName());
int col = 0;
for (int i = 0; i < declaredFields.length; i++) {
if (declaredFields[i].isAnnotationPresent(ApiParam.class)) {
fieldAnno = declaredFields[i].getAnnotation(ApiParam.class);
if (!fieldAnno.hidden()) {
tableHeader.createCell(col, CellType.STRING).setCellValue(fieldAnno.value());
for (int i = 0; i < fields.length; i++) {
if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) {
// 是否隐藏列
if(!fields[i].getAnnotation(AnnoOutputColumn.class).hidden()){
if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) {
tableHeader.createCell(col, CellType.STRING).setCellValue(fields[i].getAnnotation(AnnoOutputColumn.class).name());
}
tableData.createCell(col, CellType.STRING).setCellValue(fieldAnno.example());
// 优先使用 AnnoOutputColumn.name()
if (fields[i].isAnnotationPresent(ApiParam.class) && StringUtils.isBlank(fields[i].getAnnotation(AnnoOutputColumn.class).name())) {
tableHeader.createCell(col, CellType.STRING).setCellValue(fields[i].getAnnotation(ApiParam.class).value());
}
col++;
}
} else {
if (fields[i].isAnnotationPresent(ApiParam.class)) {
tableHeader.createCell(col, CellType.STRING).setCellValue(fields[i].getAnnotation(ApiParam.class).value());
col++;
}
}
}
workbook.write(fos);
return file2Byte(excelFile);
return FileUtil.file2Byte(excelFile.getPath());
} catch (IOException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
@ -312,67 +354,97 @@ public class ExcelUtil {
/**
*
*
* @param pojoClass
* @return
*/
public static Map getColName(Class pojoClass) {
Map colName = new LinkedHashMap();
Field[] field = pojoClass.getDeclaredFields();
ApiParam fieldAnno;
for (int i = 0; i < field.length; i++) {
if (field[i].isAnnotationPresent(ApiParam.class)) {
fieldAnno = field[i].getAnnotation(ApiParam.class);
if (!fieldAnno.hidden()) {
colName.put(field[i].getAnnotation(ApiParam.class).value(), field[i].getName());
Field[] fields = ReflexTool.getAllField(pojoClass.getName());
for (int i = 0; i < fields.length; i++) {
if (fields[i].isAnnotationPresent(ApiParam.class)) {
colName.put(fields[i].getName(),fields[i].getAnnotation(ApiParam.class).value());
}
if (fields[i].isAnnotationPresent(AnnoOutputColumn.class)) {
// 判断是否隐藏
if(fields[i].getAnnotation(AnnoOutputColumn.class).hidden()){
colName.remove(fields[i].getName());
}
// 如果AnnoOutputColumn存在name属性则优先使用
if(!StringUtils.isBlank(fields[i].getAnnotation(AnnoOutputColumn.class).name())){
colName.put(fields[i].getName(),fields[i].getAnnotation(AnnoOutputColumn.class).name());
}
}
}
return colName;
}
public static void main(String[] args) {
List<SysTool> sysTools = new ArrayList<>();
SysTool sysTool = new SysTool();
for (int i = 0; i < 14; i++) {
sysTool.setName("ddd");
sysTools.add(sysTool);
}
String[] colName = new String[]{"name", "toolTypeNameRdd", "toolStatus", "toolIp", "toolPort", "toolConnType", "toolDataType", "toolOperating", "toolDescription"};
try {
FileOutputStream ds = new FileOutputStream("E://testOut.xls");
ds.write(ExcelUtil.exportData(sysTools, SysTool.class, colName));
ds.flush();
ds.close();
// ExcelUtil.importData("testOut.xls", new FileInputStream("E://testOut.xls"), SysTool.class);
// ExcelUtil.importTemplate(new FileOutputStream("E://testOut.xls"), SysTool.class, colName);
/**
*
* @param persistentClass
* @param colName
* @param propertyName
* @param value
* @return
*/
public static Object selectByProperty(Class persistentClass, String colName, String propertyName, Object value) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
String queryString = "select model." + colName + " from " + persistentClass.getSimpleName()
+ " as model where model." + propertyName + "= :" + propertyName;
return entityManager.createQuery(queryString).setParameter(propertyName, value).getSingleResult();
}
} catch (IOException e) {
e.printStackTrace();
/**
* excel
* @param cell
* @param cellClass
* @return
*/
private static Object getExcelCell(Cell cell, Class cellClass) {
if (cell != null) {
cell.setCellType(CellType.STRING);
if ("".equals(cell.getStringCellValue()) || "null".equals(cell.getStringCellValue())) {
return null;
} else if (cellClass == String.class) {
return cell.getStringCellValue();
} else if (cellClass == Integer.class) {
return Integer.parseInt(cell.getStringCellValue());
} else if (cellClass == Long.class) {
return Long.parseLong(cell.getStringCellValue());
} else if (cellClass == Double.class) {
return Long.parseLong(cell.getStringCellValue());
}
}
return null;
}
public static byte[] file2Byte(File file) {
byte[] buffer = null;
try {
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
/**
*
* @param fileList
* @param userId
*/
public static void sendStationLetter(List<SysFile> fileList, Long userId){
StringBuffer letter = new StringBuffer();
letter.append("导出文件列表:");
for (SysFile sysFile:fileList) {
letter.append("<a href='/impp/operate/sys-file/download/"+sysFile.getId() + "'>");
letter.append(sysFile.getFileOriginalName());
letter.append("</a>");
}
return buffer;
// 消息提示
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageSenderNameRdd(CommonEnumUtil.SOFT_TYPE.CORE.getDescription());
sysMessage.setMessageTitle("数据导出");
sysMessage.setMessageContent(letter.toString());
sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue());
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessage.setMessageSendTime(TimeTool.getNowTime(true));
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
sysMessage.setMessageReceiversId(String.valueOf(userId));
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
}
}

@ -0,0 +1,106 @@
package cn.estsh.i3plus.core.apiservice.util;
import java.io.*;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2019-01-11 13:34
* @Modify:
**/
public class FileUtil {
/**
*
*/
public static void deletefile(String delpath) {
try {
File file = new File(delpath);
if (!file.isDirectory()) {
file.delete();
} else if (file.isDirectory()) {
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File delfile = new File(delpath + File.separator + filelist[i]);
if (!delfile.isDirectory()) {
delfile.delete();
} else if (delfile.isDirectory()) {
deletefile(delpath + File.separator + filelist[i]);
}
}
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* File byte[]
*
* @param filePath
* @return
*/
public static byte[] file2Byte(String filePath){
byte[] buffer = null;
try {
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
while ((n = fis.read(b)) != -1) {
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buffer;
}
/**
* byte[] File
* @param buf
* @param filePath
* @param fileName
*/
public static void byte2File(byte[] buf, String filePath, String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
try {
File dir = new File(filePath);
if (!dir.exists() && dir.isDirectory()) {
dir.mkdirs();
}
file = new File(filePath + File.separator + fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(buf);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

@ -27,6 +27,8 @@ public class HqlModelPack {
// And
HqlPack.getNumEqualPack(model.getUserStatus(),"userStatus",result);
HqlPack.getNumEqualPack(model.getUserPhone(),"userPhone",result);
if(idList != null && idList.size() > 0){
HqlPack.getInPack(StringUtils.join(idList, ","), "id", result);
}

@ -0,0 +1,181 @@
package cn.estsh.i3plus.core.apiservice.util;
import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* @Description :
* zip使java.util.zip
* 使ant.jarorg.apache.tools.zip
* @Reference :
* @Author : yunhao
* @CreateDate : 2019-01-11 10:16
* @Modify:
**/
public class ZipUtil {
public static final Logger LOGGER = LoggerFactory.getLogger(ZipUtil.class);
private static byte[] _byte = new byte[1024];
/**
*
*
* @param zip
* @param srcFiles
*/
public static File zipFile(String zip, List<File> srcFiles) {
try {
// zip == null 则创建临时文件
if(StringUtils.isBlank(zip)){
zip = File.createTempFile("zip" + new Date().getTime(), ".zip").getPath();
}
File zipFile = new File(zip);
if (zip.endsWith(".zip") || zip.endsWith(".ZIP")) {
ZipOutputStream _zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
for (File _f : srcFiles) {
handlerFile(zip, _zipOut, _f, "");
}
_zipOut.close();
} else {
LOGGER.error("target file[" + zip + "] is not .zip type file");
}
return zipFile;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
*
*
* @param zip
* @param srcFiles
*/
public static File zipFile(String zip, File srcFiles) {
try {
File zipFile = null;
// zip == null 则创建临时文件
if(StringUtils.isBlank(zip)){
zipFile = new File(System.getProperty("java.io.tmpdir") + File.separator + SysUserInfo.class.getSimpleName()+ ".zip");
zipFile.createNewFile();
zip = zipFile.getPath();
}
if (zip.endsWith(".zip") || zip.endsWith(".ZIP")) {
zipFile = new File(zip);
ZipOutputStream _zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
handlerFile(zip, _zipOut, srcFiles, "");
_zipOut.close();
} else {
LOGGER.error("target file[" + zip + "] is not .zip type file");
}
return zipFile;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* @param zip
* @param zipOut
* @param srcFile
* @param path zip
* @throws IOException
*/
private static void handlerFile(String zip, ZipOutputStream zipOut, File srcFile, String path) throws IOException {
LOGGER.debug(" begin to compression file[" + srcFile.getName() + "]");
if (!"".equals(path) && !path.endsWith(File.separator)) {
path += File.separator;
}
if (!srcFile.getPath().equals(zip)) {
// 判断是否为文件目录如果为文件目录则打包目录下所有文件
if (srcFile.isDirectory()) {
File[] _files = srcFile.listFiles();
if (_files.length == 0) {
zipOut.putNextEntry(new ZipEntry(path + srcFile.getName() + File.separator));
zipOut.closeEntry();
} else {
for (File _f : _files) {
handlerFile(zip, zipOut, _f, path + srcFile.getName());
}
}
} else {
InputStream _in = new FileInputStream(srcFile);
zipOut.putNextEntry(new ZipEntry(path + srcFile.getName()));
int len = 0;
while ((len = _in.read(_byte)) > 0) {
zipOut.write(_byte, 0, len);
}
_in.close();
zipOut.closeEntry();
}
}
}
/**
* ZIPZIPtargetDIR
*
* @param zipPath ZIP
* @param descDir
*/
public static List<File> upzipFile(String zipPath, String descDir) {
return upzipFile(new File(zipPath), descDir);
}
/**
* .zip
*
* @param zipFile
* @param descDir D:\\ /mnt/d/
* @return
*/
@SuppressWarnings("rawtypes")
public static List<File> upzipFile(File zipFile, String descDir) {
List<File> _list = new ArrayList<>();
try {
ZipFile _zipFile = new ZipFile(zipFile);
for (Enumeration entries = _zipFile.getEntries(); entries.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) entries.nextElement();
File _file = new File(descDir + File.separator + entry.getName());
if (entry.isDirectory()) {
_file.mkdirs();
} else {
File _parent = _file.getParentFile();
if (!_parent.exists()) {
_parent.mkdirs();
}
InputStream _in = _zipFile.getInputStream((ZipArchiveEntry) entry);
OutputStream _out = new FileOutputStream(_file);
int len;
while ((len = _in.read(_byte)) > 0) {
_out.write(_byte, 0, len);
}
_in.close();
_out.flush();
_out.close();
_list.add(_file);
}
}
} catch (IOException e) {
}
return _list;
}
}

@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentMap;
* @CreateDate : 2018-11-24 16:57
* @Modify:
**/
@ServerEndpoint(value= PlatformConstWords.BASE_URL + "/message-websocket/{userId}")
@ServerEndpoint(value= PlatformConstWords.WEBSOCKET_URL + "/message-websocket/{userId}")
@Component
public class MessageWebSocket {
@ -84,9 +84,13 @@ public class MessageWebSocket {
public static void sendMessage(Long userId, String message){
try {
MessageWebSocket websocket = webSocketSet.get(userId);
if (websocket != null){
websocket.session.getBasicRemote().sendText(message + "=" + sendCount);
sendCount++;
if(websocket != null) {
if (message.equals("heartBit")) {
websocket.session.getBasicRemote().sendText(message + "=" + sendCount);
sendCount++;
} else {
websocket.session.getBasicRemote().sendText(message);
}
}
} catch (IOException e) {
e.printStackTrace();

@ -63,14 +63,14 @@ eureka.instance.lease-renewal-interval-in-seconds=20
#打开feign的熔断
feign.hystrix.enabled=true
#读取数据时长
ribbon.ReadTimeout=3000
#连接时长
ribbon.ConnectTimeout=3000
#重试
ribbon.maxAutoRetries=2
#读取数据时长
ribbon.ReadTimeout=30000
#连接时长
ribbon.ConnectTimeout=30000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=35000
#集群名
eureka.instance.metadata-map.cluster=impp_cluster

@ -58,14 +58,14 @@ eureka.instance.lease-renewal-interval-in-seconds=20
#打开feign的熔断
feign.hystrix.enabled=true
#读取数据时长
ribbon.ReadTimeout=3000
#连接时长
ribbon.ConnectTimeout=3000
#重试
ribbon.maxAutoRetries=2
#读取数据时长
ribbon.ReadTimeout=30000
#连接时长
ribbon.ConnectTimeout=30000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=35000
#集群名
eureka.instance.metadata-map.cluster=impp_cluster

@ -63,14 +63,14 @@ eureka.instance.lease-renewal-interval-in-seconds=20
#打开feign的熔断
feign.hystrix.enabled=true
#读取数据时长
ribbon.ReadTimeout=3000
#连接时长
ribbon.ConnectTimeout=3000
#重试
ribbon.maxAutoRetries=2
#读取数据时长
ribbon.ReadTimeout=30000
#连接时长
ribbon.ConnectTimeout=30000
#响应超过时长,进行熔断(熔断超时需要大于读取时长及连接时长)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=35000
#集群名
eureka.instance.metadata-map.cluster=impp_cluster

Loading…
Cancel
Save