From b58583602bd958f4ced08afa4d8b0420e425fc37 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Tue, 12 Feb 2019 18:06:20 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=B8=83=E5=B1=80=20?= =?UTF-8?q?=E8=A1=8C=E9=AB=98,=E5=88=97=E5=AE=BD=E8=AE=BE=E7=BD=AE=20Mongo?= =?UTF-8?q?DB=20id=20=E6=98=A0=E5=B0=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java index 9f3a86d..76a414d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java @@ -288,6 +288,7 @@ public class SysTaskPlanService implements ISysTaskPlanService { } @Override + @ApiOperation(value = "查询任务计划",notes = "根据任务计划名称与组名称查询") public SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName) { List sysTaskPlanList = sysTaskPlanRDao.findByProperty(new String[]{"name","groupName"},new Object[]{name,groupName}); if (sysTaskPlanList != null && sysTaskPlanList.size() != 0){ From e094e9c5eed96eb212efa810518fd37fdf745bec Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Wed, 13 Feb 2019 17:22:20 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E9=80=9A=E7=9F=A5=20=E7=BD=91=E5=85=B3?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=BF=A1=E6=81=AF=E7=B1=BB=E5=9E=8B=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20BaseResultBean=20=E6=B7=BB=E5=8A=A0=E9=98=9F?= =?UTF-8?q?=E5=88=97=E7=9B=91=E5=90=AC=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/mq/MessageLetterQueueReceiver.java | 2 ++ .../apiservice/mq/MessageMailQueueReceiver.java | 17 ++++++--- .../core/apiservice/mq/ScheduleQueueReceiver.java | 41 +++++++++++++++++++++- .../src/main/resources/application-dev.properties | 6 ++++ .../src/main/resources/application-prod.properties | 6 ++++ .../src/main/resources/application-test.properties | 6 ++++ 6 files changed, 73 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index 693bd0f..27cfec1 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -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); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index 930c657..d2afbb4 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -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); @@ -54,14 +56,21 @@ 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 { + + } 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{ // 收件人信息 String[] messageReceiver = msg.getMessageReceiversId().split(","); @@ -86,7 +95,7 @@ public class MessageMailQueueReceiver { sysMessageService.insertSysRefUserMessage(refUserMessage); - // 发送邮件 + // 设置邮件主题内容及收件人 mailUtil.setSubject(msg.getMessageTitle()); mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType())); mailUtil.setBody(msg.getMessageContent()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java index 77ef932..026bd10 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java @@ -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("

管理员 您好:

任务计划(Name: %s,GroupName: %s)执行失败,详细信息请查看定时任务日志(ID: %s).
", + 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) { diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index b21c055..ba14679 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -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 \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties index 4b3bc09..42378da 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties @@ -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 \ No newline at end of file diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties index 97ede48..555d266 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties @@ -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 \ No newline at end of file From 3aa0e7712db9f435892f43f1d7fbdd7acedce981 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Mon, 18 Feb 2019 10:08:11 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=97=A5=E5=BF=97=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/SysDashboardController.java | 6 ++++++ .../apiservice/controller/busi/SysEnumController.java | 17 +++++++++++++++++ .../serviceimpl/busi/SysDashboardService.java | 9 +++++++++ 3 files changed, 32 insertions(+) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java index fe3c5a8..2c9e4a6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysDashboardController.java @@ -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() { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java index 3bbcbf4..9590260 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysEnumController.java @@ -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 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 list = new ArrayList<>(); + list.add(ImppEnumUtil.MESSAGE_TYPE.MAIL); + return new ResultBean(true, "操作成功",list); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java index f604e96..2431a5a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDashboardService.java @@ -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 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); From a47249a92509c49d5e6dc5650ec43e5bcc7d0cb4 Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Thu, 21 Feb 2019 19:07:01 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E6=A3=80=E6=9F=A5=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9Bug=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysRoleService.java | 4 +++ .../controller/busi/PersonnelController.java | 2 +- .../controller/busi/SysRoleController.java | 3 ++ .../controller/busi/SysUserController.java | 2 ++ .../serviceimpl/busi/SysRoleService.java | 38 ++++++++++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java index 70b8537..db5e921 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysRoleService.java @@ -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 querySysRole(SysRole role, Pager pager); + @ApiOperation(value = "角色唯一检查") + void checkSysRoleOnly(SysRole role); + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java index c788cef..a5b8d2f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/PersonnelController.java @@ -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) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index 92e4dae..d6ecb0e 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -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()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index 06f5199..42b02bb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -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()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index ffb50af..0d91857 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -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 ; + } } From f9d88b6a93c1ab8b9c7298861ded7b22cd0a5a1b Mon Sep 17 00:00:00 2001 From: "wei.peng" Date: Fri, 22 Feb 2019 11:36:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=20?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E4=BC=98=E5=8C=96=20?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/SystemLoginService.java | 3 +- .../serviceimpl/busi/PersonnelServiceService.java | 54 +++++++++++----------- .../serviceimpl/busi/SysDepartmentService.java | 6 +-- .../serviceimpl/busi/SysOrganizeService.java | 6 +-- 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java index ab4e0a0..f92a34f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SystemLoginService.java @@ -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); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index 7237f47..9e43d44 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -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 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 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 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 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 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 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 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 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 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(); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java index 061a1b6..fa0befd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDepartmentService.java @@ -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 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 { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java index 354b4a3..5c7986a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysOrganizeService.java @@ -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 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 { From 23e9b4091fcae44ca1995bc54efda773b31fab68 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Fri, 22 Feb 2019 11:47:26 +0800 Subject: [PATCH 6/6] =?UTF-8?q?bug=E8=A7=A3=E5=86=B3=20=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iservice/busi/ISysLocaleLanguageService.java | 3 ++ .../controller/base/WhiteController.java | 4 +- .../busi/SysLocaleLanguageController.java | 4 +- .../controller/busi/SysOrderNoRuleController.java | 11 ++++- .../controller/busi/SysTaskCycleController.java | 2 +- .../controller/busi/SysTaskPlanController.java | 1 + .../core/apiservice/daoimpl/ReportDaoImpl.java | 1 + .../apiservice/mq/MessageMailQueueReceiver.java | 4 +- .../core/apiservice/schedulejob/DemoJob.java | 4 +- .../serviceimpl/busi/SysConfigService.java | 2 +- .../serviceimpl/busi/SysDictionaryService.java | 10 +++++ .../serviceimpl/busi/SysLocaleLanguageService.java | 47 +++++++++++++++++++++- .../serviceimpl/busi/SysTaskPlanService.java | 32 ++++++++++++--- .../i3plus/core/apiservice/util/ExcelUtil.java | 16 +++----- 14 files changed, 113 insertions(+), 28 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleLanguageService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleLanguageService.java index 1d9d40d..f7c0479 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleLanguageService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleLanguageService.java @@ -45,4 +45,7 @@ public interface ISysLocaleLanguageService { @ApiOperation(value = "根据语言id批量修改语言状态") void updateSysLocaleLanguageStatusByIds(Long[] ids,Integer status); + + @ApiOperation(value = "根据语言状态查询语言信息") + List findSysLocaleLanguageByStatus(Integer status); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 4d1012f..e3d1a07 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -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); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleLanguageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleLanguageController.java index 57fb717..bca4457 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleLanguageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleLanguageController.java @@ -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()) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java index 37e86cd..71f1679 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java @@ -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 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){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java index c28f74e..4206b7a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java @@ -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){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java index 9fb32e2..d0b4fa2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java @@ -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); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java index ed7893f..4f844bc 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/ReportDaoImpl.java @@ -36,6 +36,7 @@ public class ReportDaoImpl implements IReportDao { } } } + entityManager.clear(); return queryObject.getResultList(); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index d2afbb4..a06fb5c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -42,6 +42,7 @@ public class MessageMailQueueReceiver { ISysConfigService sysConfigService; @Autowired MailUtil mailUtil; + /** * 系统邮件处理队列 * @param msg @@ -61,7 +62,8 @@ public class MessageMailQueueReceiver { mailUtil.setBody(msg.getMessageContent()); // 发送给系统配置中的紧急联系人 mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue()); - mailUtil.send(); + // 次数过于频繁 +// mailUtil.send(); } else if(PlatformConstWords.EXTERNAL_MAIL.equals(msg.getMessageReceiversId())){ //判断是否为外部邮件 mailUtil.setSubject(msg.getMessageTitle()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java index 3cde5b5..047a4b7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/schedulejob/DemoJob.java @@ -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); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java index b33b313..edeeb7a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysConfigService.java @@ -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 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java index 3039946..52f23bb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysDictionaryService.java @@ -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()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java index 08feda6..14498be 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleLanguageService.java @@ -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 findSysLocaleLanguageByStatus(Integer status) { + return sysLocaleLanguageRDao.findByProperty("isDefault",status); + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java index 76a414d..7b8f361 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java @@ -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(); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java index d2de4b4..e1945f9 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/util/ExcelUtil.java @@ -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 List importData(String fileName, InputStream inputStream, Class importClass) { + public static List importData(String fileName, InputStream inputStream, Class importClass) throws Exception { List dataList = new ArrayList(); 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; }