From 6ae501a325ecac5a96faa6cf292fd9a3aee07b1c Mon Sep 17 00:00:00 2001 From: lihao Date: Thu, 26 Mar 2026 11:06:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=85=E5=8A=9E=E5=90=8C=E6=AD=A5=E5=88=B0?= =?UTF-8?q?=E6=97=97=E8=88=B0=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nc/impl/baseapp/ds/DSMessageService.java | 56 ++++++++++- .../baseapp/task/SyncNeedTodoToXXTTask.java | 98 +++++++++++++++++++ 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 baseapp/src/private/nc/impl/baseapp/task/SyncNeedTodoToXXTTask.java diff --git a/baseapp/src/private/nc/impl/baseapp/ds/DSMessageService.java b/baseapp/src/private/nc/impl/baseapp/ds/DSMessageService.java index e1309ad3..46a054f1 100644 --- a/baseapp/src/private/nc/impl/baseapp/ds/DSMessageService.java +++ b/baseapp/src/private/nc/impl/baseapp/ds/DSMessageService.java @@ -1,6 +1,5 @@ package nc.impl.baseapp.ds; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import nc.api.arap.resource.IgnoreSslUtil; @@ -89,6 +88,61 @@ public class DSMessageService { } } + } + + public void addMessage(String add, NCCApproveMessageVO approveMessageVO) throws IOException, NoSuchAlgorithmException, InvalidKeyException, BusinessException { + Map bipParamMap = checkBipParam("BIP-sq"); + if (bipParamMap.isEmpty()) { + Logger.error("SyncSrmDSMessageService-bipParamMap is empty"); + return; + } + + JSONObject reqData=new JSONObject(); + // reqData.put("donePK", donePK); + Date date=new Date(); + Random rand = new Random(); + reqData.put("srcMsgId", "YS:"+date+add); + + reqData.put("businessKey", "YS_"+approveMessageVO.getPk_detail()); + reqData.put("yyUserIds",new String[]{ approveMessageVO.getDef5()}); + reqData.put("appId", bipParamMap.get("appid")); + + reqData.put("title", approveMessageVO.getSubject()); + reqData.put("content", approveMessageVO.getSubject()); + reqData.put("mUrl",approveMessageVO.getDef3()); + reqData.put("webUrl",approveMessageVO.getDef4()); + if (bipParamMap.isEmpty()) { + Logger.error("SyncSrmDSMessageService-bipParamMap is empty"); + return; + } + baseUrl = bipParamMap.get("baseUrl"); + appKey = bipParamMap.get("srmappkey"); + appSecret = bipParamMap.get("appSecret"); + toBipUrl = bipParamMap.get("ipuPuReqQuery"); + String accessToken= getAccessToken(baseUrl,bipParamMap); + if (accessToken != "") { + Map tokenParam = new HashMap<>(); + tokenParam.put("access_token", accessToken); + Map headers = new HashMap(); + headers.put("Content-Type", "application/json"); + + + Logger.error("SyncDSMessageService-param = " + reqData.toString()); + String url = baseUrl + "/iuap-api-gateway/yonbip/uspace/rest/openapi/idempotent/todo/push"; + // String resultString = doPost(url,reqData ); + + String resultString = doSendHttp(url, "POST", tokenParam, "", headers,reqData.toString() + ); + Gson gson = new Gson(); + Logger.error("SyncDSMessageService-res = " + resultString); + Map updateMap = gson.fromJson(resultString, Map.class); + if ("200".equals(updateMap.get("code"))) {// 保存更新成功后需要更新日志表 +// getSuperDMO().updateArray(saleOrderHVOList.toArray(new SaleOrderHVO[0])); + } else { + throw new BusinessException("【"+updateMap.get("message")+"】"); + } + } + } public static String doSendHttp(String baseUrl, String method, Map paramMap, String mediaType, Map headers, String json) { diff --git a/baseapp/src/private/nc/impl/baseapp/task/SyncNeedTodoToXXTTask.java b/baseapp/src/private/nc/impl/baseapp/task/SyncNeedTodoToXXTTask.java new file mode 100644 index 00000000..87afa65c --- /dev/null +++ b/baseapp/src/private/nc/impl/baseapp/task/SyncNeedTodoToXXTTask.java @@ -0,0 +1,98 @@ +package nc.impl.baseapp.task; + +import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; +import nc.bs.logging.Log; +import nc.bs.pub.pa.PreAlertObject; +import nc.bs.pub.taskcenter.BgWorkingContext; +import nc.bs.pub.taskcenter.IBackgroundWorkPlugin; +import nc.bs.trade.business.HYSuperDMO; +import nc.impl.baseapp.ds.DSMessageService; +import nc.jdbc.framework.processor.MapListProcessor; +import nc.vo.bd.defdoc.DefdocVO; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDateTime; +import nccloud.message.vo.NCCApproveMessageVO; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 定时同步待办已办到先行通 + */ +public class SyncNeedTodoToXXTTask implements IBackgroundWorkPlugin{ + private static final String LOG_INFO_NAME = "dldzlog"; + private static final Log logger = Log.getInstance(LOG_INFO_NAME); + private HYSuperDMO superDMO = null; + private String appKey = ""; + private String appSecret = ""; + private String baseUrl = ""; + private String tokenUrl = "/iuap-api-auth/open-auth/selfAppAuth/getAccessToken"; + private String toBipUrl = ""; + private Integer num = 0; + @Override + public PreAlertObject executeTask(BgWorkingContext context) throws BusinessException { + + DSMessageService messageService=new DSMessageService(); + List approveMessageVOs= queryNCCApproveMessages(); + if(approveMessageVOs!=null&&!approveMessageVOs.isEmpty()) { + for(NCCApproveMessageVO approveMessageVO:approveMessageVOs) { + try { + messageService.addMessage(String.valueOf(num),approveMessageVO); + num++; + } catch (Exception e) { + + } + + } + num=0; + } + return null; + } + private List queryNCCApproveMessages() throws BusinessException{ + String query = "\t SELECT * from V_BIP_TODOMESSAGE"; + List approveMessageVOs=new ArrayList<>(); + BaseDAO dao = new BaseDAO(); + List> approveMessages = (List>)dao.executeQuery(query, new MapListProcessor()); + if(approveMessages!=null&&!approveMessages.isEmpty()) { + for(Map approveMessage:approveMessages) { + String pk_detail = (String)approveMessage.get("pk_detail"); + String sender = (String)approveMessage.get("sender"); + String subject = (String)approveMessage.get("subject"); + NCCApproveMessageVO approveMessageVO=new NCCApproveMessageVO(); + approveMessageVO.setSender(sender); + String receiver = (String)approveMessage.get("receiver"); + approveMessageVO.setReceiver(receiver); + approveMessageVO.setPk_detail(pk_detail); + approveMessageVO.setSubject(subject); + approveMessageVO.setTs(new UFDateTime()); + approveMessageVO.setPk_detail(pk_detail); + approveMessageVOs.add(approveMessageVO); + String mmurl=null; + if(approveMessage.get("mmurl")!=null) { + mmurl=(String)approveMessage.get("mmurl"); + }else { + if(approveMessage.get("systemcode")==null) { + continue; + } + continue; + // mmurl=String.format("https://c1.yonyoucloud.com/yonbip-ec-commonapprove/ucf-wh/mobileApprove/index.html#/detail?status=${donestatus}&code=${esncode}&taskId=%s&deftabtitle=tasktitle&apsys=NC&openAppId=1055&moduleCode=%s&tenantId=jq10k8j1", approveMessage.get("pk_detail"),approveMessage.get("systemcode").toString().toLowerCase()); + } + String webUrl=null; + if(approveMessage.get("weburl")!=null) { + webUrl=(String)approveMessage.get("weburl"); + }else { + continue; + // webUrl=String.format("https://c1.yonyoucloud.com/yonbip-ec-commonapprove/ucf-wh/webapprove/index.html?status=${donestatus}&code=${esncode}&taskId=%s&deftabtitle=tasktitle&apsys=NC&openAppId=1055&moduleCode=%s&tenantId=jq10k8j1#/detail", approveMessage.get("pk_detail"),approveMessage.get("systemcode").toString().toLowerCase()); + } + approveMessageVO.setDef3(mmurl); + approveMessageVO.setDef4(webUrl); + approveMessageVO.setDef5((String)approveMessage.get("yyuserids")); + approveMessageVOs.add(approveMessageVO); + } + } + return approveMessageVOs; + } +}