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> list = new ArrayList>(); Map map = null; - String sql =" select zx.id,qd.zjjhx,zx.zjjhyf " + + String sql =" select zx.id,qd.zjhx,zx.zjjhyf " + " from uf_zjjhzxsj zx,uf_zjjhqd qd " + " where zx.zjjhx = qd.id " + " and zjjhyfsjwc is null " ; @@ -117,7 +117,7 @@ public class UpdateZjjhzxsj_ModeExpand extends AbstractModeExpandJavaCodeNew{ sql = " select sum(fkje) as fkje from erp_htfkzjb where zjjhhbh='"+zjjhx+"' and fkrq like '%"+zjjhyf+"%' " ; bb.writeLog("sql2:"+sql); rsd.execute(sql); - if(rsd.execute(sql)){ + if(rsd.next()){ fkje = Util.null2String(rsd.getString("fkje")); } bb.writeLog("fkje:"+fkje); @@ -125,7 +125,7 @@ public class UpdateZjjhzxsj_ModeExpand extends AbstractModeExpandJavaCodeNew{ if(StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(fkje)){ sql = " update uf_zjjhzxsj set zjjhyfsjwc='"+fkje+"' where zjjhyf='"+zjjhyf+"' and id="+billid+""; bb.writeLog("sql:"+sql); - boolean isTrue = rsd.execute(sql); + boolean isTrue = rs.execute(sql); bb.writeLog("isTrue2:"+isTrue); if(!isTrue){ errcount++; diff --git a/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java b/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java index 4b32c1d..4cbc169 100644 --- a/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java +++ b/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java @@ -199,13 +199,19 @@ public class ModeZcjhxUtil { bb.writeLog("sql2:"+sql); rsd.execute(sql); - if(rsd.execute(sql)){ + if(rsd.next()){ qyrq = Util.null2String(rsd.getString("qyrq")); } + if(StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(qyrq)){ + if(qyrq.length()>= 10){ + qyrq = qyrq.substring(0,10); + } + bb.writeLog("qyrq:"+qyrq); + sql = " update uf_zcjhx set zczt = 1,wcrq='"+qyrq+"' where id = "+billid; bb.writeLog("sql:"+sql); - boolean isTrue = rsd.execute(sql); + boolean isTrue = rs.executeUpdate(sql); bb.writeLog("isTrue2:"+isTrue); if(!isTrue){ errcount++; @@ -273,16 +279,21 @@ public class ModeZcjhxUtil { sql = " select spwcrq from "+formtable+" where zcjhbh='"+zcxh+"'" ; bb.writeLog("sql:"+sql); rsd.execute(sql); - if(rsd.execute(sql)){ + if(rsd.next()){ spwcrq = Util.null2String(rsd.getString("spwcrq")); } bb.writeLog("spwcrq:"+spwcrq); if(StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(spwcrq)){ + if(spwcrq.length()>= 10){ + spwcrq = spwcrq.substring(0,10); + } + bb.writeLog("spwcrq:"+spwcrq); + sql = " update uf_zcjhx set zczt = 1,wcrq='"+spwcrq+"' where id = "+billid; bb.writeLog("sql:"+sql); - boolean isTrue = rsd.execute(sql); + boolean isTrue = rs.executeUpdate(sql); bb.writeLog("isTrue2:"+isTrue); if(!isTrue){ errcount++;