Merge remote-tracking branch 'remotes/origin/dev' into test

yun-zuoyi
yunhao.wang 7 years ago
commit a6076a0c6a

@ -45,4 +45,7 @@ public interface ISysLocaleLanguageService {
@ApiOperation(value = "根据语言id批量修改语言状态")
void updateSysLocaleLanguageStatusByIds(Long[] ids,Integer status);
@ApiOperation(value = "根据语言状态查询语言信息")
List<SysLocaleLanguage> findSysLocaleLanguageByStatus(Integer status);
}

@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -122,4 +123,7 @@ public interface ISysRoleService {
@ApiOperation(value = "查信角色信息",notes = "查询角色信息(分页/组合)")
ListPager<SysRole> querySysRole(SysRole role, Pager pager);
@ApiOperation(value = "角色唯一检查")
void checkSysRoleOnly(SysRole role);
}

@ -59,10 +59,10 @@ public class WhiteController extends CoreBaseController {
private IPersonnelService personnelService;
@GetMapping(value = "/sys-locale-language/list")
@ApiOperation(value = "查询全部系统语言",notes = "查询全部系统语言")
@ApiOperation(value = "查询可用语言",notes = "查询可用语言")
public ResultBean listSysLocaleLanguage(){
try {
List sysLocaleLanguageList = sysLocaleLanguageService.listSysLocaleLanguage();
List sysLocaleLanguageList = sysLocaleLanguageService.findSysLocaleLanguageByStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(sysLocaleLanguageList);
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);

@ -196,7 +196,7 @@ public class PersonnelController extends CoreBaseController {
refreshSysUserPassword(user);
personnelService.saveSysUser(user);
personnelService.saveSysUserInfo(info);
personnelService.saveSysUserInfo(userInfo);
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {

@ -5,6 +5,7 @@ import cn.estsh.i3plus.platform.common.tool.SerializeTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
@ -51,6 +52,7 @@ public class SysDashboardController extends CoreBaseController {
@Resource(name = "redisCore")
private ImppRedis redisCore;
@AnnoIgnoreLog
@GetMapping("/get-basic")
@ApiOperation(value = "获取基础数据", notes = "获取基础数据,用户,部门,组织等信息")
public ResultBean getBasicInfo() {
@ -78,6 +80,7 @@ public class SysDashboardController extends CoreBaseController {
}
}
@AnnoIgnoreLog
@GetMapping(value = "/get-log")
@ApiOperation(value = "查询日志", notes = "最近操作,异常日志")
public ResultBean getLogInfo() {
@ -105,6 +108,7 @@ public class SysDashboardController extends CoreBaseController {
}
}
@AnnoIgnoreLog
@GetMapping(value = "/get-avg-response-time")
@ApiOperation(value = "获取平均响应时间", notes = "获取平均响应时间")
public ResultBean getAvgResponseTime() {
@ -134,6 +138,7 @@ public class SysDashboardController extends CoreBaseController {
}
}
@AnnoIgnoreLog
@GetMapping(value = "/get-level-log-num")
@ApiOperation(value = "获取各等级日志数量", notes = "获取各等级日志数量")
public ResultBean getLevelLogNum() {
@ -163,6 +168,7 @@ public class SysDashboardController extends CoreBaseController {
}
}
@AnnoIgnoreLog
@GetMapping(value = "/get-server-pressure")
@ApiOperation(value = "获取服务压力情况", notes = "获取服务压力情况")
public ResultBean getServerPressure() {

@ -175,4 +175,21 @@ public class SysEnumController extends CoreBaseController{
return new ResultBean(true, "操作成功",
Arrays.asList(ImppEnumUtil.SYS_CONFIG_GROUP.values()));
}
@GetMapping("/internal-notice-method")
@ApiOperation(value = "内部通知方式", notes = "内部通知方式")
public ResultBean getInternalNoticeMethod(){
List<ImppEnumUtil.MESSAGE_TYPE> list = new ArrayList<>();
list.add(ImppEnumUtil.MESSAGE_TYPE.MAIL);
list.add(ImppEnumUtil.MESSAGE_TYPE.LETTER);
return new ResultBean(true, "操作成功",list);
}
@GetMapping("/external-notice-method")
@ApiOperation(value = "外部通知方式", notes = "外部通知方式")
public ResultBean getExternalNoticeMethod(){
List<ImppEnumUtil.MESSAGE_TYPE> list = new ArrayList<>();
list.add(ImppEnumUtil.MESSAGE_TYPE.MAIL);
return new ResultBean(true, "操作成功",list);
}
}

@ -142,7 +142,7 @@ public class SysLocaleLanguageController extends CoreBaseController {
@ApiOperation(value = "根据id批量删除")
public ResultBean deleteSysLocaleLanguageByIds(String[] idsStr){
try {
if(idsStr.length == 0){
if(idsStr == null || idsStr.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
@ -180,7 +180,7 @@ public class SysLocaleLanguageController extends CoreBaseController {
@ApiOperation(value = "根据批量修改语言状态")
public ResultBean updateSysLocaleLanguageStatusByIds(String[] idsStr,Integer status){
try {
if(idsStr.length == 0){
if(idsStr == null || idsStr.length == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())

@ -281,7 +281,9 @@ public class SysOrderNoRuleController extends CoreBaseController {
if (zipFile != null) {
FileUtil.deletefile(zipFile.getPath());
}
FileUtil.deletefile(excelDir.getPath());
if(excelDir != null){
FileUtil.deletefile(excelDir.getPath());
}
}
}
@ -290,8 +292,13 @@ 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 sysOrderNoRule: sysOrderNoRuleList) {
sysOrderNoRule.setOrderNoRuleStatus(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
sysOrderNoRule.setSerialNo(CommonEnumUtil.PARENT.DEFAULT.getValue());
}
sysOrderNoRuleService.insertSysOrderNoRuleList(sysOrderNoRuleList);
return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
return ResultBean.success("导成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){

@ -51,6 +51,8 @@ public class SysRoleController extends CoreBaseController{
ValidatorBean.beginValid(role)
.notNull("name", role.getName());
sysRoleService.checkSysRoleOnly(role);
//新增初始化
ConvertBean.modelInitialize(role, AuthUtil.getSessionUser());
role.setRoleStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue());
@ -74,6 +76,7 @@ public class SysRoleController extends CoreBaseController{
ValidatorBean.beginValid(role)
.notNull("id", role.getId())
.notNull("name", role.getName());
sysRoleService.checkSysRoleOnly(role);
ConvertBean.modelUpdate(role, AuthUtil.getSessionUser());

@ -114,7 +114,7 @@ public class SysTaskCycleController extends CoreBaseController{
}
sysTaskCycleService.deleteSysTaskCycleById(Long.parseLong(idStr));
return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){

@ -81,6 +81,7 @@ public class SysTaskPlanController extends CoreBaseController{
if(isExecute != null && isExecute){
sysTaskPlanService.executeSysTaskPlan(sysTaskPlan);
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysTaskPlan);
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);

@ -223,6 +223,8 @@ public class SysUserController extends CoreBaseController{
ValidatorBean.checkNotNull(password, "旧密码不能为空");
ValidatorBean.checkNotNull(newPwd, "新密码不能为空");
personnelService.checkSysUserPassword(newPwd);
sysUserService.updateSysUserPassword(sessionUser.getUser().getId(),password,newPwd);
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());

@ -36,6 +36,7 @@ public class ReportDaoImpl implements IReportDao {
}
}
}
entityManager.clear();
return queryObject.getResultList();
}
}

@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -29,6 +30,7 @@ import java.util.List;
* @CreateDate : 2018-11-15 22:35
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.letter}' == 'true'")
@Component
public class MessageLetterQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(MessageLetterQueueReceiver.class);

@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -28,6 +29,7 @@ import java.io.IOException;
* @CreateDate : 2018-11-15 22:15
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.mail}' == 'true'")
@Component
public class MessageMailQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(MessageMailQueueReceiver.class);
@ -40,6 +42,7 @@ public class MessageMailQueueReceiver {
ISysConfigService sysConfigService;
@Autowired
MailUtil mailUtil;
/**
*
* @param msg
@ -54,14 +57,22 @@ public class MessageMailQueueReceiver {
// 系统预警邮件与用户邮件判断
if(PlatformConstWords.CONTACT_MAIL.equals(msg.getMessageReceiversId())){
// 发送邮件
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());
// 发送给系统配置中的紧急联系人
mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue());
//信息已处理
// 次数过于频繁
// mailUtil.send();
} else if(PlatformConstWords.EXTERNAL_MAIL.equals(msg.getMessageReceiversId())){ //判断是否为外部邮件
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());
mailUtil.setTo(StringUtils.split(msg.getMessageReceiversNameRdd(),","));
mailUtil.send();
}else {
} else{
// 收件人信息
String[] messageReceiver = msg.getMessageReceiversId().split(",");
@ -86,7 +97,7 @@ public class MessageMailQueueReceiver {
sysMessageService.insertSysRefUserMessage(refUserMessage);
// 发送邮件
// 设置邮件主题内容及收件人
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());

@ -1,7 +1,11 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import com.rabbitmq.client.Channel;
@ -9,7 +13,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -21,6 +27,7 @@ import java.io.IOException;
* @CreateDate : 2018-12-20 21:56
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.schedule}' == 'true'")
@Component
public class ScheduleQueueReceiver {
@ -29,6 +36,9 @@ public class ScheduleQueueReceiver {
@Autowired
private ISysTaskPlanService sysTaskPlanService;
@Autowired
private RabbitTemplate rabbitTemplate;
/**
*
* @param logTaskTime
@ -44,7 +54,7 @@ public class ScheduleQueueReceiver {
taskPlan.setLastRunDateTime(logTaskTime.getCreateDatetime());
taskPlan.setTaskPlanExecNum(taskPlan.getTaskPlanExecNum() + 1);
taskPlan.setTaskPlanStatus(logTaskTime.getTaskStatus());
//更新任务状态以及最后执行时间
// 更新任务状态以及最后执行时间
sysTaskPlanService.updateSysTaskPlan(taskPlan);
// 添加定时任务日志
@ -53,6 +63,35 @@ public class ScheduleQueueReceiver {
logTaskTime.setTaskCycleExpsRdd(taskPlan.getTaskCycleExpsRdd());
sysTaskPlanService.logInsertSysLogTaskTime(logTaskTime);
// 定时任务失败通知
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == logTaskTime.getTaskStatus()
&& CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == taskPlan.getIsNotice()) {
// 设置通知邮件内容
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageSenderNameRdd("系统管理员");
sysMessage.setMessageTitle("任务计划失败通知");
sysMessage.setMessageContent(
String.format("<p>管理员 您好:</p><div style=\"text-align:center\">任务计划(Name: %s,GroupName: %s执行失败,详细信息请查看定时任务日志(ID: %s).</div>",
taskPlan.getName(),taskPlan.getGroupName(),logTaskTime.getId())
);
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessage.setMessageSendTime(TimeTool.getNowTime(true));
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
// 是否内部成员
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == taskPlan.getIsInternalUser()) {
sysMessage.setMessageReceiversId(PlatformConstWords.EXTERNAL_MAIL);
sysMessage.setMessageReceiversNameRdd(taskPlan.getNoticeChannel());
}
// 发送到对应处理队列
if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == taskPlan.getNoticeMethod().intValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE,sysMessage);
}else{
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
}
}
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {

@ -38,7 +38,9 @@ public class DemoJob extends BaseImppScheduleJob {
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageTitle("定时邮件发送");
sysMessage.setMessageContent("定时邮件内容"+TimeTool.getNowTime(true));
sysMessage.setMessageContent("定时任务name"+context.getJobDetail().getKey().getName()
+"定时任务groupName"+context.getJobDetail().getKey().getGroup()
+"定时邮件内容"+TimeTool.getNowTime(true));
sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue());
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessage.setMessageReceiversId(PlatformConstWords.CONTACT_MAIL);

@ -98,7 +98,8 @@ public class SystemLoginService implements ISystemLoginService {
@Override
@ApiOperation(value = "登录密码错误",notes = "登录密码错误记录错误次数功能")
public Integer doLoginPasswordError(String loginName,String sessionId) {
SysUser user = sysUserRDao.getByProperty("userLoginName",loginName);
SysUser user = sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"},
new Object[]{loginName, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()});
if(user != null){
String redisKey = CommonConstWords.USER_LOGIN_ERROR + "_" + sessionId + "_" + user.getId();
Object redisValue = redisCore.getObject(redisKey);

@ -399,12 +399,12 @@ public class PersonnelServiceService implements IPersonnelService {
LOGGER.debug("平台岗位 SysPosition positionId:{}", positionId);
if(positionId != null){
long positionCount = positionRDao.findByPropertyCount("parentId",positionId);
if (positionCount >= 1) {
List<SysPosition> positionList = positionRDao.findByProperty("parentId", positionId);
if (positionList!= null && positionList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关岗位信息无法删除!")
.setErrorDetail("["+positionList.get(0).getName()+"]存在相关岗位信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}
@ -417,12 +417,12 @@ public class PersonnelServiceService implements IPersonnelService {
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long refUserInfoCount = userInfoRDao.findByPropertyCount("positionId",positionId);
if (refUserInfoCount >= 1) {
List<SysUserInfo> userInfoList = userInfoRDao.findByProperty("positionId", positionId);
if (userInfoList != null && userInfoList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在用户信息无法删除!")
.setErrorDetail("["+userInfoList.get(0).getName()+"]存在用户信息无法删除!")
.setErrorSolution("请先删除用户引用信息再操作")
.build();
}
@ -434,12 +434,12 @@ public class PersonnelServiceService implements IPersonnelService {
LOGGER.debug("平台部门 SysDepartment departmentId:{}", departmentId);
if(departmentId != null){
long departmentCount = departmentRDao.findByPropertyCount("parentId",departmentId);
if (departmentCount >= 1) {
List<SysDepartment> departmentList = departmentRDao.findByProperty("parentId", departmentId);
if (departmentList != null && departmentList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关部门信息无法删除!")
.setErrorDetail("["+departmentList.get(0).getName()+"]存在相关部门信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}
@ -452,22 +452,22 @@ public class PersonnelServiceService implements IPersonnelService {
// .setErrorSolution("请先删除用户关系信息再操作")
// .build();
// }
long userInfoCount = userInfoRDao.findByPropertyCount("departmentId",departmentId);
if (userInfoCount >= 1) {
List<SysUserInfo> userInfoList = userInfoRDao.findByProperty("departmentId", departmentId);
if (userInfoList != null && userInfoList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在用户信息无法删除!")
.setErrorDetail("["+userInfoList.get(0).getName()+"]存在用户信息无法删除!")
.setErrorSolution("请先删除用户引用信息再操作")
.build();
}
long userCount = userRDao.findByPropertyCount("departmentId",departmentId);
if (userCount >= 1) {
List<SysUser> userList = userRDao.findByProperty("departmentId", departmentId);
if (userList != null && userList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在账号信息无法删除!")
.setErrorDetail("["+userList.get(0).getUserLoginName()+"]存在账号信息无法删除!")
.setErrorSolution("请先删除账号引用信息再操作")
.build();
}
@ -479,12 +479,12 @@ public class PersonnelServiceService implements IPersonnelService {
LOGGER.debug("平台部门 SysOrganize organizeId:{}", organizeId);
if(organizeId != null){
long organizeCount = organizeRDao.findByPropertyCount("parentId",organizeId);
if (organizeCount >= 1) {
List<SysOrganize> organizeList = organizeRDao.findByProperty("parentId", organizeId);
if (organizeList != null && organizeList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关组织信息无法删除!")
.setErrorDetail("["+organizeList.get(0).getName()+"]存在相关组织信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}
@ -499,32 +499,32 @@ public class PersonnelServiceService implements IPersonnelService {
// .build();
// }
long departmentCount = departmentRDao.findByPropertyCount("organizeId",organizeId);
if (departmentCount >= 1) {
List<SysDepartment> departmentList = departmentRDao.findByProperty("organizeId", organizeId);
if (departmentList != null && departmentList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在部门信息无法删除!")
.setErrorDetail("["+departmentList.get(0).getName()+"]存在部门信息无法删除!")
.setErrorSolution("请先删除部门引用信息再操作")
.build();
}
long userInfoCount = userInfoRDao.findByPropertyCount("organizeId",organizeId);
if (userInfoCount >= 1) {
List<SysUserInfo> userInfoList = userInfoRDao.findByProperty("organizeId", organizeId);
if (userInfoList != null && userInfoList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在用户信息无法删除!")
.setErrorDetail("["+userInfoList.get(0).getName()+"]存在用户信息无法删除!")
.setErrorSolution("请先删除用户引用信息再操作")
.build();
}
long userCount = userRDao.findByPropertyCount("organizeId",organizeId);
if (userCount >= 1) {
List<SysUser> userList = userRDao.findByProperty("organizeId", organizeId);
if (userList != null && userList.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在账号信息无法删除!")
.setErrorDetail("["+userList.get(0).getUserLoginName()+"]存在账号信息无法删除!")
.setErrorSolution("请先删除账号引用信息再操作")
.build();
}

@ -102,7 +102,7 @@ public class SysConfigService implements ISysConfigService {
@Override
@ApiOperation(value = "根据code修改系统配置")
public void updateSysConfigByCode(String code, String value) {
SysConfigRDao.updateByProperties("configCode",value,"configValue",value);
SysConfigRDao.updateByProperties("configCode",code,"configValue",value);
}
@Override

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDashboardService;
import cn.estsh.i3plus.core.apiservice.dao.ISysLogSystemDao;
import cn.estsh.i3plus.pojo.base.annotation.AnnoIgnoreLog;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
@ -51,18 +52,21 @@ public class SysDashboardService implements ISysDashboardService {
private SysUserRepository sysUserRDao;
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询组织个数")
public long getSysOrganizeCount() {
return sysOrganizeRDao.listCount();
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "获取部门数量")
public long getSysDepartmentCount() {
return sysDepartmentRDao.listCount();
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询用户登录日志",notes = "查询用户登录日志")
public List<SysUser> findSysUserLoginLog(Integer size) {
StringBuffer orderString = new StringBuffer();
@ -72,6 +76,7 @@ public class SysDashboardService implements ISysDashboardService {
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询操作日志",notes = "查询最新的几条操作日志")
public List findNewSysLogOperateSize(Integer size) {
Pager page = new Pager();
@ -84,6 +89,7 @@ public class SysDashboardService implements ISysDashboardService {
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询操异常日志",notes = "查询最新的几条异常日志")
public List findNewSysLogExceptionSize(Integer size) {
Pager page = new Pager();
@ -96,18 +102,21 @@ public class SysDashboardService implements ISysDashboardService {
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询系统日志",notes = "查询系统日志各级别占比")
public Map findSysLogSystempByLevel(String startTime, String endTime) {
return null;
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询系统日志",notes = "查询系统日志平均执行时间")
public Map querySysLogSystemAvgExecuteTime(String startTime, String endTime) {
return sysLogSystemDao.querySysLogSystemAvgExecuteTime(startTime,endTime);
}
@Override
@AnnoIgnoreLog
@ApiOperation(value = "查询系统日志",notes = "查询各模块系统日志数量")
public Map querySysLogSystemByLevel(String startTime, String endTime) {
return sysLogSystemDao.querySysLogSystemByLevel(startTime,endTime);

@ -105,12 +105,12 @@ public class SysDepartmentService implements ISysDepartmentService {
@ApiOperation(value = "删除部门信息",notes = "根据ID 批量删除部门信息")
public void deleteSysDepartmentByIds(Long[] ids) {
LOGGER.info("部门信息 DEPARTMENT ids :{}", ids);
long positionCount = departmentRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids));
if (positionCount >= 1) {
List<SysDepartment> list = departmentRDao.findByHqlWhere(CoreHqlPack.packHqlIds("parentId", ids));
if (list != null && list.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关部门信息无法删除!")
.setErrorDetail("["+list.get(0).getName()+"]存在相关部门信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}else {

@ -92,6 +92,16 @@ public class SysDictionaryService implements ISysDictionaryService {
.build();
}
// 数据反填
SysDictionary newSysDict = sysDictionaryRDao.getById(sysDictionary.getParentId());
newSysDict.setName(sysDictionary.getName());
newSysDict.setDictionaryCode(sysDictionary.getDictionaryCode());
newSysDict.setParentId(sysDictionary.getParentId());
newSysDict.setDictionarySort(sysDictionary.getDictionarySort());
newSysDict.setDictionaryValueType(sysDictionary.getDictionaryValueType());
newSysDict.setDictionaryValue(sysDictionary.getDictionaryValue());
newSysDict.setDictionaryDescription(sysDictionary.getDictionaryDescription());
// 查询父级字典名称
if (sysDictionary.getParentId() != null && sysDictionary.getParentId() > 0) {
LOGGER.info("字典 SYS_DICTIONARY parentId:{}", sysDictionary.getParentId());

@ -87,7 +87,13 @@ public class SysLocaleLanguageService implements ISysLocaleLanguageService {
SysLocaleLanguage sysLocaleLanguage = sysLocaleLanguageRDao.getById(id);
ValidatorBean.checkNotNull(sysLocaleLanguage,"需要删除的资源不存在");
if(sysLocaleResourceRDao.isExitByProperty("languageCode",sysLocaleLanguage.getLanguageCode())){
if(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == sysLocaleLanguage.getIsDefault().intValue()){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("默认语言不允许删除")
.build();
} else if(sysLocaleResourceRDao.isExitByProperty("languageCode",sysLocaleLanguage.getLanguageCode())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
@ -121,7 +127,15 @@ public class SysLocaleLanguageService implements ISysLocaleLanguageService {
@Override
@ApiOperation(value = "根据id批量删除系统语言",notes = "根据id批量删除系统语言")
public void deleteSysLocaleLanguageByIds(Long[] ids) {
if(sysLocaleResourceRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("id",ids)) > 0){
// 判断批量数据中是否存在默认语言
List list = sysLocaleLanguageRDao.findByHqlWhere(CoreHqlPack.packHqlSysLocaleLanguageExistDefaultByIds(ids));
if (list.size() > 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("默认语言不允许删除")
.build();
} else if(sysLocaleResourceRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("id",ids)) > 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
@ -150,12 +164,41 @@ public class SysLocaleLanguageService implements ISysLocaleLanguageService {
@Override
@ApiOperation(value = "根据语言id修改语言状态")
public void updateSysLocaleLanguageStatusById(Long id, Integer status) {
SysLocaleLanguage sysLocaleLanguage = sysLocaleLanguageRDao.getById(id);
ValidatorBean.checkNotNull(sysLocaleLanguage,"需要删除的资源不存在");
// 判断是否禁用默认语言
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == status.intValue()
&& CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == sysLocaleLanguage.getIsDefault().intValue()) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("默认语言不允许禁用")
.build();
}
sysLocaleLanguageRDao.updateByProperties("id",id,"languageStatus",status);
}
@Override
@ApiOperation(value = "根据语言id批量修改语言状态")
public void updateSysLocaleLanguageStatusByIds(Long[] ids, Integer status) {
// 判断批量数据禁用时是否存在默认语言
List list = sysLocaleLanguageRDao.findByHqlWhere(CoreHqlPack.packHqlSysLocaleLanguageExistDefaultByIds(ids));
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == status.intValue() && list.size() > 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("默认语言不允许禁用")
.build();
}
sysLocaleLanguageRDao.updateByHqlWhere(CoreHqlPack.packHqlIds("id",ids),"languageStatus",status);
}
@Override
@ApiOperation(value = "根据语言状态查询语言信息")
public List<SysLocaleLanguage> findSysLocaleLanguageByStatus(Integer status) {
return sysLocaleLanguageRDao.findByProperty("isDefault",status);
}
}

@ -111,12 +111,12 @@ public class SysOrganizeService implements ISysOrganizeService {
@Override
@ApiOperation(value = "删除组织信息",notes = "根据 ID 批量删除组织信息")
public void deleteSysOrganizeByIds(Long[] ids) {
long positionCount = organizeRDao.findByHqlWhereCount(CoreHqlPack.packHqlIds("parentId",ids));
if (positionCount >= 1) {
List<SysOrganize> list = organizeRDao.findByHqlWhere(CoreHqlPack.packHqlIds("parentId", ids));
if (list != null && list.size() >= 1) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在相关组织信息无法删除!")
.setErrorDetail("["+list.get(0).getName()+"]存在相关组织信息无法删除!")
.setErrorSolution("请先删除子集信息在操作")
.build();
}else {

@ -250,4 +250,42 @@ public class SysRoleService implements ISysRoleService {
return new ListPager(roleRDao.findByHqlWherePage(hqlPack + role.orderBy(), pager), pager);
}
}
@Override
public void checkSysRoleOnly(SysRole role) {
if(role != null){
// 登录名唯一教研
if(!checkSysRoleName(role.getName(), role.getId() == null ? 0 : role.getId())){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
.setErrorDetail("用户名已存在")
.setErrorSolution("请重新输入用户名")
.build();
}
}
}
/**
*
* @param roleName
* @param roleId
* @return
*/
private boolean checkSysRoleName(String roleName, long roleId) {
int count = 0;
if(roleId > 0){
StringBuffer sw = new StringBuffer();
HqlPack.getNumEqualPack(CommonEnumUtil.IS_VAILD.VAILD.getValue(),"isValid",sw);
HqlPack.getStringEqualPack(roleName,"name",sw);
HqlPack.getNumNOEqualPack(roleId,"id",sw);
count = roleRDao.findByHqlWhereCount(sw.toString());
}else{
count = roleRDao.findByPropertyCount(
new String[]{"name","isValid"},
new Object[]{roleName,CommonEnumUtil.IS_VAILD.VAILD.getValue()});
}
return count <= 0 ;
}
}

@ -52,7 +52,7 @@ public class SysTaskPlanService implements ISysTaskPlanService {
@Override
@ApiOperation(value = "新增任务计划",notes = "新增任务计划")
public SysTaskPlan insertSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle,SysTask sysTask) {
public SysTaskPlan insertSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle,SysTask sysTask){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 唯一校验
@ -98,21 +98,34 @@ public class SysTaskPlanService implements ISysTaskPlanService {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
.setErrorDetail(e.getMessage())
.build();
} catch (ParseException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_FORMAT.getCode())
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
.setErrorDetail("表达式起止时间错误")
.setErrorSolution("请更改表达式起止时间")
.build();
} catch (ClassNotFoundException e) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
.setErrorDetail("定时任务包名及类名不正确")
.setErrorSolution("请重新输入定时任务包名及类名")
.build();
} catch (RuntimeException e){
String message;
if(e.getMessage().indexOf("CronExpression") == 0){
message = "时间周期表达式错误";
}else {
message = e.getMessage();
}
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
.setErrorDetail(message)
.build();
}
return sysTaskPlan;
}
@ -169,9 +182,18 @@ public class SysTaskPlanService implements ISysTaskPlanService {
scheduler.scheduleJob(jobDetail, triggerSet, true);
} catch (SchedulerException e) {
e.printStackTrace();
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
.setErrorDetail(e.getMessage())
.build();
} catch (ParseException e) {
e.printStackTrace();
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
.setErrorDetail("表达式起止时间错误")
.setErrorSolution("请更改表达式起止时间")
.build();
}
}
@ -288,6 +310,7 @@ public class SysTaskPlanService implements ISysTaskPlanService {
}
@Override
@ApiOperation(value = "查询任务计划",notes = "根据任务计划名称与组名称查询")
public SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName) {
List<SysTaskPlan> sysTaskPlanList = sysTaskPlanRDao.findByProperty(new String[]{"name","groupName"},new Object[]{name,groupName});
if (sysTaskPlanList != null && sysTaskPlanList.size() != 0){

@ -83,7 +83,7 @@ public class ExcelUtil {
* @param exportClass
* @param exportCol
*/
public static File exportData(File excelFile,List data, Class exportClass, String[] exportCol) {
public static File exportData(File excelFile,List data, Class exportClass, String[] exportCol) throws Exception {
FileOutputStream fos = null;
//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook workbook = new HSSFWorkbook();
@ -164,13 +164,6 @@ public class ExcelUtil {
workbook.write(fos);
fos.flush();
return excelFile;
} catch (Exception e) {
e.printStackTrace();
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode())
.setErrorDetail("Excel 导出错误")
.build();
} finally {
try {
workbook.close();
@ -189,7 +182,7 @@ public class ExcelUtil {
* @param importClass
* @return
*/
public static <T> List<T> importData(String fileName, InputStream inputStream, Class importClass) {
public static <T> List<T> importData(String fileName, InputStream inputStream, Class importClass) throws Exception {
List dataList = new ArrayList<T>();
String fileType = StringTool.getStringFileSuffix(fileName, false);
@ -253,6 +246,7 @@ public class ExcelUtil {
// 判断是否存在引用关系
if (fields[j].isAnnotationPresent(AnnoOutputColumn.class)) {
inputColumn = fields[j].getAnnotation(AnnoOutputColumn.class);
row.getCell(j).setCellType(CellType.STRING);
cellValue = row.getCell(j).getStringCellValue();
// 判断是否为枚举字段
@ -277,8 +271,8 @@ public class ExcelUtil {
dataList.add(obj);
}
} catch (Exception e){
e.printStackTrace();
} finally {
inputStream.close();
}
return dataList;
}

@ -118,6 +118,7 @@ impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
##############定时任务持久化##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
@ -171,3 +172,8 @@ spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#是否显示sql
spring.jpa.show-sql=true
################ MQ队列处理 ################
impp.mq.queue.letter = true
impp.mq.queue.mail = true
impp.mq.queue.schedule = true

@ -113,6 +113,7 @@ impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
##############定时任务持久化##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3309/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
@ -166,3 +167,8 @@ spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#是否显示sql
spring.jpa.show-sql=true
################ MQ队列处理 ################
impp.mq.queue.letter = true
impp.mq.queue.mail = true
impp.mq.queue.schedule = true

@ -118,6 +118,7 @@ impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
##############定时任务持久化##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3308/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
@ -171,3 +172,8 @@ spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#是否显示sql
spring.jpa.show-sql=true
################ MQ队列处理 ################
impp.mq.queue.letter = true
impp.mq.queue.mail = true
impp.mq.queue.schedule = true
Loading…
Cancel
Save