From a3e81ed3037abf3132e986eac2dd44df8fbb0570 Mon Sep 17 00:00:00 2001
From: shilei <798989044@qq.com>
Date: Thu, 11 Apr 2024 17:21:13 +0800
Subject: [PATCH] =?UTF-8?q?#NJYCJT-3#=20=E4=BA=8C=E5=BC=80=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=8D=95=E7=82=B9=E3=80=81=E5=AE=9A=E6=97=B6?=
=?UTF-8?q?=E5=99=A8=E3=80=81=E6=89=A9=E5=B1=95=E9=A1=B5=E9=9D=A2=E7=AD=89?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../transfer/mobile/apptransferfore9.jsp | 90 ------------
.../njycjt/transfer/pctransferforerp.jsp | 131 ++++++++++++++++++
.../mode/UpdateZjjhzxsj_ModeExpand.java | 6 +-
.../interfaces/njycjt/util/ModeZcjhxUtil.java | 19 ++-
4 files changed, 149 insertions(+), 97 deletions(-)
delete mode 100644 interface/njycjt/transfer/mobile/apptransferfore9.jsp
create mode 100644 interface/njycjt/transfer/pctransferforerp.jsp
diff --git a/interface/njycjt/transfer/mobile/apptransferfore9.jsp b/interface/njycjt/transfer/mobile/apptransferfore9.jsp
deleted file mode 100644
index 3372159..0000000
--- a/interface/njycjt/transfer/mobile/apptransferfore9.jsp
+++ /dev/null
@@ -1,90 +0,0 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" %>
-
-<%@ page import="weaver.general.Util,weaver.conn.RecordSet" %>
-<%@ page import="weaver.hrm.HrmUserVarify" %>
-<%@ page import="weaver.hrm.User" %>
-<%@ page import="java.nio.charset.StandardCharsets" %>
-<%@ page import="javax.crypto.spec.SecretKeySpec" %>
-<%@ page import="javax.xml.bind.DatatypeConverter" %>
-<%@ page import="java.security.NoSuchAlgorithmException" %>
-<%@ page import="java.security.InvalidKeyException" %>
-<%@ page import="javax.crypto.*" %>
-<%@ page import="org.apache.commons.lang3.StringUtils" %>
-
-<%
- String secretKey = "httpsoanjycjtcom";
-
- User user = HrmUserVarify.getUser (request,response);
- RecordSet rs = new RecordSet();
-
- String pcurlsrc = "";
- String userid = user.getUID()+"";
- String workcode = ResourceComInfo.getWorkcode(userid);
- String tododataid = request.getParameter("tododataid");
- String isremark = request.getParameter("isremark");
-
- if( "0".equals(isremark) || "8".equals(isremark)){
- rs.executeQuery("select * from ofs_todo_data where id = ?",tododataid);
- rs.next();
- pcurlsrc = Util.null2String(rs.getString("pcurlsrc"));
- }else{
- rs.executeQuery("select * from ofs_done_data where id = ?",tododataid);
- rs.next();
- pcurlsrc = Util.null2String(rs.getString("pcurlsrc"));
- }
-
- String token = "";
- if(StringUtils.isNotBlank(workcode)){
- token = encryptAES(secretKey,workcode);
- }
-
- if(StringUtils.isNotBlank(token)){
- if(pcurlsrc.contains("#")) {
- String[] split = pcurlsrc.split("#");
- if(split[0].contains("?")){
- pcurlsrc = split[0] + "&Token=" + token + "#" + split[1];
- }else{
- pcurlsrc = split[0] + "?Token=" + token + "#" + split[1];
- }
- }else if(pcurlsrc.contains("?")){
- pcurlsrc = pcurlsrc + "&Token=" + token ;
- }else{
- pcurlsrc = pcurlsrc + "?Token=" + token ;
- }
- }
-%>
-
-
-
-<%!
- /**
- * AES加密字符串
- * @return 加密后内容
- */
- public String encryptAES(String password,String data) {
- String ALGORITHM = "AES";
- String encrtptData = "" ;
- try {
- byte[] keyBytes = password.getBytes(StandardCharsets.UTF_8); // 生成随机的16字节密钥
- SecretKey secretKey = new SecretKeySpec(keyBytes, ALGORITHM); // 创建SecretKey对象
- Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
- cipher.init(Cipher.ENCRYPT_MODE, secretKey); // 初始化加密器
- byte[] encryptedBytes = cipher.doFinal(data.getBytes());
- encrtptData = DatatypeConverter.printHexBinary(encryptedBytes);
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (NoSuchPaddingException e) {
- e.printStackTrace();
- }catch (InvalidKeyException e) {
- e.printStackTrace();
- } catch (IllegalBlockSizeException e) {
- e.printStackTrace();
- } catch (BadPaddingException e) {
- e.printStackTrace();
- }
- return encrtptData ;
- }
-%>
-
diff --git a/interface/njycjt/transfer/pctransferforerp.jsp b/interface/njycjt/transfer/pctransferforerp.jsp
new file mode 100644
index 0000000..f9636c1
--- /dev/null
+++ b/interface/njycjt/transfer/pctransferforerp.jsp
@@ -0,0 +1,131 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+
+<%@ page import="weaver.general.Util,weaver.conn.RecordSet" %>
+<%@ page import="weaver.hrm.HrmUserVarify" %>
+<%@ page import="weaver.hrm.User" %>
+<%@ page import="javax.crypto.*" %>
+<%@ page import="org.apache.commons.lang3.StringUtils" %>
+<%@ page import="javax.crypto.spec.DESKeySpec" %>
+<%@ page import="java.security.Key" %>
+<%@ page import="javax.crypto.spec.IvParameterSpec" %>
+<%@ page import="java.util.Base64" %>
+<%@ page import="java.net.URLEncoder" %>
+
+<%
+
+ String erphost = "http://cs.njycjt.com:9060";
+
+ String IV_PARAMETER = "njy(cjt(";
+ String password = IV_PARAMETER ;
+ /**
+ * 密钥算法
+ */
+ String ALGORITHM = "DES";
+ /**
+ * 加密/解密算法-工作模式-填充模式
+ */
+ String CIPHER_ALGORITHM = "DES/CBC/PKCS5Padding";
+ /**
+ * 默认编码
+ */
+ String CHARSET = "UTF-8";
+
+ User user = HrmUserVarify.getUser (request,response);
+ RecordSet rs = new RecordSet();
+
+ String pcurlsrc = "";
+ String userid = user.getUID()+"";
+ String workcode = ResourceComInfo.getWorkcode(userid);
+ String tododataid = request.getParameter("tododataid");
+ String isremark = request.getParameter("isremark");
+
+ if( "0".equals(isremark) || "8".equals(isremark)){
+ rs.executeQuery("select * from ofs_todo_data where id = ?",tododataid);
+ rs.next();
+ pcurlsrc = Util.null2String(rs.getString("pcurlsrc"));
+ }else{
+ rs.executeQuery("select * from ofs_done_data where id = ?",tododataid);
+ rs.next();
+ pcurlsrc = Util.null2String(rs.getString("pcurlsrc"));
+ }
+
+
+ String encryptUser = encrypt(password,workcode,CHARSET,ALGORITHM,CIPHER_ALGORITHM,IV_PARAMETER);
+ long currentTimeMillis = System.currentTimeMillis();
+ long currentTimeSeconds = currentTimeMillis / 1000;
+ String encryptTime = encrypt(password,Util.null2String(currentTimeSeconds),CHARSET,ALGORITHM,CIPHER_ALGORITHM,IV_PARAMETER);
+ String encodeTime = URLEncoder.encode(encryptTime,"UTF-8");
+
+ String encodeUser = "" ;
+ if(user !=null){
+ if(StringUtils.isNotBlank(password) && password.length()>=8){
+ if(StringUtils.isNotBlank(workcode)){
+ encodeUser = URLEncoder.encode(encryptUser,"UTF-8");
+ }
+ }
+ }
+
+ if(StringUtils.isNotBlank(pcurlsrc)){
+ if(pcurlsrc.contains("#")) {
+ String[] split = pcurlsrc.split("#");
+ if(split[0].contains("?")){
+ pcurlsrc = split[0] + "&UserCode=" + encodeUser +"&iat="+ encodeTime + "#" + split[1];
+ }else{
+ pcurlsrc = split[0] + "?UserCode=" + encodeUser +"&iat="+ encodeTime + "#" + split[1];
+ }
+ }else if(pcurlsrc.contains("?")){
+ pcurlsrc = pcurlsrc + "&UserCode=" + encodeUser +"&iat="+ encodeTime ;
+ }else{
+ pcurlsrc = pcurlsrc + "?UserCode=" + encodeUser +"&iat="+ encodeTime ;
+ }
+ response.sendRedirect(pcurlsrc);
+ }
+
+
+// if(StringUtils.isNotBlank(token)){
+// if(pcurlsrc.contains("#")) {
+// String[] split = pcurlsrc.split("#");
+// if(split[0].contains("?")){
+// pcurlsrc = split[0] + "&Token=" + token + "#" + split[1];
+// }else{
+// pcurlsrc = split[0] + "?Token=" + token + "#" + split[1];
+// }
+// }else if(pcurlsrc.contains("?")){
+// pcurlsrc = pcurlsrc + "&Token=" + token ;
+// }else{
+// pcurlsrc = pcurlsrc + "?Token=" + token ;
+// }
+// }
+%>
+
+<%!
+ /**
+ * DES加密字符串
+ *
+ * @param password 加密密码,长度不能够小于8位
+ * @param data 待加密字符串
+ * @return 加密后内容
+ */
+ public String encrypt(String password, String data,String CHARSET,String ALGORITHM,String CIPHER_ALGORITHM,String IV_PARAMETER) {
+ String encrtptData = "" ;
+ if (StringUtils.isNotBlank(data)){
+ try {
+ DESKeySpec dks = new DESKeySpec(password.getBytes(CHARSET));
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
+ Key secretKey = keyFactory.generateSecret(dks);
+ Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+ IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
+ cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
+ byte[] bytes = cipher.doFinal(data.getBytes(CHARSET));
+
+ //JDK1.8及以上可直接使用Base64,JDK1.7及以下可以使用BASE64Encoder
+ //Android平台可以使用android.util.Base64
+ encrtptData = new String(Base64.getEncoder().encode(bytes));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return encrtptData ;
+ }
+%>
+
diff --git a/src/weaver/interfaces/njycjt/mode/UpdateZjjhzxsj_ModeExpand.java b/src/weaver/interfaces/njycjt/mode/UpdateZjjhzxsj_ModeExpand.java
index 739c56b..0908c91 100644
--- a/src/weaver/interfaces/njycjt/mode/UpdateZjjhzxsj_ModeExpand.java
+++ b/src/weaver/interfaces/njycjt/mode/UpdateZjjhzxsj_ModeExpand.java
@@ -80,7 +80,7 @@ public class UpdateZjjhzxsj_ModeExpand extends AbstractModeExpandJavaCodeNew{
try {
List