This commit is contained in:
JyuHsin
2026-03-18 17:52:21 +08:00
parent 3852449c2e
commit f653612d32
6 changed files with 44 additions and 21 deletions
@@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.sms.SmsService;
import com.budwk.app.base.sms.impl.ncu.util.SmsTokenUtil;
import com.budwk.app.web.commons.base.Globals;
import lombok.extern.slf4j.Slf4j;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -103,6 +104,14 @@ public class SmsNcuServiceImpl implements SmsService {
String pcUrl,
String mobileUrl,
String picUrl) {
if(!Globals.sso) {
log.error("【log】本地开发模式不允许调用消息接口");
return;
}
if(!Globals.MyConfig.getBoolean("AppNotify", false)) {
log.error("【log】消息配置未开启");
return;
}
if (Lang.isEmpty(receivers)) {
log.error("【log】send fail by receivers is null");
@@ -1,5 +1,6 @@
package com.budwk.app.flow.listenter;
import cn.hutool.core.util.ObjectUtil;
import com.budwk.app.flow.engine.event.ProcessEvent;
import com.budwk.app.flow.engine.event.ProcessEventListener;
import com.budwk.app.flow.entity.ProcessTask;
@@ -27,7 +28,9 @@ public class ProcessTaskEndEventListener implements ProcessEventListener {
ProcessTask task = dao.fetch(ProcessTask.class, sourceId);
// 好了,任务完成,就可以调接口完成待办了
todoService.taskHandle(task);
if (!ObjectUtil.equals(0, task.getTaskParentId().intValue())) {
todoService.taskHandle(task);
}
System.out.println("流程任务完成事件:" + task.getDisplayName());
}
}
@@ -559,15 +559,16 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl<ProcessInstance>
public void deleteProcessInstanceById(Long processInstanceId) {
List<ProcessTask> taskList = dao().query(ProcessTask.class, Cnd.where(ProcessTask::getProcessInstanceId, "=", processInstanceId));
List<Long> taskIds = taskList.stream().map(ProcessTask::getId).toList();
dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getId, "in", taskIds));
dao().clear(ProcessInstance.class, Cnd.where(ProcessInstance::getId, "=", processInstanceId));
// 删除学校待办
if(Lang.isNotEmpty(taskList)) {
ProcessTask task = taskList.get(taskList.size() - 1);
TodoService todoService = Mvcs.getIoc().get(TodoServiceImpl.class);
todoService.transDeleted(task);
todoService.deleteProcessInstance(task);
}
dao().clear(ProcessTask.class, Cnd.where(ProcessTask::getId, "in", taskIds));
dao().clear(ProcessInstance.class, Cnd.where(ProcessInstance::getId, "=", processInstanceId));
}
@Override
@@ -61,6 +61,6 @@ public interface TodoService {
*
* @param task
*/
void transDeleted(ProcessTask task);
void deleteProcessInstance(ProcessTask task);
}
@@ -1,6 +1,7 @@
package com.budwk.app.todo.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -19,6 +20,10 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.entity.Record;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.Daos;
import org.nutz.integration.jedis.RedisService;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -35,7 +40,6 @@ import java.util.stream.Collectors;
*/
@Slf4j
@IocBean
@RequiredArgsConstructor
public class TodoServiceImpl implements TodoService {
@Inject
@@ -66,14 +70,12 @@ public class TodoServiceImpl implements TodoService {
*/
private JSONObject sendPost(String url, Map<String, Object> params) {
try {
if(!Globals.sso) {
log.error("【待办平台】本地开发模式不允许调用待办");
return null;
}
if(!SecurityUtil.getUserLoginname().equals("338535821")) {
log.error("【待办平台】只有工号为338535821才能发送待办");
if(!Globals.MyConfig.getBoolean("AppTodo", false)) {
log.error("【待办平台】待办配置未开启");
return null;
}
@@ -83,7 +85,7 @@ public class TodoServiceImpl implements TodoService {
String body = HttpUtil.createPost(url)
.header("Authorization", token)
.header("Content-Type", "application/json")
.form(params)
.body(Json.toJson(List.of(params)))
.execute()
.body();
@@ -127,16 +129,18 @@ public class TodoServiceImpl implements TodoService {
ProcessDefine define = dao.fetch(ProcessDefine.class, instance.getProcessDefineId());
Sys_user sysUser = dao.fetch(Sys_user.class, instance.getOperator());
ProcessTask parentTask = dao.fetch(ProcessTask.class, task.getTaskParentId());
Map<String, Object> params = new HashMap<>();
params.put("appId", APP_ID);
params.put("nodeId", task.getId());
params.put("nodeName", task.getTaskName());
params.put("nodeName", task.getDisplayName());
params.put("taskId", task.getId());
params.put("taskName", task.getDisplayName());
params.put("transTypeCode", define.getName());
params.put("transTypeName", define.getDisplayName());
params.put("handlers", getHandlers(task.getId()));
if (!ObjectUtil.equals(0, task.getTaskParentId())) {
if (!ObjectUtil.equals(0, parentTask.getTaskParentId().intValue())) {
params.put("previousTaskId", task.getTaskParentId());
}
params.put("canDelegate", 0);
@@ -144,8 +148,14 @@ public class TodoServiceImpl implements TodoService {
params.put("initiator", sysUser.getLoginname());
params.put("initiatorName", sysUser.getUsername());
params.put("serialNumber", task.getId());
params.put("handleUrl", Globals.AppDomain + task.getFormKey());
params.put("mHandleUrl", Globals.AppDomain + task.getH5FormKey());
if(StrUtil.isNotBlank(task.getFormKey())) {
params.put("handleUrl", Globals.AppDomain + task.getFormKey());
params.put("viewUrl", Globals.AppDomain + task.getFormKey());
}
if(StrUtil.isNotBlank(task.getH5FormKey())) {
params.put("mHandleUrl", Globals.AppDomain + task.getH5FormKey());
params.put("mViewUrl", Globals.AppDomain + task.getH5FormKey());
}
JSONObject result = sendPost(ApiUrl.ADD_TRANSACTION, params);
handleResult(result, "创建待办任务");
@@ -199,7 +209,7 @@ public class TodoServiceImpl implements TodoService {
params.put("appId", APP_ID);
params.put("creater", sysUser.getLoginname());
params.put("creator", sysUser.getLoginname());
params.put("handlers", "");
params.put("handlers", getHandlers(task.getId()));
params.put("operator", SecurityUtil.getUserLoginname());
params.put("taskId", task.getId());
@@ -222,7 +232,7 @@ public class TodoServiceImpl implements TodoService {
}
@Override
public void transDeleted(ProcessTask task) {
public void deleteProcessInstance(ProcessTask task) {
ProcessInstance instance = dao.fetch(ProcessInstance.class, task.getProcessInstanceId());
Sys_user sysUser = dao.fetch(Sys_user.class, instance.getOperator());
@@ -32,10 +32,10 @@ public class SmsMessageSendStrategy implements GlobalMessageSendStrategy {
return true; // 短信发送支持异步
}
// @Override
// public boolean isEnabled() {
// return true;
// }
@Override
public boolean isEnabled() {
return false;
}
@Override
public void send(String title, String content, Integer type, List<String> receiverIds, JSONObject config) {