From 8c5e4e88c7a12ed47c4b1e561f76ba04d1856ed8 Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Tue, 24 Jun 2025 11:43:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=96=AE=E9=BB=9E=E7=99=BB=E9=8C=84?= =?UTF-8?q?=E5=88=86=E5=85=A9=E5=A5=97=E4=BF=82=E7=B5=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index fef46b0..aa6f11b 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -42,7 +42,10 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String ip; String client; String secret; - if (httpServletRequest.getRequestURI().contains("isNew")) { + + String queryUrl = httpServletRequest.getQueryString(); + String redirect = "http://10.1.7.83:8022/ierp/integration/yzjShareOpen.do?"+queryUrl; + if (queryUrl.contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; secret = CLIENT_SECRET2; @@ -86,7 +89,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String ip; String client; String secret; - if (httpServletRequest.getRequestURI().contains("isNew")) { + if (httpServletRequest.getQueryString().contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; secret = CLIENT_SECRET2; From 23721bcc3ace9ad8212aab84787557146cb7831d Mon Sep 17 00:00:00 2001 From: 16358 <1635849544@qq.com> Date: Tue, 24 Jun 2025 14:05:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A?= =?UTF-8?q?=E5=88=98=E6=A3=AE=E6=BE=B3=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/6?= =?UTF-8?q?/24=2014=EF=BC=9A05=20=E5=86=85=E5=AE=B9=EF=BC=9A=E4=B8=AD?= =?UTF-8?q?=E4=BB=8B=E6=9C=BA=E6=9E=84=E6=8B=9B=E6=A0=87=E9=81=B4=E9=80=89?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=AD=E4=BB=8B=E7=B1=BB=E5=9E=8B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=8C=E5=B9=B6=E5=8F=82=E4=B8=8E=E5=90=8E=E7=BB=AD?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E4=B8=AD=E4=BB=8B=E6=9C=BA=E6=9E=84=E7=9A=84?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E9=80=BB=E8=BE=91=EF=BC=9B=20=20=20=20?= =?UTF-8?q?=E5=80=BA=E5=88=B8=E5=8F=91=E8=A1=8C/=E5=8F=91=E8=A1=8C?= =?UTF-8?q?=E8=AE=A1=E5=88=92=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=80=BA=E5=88=B8?= =?UTF-8?q?=E8=AF=84=E7=BA=A7=E6=9C=BA=E6=9E=84=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E8=AF=A5=E5=AD=97=E6=AE=B5=E4=BB=8E=E8=AF=84=E7=BA=A7=E6=9C=BA?= =?UTF-8?q?=E6=9E=84=E5=8C=BA=E5=88=86=E5=87=BA=E6=9D=A5=EF=BC=8C=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E6=8C=81=E6=9C=89=E5=AF=B9=E5=BA=94=E7=9A=84=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/tmc/BondSeletRatingPlugin.java | 15 +++++++-- .../sys/plugin/tmc/LoancontractF7Plugin.java | 33 +++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java index b3fb83f..ed547b7 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSeletRatingPlugin.java @@ -50,9 +50,20 @@ public class BondSeletRatingPlugin extends AbstractBasePlugIn { } private void showRatingSelectForm(String actionId) { - DynamicObject ratingAgency = (DynamicObject)this.getModel().getValue("ratingagency"); + DynamicObject ratingAgency; + //shkd_ratingscale:主体评级 shkd_debtratingscale:债券评级 + if("shkd_ratingscale".equals(actionId)){ + ratingAgency = (DynamicObject)this.getModel().getValue("ratingagency"); + }else{ + ratingAgency = (DynamicObject)this.getModel().getValue("shkd_bondratingagency"); + } + if (EmptyUtil.isEmpty(ratingAgency)) { - this.getView().showTipNotification(ResManager.loadKDString("请先选择评级机构。", "BondCreditRatingEdit_0", "tmc-cfm-formplugin", new Object[0])); + if("shkd_ratingscale".equals(actionId)){ + this.getView().showTipNotification(ResManager.loadKDString("请先选择主体评级机构。", "BondCreditRatingEdit_0", "tmc-cfm-formplugin", new Object[0])); + }else{ + this.getView().showTipNotification(ResManager.loadKDString("请先选择债项评级机构。", "BondCreditRatingEdit_0", "tmc-cfm-formplugin", new Object[0])); + } } else { ListShowParameter showParameter = ShowFormHelper.createShowListForm("tbd_ratingscale", Boolean.FALSE); showParameter.setCustomParam("ismergerows", Boolean.FALSE); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java index 39c960e..978d04c 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/LoancontractF7Plugin.java @@ -45,6 +45,9 @@ public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin, //监听评级机构F7数据选择 BasedataEdit ratingagency = view.getControl("ratingagency"); ratingagency.addBeforeF7SelectListener(this); + //监听债券评级机构F7数据选择 + BasedataEdit bondratingagency = view.getControl("shkd_bondratingagency"); + bondratingagency.addBeforeF7SelectListener(this); } @@ -158,6 +161,36 @@ public class LoancontractF7Plugin extends AbstractBillPlugIn implements Plugin, DynamicObjectCollection winningbidderentry = intermediaryselect.getDynamicObjectCollection("winningbidderentry"); ArrayList dataFilterArr = new ArrayList<>(); winningbidderentry.forEach((temp)->{ + if("主体评级".equals( temp.getString("shkd_pglx1") )) + dataFilterArr.add(temp.getString("e_midorgname.number")); + }); + //将set转换成数组 + QFilter accountQFilter = new QFilter("number", QCP.in, dataFilterArr); + dataFilter.add(accountQFilter); + } + if("shkd_bondratingagency".equals(name)){ + //注册额度 + //债券发行:occupybondlimit 债券发行计划:shkd_occupybondlimit + try { + shkd_bondlimit= (DynamicObject)this.getModel().getValue("occupybondlimit"); + }catch(Exception e){ + shkd_bondlimit= (DynamicObject)this.getModel().getValue("shkd_occupybondlimit"); + } + if(shkd_bondlimit == null){ + evt.setCancel(true); + this.getView().showTipNotification("请先选择占用注册额度。"); + return; + } + Long occupybondlimitId = (Long) shkd_bondlimit.getPkValue(); + //找到注册额度中的招标遴选ID + DynamicObject intermediaryselectID = BusinessDataServiceHelper.loadSingle(occupybondlimitId,"bdim_bond_limit", "shkd_intermediaryselect"); + QFilter qFilter = new QFilter("billno", QCP.equals, intermediaryselectID.getString("shkd_intermediaryselect")); + DynamicObject intermediaryselect = BusinessDataServiceHelper.loadSingle("bdim_intermediaryselect",qFilter.toArray()); + //招标遴选 中标单位分录 + DynamicObjectCollection winningbidderentry = intermediaryselect.getDynamicObjectCollection("winningbidderentry"); + ArrayList dataFilterArr = new ArrayList<>(); + winningbidderentry.forEach((temp)->{ + if("债项评级".equals( temp.getString("shkd_pglx1") )) dataFilterArr.add(temp.getString("e_midorgname.number")); }); //将set转换成数组 From 614ec9da4fe5543d2a4e44f780943796348b311a Mon Sep 17 00:00:00 2001 From: wenlukang1 Date: Tue, 24 Jun 2025 17:27:00 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=96=AE=E9=BB=9E=E7=99=BB=E9=8C=84?= =?UTF-8?q?=E5=88=86=E5=85=A9=E5=A5=97=E4=BF=82=E7=B5=B1+=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E8=B7=B3=E8=BD=AC=E5=88=B0=E5=BE=85=E5=8A=9E=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/eoss/SSOPluginLogin.java | 84 ++++++++++++------- 1 file changed, 56 insertions(+), 28 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java index aa6f11b..375f107 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/eoss/SSOPluginLogin.java @@ -16,7 +16,10 @@ import shkd.sys.sys.utils.AesUtils; import javax.servlet.http.*; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.PrivateKey; +import java.util.Base64; /** @@ -44,7 +47,7 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { String secret; String queryUrl = httpServletRequest.getQueryString(); - String redirect = "http://10.1.7.83:8022/ierp/integration/yzjShareOpen.do?"+queryUrl; + if (queryUrl.contains("isNew")) { ip = EOSS_IP2; client = CLIENT_ID2; @@ -54,29 +57,39 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { client = CLIENT_ID; secret = CLIENT_SECRET; } - //认证中心的登录地址 - logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); - try { + if(queryUrl.contains("code")){ +// httpServletResponse.sendRedirect(ssourl); + + + }else{ + queryUrl = Base64.getEncoder().encodeToString(queryUrl.getBytes(StandardCharsets.UTF_8)); +// String skIp = httpServletRequest.getRemoteAddr(); + String skUrl = httpServletRequest.getRequestURL().toString(); + skUrl = skUrl.substring(0, skUrl.indexOf("ierp")); + String redirect = skUrl+"ierp/index.html?param="+queryUrl; + //认证中心的登录地址 + logger.info(String.format("eoss_ip:%s,client_id:%s,client_secret:%s,重定向地址:%s", ip, client, secret, s)); String ssourl = ip + "/service/SGE-project-sctz-master/pc/dist/login.html"; - if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) { - String userName = UserServiceHelper.getCurrentUser("name").getString("name"); - DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); - String userKey = "user_sessionId_" + userName; // 构造一个唯一的键 - String sessionId = cache.get(userKey); - if (sessionId != null) { - AuthService.logout(ip, sessionId); + + try { + if (httpServletRequest.getRequestURI().contains("/auth/logout.do")) { + String userName = UserServiceHelper.getCurrentUser("name").getString("name"); + DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); + String userKey = "user_sessionId_" + userName; // 构造一个唯一的键 + String sessionId = cache.get(userKey); + if (sessionId != null) { + AuthService.logout(ip, sessionId); + } + } else { + //重定向的统一认证的地址 获取授权码 + ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&sessionKeep=false&authType=0&redirect_uri=%s", + ip, client, redirect); + logger.info(String.format("重定向地址→sendRedirect:%s", ssourl)); } - } else { - /* - *重定向的统一认证的地址 获取授权码 - */ - ssourl = String.format("%s/sso2/authCenter/authorize?client_id=%s&response_type=code&authType=0&redirect_uri=%s", - ip, client, s); - logger.info(String.format("重定向地址→sendRedirect:%s", ssourl)); + httpServletResponse.sendRedirect(ssourl); + } catch (IOException e) { + throw new RuntimeException(e); } - httpServletResponse.sendRedirect(ssourl); - } catch (IOException e) { - throw new RuntimeException(e); } } @@ -98,22 +111,37 @@ public class SSOPluginLogin implements ThirdSSOAuthHandler { client = CLIENT_ID; secret = CLIENT_SECRET; } + //返回的认证结果 UserAuthResult result = new UserAuthResult(); //获取返回的授权码 String code = httpServletRequest.getParameter("code"); - //获取返回的 sessionId - String sessionId = httpServletRequest.getParameter("sessionId"); - String userName = httpServletRequest.getParameter("userName"); - if (userName != null) { - userName = userName.replace(" ", "+"); // 将空格替换为 + 号 + String param = httpServletRequest.getParameter("param"); + if(param!=null){ + byte[] decodedBytes = Base64.getDecoder().decode(param); + String paramString = new String(decodedBytes, StandardCharsets.UTF_8); + try { + httpServletResponse.sendRedirect(httpServletRequest.getRequestURI()+"?"+paramString+"&code="+code); + } catch (IOException e) { + throw new RuntimeException(e); + } + result.setSucess(false); + return result; } - logger.info("获取待办链接中参数userName:" + userName); + + +// //获取返回的 sessionId +// String sessionId = httpServletRequest.getParameter("sessionId"); +// String userName = httpServletRequest.getParameter("userName"); +// if (userName != null) { +// userName = userName.replace(" ", "+"); // 将空格替换为 + 号 +// } +// logger.info("获取待办链接中参数userName:" + userName); // RSAUtils. logger.info(String.format("getTrdSSOAuth→授权码code:%s", code)); result.setUserType(UserProperType.UserName); - if (StringUtils.isEmpty(code) && StringUtils.isEmpty(userName)) { + if (StringUtils.isEmpty(code)) { logger.error("getTrdSSOAuth→授权码code为空"); result.setSucess(false); return result;