From 561dc7a82c5b270b12c2588729c06d16e7645451 Mon Sep 17 00:00:00 2001 From: fang <123456> Date: Fri, 20 Jun 2025 18:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A7=E5=88=B6=E6=B5=81=E7=A8=8B=E6=8E=A8?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backlogTack/ToDoResendTack.java | 8 +- .../servicehandler/BacklogServiceHandle.java | 90 +++++++++++-------- .../utils/MobApproveListServiceHelper.java | 89 ++++++++++++++++++ 3 files changed, 148 insertions(+), 39 deletions(-) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/MobApproveListServiceHelper.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/backlogTack/ToDoResendTack.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/backlogTack/ToDoResendTack.java index 0ba958a..5bda77b 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/backlogTack/ToDoResendTack.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/backlogTack/ToDoResendTack.java @@ -27,6 +27,8 @@ import java.util.Iterator; import java.util.Map; import java.util.Objects; +import static shkd.sys.sys.midservice.utils.MobApproveListServiceHelper.allowMobApprove; + public class ToDoResendTack extends AbstractTask { private static final Log logger = LogFactory.getLog(ToDoResendTack.class); @@ -186,6 +188,11 @@ public class ToDoResendTack extends AbstractTask { ErrorCode errorCode = new ErrorCode("error_code", "AES加密出现异常,请联系运维人员排查!"); throw new KDException(errorCode, e); } + //判断是否移动端 + boolean allowMobApprove = allowMobApprove(next.get("fid")); + if(allowMobApprove){ + continue; + } switch (t_status) { case "0": //标题 @@ -233,7 +240,6 @@ public class ToDoResendTack extends AbstractTask { form.append("\"pendingAttr\":"); form.append("\"0\""); form.append("}"); - CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno")); if(Objects.equals(shkd_type,"0")){ //旧 eoss 环境 CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(),title,next.getLong("fid").toString(),userName,next.getString("fbillno")); 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 8356467..85c6a9b 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 @@ -22,6 +22,8 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import static shkd.sys.sys.midservice.utils.MobApproveListServiceHelper.allowMobApprove; + /** * @Description: * @Author: FangShiXiao @@ -37,19 +39,24 @@ public class BacklogServiceHandle extends AbstractServiceHandler { public void createToDo(MessageContext ctx, ToDoInfo todoInfo) { logger.info("###创建待办_createToDo"); - Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); - if(Objects.equals(shkd_type,"0")){ - //旧 eoss 环境 - getToDoFormal(ctx,todoInfo); - }else if(Objects.equals(shkd_type,"1")){ - //新eoss 环境 - getToDoNew(ctx,todoInfo); - }else if(Objects.equals(shkd_type,"2")){ - //二套环境 - getToDoNew(ctx,todoInfo); - getToDoFormal(ctx,todoInfo); + //判断是否需要发送待办链接、true为不推送,false为推送 + boolean b = allowMobApprove(ctx, todoInfo); + logger.info("###推送结果为:"+b+"(true为不推送,false为推送)"); + if(!b){ + Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); + if(Objects.equals(shkd_type,"0")){ + //旧 eoss 环境 + getToDoFormal(ctx,todoInfo); + }else if(Objects.equals(shkd_type,"1")){ + //新eoss 环境 + getToDoNew(ctx,todoInfo); + }else if(Objects.equals(shkd_type,"2")){ + //二套环境 + getToDoNew(ctx,todoInfo); + getToDoFormal(ctx,todoInfo); + } + logger.info("###结束待办_createToDo"); } - logger.info("###结束待办_createToDo"); /* //几个待办 List userIds = todoInfo.getUserIds(); DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,number" + @@ -107,36 +114,42 @@ public class BacklogServiceHandle extends AbstractServiceHandler { //已办 public void dealToDo(MessageContext ctx, ToDoInfo info){ logger.info("###创建已办_dealToDo"); - Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); - if(Objects.equals(shkd_type,"0")){ - //旧 eoss 环境 - getDealFormal(ctx,info); - }else if(Objects.equals(shkd_type,"1")){ - //新 eoss 环境 - getDealNew(ctx,info); - }else if(Objects.equals(shkd_type,"2")){ - //二套环境 - getDealNew(ctx,info); - getDealFormal(ctx,info); + boolean b = allowMobApprove(ctx, info); + logger.info("###推送结果为:"+b+"(true为不推送,false为推送)"); + if(!b){ + Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); + if(Objects.equals(shkd_type,"0")){ + //旧 eoss 环境 + getDealFormal(ctx,info); + }else if(Objects.equals(shkd_type,"1")){ + //新 eoss 环境 + getDealNew(ctx,info); + }else if(Objects.equals(shkd_type,"2")){ + //二套环境 + getDealNew(ctx,info); + getDealFormal(ctx,info); + } + logger.info("###结束已办_dealToDo"); } - logger.info("###结束已办_dealToDo"); } //撤销 public void deleteToDo(MessageContext ctx, ToDoInfo info){ - logger.info("###创建撤销_deleteToDo"); - Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); - if(Objects.equals(shkd_type,"0")){ - //旧 eoss 环境 - getDeleteFormal(ctx,info); - }else if(Objects.equals(shkd_type,"1")){ - //新 eoss 环境 - getDeleteNew(ctx,info); - }else if(Objects.equals(shkd_type,"2")){ - //二套环境 - getDeleteNew(ctx,info); - getDeleteFormal(ctx,info); - } + boolean b = allowMobApprove(ctx, info); + logger.info("###推送结果为:"+b+"(true为不推送,false为推送)"); + if(!b){ + Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); + if(Objects.equals(shkd_type,"0")){ + //旧 eoss 环境 + getDeleteFormal(ctx,info); + }else if(Objects.equals(shkd_type,"1")){ + //新 eoss 环境 + getDeleteNew(ctx,info); + }else if(Objects.equals(shkd_type,"2")){ + //二套环境 + getDeleteNew(ctx,info); + getDeleteFormal(ctx,info); + } /* List userIds = info.getUserIds(); DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)}); DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno", @@ -152,7 +165,8 @@ public class BacklogServiceHandle extends AbstractServiceHandler { } }*/ - logger.info("###结束撤销_deleteToDo"); + logger.info("###结束撤销_deleteToDo"); + } } /*** diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/MobApproveListServiceHelper.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/MobApproveListServiceHelper.java new file mode 100644 index 0000000..e824032 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/midservice/utils/MobApproveListServiceHelper.java @@ -0,0 +1,89 @@ +package shkd.sys.sys.midservice.utils; + +import com.bes.admin.jeemx.util.ObjectUtil; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.workflow.engine.msg.ctx.MessageContext; +import kd.bos.workflow.engine.msg.info.ToDoInfo; + +import java.util.Iterator; +import java.util.Map; + +/** + * @Author 方世筱 + * @Date 2025/6/20 0020 13:46 + * @Version 1.0 + */ +public class MobApproveListServiceHelper { + public static boolean allowMobApprove(String entityNumber,String billType,String procDefNumber,String nodeKey){ + QFilter[] qFilters = new QFilter[]{ + //实体编码=传入参数 + //生效 + new QFilter("shkd_entitynumber","=",entityNumber), + new QFilter("shkd_enable","=",true) + }; + Map objectDynamicObjectMap = BusinessDataServiceHelper.loadFromCache( + "shkd_mobapprovelist", "id,shkd_nolimitbilltype,shkd_nolimitprocess," + + "shkd_nolimitnode,shkd_billtype,shkd_processnum,shkd_nodenum", qFilters); + if(objectDynamicObjectMap != null && objectDynamicObjectMap.size()>0){ + Iterator> iterator = objectDynamicObjectMap.entrySet().iterator(); + while(iterator.hasNext()){ + Map.Entry next = iterator.next(); + DynamicObject config = next.getValue(); + //限定单据类型且不一致 + if(!config.getBoolean("shkd_nolimitbilltype") && !ObjectUtil.equals(billType,config.getString("shkd_billtype"))){ + continue; + } + //限定流程且不一致 + if(!config.getBoolean("shkd_nolimitprocess") && !ObjectUtil.equals(procDefNumber,config.getString("shkd_processnum"))){ + continue; + } + //限定节点且不一致 + if(!config.getBoolean("shkd_nolimitnode") && !ObjectUtil.equals(nodeKey,config.getString("shkd_nodenum"))){ + continue; + } + //符合条件 + return true; + } + } + + return false; + } + + public static boolean allowMobApprove(MessageContext ctx, ToDoInfo todoInfo){ + String entityNumber=ctx.getEntityNumber(); + String billType = ""; + DynamicObject object = BusinessDataServiceHelper.loadSingleFromCache("wf_hitaskinst", "entityname", + new QFilter[]{new QFilter("id", "=", todoInfo.getTaskId())}); + if(object != null){ + billType = object.getString("entityname"); + } + String elementId = ctx.getElementId(); + int i = elementId.lastIndexOf("_"); + //流程 + String procDefNumber = elementId.substring(0, i); + //节点 + String nodeKey = elementId.substring(i + 1); + return allowMobApprove(entityNumber,billType,procDefNumber,nodeKey); + } + + public static boolean allowMobApprove(Object taskId){ + DynamicObject object = BusinessDataServiceHelper.loadSingleFromCache("wf_hitaskinst", + "entitynumber,entityname,taskdefkey", + new QFilter[]{new QFilter("id", "=", taskId)}); + if(object != null){ + String entityNumber = object.getString("entitynumber"); + String billType = object.getString("entityname"); + String elementId = object.getString("taskdefkey"); + int i = elementId.lastIndexOf("_"); + //流程 + String procDefNumber = elementId.substring(0, i); + //节点 + String nodeKey = elementId.substring(i + 1); + + return allowMobApprove(entityNumber,billType,procDefNumber,nodeKey); + } + return false; + } +}