diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/servicehandler/BacklogServiceHandle.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/servicehandler/BacklogServiceHandle.java index 995cd5d..a8a11bf 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/servicehandler/BacklogServiceHandle.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/servicehandler/BacklogServiceHandle.java @@ -1,5 +1,6 @@ package shkd.sys.sys.midservice.servicehandler; +import kd.bos.cloudmetric_plugin.utils.GetUrl; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.exception.ErrorCode; @@ -15,9 +16,11 @@ import kd.bos.workflow.engine.msg.info.ToDoInfo; import shkd.sys.sys.midservice.handler.CreateToDoHandler; import shkd.sys.sys.midservice.handler.DealToDoHandler; import shkd.sys.sys.midservice.handler.deleteToDoHandler; +import shkd.sys.sys.midservice.utils.GetUrlUtils; import shkd.sys.sys.utils.AesUtils; import java.util.List; +import java.util.Map; /** * @Description: @@ -72,9 +75,11 @@ public class BacklogServiceHandle extends AbstractServiceHandler { form.append("\"receiveUserId\":"); form.append("\"").append(query_one.getString("username")).append("\","); form.append("\"handleUrl\":"); - form.append("\"").append(todoInfo.getUrl()).append("&userName=").append(userName).append("\","); + Map taskInfo = GetUrlUtils.getTaskInfo(todoInfo.getTaskId()); + String url = GetUrlUtils.buildTaskUrl(taskInfo); + form.append("\"").append(url).append("&userName=").append(userName).append("\","); form.append("\"appHandleUrl\":"); - form.append("\"").append(todoInfo.getUrl()).append("&userName=").append(userName).append("\","); + form.append("\"").append(url).append("&userName=").append(userName).append("\","); form.append("\"appName\":"); form.append("\"").append(ctx.getEntityName()).append("\","); form.append("\"pendingId\":"); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/GetUrlUtils.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/GetUrlUtils.java index 3df60a6..ae11da7 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/GetUrlUtils.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/GetUrlUtils.java @@ -1,5 +1,14 @@ package shkd.sys.sys.midservice.utils; +import kd.bos.algo.DataSet; +import kd.bos.algo.Row; +import kd.bos.db.DB; +import kd.bos.db.DBRoute; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + /** * @Description: * @Author: FangShiXiao @@ -47,6 +56,50 @@ public class GetUrlUtils { urlBuffer.append("&apptype=todo"); return urlBuffer.toString(); } + public static Map getTaskInfo(Object taskId){ + Map taskMap = new HashMap(); + StringBuffer sqlCmd = new StringBuffer(); + sqlCmd.append(" SELECT b.FID,b.FPROCESSINGPAGE,b.FPROCESSINGMOBILEPAGE, "); + sqlCmd.append(" b.FSOURCE,b.FBUSINESSKEY,c.FID as FACTIVITYID "); + sqlCmd.append(" from t_wf_hitaskinst b "); + sqlCmd.append(" INNER JOIN t_wf_hiactinst c on c.FTASKID=b.FID "); + sqlCmd.append(" where b.fid = ? "); + DataSet dataSet = DB.queryDataSet(GetUrlUtils.class.getName(), DBRoute.of("sys"), + sqlCmd.toString(),new Object[]{taskId}); + Iterator iterator = dataSet.iterator(); + if (iterator.hasNext()){ + Row next = iterator.next(); + taskMap.put("formId",next.getString("FPROCESSINGPAGE")); + taskMap.put("mobFormId",next.getString("FPROCESSINGMOBILEPAGE")); + taskMap.put("source",next.getString("FSOURCE")); + taskMap.put("activityId",next.getString("FACTIVITYID")); + taskMap.put("pkId",next.getString("FBUSINESSKEY")); + taskMap.put("taskId",next.getString("FID")); + return taskMap; + } + return null; + } + + + /** + * 构建PC端待办链接 + * @param taskMap 任务信息 + * @return + */ + public static String buildTaskUrl(Map taskMap){ + if(taskMap != null && taskMap.size() >= 6){ + String accountId = System.getProperty("efms.midservice.accountid"); + getInstance(); + return _instance.getPcUrl((String)taskMap.get("formId"), + (String)taskMap.get("mobFormId"), + (String)taskMap.get("source"), + accountId, + taskMap.get("activityId"), + taskMap.get("pkId"), + taskMap.get("taskId")); + } + return null; + } }