From a42587384c0b69bfa78e51809a6cec424d9def8f Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 6 Jan 2022 13:48:22 +0800 Subject: [PATCH 1/3] feat: There is no way the, --- .../BussLibraryProductC6After.java | 98 +++++++++++++++++++ .../BussLibraryProductC6Before.java | 41 ++++++++ 2 files changed, 139 insertions(+) create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6After.java create mode 100644 src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6Before.java diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6After.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6After.java new file mode 100644 index 00000000..5d3763d7 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6After.java @@ -0,0 +1,98 @@ +package com.ydw.bat.wkflow.listener.bussLibraryProduct; + +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.util.SpringContextUtil; +import org.activiti.engine.ActivitiException; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * 重新意见汇总及标准修改后 + */ +public class BussLibraryProductC6After 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); + + List nextUserList = new ArrayList(); + + if(StringUtils.isNotBlank(object.getString("bussUser7"))){ + delegateTask.setVariable("bussUser7",object.getString("bussUser7")); + nextUserList.add(object.getString("bussUser7")); + }else { + throw new ActivitiException("1#2标准化员不存在,请配置相关人员"); + } + + //截止时间 流程描述 创建人 + String user = object.getString("prcCreateUser"); + String username = object.getString("prcCreateUserName"); + String prcName = ""; + if(StringUtils.isNotBlank(object.getString("standName"))){ + prcName = object.getString("standName") + "-企标制修订-产品标准"; + }else { + prcName = "企标制修订-产品标准"; + } + QueryWrapper queryWrapper2 = new QueryWrapper(); + queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); + BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); + if(one1!=null){ +// one1.setOverTime(OVERTIME); + one1.setPrcType("buss2"); + one1.setPrcName(prcName); + one1.setCreatUser(user); + one1.setCreatUserName(username); + busProcessNameService.saveOrUpdate(one1); + } + + // 存储当前节点意见 + BusProcessNew busProcessNew = new BusProcessNew(); + busProcessNew.setMsgType("clause"); + busProcessNew.setPId(delegateTask.getProcessInstanceId()); + busProcessNew.setMesg(object.toJSONString()); + busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNew.setTaskId(delegateTask.getId()); + busProcessNew.setCommitText(object.getString("commentText")); + busProcessNew.setFinishFlag("0"); + busProcessNew.setTaskInfo(delegateTask.getName()); + busBean.save(busProcessNew); + + if(nextUserList != null && !nextUserList.isEmpty()){ + for(String nextUser : nextUserList){ + BusProcessNew busProcessNewNext = new BusProcessNew(); + busProcessNewNext.setMsgType("clause"); + busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); + busProcessNewNext.setMesg(object.toJSONString()); + busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey()); + busProcessNewNext.setFinishFlag("0"); + busProcessNewNext.setTaskInfo(delegateTask.getName()); + busProcessNewNext.setUserId(nextUser); + busProcessNewNext.setPrcName(prcName); + busBean.save(busProcessNewNext); + } + } + } + + private String verifyObj(String str){ + return (str == null || str.equals("")) ? "" : str; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6Before.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6Before.java new file mode 100644 index 00000000..47124144 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibraryProduct/BussLibraryProductC6Before.java @@ -0,0 +1,41 @@ +package com.ydw.bat.wkflow.listener.bussLibraryProduct; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +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 BussLibraryProductC6Before implements TaskListener{ + @Override + public void notify(DelegateTask delegateTask) { + IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.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); + + // 发送 oa 待办 设置 跳转页面 router ? 后面流程类型 + one1.setLink("bussLibraryProductC6?prcType=buss2"); + one1.setTaskInfo(delegateTask.getName()); + oaService.sendTodoMq(one1); + } + } +} From 14141938a532b6929015ebfa41fed08d1d1f6027 Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 6 Jan 2022 17:18:12 +0800 Subject: [PATCH 2/3] feat: There is no way the, --- .../controller/WebServiceOAController.java | 7 +++ .../service/WebServiceOAService.java | 2 + .../service/impl/WebServiceOAServiceImpl.java | 45 +++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java index c4a5a7f4..7dad0180 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java @@ -61,9 +61,16 @@ public class WebServiceOAController extends BaseAction { @Autowired private WebServiceOAService webServiceOAService; + @ApiOperation(value = "强制撤回", notes = "强制撤回") + @GetMapping("/deleteOAByMandatory") + public void deleteOAByMandatory(String todoId,String assignee) { + webServiceOAService.deleteOAByMandatory(todoId,assignee); + } + @ApiOperation(value = "发送待办接口(") @PostMapping("/sendTodo") public NotifyTodoAppResult sendTodo() throws Exception{ return webServiceOAService.sendTodo(new BusProcessNew()); } + } 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 67654f89..97c4410b 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 @@ -12,6 +12,8 @@ public interface WebServiceOAService { void deleteOAByPid(String pId); + void deleteOAByMandatory(String todoId,String assignee); + void deleteOAByTaskIdResetTodo(BusProcessNew busProcessNew,String assignee); void completeOA(Task task); 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 a5aee0a2..c8ea05fc 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 @@ -76,6 +76,51 @@ public class WebServiceOAServiceImpl implements WebServiceOAService { credentials = Credentials.basic(api_key,api_secret); } + /** + * 单个删除OA待办 业务处理 + */ + @Override + @Async + public void deleteOAByMandatory(String todoId,String assignee){ + CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class); + log.info("--------------------------ESP 发送删除待办任务 及 再次发送待办----------------------------"); + + if(StringUtils.isNotBlank(todoId) && StringUtils.isNotBlank(assignee)){ + + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("TODO_ID",todoId); + 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("SRMS"); + notifyTodoSendContext.setModelId(todoId); + notifyTodoSendContext.setModelName(object.getTaskInfo()); + notifyTodoSendContext.setType("1"); + notifyTodoSendContext.setOptType("2"); + Map map = new HashMap<>(); + ResponseMessage byId = lawsUserInfoService.getById(assignee); + map.put("LoginName",byId == null ? "" : byId.getData().getAccount()); + JSONObject jsonLoginName = new JSONObject(map); + notifyTodoSendContext.setTargets(jsonLoginName.toJSONString()); + notifyTodoSendContext.setUserId(assignee); + notifyTodoSendContexts.add(notifyTodoSendContext); + Map objectMap = new TreeMap<>(); + objectMap.put("todoId",todoId); + objectMap.put("list",notifyTodoSendContexts); + net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(objectMap); + oaService.setTodoDeleteMq(jsonObject.toString()); + } + } + } + /** * 单个删除OA待办 及 重发待办 */ From fe10071aaaccc18cb5687bd6d36dc4a6c65b30bb Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 6 Jan 2022 17:21:22 +0800 Subject: [PATCH 3/3] feat: There is no way the --- .../webService/controller/WebServiceOAController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java index 7dad0180..d138b8c0 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_oa/webService/controller/WebServiceOAController.java @@ -61,7 +61,7 @@ public class WebServiceOAController extends BaseAction { @Autowired private WebServiceOAService webServiceOAService; - @ApiOperation(value = "强制撤回", notes = "强制撤回") + @ApiOperation(value = "强制删除OA待办", notes = "强制删除OA待办") @GetMapping("/deleteOAByMandatory") public void deleteOAByMandatory(String todoId,String assignee) { webServiceOAService.deleteOAByMandatory(todoId,assignee);