Commit da4759bb authored by xinglei's avatar xinglei

*)生成计划任务增加消息推送

parent 79a832a1
......@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.servlet.http.HttpServletRequest;
......@@ -20,6 +21,9 @@ public class FeignBasicAuthRequestInterceptor implements RequestInterceptor {
public void apply(RequestTemplate template) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
template.header("token", RequestContext.getToken());
template.header("product", RequestContext.getProduct());
template.header("appKey", RequestContext.getAppKey());
return;
}
ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes;
......
......@@ -2,9 +2,7 @@ package com.yeejoin.amos.supervision.business.feign;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -28,4 +26,13 @@ public interface JCSFeignClient {
*/
@GetMapping(value = "jcs/org-usr/unSync/orgCompany")
FeignClientResult getUnSyncOrgCompanyList(@RequestParam List<Long> companyIdList);
/**
* 根据机场人员id批量获取amos平台人员id
*
* @param orgUserIds 机场单位人员id
* @return
*/
@RequestMapping(value = "jcs/org-usr/amos/orgUserIds", method = RequestMethod.GET)
FeignClientResult getAmosIdListByUserIds(@RequestParam String orgUserIds);
}
......@@ -34,6 +34,7 @@ import com.yeejoin.amos.supervision.business.vo.PlanTaskVo;
import com.yeejoin.amos.supervision.common.enums.PlanStatusEnum;
import com.yeejoin.amos.supervision.common.enums.PlanTaskDetailIsFinishEnum;
import com.yeejoin.amos.supervision.common.enums.PlanTaskFinishStatusEnum;
import com.yeejoin.amos.supervision.core.async.AsyncTask;
import com.yeejoin.amos.supervision.core.common.request.CommonPageable;
import com.yeejoin.amos.supervision.core.common.response.AppCheckInputRespone;
import com.yeejoin.amos.supervision.core.common.response.AppPointCheckRespone;
......@@ -55,6 +56,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.ParseException;
......@@ -103,6 +105,9 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
@Autowired
private RoutePointItemMapper routePointItemMapper;
@Autowired
private AsyncTask asyncTask;
@Override
public Page<HashMap<String, Object>> getPlanTaskInfo(PlanTaskPageParam params) {
long total = planTaskMapper.countPlanTask(params);
......@@ -388,7 +393,6 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
//2.5.插入planTask及planTaskDetail
insertPlanTaskAndDet(list, plan, XJConstant.SCHED_FLAG, now);
}
}
......@@ -527,6 +531,8 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
// 2.保存执行数据明细表
planTaskDetail.saveAndFlush(planTaskDetailInstance);
// 推送消息
asyncTask.sendPlanMsg(RequestContext.cloneRequestContext(), plan, planId);
}
// 定时任务监控
jobService.planTaskAddJob(planTask);
......
......@@ -7,19 +7,21 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.supervision.business.dao.repository.IMsgDao;
import com.yeejoin.amos.supervision.business.util.Toke;
import com.yeejoin.amos.supervision.email.IEmailService;
import com.yeejoin.amos.supervision.feign.RemoteSecurityService;
import com.yeejoin.amos.supervision.jpush.AppMessagePushService;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import com.yeejoin.amos.supervision.business.dao.mapper.MsgSubscribeMapper;
import com.yeejoin.amos.supervision.business.dao.repository.IMsgDao;
import com.yeejoin.amos.supervision.business.entity.mybatis.MsgSubscribeBo;
import com.yeejoin.amos.supervision.business.param.PushMsgParam;
import com.yeejoin.amos.supervision.business.service.intfc.IMessageService;
import com.yeejoin.amos.supervision.business.service.intfc.ISafety3DDataSendService;
import com.yeejoin.amos.supervision.business.util.Toke;
import com.yeejoin.amos.supervision.common.enums.JPushTypeEnum;
import com.yeejoin.amos.supervision.common.enums.MsgSubscribeEnum;
import com.yeejoin.amos.supervision.dao.entity.Msg;
import com.yeejoin.amos.supervision.dao.entity.Plan;
import com.yeejoin.amos.supervision.email.IEmailService;
import com.yeejoin.amos.supervision.feign.RemoteSecurityService;
import com.yeejoin.amos.supervision.jpush.AppMessagePushService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,6 +30,8 @@ import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContextModel;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.*;
import java.util.concurrent.Future;
......@@ -299,6 +303,34 @@ public class AsyncTask {
}
}
/**
* 计划任务消息
* @param plan
*/
@Async
public void sendPlanMsg(RequestContextModel requestContextModel, Plan plan, long planId){
MessageModel model = new MessageModel();
model.setTitle(plan.getName());
String body = String.format("任务批号:%s;类型:%s;执行人:%s",
planId, plan.getCheckTypeName(), plan.getMakerUserName());
model.setBody(body);
String leadPeopleIds = plan.getLeadPeopleIds();
if (!ValidationUtil.isEmpty(plan.getUserId()) && !leadPeopleIds.contains(plan.getUserId())){
leadPeopleIds += "," + plan.getUserId();
}
try {
List<String> recivers = remoteSecurityService.getAmosIdListByUserIds(requestContextModel, leadPeopleIds);
model.setIsSendApp(true);
model.setIsSendWeb(true);
model.setMsgType("supervision");
model.setRelationId(String.valueOf(plan.getId()));
model.setRecivers(recivers);
remoteSecurityService.addMessage(requestContextModel, model);
} catch (Exception e) {
e.printStackTrace();
}
}
private Set<String> userIdFilter(Set<String> sendUserIds, String msgType) {
Set<String> afterFilterUserIds = Sets.newHashSet();
if (CollectionUtils.isEmpty(sendUserIds)) {
......
......@@ -11,6 +11,8 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import com.yeejoin.amos.supervision.business.feign.JCSFeignClient;
import com.yeejoin.amos.supervision.common.remote.IAMOSSecurityServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -42,6 +44,7 @@ import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import com.yeejoin.amos.supervision.business.util.CommonResponse;
import com.yeejoin.amos.supervision.business.util.Toke;
import org.typroject.tyboot.core.foundation.context.RequestContextModel;
@Service("remoteSecurityService")
public class RemoteSecurityService {
......@@ -64,6 +67,8 @@ public class RemoteSecurityService {
@Autowired
private IAMOSSecurityServer iAmosSecurityServer;
@Autowired
private JCSFeignClient jcsFeignClient;
//根据公司名称获取公司人
public List<CompanyModel> listCompanyTree(String toke, String product, String appKey, String companyName) {
......@@ -747,6 +752,35 @@ public class RemoteSecurityService {
return handleArray(feignClientResult, DepartmentModel.class);
}
/**
* 平台消息-添加
*/
public void addMessage(RequestContextModel requestContextModel, MessageModel model){
RequestContext.setToken(requestContextModel.getToken());
RequestContext.setProduct(requestContextModel.getProduct());
RequestContext.setAppKey(requestContextModel.getAppKey());
try {
FeignClientResult<MessageModel> messageModelFeignClientResult = Systemctl.messageClient.create(model);
} catch (InnerInvokException e) {
e.printStackTrace();
}
}
/**
* 机场用户id批量获取平台用户id
*/
public List<String> getAmosIdListByUserIds(RequestContextModel requestContextModel, String orgUserIds){
RequestContext.setToken(requestContextModel.getToken());
RequestContext.setProduct(requestContextModel.getProduct());
RequestContext.setAppKey(requestContextModel.getAppKey());
List<String> userNames = new ArrayList<>();
try {
userNames = (List<String>)jcsFeignClient.getAmosIdListByUserIds(orgUserIds).getResult();
} catch (InnerInvokException e) {
e.printStackTrace();
}
return userNames;
}
private <T> List<T> handleArray(FeignClientResult feignClientResult, Class<T> t) {
List<T> list = new ArrayList<>();
......
......@@ -40,7 +40,7 @@
<logger name="org.springframework" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="DEBUG">
<root level="INFO">
<!-- --><appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment