From a5d9ce0a34a7850599710204406bdfd202e20249 Mon Sep 17 00:00:00 2001 From: Superman_Main <396572590@qq.com> Date: Sat, 20 Nov 2021 21:44:40 +0800 Subject: [PATCH] feat: There is no way the --- .../task/TodoTaskController.java | 164 ++++++++-------- .../business_mq/service/CreateMQService.java | 14 ++ .../service/SendDeleteMQService.java | 181 ++++++++++++++++++ .../service/WebServiceOAService.java | 9 + .../service/impl/WebServiceOAServiceImpl.java | 146 +++++++++++++- .../todoResult/NotifyTodoAppDeleteResult.java | 26 +++ 6 files changed, 456 insertions(+), 84 deletions(-) create mode 100644 src/main/java/com/ydw/bat/wkflow/business_mq/service/SendDeleteMQService.java create mode 100644 src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoResult/NotifyTodoAppDeleteResult.java diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index ca0db7f0..9ab88979 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -223,6 +223,7 @@ public class TodoTaskController extends BaseAction { List list1 = iBusProcessNewService.list(queryWrapper1); if (list1.size() > 0) { for (BusProcessNew busProcessNew : list1) { + webServiceOAService.deleteOAByTaskIdResetTodo(busProcessNew,assignee); busProcessNew.setUserId(assignee); iBusProcessNewService.saveOrUpdate(busProcessNew); } @@ -240,86 +241,86 @@ public class TodoTaskController extends BaseAction { } //发送邮件 - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("PRC_ID", pId); - BusProcessName name = iBusProcessNameService.getOne(queryWrapper); - String type = name.getPrcType(); - Integer typeInt = 99; - if (StringUtils.isNotEmpty(type)){ - typeInt = Integer.valueOf(type); - } - switch (typeInt){ - case 1: - type = "法规入库及评估流程"; - break; - case 2: - type = "标准法规技术储备评估流程"; - break; - case 3: - type = "项目评估流程"; - break; - case 4: - type = "企标制修订流程"; - break; - case 5: - type = "未符合项跟踪流程"; - break; - case 6: - type = "企标制修订申请流程"; - break; - case 7: - type = "企标废止流程"; - break; - case 8: - type = "企标延期制修订申请流程"; - break; - case 9: - type = "标准采购流程"; - break; - case 10: - type = "工作组会前申请流程"; - break; - case 11: - type = "企标制修订评估流程"; - break; - case 12: - type = "企标勘误流程"; - break; - case 13: - type = "行政管理要求评估流程"; - break; - case 14: - type = "政策入库及评估流程"; - break; - case 15: - type = "标准翻译申请流程"; - break; - case 16: - type = "工作组会后管理流程"; - break; - case 17: - type = "企标备案流程"; - break; - case 18: - type = "标准法规清单发布/更新流程"; - break; - case 19: - type = "企标复审流程"; - break; - default: - break; - } - ResponseMessage userVOResponseMessage = lawsUserInfoService.getById(userId); - UserVO userVO = userVOResponseMessage.getData(); - String userName = ""; - if (null != userVO) { - userName = userVO.getUname(); - } - String content = "您好,"+name.getPrcNum()+"-"+ name.getPrcName() +" "+ userName +"委托您处理待办任务 ,请登录全球标准法规管理系统 ( http://39.98.140.126:10005/#/login ) 办理:链接( http://39.98.140.126:10005/#/processCenter?tabsName=ProcessCenter )。\n" + - " ——来自 全球标准法规管理系统"; - lawsUserInfoService.sendEmail(userId,content,"GSRM——【待办任务】["+type+"]有您的待办任务"); - - logger.info("task {} find " + taskId); +// QueryWrapper queryWrapper = new QueryWrapper(); +// queryWrapper.eq("PRC_ID", pId); +// BusProcessName name = iBusProcessNameService.getOne(queryWrapper); +// String type = name.getPrcType(); +// Integer typeInt = 99; +// if (StringUtils.isNotEmpty(type)){ +// typeInt = Integer.valueOf(type); +// } +// switch (typeInt){ +// case 1: +// type = "法规入库及评估流程"; +// break; +// case 2: +// type = "标准法规技术储备评估流程"; +// break; +// case 3: +// type = "项目评估流程"; +// break; +// case 4: +// type = "企标制修订流程"; +// break; +// case 5: +// type = "未符合项跟踪流程"; +// break; +// case 6: +// type = "企标制修订申请流程"; +// break; +// case 7: +// type = "企标废止流程"; +// break; +// case 8: +// type = "企标延期制修订申请流程"; +// break; +// case 9: +// type = "标准采购流程"; +// break; +// case 10: +// type = "工作组会前申请流程"; +// break; +// case 11: +// type = "企标制修订评估流程"; +// break; +// case 12: +// type = "企标勘误流程"; +// break; +// case 13: +// type = "行政管理要求评估流程"; +// break; +// case 14: +// type = "政策入库及评估流程"; +// break; +// case 15: +// type = "标准翻译申请流程"; +// break; +// case 16: +// type = "工作组会后管理流程"; +// break; +// case 17: +// type = "企标备案流程"; +// break; +// case 18: +// type = "标准法规清单发布/更新流程"; +// break; +// case 19: +// type = "企标复审流程"; +// break; +// default: +// break; +// } +// ResponseMessage userVOResponseMessage = lawsUserInfoService.getById(userId); +// UserVO userVO = userVOResponseMessage.getData(); +// String userName = ""; +// if (null != userVO) { +// userName = userVO.getUname(); +// } +// String content = "您好,"+name.getPrcNum()+"-"+ name.getPrcName() +" "+ userName +"委托您处理待办任务 ,请登录全球标准法规管理系统 ( http://39.98.140.126:10005/#/login ) 办理:链接( http://39.98.140.126:10005/#/processCenter?tabsName=ProcessCenter )。\n" + +// " ——来自 全球标准法规管理系统"; +// lawsUserInfoService.sendEmail(userId,content,"GSRM——【待办任务】["+type+"]有您的待办任务"); +// +// logger.info("task {} find " + taskId); return WrapMapper.ok("改派成功"); } @@ -2290,6 +2291,9 @@ public class TodoTaskController extends BaseAction { @GetMapping("/forceRecall") public Wrapper forceRecall(String prcId) { runtimeService.deleteProcessInstance(prcId, "用户强制撤回"); + if(StringUtils.isNotBlank(prcId)){ + webServiceOAService.deleteOAByPid(prcId); + } Map map = new HashMap(); map.put("P_ID", prcId); iBusProcessNewService.removeByMap(map); diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java index f5df0403..1a488b10 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/CreateMQService.java @@ -20,6 +20,20 @@ public class CreateMQService { @Value("${oa.flag}") private Boolean oaFlag; + + /** + * @author: super_liu + * @date: 2021年09月17日 14:40 + **/ + public void setTodoDeleteMq(String object){ + + if(oaFlag){ + //发送消息队列 + this.rabbitTemplate.convertAndSend("sendDelete-exchange_MQ_GSAR", "sendDelete-key_MQ_GSAR", object); + + } + } + /** * @author: super_liu * @date: 2021年09月17日 14:40 diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendDeleteMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendDeleteMQService.java new file mode 100644 index 00000000..473e56ce --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendDeleteMQService.java @@ -0,0 +1,181 @@ +package com.ydw.bat.wkflow.business_mq.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.rabbitmq.client.Channel; +import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; +import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage; +import com.ydw.bat.wkflow.business_main.datas.entity.SendTodoLog; +import com.ydw.bat.wkflow.business_main.datas.entity.UserVO; +import com.ydw.bat.wkflow.business_main.datas.mapper.SendTodoLogMapper; +import com.ydw.bat.wkflow.business_main.datas.service.ISendTodoLogService; +import com.ydw.bat.wkflow.business_oa.utils.EmailUtils; +import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; +import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext; +import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult; +import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult; +import net.sf.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.messaging.Message; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Component +public class SendDeleteMQService { + + private static final Logger logger = LoggerFactory.getLogger(SendDeleteMQService.class); + + @Autowired + private CreateMQService convertMq; + + @Autowired + private EmailUtils emailUtils; + + @Autowired + private WebServiceOAService webServiceOAService; + + @Autowired + private SendTodoLogMapper sendTodoLogMapper; + + @Autowired + private LawsUserInfoService lawsUserInfoService; + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(value = "createMQDelete_SQ_GSAR", durable = "true"), + exchange = @Exchange(value = "sendDelete-exchange_MQ_GSAR", ignoreDeclarationExceptions = "true"), + key = "sendDelete-key_MQ_GSAR")) + public void createMQDone(String object, Message message, Channel channel) throws Exception{ + try{ + try{ + Thread.sleep(5000); + insertOrUpdateInfo(object); + }catch(InterruptedException e){ + logger.error(e.toString()); + Thread.currentThread().interrupt(); + } + } catch (Exception e) { + logger.error("消息队列进入添加数据方法前失败!"); + logger.error(e.getMessage(),e); + }finally { + Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); + channel.basicAck(tag,false); + logger.debug("消息确认成功!!!!!!!!!"); + } + + } + + public void insertOrUpdateInfo(String object) throws Exception { + Map objectMap = JSONObject.fromObject(object); + String todoId = objectMap.get("todoId").toString(); + try { + NotifyTodoAppDeleteResult todoAppResult = webServiceOAService.setTodoDelete(object); + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + + if(todoAppResult.getSign().equals("0") || todoAppResult.getMassage().equals("操作成功")){ + logger.info("--------------------------成功发送 ESP 已办任务----------------------------"); + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID",todoId); + wrapper.eq("MSG_TYPE","3"); + List list = sendTodoLogMapper.selectList(wrapper); + if(!list.isEmpty()) { + SendTodoLog sendTodoLog = list.get(0); + sendTodoLog.setOperMesg(todoAppResult.getMassage()); + sendTodoLog.setMsgStatus("3"); + sendTodoLog.setCreateTime(sdf.format(new Date())); + sendTodoLog.setUpdateTime(sdf.format(new Date())); + sendTodoLogMapper.updateById(sendTodoLog); + }else { + sendTodoSave(object,todoId, sdf, "2",todoAppResult.getMassage()); + } + }else { + logger.error("ESP 发送待办任务异常 :" + "SIGN: "+todoAppResult.getSign()+",MASSAGE: "+todoAppResult.getMassage()); + // 重试发送待办 + logger.info("重试发送待办"); + this.restartSendMq(object,todoId,todoAppResult.getMassage()); + } + }catch (Exception e){ + logger.error(e.getMessage(),e); + this.restartSendMq(object,todoId, e.getMessage()); + } + } + + public void restartSendMq(String object,String todoId,String operMesg) throws Exception{ + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID",todoId); + wrapper.eq("MSG_TYPE","3"); + List list = sendTodoLogMapper.selectList(wrapper); + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + if(!list.isEmpty()){ + SendTodoLog sendTodoLog = list.get(0); + int againNumNew = Integer.valueOf(sendTodoLog.getErrNum()); + if(againNumNew >= 6){ + // 发送待办 或 发送给管理员邮箱 + logger.info("发送失败6次,发送给管理员邮箱"); + List emailList = new ArrayList<>(); + ResponseMessage byId = lawsUserInfoService.getById("WY8J26MH23"); + // 占时指定admin用户邮箱 + emailList.add(byId == null ? "" : (byId.getData().getEmail() != null ? byId.getData().getEmail() : "")); + String[] arr = emailList.toArray(new String[emailList.size()]); + String title = "OA请求发送失败6次"; + String countText = "

您好:

" + + ""+"OA请求发送失败6次,请线下协调处理"+"
"; + emailUtils.sendMsgFeign(arr,title,countText); + + }else { + restSendDoneTodo(object, sdf, sendTodoLog, againNumNew,operMesg); + } + + }else { + sendTodoSave(object,todoId, sdf, "3",operMesg); + } + } + + private void restSendDoneTodo(String object, SimpleDateFormat sdf, SendTodoLog sendTodoLog, int againNumNew,String operMesg) throws Exception{ + // 发送失败连续持续3次, 如果在失败等待1个小时后重试3次 + if(againNumNew < 6){ + Thread.sleep(3000); + logger.info("发送失败连续持续"+againNumNew+"次,存入延迟重试队列!!!!!!!!!"); + + }else { + logger.info("发送失败连续持续"+againNumNew+"次!!"); + } + sendTodoLog.setErrNum(sendTodoLog.getErrNum()+1); + sendTodoLog.setUpdateTime(sdf.format(new Date())); + sendTodoLog.setOperMesg(operMesg); + sendTodoLogMapper.updateById(sendTodoLog); + convertMq.setTodoDeleteMq(object); + logger.info("已重新加入延迟队列"); + } + + private void sendTodoSave(String object, String todoId, SimpleDateFormat sdf, String s,String operMesg) { + SendTodoLog sendTodoLog = new SendTodoLog(); + sendTodoLog.setMsgType("3"); + sendTodoLog.setTodoId(todoId); + sendTodoLog.setMesg(object); + sendTodoLog.setMsgStatus(s); + sendTodoLog.setErrNum(1); + sendTodoLog.setOperMesg(operMesg); + sendTodoLog.setCreateTime(sdf.format(new Date())); + sendTodoLog.setUpdateTime(sdf.format(new Date())); + sendTodoLogMapper.insert(sendTodoLog); + if(s.equals("2")){ + logger.info("发送成功,存入OA日志"); + }else{ + convertMq.setTodoDeleteMq(object); + logger.info("已重新加入延迟队列"); + } + + } + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java index 508f6c53..67654f89 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/WebServiceOAService.java @@ -2,15 +2,24 @@ package com.ydw.bat.wkflow.business_oa.webService.service; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext; +import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult; import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult; import org.activiti.engine.task.Task; +import java.util.List; + public interface WebServiceOAService { + void deleteOAByPid(String pId); + + void deleteOAByTaskIdResetTodo(BusProcessNew busProcessNew,String assignee); + void completeOA(Task task); NotifyTodoAppResult sendTodo(BusProcessNew busProcessNew) throws Exception; NotifyTodoAppResult setTodoDone(NotifyTodoSendContext notifyTodoSendContext) throws Exception; + NotifyTodoAppDeleteResult setTodoDelete(String object) throws Exception; + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java index e92bd717..925bb834 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/service/impl/WebServiceOAServiceImpl.java @@ -1,12 +1,11 @@ package com.ydw.bat.wkflow.business_oa.webService.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; -import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; -import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; -import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage; -import com.ydw.bat.wkflow.business_main.datas.entity.UserVO; +import com.ydw.bat.wkflow.business_main.datas.entity.*; +import com.ydw.bat.wkflow.business_main.datas.mapper.SendTodoLogMapper; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; @@ -16,11 +15,13 @@ import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.business_oa.webService.todoContent.HEAD; import com.ydw.bat.wkflow.business_oa.webService.todoContent.JsonSend; import com.ydw.bat.wkflow.business_oa.webService.todoContent.NotifyTodoSendContext; +import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppDeleteResult; import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult; import com.ydw.bat.wkflow.util.SpringContextUtil; import net.sf.json.JSONArray; import okhttp3.Credentials; import org.activiti.engine.task.Task; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -59,6 +60,9 @@ public class WebServiceOAServiceImpl implements WebServiceOAService { @Autowired private OkHttpUtil okHttpUtil; + @Autowired + private SendTodoLogMapper sendTodoLogMapper; + @Autowired private LawsUserInfoService lawsUserInfoService; @@ -72,6 +76,140 @@ public class WebServiceOAServiceImpl implements WebServiceOAService { credentials = Credentials.basic(api_key,api_secret); } + /** + * 单个删除OA待办 及 重发待办 + */ + @Override + @Async + public void deleteOAByTaskIdResetTodo(BusProcessNew busProcessNew,String assignee){ + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + log.info("--------------------------ESP 发送删除待办任务 及 再次发送待办----------------------------"); + + if(busProcessNew != null && StringUtils.isNotBlank(busProcessNew.getId())){ + + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID",busProcessNew.getId()); + wrapper.eq("MSG_TYPE","0"); + List list = sendTodoLogMapper.selectList(wrapper); + if(!list.isEmpty()){ + net.sf.json.JSONObject fromObject = net.sf.json.JSONObject.fromObject(list.get(0).getMesg()); + net.sf.json.JSONObject jsonObjectFilter = net.sf.json.JSONObject.fromObject(list.get(0).getMesg()); + jsonObjectFilter = jsonObjectFilter.discard("PId"); + jsonObjectFilter.put("pid",fromObject.getString("PId")); + BusProcessNew object = JSON.parseObject(jsonObjectFilter.toString(),BusProcessNew.class); + + List notifyTodoSendContexts = new ArrayList<>(); + NotifyTodoSendContext notifyTodoSendContext = new NotifyTodoSendContext(); + notifyTodoSendContext.setAppName("FOTON"); + notifyTodoSendContext.setModelId(busProcessNew.getId()); + notifyTodoSendContext.setModelName(object.getTaskInfo()); + notifyTodoSendContext.setType("1"); + notifyTodoSendContext.setOptType("2"); + Map map = new HashMap<>(); + ResponseMessage byId = lawsUserInfoService.getById(busProcessNew.getUserId()); + map.put("LoginName",byId == null ? "" : byId.getData().getAccount()); + JSONObject jsonLoginName = new JSONObject(map); + notifyTodoSendContext.setTargets(jsonLoginName.toJSONString()); + notifyTodoSendContext.setUserId(busProcessNew.getUserId()); + notifyTodoSendContexts.add(notifyTodoSendContext); + Map objectMap = new TreeMap<>(); + objectMap.put("todoId",busProcessNew.getId()); + objectMap.put("list",notifyTodoSendContexts); + net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(objectMap); + oaService.setTodoDeleteMq(jsonObject.toString()); + + // 重新发送OA待办 + object.setUserId(assignee); + oaService.sendTodoMq(object); + } + } + } + + /** + * 批量删除OA待办 + * @param pId + */ + @Override + @Async + public void deleteOAByPid(String pId){ + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + log.info("--------------------------ESP 批量发送删除待办任务----------------------------"); + + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",pId); + List list = iBusProcessNewService.list(queryWrapper1); + if(!list.isEmpty()){ + List notifyTodoSendContexts = new ArrayList<>(); + list.forEach(busProcessNew -> { + NotifyTodoSendContext notifyTodoSendContext = new NotifyTodoSendContext(); + notifyTodoSendContext.setAppName("FOTON"); + notifyTodoSendContext.setModelId(busProcessNew.getId()); + notifyTodoSendContext.setModelName(busProcessNew.getTaskInfo()); + notifyTodoSendContext.setType("1"); + notifyTodoSendContext.setOptType("2"); + Map map = new HashMap<>(); + ResponseMessage byId = lawsUserInfoService.getById(busProcessNew.getUserId()); + map.put("LoginName",byId == null ? "" : byId.getData().getAccount()); + JSONObject jsonLoginName = new JSONObject(map); + notifyTodoSendContext.setTargets(jsonLoginName.toJSONString()); + notifyTodoSendContext.setUserId(busProcessNew.getUserId()); + notifyTodoSendContexts.add(notifyTodoSendContext); + }); + Map map = new TreeMap<>(); + map.put("todoId",pId); + map.put("list",notifyTodoSendContexts); + net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(map); + oaService.setTodoDeleteMq(jsonObject.toString()); + } + } + + @Override + @Async + public NotifyTodoAppDeleteResult setTodoDelete(String object) throws Exception{ + Map objectMap = net.sf.json.JSONObject.fromObject(object); + List notifyTodoSendContexts = JSONObject.parseArray(objectMap.get("list").toString(), NotifyTodoSendContext.class); + NotifyTodoAppDeleteResult notifyTodoAppResult = new NotifyTodoAppDeleteResult(); + String result = ""; + SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + + JsonSend jsonSend = new JsonSend(); + HEAD head = new HEAD(); + head.setACCOUNT("OA"); + head.setBIZTRANSACTIONID("SYC_161320210206133219"); + head.setCONSUMER("FOTON"); + head.setCOUNT("1"); + head.setPASSWORD("TEST_oa201611241710"); + head.setSRVLEVEL("1"); + List list = new ArrayList<>(); + list.addAll(notifyTodoSendContexts); + jsonSend.setHEAD(head); + jsonSend.setLIST(list); + net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonSend); + Map mapCtr = new TreeMap<>(); + mapCtr.put("Authorization",credentials); + log.info("处理完文件数据,开始请求发送已办接口数据:【"+sdf.format(new Date())+"】"); + result = okHttpUtil.postForJson("http://172.24.12.64:85/WP_FOTON_FSOA/APP_DOC_SERVICES/Proxy_Services/TA_OA/DOC_SYC_1020_SendRemoveTodo_PS",json.toString(),mapCtr); + log.info("请求发送已办接口完毕,返回响应状态:【"+sdf.format(new Date())+"】"); +// JSONObject jsonObject = JSONObject.parseObject(result); + if(!result.contains("操作成功")){ + log.error("请求发送已办接口出现异常:"+result); + notifyTodoAppResult.setSign("1"); + notifyTodoAppResult.setMassage(result); + }else { + log.info("--------------------------成功发送 ESP 删除待办 "+object+"----------------------------"); + log.info("okHttp请求发送已办接口成功结果:"+result); + notifyTodoAppResult = (NotifyTodoAppDeleteResult) net.sf.json.JSONObject.toBean(net.sf.json.JSONObject.fromObject(result), NotifyTodoAppDeleteResult.class); + } +// try { +// +// } catch (Exception e) { +// log.error(errMes, e.getMessage()); +// } + + return notifyTodoAppResult; + } + + @Override @Async public void completeOA(Task task){ diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoResult/NotifyTodoAppDeleteResult.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoResult/NotifyTodoAppDeleteResult.java new file mode 100644 index 00000000..1a0c7989 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/todoResult/NotifyTodoAppDeleteResult.java @@ -0,0 +1,26 @@ +package com.ydw.bat.wkflow.business_oa.webService.todoResult; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: TODO + * @author: super_liu + * @date: 2021年09月08日 15:23 + */ +@Data +public class NotifyTodoAppDeleteResult { + +// @ApiModelProperty(value = "返回状态 0:表示未操作 1:表示操作失败 2:表示操作成功") + @ApiModelProperty(value = "返回状态 0:表示操作成功 1:表示操作失败") + private String sign; + +// @ApiModelProperty(value = "返回信息 " + +// "返回状态值为0时,该值返回空 " + +// "返回状态值为1时,该值错误信息 " + +// "返回状态值为2时,该值返回空") + @ApiModelProperty(value = "返回信息 " + + "返回状态值为0时,表示操作成功 " + + "返回状态值为1时,该值错误信息 ") + private String massage; +}