From 3d9e628f2a724f256b8d54fb2c41faa16fd43daa Mon Sep 17 00:00:00 2001 From: fang <123456> Date: Wed, 2 Jul 2025 15:13:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E8=8A=82=E5=B7=B2=E5=8A=9E=E5=8F=91?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servicehandler/BacklogServiceHandle.java | 352 +++++++++++++++--- 1 file changed, 298 insertions(+), 54 deletions(-) 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 85c6a9b..05354c8 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,7 +1,13 @@ package shkd.sys.sys.midservice.servicehandler; +import kd.bos.algo.DataSet; +import kd.bos.algo.Row; +import kd.bos.cache.CacheFactory; +import kd.bos.cache.DistributeSessionlessCache; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.db.DB; +import kd.bos.db.DBRoute; import kd.bos.exception.ErrorCode; import kd.bos.exception.KDException; import kd.bos.logging.Log; @@ -12,12 +18,14 @@ import kd.bos.servicehelper.parameter.SystemParamServiceHelper; import kd.bos.workflow.engine.msg.ctx.MessageContext; import kd.bos.workflow.engine.msg.handler.AbstractServiceHandler; import kd.bos.workflow.engine.msg.info.ToDoInfo; +import kd.hr.hdm.common.transfer.util.ObjectUtils; 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.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; @@ -36,26 +44,36 @@ public class BacklogServiceHandle extends AbstractServiceHandler { public static final String TYPE = "todo"; private static final Log logger = LogFactory.getLog(BacklogServiceHandle.class); + private static final DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache(); public void createToDo(MessageContext ctx, ToDoInfo todoInfo) { logger.info("###创建待办_createToDo"); - //判断是否需要发送待办链接、true为不推送,false为推送 boolean b = allowMobApprove(ctx, todoInfo); - logger.info("###推送结果为:"+b+"(true为不推送,false为推送)"); - if(!b){ + logger.info("###推送结果为:" + b + "(true为不推送,false为推送)"); + if (!b) { Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); - if(Objects.equals(shkd_type,"0")){ + if (Objects.equals(shkd_type, "0")) { //旧 eoss 环境 - getToDoFormal(ctx,todoInfo); - }else if(Objects.equals(shkd_type,"1")){ + getToDoFormal(ctx, todoInfo); + } else if (Objects.equals(shkd_type, "1")) { //新eoss 环境 - getToDoNew(ctx,todoInfo); - }else if(Objects.equals(shkd_type,"2")){ + getToDoNew(ctx, todoInfo); + } else if (Objects.equals(shkd_type, "2")) { //二套环境 - getToDoNew(ctx,todoInfo); - getToDoFormal(ctx,todoInfo); + getToDoNew(ctx, todoInfo); + getToDoFormal(ctx, todoInfo); } logger.info("###结束待办_createToDo"); + try { + String s = cache.get(ctx.getBusinessKey()); + if (Objects.equals(s, "true")) { + return; + } + // 发送首节的已办 + sendToDo(ctx); + } catch (Exception e) { + logger.info("获得缓存失败,发送首节的已办失败:" + e.getMessage()); + } } /* //几个待办 List userIds = todoInfo.getUserIds(); @@ -111,44 +129,268 @@ public class BacklogServiceHandle extends AbstractServiceHandler { } logger.info("###结束待办_createToDo");*/ } + + /*** + * 首节已办数据发送 + * @param ctx 信息 + */ + private void sendToDo(MessageContext ctx) { + String accountId = System.getProperty("backlog-accountid"); + Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); + StringBuilder cwbSql1 = new StringBuilder(); + cwbSql1.append("SELECT "); + cwbSql1.append("b.FID,"); + cwbSql1.append("b.FPROCDEFID,"); + cwbSql1.append("b.FTASKDEFKEY,"); + cwbSql1.append("b.FPROCINSTID,"); + cwbSql1.append("b.FEXECUTIONID,"); + cwbSql1.append("b.FPARENTTASKID,"); + cwbSql1.append("b.FOWNER,"); + cwbSql1.append("b.FASSIGNEE,"); + cwbSql1.append("b.FCLAIMTIME,"); + cwbSql1.append("b.FENDTIME,"); + cwbSql1.append("b.FDURATION,"); + cwbSql1.append("b.FPRIORITY,"); + cwbSql1.append("b.FDUEDATE,"); + cwbSql1.append("b.FFORMKEY,"); + cwbSql1.append("b.FCATEGORY,"); + cwbSql1.append("b.FISDISPLAY,"); + cwbSql1.append("b.FSTARTERID,"); + cwbSql1.append("b.FENTITYNUMBER,"); + cwbSql1.append("b.FCREATEDATE,"); + cwbSql1.append("b.FMODIFYDATE,"); + cwbSql1.append("b.FASSIGNEEID,"); + cwbSql1.append("b.FOWNERID,"); + cwbSql1.append("b.FEXECUTIONTYPE,"); + cwbSql1.append("b.FBUSINESSKEY,"); + cwbSql1.append("b.FYZJGROUPID,"); + cwbSql1.append("b.FPROCESSINGPAGE,"); + cwbSql1.append("b.FHANDLESTATE,"); + cwbSql1.append("b.FMOBILEFORMKEY,"); + cwbSql1.append("b.FDELEGATION,"); + cwbSql1.append("b.FBILLNO,"); + cwbSql1.append("b.FPROCESSINGMOBILEPAGE,"); + cwbSql1.append("b.FENDTYPE,"); + cwbSql1.append("b.FSOURCE,"); + cwbSql1.append("b.FVALIDATEOPERATION,"); + cwbSql1.append("b.FNAME,"); + cwbSql1.append("b.FSUBACTIVITYNAME,"); + cwbSql1.append("b.FDESCRIPTION,"); + cwbSql1.append("b.FSUBJECT,"); + cwbSql1.append("b.FENTITYNAME,"); + cwbSql1.append("b.FSENDERNAME,"); + cwbSql1.append("b.FSTARTNAME,"); + cwbSql1.append("b.FPARTICIPANTNAME,"); + cwbSql1.append("b.FGROUPNUMBER,"); + cwbSql1.append("b.FREALDURATION,"); + cwbSql1.append("b.FBATCHOP,"); + cwbSql1.append("b.FBILLTYPE,"); + cwbSql1.append("b.FBIZTRACENO,"); + cwbSql1.append("b.FSENDERNAMEFORMAT,"); + cwbSql1.append("b.FSTARTNAMEFORMAT,"); + cwbSql1.append("b.FPRESENTASSIGNEE,"); + cwbSql1.append("b.FORGUNITID,"); + cwbSql1.append("b.FORGVIEWID,"); + cwbSql1.append("b.FPROCESSTYPE,"); + cwbSql1.append("b.FSENDERID,"); + cwbSql1.append("b.FCONTROL,"); + cwbSql1.append("b.FEXTENDDATE,"); + cwbSql1.append("b.FEXTENDNUMBER,"); + cwbSql1.append("b.FEXTENDSTR1,"); + cwbSql1.append("b.FEXTENDSTR2,"); + cwbSql1.append("b.FDELETEREASON,"); + cwbSql1.append("b.FEXTENDFORMAT,"); + cwbSql1.append("b.FEXTENDMULSTR1,"); + cwbSql1.append("b.FEXTENDMULSTR2,"); + cwbSql1.append("a.FCREATEDATE fstarttime,"); + cwbSql1.append("c.FID as factivityId,"); + cwbSql1.append("d.FUSERID freceiveuserid,"); + cwbSql1.append("d.FUSERNAME freceiveusername,"); + cwbSql1.append("d.FCREATEDATE freceivetime,"); + cwbSql1.append("d.FENDTIME fcompletetime,"); + cwbSql1.append("d.FMODIFYDATE flastmodifytime "); + cwbSql1.append("from t_wf_hitaskinst b "); + cwbSql1.append("INNER JOIN t_wf_hiparticipant d on d.FTASKID=b.FID "); + cwbSql1.append("INNER JOIN t_wf_hiactinst c on c.FTASKID=b.FID "); + cwbSql1.append("INNER JOIN t_wf_hiprocinst a on a.FID=b.FPROCINSTID "); + cwbSql1.append("where b.fbusinesskey = ?"); + cwbSql1.append(" and b.FDELETEREASON ='first_usertask_skip"); + cwbSql1.append(" and b.FENDTIME is not null and d.FENDTIME is not null"); + cwbSql1.append(" ORDER BY b.FMODIFYDATE,b.FID"); + DataSet cwbAmount1 = DB.queryDataSet(this.getClass().getName(), DBRoute.of("sys"), cwbSql1.toString(), new Object[]{ctx.getBusinessKey()}); + Iterator iterator = cwbAmount1.iterator(); + logger.info("开始第一个节点已办数据拼接"); + try { + while (iterator.hasNext()) { + Row next = iterator.next(); + //接收人手机号 + DynamicObject dynamicObject = QueryServiceHelper.queryOne("bos_user", "number,name," + + "phone,username", new QFilter[]{new QFilter("id", "=", next.getString("freceiveuserid"))}); + String userName1 = dynamicObject.getString("username"); + String userName; + try { + userName = AesUtils.aesEncryptString(dynamicObject.getString("username")); + logger.info("AES加密后user:" + userName); + } catch (Exception e) { + ErrorCode errorCode = new ErrorCode("error_code", "AES加密出现异常,请联系运维人员排查!"); + throw new KDException(errorCode, e); + } + //判断是否移动端 + boolean allowMobApprove = allowMobApprove(next.get("fid")); + if (allowMobApprove) { + continue; + } + //标题 + String title = next.getString("fsubject"); + //PC地址 + String pcUrl = GetUrlUtils.getInstance().getPcUrl(next.getString("fprocessingpage"), + next.getString("fprocessingmobilepage"), + next.getString("fsource"), + accountId, + next.getString("factivityId"), + next.getString("fbusinesskey"), + next.getString("fid")); + StringBuilder form = new StringBuilder(); + form.append("{"); + form.append("\"title\":"); + form.append("\"").append(title).append("\","); + form.append("\"bName\":"); + form.append("\"").append("司库").append("\","); + form.append("\"bussinessCode\":"); + form.append("\"").append("EOSS").append("\","); + form.append("\"urGency\":"); + form.append("\"0\","); + form.append("\"currentStepName\":"); + form.append("\"").append(next.getString("fname")).append("\","); + form.append("\"sendUserName\":"); + form.append("\"").append(next.getString("fstartname")).append("\","); + form.append("\"receiveUsersysName\":"); + form.append("\"").append(userName1).append("\","); + form.append("\"receiveUserId\":"); + form.append("\"").append(userName1).append("\","); + form.append("\"handleUrl\":"); + form.append("\"").append(pcUrl).append("&userName=").append(userName).append("\","); + form.append("\"appHandleUrl\":"); + form.append("\"").append(pcUrl).append("&userName=").append(userName).append("\","); + // appUrl移动端查看模式 + form.append("\"appViewUrl\":"); + form.append("\"").append(pcUrl).append("&userName=").append(userName).append("&ado=view").append("\","); + form.append("\"appName\":"); + form.append("\"").append(next.getString("fentityname")).append("\","); + //pc端查看模式 + form.append("\"viewUrl\":"); + form.append("\"").append(pcUrl).append("&userName=").append(userName).append("&ado=view").append("\","); + form.append("\"pendingId\":"); + form.append("\"").append(next.getLong("fid")).append("\","); + form.append("\"pendingAttr\":"); + form.append("\"0\""); + form.append("}"); + Object shkd_cache = SystemParamServiceHelper.getPublicParameter("shkd_cache"); + Integer z = 0; + if (Objects.equals(shkd_type, "0")) { + //旧 eoss 环境 + boolean b = CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(), title, next.getLong("fid").toString(), userName, next.getString("fbillno")); + if(ObjectUtils.isEmpty(shkd_cache)){ + z = 604800; + }else{ + z = Integer.valueOf(shkd_cache.toString()); + } + cache.put(ctx.getBusinessKey(),String.valueOf(b),z); + } else if (Objects.equals(shkd_type, "1")) { + //新 eoss 环境 + boolean b = CreateToDoHandler.get_CreateToDoHandler().sendCreateToDoNew(form.toString(), title, next.getLong("fid").toString(), userName, next.getString("fbillno")); + if(ObjectUtils.isEmpty(shkd_cache)){ + z = 604800; + }else{ + z = Integer.valueOf(shkd_cache.toString()); + } + cache.put(ctx.getBusinessKey(),String.valueOf(b),z); + } else if (Objects.equals(shkd_type, "2")) { + //二套环境 + boolean b = CreateToDoHandler.get_CreateToDoHandler().sendCreateToDo(form.toString(), title, next.getLong("fid").toString(), userName, next.getString("fbillno")); + CreateToDoHandler.get_CreateToDoHandler().sendCreateToDoNew(form.toString(), title, next.getLong("fid").toString(), userName, next.getString("fbillno")); + if(ObjectUtils.isEmpty(shkd_cache)){ + z = 604800; + }else{ + z = Integer.valueOf(shkd_cache.toString()); + } + cache.put(ctx.getBusinessKey(),String.valueOf(b),z); + } + if (Objects.equals(shkd_type, "0")) { + //旧 eoss 环境 + boolean b = DealToDoHandler.get_DealToDoHandler().sendDealToDo(next.getLong("fid"), userName, next.getString("fbillno")); + if(ObjectUtils.isEmpty(shkd_cache)){ + z = 604800; + }else{ + z = Integer.valueOf(shkd_cache.toString()); + } + cache.put(ctx.getBusinessKey(),String.valueOf(b),z); + } else if (Objects.equals(shkd_type, "1")) { + //新 eoss 环境 + boolean b = DealToDoHandler.get_DealToDoHandler().sendDealToDoNew(next.getLong("fid"), userName, next.getString("fbillno")); + if(ObjectUtils.isEmpty(shkd_cache)){ + z = 604800; + }else{ + z = Integer.valueOf(shkd_cache.toString()); + } + cache.put(ctx.getBusinessKey(),String.valueOf(b),z); + } else if (Objects.equals(shkd_type, "2")) { + //二套环境 + boolean b = DealToDoHandler.get_DealToDoHandler().sendDealToDo(next.getLong("fid"), userName, next.getString("fbillno")); + DealToDoHandler.get_DealToDoHandler().sendDealToDoNew(next.getLong("fid"), userName, next.getString("fbillno")); + if(ObjectUtils.isEmpty(shkd_cache)){ + z = 604800; + }else{ + z = Integer.valueOf(shkd_cache.toString()); + } + cache.put(ctx.getBusinessKey(),String.valueOf(b),z); + } + } + } catch (Exception e) { + logger.error("###首节已办数据拼接、发送失败,具体原因:", e.getMessage(), e); + } + logger.info("首节已办数据拼接和发送完成"); + } + //已办 - public void dealToDo(MessageContext ctx, ToDoInfo info){ + public void dealToDo(MessageContext ctx, ToDoInfo info) { logger.info("###创建已办_dealToDo"); boolean b = allowMobApprove(ctx, info); - logger.info("###推送结果为:"+b+"(true为不推送,false为推送)"); - if(!b){ + logger.info("###推送结果为:" + b + "(true为不推送,false为推送)"); + if (!b) { Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); - if(Objects.equals(shkd_type,"0")){ + if (Objects.equals(shkd_type, "0")) { //旧 eoss 环境 - getDealFormal(ctx,info); - }else if(Objects.equals(shkd_type,"1")){ + getDealFormal(ctx, info); + } else if (Objects.equals(shkd_type, "1")) { //新 eoss 环境 - getDealNew(ctx,info); - }else if(Objects.equals(shkd_type,"2")){ + getDealNew(ctx, info); + } else if (Objects.equals(shkd_type, "2")) { //二套环境 - getDealNew(ctx,info); - getDealFormal(ctx,info); + getDealNew(ctx, info); + getDealFormal(ctx, info); } logger.info("###结束已办_dealToDo"); } } + //撤销 - public void deleteToDo(MessageContext ctx, ToDoInfo info){ + public void deleteToDo(MessageContext ctx, ToDoInfo info) { logger.info("###创建撤销_deleteToDo"); boolean b = allowMobApprove(ctx, info); - logger.info("###推送结果为:"+b+"(true为不推送,false为推送)"); - if(!b){ + logger.info("###推送结果为:" + b + "(true为不推送,false为推送)"); + if (!b) { Object shkd_type = SystemParamServiceHelper.getPublicParameter("shkd_type"); - if(Objects.equals(shkd_type,"0")){ + if (Objects.equals(shkd_type, "0")) { //旧 eoss 环境 - getDeleteFormal(ctx,info); - }else if(Objects.equals(shkd_type,"1")){ + getDeleteFormal(ctx, info); + } else if (Objects.equals(shkd_type, "1")) { //新 eoss 环境 - getDeleteNew(ctx,info); - }else if(Objects.equals(shkd_type,"2")){ + getDeleteNew(ctx, info); + } else if (Objects.equals(shkd_type, "2")) { //二套环境 - getDeleteNew(ctx,info); - getDeleteFormal(ctx,info); + 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)}); @@ -269,6 +511,7 @@ public class BacklogServiceHandle extends AbstractServiceHandler { todoInfo.getTaskId().toString(), query_one.getString("username"), dynamicObject.getString("billno")); } } + /*** * 测试环境、待办 */ @@ -338,40 +581,41 @@ public class BacklogServiceHandle extends AbstractServiceHandler { /*** * 正式环境、已办办 */ - public void getDealFormal(MessageContext ctx, ToDoInfo info){ + public void getDealFormal(MessageContext ctx, ToDoInfo info) { //几个已办 List userIds = info.getUserIds(); - logger.info("####已办taskid:"+info.getTaskId()); + logger.info("####已办taskid:" + info.getTaskId()); DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)}); DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno", new QFilter[]{new QFilter("id", "=", info.getTaskId())}); //业务id Long taskId = ctx.getTaskId(); for (DynamicObject queryOne : query) { - if(dynamicObject != null){ - DealToDoHandler.get_DealToDoHandler().sendDealToDo(taskId,queryOne.getString("username"),dynamicObject.getString("billno")); - }else{ - DealToDoHandler.get_DealToDoHandler().sendDealToDo(taskId,queryOne.getString("username"),""); + if (dynamicObject != null) { + DealToDoHandler.get_DealToDoHandler().sendDealToDo(taskId, queryOne.getString("username"), dynamicObject.getString("billno")); + } else { + DealToDoHandler.get_DealToDoHandler().sendDealToDo(taskId, queryOne.getString("username"), ""); } } } + /*** * 测试环境、已办 */ - public void getDealNew(MessageContext ctx, ToDoInfo info){ + public void getDealNew(MessageContext ctx, ToDoInfo info) { //几个已办 List userIds = info.getUserIds(); - logger.info("####已办taskid:"+info.getTaskId()); + logger.info("####已办taskid:" + info.getTaskId()); DynamicObjectCollection query = QueryServiceHelper.query("bos_user", "id,name,phone,username", new QFilter[]{new QFilter("id", "in", userIds)}); DynamicObject dynamicObject = QueryServiceHelper.queryOne("wf_hitaskinst", "billno", new QFilter[]{new QFilter("id", "=", info.getTaskId())}); //业务id Long taskId = ctx.getTaskId(); for (DynamicObject queryOne : query) { - if(dynamicObject != null){ - DealToDoHandler.get_DealToDoHandler().sendDealToDoNew(taskId,queryOne.getString("username"),dynamicObject.getString("billno")); - }else{ - DealToDoHandler.get_DealToDoHandler().sendDealToDoNew(taskId,queryOne.getString("username"),""); + if (dynamicObject != null) { + DealToDoHandler.get_DealToDoHandler().sendDealToDoNew(taskId, queryOne.getString("username"), dynamicObject.getString("billno")); + } else { + DealToDoHandler.get_DealToDoHandler().sendDealToDoNew(taskId, queryOne.getString("username"), ""); } } } @@ -379,19 +623,19 @@ public class BacklogServiceHandle extends AbstractServiceHandler { /*** * 测试环境、撤销 */ - public void getDeleteFormal(MessageContext ctx, ToDoInfo info){ + public void getDeleteFormal(MessageContext ctx, ToDoInfo 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", new QFilter[]{new QFilter("id", "=", info.getTaskId())}); //业务id Long taskId = ctx.getTaskId(); - logger.info("####撤销taskid:"+info.getTaskId()); + logger.info("####撤销taskid:" + info.getTaskId()); for (DynamicObject queryOne : query) { - if(dynamicObject != null){ - deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId,queryOne.getString("username"),dynamicObject.getString("billno")); - }else{ - deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId,queryOne.getString("username"),""); + if (dynamicObject != null) { + deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId, queryOne.getString("username"), dynamicObject.getString("billno")); + } else { + deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDo(taskId, queryOne.getString("username"), ""); } } } @@ -399,19 +643,19 @@ public class BacklogServiceHandle extends AbstractServiceHandler { /*** * 测试环境、撤销 */ - public void getDeleteNew(MessageContext ctx, ToDoInfo info){ + public void getDeleteNew(MessageContext ctx, ToDoInfo 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", new QFilter[]{new QFilter("id", "=", info.getTaskId())}); //业务id Long taskId = ctx.getTaskId(); - logger.info("####撤销taskid:"+info.getTaskId()); + logger.info("####撤销taskid:" + info.getTaskId()); for (DynamicObject queryOne : query) { - if(dynamicObject != null){ - deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoNew(taskId,queryOne.getString("username"),dynamicObject.getString("billno")); - }else{ - deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoNew(taskId,queryOne.getString("username"),""); + if (dynamicObject != null) { + deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoNew(taskId, queryOne.getString("username"), dynamicObject.getString("billno")); + } else { + deleteToDoHandler.get_deleteToDoHandler().sendDeleteToDoNew(taskId, queryOne.getString("username"), ""); } } }