Merge branch 'main' into feature-LeeD-20221025

# Conflicts:
#	src/weaver/interfaces/mq/RocketmqServlet.java
#	src/weaver/interfaces/mq/RocketmqUtil.java
feature-LeeD-20221025
李栋 3 years ago
commit 5b3b8bbd46

@ -47,6 +47,11 @@ passwd = Uportal_123
##流程详情页的url ##流程详情页的url
bpm_workflowurl = http://172.16.25.133/bpm bpm_workflowurl = http://172.16.25.133/bpm
##移动端流程详情页的url
bpm_app_workflowurl = https://131.226.95.10:9443/bpm
##移动端流程表单地址
bpm_app_requesturl = /bpm/spa/workflow/static4mobileform/index.html#/req?requestid=
## 门户待办类型 ## 门户待办类型
center = MCCM center = MCCM

@ -0,0 +1,145 @@
<%@ page import="java.util.Map" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Objects" %>
<%@ page import="weaver.interfaces.util.ReadExcel" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.HashMap" %>
<%--
User: wangj
Design Ideas
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
ReadExcel r = new ReadExcel();
RecordSet rs = new RecordSet();
int scount = 0;
int fcount = 0;
List<Map<String, String>> lists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0);
if (Objects.nonNull(lists)) {
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
// m.forEach((key, value) -> {
// System.out.println(key + ":" + value);
// });
int ORG_LEVEL = Util.getIntValue(m.get("org_level"));
String ORG_ID = m.get("org_id");
String ORG_TYPE = m.get("org_type");
String PARENT_ORG_ID = m.get("parent_org_id");
String ORG_CODE = m.get("org_code");
String ORG_NAME = m.get("org_name");
//状态正常
String canceled = "";
//一级部门
if (ORG_LEVEL == 1) {
String subcompany = "59";
String supdepid = "0";
boolean flag = insertDepartment(ORG_NAME, ORG_CODE, canceled, subcompany, supdepid, ORG_ID);
if (flag) {
scount++;
} else {
fcount++;
}
}
//下及部门
if (ORG_LEVEL > 1) {
Map<String, String> map = new HashMap<>();
map = getSubcompanyid1(lists, PARENT_ORG_ID);
String subcompany = map.get("subcompanyid1");
String supdepid = map.get("supdepid");
boolean flag = insertDepartment(ORG_NAME, ORG_CODE, canceled, subcompany, supdepid, ORG_ID);
if (flag) {
scount++;
} else {
fcount++;
}
}
}
}
out.print("success:" + scount + ",false:" + fcount);
%>
<%!
private String getSubcompanyid(List<Map<String, String>> lists, String id) {
RecordSet rs = new RecordSet();
String Subcompanyid = "";
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String ORG_ID = m.get("org_id");
String ORG_NAME = m.get("org_name");
String ORG_CODE = m.get("org_code");
String PARENT_ORG_ID = m.get("parent_org_id");
if (ORG_ID.equals(id)) {
rs.execute("select id from hrmsubcompany where SUBCOMPANYCODE = '" + ORG_CODE + "'");
while (rs.next()) {
Subcompanyid = Util.null2String(rs.getString("id"));
}
}
}
return Subcompanyid;
}
%>
<%!
private Map<String, String> getSubcompanyid1(List<Map<String, String>> lists, String id) {
Map<String, String> res = new HashMap<>();
RecordSet rs = new RecordSet();
String subcompanyid1 = "";
String supdepid = "";
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String ORG_ID = m.get("org_id");
String ORG_CODE = m.get("org_code");
if (ORG_ID.equals(id)) {
rs.execute("select id,subcompanyid1 from hrmdepartment where departmentcode = '" + ORG_CODE + "'");
while (rs.next()) {
supdepid = Util.null2String(rs.getString("id"));
subcompanyid1 = Util.null2String(rs.getString("subcompanyid1"));
res.put("supdepid", supdepid);
res.put("subcompanyid1", subcompanyid1);
}
}
}
return res;
}
%>
<%!
private boolean insertDepartment(String ORG_NAME, String ORG_CODE, String canceled, String subcompanyid1, String supdepid, String ORG_ID) {
RecordSet rs = new RecordSet();
boolean isexist = false;
boolean flag = false;
String sql = "select count(1) as sl from hrmdepartment where departmentcode = ?";
rs.executeQuery(sql,ORG_CODE);
while (rs.next()){
if(Util.getIntValue(rs.getString("sl"))>0){
isexist = true;
}
}
if(isexist){
String deptUpdateSql = " update hrmdepartment set departmentmark=?,departmentname=?,canceled=?," +
" subcompanyid1=?,showorder=?, supdepid=? where departmentcode=? ";
flag = rs.executeUpdate(deptUpdateSql,new Object[]{ORG_NAME,ORG_NAME,canceled,subcompanyid1,ORG_ID,supdepid,ORG_CODE});
}else{
String deptInsertSql = " insert into hrmdepartment(departmentmark,departmentname,departmentcode," +
" canceled,subcompanyid1,supdepid,showorder) values(?,?,?,?,?,?,?) ";
flag = rs.executeUpdate(deptInsertSql, new Object[]{ORG_NAME, ORG_NAME, ORG_CODE, canceled, subcompanyid1, supdepid, ORG_ID});
}
return flag;
}
%>

@ -0,0 +1,133 @@
<%@ page import="java.util.Map" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Objects" %>
<%@ page import="weaver.interfaces.util.ReadExcel" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="org.apache.commons.codec.digest.DigestUtils" %>
<%@ page import="weaver.general.TimeUtil" %>
<%--
User: wangj
Design Ideas
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
ReadExcel r = new ReadExcel();
RecordSet rs = new RecordSet();
int scount = 0;
int fcount = 0;
List<Map<String, String>> deptlists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0);
List<Map<String, String>> hrmlists = r.readExcel("/whalecloud/cos", "staff.xlsx", 0, 0, 0);
if (Objects.nonNull(hrmlists)) {
for (int i = 0; i < hrmlists.size(); i++) {
Map<String, String> h = hrmlists.get(i);
//部门id
String ORG_ID = Util.null2String(h.get("org_id"));
String STAFF_CODE = Util.null2String(h.get("staff_code"));
String pwd = "1";
String creator = "1";
String jobTitleId = "464";
String password = DigestUtils.md5Hex(pwd).toUpperCase(); //MD5加密
String STAFF_NAME = Util.null2String(h.get("staff_name"));
Map<String,String> res = getSubcompanyid1(deptlists,ORG_ID);
String deptId = Util.null2String(res.get("deptid"));
String subcompanyid1 = Util.null2String(res.get("subcompanyid1"));
if("".equals(deptId)) continue;
String E_MAIL = Util.null2String(h.get("e_mail"));
String MOBILE_PHONE = Util.null2String(h.get("mobile_phone"));
String STATUS_CD = Util.null2String(h.get("status_cd"));
String status = "1";
if("1100".equals(STATUS_CD) || "1200".equals(STATUS_CD) || "1300".equals(STATUS_CD)){
status = "5";
}
String STAFF_ID = Util.null2String(h.get("staff_id"));
String systemlanguage = "8" ;
String currentDate = TimeUtil.getCurrentDateString();//当前日期
String currentDateTime = TimeUtil.getCurrentTimeString(); //当前时间
String locationid = "2" ;
String seclevel = "20" ;
String createrid = "1" ;
String lastmodid = "1" ;
boolean flag = insertHrmresource( STAFF_CODE, password, STAFF_NAME, deptId, subcompanyid1, creator, E_MAIL, MOBILE_PHONE, jobTitleId, status,
STAFF_ID, systemlanguage, currentDate, currentDateTime, locationid, seclevel, createrid, lastmodid);
if(flag){
scount++;
}else{
fcount++;
}
}
}
out.print("success:" + scount + ",false:" + fcount);
%>
<%!
private Map<String, String> getSubcompanyid1(List<Map<String, String>> lists, String id) {
Map<String, String> res = new HashMap<>();
RecordSet rs = new RecordSet();
String subcompanyid1 = "";
String deptid = "";
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String ORG_ID = m.get("org_id");
String ORG_CODE = m.get("org_code");
if (ORG_ID.equals(id)) {
rs.execute("select id,subcompanyid1 from hrmdepartment where departmentcode = '" + ORG_CODE + "'");
while (rs.next()) {
deptid = Util.null2String(rs.getString("id"));
subcompanyid1 = Util.null2String(rs.getString("subcompanyid1"));
res.put("deptid", deptid);
res.put("subcompanyid1", subcompanyid1);
}
}
}
return res;
}
%>
<%!
private boolean insertHrmresource(String STAFF_CODE,String password,String STAFF_NAME,String deptId,String subcompanyid1,String creator,String E_MAIL,String MOBILE_PHONE,String jobTitleId,String status,
String STAFF_ID,String systemlanguage,String currentDate,String currentDateTime,String locationid,String seclevel,String createrid,String lastmodid) {
RecordSet rs = new RecordSet();
boolean flag = false;
String loginid = "";
String sql = " select loginid from hrmresource where workcode=?" ;
rs.executeQuery(sql,new Object[]{STAFF_CODE});
if(rs.next()){
loginid = Util.null2String(rs.getString("loginid"));
}
if(!"".equals(loginid)){
String userUpdateSql = " update hrmresource set lastname=?,departmentid=?,subcompanyid1=?," +
" creater=?,email=?,mobile=?,jobtitle=?,status=?,dsporder=?,lastmoddate=?,modified=? where workcode=? ";
flag = rs.executeUpdate(userUpdateSql,new Object[]{STAFF_NAME,deptId,subcompanyid1,creator,E_MAIL,
MOBILE_PHONE,jobTitleId,status,STAFF_ID,currentDate,currentDateTime,STAFF_CODE});
}else{
rs.executeProc("HrmResourceMaxId_Get", "");
rs.next();
String id = "" + rs.getInt(1);
String userInsertSql = " insert into hrmresource(id,loginid,password,workcode,lastname,departmentid,subcompanyid1," +
"creater,email,mobile,jobtitle,status,dsporder,systemlanguage,createdate,lastmoddate,created,modified," +
"locationid,seclevel,createrid,lastmodid) " +
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
flag = rs.executeUpdate(userInsertSql,new Object[]{id,STAFF_CODE,password,STAFF_CODE,STAFF_NAME,deptId,subcompanyid1,
creator,E_MAIL,MOBILE_PHONE,jobTitleId,status,STAFF_ID,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime,
locationid,seclevel,createrid,lastmodid});
}
return flag;
}
%>

@ -0,0 +1,104 @@
<%@ page import="weaver.interfaces.util.ReadExcel" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.TimeUtil" %>
<%@ page import="weaver.backup.fkcustomer.FkCustomerBrowserDef" %>
<%--
User: wangj
Design Ideas
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
ReadExcel r = new ReadExcel();
RecordSet rs = new RecordSet();
int scount = 0;
int fcount = 0;
String creater = "1";
String created = TimeUtil.getCurrentTimeString();
String modified = TimeUtil.getCurrentTimeString();
String modifier = "1";
List<Map<String, String>> deptlists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0);
List<Map<String, String>> lists = r.readExcel("/whalecloud/cos", "system_post.xlsx", 0, 0, 0);
if (Objects.nonNull(lists)) {
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String SYS_POST_CODE = Util.null2String(m.get("SYS_POST_CODE"));
String SYS_POST_NAME = Util.null2String(m.get("SYS_POST_NAME"));
String IS_SYNC = Util.null2String(m.get("IS_SYNC"));
if (!"YES".equals(IS_SYNC)) {
continue;
}
String allname = "~`~`7 " + SYS_POST_NAME + "`~`8 " + SYS_POST_NAME + "`~`~";
String ORG_ID = Util.null2String(m.get("ORG_ID"));
Map<String, String> res = getSubcompanyid1(deptlists, ORG_ID);
String deptid = Util.null2String(res.get("deptid"));
boolean flag = insertPost(allname, creater, created, modified, modifier, SYS_POST_CODE, deptid);
if (flag) {
scount++;
} else {
fcount++;
}
}
}
out.print("success:" + scount + ",false:" + fcount);
%>
<%!
private boolean insertPost(String allname, String creater, String created, String modified, String modifier, String sysPostCode, String departmentId) {
RecordSet rs = new RecordSet();
boolean iflag = false;
String groupsid = "803";
String jobactivitiesid = "233";
String uuid = UUID.randomUUID().toString();
String id = "";
String sql = "select id from hrmjobtitles where jobtitlecode = ?";
rs.executeQuery(sql,new Object[]{sysPostCode});
while (rs.next()){
id = Util.null2String(rs.getString("id"));
}
if(!"".equals(id)){
String updateHrmjobactivitiesSl = "update hrmjobtitles set jobtitlemark=?,jobtitlename=?,modified=?,modifier=? where id=?";
iflag = rs.executeUpdate(updateHrmjobactivitiesSl,allname,allname,modified,modifier,id);
}else{
uuid = UUID.randomUUID().toString();
String insertHrmjobactivitiesSql = " insert into hrmjobtitles(jobtitlemark,jobtitlename,jobactivityid,jobdepartmentid,jobtitlecode,created,creater,modified,modifier,uuid) values(?,?,?,?,?,?,?,?,?,?)";
iflag = rs.executeUpdate(insertHrmjobactivitiesSql, new Object[]{allname, allname, jobactivitiesid, departmentId, sysPostCode, created, creater, modified, modifier, uuid});
}
return iflag;
}
%>
<%!
private Map<String, String> getSubcompanyid1(List<Map<String, String>> lists, String id) {
Map<String, String> res = new HashMap<>();
RecordSet rs = new RecordSet();
String subcompanyid1 = "";
String deptid = "";
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String ORG_ID = m.get("ORG_ID");
String ORG_CODE = m.get("org_code");
if (ORG_ID.equals(id)) {
rs.execute("select id,subcompanyid1 from hrmdepartment where departmentcode = '" + ORG_CODE + "'");
while (rs.next()) {
deptid = Util.null2String(rs.getString("id"));
subcompanyid1 = Util.null2String(rs.getString("subcompanyid1"));
res.put("deptid", deptid);
res.put("subcompanyid1", subcompanyid1);
}
}
}
return res;
}
%>

@ -0,0 +1,144 @@
<%@ page import="weaver.interfaces.util.ReadExcel" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.TimeUtil" %>
<%@ page import="weaver.backup.fkcustomer.FkCustomerBrowserDef" %>
<%--
User: wangj
Design Ideas
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
ReadExcel r = new ReadExcel();
RecordSet rs = new RecordSet();
int scount = 0;
int fcount = 0;
String creater = "1";
String created = TimeUtil.getCurrentTimeString();
String modified = TimeUtil.getCurrentTimeString();
String modifier = "1";
List<Map<String, String>> deptlists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0);
List<Map<String, String>> postlists = r.readExcel("/whalecloud/cos", "system_post.xlsx", 0, 0, 0);
List<Map<String, String>> lists = r.readExcel("/whalecloud/cos", "system_user_post.xlsx", 0, 0, 0);
List<Map<String, String>> hrmlists = r.readExcel("/whalecloud/cos", "staff.xlsx", 0, 0, 0);
if (Objects.nonNull(lists)) {
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String ORG_ID = Util.null2String(m.get("org_id"));
Map<String,String> deptres = getSubcompanyid1(deptlists,ORG_ID);
String postCode = Util.null2String(m.get("sys_post_code"));
String userCode =Util.null2String(m.get("staff_code"));
String departmentId = Util.null2String(deptres.get("deptid"));
boolean flag = insertPostUser(postCode, departmentId, userCode);
if (flag) {
scount++;
} else {
fcount++;
}
}
}
out.print("success:" + scount + ",false:" + fcount);
%>
<%!
private boolean insertPostUser(String postCode, String departmentId,String userCode) {
RecordSet rs = new RecordSet();
boolean flag = false;
String jobtitlesId = "";
String userId = "";
String currentDateTime = TimeUtil.getCurrentTimeString(); //当前时间
String updateStaff = "1";
String queryRoleIdSql = " select id from hrmjobtitles where jobtitlecode= ?";
rs.executeQuery(queryRoleIdSql, postCode);
if (rs.next()) {
jobtitlesId = rs.getString("id");
}
if("".equals(jobtitlesId)){
jobtitlesId = "464";
}
String sql = "select id from hrmresource where loginid = ?";
rs.executeQuery(sql,userCode);
while (rs.next()) {
userId = Util.null2String(rs.getString("id"));
}
if (!"".equals(userId) && !"".equals(jobtitlesId)) {
String updateUserJobSql = "update hrmresource set jobtitle=?,modified=?,modifier=? where id=?";
flag = rs.executeUpdate(updateUserJobSql, jobtitlesId, currentDateTime, updateStaff, userId);
}
return flag;
}
%>
<%!
private String getUserCode(List<Map<String, String>> lists, String id) {
String code = "";
RecordSet rs = new RecordSet();
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String STAFF_ID = Util.null2String(m.get("staff_id"));
String STAFF_CODE = Util.null2String(m.get("staff_code"));
if (STAFF_ID.equals(id)) {
code= STAFF_CODE;
}
}
return code;
}
%>
<%!
private Map<String, String> getSubcompanyid1(List<Map<String, String>> lists, String id) {
Map<String, String> res = new HashMap<>();
RecordSet rs = new RecordSet();
String subcompanyid1 = "";
String deptid = "";
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String ORG_ID = m.get("org_id");
String ORG_CODE = m.get("org_code");
if (ORG_ID.equals(id)) {
rs.execute("select id,subcompanyid1 from hrmdepartment where departmentcode = '" + ORG_CODE + "'");
while (rs.next()) {
deptid = Util.null2String(rs.getString("id"));
subcompanyid1 = Util.null2String(rs.getString("subcompanyid1"));
res.put("deptid", deptid);
res.put("subcompanyid1", subcompanyid1);
}
}
}
return res;
}
%>
<%!
private String getPostCode(List<Map<String, String>> lists, String id) {
String postcode = "";
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String SYS_POST_CODE = Util.null2String(m.get("sys_post_code"));
String SYS_POST_ID = Util.null2String(m.get("sys_post_id"));
if (SYS_POST_ID.equals(id)) {
postcode = SYS_POST_CODE;
break;
}
}
return postcode;
}
%>

@ -0,0 +1,68 @@
<%@ page import="weaver.interfaces.util.ReadExcel" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.TimeUtil" %>
<%@ page import="weaver.backup.fkcustomer.FkCustomerBrowserDef" %>
<%--
User: wangj
Design Ideas
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
ReadExcel r = new ReadExcel();
int scount = 0;
int fcount = 0;
List<Map<String, String>> lists = r.readExcel("/whalecloud/cos", "system_roles.xlsx", 0, 0, 0);
if (Objects.nonNull(lists)) {
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String SYS_ROLE_CODE = Util.null2String(m.get("SYS_ROLE_CODE"));
String SYS_ROLE_NAME = Util.null2String(m.get("SYS_ROLE_NAME"));
String IS_SYNC = Util.null2String(m.get("IS_SYNC"));
if(!"YES".equals(IS_SYNC)){
continue;
}
boolean flag = insertRole(SYS_ROLE_CODE, SYS_ROLE_NAME);
if (flag) {
scount++;
} else {
fcount++;
}
}
}
out.print("success:" + scount + ",false:" + fcount);
%>
<%!
private boolean insertRole(String sysRoleCode, String sysRoleName) {
boolean flag = false;
RecordSet rs = new RecordSet();
String rolesmark = "~`~`7 " + sysRoleName + "`~`8 " + sysRoleName + "`~`9 " + sysRoleName + "`~`~";
String rolesname = "~`~`7 " + sysRoleName + "`~`8 " + sysRoleName + "`~`9 " + sysRoleName + "`~`~";
String type = "0";
String subcompanyid = "0";
String uuid = UUID.randomUUID().toString();
String queryRoleSql = "select id from hrmroles where ecology_pinyin_search=?";
rs.executeQuery(queryRoleSql, sysRoleCode);
String id = "";
if (rs.next()) {
id = rs.getString("id");
}
if ("".equals(id)) {
String insertHrmrolesSql = " insert into hrmroles(rolesmark,rolesname,type,subcompanyid,ecology_pinyin_search,uuid) values(?,?,?,?,?,?)";
flag = rs.executeUpdate(insertHrmrolesSql, new Object[]{rolesmark, rolesname, type, subcompanyid, sysRoleCode, uuid});
} else {
String updateHrmrolesSql = " update hrmroles set rolesmark=?,rolesname=? where id=?";
flag = rs.executeUpdate(updateHrmrolesSql, sysRoleName, sysRoleName, id);
}
return flag;
}
%>

@ -0,0 +1,124 @@
<%@ page import="weaver.interfaces.util.ReadExcel" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.TimeUtil" %>
<%@ page import="weaver.backup.fkcustomer.FkCustomerBrowserDef" %>
<%@ page import="com.icbc.api.internal.apache.http.impl.cookie.S" %>
<%--
User: wangj
Design Ideas
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
ReadExcel r = new ReadExcel();
int scount = 0;
int fcount = 0;
List<Map<String, String>> rolelists = r.readExcel("/whalecloud/cos", "system_roles.xlsx", 0, 0, 0);
List<Map<String, String>> userlists = r.readExcel("/whalecloud/cos", "system_roles.xlsx", 0, 0, 0);
List<Map<String, String>> lists = r.readExcel("/whalecloud/cos", "system_user_role.xlsx", 0, 0, 0);
if (Objects.nonNull(lists)) {
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String SYS_ROLE_ID = Util.null2String(m.get("SYS_ROLE_ID"));
String SYS_USER_ID = Util.null2String(m.get("SYS_USER_ID"));
String SYS_ROLE_CODE = getRoleCode(rolelists,SYS_ROLE_ID);
String SYS_USER_CODE = getUserCode(userlists,SYS_USER_ID);
if (!"".equals(SYS_ROLE_CODE) && !"".equals(SYS_USER_CODE)) {
boolean flag = insertRoleUser(SYS_ROLE_CODE, SYS_USER_CODE);
if (flag) {
scount++;
} else {
fcount++;
}
}
}
}
out.print("success:" + scount + ",false:" + fcount);
%>
<%!
private boolean insertRoleUser(String systemUserCode, String roleCode) {
boolean flag = false;
RecordSet rs = new RecordSet();
String userId = "";
String roleId = "";
String rolelevel = "2"; //总部=2;分部=1;部门=0
String resourcetype = "1"; //1=人力资源
String sql = " select id from hrmresource where loginid=?";
rs.executeQuery(sql, new Object[]{systemUserCode});
if (rs.next()) {
userId = Util.null2String(rs.getString("id"));
}
String queryRoleIdSql = "select id from hrmroles where ecology_pinyin_search=?";
rs.executeQuery(queryRoleIdSql, roleCode);
if (rs.next()) {
roleId = rs.getString("id");
}
if (!"".equals(userId) && !"".equals(roleId)) {
//查看是否已存在角色用户关系
String releationId = "";
String ifExistSql = "select id from hrmrolemembers where roleid=? and resourceid=?";
rs.executeQuery(ifExistSql, roleId, userId);
if (rs.next()) {
releationId = rs.getString("id");
}
if (!"".equals(releationId)) {
String delHrmrolemembersSql = " delete from hrmrolemembers where id = ?";
flag = rs.executeUpdate(delHrmrolemembersSql, releationId);
} else {
String insertHrmrolemembersSql = "insert into hrmrolemembers(roleid,resourceid,rolelevel,resourcetype,uuid) values(?,?,?,?,?)";
flag = rs.executeUpdate(insertHrmrolemembersSql, roleId, userId, rolelevel, resourcetype, UUID.randomUUID().toString());
}
}
return flag;
}
%>
<%!
private String getUserCode(List<Map<String, String>> lists, String id) {
String code = "";
RecordSet rs = new RecordSet();
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String STAFF_ID = Util.null2String(m.get("STAFF_ID"));
String STAFF_CODE = Util.null2String(m.get("STAFF_CODE"));
if (STAFF_ID.equals(id)) {
code= STAFF_CODE;
}
}
return code;
}
%>
<%!
private String getRoleCode(List<Map<String, String>> lists, String id) {
String code = "";
RecordSet rs = new RecordSet();
for (int i = 0; i < lists.size(); i++) {
Map<String, String> m = lists.get(i);
String SYS_ROLE_ID = Util.null2String(m.get("SYS_ROLE_ID"));
String SYS_ROLE_CODE = Util.null2String(m.get("SYS_ROLE_CODE"));
if (SYS_ROLE_ID.equals(id)) {
code= SYS_ROLE_CODE;
}
}
return code;
}
%>

@ -2,6 +2,8 @@
<%@ page import="weaver.general.Util,weaver.hrm.*" %> <%@ page import="weaver.general.Util,weaver.hrm.*" %>
<%@ page import="weaver.general.BaseBean" %> <%@ page import="weaver.general.BaseBean" %>
<%@ page import="java.net.URLDecoder" %> <%@ page import="java.net.URLDecoder" %>
<%@ page import="com.engine.common.util.ParamUtil" %>
<%@ page import="java.util.Map" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page"/> <jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page"/>
<% <%
// response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 // response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
@ -13,9 +15,22 @@
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
bb.writeLog("loginsso.jsp"); bb.writeLog("loginsso.jsp");
String em_auth_usercode = Util.null2String(request.getParameter("em_auth_usercode")); String userCode = Util.null2String(request.getParameter("userCode"));
String em_auth_usercode = "";
if(!"".equals(userCode)){
em_auth_usercode = userCode;
}else{
em_auth_usercode = Util.null2String(request.getParameter("em_auth_usercode"));
}
String forwardurl = Util.null2String(request.getParameter("forwardurl")); String forwardurl = Util.null2String(request.getParameter("forwardurl"));
Map<String, Object> params = ParamUtil.request2Map(request);
for (Map.Entry<String, Object> entry : params.entrySet()) {
bb.writeLog(" loginsso 参数 key= " + entry.getKey() + " and value= " + entry.getValue());
}
if(!"".equals(forwardurl)){ if(!"".equals(forwardurl)){
forwardurl = URLDecoder.decode(forwardurl,"UTF-8"); forwardurl = URLDecoder.decode(forwardurl,"UTF-8");

@ -34,16 +34,17 @@ public class HttpReqUtils extends BaseBean{
.build(); .build();
try { try {
Response response = client.newCall(request).execute(); Response response = client.newCall(request).execute();
int code = response.code();
bb.writeLog("response.code():"+response.code()); String bodyMsg = response.body().string();
bb.writeLog("response.body():"+response.body().string()); bb.writeLog("response.code():"+code);
bb.writeLog("response.body():"+bodyMsg);
if(response!=null && response.code() == 200){ if(code == 200){
msgData = response.body().string(); msgData = bodyMsg;
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
bb.writeLog("msgData:"+msgData);
return msgData; return msgData;
} }

@ -36,15 +36,17 @@ public class HttpRequestUtil extends BaseBean{
try { try {
Response response = client.newCall(request).execute(); Response response = client.newCall(request).execute();
bb.writeLog("response.code():"+response.code()); int code = response.code();
bb.writeLog("response.body():"+response.body().string()); String bodyMsg = response.body().string();
bb.writeLog("response.code():"+code);
if(response!=null && response.code() == 200){ bb.writeLog("response.body():"+bodyMsg);
msgData = response.body().string(); if(code == 200){
msgData = bodyMsg;
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
bb.writeLog("msgData:"+msgData);
return msgData; return msgData;
} }

@ -1,9 +1,10 @@
package weaver.interfaces.util; package com.customization.sendtodo;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import okhttp3.*; import okhttp3.*;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.interfaces.comInfo.PropBean;
import weaver.interfaces.iwhalecloud.util.RSAUtils; import weaver.interfaces.iwhalecloud.util.RSAUtils;
import java.io.IOException; import java.io.IOException;
@ -12,34 +13,40 @@ import java.util.Date;
public class SendMailUtil { public class SendMailUtil {
public static BaseBean baseBean = new BaseBean(); String emailenable = PropBean.getUfPropValue("emailenable");
String emailenable = baseBean.getPropValue("PORTAL_INFO","emailenable");
public void sendMail(String requestid, String emails, String notificationSubject, String notificationContent){ public void sendMail(String requestid, String emails, String notificationSubject, String notificationContent){
BaseBean baseBean = new BaseBean();
if(!"1".equals(emailenable)){ baseBean.writeLog("emailenable:"+emailenable);
return; if("1".equals(emailenable))
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String emailUrl = PropBean.getUfPropValue("emailUrl");
String emailMethod = PropBean.getUfPropValue("emailMethod");
String emailEventCode = PropBean.getUfPropValue("emailEventCode");
String emailNotificationType = PropBean.getUfPropValue("emailNotificationType");
String emailChannel = PropBean.getUfPropValue("emailChannel");
String emailVersion = PropBean.getUfPropValue("emailVersion");
String emailkey = PropBean.getUfPropValue("emailkey");
if(StringUtils.isEmpty(emailkey)){
emailkey = "email";
} }
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String emailUrl = baseBean.getPropValue("PORTAL_INFO","emailUrl");
String emailMethod = baseBean.getPropValue("PORTAL_INFO","emailMethod");
String emailEventCode = baseBean.getPropValue("PORTAL_INFO","emailEventCode");
String emailNotificationType = baseBean.getPropValue("PORTAL_INFO","emailNotificationType");
String emailChannel = baseBean.getPropValue("PORTAL_INFO","emailChannel");
String emailVersion = baseBean.getPropValue("PORTAL_INFO","emailVersion");
String triggerTime = sdf.format(new Date()); String triggerTime = sdf.format(new Date());
JSONObject requestJson = new JSONObject(); JSONObject requestJson = new JSONObject();
requestJson.put("eventCode",emailEventCode); requestJson.put("eventCode",emailEventCode);
requestJson.put("triggerTime",triggerTime); requestJson.put("triggerTime",triggerTime);
requestJson.put("notificationType",emailNotificationType); requestJson.put("notificationType",emailNotificationType);
requestJson.put("email",emails); requestJson.put(emailkey,emails);
requestJson.put("channel",emailChannel); requestJson.put("channel",emailChannel);
requestJson.put("notificationSubject",notificationSubject); requestJson.put("notificationSubject",notificationSubject);
requestJson.put("notificationContent",notificationContent); requestJson.put("notificationContent",notificationContent);
try{ try{
String responseData = doGetAccessToken(); String responseData = doGetAccessToken();
baseBean.writeLog("responseData:"+responseData);
String accessToken = "" ; String accessToken = "" ;
if(StringUtils.isNotEmpty(responseData)){ if(StringUtils.isNotEmpty(responseData)){
JSONObject responseObject = JSONObject.parseObject(responseData); JSONObject responseObject = JSONObject.parseObject(responseData);
@ -63,7 +70,7 @@ public class SendMailUtil{
jsonObject.put("content",requestJson); jsonObject.put("content",requestJson);
// "{\r\n \"access_token\": \"\",\r\n \"method\": \"sendNotification\",\r\n \"version\": \"1.0\",\r\n \"content\": {\"eventCode\":\"\", \r\n \"transId\":\"\", \r\n \"triggerTime\":\"20221020094013\",\r\n \"notificationType\":\"EMAIL\",\r\n \"email\":\"798989044@qq.com\", \r\n \"channel\":\"OA\", \r\n \"notificationSubject\":\"新待办到达\",\r\n \"notificationContent\":\"新待办到达,清及时处理\" }\r\n}" // "{\r\n \"access_token\": \"\",\r\n \"method\": \"sendNotification\",\r\n \"version\": \"1.0\",\r\n \"content\": {\"eventCode\":\"\", \r\n \"transId\":\"\", \r\n \"triggerTime\":\"20221020094013\",\r\n \"notificationType\":\"EMAIL\",\r\n \"email\":\"798989044@qq.com\", \r\n \"channel\":\"OA\", \r\n \"notificationSubject\":\"新待办到达\",\r\n \"notificationContent\":\"新待办到达,清及时处理\" }\r\n}"
System.out.println(jsonObject.toJSONString()); baseBean.writeLog("jsonObject:"+jsonObject.toJSONString());
OkHttpClient client = new OkHttpClient().newBuilder().build(); OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json"); MediaType mediaType = MediaType.parse("application/json");
@ -74,12 +81,10 @@ public class SendMailUtil{
.addHeader("Content-Type", "application/json") .addHeader("Content-Type", "application/json")
.build(); .build();
Response response = client.newCall(request).execute(); Response response = client.newCall(request).execute();
baseBean.writeLog("response.code():"+response.code()); int code = response.code();
baseBean.writeLog("response.body():"+response.body().string()); String bodyMsg = response.body().string();
baseBean.writeLog("response.code():"+code);
if(response!=null && response.code() != 200){ baseBean.writeLog("response.body():"+bodyMsg);
baseBean.writeLog(response.body().string());
}
} }
}catch (IOException e) { }catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
@ -88,21 +93,25 @@ public class SendMailUtil{
baseBean.writeLog(e); baseBean.writeLog(e);
} }
} }
}
/*** /***
* *
* @return * @return
*/ */
public String doGetAccessToken(){ public String doGetAccessToken(){
BaseBean baseBean = new BaseBean();
baseBean.writeLog("doGetAccessToken == ");
String responseData = "" ; String responseData = "" ;
RSAUtils RSAUtils = new RSAUtils(); RSAUtils RSAUtils = new RSAUtils();
String emailTokenUrl = baseBean.getPropValue("PORTAL_INFO","emailTokenUrl") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize" String emailTokenUrl = PropBean.getUfPropValue("emailTokenUrl") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize"
String emainAppCode = baseBean.getPropValue("PORTAL_INFO","emainAppCode") ; String emainAppCode = PropBean.getUfPropValue("emainAppCode") ;
String emailAppSecret = baseBean.getPropValue("PORTAL_INFO","emailAppSecret") ; String emailAppSecret = PropBean.getUfPropValue("emailAppSecret") ;
String emailResponseType = baseBean.getPropValue("PORTAL_INFO","emailResponseType") ; //token String emailResponseType = PropBean.getUfPropValue("emailResponseType") ; //token
String emailPrivateKey = baseBean.getPropValue("PORTAL_INFO","emailPrivateKey") ; String emailPrivateKey = PropBean.getUfPropValue("emailPrivateKey") ;
baseBean.writeLog("emainAppCode == "+emainAppCode);
//String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCt49VVhOmTZVpWPK/bB/ZvpoxrpXt3c9h8DJtHq9vWLGPVMS0a2l+v4U+g8zFpq6Rb6G6nnJ+pYXmojygQhqKG6izWxEojdAF2znt6URsikGe1wRxUpUewRbZVse7Rs0jvJmGZeVZ08gC1iKogyHtHeRinnHJNxC4v/5yhkOBpR6oe4t2IutKNFhSmHdJP5bEkei5gWAZ4xi15pvcWBcUSVEQliW7qRTX9yQUdCq1KzCLEGYNfm27SzKvFpRUAXpgjfFftmB3u7pZ9qhAn/25b0h9sE90Xjwg/UNmLqxUerNNDbIrqWy0x6g/+2Q/c4OXKLk5FlkkEURoBINNDbYgdAgMBAAECggEAAsfZ6XwuoATG5QojZcVC05Y+OJp01vwrQhCRixvccBhVoFsg9YT4cr+PnmtFJwNvpWiaHGQMyZCdeWyQn3MHtlCYVvbcmKSKQXQb1WDmpi7Y+bcU1OWvt8nlmIk34HKVf/2FIgcmssgL6ts8nTmXfxUYp9WAnm28r1fPEWZXsFdGNilFxg6Vymct+5hfnXUA5OMm1RgSvYR/12F4aqILz7kjMBjkF4IJAJpRqR4WlU3vhJ3+FGLnOqnAKRE+rkn10LaKpfOrWY6chm6C2ddNVzGyYaDAqH+TK+9C8qLYZLjbyD8a5LlCU4xdHYbG4VoVpHz7Pop4XQWzOkP7zagvoQKBgQD1MT9K4Kt/Ms3pw/zbv0a3Wvt45OfszMHiVBYXE7Fhp11zqK6wyTUU8ePLO3XxS5GbQwBRlfYhI2aF6nWxq2iphqemD5AqC03m0tJl4g2/q/+Mr0k7ClRJHV2cs80ij9aWdHcNlCW5G37ZXfjiQ9qkiIIr1RLngO59HAEP1ePZzwKBgQC1jgJeDpFRKDZ8SCYKowjnvMgPULZ97LDofS828hgwLSzSI+tOpHOrJnFgIC08JTVxYnB5gw3ybqvPLt9Tz+soledqayTynMwlpDz4WuoQw5mEPvURIqsxkrMFqYFcMLrBbIsyJFboKkfgLpTXlOFe6wv0oe0s37Sgz9IRMe/2UwKBgGQCGUnGR80TANAHg5xx8TsaXhXacAqzHaXeHEB/ZMtrA4AIXnB3MTKA0yPy9dFcvGAyvO+KFiFAGjInBqhYPNFgvgLKuEed4sFyXiT2RhtW4V4VpO3y8Zv84VDoOZSOTL2DdYfRVG2jHGM2pCxN9uFDWKzeNN6+RQg8ouY9nLkbAoGACme1IwbatTgEx2KrK3jkjcN4A8iwbM8f5HMoPZHqaPht1S1R0xQBvRFa9hNiBExtn63wnEYyim5lUl5xVjBYXd8ZgDPbzjvGR3H+PI2ZVJShO78P9Id0IEc0E2L/kvUH/wXlhF4ozO1/aQ3CYgiaUgJOkRqmqSe5Bm5ir7GY+xkCgYBkfmFhBI9m8AxljI3oJAGv43EGw2s6wZkrQXFBStYBSxTkkS9JHMbkNrKgKvsuzPLUCD0hmdTPREh/miO/0VNXZaa05L7xhgvakezI4f2BSY6tCMXHiBmnRXE8JL4+rEvWAKUaMCTynoyGRetl+JmooLZ5Fez1250hw5vWdSUudA=="; //String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCt49VVhOmTZVpWPK/bB/ZvpoxrpXt3c9h8DJtHq9vWLGPVMS0a2l+v4U+g8zFpq6Rb6G6nnJ+pYXmojygQhqKG6izWxEojdAF2znt6URsikGe1wRxUpUewRbZVse7Rs0jvJmGZeVZ08gC1iKogyHtHeRinnHJNxC4v/5yhkOBpR6oe4t2IutKNFhSmHdJP5bEkei5gWAZ4xi15pvcWBcUSVEQliW7qRTX9yQUdCq1KzCLEGYNfm27SzKvFpRUAXpgjfFftmB3u7pZ9qhAn/25b0h9sE90Xjwg/UNmLqxUerNNDbIrqWy0x6g/+2Q/c4OXKLk5FlkkEURoBINNDbYgdAgMBAAECggEAAsfZ6XwuoATG5QojZcVC05Y+OJp01vwrQhCRixvccBhVoFsg9YT4cr+PnmtFJwNvpWiaHGQMyZCdeWyQn3MHtlCYVvbcmKSKQXQb1WDmpi7Y+bcU1OWvt8nlmIk34HKVf/2FIgcmssgL6ts8nTmXfxUYp9WAnm28r1fPEWZXsFdGNilFxg6Vymct+5hfnXUA5OMm1RgSvYR/12F4aqILz7kjMBjkF4IJAJpRqR4WlU3vhJ3+FGLnOqnAKRE+rkn10LaKpfOrWY6chm6C2ddNVzGyYaDAqH+TK+9C8qLYZLjbyD8a5LlCU4xdHYbG4VoVpHz7Pop4XQWzOkP7zagvoQKBgQD1MT9K4Kt/Ms3pw/zbv0a3Wvt45OfszMHiVBYXE7Fhp11zqK6wyTUU8ePLO3XxS5GbQwBRlfYhI2aF6nWxq2iphqemD5AqC03m0tJl4g2/q/+Mr0k7ClRJHV2cs80ij9aWdHcNlCW5G37ZXfjiQ9qkiIIr1RLngO59HAEP1ePZzwKBgQC1jgJeDpFRKDZ8SCYKowjnvMgPULZ97LDofS828hgwLSzSI+tOpHOrJnFgIC08JTVxYnB5gw3ybqvPLt9Tz+soledqayTynMwlpDz4WuoQw5mEPvURIqsxkrMFqYFcMLrBbIsyJFboKkfgLpTXlOFe6wv0oe0s37Sgz9IRMe/2UwKBgGQCGUnGR80TANAHg5xx8TsaXhXacAqzHaXeHEB/ZMtrA4AIXnB3MTKA0yPy9dFcvGAyvO+KFiFAGjInBqhYPNFgvgLKuEed4sFyXiT2RhtW4V4VpO3y8Zv84VDoOZSOTL2DdYfRVG2jHGM2pCxN9uFDWKzeNN6+RQg8ouY9nLkbAoGACme1IwbatTgEx2KrK3jkjcN4A8iwbM8f5HMoPZHqaPht1S1R0xQBvRFa9hNiBExtn63wnEYyim5lUl5xVjBYXd8ZgDPbzjvGR3H+PI2ZVJShO78P9Id0IEc0E2L/kvUH/wXlhF4ozO1/aQ3CYgiaUgJOkRqmqSe5Bm5ir7GY+xkCgYBkfmFhBI9m8AxljI3oJAGv43EGw2s6wZkrQXFBStYBSxTkkS9JHMbkNrKgKvsuzPLUCD0hmdTPREh/miO/0VNXZaa05L7xhgvakezI4f2BSY6tCMXHiBmnRXE8JL4+rEvWAKUaMCTynoyGRetl+JmooLZ5Fez1250hw5vWdSUudA==";
//"{\"appCode\":\""+appCode+"\",\r\n\t\"appSecret\":\"9f5a519622a8790b\",\r\n\t\"responseType\":\"token\",\r\n\t\"timestamp\":\"1592212221795\",\r\n\t\"sign\":\"LE4MPesIy8BCxOa958cQxX0cW1ObvOfCn2dDUK6AzCukcvyS6EvFMLzSBFiCgcMT1w9cYAbSIOWL2SENvpC2qxXrgtWJd6B3J1dUmL5ZBtOEGZ6ymRz7IAQraA1TG82Y0ZTgVFhOGS/TtbTjdEhurwcclWdbSPEy6uZesoQpyF7MAW+hb5Y5ioqe1ky7RE15W/gwJDONgLifUoZnXhowjsJHBJ/xCwdfQi48/wu0CX+G46C+fSYHKncGbeeg7hFyaltNWsco0ScWLB/JjKA1qZv+pPFGaWGidfoTErq7Ux8fIYH3cRjRoSNknOcawi+zjy8GMBDjxIk9lX7+Oz1wYA==\"\r\n}" //"{\"appCode\":\""+appCode+"\",\r\n\t\"appSecret\":\"9f5a519622a8790b\",\r\n\t\"responseType\":\"token\",\r\n\t\"timestamp\":\"1592212221795\",\r\n\t\"sign\":\"LE4MPesIy8BCxOa958cQxX0cW1ObvOfCn2dDUK6AzCukcvyS6EvFMLzSBFiCgcMT1w9cYAbSIOWL2SENvpC2qxXrgtWJd6B3J1dUmL5ZBtOEGZ6ymRz7IAQraA1TG82Y0ZTgVFhOGS/TtbTjdEhurwcclWdbSPEy6uZesoQpyF7MAW+hb5Y5ioqe1ky7RE15W/gwJDONgLifUoZnXhowjsJHBJ/xCwdfQi48/wu0CX+G46C+fSYHKncGbeeg7hFyaltNWsco0ScWLB/JjKA1qZv+pPFGaWGidfoTErq7Ux8fIYH3cRjRoSNknOcawi+zjy8GMBDjxIk9lX7+Oz1wYA==\"\r\n}"
@ -111,14 +120,14 @@ public class SendMailUtil{
try { try {
// 生成签名 // 生成签名
String sign = RSAUtils.generateSign("", emainAppCode, emailAppSecret, timestamp, emailPrivateKey); String sign = RSAUtils.generateSign("", emainAppCode, emailAppSecret, timestamp, emailPrivateKey);
// System.out.println("sign == " + sign); baseBean.writeLog("sign == " + sign);
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("appCode",emainAppCode); jsonObject.put("appCode",emainAppCode);
jsonObject.put("appSecret",emailAppSecret); jsonObject.put("appSecret",emailAppSecret);
jsonObject.put("responseType",emailResponseType); jsonObject.put("responseType",emailResponseType);
jsonObject.put("timestamp",timestamp); jsonObject.put("timestamp",timestamp);
jsonObject.put("sign",sign); jsonObject.put("sign",sign);
System.out.println(jsonObject.toJSONString()); baseBean.writeLog("jsonObject:"+jsonObject.toJSONString());
OkHttpClient client = new OkHttpClient().newBuilder().build(); OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json"); MediaType mediaType = MediaType.parse("application/json");
@ -129,13 +138,20 @@ public class SendMailUtil{
.addHeader("Content-Type", "application/json") .addHeader("Content-Type", "application/json")
.build(); .build();
Response response = client.newCall(request).execute(); Response response = client.newCall(request).execute();
baseBean.writeLog("response.code():"+response.code());
baseBean.writeLog("response.body():"+response.body().string()); int code = response.code();
responseData = response.body().string(); String bodyMsg = response.body().string();
baseBean.writeLog("response.code():"+code);
baseBean.writeLog("response.body():"+bodyMsg);
if(code == 200){
responseData = bodyMsg;
}
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
baseBean.writeLog(e);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
baseBean.writeLog(e);
} }
return responseData; return responseData;
} }

@ -7,6 +7,9 @@ import weaver.conn.RecordSet;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import java.net.URLEncoder;
public class SendPortalDoneUtil { public class SendPortalDoneUtil {
@ -16,7 +19,7 @@ public class SendPortalDoneUtil {
* @param noideid * @param noideid
* @param user * @param user
*/ */
public void sendDoneDataByCreateNode(String requestid,String noideid,User user,String portal_doneurl,String username,String passwd,String bpm_workflowurl,String center){ public void sendDoneDataByCreateNode(String requestid, String noideid, User user, String portal_doneurl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center,String bpm_app_requesturl) {
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
@ -50,6 +53,7 @@ public class SendPortalDoneUtil {
String title = Util.null2String(rs.getString("requestname")); String title = Util.null2String(rs.getString("requestname"));
String creator = Util.null2String(rs.getString("loginid")); String creator = Util.null2String(rs.getString("loginid"));
String workcode = Util.null2String(rs.getString("loginid"));
String taskCode = Util.null2String(rs.getString("taskcode")); String taskCode = Util.null2String(rs.getString("taskcode"));
String nodeId = Util.null2String(rs.getString("nodeid")); String nodeId = Util.null2String(rs.getString("nodeid"));
@ -60,8 +64,10 @@ public class SendPortalDoneUtil {
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl + requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8");
String urlApp = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String urlDing = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")); String nodeName = Util.null2String(rs.getString("nodeName"));
requestObject.put("center", center); requestObject.put("center", center);
@ -124,7 +130,7 @@ public class SendPortalDoneUtil {
* @param noideid * @param noideid
* @param user * @param user
*/ */
public void sendDoneDataByNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ public void sendDoneDataByNode(String requestid, String noideid, User user, String portal_todourl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center,String bpm_app_requesturl) {
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
@ -180,6 +186,7 @@ public class SendPortalDoneUtil {
if (rs.next()) { if (rs.next()) {
String title = Util.null2String(rs.getString("requestname")); String title = Util.null2String(rs.getString("requestname"));
String creator = Util.null2String(rs.getString("loginid")); String creator = Util.null2String(rs.getString("loginid"));
String workcode = Util.null2String(rs.getString("loginid"));
String taskCode = Util.null2String(rs.getString("taskcode")); String taskCode = Util.null2String(rs.getString("taskcode"));
String nodeId = Util.null2String(rs.getString("nodeid")); String nodeId = Util.null2String(rs.getString("nodeid"));
@ -189,8 +196,10 @@ public class SendPortalDoneUtil {
String messageContent = Util.null2String(rs.getString("requestname")); String messageContent = Util.null2String(rs.getString("requestname"));
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl + requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8");
String urlApp = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String urlDing = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")); String nodeName = Util.null2String(rs.getString("nodeName"));
requestObject.put("center", center); requestObject.put("center", center);
@ -233,6 +242,7 @@ public class SendPortalDoneUtil {
String title = Util.null2String(rs.getString("requestname")); String title = Util.null2String(rs.getString("requestname"));
String creator = Util.null2String(rs.getString("loginid")); String creator = Util.null2String(rs.getString("loginid"));
String workcode = Util.null2String(rs.getString("loginid"));
String taskCode = Util.null2String(rs.getString("taskcode")); String taskCode = Util.null2String(rs.getString("taskcode"));
String nodeId = Util.null2String(rs.getString("nodeid")); String nodeId = Util.null2String(rs.getString("nodeid"));
@ -242,8 +252,10 @@ public class SendPortalDoneUtil {
String messageContent = Util.null2String(rs.getString("requestname")); String messageContent = Util.null2String(rs.getString("requestname"));
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl + requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8");
String urlApp = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String urlDing = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")); String nodeName = Util.null2String(rs.getString("nodeName"));
requestObject.put("center", center); requestObject.put("center", center);
@ -319,7 +331,7 @@ public class SendPortalDoneUtil {
* @param noideid * @param noideid
* @param user * @param user
*/ */
public void sendTodoDataByReject(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ public void sendTodoDataByReject(String requestid, String noideid, User user, String portal_todourl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center,String bpm_app_requesturl) {
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
@ -354,6 +366,7 @@ public class SendPortalDoneUtil {
String title = Util.null2String(rs.getString("requestname")); String title = Util.null2String(rs.getString("requestname"));
String creator = Util.null2String(rs.getString("loginid")); String creator = Util.null2String(rs.getString("loginid"));
String workcode = Util.null2String(rs.getString("loginid"));
String taskCode = Util.null2String(rs.getString("taskcode")); String taskCode = Util.null2String(rs.getString("taskcode"));
String nodeId = Util.null2String(rs.getString("nodeid")); String nodeId = Util.null2String(rs.getString("nodeid"));
@ -363,8 +376,10 @@ public class SendPortalDoneUtil {
String messageContent = Util.null2String(rs.getString("requestname")); String messageContent = Util.null2String(rs.getString("requestname"));
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl + requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8");
String urlApp = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String urlDing = bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")); String nodeName = Util.null2String(rs.getString("nodeName"));
requestObject.put("center", center); requestObject.put("center", center);
@ -435,8 +450,9 @@ public class SendPortalDoneUtil {
} }
} }
public void sendPortalDoneData(String requestid,String nodeid,User user,String portal_doneurl,String username,String passwd,String bpm_workflowurl) { public void sendPortalDoneData(String requestid, String nodeid, User user, String portal_doneurl, String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String bpm_app_requesturl) {
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
try {
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss");
@ -450,11 +466,13 @@ public class SendPortalDoneUtil {
workcode = Util.null2String(rs.getString("loginid")); workcode = Util.null2String(rs.getString("loginid"));
} }
String center = bb.getPropValue("PORTAL_INFO", "center"); String center = PropBean.getUfPropValue("center");
String ticketType = bb.getPropValue("PORTAL_INFO", "done_ticketType");
String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid;
String urlApp = "[newtab]" + bpm_workflowurl + "/spa/workflow/static4mobileform/index.html#/req?requestid=" + requestid; String app_requestUrl = bpm_app_requesturl + requestid;
sql = " select t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + app_requestUrl = URLEncoder.encode(app_requestUrl, "UTF-8");
String urlApp = "[newtab]" + bpm_app_workflowurl + "/interface/mobilelogin/loginsso.jsp?em_auth_usercode=" + workcode + "&forwardurl=" + app_requestUrl;
sql = " select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" + " from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" +
@ -465,6 +483,8 @@ public class SendPortalDoneUtil {
rs.execute(sql); rs.execute(sql);
while (rs.next()) { while (rs.next()) {
String title = Util.null2String(rs.getString("requestname")); String title = Util.null2String(rs.getString("requestname"));
String workflowid = Util.null2String(rs.getString("workflowid"));
String workflowname = getWorkflowname(workflowid);
// title = getShortMessageTitle(title); // title = getShortMessageTitle(title);
String creator = Util.null2String(rs.getString("loginid")); String creator = Util.null2String(rs.getString("loginid"));
String taskCode = Util.null2String(rs.getString("taskcode")); String taskCode = Util.null2String(rs.getString("taskcode"));
@ -472,7 +492,7 @@ public class SendPortalDoneUtil {
requestObject.put("center", center); requestObject.put("center", center);
requestObject.put("taskCode", taskCode); requestObject.put("taskCode", taskCode);
requestObject.put("nodeId", nodeid); requestObject.put("nodeId", nodeid);
requestObject.put("ticketType", ticketType); requestObject.put("ticketType", workflowname);
requestObject.put("title", title); requestObject.put("title", title);
requestObject.put("creator", creator); requestObject.put("creator", creator);
requestObject.put("processStaff", workcode); requestObject.put("processStaff", workcode);
@ -487,7 +507,13 @@ public class SendPortalDoneUtil {
String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth);
bb.writeLog("done msgdata:" + msgdata); bb.writeLog("done msgdata:" + msgdata);
} }
} catch (Exception e) {
bb.writeLog("done Exception");
bb.writeLog(e.getMessage());
}
} }
private String getShortMessageTitle(String messageTitle) { private String getShortMessageTitle(String messageTitle) {
if (messageTitle.length() > 20) { if (messageTitle.length() > 20) {
messageTitle = messageTitle.substring(0, 17) + "..."; messageTitle = messageTitle.substring(0, 17) + "...";
@ -495,5 +521,15 @@ public class SendPortalDoneUtil {
return messageTitle; return messageTitle;
} }
private String getWorkflowname(String id) {
RecordSet rs = new RecordSet();
String name = "";
rs.executeQuery("select workflowname from workflow_base where id = ?", id);
while (rs.next()) {
name = Util.null2String(rs.getString("workflowname"));
}
return name;
}
} }

@ -35,14 +35,14 @@ public class SendPortalTodoCmd extends AbstractCommandProxy<Map<String,Object>>
String nodeid = Util.null2String(request.getParameter("nodeid")); String nodeid = Util.null2String(request.getParameter("nodeid"));
String workflowname = Util.null2String(request.getParameter("workflowname")); String workflowname = Util.null2String(request.getParameter("workflowname"));
Map<String,Object> params = ParamUtil.request2Map(request); // Map<String,Object> params = ParamUtil.request2Map(request);
params.forEach((t,u)-> { // params.forEach((t,u)-> {
System.out.println(t+"->>>"+u); // System.out.println(t+"->>>"+u);
}); // });
//
for (Map.Entry<String, Object> entry : params.entrySet()) { // for (Map.Entry<String, Object> entry : params.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); // System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
} // }
User user = requestSubmitCmd.getUser(); User user = requestSubmitCmd.getUser();
bb.writeLog("requestid:"+requestid); bb.writeLog("requestid:"+requestid);

@ -3,6 +3,7 @@ package com.customization.sendtodo;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
public class SendPortalTodoRunnable implements Runnable{ public class SendPortalTodoRunnable implements Runnable{
@ -27,25 +28,27 @@ public class SendPortalTodoRunnable implements Runnable{
SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil();
SendPortalDoneUtil sendPortalDoneUtil = new SendPortalDoneUtil(); SendPortalDoneUtil sendPortalDoneUtil = new SendPortalDoneUtil();
BaseBean bb = new BaseBean(); String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl");
String portal_todourl = bb.getPropValue("PORTAL_INFO","portal_todourl"); String portal_doneurl = PropBean.getUfPropValue("portal_doneurl");
String username = bb.getPropValue("PORTAL_INFO","username"); String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl");
String passwd = bb.getPropValue("PORTAL_INFO","passwd"); String portal_todourl = PropBean.getUfPropValue("portal_todourl");
String center = bb.getPropValue("PORTAL_INFO","center"); String username = PropBean.getUfPropValue("username");
String bpm_workflowurl = bb.getPropValue("PORTAL_INFO","bpm_workflowurl"); String passwd = PropBean.getUfPropValue("passwd");
String portal_doneurl = bb.getPropValue("PORTAL_INFO","portal_doneurl"); String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
if(Util.getIntValue(requestid) == -1 && "save".equals(src)){ if(Util.getIntValue(requestid) == -1 && "save".equals(src)){
sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user,portal_todourl,username,passwd,bpm_workflowurl,center); sendPortalTodoUtil.sendTodoDataByCreater(new_requestid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
}else if(Util.getIntValue(requestid) == -1 && "submit".equals(src)){ }else if(Util.getIntValue(requestid) == -1 && "submit".equals(src)){
sendPortalTodoUtil.sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); sendPortalTodoUtil.sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
sendPortalDoneUtil.sendPortalDoneData( new_requestid, nodeid, user, portal_doneurl, username, passwd, bpm_workflowurl); sendPortalDoneUtil.sendPortalDoneData( new_requestid, nodeid, user, portal_doneurl,bpm_app_workflowurl, username, passwd, bpm_workflowurl,bpm_app_requesturl);
}else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){ }else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){
sendPortalTodoUtil.sendTodoDataByNode(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); sendPortalTodoUtil.sendTodoDataByNode(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
sendPortalDoneUtil.sendPortalDoneData( requestid, nodeid, user, portal_doneurl, username, passwd, bpm_workflowurl); sendPortalDoneUtil.sendPortalDoneData( requestid, nodeid, user, portal_doneurl,bpm_app_workflowurl, username, passwd, bpm_workflowurl,bpm_app_requesturl);
}else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){ }else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){
sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,bpm_app_workflowurl,username,passwd,bpm_workflowurl,center,bpm_app_requesturl);
sendPortalDoneUtil.sendPortalDoneData( requestid, nodeid, user, portal_doneurl, username, passwd, bpm_workflowurl); sendPortalDoneUtil.sendPortalDoneData( requestid, nodeid, user, portal_doneurl,bpm_app_workflowurl, username, passwd, bpm_workflowurl,bpm_app_requesturl);
} }
} }

@ -2,24 +2,26 @@ package com.customization.sendtodo;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.util.SendMailUtil;
import java.net.URLEncoder;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class SendPortalTodoUtil { public class SendPortalTodoUtil {
public static String EMAIL_REGEX_DEFAULT = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; //public static String EMAIL_REGEX_DEFAULT = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
public static String EMAIL_REGEX_DEFAULT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
/*** /***
* *
* @param requestId * @param requestId
* @param user * @param user
*/ */
public void sendTodoDataByCreater(String requestId, User user, String portal_todourl, String username, String passwd, String bpm_workflowurl, String center){ public void sendTodoDataByCreater(String requestId, User user, String portal_todourl,String bpm_app_workflowurl, String username, String passwd, String bpm_workflowurl, String center,String bpm_app_requesturl){
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil(); SendMailUtil sendMailUtil = new SendMailUtil();
@ -28,7 +30,7 @@ public class SendPortalTodoUtil {
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
JSONArray emailArray = new JSONArray(); String emailArray = "";
String requestname = ""; String requestname = "";
String requestremark = "" ; String requestremark = "" ;
@ -46,7 +48,7 @@ public class SendPortalTodoUtil {
JSONObject requestObject = new JSONObject(); JSONObject requestObject = new JSONObject();
try { try {
int userid = user.getUID(); int userid = user.getUID();
String sql =" select t1.requestname,t1.requestmark,t1.creater,t2.nodeid,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t2.nodeid,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskcode,d1.nodename,h1.email\n" + " t1.requestid as taskcode,d1.nodename,h1.email\n" +
" from workflow_requestbase t1\n" + " from workflow_requestbase t1\n" +
" inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" +
@ -63,9 +65,11 @@ public class SendPortalTodoUtil {
rs.executeQuery(sql); rs.executeQuery(sql);
if (rs.next()){ if (rs.next()){
String workflowid = Util.null2String(rs.getString("workflowid")) ;
String workflowname = getWorkflowname(workflowid);
String title = Util.null2String(rs.getString("requestname")) ; String title = Util.null2String(rs.getString("requestname")) ;
String creator = Util.null2String(rs.getString("loginid")) ; String creator = Util.null2String(rs.getString("loginid")) ;
String workcode = Util.null2String(rs.getString("loginid")) ;
String taskCode = Util.null2String(rs.getString("taskcode")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ;
String nodeId = Util.null2String(rs.getString("nodeid")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ;
@ -79,8 +83,11 @@ public class SendPortalTodoUtil {
messageTitle = getShortMessageTitle(messageTitle); messageTitle = getShortMessageTitle(messageTitle);
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestId ; String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestId ;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; String app_requestUrl = bpm_app_requesturl+requestId;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8");
String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")) ; String nodeName = Util.null2String(rs.getString("nodeName")) ;
requestObject.put("center",center); requestObject.put("center",center);
@ -98,7 +105,7 @@ public class SendPortalTodoUtil {
requestObject.put("urlApp",urlApp); requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing); requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName); requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",ticketType); requestObject.put("ticketType",workflowname);
JSONArray taskObjectList = new JSONArray(); JSONArray taskObjectList = new JSONArray();
JSONObject taskObject = new JSONObject(); JSONObject taskObject = new JSONObject();
@ -117,32 +124,34 @@ public class SendPortalTodoUtil {
requestObject.put("taskObjectList",taskObjectList); requestObject.put("taskObjectList",taskObjectList);
String email = Util.null2String(rs.getString("email")) ; String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email1:"+email);
Matcher matcher = regex.matcher(email); Matcher matcher = regex.matcher(email);
if(matcher.matches()){ if(matcher.matches()){
emailArray.add(email); emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
} }
} }
bb.writeLog("dataJsonnew:"+requestObject.toJSONString()); //bb.writeLog("dataJsonnew:"+requestObject.toJSONString());
// String username = "admin"; // String username = "admin";
// String passwd = "Uportal_123"; // String passwd = "Uportal_123";
// String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ; // String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ;
String auth = username + ":" + passwd; String auth = username + ":" + passwd;
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata); bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){ if(StringUtils.isNotEmpty(msgdata)){
JSONObject msgObject = JSONObject.parseObject(msgdata); JSONObject msgObject = JSONObject.parseObject(msgdata);
//{"resultCode":"1","resultMsg":"No Result"} //{"resultCode":"1","resultMsg":"No Result"}
if(msgObject.containsKey("resultCode")){ if(msgObject.containsKey("resultCode")){
String resultCode = msgObject.getString("resultCode"); String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){ if("0".equals(resultCode)){
System.out.println(emailArray.toJSONString()); bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time";
String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
sendMailUtil.sendMail(requestId,emailArray,notificationSubject,notificationContent);
sendMailUtil.sendMail(requestId,emailArray.toJSONString(),notificationSubject,notificationContent); }
}else{ }else{
sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo();
@ -161,7 +170,7 @@ public class SendPortalTodoUtil {
* @param noideid * @param noideid
* @param user * @param user
*/ */
public void sendTodoDataByCreateNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ public void sendTodoDataByCreateNode(String requestid,String noideid,User user,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String bpm_app_requesturl){
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil(); SendMailUtil sendMailUtil = new SendMailUtil();
@ -173,7 +182,7 @@ public class SendPortalTodoUtil {
String requestremark = "" ; String requestremark = "" ;
JSONObject requestObject = new JSONObject(); JSONObject requestObject = new JSONObject();
JSONArray emailArray = new JSONArray(); String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
@ -189,7 +198,7 @@ public class SendPortalTodoUtil {
try { try {
JSONArray taskObjectList = new JSONArray(); JSONArray taskObjectList = new JSONArray();
String sql =" select t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" + " from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" +
@ -201,9 +210,11 @@ public class SendPortalTodoUtil {
bb.writeLog("sendTodoDataByNode--sql:"+sql); bb.writeLog("sendTodoDataByNode--sql:"+sql);
rs.executeQuery(sql); rs.executeQuery(sql);
if (rs.next()){ if (rs.next()){
String workflowid = Util.null2String(rs.getString("workflowid")) ;
String workflowname = getWorkflowname(workflowid);
String title = Util.null2String(rs.getString("requestname")) ; String title = Util.null2String(rs.getString("requestname")) ;
String creator = Util.null2String(rs.getString("loginid")) ; String creator = Util.null2String(rs.getString("loginid")) ;
String workcode = Util.null2String(rs.getString("loginid")) ;
String taskCode = Util.null2String(rs.getString("taskcode")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ;
String nodeId = Util.null2String(rs.getString("nodeid")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ;
@ -216,8 +227,10 @@ public class SendPortalTodoUtil {
messageTitle = getShortMessageTitle(messageTitle); messageTitle = getShortMessageTitle(messageTitle);
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl+requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8");
String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")) ; String nodeName = Util.null2String(rs.getString("nodeName")) ;
requestObject.put("center",center); requestObject.put("center",center);
@ -235,7 +248,7 @@ public class SendPortalTodoUtil {
requestObject.put("urlApp",urlApp); requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing); requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName); requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",ticketType); requestObject.put("ticketType",workflowname);
} }
sql = " select t2.userid,h1.loginid,h1.email\n" + sql = " select t2.userid,h1.loginid,h1.email\n" +
@ -265,16 +278,17 @@ public class SendPortalTodoUtil {
taskObjectList.add(taskObject); taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email")) ; String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email2:"+email);
Matcher matcher = regex.matcher(email); Matcher matcher = regex.matcher(email);
if(matcher.matches()){ if(matcher.matches()){
emailArray.add(email); emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
} }
} }
requestObject.put("taskObjectList",taskObjectList); requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd; String auth = username + ":" + passwd;
bb.writeLog("requestObject:"+requestObject.toJSONString()); //bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata); bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){ if(!"".equals(msgdata)){
@ -284,12 +298,13 @@ public class SendPortalTodoUtil {
String resultCode = msgObject.getString("resultCode"); String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){ if("0".equals(resultCode)){
System.out.println(emailArray.toJSONString()); bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time";
String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); }
}else{ }else{
sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo();
} }
@ -309,7 +324,7 @@ public class SendPortalTodoUtil {
* @param noideid * @param noideid
* @param user * @param user
*/ */
public void sendTodoDataByNode(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ public void sendTodoDataByNode(String requestid,String noideid,User user,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String bpm_app_requesturl){
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil(); SendMailUtil sendMailUtil = new SendMailUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
@ -326,7 +341,7 @@ public class SendPortalTodoUtil {
String objectId = "" ; String objectId = "" ;
String requestname = "" ; String requestname = "" ;
JSONArray emailArray = new JSONArray(); String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
try { try {
@ -348,7 +363,7 @@ public class SendPortalTodoUtil {
} }
bb.writeLog("sendTodoDataByNode--count:"+count); bb.writeLog("sendTodoDataByNode--count:"+count);
String sql =" select t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" + " from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" +
@ -367,12 +382,14 @@ public class SendPortalTodoUtil {
rs.executeQuery(sql); rs.executeQuery(sql);
if (rs.next()){ if (rs.next()){
String workflowid = Util.null2String(rs.getString("workflowid")) ;
String workflowname = getWorkflowname(workflowid);
String title = Util.null2String(rs.getString("requestname")) ; String title = Util.null2String(rs.getString("requestname")) ;
requestname = title; requestname = title;
String creator = Util.null2String(rs.getString("loginid")) ; String creator = Util.null2String(rs.getString("loginid")) ;
String taskCode = Util.null2String(rs.getString("taskcode")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ;
String nodeId = Util.null2String(rs.getString("nodeid")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ;
String workcode = Util.null2String(rs.getString("loginid")) ;
String createdate = Util.null2String(rs.getString("createdate")) ; String createdate = Util.null2String(rs.getString("createdate")) ;
String createtime = Util.null2String(rs.getString("createtime")) ; String createtime = Util.null2String(rs.getString("createtime")) ;
String messageTitle = Util.null2String(rs.getString("requestname")) ; String messageTitle = Util.null2String(rs.getString("requestname")) ;
@ -380,8 +397,10 @@ public class SendPortalTodoUtil {
String messageContent = Util.null2String(rs.getString("requestname")) ; String messageContent = Util.null2String(rs.getString("requestname")) ;
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl+requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8");
String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")) ; String nodeName = Util.null2String(rs.getString("nodeName")) ;
requestObject.put("center",center); requestObject.put("center",center);
@ -399,7 +418,7 @@ public class SendPortalTodoUtil {
requestObject.put("urlApp",urlApp); requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing); requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName); requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",ticketType); requestObject.put("ticketType",workflowname);
} }
String objectCode = user.getLoginid() ; String objectCode = user.getLoginid() ;
@ -421,13 +440,14 @@ public class SendPortalTodoUtil {
JSONArray taskObjectList = new JSONArray(); JSONArray taskObjectList = new JSONArray();
rs.executeQuery(sql); rs.executeQuery(sql);
if (rs.next()){ if (rs.next()){
String workflowid = Util.null2String(rs.getString("workflowid")) ;
String workflowname = getWorkflowname(workflowid);
String title = Util.null2String(rs.getString("requestname")) ; String title = Util.null2String(rs.getString("requestname")) ;
requestname = title; requestname = title;
String creator = Util.null2String(rs.getString("loginid")) ; String creator = Util.null2String(rs.getString("loginid")) ;
String taskCode = Util.null2String(rs.getString("taskcode")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ;
String nodeId = Util.null2String(rs.getString("nodeid")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ;
String workcode = Util.null2String(rs.getString("loginid")) ;
String createdate = Util.null2String(rs.getString("createdate")) ; String createdate = Util.null2String(rs.getString("createdate")) ;
String createtime = Util.null2String(rs.getString("createtime")) ; String createtime = Util.null2String(rs.getString("createtime")) ;
String messageTitle = Util.null2String(rs.getString("requestname")) ; String messageTitle = Util.null2String(rs.getString("requestname")) ;
@ -435,8 +455,10 @@ public class SendPortalTodoUtil {
String messageContent = Util.null2String(rs.getString("requestname")) ; String messageContent = Util.null2String(rs.getString("requestname")) ;
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl+requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8");
String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")) ; String nodeName = Util.null2String(rs.getString("nodeName")) ;
requestObject.put("center",center); requestObject.put("center",center);
@ -454,7 +476,7 @@ public class SendPortalTodoUtil {
requestObject.put("urlApp",urlApp); requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing); requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName); requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",ticketType); requestObject.put("ticketType",workflowname);
} }
sql = " select t2.userid,h1.loginid,h1.email\n" + sql = " select t2.userid,h1.loginid,h1.email\n" +
@ -483,16 +505,17 @@ public class SendPortalTodoUtil {
taskObjectList.add(taskObject); taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email")) ; String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email3:"+email);
Matcher matcher = regex.matcher(email); Matcher matcher = regex.matcher(email);
if(matcher.matches()){ if(matcher.matches()){
emailArray.add(email); emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
} }
} }
requestObject.put("taskObjectList",taskObjectList); requestObject.put("taskObjectList",taskObjectList);
} }
String auth = username + ":" + passwd; String auth = username + ":" + passwd;
bb.writeLog("requestObject:"+requestObject.toJSONString()); //bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata); bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){ if(!"".equals(msgdata)){
@ -502,10 +525,13 @@ public class SendPortalTodoUtil {
String resultCode = msgObject.getString("resultCode"); String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){ if("0".equals(resultCode)){
System.out.println(emailArray.toJSONString()); bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time";
String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
}
}else{ }else{
sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo();
@ -525,14 +551,14 @@ public class SendPortalTodoUtil {
* @param noideid * @param noideid
* @param user * @param user
*/ */
public void sendTodoDataByReject(String requestid,String noideid,User user,String portal_todourl,String username,String passwd,String bpm_workflowurl,String center){ public void sendTodoDataByReject(String requestid,String noideid,User user,String portal_todourl,String bpm_app_workflowurl,String username,String passwd,String bpm_workflowurl,String center,String bpm_app_requesturl){
HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
SendMailUtil sendMailUtil = new SendMailUtil(); SendMailUtil sendMailUtil = new SendMailUtil();
SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil();
JSONObject requestObject = new JSONObject(); JSONObject requestObject = new JSONObject();
JSONArray emailArray = new JSONArray(); String emailArray = "";
Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT);
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
@ -550,7 +576,7 @@ public class SendPortalTodoUtil {
String actionType = "2" ; String actionType = "2" ;
JSONArray taskObjectList = new JSONArray(); JSONArray taskObjectList = new JSONArray();
String sql =" select t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" + String sql =" select t1.workflowid,t1.requestname,t1.requestmark,t1.creater,t1.createdate,t1.createtime,h1.lastname,h1.loginid,\n" +
" t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" + " t1.requestid as taskCode,t1.currentnodeid as nodeid,d1.nodename\n" +
" from workflow_requestbase t1\n" + " from workflow_requestbase t1\n" +
" inner join workflow_base t3 on t1.workflowid = t3.id\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" +
@ -561,13 +587,14 @@ public class SendPortalTodoUtil {
bb.writeLog("sendTodoDataByReject--sql:"+sql); bb.writeLog("sendTodoDataByReject--sql:"+sql);
rs.executeQuery(sql); rs.executeQuery(sql);
if (rs.next()){ if (rs.next()){
String workflowid = Util.null2String(rs.getString("workflowid")) ;
String workflowname = getWorkflowname(workflowid);
String title = Util.null2String(rs.getString("requestname")) ; String title = Util.null2String(rs.getString("requestname")) ;
requestname = title ; requestname = title ;
String creator = Util.null2String(rs.getString("loginid")) ; String creator = Util.null2String(rs.getString("loginid")) ;
String taskCode = Util.null2String(rs.getString("taskcode")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ;
String nodeId = Util.null2String(rs.getString("nodeid")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ;
String workcode = Util.null2String(rs.getString("loginid")) ;
String createdate = Util.null2String(rs.getString("createdate")) ; String createdate = Util.null2String(rs.getString("createdate")) ;
String createtime = Util.null2String(rs.getString("createtime")) ; String createtime = Util.null2String(rs.getString("createtime")) ;
String messageTitle = Util.null2String(rs.getString("requestname")) ; String messageTitle = Util.null2String(rs.getString("requestname")) ;
@ -575,8 +602,10 @@ public class SendPortalTodoUtil {
String messageContent = Util.null2String(rs.getString("requestname")) ; String messageContent = Util.null2String(rs.getString("requestname")) ;
String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ; String urlPc = "[newtab]"+bpm_workflowurl+"/workflow/request/ViewRequestForwardSPA.jsp?requestid="+requestid ;
String urlApp = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; String app_requestUrl = bpm_app_requesturl+requestid;
String urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; app_requestUrl = URLEncoder.encode(app_requestUrl,"UTF-8");
String urlApp = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String urlDing = bpm_app_workflowurl+"/interface/mobilelogin/loginsso.jsp?em_auth_usercode="+workcode+"&forwardurl="+app_requestUrl;
String nodeName = Util.null2String(rs.getString("nodeName")) ; String nodeName = Util.null2String(rs.getString("nodeName")) ;
requestObject.put("center",center); requestObject.put("center",center);
@ -594,7 +623,7 @@ public class SendPortalTodoUtil {
requestObject.put("urlApp",urlApp); requestObject.put("urlApp",urlApp);
requestObject.put("urlDing",urlDing); requestObject.put("urlDing",urlDing);
requestObject.put("nodeName",nodeName); requestObject.put("nodeName",nodeName);
requestObject.put("ticketType",ticketType); requestObject.put("ticketType",workflowname);
} }
sql = " select t2.userid,h1.loginid,h1.email\n" + sql = " select t2.userid,h1.loginid,h1.email\n" +
@ -615,7 +644,6 @@ public class SendPortalTodoUtil {
JSONObject taskObject = new JSONObject(); JSONObject taskObject = new JSONObject();
String objectCode = usercode ; String objectCode = usercode ;
String operatorCode = usercode ; String operatorCode = usercode ;
taskObject.put("objectAction",objectAction); taskObject.put("objectAction",objectAction);
@ -626,17 +654,17 @@ public class SendPortalTodoUtil {
taskObjectList.add(taskObject); taskObjectList.add(taskObject);
String email = Util.null2String(rs.getString("email")) ; String email = Util.null2String(rs.getString("email")) ;
bb.writeLog("email4:"+email);
Matcher matcher = regex.matcher(email); Matcher matcher = regex.matcher(email);
if(matcher.matches()){ if(matcher.matches()){
emailArray.add(email); emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ;
} }
} }
requestObject.put("taskObjectList",taskObjectList); requestObject.put("taskObjectList",taskObjectList);
String auth = username + ":" + passwd; String auth = username + ":" + passwd;
bb.writeLog("requestObject:"+requestObject.toJSONString()); //bb.writeLog("requestObject:"+requestObject.toJSONString());
String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth);
bb.writeLog("msgdata:"+msgdata); bb.writeLog("msgdata:"+msgdata);
if(!"".equals(msgdata)){ if(!"".equals(msgdata)){
@ -646,13 +674,13 @@ public class SendPortalTodoUtil {
String resultCode = msgObject.getString("resultCode"); String resultCode = msgObject.getString("resultCode");
if("0".equals(resultCode)){ if("0".equals(resultCode)){
System.out.println(emailArray.toJSONString()); bb.writeLog("emailArray:"+emailArray);
if(StringUtils.isNotEmpty(emailArray))
{
String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationSubject = "You have a new to-do list:"+requestname+",Please handle it in time";
String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time"; String notificationContent = "You have a new to-do list:"+requestname+",Please handle it in time";
sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent);
sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); }
}else{ }else{
sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo();
} }
@ -671,4 +699,14 @@ public class SendPortalTodoUtil {
return messageTitle; return messageTitle;
} }
private String getWorkflowname(String id){
RecordSet rs = new RecordSet();
String name = "";
rs.executeQuery("select workflowname from workflow_base where id = ?",id);
while (rs.next()){
name = Util.null2String(rs.getString("workflowname"));
}
return name;
}
} }

@ -12,6 +12,7 @@ import weaver.file.FileUpload;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Map; import java.util.Map;
@ -60,11 +61,12 @@ public class SendRemarkOperateTodoCmd extends AbstractCommandProxy<Map<String, O
} }
User user = forwardSubmitCmd.getUser(); User user = forwardSubmitCmd.getUser();
//执行推送代办 //执行推送代办
String portal_todourl = bb.getPropValue("PORTAL_INFO", "portal_todourl"); String portal_todourl = PropBean.getUfPropValue("portal_todourl");
String username = bb.getPropValue("PORTAL_INFO", "username"); String username = PropBean.getUfPropValue("username");
String passwd = bb.getPropValue("PORTAL_INFO", "passwd"); String passwd = PropBean.getUfPropValue("passwd");
String center = bb.getPropValue("PORTAL_INFO", "center"); String center = PropBean.getUfPropValue("center");
String bpm_workflowurl = bb.getPropValue("PORTAL_INFO", "bpm_workflowurl"); String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl");
if (Util.getIntValue(requestid) > 0) { if (Util.getIntValue(requestid) > 0) {
sendTodoDataByCreateNode(requestid, nodeid, user, portal_todourl, username, passwd, bpm_workflowurl, center); sendTodoDataByCreateNode(requestid, nodeid, user, portal_todourl, username, passwd, bpm_workflowurl, center);
} }

@ -10,7 +10,7 @@ public class PropBean {
public static BaseBean bb = new BaseBean(); public static BaseBean bb = new BaseBean();
public static String active = Util.null2String(bb.getPropValue("developProp","active")); public static String active = Util.null2String(bb.getPropValue("developProp","active"));
public static String getPropValue(String pkey) public static String getUfPropValue(String pkey)
{ {
if(StringUtils.isEmpty(active)){ if(StringUtils.isEmpty(active)){
return ""; return "";

@ -1,355 +1,268 @@
package weaver.interfaces.filter; package weaver.interfaces.filter;
import okhttp3.*; import com.api.login.util.LoginUtil;
import org.apache.http.HttpEntity; import okhttp3.OkHttpClient;
import org.apache.http.HttpResponse; import okhttp3.Request;
import org.apache.http.ParseException; import okhttp3.Response;
import org.apache.http.client.methods.CloseableHttpResponse; import weaver.conn.RecordSet;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import java.io.BufferedReader; import weaver.general.Util;
import weaver.hrm.User;
import weaver.general.GCONST;
import weaver.interfaces.comInfo.PropBean;
import weaver.login.VerifyLogin;
import javax.servlet.http.Cookie;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.util.ArrayList;
import java.net.HttpURLConnection; import java.util.Calendar;
import java.net.URL; import java.util.List;
import java.util.Map; import java.util.Map;
import com.sun.jersey.core.util.Base64;
public class HttpRequestUtil extends BaseBean{ public class HttpRequestUtil extends BaseBean{
public String doGetHttp(String url,String session){
/**
*
*
* @param url
* @param encoding
* @return
* @throws ParseException
* @throws IOException
*/
public String sendPost(String url, Map<String,String> headers,String encoding){
String body = "";
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
bb.writeLog("url ==" + url); String msgData= "" ;
OkHttpClient client = new OkHttpClient().newBuilder().build();
//创建httpclient对象 Request request = new Request.Builder()
CloseableHttpClient client = HttpClients.createDefault(); .url(url)
//创建post方式请求对象 .method("GET", null)
HttpPost httpPost = new HttpPost(url); .addHeader("Cookie", "SESSION="+session)
.build();
//设置参数到请求对象中
if (headers != null && headers.size() > 0) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
bb.writeLog("key:"+entry.getKey());
bb.writeLog("val:"+entry.getValue());
httpPost.addHeader(entry.getKey(),entry.getValue());
}
}
//设置header信息
//指定报文头【Content-type】、【User-Agent】
// httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = null;
try {
response = client.execute(httpPost);
bb.writeLog(response.getStatusLine().getStatusCode());
//获取结果实体
HttpEntity entity = response.getEntity();
if (entity != null) {
//按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, encoding);
}
EntityUtils.consume(entity);
//释放链接
response.close();
} catch (IOException e) {
e.printStackTrace();
bb.writeLog("e:"+e);
}
return body;
}
/**
* URLGET
*
* @param url
* URL
* name1=value1&name2=value2
* @return result
*/
public String sendGet(String url, Map<String,String> headers,String uid) {
String result = "";
BufferedReader in = null;
BaseBean bb = new BaseBean();
bb.writeLog("url ==" + url);
bb.writeLog("uid ==" + uid);
try {
String urlNameString = url ;
URL realUrl = new URL(urlNameString); // 打开和URL之间的连接
HttpURLConnection connection= (HttpURLConnection) realUrl.openConnection();
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestMethod("GET");
//connection.addRequestProperty("Cookie", "SESSION="+uid);
if (headers != null && headers.size() > 0)
{
for (Map.Entry<String, String> entry : headers.entrySet()) {
bb.writeLog("key:"+entry.getKey());
bb.writeLog("val:"+entry.getValue());
connection.addRequestProperty(entry.getKey(), entry.getValue());
}
}
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
//Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
//for (String key : map.keySet()) {
// System.out.println(key + "--->" + map.get(key));
//}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream(),"UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
bb.writeLog("发送GET请求出现异常" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try { try {
if (in != null) { Response response = client.newCall(request).execute();
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
/***
*
* @param url
* @param headers
* @param encode
* @return
*/
public String httpGet1(String url, Map<String,String> headers, String encode){
BaseBean bb = new BaseBean(); int code = response.code();
bb.writeLog("url",url); String bodyMsg = response.body().string();
if(encode == null){ bb.writeLog("PortalLoginFilter-response.code():"+code);
encode = "UTF-8"; bb.writeLog("PortalLoginFilter-response.body():"+bodyMsg);
} if(code == 200){
CloseableHttpResponse httpResponse = null; msgData = bodyMsg;
CloseableHttpClient closeableHttpClient = null;
String content = null;
//since 4.3 不再使用 DefaultHttpClient
try {
closeableHttpClient = HttpClientBuilder.create().build();
HttpGet httpGet = new HttpGet(url);
//设置header
if (headers != null && headers.size() > 0) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
httpGet.addHeader(entry.getKey(),entry.getValue());
}
} }
httpGet.setHeader("Accept", "*");
// httpGet.addHeader("Cookie","SESSION="+uid);
httpResponse = closeableHttpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode() == 200){
bb.writeLog(httpResponse.getStatusLine().getStatusCode());
HttpEntity entity = httpResponse.getEntity();
content = EntityUtils.toString(entity, encode);
}
} catch (Exception e) {
e.printStackTrace();
bb.writeLog("er333:"+e);
}finally{
try {
httpResponse.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try { //关闭连接、释放资源
closeableHttpClient.close();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
return content; return msgData;
} }
/*** /***
* *
* @param url * @param request
* @param headers * @param staffCode
* @param encode * @param uid
* @return
*/ */
public String httpGet2(String url,Map<String,String> headers,String encode) public void loginUser(HttpServletRequest request,String staffCode,String uid,String resultCode){
RecordSet rs = new RecordSet();
if (!"".equals(staffCode))
{ {
User user_new = null;
BaseBean bb = new BaseBean(); String sql = "";
bb.writeLog("url",url); if ("admin".equals(staffCode)) {
if(encode == null){ staffCode = "sysadmin";
encode = "UTF-8"; sql = " select * from hrmresourcemanager where loginid =? ";
} } else {
CloseableHttpResponse httpResponse = null; sql = " select * from HrmResource where loginid =? ";
CloseableHttpClient closeableHttpClient = null; }
String content = null; //bb.writeLog("sql:" + sql);
//since 4.3 不再使用 DefaultHttpClient rs.executeQuery(sql, new Object[]{staffCode});
try {
closeableHttpClient = HttpClientBuilder.create().build(); if (rs.next()) {
HttpGet httpGet = new HttpGet(url); user_new = new User();
//设置header user_new.setUid(rs.getInt("id"));
if (headers != null && headers.size() > 0) { user_new.setLoginid(rs.getString("loginid"));
for (Map.Entry<String, String> entry : headers.entrySet()) { user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
bb.writeLog("key:"+entry.getKey()); user_new.setAliasname(rs.getString("aliasname"));
bb.writeLog("val:"+entry.getValue()); user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
httpGet.addHeader(entry.getKey(),entry.getValue()); user_new.setSex(rs.getString("sex"));
} user_new.setPwd(rs.getString("password"));
} String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
httpGet.setHeader("Accept", "*");
user_new.setTelephone(rs.getString("telephone"));
httpResponse = closeableHttpClient.execute(httpGet); user_new.setMobile(rs.getString("mobile"));
if(httpResponse.getStatusLine().getStatusCode() == 200) user_new.setMobilecall(rs.getString("mobilecall"));
{ user_new.setEmail(rs.getString("email"));
bb.writeLog(httpResponse.getStatusLine().getStatusCode()); user_new.setCountryid(rs.getString("countryid"));
HttpEntity entity = httpResponse.getEntity(); user_new.setLocationid(rs.getString("locationid"));
content = EntityUtils.toString(entity, encode); user_new.setResourcetype(rs.getString("resourcetype"));
} user_new.setStartdate(rs.getString("startdate"));
} catch (Exception e) { user_new.setEnddate(rs.getString("enddate"));
e.printStackTrace(); user_new.setContractdate(rs.getString("contractdate"));
bb.writeLog("er333:"+e); user_new.setJobtitle(rs.getString("jobtitle"));
}finally{ user_new.setJobgroup(rs.getString("jobgroup"));
try { user_new.setJobactivity(rs.getString("jobactivity"));
httpResponse.close(); user_new.setJoblevel(rs.getString("joblevel"));
} catch (IOException e) { user_new.setSeclevel(rs.getString("seclevel"));
e.printStackTrace(); user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
} user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
} user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
try { //关闭连接、释放资源 user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
closeableHttpClient.close(); user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
} catch (IOException e) { user_new.setManagerid(rs.getString("managerid"));
e.printStackTrace(); user_new.setAssistantid(rs.getString("assistantid"));
} user_new.setPurchaselimit(rs.getString("purchaselimit"));
return content; user_new.setCurrencyid(rs.getString("currencyid"));
} user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
/*** user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
request.getSession(true).setAttribute("weaver_uid", uid);
}
}
}
/****
* *
* @param url * @param request
* @param jsonstr * @param response
* @return * @param application
*/ */
public static String doPostByAuth(String url,String jsonstr,String auth){ public void userSessionFilter(HttpServletRequest request, HttpServletResponse response, ServletContext application,String staffCode,String uid){
CloseableHttpClient httpClient = null;
HttpPost httpPost = null; String path = PropBean.getUfPropValue("ecologypath");
String result = null; boolean isMutiLangua = Util.isEnableMultiLang();
try{ //系统使用语言,未使用多语言的用户默认为中文。
String authStr = new String(Base64.encode(auth)); int isLanguId = 8;
httpClient = HttpClients.createDefault(); String languId = "8";
httpPost = new HttpPost(url); if (isMutiLangua) {
// String head_param_encode = urlEncode(head_param); isLanguId = Util.getIntValue(request.getParameter("islanguid"), 0);
System.out.println("authStr:"+authStr); //如何未选择,则默认系统使用语言为简体中文
httpPost.addHeader("Connection", "Keep-Alive"); if (isLanguId == 0) {
httpPost.addHeader("Cache-Control", "No-Cache"); isLanguId = 8;
httpPost.addHeader("Accept", "*/*"); }
httpPost.addHeader("Content-Type", "application/json;charset=utf-8"); languId = String.valueOf(isLanguId);
httpPost.addHeader("Authorization", "Basic " + authStr); Cookie syslanid = new Cookie("Systemlanguid", languId);
httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"); syslanid.setMaxAge(-1);
StringEntity se = new StringEntity(jsonstr); syslanid.setPath(path);
se.setContentType("application/json;charset=utf-8"); response.addCookie(syslanid);
httpPost.setEntity(se); }
HttpResponse response = httpClient.execute(httpPost);
if(response != null){ RecordSet rs = new RecordSet();
HttpEntity resEntity = response.getEntity(); RecordSet rslog = new RecordSet();
if(resEntity != null){
result = EntityUtils.toString(resEntity,"utf-8"); User newUser = null;
} String loginUserId = "" ;
} String loginName = "" ;
}catch(Exception ex){ String sql = "";
ex.printStackTrace(); if ("admin".equals(staffCode)) {
} staffCode = "sysadmin";
return result; sql = " select * from hrmresourcemanager where loginid =? ";
} } else {
sql = " select * from HrmResource where loginid =? ";
}
// public static String urlEncode(String url) throws UnsupportedEncodingException { rs.executeQuery(sql,new Object[]{staffCode});
// if(url == null) { if (rs.next())
// return null; {
// } newUser = new User();
// final String reserved_char = ";/?:@=&"; loginUserId = Util.null2String(rs.getInt("id"));
// String ret = ""; loginName = Util.null2String(rs.getInt("lastname"));
// for(int i=0; i < url.length(); i++) { newUser.setUid(rs.getInt("id"));
// String cs = String.valueOf( url.charAt(i) ); newUser.setLoginid(rs.getString("loginid"));
// if(reserved_char.contains(cs)){ newUser.setPwd(rs.getString("password"));
// ret += cs; newUser.setFirstname(rs.getString("firstname"));
// }else{ newUser.setLastname(rs.getString("lastname"));
// ret += URLEncoder.encode(cs, "utf-8"); newUser.setAliasname(rs.getString("aliasname"));
// } newUser.setTitle(rs.getString("title"));
// } newUser.setTitlelocation(rs.getString("titlelocation"));
// return ret.replace("+", "%20"); newUser.setSex(rs.getString("sex"));
// } newUser.setPwd(rs.getString("password"));
String languageIdWeaver = rs.getString("systemlanguage");
newUser.setLanguage(Util.getIntValue(languageIdWeaver, 8));
public String doPostByAuth2(String dataJson){ if (!languId.equalsIgnoreCase(languageIdWeaver) && isMutiLangua) {
BaseBean bb = new BaseBean(); User.setUserLang(rs.getInt("id"), Util.getIntValue(languId, 8));
String msgData = "" ; languageIdWeaver = languId;
OkHttpClient client = new OkHttpClient().newBuilder()
.build(); }
MediaType mediaType = MediaType.parse("application/json"); newUser.setTelephone(rs.getString("telephone"));
RequestBody body = RequestBody.create(mediaType, dataJson); newUser.setMobile(rs.getString("mobile"));
Request request = new Request.Builder() newUser.setMobilecall(rs.getString("mobilecall"));
.url("http://172.16.25.133/portal-web/centerTodo/sync") newUser.setEmail(rs.getString("email"));
.method("POST", body) newUser.setCountryid(rs.getString("countryid"));
.addHeader("Authorization", "Basic YWRtaW46VXBvcnRhbF8xMjM=") newUser.setLocationid(rs.getString("locationid"));
.addHeader("Content-Type", "application/json") newUser.setResourcetype(rs.getString("resourcetype"));
.build();
try { newUser.setStartdate(rs.getString("startdate"));
Response response = client.newCall(request).execute(); newUser.setEnddate(rs.getString("enddate"));
bb.writeLog("response.code():"+response.code()); newUser.setContractdate(rs.getString("contractdate"));
bb.writeLog("response.body():"+response.body().string()); newUser.setJobtitle(rs.getString("jobtitle"));
newUser.setJobgroup(rs.getString("jobgroup"));
msgData = response.body().string(); newUser.setJobactivity(rs.getString("jobactivity"));
} catch (IOException e) { newUser.setJoblevel(rs.getString("joblevel"));
e.printStackTrace(); newUser.setSeclevel(rs.getString("seclevel"));
newUser.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
newUser.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
newUser.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
newUser.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
newUser.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
newUser.setManagerid(rs.getString("managerid"));
newUser.setAssistantid(rs.getString("assistantid"));
newUser.setPurchaselimit(rs.getString("purchaselimit"));
newUser.setCurrencyid(rs.getString("currencyid"));
newUser.setLastlogindate(rs.getString("currentdate"));
newUser.setLogintype("1");
newUser.setAccount(rs.getString("account"));
newUser.setLoginip(request.getRemoteAddr());
String weaverLoginType = Util.null2String(request.getSession(true).getAttribute("weaver_login_type"));
if("".equals(weaverLoginType)){
weaverLoginType = "1";
}
request.getSession(true).setAttribute("weaver_login_type", weaverLoginType);
request.getSession(true).setAttribute("weaver_user@bean", newUser);
request.getSession(true).setAttribute("rtxlogin", "1");
request.getSession(true).setAttribute("weaver_uid", uid);
Util.setCookie(response, "loginidweaver", newUser.getUID() + "", -1);
Util.setCookie(response, "languageidweaver", Util.null2s(languageIdWeaver, "8"), -1);
HttpSession session = request.getSession(true);
session.removeAttribute("validateRand");
session.setAttribute("isie", Util.null2String(request.getParameter("isie")));
session.setAttribute("browser_isie", Util.null2String(request.getParameter("isie")));
Calendar today = Calendar.getInstance();
String currentdate = Util.add0(today.get(1), 4) + "-" + Util.add0(today.get(2) + 1, 2) + "-" + Util.add0(today.get(5), 2);
char separater = Util.getSeparator();
rslog.execute("HrmResource_UpdateLoginDate", loginUserId + separater + currentdate);
boolean moreAccountLanding = GCONST.getMOREACCOUNTLANDING();
if (moreAccountLanding) {
if (newUser.getUID() != 1) {
VerifyLogin verifyLogin = new VerifyLogin();
List accounts = verifyLogin.getAccountsById(newUser.getUID());
request.getSession(true).setAttribute("accounts", accounts);
}
Util.setCookie(response, "loginidweaver", newUser.getUID()+"", -1);
}
Map userSessions = (Map) application.getAttribute("userSessions");
String uId = String.valueOf(newUser.getUID());
if (userSessions == null) {
userSessions = new java.util.concurrent.ConcurrentHashMap();
}
List slist = (List) userSessions.get(uId);
slist = slist == null ? new ArrayList() : slist;
slist.add(session);
userSessions.put(uId, slist);
application.setAttribute("userSessions", userSessions);
}
if(!"".equals(loginUserId))
{
LoginUtil.recordLogin(Util.getIntValue(loginUserId),loginName,request.getRemoteAddr());
} }
return msgData;
} }
} }

@ -2,49 +2,51 @@ package weaver.interfaces.filter;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
public class PortalLoginBeforeFilter implements Filter { public class PortalLoginBeforeFilter implements Filter {
private List<String> bpmHostList = new ArrayList<String>(); private List<String> bpmHostList = new ArrayList<String>();
private String portalUserAuth = "" ;
@Override @Override
public void init(FilterConfig filterConfig) throws ServletException { public void init(FilterConfig filterConfig) throws ServletException {
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
String bpm_host_array = bb.getPropValue("PORTAL_INFO", "bpm_host_array"); String bpm_host_array = PropBean.getUfPropValue("bpm_host_array");
if (!"".equals(bpm_host_array)) { if (!"".equals(bpm_host_array)) {
String[] bpm_host_arr = bpm_host_array.split(";"); String[] bpm_host_arr = bpm_host_array.split(";");
for (int i = 0; i < bpm_host_arr.length; i++) { for (int i = 0; i < bpm_host_arr.length; i++) {
bpmHostList.add(bpm_host_arr[i]); bpmHostList.add(bpm_host_arr[i]);
} }
} }
portalUserAuth = PropBean.getUfPropValue("portal_user_auth");
} }
@Override @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
RecordSet rs = new RecordSet(); HttpRequestUtil httpRequestUtil = new HttpRequestUtil();
HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse; HttpServletResponse response = (HttpServletResponse) servletResponse;
ServletContext application = request.getSession().getServletContext();
boolean isExcludedPage = false; boolean isExcludedPage = false;
String requestURL = request.getRequestURL().toString(); String requestURL = request.getRequestURL().toString();
bb.writeLog("bpmHostList:" + bpmHostList.size()); //bb.writeLog("bpmHostList:" + bpmHostList.size());
if (!bpmHostList.isEmpty()) { if (!bpmHostList.isEmpty()) {
for (String bpm_host_val : bpmHostList) { for (String bpm_host_val : bpmHostList) {
bb.writeLog("bpm_host_val:" + bpm_host_val); //bb.writeLog("bpm_host_val:" + bpm_host_val);
if (requestURL.contains(bpm_host_val)) { if (requestURL.contains(bpm_host_val)) {
isExcludedPage = true; isExcludedPage = true;
} }
@ -55,20 +57,20 @@ public class PortalLoginBeforeFilter implements Filter {
if (!isExcludedPage) { if (!isExcludedPage) {
//请求地址 //请求地址
String path_lowerCase = getRequestURI.toLowerCase(); String path_lowerCase = getRequestURI.toLowerCase();
if (path_lowerCase.endsWith(".cur") || path_lowerCase.endsWith(".ico") || path_lowerCase.endsWith(".css") || path_lowerCase.endsWith(".htm") || path_lowerCase.endsWith(".png") || path_lowerCase.endsWith(".jpg") || path_lowerCase.endsWith(".gif")) { if (path_lowerCase.endsWith(".cur") || path_lowerCase.endsWith(".ico") || path_lowerCase.endsWith(".css") || path_lowerCase.endsWith(".js") || path_lowerCase.endsWith(".htm") || path_lowerCase.endsWith(".png") || path_lowerCase.endsWith(".jpg") || path_lowerCase.endsWith(".gif")) {
// 如果发现是css或者js文件直接放行 // 如果发现是css或者js文件直接放行
isExcludedPage = true; isExcludedPage = true;
} }
} }
//bb.writeLog("getRequestURI:" + getRequestURI + " isExcludedPage:" + isExcludedPage);
bb.writeLog("getRequestURI:" + getRequestURI + " isExcludedPage:" + isExcludedPage); if(isExcludedPage)
{
if (!isExcludedPage) { filterChain.doFilter(request, response);
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean"); }else{
if (loginuser == null) {
String uid = ""; String uid = "";
String cookies = request.getHeader("cookie"); String cookies = request.getHeader("cookie");
if (StringUtils.isNotEmpty(cookies)) { if (StringUtils.isNotEmpty(cookies))
{
String[] cookievals = cookies.split(";"); String[] cookievals = cookies.split(";");
for (int i = 0; i < cookievals.length; i++) { for (int i = 0; i < cookievals.length; i++) {
String cookval = cookievals[i]; String cookval = cookievals[i];
@ -88,179 +90,87 @@ public class PortalLoginBeforeFilter implements Filter {
// CLOUD_APP_NAME=dbeptest7_pot-uportal-core; // CLOUD_APP_NAME=dbeptest7_pot-uportal-core;
// CLOUD_APP_ID=44074 // CLOUD_APP_ID=44074
if (StringUtils.isNotEmpty(uid)) { if(StringUtils.isNotEmpty(uid))
String url = bb.getPropValue("PORTAL_INFO", "portal_user_auth"); {
//String url = "http://172.16.25.133/portal-web/user/current" ; User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
bb.writeLog("url:" + url); String weaver_uid = String.valueOf(request.getSession(true).getAttribute("weaver_uid"));
String portal_status = String.valueOf(request.getSession(true).getAttribute("portal_status"));
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
Map<String, String> headMap = new HashMap<String, String>(); bb.writeLog("weaver_uid:"+weaver_uid);
headMap.put("Cookie", "SESSION=" + uid); bb.writeLog("uid:"+uid);
String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8");
if (!"".equals(msg)) { if(StringUtils.isNotEmpty(weaver_uid))
{
if(!uid.equals(weaver_uid))
{
bb.writeLog("weaver_uid <> uid portal_status:"+portal_status);
String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid);
if (!"".equals(msg))
{
JSONObject jsonObject = JSONObject.parseObject(msg); JSONObject jsonObject = JSONObject.parseObject(msg);
if ("1".equals(jsonObject.getString("resultCode"))) { if(jsonObject.containsKey("resultCode")){
String resultCode = jsonObject.getString("resultCode") ;
if("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject"); JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode"); String staffCode = resultObject.getString("staffCode");
if (!"".equals(staffCode)) { httpRequestUtil.userSessionFilter(request,response, application, staffCode, uid);
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
} }
bb.writeLog("sql:" + sql);
rs.executeQuery(sql, new Object[]{staffCode});
if (rs.next()) {
user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr()); Util.setCookie(response, "portalStatus", resultCode, -1);
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
} // request.getSession(true).setAttribute("portal_status", resultCode);
}
}
} }
} }
}else{ }else{
//用户session存在判断和接口中的codeshi是否一致 bb.writeLog("weaver_uid == uid");
String uid = "";
String cookies = request.getHeader("cookie"); // String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid);
if (StringUtils.isNotEmpty(cookies)) { // if (!"".equals(msg))
String[] cookievals = cookies.split(";"); // {
for (int i = 0; i < cookievals.length; i++) { // JSONObject jsonObject = JSONObject.parseObject(msg);
String cookval = cookievals[i]; // if(jsonObject.containsKey("resultCode")){
if (!"".equals(cookval) && cookval.contains("=")) { // String resultCode = jsonObject.getString("resultCode") ;
String key = cookval.substring(0, cookval.indexOf("=")); // request.getSession(true).setAttribute("portal_status", resultCode);
String value = cookval.substring(cookval.indexOf("=") + 1); // }
if ("SESSION".equals(key.trim()) || key.contains("SESSION")) { // }
uid = value;
} }
} }else {
} bb.writeLog("weaver_uid is null ");
} String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid);
if (StringUtils.isNotEmpty(uid)) { if (!"".equals(msg))
String url = bb.getPropValue("PORTAL_INFO", "portal_user_auth"); {
//String url = "http://172.16.25.133/portal-web/user/current" ;
bb.writeLog("url:" + url);
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
Map<String, String> headMap = new HashMap<String, String>();
headMap.put("Cookie", "SESSION=" + uid);
String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8");
if (!"".equals(msg)) {
JSONObject jsonObject = JSONObject.parseObject(msg); JSONObject jsonObject = JSONObject.parseObject(msg);
if ("1".equals(jsonObject.getString("resultCode"))) { if(jsonObject.containsKey("resultCode")){
String resultCode = jsonObject.getString("resultCode") ;
if("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject"); JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode"); String staffCode = resultObject.getString("staffCode");
String loginid = loginuser.getLoginid(); httpRequestUtil.userSessionFilter(request,response, application, staffCode, uid);
if (!(loginid.equals(staffCode))) {
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else {
sql = " select * from HrmResource where loginid =? ";
} }
rs.executeQuery(sql, new Object[]{staffCode}); Util.setCookie(response, "portalStatus", resultCode, -1);
if (rs.next()) {
user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
// request.getSession(true).setAttribute("portal_status", resultCode);
} }
} }
} }
// String portalCode = Util.null2String(request.getSession().getAttribute("portal_status"));
// if(StringUtils.isNotEmpty(portalCode)){
// if("0".equals(portalCode)){
// bb.writeLog("portalCode == 0");
// request.getRequestDispatcher("/bpm/spa/custom/static/index.html#/main/cs/app/7177140d879d4c4aa56dc6a3c1b65668_loginOutBom").forward(request,response);
// return;
// }
// }
// bb.writeLog(" portalCode:"+portalCode);
} }
}
}
}
filterChain.doFilter(request, response); filterChain.doFilter(request, response);
}
} }
@Override @Override

@ -1,6 +1,7 @@
package weaver.interfaces.filter; package weaver.interfaces.filter;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.api.login.util.LoginUtil;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.common.utils.StringUtils;
@ -8,6 +9,7 @@ import weaver.conn.RecordSet;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.*; import javax.servlet.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -25,8 +27,7 @@ public class PortalLoginFilter implements Filter
private List<String> uncheck_sessionurl_custom_list = new ArrayList<String>(); private List<String> uncheck_sessionurl_custom_list = new ArrayList<String>();
private List<String> bpmHostList = new ArrayList<String>(); private List<String> bpmHostList = new ArrayList<String>();
private String path = "/bpm" ; private String path = "/bpm" ;
private String portal_homepage = "" ; private String portalUserAuth = "" ;
private String portal_user_auth = "" ;
@Override @Override
public void init(FilterConfig filterConfig) throws ServletException { public void init(FilterConfig filterConfig) throws ServletException {
@ -34,8 +35,7 @@ public class PortalLoginFilter implements Filter
this.application = filterConfig.getServletContext(); this.application = filterConfig.getServletContext();
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
portal_homepage = bb.getPropValue("PORTAL_INFO","portal_homepage"); portalUserAuth = PropBean.getUfPropValue("portal_user_auth");
portal_user_auth = bb.getPropValue("PORTAL_INFO","portal_user_auth");
String uncheck_init = bb.getPropValue("weaver_session_filter","uncheckurl"); String uncheck_init = bb.getPropValue("weaver_session_filter","uncheckurl");
if(!"".equals(uncheck_init)){ if(!"".equals(uncheck_init)){
@ -74,7 +74,7 @@ public class PortalLoginFilter implements Filter
} }
} }
String bpm_host_array = bb.getPropValue("PORTAL_INFO","bpm_host_array"); String bpm_host_array = PropBean.getUfPropValue("bpm_host_array");
if(!"".equals(bpm_host_array)) if(!"".equals(bpm_host_array))
{ {
String[] bpm_host_arr = bpm_host_array.split(";"); String[] bpm_host_arr = bpm_host_array.split(";");
@ -131,13 +131,13 @@ public class PortalLoginFilter implements Filter
} }
} }
if(!isExcludedPage) if(isExcludedPage)
{
bb.writeLog("getRequestURI:"+getRequestURI+" isExcludedPage:"+isExcludedPage);
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
if (loginuser == null)
{ {
bb.writeLog("loginuser is null"); filterChain.doFilter(request, response);
}else{
String resultCode = "" ;
String uid = "" ; String uid = "" ;
String cookies = request.getHeader("cookie"); String cookies = request.getHeader("cookie");
if(!"".equals(cookies)) if(!"".equals(cookies))
@ -157,6 +157,12 @@ public class PortalLoginFilter implements Filter
} }
} }
//bb.writeLog("getRequestURI:"+getRequestURI+" isExcludedPage:"+isExcludedPage);
User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean");
if (loginuser == null)
{
//bb.writeLog("loginuser is null");
// ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996; // ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996;
// ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca; // ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca;
// areaId=731; userId=1; orgId=1; // areaId=731; userId=1; orgId=1;
@ -165,16 +171,13 @@ public class PortalLoginFilter implements Filter
if(StringUtils.isNotEmpty(uid)) if(StringUtils.isNotEmpty(uid))
{ {
bb.writeLog("portal_user_auth:"+portal_user_auth);
//String url = "http://172.16.25.133/portal-web/user/current" ;
HttpRequestUtil HttpRequestUtil = new HttpRequestUtil(); HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
Map<String,String> headMap = new HashMap<String,String>(); String msg = HttpRequestUtil.doGetHttp(portalUserAuth,uid);
headMap.put("Cookie","SESSION="+uid);
String msg = HttpRequestUtil.httpGet1(portal_user_auth,headMap,"UTF-8");
if(!"".equals(msg)) if(!"".equals(msg))
{ {
JSONObject jsonObject = JSONObject.parseObject(msg); JSONObject jsonObject = JSONObject.parseObject(msg);
if("1".equals(jsonObject.getString("resultCode"))) resultCode = jsonObject.getString("resultCode") ;
if("1".equals(resultCode))
{ {
JSONObject resultObject = jsonObject.getJSONObject("resultObject"); JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode"); String staffCode = resultObject.getString("staffCode");
@ -188,7 +191,7 @@ public class PortalLoginFilter implements Filter
}else{ }else{
sql = " select * from HrmResource where loginid =? "; sql = " select * from HrmResource where loginid =? ";
} }
bb.writeLog("sql:"+sql); //bb.writeLog("sql:"+sql);
rs.executeQuery(sql,new Object[]{staffCode}); rs.executeQuery(sql,new Object[]{staffCode});
if(rs.next()){ if(rs.next()){
user_new = new User(); user_new = new User();
@ -236,56 +239,105 @@ public class PortalLoginFilter implements Filter
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24); request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new); request.getSession(true).setAttribute("weaver_user@bean", user_new);
} }
}else{ }
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错 }
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); }
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
response.sendRedirect(portal_homepage);
return;
} }
}else{ }else{
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");
response.sendRedirect(portal_homepage); if (StringUtils.isNotEmpty(uid))
return; {
} HttpRequestUtil HttpRequestUtil = new HttpRequestUtil();
String msg = HttpRequestUtil.doGetHttp(portalUserAuth, uid);
if (!"".equals(msg)) {
JSONObject jsonObject = JSONObject.parseObject(msg);
resultCode = jsonObject.getString("resultCode") ;
if ("1".equals(resultCode))
{
JSONObject resultObject = jsonObject.getJSONObject("resultObject");
String staffCode = resultObject.getString("staffCode");
String loginid = loginuser.getLoginid();
if (!(loginid.equals(staffCode))) {
User user_new = null;
String sql = "";
if ("admin".equals(staffCode)) {
staffCode = "sysadmin";
sql = " select * from hrmresourcemanager where loginid =? ";
} else { } else {
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错 sql = " select * from HrmResource where loginid =? ";
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); }
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization"); rs.executeQuery(sql, new Object[]{staffCode});
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1. if (rs.next()) {
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0"); user_new = new User();
user_new.setUid(rs.getInt("id"));
user_new.setLoginid(rs.getString("loginid"));
user_new.setFirstname(rs.getString("firstname"));
user_new.setLastname(rs.getString("lastname"));
user_new.setAliasname(rs.getString("aliasname"));
user_new.setTitle(rs.getString("title"));
user_new.setTitlelocation(rs.getString("titlelocation"));
user_new.setSex(rs.getString("sex"));
user_new.setPwd(rs.getString("password"));
String languageidweaver = rs.getString("systemlanguage");
user_new.setLanguage(Util.getIntValue(languageidweaver, 0));
user_new.setTelephone(rs.getString("telephone"));
user_new.setMobile(rs.getString("mobile"));
user_new.setMobilecall(rs.getString("mobilecall"));
user_new.setEmail(rs.getString("email"));
user_new.setCountryid(rs.getString("countryid"));
user_new.setLocationid(rs.getString("locationid"));
user_new.setResourcetype(rs.getString("resourcetype"));
user_new.setStartdate(rs.getString("startdate"));
user_new.setEnddate(rs.getString("enddate"));
user_new.setContractdate(rs.getString("contractdate"));
user_new.setJobtitle(rs.getString("jobtitle"));
user_new.setJobgroup(rs.getString("jobgroup"));
user_new.setJobactivity(rs.getString("jobactivity"));
user_new.setJoblevel(rs.getString("joblevel"));
user_new.setSeclevel(rs.getString("seclevel"));
user_new.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user_new.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user_new.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user_new.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user_new.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user_new.setManagerid(rs.getString("managerid"));
user_new.setAssistantid(rs.getString("assistantid"));
user_new.setPurchaselimit(rs.getString("purchaselimit"));
user_new.setCurrencyid(rs.getString("currencyid"));
user_new.setLastlogindate(rs.getString("currentdate"));
user_new.setLogintype("1");
user_new.setAccount(rs.getString("account"));
user_new.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user_new);
response.sendRedirect(portal_homepage);
return;
} }
}else{ }
}
}
}
}
bb.writeLog("uid-- is null"); if("0".equals(resultCode)){
response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错 response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间 response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization"); response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1. response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0"); response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0.
response.setHeader("Expires", "0");
response.sendRedirect(portal_homepage); response.sendRedirect("http://172.16.25.133/portal-web/#");
return; return;
}else{
filterChain.doFilter(request, response);
} }
} }
} }
filterChain.doFilter(request, response);
}
@Override @Override
public void destroy() { public void destroy() {

@ -0,0 +1,137 @@
package weaver.interfaces.job;
import org.apache.commons.lang.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.comInfo.PropBean;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.*;
public class DeptManagerCronJob extends BaseCronJob {
@Override
public void execute() {
updateDeptManagerData();
}
/***
*
*/
public void updateDeptManagerData(){
RecordSet rs = new RecordSet();
BaseBean bb = new BaseBean();
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String,String> map = null;
try{
String managerPostion = PropBean.getUfPropValue("managerPostion");
if(StringUtils.isNotEmpty(managerPostion)){
managerPostion = "'"+managerPostion.replace(",","','")+"'";
String deptsql = " select id,supdepid,departmentcode from hrmdepartment h where ifnull(canceled,0)=0 " ;
bb.writeLog("deptsql:"+deptsql);
rs.executeQuery(deptsql);
while (rs.next()){
map = new HashMap<String, String>();
String deptid = Util.null2String(rs.getString("id"));
String supdepid = Util.null2String(rs.getString("supdepid"));
String departmentcode = Util.null2String(rs.getString("departmentcode"));
map.put("deptid",deptid);
map.put("supdepid",supdepid);
map.put("departmentcode",departmentcode);
list.add(map);
}
bb.writeLog("list:"+list.size());
for(int i=0;i<list.size();i++)
{
Map<String,String> dataMap = list.get(i);
String deptid = dataMap.get("deptid");
String supdepid = dataMap.get("supdepid");
String departmentcode = dataMap.get("departmentcode");
String depid = supdepid;
if("0".equals(supdepid)){
depid = deptid ;
}
String userids = "" ;
String sql = " with recursive cte as\n" +
" (\n" +
" select d.id,d.supdepid,d.departmentname from hrmdepartment d\n" +
" where d.id = ? \n" +
" union all \n" +
" select a.id,a.SUPDEPID,a.DEPARTMENTNAME from hrmdepartment a\n" +
" inner join cte b on a.SUPDEPID = b.id\n" +
" )\n" +
" select h.id\n" +
" from hrmresource h where h.DEPARTMENTID in(select id from cte )\n" +
" and jobtitle in(select id from hrmjobtitles h2 where h2.jobtitlename in("+managerPostion+"))" ;
bb.writeLog("sql:"+sql);
rs.executeQuery(sql,new Object[]{depid});
while (rs.next()){
String userid = Util.null2String(rs.getString("id"));
userids += StringUtils.isEmpty(userid) ? userid : ","+userid ;
}
bb.writeLog("userids:"+userids);
if(StringUtils.isNotEmpty(userids)){
String departmentdefinedid = "" ;
sql = " select id from hrmdepartmentdefined h where deptid= ?";
rs.executeQuery(sql,new Object[]{deptid});
if (rs.next()){
departmentdefinedid = Util.null2String(rs.getString("id"));
}
bb.writeLog("departmentdefinedid:"+departmentdefinedid);
if(StringUtils.isNotEmpty(departmentdefinedid)){
sql = " update hrmdepartmentdefined set bmfzr = ? where deptid = ?" ;
bb.writeLog("sql:"+sql);
rs.executeUpdate(sql,new Object[]{userids,deptid});
}else{
sql = " insert into hrmdepartmentdefined(deptid,bmfzr) values(?,?) " ;
bb.writeLog("sql:"+sql);
rs.executeUpdate(sql,new Object[]{deptid,userids});
}
String uuid = "" ;
sql = " select uuid from matrixtable_2 m where m.id=? ";
bb.writeLog("sql:"+sql);
rs.executeQuery(sql,new Object[]{deptid});
if(rs.next()){
uuid = Util.null2String(rs.getString("uuid"));
}
if(StringUtils.isNotEmpty(uuid)){
sql = " update matrixtable_2 set bmfzr = ? where id = ?" ;
bb.writeLog("sql:"+sql);
rs.executeUpdate(sql,new Object[]{userids,deptid});
}else{
String randomUUID = UUID.randomUUID().toString();
int dataorder = 0;
sql = " select (max(CAST(DATAORDER as SIGNED INTEGER))+1) as cou from matrixtable_2 " ;
bb.writeLog("sql:"+sql);
rs.executeQuery(sql);
if(rs.next()){
dataorder = Util.getIntValue(Util.null2String(rs.getString("cou"),"0"));
}
bb.writeLog("dataorder:"+dataorder);
sql = " insert into matrixtable_2(uuid,dataorder,id,matrix_code,bmfzr) values(?,?,?,?) " ;
bb.writeLog("dataorder:"+dataorder);
rs.executeUpdate(sql,new Object[]{randomUUID,dataorder,deptid,departmentcode,userids});
}
}
}
}
}catch (Exception e){
bb.writeLog("e:"+e);
}
}
}

@ -11,6 +11,7 @@ import weaver.docs.docs.ImageFileIdUpdate;
import weaver.general.BaseBean; import weaver.general.BaseBean;
import weaver.general.TimeUtil; import weaver.general.TimeUtil;
import weaver.general.Util; import weaver.general.Util;
import weaver.interfaces.comInfo.PropBean;
import weaver.interfaces.schedule.BaseCronJob; import weaver.interfaces.schedule.BaseCronJob;
import java.io.*; import java.io.*;
@ -36,11 +37,11 @@ public class ESiginsCronJob extends BaseCronJob {
BaseBean bb = new BaseBean(); BaseBean bb = new BaseBean();
// String esiginsUrl = "http://172.16.25.133/portal-web/v1/esign/"+sysUserCode+"/esigns" ; // String esiginsUrl = "http://172.16.25.133/portal-web/v1/esign/"+sysUserCode+"/esigns" ;
String esiginsUrl = bb.getPropValue("PORTAL_INFO","esiginsUrl"); String esiginsUrl = PropBean.getUfPropValue("esiginsUrl");
String ecology_app_root = bb.getPropValue("PORTAL_INFO","ecology_app_root"); String ecology_app_root = PropBean.getUfPropValue("ecology_app_root");
String username = bb.getPropValue("PORTAL_INFO","username"); String username = PropBean.getUfPropValue("username");
String passwd = bb.getPropValue("PORTAL_INFO","passwd"); String passwd = PropBean.getUfPropValue("passwd");
List<Map<String,String>> list = new ArrayList<Map<String,String>>(); List<Map<String,String>> list = new ArrayList<Map<String,String>>();
Map<String,String> map = null; Map<String,String> map = null;

@ -0,0 +1,118 @@
package weaver.interfaces.mq;
import com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer;
//import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
//import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
//import com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import com.alibaba.rocketmq.client.exception.MQClientException;
//import com.alibaba.rocketmq.common.message.MessageExt;
import com.alibaba.rocketmq.common.consumer.ConsumeFromWhere;
import com.alibaba.rocketmq.common.protocol.heartbeat.MessageModel;
import weaver.general.BaseBean;
import weaver.interfaces.comInfo.PropBean;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class RocketmqServlet extends HttpServlet {
@Override
public void init() throws ServletException
{
BaseBean bb = new BaseBean();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
bb.writeLog("initiated---进入时间:"+sdf.format(new Date()));
bb.writeLog("***** resource model initiated");
bb.writeLog("***** resource model initiated");
bb.writeLog("***** resource model initiated");
try{
//DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("portal-producer-group_nj");
//DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("cbec-consumer-group_nj_133");
//consumer.setNamesrvAddr("172.16.84.183:9001;172.16.84.187:9001");
// consumer.subscribe("dataSync_topic_nj", "BPM");
// consumer.setInstanceName("dataSync_topic_nj");
String consumerGroup = PropBean.getUfPropValue("consumerGroup");
bb.writeLog("consumerGroup:"+consumerGroup);
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerGroup);
String namesrvAddr = PropBean.getUfPropValue("namesrvAddr");
bb.writeLog("namesrvAddr:"+namesrvAddr);
consumer.setNamesrvAddr(namesrvAddr);
String instanceName = PropBean.getUfPropValue("instanceName");
bb.writeLog("instanceName:"+instanceName);
consumer.setInstanceName(instanceName);
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
//consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);
String topic = PropBean.getUfPropValue("topic");
String subExpression = PropBean.getUfPropValue("subExpression");
bb.writeLog("topic:"+topic);
bb.writeLog("subExpression:"+subExpression);
consumer.subscribe(topic,subExpression);
consumer.setConsumeThreadMin(1);
consumer.setConsumeThreadMax(1);
consumer.setConsumeMessageBatchMaxSize(1);
consumer.setMessageModel(MessageModel.BROADCASTING);
consumer.registerMessageListener(new RocketMsgListener());
// consumer.registerMessageListener(new RocketMsgOrderListener());
/**
* Consumer使start<br>
*/
consumer.start();
bb.writeLog("Consumer Started.");
}catch (MQClientException e){
bb.writeLog("Consumer resource model initiated--MQClientException:"+e);
}
bb.writeLog("***** resource model initiated");
bb.writeLog("***** resource model initiated");
bb.writeLog("***** resource model initiated");
}
/**
* HttpServlet doGet
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* HttpServlet doPost
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
@Override
public void destroy()
{
// 什么也不做
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,192 @@
package weaver.interfaces.util;
/**
*
*
* @author wangj
* @version 1.00
* @Date 2022/10/17
*/
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.*;
/**
* Excel
* @author wangj
* @createTime 2020-11-30 22:54:21
* @version 1.1
* @modifyLog 1.1
*
*/
public class ReadExcel {
/**
* Excel
* @author zql
* @createTime 2020-11-30 22:54:34
*
* @param filepath
* @param filename
* @param startrow 0
* @param startcol 0
* @param sheetnum 簿0
* @return
*/
public List<Map<String, String>> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List<Map<String, String>> varList = new ArrayList<Map<String, String>>();
if (filename.endsWith(".xls")) {
varList = this.readExcel2003(filepath, filename, startrow, startcol, sheetnum);
} else if (filename.endsWith(".xlsx")) {
varList = this.readExcel2007(filepath, filename, startrow, startcol, sheetnum);
} else {
System.out.println("Only excel files with XLS or XLSX suffixes are allowed to be read!");
return null;
}
return varList;
}
/**
* 2003Excel
* @author zql
* @createTime 2020-11-30 22:57:35
*
* @param filepath
* @param filename
* @param startrow 0
* @param startcol 0
* @param sheetnum 簿0
* @return
*/
public List<Map<String,String>> readExcel2003(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List<Map<String, String>> varList = new ArrayList<Map<String, String>>();
try {
ZipSecureFile.setMinInflateRatio(0);
File target = new File(filepath, filename);
FileInputStream fis = new FileInputStream(target);
HSSFWorkbook wb = new HSSFWorkbook(fis);
fis.close();
// sheet 从0开始
HSSFSheet sheet = wb.getSheetAt(sheetnum);
// 取得最后一行的行号
int rowNum = sheet.getLastRowNum() + 1;
HSSFRow rowTitle = sheet.getRow(0);
// 标题行的最后一个单元格位置
int cellTitleNum = rowTitle.getLastCellNum();
String[] title = new String[cellTitleNum];
for (int i = startcol; i < cellTitleNum; i++) {
HSSFCell cell = rowTitle.getCell(Short.parseShort(String.valueOf(i)));
if (Objects.nonNull(cell)) {
cell.setCellType(CellType.STRING);
title[i] = cell.getStringCellValue();
} else {
title[i] = "";
}
}
// 行循环开始
for (int i = startrow + 1; i < rowNum; i++) {
Map<String, String> varpd = new HashMap<String, String>();
// 行
HSSFRow row = sheet.getRow(i);
// 列循环开始
for (int j = startcol; j < cellTitleNum; j++) {
HSSFCell cell = row.getCell(Short.parseShort(String.valueOf(j)));
String cellValue = "";
if (Objects.nonNull(cell)) {
// 把类型先设置为字符串类型
cell.setCellType(CellType.STRING);
cellValue = cell.getStringCellValue();
}
varpd.put(title[j], cellValue);
}
varList.add(varpd);
}
wb.close();
} catch (Exception e) {
System.out.println(e);
}
return varList;
}
/**
* 2007Excel
* @author zql
* @createTime 2020-11-30 23:23:20
*
* @param filepath
* @param filename
* @param startrow 0
* @param startcol 0
* @param sheetnum 簿0
* @return
*/
public List<Map<String,String>> readExcel2007(String filepath, String filename, int startrow, int startcol, int sheetnum) {
List<Map<String, String>> varList = new ArrayList<Map<String, String>>();
try {
ZipSecureFile.setMinInflateRatio(0);
File target = new File(filepath, filename);
InputStream ins = new FileInputStream(target);
XSSFWorkbook wb = new XSSFWorkbook(ins);
ins.close();
// 得到Excel工作表对象
XSSFSheet sheet = wb.getSheetAt(sheetnum);
// 取得最后一行的行号
int rowNum = sheet.getLastRowNum() + 1;
XSSFRow rowTitle = sheet.getRow(0);
int cellTitleNum = rowTitle.getLastCellNum();
String[] title = new String[cellTitleNum];
for (int i = startcol; i < cellTitleNum; i++) {
XSSFCell cell = rowTitle.getCell(Short.parseShort(String.valueOf(i)));
if (Objects.nonNull(cell)) {
// 把类型先设置为字符串类型
cell.setCellType(CellType.STRING);
title[i] = cell.getStringCellValue();
} else {
title[i] = "";
}
}
// 行循环开始
for (int i = startrow + 1; i < rowNum; i++) {
Map<String, String> varpd = new HashMap<String, String>();
// 得到Excel工作表的行
XSSFRow row = sheet.getRow(i);
// 列循环开始
for (int j = startcol; j < cellTitleNum; j++) {
// 得到Excel工作表指定行的单元格
XSSFCell cell = row.getCell(j);
String cellValue = "";
if (Objects.nonNull(cell)) {
// 把类型先设置为字符串类型
cell.setCellType(CellType.STRING);
cellValue = cell.getStringCellValue();
}
varpd.put(title[j], cellValue);
}
varList.add(varpd);
}
wb.close();
} catch (Exception e) {
System.out.println(e);
}
return varList;
}
}
Loading…
Cancel
Save