yun-zuoyi
wei.peng 6 years ago
commit 3355ed5f52

@ -68,7 +68,7 @@ public interface ISysDashboardService {
* @return
*/
@ApiOperation(value = "查询操作日志",notes = "查询平均响应耗时")
Map querySysLogSystemAvgExecuteTime(String startTime, String endTime);
Map<Object,Object> querySysLogSystemAvgExecuteTime(String startTime, String endTime);
/**
*
@ -77,5 +77,5 @@ public interface ISysDashboardService {
* @return
*/
@ApiOperation(value = "查询系统日志",notes = "查询各模块系统日志数量")
Map querySysLogSystemByLevel(String startTime, String endTime);
Map<Object,Object> querySysLogSystemByLevel(String startTime, String endTime);
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression;
import io.swagger.annotations.ApiOperation;
@ -68,4 +69,11 @@ public interface ISysTaskTimeExpressionService {
*/
@ApiOperation(value = "任务表达式批量删除")
void deleteSysTaskTimeExpressionByIds(Long[] ids);
/**
*
* @return
*/
@ApiOperation(value = "根据表达式id查询表达式关联任务信息",notes = "根据表达式id查询表达式关联任务信息")
List<SysRefExpressionTrigger> findRefExpressionTriggerList(Long id);
}

@ -1,7 +1,6 @@
package cn.estsh.i3plus.core.api.iservice.busi;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeRecording;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -20,7 +19,7 @@ public interface ISysTaskTimeRecordingService {
* @param taskTimeRecording
*/
@ApiOperation(value = "更新任务表达式信息")
void updateSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording);
void updateSysTaskTimeRecording(SysLogTaskTime taskTimeRecording);
/**
* Key
@ -35,14 +34,14 @@ public interface ISysTaskTimeRecordingService {
* @return
*/
@ApiOperation(value = "新增任务表达式信息")
SysTaskTimeRecording insertSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording);
SysLogTaskTime insertSysTaskTimeRecording(SysLogTaskTime taskTimeRecording);
/**
*
* @return
*/
@ApiOperation(value = "查询任务表达式信息",notes = "查询所有任务表达式信息")
List<SysTaskTimeRecording> findSysTaskTimeRecordingAll();
List<SysLogTaskTime> findSysTaskTimeRecordingAll();
/**
* id
@ -50,5 +49,5 @@ public interface ISysTaskTimeRecordingService {
* @return
*/
@ApiOperation(value = "查询任务表达式信息",notes = "查询 ID 任务表达式信息")
SysTaskTimeRecording getSysTaskTimeRecordingById(Long id);
SysLogTaskTime getSysTaskTimeRecordingById(Long id);
}

@ -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.SysTaskTime;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@ -103,4 +104,27 @@ public interface ISysTaskTimeService {
*/
@ApiOperation(value = "立即执行")
void executeSysTaskTimeById(Long id);
/**
*
* @param name
* @param groupName
* @return
*/
@ApiOperation(value = "查询定时任务",notes = "根据定时任务名称与组名称查询")
SysTaskTime getSysTaskTimeByNameAndGroup(String name,String groupName);
/**
*
* @param sysLogTaskTime
*/
@ApiOperation(value = "添加定时任务执行日志",notes = "添加定时任务执行日志")
void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime);
/**
* quartz
* @param sysTaskTime
*/
@ApiOperation(value = "修改定时任务信息",notes = "修改定时任务信息不会更新quartz数据库")
void updateSysTaskTime(SysTaskTime sysTaskTime);
}

@ -0,0 +1,55 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud;
import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud;
import cn.estsh.i3plus.pojo.base.bean.BaseModelBean;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ResultBean;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.sql.SQLException;
import java.util.Map;
@RestController
@RequestMapping("/impp")
@Api(description="异常服务测试")
public class DemoExceptionController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoExceptionController.class);
@GetMapping(value="/test-exception")
@ApiOperation(value="测试异常")
public ResultBean testException(int type) throws Exception{
try{
if(type == 1){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode())
.setErrorCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode())
.setErrorDetail("手动抛出异常")
.build();
}else if(type == 2){
throw new SQLException("测试数据库异常");
}else {
return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}catch(ImppBusiException busExcep){
LOGGER.error(busExcep.getErrorMsg() + "{}",busExcep.getErrorDetail(),busExcep);
return ResultBean.fail(busExcep);
}
}
}

@ -47,52 +47,53 @@ public class SysDashboardController extends CoreBaseController {
@Resource(name = "redisCore")
private ImppRedis redisCore;
@GetMapping("/get")
@ApiOperation(value = "获取dashboard数据")
public ResultBean getDashboardData(){
@GetMapping("/get-basic")
@ApiOperation(value = "获取基础数据", notes = "获取基础数据,用户,部门,组织等信息")
public ResultBean getBasicInfo() {
try {
Object ds = redisCore.getObject(PlatformConstWords.DASHBOARD_REDIS_KEY + new Date().getTime());
if(ds == null){
// 前10分钟的日期时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
String endTime = TimeTool.getNowTime(true);
cal.add(Calendar.MINUTE,-10);
String startTime = sdf.format(cal.getTime());
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_BASIC_INFO + "_" + nowDate.getTime();
Map dashboardData = new HashMap<>();
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
if (dashboardData == null || dashboardData.size() == 0) {
dashboardData = new HashMap<>();
dashboardData.put("orgNum", sysDashboardService.getSysOrganizeCount());
dashboardData.put("deptNum", sysDashboardService.getSysDepartmentCount());
dashboardData.put("onlineUser", webSessionManager.getSessionDAO().getActiveSessions().size());
dashboardData.put("logOperate",sysDashboardService.findNewSysLogOperateSize(10));
dashboardData.put("logException",sysDashboardService.findNewSysLogExceptionSize(10));
dashboardData.put("avgExecuteTime",sysDashboardService.querySysLogSystemAvgExecuteTime(startTime,endTime));
dashboardData.put("levelLogNum",sysDashboardService.querySysLogSystemByLevel(startTime,endTime));
dashboardData.put("userLoginLog", sysDashboardService.findSysUserLoginLog(10));
//获取上一分钟
sdf = new SimpleDateFormat("yyyyMMddHHmm");
cal.setTime(new Date());
cal.add(Calendar.MINUTE,-1);
dashboardData.put("serverPressure",redisCore.getHashMap(CommonConstWords.REDIS_DASHBOARD_MINUTE_SOURCE + "_" + sdf.format(cal.getTime())));
//获取上一秒
sdf = new SimpleDateFormat("yyyyMMddHHmmss");
cal.setTime(new Date());
cal.add(Calendar.SECOND,-1);
dashboardData.put("serverPressure",redisCore.getHashMap(CommonConstWords.REDIS_DASHBOARD_SECOND_PRESSURE + "_" + sdf.format(cal.getTime())));
redisCore.putHashMap(redisKey, dashboardData, 180);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultMap(dashboardData);
} catch (
ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
redisCore.putObject(PlatformConstWords.DASHBOARD_REDIS_KEY + new Date().getTime(),
SerializeTool.serialization(dashboardData),60);
@GetMapping(value = "/get-log")
@ApiOperation(value = "查询日志", notes = "最近操作,异常日志")
public ResultBean getLogInfo() {
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_AVG_RESP_TIME + "_" + nowDate.getTime();
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
}else{
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap((Map<Object, Object>) SerializeTool.deserialization(ds.toString()));
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
if (dashboardData == null || dashboardData.size() == 0) {
dashboardData = new HashMap<>();
dashboardData.put("logOperate", sysDashboardService.findNewSysLogOperateSize(10));
dashboardData.put("logException", sysDashboardService.findNewSysLogExceptionSize(10));
redisCore.putHashMap(redisKey, dashboardData, 180);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
} catch (
ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
@ -101,4 +102,88 @@ public class SysDashboardController extends CoreBaseController {
}
}
@GetMapping(value = "/get-avg-response-time")
@ApiOperation(value = "获取平均响应时间", notes = "获取平均响应时间")
public ResultBean getAvgResponseTime() {
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_AVG_RESP_TIME + "_" + nowDate.getTime();
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
if (dashboardData == null || dashboardData.size() == 0) {
// 获取前5分钟时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dashboardData = sysDashboardService.querySysLogSystemAvgExecuteTime(
sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -5)),sdf.format(nowDate));
redisCore.putHashMap(redisKey, dashboardData, 180);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
}
}
@GetMapping(value = "/get-level-log-num")
@ApiOperation(value = "获取各等级日志数量", notes = "获取各等级日志数量")
public ResultBean getLevelLogNum() {
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_LOG_NUM + "_" + nowDate.getTime();
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
if (dashboardData == null || dashboardData.size() == 0) {
// 获取前10分钟时间日志数量
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dashboardData = sysDashboardService.querySysLogSystemByLevel(
sdf.format(TimeTool.timeCalc(new Date(), Calendar.MINUTE, -10)), sdf.format(nowDate));
redisCore.putHashMap(redisKey, dashboardData, 180);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@GetMapping(value = "/get-server-pressure")
public ResultBean getServerPressure() {
try {
// 保持时间,key统一
Date nowDate = new Date();
String redisKey = PlatformConstWords.REDIS_DASHBOARD_SERVER_PRESSURE + "_" + nowDate.getTime();
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
if (dashboardData == null || dashboardData.size() == 0) {
dashboardData = new HashMap<>();
//获取上一分钟,请求来源数据
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
dashboardData.put("requestSource", redisCore.getHashMap(
CommonConstWords.REDIS_DASHBOARD_MINUTE_SOURCE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.MINUTE, -1))));
//获取上一秒,服务器压力数据
sdf = new SimpleDateFormat("yyyyMMddHHmmss");
dashboardData.put("serverPressure", redisCore.getObject(
CommonConstWords.REDIS_DASHBOARD_SECOND_PRESSURE + "_" + sdf.format(TimeTool.timeCalc(nowDate, Calendar.SECOND, -1))));
redisCore.putHashMap(redisKey, dashboardData, 180);
}
return ResultBean.success("查询成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData);
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -107,7 +107,7 @@ public class SysDictionaryController extends CoreBaseController{
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("字典不存在")
.setErrorSolution("请重新输入字典id")
.setErrorSolution("请重新选择")
.build();
}

@ -290,4 +290,32 @@ public class SysMessageController extends CoreBaseController {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PostMapping(value = "/user-message/insert")
@ApiOperation(value = "用户新增消息",notes = "用户新增消息")
public ResultBean insertUserMessage(SysMessage sysMessage){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 条件校验
ValidatorBean.beginValid(sysMessage)
.notNull("messageTitle",sysMessage.getMessageTitle())
.notNull("messageContent",sysMessage.getMessageContent())
.notNull("messageReceiversId",sysMessage.getMessageReceiversId());
// 设置发件人名称
sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue());
sysMessage.setMessageSenderId(getSessionUser().getUserId());
sysMessage.setMessageSenderNameRdd(getSessionUser().getUserName());
sysMessage.setMessageSendTime(sdf.format(new Date()));
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessageService.doSendSysMessage(sysMessage);
return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -1,12 +1,15 @@
package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeExpressionService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
@ -40,6 +43,9 @@ public class SysTaskTimeExpressionController extends CoreBaseController{
@Autowired
private ISysTaskTimeExpressionService taskTimeExpressionService;
@Autowired
private ISysTaskTimeService sysTaskTimeService;
@PostMapping(value = "/insert")
@ApiOperation(value = "新增系统时间表达式", notes = "系统时间表达式")
public ResultBean insertSysTaskTimeExpression(SysTaskTimeExpression timeExpression) {
@ -71,6 +77,19 @@ public class SysTaskTimeExpressionController extends CoreBaseController{
taskTimeExpressionService.updateSysTaskTimeExpression(timeExpression);
// 查询关联定时任务信息,并进行修改
List<SysRefExpressionTrigger> refTrigger = taskTimeExpressionService.findRefExpressionTriggerList(timeExpression.getId());
SysTaskTime sysTaskTime;
for (SysRefExpressionTrigger item: refTrigger) {
sysTaskTime = sysTaskTimeService.getSysTaskTimeByNameAndGroup(item.getTriggerName(),item.getTriggerGroupName());
sysTaskTime.setTimeExpressionNameRdd(timeExpression.getName());
sysTaskTime.setTimeExpressionContentRdd(timeExpression.getExpressionContent());
sysTaskTime.setTaskStartDateTimeRdd(timeExpression.getExpressionStartDatetime());
sysTaskTime.setTaskEndDateTimeRdd(timeExpression.getExpressionEndDatetime());
sysTaskTimeService.updateSysTaskTime(sysTaskTime,timeExpression);
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -81,12 +100,20 @@ public class SysTaskTimeExpressionController extends CoreBaseController{
@DeleteMapping(value = "/delete/{id}")
@ApiOperation(value = "删除系统时间表达式", notes = "删除系统时间表达式")
public ResultBean deleteSysTaskTimeExpression(@PathVariable("id") String id) {
public ResultBean deleteSysTaskTimeExpression(@PathVariable("id") String idStr) {
try {
// 数据校验
ValidatorBean.checkNotNull(id, "时间表达式id 不能为空");
ValidatorBean.checkNotNull(idStr, "时间表达式id 不能为空");
if(taskTimeExpressionService.getSysTaskTimeExpressionById(Long.parseLong(idStr)) == null){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
.setErrorDetail("时间表达式不存在")
.setErrorSolution("请重新选择")
.build();
}
taskTimeExpressionService.deleteSysTaskTimeExpressionById(Long.parseLong(id));
taskTimeExpressionService.deleteSysTaskTimeExpressionById(Long.parseLong(idStr));
return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);

@ -20,9 +20,6 @@ public class I3CoreQueueConfig {
public static final String IMPP_MESSAGE_QUEUE = "IMPP_MESSAGE_QUEUE";
public static final String IMPP_MESSAGE_MAIL_QUEUE = "IMPP_MESSAGE_MAIL_QUEUE";
public static final String IMPP_MESSAGE_LETTER_QUEUE = "IMPP_MESSAGE_LETTER_QUEUE";
@Bean
public Queue getImppMessageQueue() {
LOGGER.info("【开启平台消息队列】");

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService;
import cn.estsh.i3plus.core.apiservice.websocket.MessageWebSocket;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage;
@ -44,7 +45,7 @@ public class MessageLetterQueueReceiver {
* @param message
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
*/
@RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE)
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE)
public void processImppMessage(SysMessage msg, Channel channel, Message message) {
try {
LOGGER.info("【MQ-IMPP_MESSAGE_LETTER_QUEUE】数据接收成功{}",msg);

@ -46,7 +46,7 @@ public class MessageMailQueueReceiver {
* @param channel
* @param message
*/
@RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE)
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE)
public void processImppMail(SysMessage msg, Channel channel, Message message) {
try {
LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功{}",msg);msg = sysMessageService.insertSysMessage(msg);

@ -0,0 +1,67 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeService;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
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.stereotype.Component;
import java.io.IOException;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-12-20 21:56
* @Modify:
**/
@Component
public class ScheduleQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(ScheduleQueueReceiver.class);
@Autowired
private ISysTaskTimeService sysTaskTimeService;
/**
*
* @param logTaskTime
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.IMPP_SCHEDULE_QUEUE)
public void processSchedule(SysLogTaskTime logTaskTime, Channel channel, Message message) {
try {
LOGGER.info("【MQ-IMPP_SCHEDULE_QUEUE】数据接收成功{}",logTaskTime);
// 跟新最后执行时间 及 任务状态
SysTaskTime task = sysTaskTimeService.getSysTaskTimeByNameAndGroup(logTaskTime.getName(),logTaskTime.getGroupName());
task.setLastRunDateTime(logTaskTime.getCreateDatetime());
task.setTaskStatus(logTaskTime.getTaskStatus());
sysTaskTimeService.updateSysTaskTime(task);
// 添加定时任务日志
logTaskTime.setTimeTaskId(task.getId());
logTaskTime.setTimeExpressionNameRdd(task.getTimeExpressionNameRdd());
logTaskTime.setTimeExpressionContentRdd(task.getTimeExpressionContentRdd());
sysTaskTimeService.logInsertSysLogTaskTime(logTaskTime);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错{}",e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}

@ -34,11 +34,7 @@ public class DemoJob extends BaseImppScheduleJob {
}
@Autowired
private ISysTaskTimeService taskTimeService;
@Autowired
private ISysMessageService sysMessageService;
@Autowired
private ISysConfigService sysConfigService;
@Override
public void executeImppJob(JobExecutionContext context, ApplicationProperties applicationProperties) {
@ -53,9 +49,5 @@ public class DemoJob extends BaseImppScheduleJob {
sysMessage.setMessageReceiversId(PlatformConstWords.CONTACT_MAIL);
sysMessage.setMessageReceiversNameRdd(PlatformConstWords.CONTACT_MAIL);
sysMessageService.doSendSysMessage(sysMessage);
taskTimeService.doSysTaskTimeLastDateByNameAndGroupName(TimeTool.getNowTime(true),
context.getJobDetail().getKey().getName(),
context.getJobDetail().getKey().getGroup());
}
}

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
@ -123,9 +124,9 @@ public class SysMessageService implements ISysMessageService {
public void doSendSysMessage(SysMessage sysMessage) {
// 判断消息类型推送到对应的队列
if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == sysMessage.getMessageType().intValue()){
rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_MAIL_QUEUE,sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE,sysMessage);
}else{
rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
}
}

@ -5,7 +5,9 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression;
import cn.estsh.i3plus.pojo.platform.repository.SysRefExpressionTriggerRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeExpressionRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
@ -37,6 +39,9 @@ public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionServi
@Autowired
private SysTaskTimeRepository taskTimeRDao;
@Autowired
private SysRefExpressionTriggerRepository sysRefExpressionTriggerRDao;
@Override
@ApiOperation(value = "修改数据")
public void updateSysTaskTimeExpression(SysTaskTimeExpression taskTimeExpression) {
@ -48,6 +53,16 @@ public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionServi
@ApiOperation(value = "根据id删除数据")
public void deleteSysTaskTimeExpressionById(Long id) {
LOGGER.info("定时任务时间表达式 TASK_TIME_EXPRESSION :{}", id);
List refExpressionTriggerList = sysRefExpressionTriggerRDao.findByProperty("expressionId",id);
if(refExpressionTriggerList == null || refExpressionTriggerList.size() == 0){
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("存在关联定时任务,无法删除")
.setErrorSolution("请重新选择")
.build();
}
taskTimeExpressionRDao.deleteById(id);
}
@ -102,4 +117,10 @@ public class SysTaskTimeExpressionService implements ISysTaskTimeExpressionServi
taskTimeExpressionRDao.deleteByIds(ids);
}
}
@Override
@ApiOperation(value = "根据表达式id查询表达式关联任务信息",notes = "根据表达式id查询表达式关联任务信息")
public List<SysRefExpressionTrigger> findRefExpressionTriggerList(Long id) {
return sysRefExpressionTriggerRDao.findByProperty("expressionId",id);
}
}

@ -1,7 +1,7 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskTimeRecordingService;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeRecording;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRecordingRepository;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
@ -28,7 +28,7 @@ public class SysTaskTimeRecordingService implements ISysTaskTimeRecordingService
@Override
@ApiOperation(value = "更新任务表达式信息")
public void updateSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording) {
public void updateSysTaskTimeRecording(SysLogTaskTime taskTimeRecording) {
LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING :{}", taskTimeRecording);
taskTimeRecordingRDao.update(taskTimeRecording);
}
@ -42,21 +42,21 @@ public class SysTaskTimeRecordingService implements ISysTaskTimeRecordingService
@Override
@ApiOperation(value = "新增任务表达式信息")
public SysTaskTimeRecording insertSysTaskTimeRecording(SysTaskTimeRecording taskTimeRecording) {
public SysLogTaskTime insertSysTaskTimeRecording(SysLogTaskTime taskTimeRecording) {
LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING :{}", taskTimeRecording);
return taskTimeRecordingRDao.insert(taskTimeRecording);
}
@Override
@ApiOperation(value = "查询任务表达式信息",notes = "查询所有任务表达式信息")
public List<SysTaskTimeRecording> findSysTaskTimeRecordingAll() {
public List<SysLogTaskTime> findSysTaskTimeRecordingAll() {
LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING find All");
return taskTimeRecordingRDao.findAll();
}
@Override
@ApiOperation(value = "查询任务表达式信息",notes = "查询 ID 任务表达式信息")
public SysTaskTimeRecording getSysTaskTimeRecordingById(Long id) {
public SysLogTaskTime getSysTaskTimeRecordingById(Long id) {
LOGGER.info("定时任务执行记录 TASK_TIMED_RECORDING find id:{}", id);
return taskTimeRecordingRDao.getOne(id);
}

@ -10,6 +10,8 @@ import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysRefExpressionTrigger;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTime;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskTimeExpression;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import cn.estsh.i3plus.pojo.platform.platrepositorymongo.SysLogTaskTimeRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefExpressionTriggerRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysTaskTimeRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
@ -48,6 +50,9 @@ public class SysTaskTimeService implements ISysTaskTimeService{
private SysRefExpressionTriggerRepository refExpressionTriggerRDao;
@Autowired
private SysLogTaskTimeRepository sysLogTaskTimeRDao;
@Autowired
private Scheduler scheduler;
@Override
@ -87,7 +92,7 @@ public class SysTaskTimeService implements ISysTaskTimeService{
.withDescription(taskTimeExpression.getExpressionDescription())
.withSchedule(schedBuilder)
.startAt(sdf.parse(taskTimeExpression.getExpressionStartDatetime()));
if(taskTimeExpression.getExpressionEndDatetime() != null){
if(taskTimeExpression.getExpressionEndDatetime() != null && !"".equals(taskTimeExpression.getExpressionEndDatetime())){
trigger = trigger.endAt(sdf.parse(taskTimeExpression.getExpressionEndDatetime()));
}
@ -305,4 +310,26 @@ public class SysTaskTimeService implements ISysTaskTimeService{
.build();
}
}
@Override
@ApiOperation(value = "查询定时任务",notes = "根据定时任务名称与组名称查询")
public SysTaskTime getSysTaskTimeByNameAndGroup(String name, String groupName) {
List<SysTaskTime> taskList = taskTimeRDao.findByProperty(new String[]{"name","groupName"},new Object[]{name,groupName});
if (taskList != null && taskList.size() != 0){
return taskList.get(0);
}
return null;
}
@Override
@ApiOperation(value = "添加定时任务执行日志",notes = "添加定时任务执行日志")
public void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime) {
sysLogTaskTimeRDao.insert(sysLogTaskTime);
}
@Override
@ApiOperation(value = "修改定时任务信息",notes = "修改定时任务信息不会更新quartz数据库")
public void updateSysTaskTime(SysTaskTime sysTaskTime) {
taskTimeRDao.update(sysTaskTime);
}
}

@ -106,7 +106,7 @@ public class SysToolTypeService implements ISysToolTypeService {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail(count.get(0).getToolTypeNameRdd() + " - 存在关联硬件无法删除!")
.setErrorDetail("【" + count.get(0).getToolTypeNameRdd() + " - 存在关联硬件无法删除!")
.setErrorSolution("请重新操作")
.build();
}else {

@ -1,15 +1,15 @@
#项目端口
server.port=8100
#本机ip
impp.server.ip=192.168.1.56
impp.server.ip=192.168.1.35
#console控制台服务zipkin追踪全路径
impp.console.ip=http://csd.estsh.com
impp.console.ip=http://192.168.1.35:8010
################ 功能配置1 ################
#若无法连接注册中心,是否需要一直检测加入
impp.cluster.fetch=true
#服务注册中心
impp.cluster.regist.center=http://regd.estsh.com/eureka/
impp.cluster.regist.center=http://192.168.1.35:8000/eureka/
#多注册中心
#impp.cluster.regist.center=http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/

@ -1,30 +1,20 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm;
import cn.estsh.i3plus.pojo.base.shirotoken.UserToken;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.util.SpringContextsUtil;
import cn.estsh.impp.framework.run.ImppGo;
import com.alibaba.fastjson.JSON;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.session.Session;
import org.apache.shiro.session.mgt.DefaultSessionContext;
import org.apache.shiro.session.mgt.SessionContext;
import org.apache.shiro.subject.PrincipalCollection;
import org.junit.After;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Component;
import org.springframework.test.context.junit4.SpringRunner;
/**
@ -53,8 +43,8 @@ public class TestBase {
securityManager.start(sessionContext);
UserToken token = new UserToken("login_name", "login_pwd", "zh");
SessionUser sessionUser = AuthUtil.login(token);
AuthUtil.setSessionUser(sessionUser);
// SessionUser sessionUser = AuthUtil.login(token);
// AuthUtil.setSessionUser(sessionUser);
System.out.println("----------------->> 开始测试 <<-----------------");
}
@ -65,26 +55,26 @@ public class TestBase {
}
}
@Component
class UserAuthRealm extends AuthorizingRealm {
public UserAuthRealm() {
//添加支持的token
this.setAuthenticationTokenClass(UserToken.class);
}
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
return new SimpleAuthorizationInfo();
}
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
SessionUser user = JSON.parseObject(TestBase.JSON_SESSION_USER, SessionUser.class);
return new SimpleAuthenticationInfo(user, ((UserToken) authenticationToken).getLoginPwd(), this.getName());
}
}
//
//@Component
//class UserAuthRealm extends AuthorizingRealm {
//
// public UserAuthRealm() {
// //添加支持的token
// this.setAuthenticationTokenClass(UserToken.class);
// }
//
// @Override
// protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
// return new SimpleAuthorizationInfo();
// }
//
// @Override
// protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
// SessionUser user = JSON.parseObject(TestBase.JSON_SESSION_USER, SessionUser.class);
// return new SimpleAuthenticationInfo(user, ((UserToken) authenticationToken).getLoginPwd(), this.getName());
// }
//
//}
//

@ -0,0 +1,59 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.pojo.platform.bean.SysConfig;
import cn.estsh.i3plus.pojo.platform.repository.SysConfigRepository;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-12-20 17:02
* @Modify:
**/
public class TestMathOper extends TestBase {
@Test
public void test(){
System.out.println("Hello World !~");
}
@Autowired
private SysConfigRepository sysConfigRDao;
String propertyName = "configType";
String groupByName = "configType";
String[] param = new String[]{"configType"};
Object[] paramValue = new Object[]{1};
@Test
public void testMax(){
SysConfig sysConfig = new SysConfig();
// max
System.out.println(sysConfigRDao.findMaxByProperties(propertyName,groupByName,param,paramValue));
System.out.println(sysConfigRDao.findMaxByProperty(propertyName,groupByName,param[0],paramValue[0]));
}
@Test
public void testMin(){
// min
System.out.println(sysConfigRDao.findMinByProperties(propertyName,groupByName,param,paramValue));
System.out.println(sysConfigRDao.findMinByProperty(propertyName,groupByName,param[0],paramValue[0]));
}
@Test
public void testSum(){
//sum
System.out.println(sysConfigRDao.findSumByProperties(propertyName,groupByName,param,paramValue));
System.out.println(sysConfigRDao.findSumByProperty(propertyName,groupByName,param[0],paramValue[0]));
}
@Test
public void testAvg(){
//avg
System.out.println(sysConfigRDao.findAvgByProperties(propertyName,groupByName,param,paramValue));
System.out.println(sysConfigRDao.findAvgByProperty(propertyName,groupByName,param[0],paramValue[0]));
}
}
Loading…
Cancel
Save