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 7e08490f..173fe915 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 @@ -2230,8 +2230,10 @@ public class TodoTaskController extends BaseAction { if (task.getAssignee() != null && !task.getAssignee().equals("")) { ResponseMessage byId = lawsUserInfoService.getById(task.getAssignee()); if (byId.getData() != null) { - if (assignee.indexOf(byId.getData().getUname()) == -1) { - assignee += ((byId.getData().getOrgName() != null && !byId.getData().getOrgName().equals("")) ? byId.getData().getOrgName() + "-" + byId.getData().getUname() : byId.getData().getUname()) + ","; + if (byId.getData().getUname() != null){ + if (assignee.indexOf(byId.getData().getUname()) == -1) { + assignee += ((byId.getData().getOrgName() != null && !byId.getData().getOrgName().equals("")) ? byId.getData().getOrgName() + "-" + byId.getData().getUname() : byId.getData().getUname()) + ","; + } } } } @@ -2717,4 +2719,44 @@ public class TodoTaskController extends BaseAction { // public List findProcessNameByPrcNum(@RequestBody String taskId) { // return iBusProcessNameService.findBusProcessNameForEnd(taskId); // } + // + @ApiOperation(value = "取消OA消息通知") + @PostMapping("/cancelOAInform") + public String cancelOAInform(@RequestParam("id") String id) { + //查询出当前数据 + BusProcessName busProcessName = iBusProcessNameService.selectById(id); + //在mes字段中增添一个属性 用来关联是否oa提醒 + String mes = busProcessName.getMes(); + JSONObject jsonObject = JSONObject.parseObject(mes); + Map stringObjectMap = JsonUtil.objToMap(jsonObject); + stringObjectMap.put("oa_cancelOAInform","1"); + String s = JSON.toJSONString(stringObjectMap); + iBusProcessNameService.updateById(busProcessName); + return null; + } + + @ApiOperation(value = "我的待办任务列表速度优化项(首页OA提醒)") + @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), + @ApiImplicitParam(name = "current", value = "当前页"), + @ApiImplicitParam(name = "size", value = "每页条数"), + @ApiImplicitParam(name = "userId", value = "用户Id")}) + @PostMapping("/todoTaskListNewOAInform") + public List todoTaskListNewOAInform(@RequestBody TaskCommonQuery taskCommonQuery) { + // 创建查询对象 + List busProcessNames=new ArrayList<>(); + busProcessNames=iBusProcessNameService.todoTask(taskCommonQuery); + // 判断当前数据是否被取消OA提醒 + for (BusProcessName data: busProcessNames){ + String mes = data.getMes(); + JSONObject jsonObject = JSONObject.parseObject(mes); + Map stringObjectMap = JsonUtil.objToMap(jsonObject); + Object oa_cancelOAInform = stringObjectMap.get("oa_cancelOAInform"); + if(oa_cancelOAInform != null){ + //证明取消oa提醒 + busProcessNames.remove(data); + } + } + return busProcessNames; + } + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java b/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java index b2ac573c..2291476f 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_auth/LawsUserInfoService.java @@ -213,4 +213,7 @@ public interface LawsUserInfoService { @GetMapping("/esRevisePlan/es-revise-plan/getAllPlansByWk") public List getAllPlansByWk(@RequestParam("esName") String esName); + + @GetMapping("/esRevisePlan/es-revise-plan/oaUpdatePlans") + void updateEsRevisePlan(@RequestParam("esId")String esId, @RequestParam("date")Date date,@RequestParam("s") String s); } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessNewController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessNewController.java index d0638029..cad134c6 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessNewController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessNewController.java @@ -1,6 +1,7 @@ package com.ydw.bat.wkflow.business_main.datas.controller; +import com.baomidou.mybatisplus.extension.api.R; import com.tmsps.fk.common.base.action.BaseAction; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; @@ -61,6 +62,12 @@ public class BusProcessNewController extends BaseAction { return findtodotask; } + @ApiOperation(value = "首页流程计划立项查询mesg") + @GetMapping("/selectBusProcessNew") + public String selectBusProcessNew(String taskId) { + return iBusProcessNewService.selectBusProcessNew(taskId); + } + } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsRevisePlanDTO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsRevisePlanDTO.java index b7065703..064e26d2 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsRevisePlanDTO.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/EsRevisePlanDTO.java @@ -113,4 +113,13 @@ public class EsRevisePlanDTO { @ApiModelProperty(value = "立项单") @TableField("LXD") private String lxd; + + @ApiModelProperty(value = "OA发送时间记录") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private Date oaDateIime; + + @ApiModelProperty(value = "OA是否已经发送") + @TableField("OA_IS_SEND") + private String oaIsSend; } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNameService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNameService.java index 4f4d534e..e599d138 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNameService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNameService.java @@ -24,4 +24,6 @@ public interface IBusProcessNameService extends IService { String delDB(List id); + + BusProcessName selectById(String id); } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNewService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNewService.java index 96d479ee..2a6378cf 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNewService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IBusProcessNewService.java @@ -36,4 +36,5 @@ public interface IBusProcessNewService extends IService { List everyDayTenOlock(); List everyDayTenOlockSAM(); + String selectBusProcessNew(String taskId); } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessNameServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessNameServiceImpl.java index ec1737e9..9943b9f3 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessNameServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/BusProcessNameServiceImpl.java @@ -7,6 +7,7 @@ import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -43,4 +44,9 @@ public class BusProcessNameServiceImpl extends ServiceImpl busProcessNewQueryWrapper = new QueryWrapper<>(); + busProcessNewQueryWrapper.eq("TASK_id",taskId); + BusProcessNew busProcessNew = baseMapper.selectOne(busProcessNewQueryWrapper); + if(busProcessNew!=null){ + Map mapType = JSON.parseObject(busProcessNew.getMesg(),Map.class); + Object nowEsIdObject = mapType.get("nowEsId"); + if(nowEsIdObject!=null){ + String nowEsId = nowEsIdObject.toString(); + return nowEsId; + } + } + + return null; + } + } 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 b4b40e6c..18a86895 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 @@ -211,6 +211,11 @@ public class WebServiceOAServiceImpl implements WebServiceOAService { map.put("list",notifyTodoSendContexts); net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(map); oaService.setTodoDeleteMq(jsonObject.toString()); + try { + setTodoDelete(jsonObject.toString()); + } catch (Exception e) { + e.printStackTrace(); + } } } diff --git a/src/main/java/com/ydw/bat/wkflow/config/ScheduledJobEsPlan.java b/src/main/java/com/ydw/bat/wkflow/config/ScheduledJobEsPlan.java index 6df44073..0482ac14 100644 --- a/src/main/java/com/ydw/bat/wkflow/config/ScheduledJobEsPlan.java +++ b/src/main/java/com/ydw/bat/wkflow/config/ScheduledJobEsPlan.java @@ -5,9 +5,11 @@ import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.EsPrcRelation; import com.ydw.bat.wkflow.business_main.datas.entity.EsRevisePlanDTO; +import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessNameMapper; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IEsPrcRelationService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.business_oa.webService.service.impl.WebServiceOAServiceImpl; import com.ydw.bat.wkflow.util.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.TaskService; @@ -15,6 +17,7 @@ import org.activiti.engine.task.Task; import org.apache.commons.lang3.StringUtils; 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.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableScheduling; @@ -23,6 +26,7 @@ import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -35,49 +39,164 @@ public class ScheduledJobEsPlan { @Value("${isNotScheduled}") private boolean isNotScheduled; //是否开启定时器 + @Autowired + WebServiceOAServiceImpl webServiceOAService; + +// @Scheduled(cron = "0 0 2 * * ?") //每天的凌晨2点执行 +// @Async +// public void SchedulingTask() { +// if(isNotScheduled) { +// logger.info("============企标计划定时任务开始==========="); +// LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); +// IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class); +// TaskService taskService = SpringContextUtil.getBean(TaskService.class); +// +// List esRevisePlanDTOList = lawsUserInfoService.getAllPlansByWk(null); // 查询 制定中,修订中的企标计划 +// // 计划标准初稿时间前一个月的企标计划 +// SimpleDateFormat sdfQuery = new SimpleDateFormat("yyyy-MM-dd"); +// Calendar calendar = Calendar.getInstance(); +// calendar.add(Calendar.MONTH, 1); +// String endDate = sdfQuery.format(calendar.getTime()); +// List esRevisePlanDTOList2 = esRevisePlanDTOList.stream() +// .filter(e -> endDate.equals(sdfQuery.format(e.getDraftTime()))) +// .collect(Collectors.toList()); +// if (!esRevisePlanDTOList2.isEmpty()) { +// for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList2) { +// List esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId()); +// if (esPrcRelationList.isEmpty()) { +// continue; +// } +// String esId = esPrcRelationList.get(0).getEsId(); +// String prcIdGk = esPrcRelationList.get(0).getPrcIdGk(); +// String oaFlag = esPrcRelationList.get(0).getOaFlag(); +// // 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务 +// if (StringUtils.isNotBlank(prcIdGk)) { +// List list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list(); +// if (!list2.isEmpty()) { +// String nowTaskInfo = list2.get(0).getName(); +// if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) { +// // 再次发送待办 +// logger.info("============再次发送待办的企标计划" + esRevisePlanDTO.getEsName() +"==========="); +// sendOATodo(list2.get(0)); +// +// // 更新 状态为待办 +// esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null); +// } +// } +// } +// } +// } +// logger.info("============企标计划定时任务结束==========="); +// } +// } + @Scheduled(cron = "0 0 2 * * ?") //每天的凌晨2点执行 @Async - public void SchedulingTask() { + public void SchedulingTaskInfo() { if(isNotScheduled) { logger.info("============企标计划定时任务开始==========="); - LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); - IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class); - TaskService taskService = SpringContextUtil.getBean(TaskService.class); + { + LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class); + IEsPrcRelationService esPrcRelationService = SpringContextUtil.getBean(IEsPrcRelationService.class); + TaskService taskService = SpringContextUtil.getBean(TaskService.class); - List esRevisePlanDTOList = lawsUserInfoService.getAllPlansByWk(null); // 查询 制定中,修订中的企标计划 - // 计划标准初稿时间前一个月的企标计划 - SimpleDateFormat sdfQuery = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.MONTH, 1); - String endDate = sdfQuery.format(calendar.getTime()); - List esRevisePlanDTOList2 = esRevisePlanDTOList.stream() - .filter(e -> endDate.equals(sdfQuery.format(e.getDraftTime()))) - .collect(Collectors.toList()); - if (!esRevisePlanDTOList2.isEmpty()) { - for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList2) { - List esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId()); - if (esPrcRelationList.isEmpty()) { - continue; - } - String esId = esPrcRelationList.get(0).getEsId(); - String prcIdGk = esPrcRelationList.get(0).getPrcIdGk(); - String oaFlag = esPrcRelationList.get(0).getOaFlag(); - // 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务 - if (StringUtils.isNotBlank(prcIdGk)) { - List list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list(); - if (!list2.isEmpty()) { - String nowTaskInfo = list2.get(0).getName(); - if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) { - // 再次发送待办 - logger.info("============再次发送待办的企标计划" + esRevisePlanDTO.getEsName() +"==========="); - sendOATodo(list2.get(0)); - - // 更新 状态为待办 - esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null); + List esRevisePlanDTOList = lawsUserInfoService.getAllPlansByWk(null); // 查询 制定中,修订中的企标计划 + //esRevisePlanDTOList 如果 计划标准初稿时间前一个月的企标计划 以前发送过, + if(!esRevisePlanDTOList.isEmpty()){ + for (EsRevisePlanDTO data : esRevisePlanDTOList) { + if(StringUtils.isNotBlank(data.getOaIsSend()) && data.getOaIsSend().equals("1")){ + //等于1 则证明已经发送了 三十天的OA信息 判断是否是已经发送三天 如果是 则撤回发送 + if(data.getOaDateIime()!=null){ + // 三天时间的时间戳 86400000 * 3 + long threeDay = 259200000; + long time1 = new Date().getTime(); + long oaTime = data.getOaDateIime().getTime(); + //long l = threeDay; + long l = time1 - oaTime; + if( l > threeDay || l == threeDay){ + //证明已经过了三天 则发送撤回信息 + List esPrcRelationList = esPrcRelationService.list(data.getId()); + if (!esPrcRelationList.isEmpty()) { + String esId = esPrcRelationList.get(0).getEsId(); + lawsUserInfoService.updateEsRevisePlan(esId,new Date(),"0"); + if(esPrcRelationList.get(0) != null && StringUtils.isNotBlank(esPrcRelationList.get(0).getPrcId())) { + webServiceOAService.deleteOAByPid(esPrcRelationList.get(0).getPrcId()); + logger.info("============撤销OA待办消息==========="); + } + } + } } } } } + // 计划标准初稿时间前一个月的企标计划 + SimpleDateFormat sdfQuery = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, 1); + String endDate = sdfQuery.format(calendar.getTime()); + List esRevisePlanDTOList2 = esRevisePlanDTOList.stream() + .filter(e -> endDate.equals(sdfQuery.format(e.getDraftTime()))) + .collect(Collectors.toList()); + if (!esRevisePlanDTOList2.isEmpty()) { + for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList2) { + List esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId()); + if (esPrcRelationList.isEmpty()) { + continue; + } + String esId = esPrcRelationList.get(0).getEsId(); + String prcIdGk = esPrcRelationList.get(0).getPrcIdGk(); + String oaFlag = esPrcRelationList.get(0).getOaFlag(); + // 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务 + if (StringUtils.isNotBlank(prcIdGk)) { + List list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list(); + if (!list2.isEmpty()) { + String nowTaskInfo = list2.get(0).getName(); + if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) { + // 再次发送待办 + sendOATodo(list2.get(0)); + // 更新 状态为待办 + esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null); + //存储 OA发的时间 和 修改是否发送过 + lawsUserInfoService.updateEsRevisePlan(esId,new Date(),"1"); + logger.info("============再次发送待办的企标计划" + esRevisePlanDTO.getEsName() +"==========="); + } + } + } + } + } + // 计划标准发布时间 前三天 + Calendar calendarTrid = Calendar.getInstance(); + calendarTrid.add(Calendar.DATE, 3); + String endDateTrid = sdfQuery.format(calendarTrid.getTime()); + List esRevisePlanDTOList3 = esRevisePlanDTOList.stream() + .filter(e -> endDateTrid.equals(sdfQuery.format(e.getReleaseTime()))) + .collect(Collectors.toList()); + if (!esRevisePlanDTOList3.isEmpty()) { + for (EsRevisePlanDTO esRevisePlanDTO : esRevisePlanDTOList3) { + List esPrcRelationList = esPrcRelationService.list(esRevisePlanDTO.getId()); + if (esPrcRelationList.isEmpty()) { + continue; + } + String esId = esPrcRelationList.get(0).getEsId(); + String prcIdGk = esPrcRelationList.get(0).getPrcIdGk(); + String oaFlag = esPrcRelationList.get(0).getOaFlag(); + // 判断对应 管控流程是否还在 技术标准起草节点, 且之前点过接受任务 + if (StringUtils.isNotBlank(prcIdGk)) { + List list2 = taskService.createTaskQuery().processInstanceId(prcIdGk).active().list(); + if (!list2.isEmpty()) { + String nowTaskInfo = list2.get(0).getName(); + if ("技术标准起草".equals(nowTaskInfo) && "0".equals(oaFlag)) { + // 再次发送待办 + logger.info("============再次发送待办的企标计划" + esRevisePlanDTO.getEsName() +"==========="); + sendOATodo(list2.get(0)); + // 更新 状态为待办 + esPrcRelationService.modifyEsPrcRelation(esId, null, "1", null); + } + } + } + } + } + //logger.info("============企标计划定时任务结束==========="); } logger.info("============企标计划定时任务结束==========="); } diff --git a/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/answerAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/answerAfter.java new file mode 100644 index 00000000..90a00879 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/answerAfter.java @@ -0,0 +1,97 @@ +package com.ydw.bat.wkflow.listener.quizOrAnswer; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.Datas; +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_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.listener.bussLibrary.BussUtils; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +//问答中心 答 后置 +public class answerAfter implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + //默认流程数据接口 + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + //流程节点信息 + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + //流程信息 + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + //根据流程id找到流程信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson", object); + + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.eq("TASK_ID", delegateTask.getId()); + BusProcessNew one = busBean.getOne(queryWrapper1); + String mesg = one.getMesg(); + JSONObject jsonObject = JSONObject.parseObject(mesg); + //截止时间 流程描述 创建人 + String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + String user = delegateTask.getVariable("prcCreateUser", String.class); + String username = delegateTask.getVariable("prcCreateUserName", String.class); + + String[] split1 = jsonObject.getString("askQuestions").substring(1, jsonObject.getString("askQuestions").length() - 2).split(","); + List asList = Arrays.asList(split1); + String str = ""; + String bzstr = ""; + for (int i = 0; i list = busBean.list(queryWrapper3); + if (!list.isEmpty()) { + BusProcessNew busProcessNews = list.get(0); + busProcessNews.setTaskInfo(delegateTask.getName()); + busProcessNews.setTaskId(delegateTask.getId()); + busProcessNews.setCommitText(object.getString("commentText")); + busProcessNews.setPrcName(prcName); + busBean.saveOrUpdate(busProcessNews); + } + } + // 提交时,结束流程,保存当前节点信息 + BussUtils.endFunAll(delegateTask, prcName, busBean, object, "0", busProcessNameService, "27"); + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/answerBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/answerBefore.java new file mode 100644 index 00000000..162df115 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/answerBefore.java @@ -0,0 +1,35 @@ +package com.ydw.bat.wkflow.listener.quizOrAnswer; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_mq.service.CreateMQService; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.List; + +//问答中心 答 前 +public class answerBefore implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + QueryWrapper queryWrapper1 = new QueryWrapper(); + queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); + queryWrapper1.eq("USER_ID",delegateTask.getAssignee()); + queryWrapper1.isNull("TASK_ID"); + List list = busBean.list(queryWrapper1); + if(!list.isEmpty()){ + BusProcessNew one1 = list.get(0); + one1.setTaskId(delegateTask.getId()); + busBean.saveOrUpdate(one1); + + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("standQA?prcType=27"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/quizAfter.java b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/quizAfter.java new file mode 100644 index 00000000..7ee844bc --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/quizAfter.java @@ -0,0 +1,118 @@ +package com.ydw.bat.wkflow.listener.quizOrAnswer; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.Datas; +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_main.datas.service.IDatasService; +import com.ydw.bat.wkflow.listener.bussLibrary.BussUtils; +import com.ydw.bat.wkflow.util.SpringContextUtil; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +// 问答中心 问 后 +public class quizAfter implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); + Datas datas = datasService.getOne(queryWrapper); + + JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); + delegateTask.setVariable("objectJson",object); + + String[] split = object.getString("questioner").substring(1, object.getString("questioner").length() - 1).split(","); + List nextUserList = Arrays.asList(split); + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + + String[] split1 = object.getString("askQuestions").substring(1, object.getString("askQuestions").length() - 2).split(","); + List asList = Arrays.asList(split1); + String str = ""; + String bzstr = ""; + for (int i = 0; i objects = new ArrayList<>(); + if(nextUserList != null && !nextUserList.isEmpty()){ + if(nextUserList.size()==1){ + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + //切割引号 + String questioner = nextUser.substring(1); + busProcessNewNext.setUserId(questioner); + objects.add(questioner); + busProcessNewNext.setPrcName(prcName); + busBean.save(busProcessNewNext); + } + }else { + for (String nextUser : nextUserList) { + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + //切割引号 + String questioner = nextUser.substring(1, nextUser.length() - 1); + busProcessNewNext.setUserId(questioner); + objects.add(questioner); + busProcessNewNext.setPrcName(prcName); + busBean.save(busProcessNewNext); + } + } + + delegateTask.setVariable("questionerList",objects); + } + + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/quizBefore.java b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/quizBefore.java new file mode 100644 index 00000000..d9a52c41 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/quizOrAnswer/quizBefore.java @@ -0,0 +1,11 @@ +package com.ydw.bat.wkflow.listener.quizOrAnswer; + +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +//问答中心 问 前 +public class quizBefore implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + + } +}