diff --git a/WEB-INF/prop/PORTAL_INFO.properties b/WEB-INF/prop/PORTAL_INFO.properties index c0e64645..d2ba7472 100644 --- a/WEB-INF/prop/PORTAL_INFO.properties +++ b/WEB-INF/prop/PORTAL_INFO.properties @@ -47,6 +47,11 @@ passwd = Uportal_123 ##流程详情页的url 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 diff --git a/interface/hjkj/updateDepartMentCode.jsp b/interface/hjkj/updateDepartMentCode.jsp new file mode 100644 index 00000000..a7895972 --- /dev/null +++ b/interface/hjkj/updateDepartMentCode.jsp @@ -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> lists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0); + if (Objects.nonNull(lists)) { + for (int i = 0; i < lists.size(); i++) { + Map 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 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> lists, String id) { + RecordSet rs = new RecordSet(); + String Subcompanyid = ""; + for (int i = 0; i < lists.size(); i++) { + Map 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 getSubcompanyid1(List> lists, String id) { + Map res = new HashMap<>(); + RecordSet rs = new RecordSet(); + String subcompanyid1 = ""; + String supdepid = ""; + for (int i = 0; i < lists.size(); i++) { + Map 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; + } +%> diff --git a/interface/hjkj/updateHrmresource.jsp b/interface/hjkj/updateHrmresource.jsp new file mode 100644 index 00000000..0679351c --- /dev/null +++ b/interface/hjkj/updateHrmresource.jsp @@ -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> deptlists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0); + List> hrmlists = r.readExcel("/whalecloud/cos", "staff.xlsx", 0, 0, 0); + if (Objects.nonNull(hrmlists)) { + for (int i = 0; i < hrmlists.size(); i++) { + Map 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 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 getSubcompanyid1(List> lists, String id) { + Map res = new HashMap<>(); + RecordSet rs = new RecordSet(); + String subcompanyid1 = ""; + String deptid = ""; + for (int i = 0; i < lists.size(); i++) { + Map 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; + } +%> diff --git a/interface/hjkj/updatePost.jsp b/interface/hjkj/updatePost.jsp new file mode 100644 index 00000000..66c1e46d --- /dev/null +++ b/interface/hjkj/updatePost.jsp @@ -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> deptlists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0); + List> lists = r.readExcel("/whalecloud/cos", "system_post.xlsx", 0, 0, 0); + if (Objects.nonNull(lists)) { + for (int i = 0; i < lists.size(); i++) { + Map 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 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 getSubcompanyid1(List> lists, String id) { + Map res = new HashMap<>(); + RecordSet rs = new RecordSet(); + String subcompanyid1 = ""; + String deptid = ""; + for (int i = 0; i < lists.size(); i++) { + Map 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; + } +%> diff --git a/interface/hjkj/updatePostUser.jsp b/interface/hjkj/updatePostUser.jsp new file mode 100644 index 00000000..c931d5fc --- /dev/null +++ b/interface/hjkj/updatePostUser.jsp @@ -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> deptlists = r.readExcel("/whalecloud/cos", "organization.xlsx", 0, 0, 0); + List> postlists = r.readExcel("/whalecloud/cos", "system_post.xlsx", 0, 0, 0); + List> lists = r.readExcel("/whalecloud/cos", "system_user_post.xlsx", 0, 0, 0); + List> hrmlists = r.readExcel("/whalecloud/cos", "staff.xlsx", 0, 0, 0); + if (Objects.nonNull(lists)) { + for (int i = 0; i < lists.size(); i++) { + Map m = lists.get(i); + + String ORG_ID = Util.null2String(m.get("org_id")); + Map 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> lists, String id) { + String code = ""; + RecordSet rs = new RecordSet(); + for (int i = 0; i < lists.size(); i++) { + Map 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 getSubcompanyid1(List> lists, String id) { + Map res = new HashMap<>(); + RecordSet rs = new RecordSet(); + String subcompanyid1 = ""; + String deptid = ""; + for (int i = 0; i < lists.size(); i++) { + Map 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> lists, String id) { + String postcode = ""; + + + for (int i = 0; i < lists.size(); i++) { + Map 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; + } +%> + + diff --git a/interface/hjkj/updateRole.jsp b/interface/hjkj/updateRole.jsp new file mode 100644 index 00000000..07c7cfda --- /dev/null +++ b/interface/hjkj/updateRole.jsp @@ -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> lists = r.readExcel("/whalecloud/cos", "system_roles.xlsx", 0, 0, 0); + if (Objects.nonNull(lists)) { + for (int i = 0; i < lists.size(); i++) { + Map 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; + } +%> + + diff --git a/interface/hjkj/updateRoleUser.jsp b/interface/hjkj/updateRoleUser.jsp new file mode 100644 index 00000000..6dacaefb --- /dev/null +++ b/interface/hjkj/updateRoleUser.jsp @@ -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> rolelists = r.readExcel("/whalecloud/cos", "system_roles.xlsx", 0, 0, 0); + List> userlists = r.readExcel("/whalecloud/cos", "system_roles.xlsx", 0, 0, 0); + List> 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 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> lists, String id) { + String code = ""; + RecordSet rs = new RecordSet(); + for (int i = 0; i < lists.size(); i++) { + Map 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> lists, String id) { + String code = ""; + RecordSet rs = new RecordSet(); + for (int i = 0; i < lists.size(); i++) { + Map 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; + } +%> + + diff --git a/interface/mobilelogin/loginsso.jsp b/interface/mobilelogin/loginsso.jsp index 52be7da1..cfc85126 100644 --- a/interface/mobilelogin/loginsso.jsp +++ b/interface/mobilelogin/loginsso.jsp @@ -2,6 +2,8 @@ <%@ page import="weaver.general.Util,weaver.hrm.*" %> <%@ page import="weaver.general.BaseBean" %> <%@ page import="java.net.URLDecoder" %> +<%@ page import="com.engine.common.util.ParamUtil" %> +<%@ page import="java.util.Map" %> <% // response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 @@ -13,9 +15,22 @@ BaseBean bb = new BaseBean(); 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")); + Map params = ParamUtil.request2Map(request); + for (Map.Entry entry : params.entrySet()) { + bb.writeLog(" loginsso 参数 :key= " + entry.getKey() + " and value= " + entry.getValue()); + } + + if(!"".equals(forwardurl)){ forwardurl = URLDecoder.decode(forwardurl,"UTF-8"); diff --git a/src/com/customization/sendtodo/HttpReqUtils.java b/src/com/customization/sendtodo/HttpReqUtils.java index 5ae93ffb..b2b473da 100644 --- a/src/com/customization/sendtodo/HttpReqUtils.java +++ b/src/com/customization/sendtodo/HttpReqUtils.java @@ -34,16 +34,17 @@ public class HttpReqUtils extends BaseBean{ .build(); try { Response response = client.newCall(request).execute(); - - bb.writeLog("response.code():"+response.code()); - bb.writeLog("response.body():"+response.body().string()); - - if(response!=null && response.code() == 200){ - msgData = response.body().string(); + int code = response.code(); + String bodyMsg = response.body().string(); + bb.writeLog("response.code():"+code); + bb.writeLog("response.body():"+bodyMsg); + if(code == 200){ + msgData = bodyMsg; } } catch (IOException e) { e.printStackTrace(); } + bb.writeLog("msgData:"+msgData); return msgData; } diff --git a/src/com/customization/sendtodo/HttpRequestUtil.java b/src/com/customization/sendtodo/HttpRequestUtil.java index ababad8d..1a57aac8 100644 --- a/src/com/customization/sendtodo/HttpRequestUtil.java +++ b/src/com/customization/sendtodo/HttpRequestUtil.java @@ -36,15 +36,17 @@ public class HttpRequestUtil extends BaseBean{ try { Response response = client.newCall(request).execute(); - bb.writeLog("response.code():"+response.code()); - bb.writeLog("response.body():"+response.body().string()); - - if(response!=null && response.code() == 200){ - msgData = response.body().string(); + int code = response.code(); + String bodyMsg = response.body().string(); + bb.writeLog("response.code():"+code); + bb.writeLog("response.body():"+bodyMsg); + if(code == 200){ + msgData = bodyMsg; } } catch (IOException e) { e.printStackTrace(); } + bb.writeLog("msgData:"+msgData); return msgData; } diff --git a/src/weaver/interfaces/util/SendMailUtil.java b/src/com/customization/sendtodo/SendMailUtil.java similarity index 57% rename from src/weaver/interfaces/util/SendMailUtil.java rename to src/com/customization/sendtodo/SendMailUtil.java index 1afdb83f..a1ceef3e 100644 --- a/src/weaver/interfaces/util/SendMailUtil.java +++ b/src/com/customization/sendtodo/SendMailUtil.java @@ -1,91 +1,97 @@ -package weaver.interfaces.util; +package com.customization.sendtodo; import com.alibaba.fastjson.JSONObject; import okhttp3.*; import org.apache.commons.lang.StringUtils; import weaver.general.BaseBean; +import weaver.interfaces.comInfo.PropBean; import weaver.interfaces.iwhalecloud.util.RSAUtils; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; -public class SendMailUtil{ - - public static BaseBean baseBean = new BaseBean(); - String emailenable = baseBean.getPropValue("PORTAL_INFO","emailenable"); - - public void sendMail(String requestid,String emails,String notificationSubject,String notificationContent){ +public class SendMailUtil { + + String emailenable = PropBean.getUfPropValue("emailenable"); + + public void sendMail(String requestid, String emails, String notificationSubject, String notificationContent){ + BaseBean baseBean = new BaseBean(); + baseBean.writeLog("emailenable:"+emailenable); + 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"; + } - if(!"1".equals(emailenable)){ - return; - } - 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()); - - JSONObject requestJson = new JSONObject(); - requestJson.put("eventCode",emailEventCode); - requestJson.put("triggerTime",triggerTime); - requestJson.put("notificationType",emailNotificationType); - requestJson.put("email",emails); - requestJson.put("channel",emailChannel); - requestJson.put("notificationSubject",notificationSubject); - requestJson.put("notificationContent",notificationContent); - - try{ - String responseData = doGetAccessToken(); - String accessToken = "" ; - if(StringUtils.isNotEmpty(responseData)){ - JSONObject responseObject = JSONObject.parseObject(responseData); - if(responseObject.containsKey("resCode") && responseObject.containsKey("data")){ - String resCode = responseObject.getString("resCode"); - if("00000".equals(resCode)){ - JSONObject dataObject = responseObject.getJSONObject("data"); - if(dataObject.containsKey("accessToken")){ - accessToken = dataObject.getString("accessToken"); + String triggerTime = sdf.format(new Date()); + + JSONObject requestJson = new JSONObject(); + requestJson.put("eventCode",emailEventCode); + requestJson.put("triggerTime",triggerTime); + requestJson.put("notificationType",emailNotificationType); + requestJson.put(emailkey,emails); + requestJson.put("channel",emailChannel); + requestJson.put("notificationSubject",notificationSubject); + requestJson.put("notificationContent",notificationContent); + + try{ + String responseData = doGetAccessToken(); + baseBean.writeLog("responseData:"+responseData); + String accessToken = "" ; + if(StringUtils.isNotEmpty(responseData)){ + JSONObject responseObject = JSONObject.parseObject(responseData); + if(responseObject.containsKey("resCode") && responseObject.containsKey("data")){ + String resCode = responseObject.getString("resCode"); + if("00000".equals(resCode)){ + JSONObject dataObject = responseObject.getJSONObject("data"); + if(dataObject.containsKey("accessToken")){ + accessToken = dataObject.getString("accessToken"); + } } } } - } - if(StringUtils.isNotEmpty(accessToken)){ + if(StringUtils.isNotEmpty(accessToken)){ - JSONObject jsonObject = new JSONObject(); - jsonObject.put("access_token",accessToken); - jsonObject.put("method",emailMethod); - jsonObject.put("version",emailVersion); - jsonObject.put("content",requestJson); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("access_token",accessToken); + jsonObject.put("method",emailMethod); + jsonObject.put("version",emailVersion); + 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}" - System.out.println(jsonObject.toJSONString()); - - OkHttpClient client = new OkHttpClient().newBuilder().build(); - MediaType mediaType = MediaType.parse("application/json"); - RequestBody body = RequestBody.create(mediaType,jsonObject.toJSONString()); - Request request = new Request.Builder() - .url(emailUrl) - .method("POST", body) - .addHeader("Content-Type", "application/json") - .build(); - Response response = client.newCall(request).execute(); - baseBean.writeLog("response.code():"+response.code()); - baseBean.writeLog("response.body():"+response.body().string()); - - if(response!=null && response.code() != 200){ - baseBean.writeLog(response.body().string()); + baseBean.writeLog("jsonObject:"+jsonObject.toJSONString()); + + OkHttpClient client = new OkHttpClient().newBuilder().build(); + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType,jsonObject.toJSONString()); + Request request = new Request.Builder() + .url(emailUrl) + .method("POST", body) + .addHeader("Content-Type", "application/json") + .build(); + Response response = client.newCall(request).execute(); + int code = response.code(); + String bodyMsg = response.body().string(); + baseBean.writeLog("response.code():"+code); + baseBean.writeLog("response.body():"+bodyMsg); } + }catch (IOException e) { + e.printStackTrace(); + baseBean.writeLog(e); + }catch (Exception e){ + baseBean.writeLog(e); } - }catch (IOException e) { - e.printStackTrace(); - baseBean.writeLog(e); - }catch (Exception e){ - baseBean.writeLog(e); } } @@ -94,15 +100,18 @@ public class SendMailUtil{ * @return */ public String doGetAccessToken(){ - + BaseBean baseBean = new BaseBean(); + baseBean.writeLog("doGetAccessToken == "); String responseData = "" ; RSAUtils RSAUtils = new RSAUtils(); - String emailTokenUrl = baseBean.getPropValue("PORTAL_INFO","emailTokenUrl") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize" - String emainAppCode = baseBean.getPropValue("PORTAL_INFO","emainAppCode") ; - String emailAppSecret = baseBean.getPropValue("PORTAL_INFO","emailAppSecret") ; - String emailResponseType = baseBean.getPropValue("PORTAL_INFO","emailResponseType") ; //token - String emailPrivateKey = baseBean.getPropValue("PORTAL_INFO","emailPrivateKey") ; + String emailTokenUrl = PropBean.getUfPropValue("emailTokenUrl") ; //"http://10.26.4.136:80/api/oauth2/apigAuthorize" + String emainAppCode = PropBean.getUfPropValue("emainAppCode") ; + String emailAppSecret = PropBean.getUfPropValue("emailAppSecret") ; + String emailResponseType = PropBean.getUfPropValue("emailResponseType") ; //token + 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=="; //"{\"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 { // 生成签名 String sign = RSAUtils.generateSign("", emainAppCode, emailAppSecret, timestamp, emailPrivateKey); -// System.out.println("sign == " + sign); + baseBean.writeLog("sign == " + sign); JSONObject jsonObject = new JSONObject(); jsonObject.put("appCode",emainAppCode); jsonObject.put("appSecret",emailAppSecret); jsonObject.put("responseType",emailResponseType); jsonObject.put("timestamp",timestamp); jsonObject.put("sign",sign); - System.out.println(jsonObject.toJSONString()); + baseBean.writeLog("jsonObject:"+jsonObject.toJSONString()); OkHttpClient client = new OkHttpClient().newBuilder().build(); MediaType mediaType = MediaType.parse("application/json"); @@ -129,13 +138,20 @@ public class SendMailUtil{ .addHeader("Content-Type", "application/json") .build(); Response response = client.newCall(request).execute(); - baseBean.writeLog("response.code():"+response.code()); - baseBean.writeLog("response.body():"+response.body().string()); - responseData = response.body().string(); + + int code = response.code(); + String bodyMsg = response.body().string(); + baseBean.writeLog("response.code():"+code); + baseBean.writeLog("response.body():"+bodyMsg); + if(code == 200){ + responseData = bodyMsg; + } } catch (IOException e) { e.printStackTrace(); + baseBean.writeLog(e); } catch (Exception e) { e.printStackTrace(); + baseBean.writeLog(e); } return responseData; } diff --git a/src/com/customization/sendtodo/SendPortalDoneUtil.java b/src/com/customization/sendtodo/SendPortalDoneUtil.java index 42ad71c9..c6ce3d03 100644 --- a/src/com/customization/sendtodo/SendPortalDoneUtil.java +++ b/src/com/customization/sendtodo/SendPortalDoneUtil.java @@ -7,6 +7,9 @@ import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; +import weaver.interfaces.comInfo.PropBean; + +import java.net.URLEncoder; public class SendPortalDoneUtil { @@ -16,7 +19,7 @@ public class SendPortalDoneUtil { * @param noideid * @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(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -25,87 +28,90 @@ public class SendPortalDoneUtil { BaseBean bb = new BaseBean(); bb.writeLog("sendTodoDataByCreateNode"); - String ticketType = center ; - String terminal = "1" ; - String actionType = "0" ; + String ticketType = center; + String terminal = "1"; + String actionType = "0"; String taskType = "0"; - String objectAction = "0" ; + String objectAction = "0"; String objectType = "0"; - String objectId = "" ; + String objectId = ""; try { 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.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" + " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; + " and t1.requestid = " + requestid; - bb.writeLog("sendTodoDataByNode--sql:"+sql); + bb.writeLog("sendTodoDataByNode--sql:" + sql); rs.executeQuery(sql); - if (rs.next()){ - - String title = Util.null2String(rs.getString("requestname")) ; - String creator = Util.null2String(rs.getString("loginid")) ; - String taskCode = Util.null2String(rs.getString("taskcode")) ; - String nodeId = Util.null2String(rs.getString("nodeid")) ; - - String createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - - 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String nodeName = Util.null2String(rs.getString("nodeName")) ; - - requestObject.put("center",center); - requestObject.put("title",title); - requestObject.put("creator",creator); - requestObject.put("taskCode",taskCode); - requestObject.put("nodeId",nodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",createdate+" "+createtime); - requestObject.put("messageTitle",messageTitle); - requestObject.put("messageContent",messageContent); - requestObject.put("terminal",terminal); - requestObject.put("urlPc",urlPc); - requestObject.put("urlApp",urlApp); - requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + if (rs.next()) { + + String title = Util.null2String(rs.getString("requestname")); + String creator = Util.null2String(rs.getString("loginid")); + String workcode = Util.null2String(rs.getString("loginid")); + String taskCode = Util.null2String(rs.getString("taskcode")); + String nodeId = Util.null2String(rs.getString("nodeid")); + + String createdate = Util.null2String(rs.getString("createdate")); + String createtime = Util.null2String(rs.getString("createtime")); + String messageTitle = Util.null2String(rs.getString("requestname")); + String messageContent = Util.null2String(rs.getString("requestname")); + + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + 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")); + + requestObject.put("center", center); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("taskCode", taskCode); + requestObject.put("nodeId", nodeId); + requestObject.put("taskType", taskType); + requestObject.put("actionType", actionType); + requestObject.put("createDate", createdate + " " + createtime); + requestObject.put("messageTitle", messageTitle); + requestObject.put("messageContent", messageContent); + requestObject.put("terminal", terminal); + requestObject.put("urlPc", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing", urlDing); + requestObject.put("nodeName", nodeName); + requestObject.put("ticketType", ticketType); } String usercode = user.getLoginid(); JSONObject taskObject = new JSONObject(); - String objectCode = usercode ; - String operatorCode = usercode ; - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",objectId); - taskObject.put("operatorCode",operatorCode); + String objectCode = usercode; + String operatorCode = usercode; + taskObject.put("objectAction", objectAction); + taskObject.put("objectType", objectType); + taskObject.put("objectCode", objectCode); + taskObject.put("objectId", objectId); + taskObject.put("operatorCode", operatorCode); taskObjectList.add(taskObject); - requestObject.put("taskObjectList",taskObjectList); + requestObject.put("taskObjectList", taskObjectList); String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); - if(!"".equals(msgdata)){ + bb.writeLog("requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); + bb.writeLog("msgdata:" + msgdata); + if (!"".equals(msgdata)) { JSONObject msgObject = JSONObject.parseObject(msgdata); //{"resultCode":"1","resultMsg":"No Result"} - if(msgObject.containsKey("resultCode")){ + if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); - if(!"0".equals(resultCode)){ + if (!"0".equals(resultCode)) { sendPortalErrorUtil.doCreateSendPortalDoneErrorInfo(); } } @@ -124,7 +130,7 @@ public class SendPortalDoneUtil { * @param noideid * @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(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -134,15 +140,15 @@ public class SendPortalDoneUtil { BaseBean bb = new BaseBean(); bb.writeLog("sendTodoDataByNode"); - String ticketType = center ; - String terminal = "1" ; + String ticketType = center; + String terminal = "1"; String taskType = "0"; - String objectId = "" ; + String objectId = ""; try { - int count = 0 ; - String countSql =" select t2.userid,h1.loginid\n" + + int count = 0; + String countSql = " select t2.userid,h1.loginid\n" + " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + @@ -150,121 +156,127 @@ public class SendPortalDoneUtil { " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.REQUESTID = "+requestid+ - " and t2.nodeid = " + noideid ; - bb.writeLog("sendTodoDataByNode--countSql:"+countSql); + " and t2.REQUESTID = " + requestid + + " and t2.nodeid = " + noideid; + bb.writeLog("sendTodoDataByNode--countSql:" + countSql); rs.executeQuery(countSql); - while (rs.next()){ + while (rs.next()) { count++; } - 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.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" + " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; - bb.writeLog("sendTodoDataByNode--sql:"+sql); + " and t1.requestid = " + requestid; + bb.writeLog("sendTodoDataByNode--sql:" + sql); - if(count >0){ + if (count > 0) { JSONArray taskObjectList = new JSONArray(); - String actionType = "1" ; - String objectAction = "1" ; + String actionType = "1"; + String objectAction = "1"; String objectType = "0"; rs.executeQuery(sql); - if (rs.next()){ - String title = Util.null2String(rs.getString("requestname")) ; - String creator = Util.null2String(rs.getString("loginid")) ; - String taskCode = Util.null2String(rs.getString("taskcode")) ; - String nodeId = Util.null2String(rs.getString("nodeid")) ; - - String createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String nodeName = Util.null2String(rs.getString("nodeName")) ; - - requestObject.put("center",center); - requestObject.put("title",title); - requestObject.put("creator",creator); - requestObject.put("taskCode",taskCode); - requestObject.put("nodeId",nodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",createdate+" "+createtime); - requestObject.put("messageTitle",messageTitle); - requestObject.put("messageContent",messageContent); - requestObject.put("terminal",terminal); - requestObject.put("urlPc",urlPc); - requestObject.put("urlApp",urlApp); - requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + if (rs.next()) { + String title = Util.null2String(rs.getString("requestname")); + String creator = Util.null2String(rs.getString("loginid")); + String workcode = Util.null2String(rs.getString("loginid")); + String taskCode = Util.null2String(rs.getString("taskcode")); + String nodeId = Util.null2String(rs.getString("nodeid")); + + String createdate = Util.null2String(rs.getString("createdate")); + String createtime = Util.null2String(rs.getString("createtime")); + String messageTitle = Util.null2String(rs.getString("requestname")); + String messageContent = Util.null2String(rs.getString("requestname")); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + 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")); + + requestObject.put("center", center); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("taskCode", taskCode); + requestObject.put("nodeId", nodeId); + requestObject.put("taskType", taskType); + requestObject.put("actionType", actionType); + requestObject.put("createDate", createdate + " " + createtime); + requestObject.put("messageTitle", messageTitle); + requestObject.put("messageContent", messageContent); + requestObject.put("terminal", terminal); + requestObject.put("urlPc", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing", urlDing); + requestObject.put("nodeName", nodeName); + requestObject.put("ticketType", ticketType); } - String objectCode = user.getLoginid() ; - String operatorCode = user.getLoginid() ; + String objectCode = user.getLoginid(); + String operatorCode = user.getLoginid(); JSONObject taskObject = new JSONObject(); - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",objectId); - taskObject.put("operatorCode",operatorCode); + taskObject.put("objectAction", objectAction); + taskObject.put("objectType", objectType); + taskObject.put("objectCode", objectCode); + taskObject.put("objectId", objectId); + taskObject.put("operatorCode", operatorCode); taskObjectList.add(taskObject); - requestObject.put("taskObjectList",taskObjectList); + requestObject.put("taskObjectList", taskObjectList); - }else{ - String actionType = "2" ; - String objectAction = "0" ; + } else { + String actionType = "2"; + String objectAction = "0"; String objectType = "0"; JSONArray taskObjectList = new JSONArray(); rs.executeQuery(sql); - if (rs.next()){ - - String title = Util.null2String(rs.getString("requestname")) ; - String creator = Util.null2String(rs.getString("loginid")) ; - String taskCode = Util.null2String(rs.getString("taskcode")) ; - String nodeId = Util.null2String(rs.getString("nodeid")) ; - - String createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String nodeName = Util.null2String(rs.getString("nodeName")) ; - - requestObject.put("center",center); - requestObject.put("title",title); - requestObject.put("creator",creator); - requestObject.put("taskCode",taskCode); - requestObject.put("nodeId",nodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",createdate+" "+createtime); - requestObject.put("messageTitle",messageTitle); - requestObject.put("messageContent",messageContent); - requestObject.put("terminal",terminal); - requestObject.put("urlPc",urlPc); - requestObject.put("urlApp",urlApp); - requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + if (rs.next()) { + + String title = Util.null2String(rs.getString("requestname")); + String creator = Util.null2String(rs.getString("loginid")); + String workcode = Util.null2String(rs.getString("loginid")); + String taskCode = Util.null2String(rs.getString("taskcode")); + String nodeId = Util.null2String(rs.getString("nodeid")); + + String createdate = Util.null2String(rs.getString("createdate")); + String createtime = Util.null2String(rs.getString("createtime")); + String messageTitle = Util.null2String(rs.getString("requestname")); + String messageContent = Util.null2String(rs.getString("requestname")); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + 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")); + + requestObject.put("center", center); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("taskCode", taskCode); + requestObject.put("nodeId", nodeId); + requestObject.put("taskType", taskType); + requestObject.put("actionType", actionType); + requestObject.put("createDate", createdate + " " + createtime); + requestObject.put("messageTitle", messageTitle); + requestObject.put("messageContent", messageContent); + requestObject.put("terminal", terminal); + requestObject.put("urlPc", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing", urlDing); + requestObject.put("nodeName", nodeName); + requestObject.put("ticketType", ticketType); } - sql = " select t2.userid,h1.loginid,h1.email\n" + + sql = " select t2.userid,h1.loginid,h1.email\n" + " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + @@ -272,36 +284,36 @@ public class SendPortalDoneUtil { " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.REQUESTID = "+requestid; - bb.writeLog("sendTodoDataByNode--sql:"+sql); + " and t2.REQUESTID = " + requestid; + bb.writeLog("sendTodoDataByNode--sql:" + sql); rs.executeQuery(sql); - while (rs.next()){ + while (rs.next()) { - String usercode = Util.null2String(rs.getString("loginid")) ; - String objectCode = usercode ; - String operatorCode = usercode ; + String usercode = Util.null2String(rs.getString("loginid")); + String objectCode = usercode; + String operatorCode = usercode; JSONObject taskObject = new JSONObject(); - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",objectId); - taskObject.put("operatorCode",operatorCode); + taskObject.put("objectAction", objectAction); + taskObject.put("objectType", objectType); + taskObject.put("objectCode", objectCode); + taskObject.put("objectId", objectId); + taskObject.put("operatorCode", operatorCode); taskObjectList.add(taskObject); } - requestObject.put("taskObjectList",taskObjectList); + requestObject.put("taskObjectList", taskObjectList); } String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); - if(!"".equals(msgdata)){ + bb.writeLog("requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth); + bb.writeLog("msgdata:" + msgdata); + if (!"".equals(msgdata)) { JSONObject msgObject = JSONObject.parseObject(msgdata); //{"resultCode":"1","resultMsg":"No Result"} - if(msgObject.containsKey("resultCode")){ + if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); - if(!"0".equals(resultCode)){ + if (!"0".equals(resultCode)) { sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); } } @@ -319,7 +331,7 @@ public class SendPortalDoneUtil { * @param noideid * @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(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -329,63 +341,66 @@ public class SendPortalDoneUtil { BaseBean bb = new BaseBean(); bb.writeLog("sendTodoDataByReject"); RecordSet rs = new RecordSet(); - String ticketType = center ; - String terminal = "1" ; + String ticketType = center; + String terminal = "1"; String taskType = "0"; - String objectAction = "0" ; + String objectAction = "0"; String objectType = "0"; - String objectId = "" ; + String objectId = ""; try { - String actionType = "2" ; + String actionType = "2"; 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.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" + " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; - bb.writeLog("sendTodoDataByReject--sql:"+sql); + " and t1.requestid = " + requestid; + bb.writeLog("sendTodoDataByReject--sql:" + sql); rs.executeQuery(sql); - if (rs.next()){ - - String title = Util.null2String(rs.getString("requestname")) ; - String creator = Util.null2String(rs.getString("loginid")) ; - String taskCode = Util.null2String(rs.getString("taskcode")) ; - String nodeId = Util.null2String(rs.getString("nodeid")) ; - - String createdate = Util.null2String(rs.getString("createdate")) ; - String createtime = Util.null2String(rs.getString("createtime")) ; - String messageTitle = Util.null2String(rs.getString("requestname")) ; - String messageContent = Util.null2String(rs.getString("requestname")) ; - - 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; - String nodeName = Util.null2String(rs.getString("nodeName")) ; - - requestObject.put("center",center); - requestObject.put("title",title); - requestObject.put("creator",creator); - requestObject.put("taskCode",taskCode); - requestObject.put("nodeId",nodeId); - requestObject.put("taskType",taskType); - requestObject.put("actionType",actionType); - requestObject.put("createDate",createdate+" "+createtime); - requestObject.put("messageTitle",messageTitle); - requestObject.put("messageContent",messageContent); - requestObject.put("terminal",terminal); - requestObject.put("urlPc",urlPc); - requestObject.put("urlApp",urlApp); - requestObject.put("urlDing",urlDing); - requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + if (rs.next()) { + + String title = Util.null2String(rs.getString("requestname")); + String creator = Util.null2String(rs.getString("loginid")); + String workcode = Util.null2String(rs.getString("loginid")); + String taskCode = Util.null2String(rs.getString("taskcode")); + String nodeId = Util.null2String(rs.getString("nodeid")); + + String createdate = Util.null2String(rs.getString("createdate")); + String createtime = Util.null2String(rs.getString("createtime")); + String messageTitle = Util.null2String(rs.getString("requestname")); + String messageContent = Util.null2String(rs.getString("requestname")); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + 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")); + + requestObject.put("center", center); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("taskCode", taskCode); + requestObject.put("nodeId", nodeId); + requestObject.put("taskType", taskType); + requestObject.put("actionType", actionType); + requestObject.put("createDate", createdate + " " + createtime); + requestObject.put("messageTitle", messageTitle); + requestObject.put("messageContent", messageContent); + requestObject.put("terminal", terminal); + requestObject.put("urlPc", urlPc); + requestObject.put("urlApp", urlApp); + requestObject.put("urlDing", urlDing); + requestObject.put("nodeName", nodeName); + requestObject.put("ticketType", ticketType); } - sql = " select t2.userid,h1.loginid,h1.email\n" + + sql = " select t2.userid,h1.loginid,h1.email\n" + " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + " left join (select id, lastname,loginid,email from hrmresource where STATUS = 1 union all select id,lastname,loginid,'' as email from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + @@ -393,39 +408,39 @@ public class SendPortalDoneUtil { " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" + " and t2.islasttimes = 1\n" + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.REQUESTID = "+requestid; + " and t2.REQUESTID = " + requestid; - bb.writeLog("sendTodoDataByReject--sql:"+sql); + bb.writeLog("sendTodoDataByReject--sql:" + sql); rs.executeQuery(sql); - while (rs.next()){ + while (rs.next()) { - String usercode = Util.null2String(rs.getString("loginid")) ; + String usercode = Util.null2String(rs.getString("loginid")); JSONObject taskObject = new JSONObject(); - String objectCode = usercode ; + String objectCode = usercode; - String operatorCode = usercode ; + String operatorCode = usercode; - taskObject.put("objectAction",objectAction); - taskObject.put("objectType",objectType); - taskObject.put("objectCode",objectCode); - taskObject.put("objectId",objectId); - taskObject.put("operatorCode",operatorCode); + taskObject.put("objectAction", objectAction); + taskObject.put("objectType", objectType); + taskObject.put("objectCode", objectCode); + taskObject.put("objectId", objectId); + taskObject.put("operatorCode", operatorCode); taskObjectList.add(taskObject); } - requestObject.put("taskObjectList",taskObjectList); + requestObject.put("taskObjectList", taskObjectList); String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); - bb.writeLog("msgdata:"+msgdata); - if(!"".equals(msgdata)){ + bb.writeLog("requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_todourl, requestObject.toJSONString(), auth); + bb.writeLog("msgdata:" + msgdata); + if (!"".equals(msgdata)) { JSONObject msgObject = JSONObject.parseObject(msgdata); //{"resultCode":"1","resultMsg":"No Result"} - if(msgObject.containsKey("resultCode")){ + if (msgObject.containsKey("resultCode")) { String resultCode = msgObject.getString("resultCode"); - if(!"0".equals(resultCode)){ + if (!"0".equals(resultCode)) { sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); } } @@ -435,59 +450,70 @@ 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(); - HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); - RecordSet rs = new RecordSet(); - String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); - String isRecall = "1"; - String actionType = "0"; - int userid = user.getUID(); - String workcode = ""; - String sql = "select loginid from hrmresource where id = '" + userid + "'"; - rs.execute(sql); - while (rs.next()) { - workcode = Util.null2String(rs.getString("loginid")); - } + try { + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); + RecordSet rs = new RecordSet(); + String processTime = DateUtil.getCurrentTime("yyyy-MM-dd HH:mm:ss"); + String isRecall = "1"; + String actionType = "0"; + int userid = user.getUID(); + String workcode = ""; + String sql = "select loginid from hrmresource where id = '" + userid + "'"; + rs.execute(sql); + while (rs.next()) { + workcode = Util.null2String(rs.getString("loginid")); + } - String center = bb.getPropValue("PORTAL_INFO", "center"); - String ticketType = bb.getPropValue("PORTAL_INFO", "done_ticketType"); - String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; - String urlApp = "[newtab]" + bpm_workflowurl + "/spa/workflow/static4mobileform/index.html#/req?requestid=" + requestid; - sql = " select 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" + - " from workflow_requestbase t1\n" + - " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + - " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + - " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = " + requestid; - rs.execute(sql); - while (rs.next()) { - String title = Util.null2String(rs.getString("requestname")); + String center = PropBean.getUfPropValue("center"); + + String urlPc = "[newtab]" + bpm_workflowurl + "/workflow/request/ViewRequestForwardSPA.jsp?requestid=" + requestid; + String app_requestUrl = bpm_app_requesturl + requestid; + 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" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid " + + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = " + requestid; + rs.execute(sql); + while (rs.next()) { + String title = Util.null2String(rs.getString("requestname")); + String workflowid = Util.null2String(rs.getString("workflowid")); + String workflowname = getWorkflowname(workflowid); // title = getShortMessageTitle(title); - String creator = Util.null2String(rs.getString("loginid")); - String taskCode = Util.null2String(rs.getString("taskcode")); - JSONObject requestObject = new JSONObject(); - requestObject.put("center", center); - requestObject.put("taskCode", taskCode); - requestObject.put("nodeId", nodeid); - requestObject.put("ticketType", ticketType); - requestObject.put("title", title); - requestObject.put("creator", creator); - requestObject.put("processStaff", workcode); - requestObject.put("processTime", processTime); - requestObject.put("isRecall", isRecall); - requestObject.put("actionType", actionType); - requestObject.put("urlPC", urlPc); - requestObject.put("urlApp", urlApp); + String creator = Util.null2String(rs.getString("loginid")); + String taskCode = Util.null2String(rs.getString("taskcode")); + JSONObject requestObject = new JSONObject(); + requestObject.put("center", center); + requestObject.put("taskCode", taskCode); + requestObject.put("nodeId", nodeid); + requestObject.put("ticketType", workflowname); + requestObject.put("title", title); + requestObject.put("creator", creator); + requestObject.put("processStaff", workcode); + requestObject.put("processTime", processTime); + requestObject.put("isRecall", isRecall); + requestObject.put("actionType", actionType); + requestObject.put("urlPC", urlPc); + requestObject.put("urlApp", urlApp); + + String auth = username + ":" + passwd; + bb.writeLog("done requestObject:" + requestObject.toJSONString()); + String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); + bb.writeLog("done msgdata:" + msgdata); + } - String auth = username + ":" + passwd; - bb.writeLog("done requestObject:" + requestObject.toJSONString()); - String msgdata = httpRequestUtil.doPostByAuth(portal_doneurl, requestObject.toJSONString(), auth); - bb.writeLog("done msgdata:" + msgdata); + } catch (Exception e) { + bb.writeLog("done Exception"); + bb.writeLog(e.getMessage()); } } + private String getShortMessageTitle(String messageTitle) { if (messageTitle.length() > 20) { messageTitle = messageTitle.substring(0, 17) + "..."; @@ -495,5 +521,15 @@ public class SendPortalDoneUtil { 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; + } + } diff --git a/src/com/customization/sendtodo/SendPortalTodoCmd.java b/src/com/customization/sendtodo/SendPortalTodoCmd.java index ac8ca2ed..54fb018d 100644 --- a/src/com/customization/sendtodo/SendPortalTodoCmd.java +++ b/src/com/customization/sendtodo/SendPortalTodoCmd.java @@ -35,14 +35,14 @@ public class SendPortalTodoCmd extends AbstractCommandProxy> String nodeid = Util.null2String(request.getParameter("nodeid")); String workflowname = Util.null2String(request.getParameter("workflowname")); - Map params = ParamUtil.request2Map(request); - params.forEach((t,u)-> { - System.out.println(t+"->>>"+u); - }); - - for (Map.Entry entry : params.entrySet()) { - System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); - } +// Map params = ParamUtil.request2Map(request); +// params.forEach((t,u)-> { +// System.out.println(t+"->>>"+u); +// }); +// +// for (Map.Entry entry : params.entrySet()) { +// System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); +// } User user = requestSubmitCmd.getUser(); bb.writeLog("requestid:"+requestid); diff --git a/src/com/customization/sendtodo/SendPortalTodoRunnable.java b/src/com/customization/sendtodo/SendPortalTodoRunnable.java index 97023a4e..c26fec3d 100644 --- a/src/com/customization/sendtodo/SendPortalTodoRunnable.java +++ b/src/com/customization/sendtodo/SendPortalTodoRunnable.java @@ -3,6 +3,7 @@ package com.customization.sendtodo; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; +import weaver.interfaces.comInfo.PropBean; public class SendPortalTodoRunnable implements Runnable{ @@ -27,25 +28,27 @@ public class SendPortalTodoRunnable implements Runnable{ SendPortalTodoUtil sendPortalTodoUtil = new SendPortalTodoUtil(); SendPortalDoneUtil sendPortalDoneUtil = new SendPortalDoneUtil(); - BaseBean bb = new BaseBean(); - String portal_todourl = bb.getPropValue("PORTAL_INFO","portal_todourl"); - String username = bb.getPropValue("PORTAL_INFO","username"); - String passwd = bb.getPropValue("PORTAL_INFO","passwd"); - String center = bb.getPropValue("PORTAL_INFO","center"); - String bpm_workflowurl = bb.getPropValue("PORTAL_INFO","bpm_workflowurl"); - String portal_doneurl = bb.getPropValue("PORTAL_INFO","portal_doneurl"); + String bpm_app_workflowurl = PropBean.getUfPropValue("bpm_app_workflowurl"); + String portal_doneurl = PropBean.getUfPropValue("portal_doneurl"); + String bpm_app_requesturl = PropBean.getUfPropValue("bpm_app_requesturl"); + String portal_todourl = PropBean.getUfPropValue("portal_todourl"); + String username = PropBean.getUfPropValue("username"); + String passwd = PropBean.getUfPropValue("passwd"); + String center = PropBean.getUfPropValue("center"); + String bpm_workflowurl = PropBean.getUfPropValue("bpm_workflowurl"); + 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)){ - sendPortalTodoUtil.sendTodoDataByCreateNode(new_requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); - sendPortalDoneUtil.sendPortalDoneData( new_requestid, nodeid, user, portal_doneurl, username, passwd, bpm_workflowurl); + 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,bpm_app_workflowurl, username, passwd, bpm_workflowurl,bpm_app_requesturl); }else if(Util.getIntValue(requestid)> 0 && "submit".equals(src)){ - sendPortalTodoUtil.sendTodoDataByNode(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); - sendPortalDoneUtil.sendPortalDoneData( requestid, nodeid, user, portal_doneurl, username, passwd, bpm_workflowurl); + 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,bpm_app_workflowurl, username, passwd, bpm_workflowurl,bpm_app_requesturl); }else if(Util.getIntValue(requestid)> 0 && "reject".equals(src)){ - sendPortalTodoUtil.sendTodoDataByReject(requestid,nodeid,user,portal_todourl,username,passwd,bpm_workflowurl,center); - sendPortalDoneUtil.sendPortalDoneData( requestid, nodeid, user, portal_doneurl, username, passwd, bpm_workflowurl); + 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,bpm_app_workflowurl, username, passwd, bpm_workflowurl,bpm_app_requesturl); } } diff --git a/src/com/customization/sendtodo/SendPortalTodoUtil.java b/src/com/customization/sendtodo/SendPortalTodoUtil.java index 9a7873b4..a063d2ad 100644 --- a/src/com/customization/sendtodo/SendPortalTodoUtil.java +++ b/src/com/customization/sendtodo/SendPortalTodoUtil.java @@ -2,24 +2,26 @@ package com.customization.sendtodo; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; -import weaver.interfaces.util.SendMailUtil; + +import java.net.URLEncoder; import java.util.regex.Matcher; import java.util.regex.Pattern; 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 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(); SendMailUtil sendMailUtil = new SendMailUtil(); @@ -28,7 +30,7 @@ public class SendPortalTodoUtil { BaseBean bb = new BaseBean(); RecordSet rs = new RecordSet(); - JSONArray emailArray = new JSONArray(); + String emailArray = ""; String requestname = ""; String requestremark = "" ; @@ -46,7 +48,7 @@ public class SendPortalTodoUtil { JSONObject requestObject = new JSONObject(); try { 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" + " from workflow_requestbase t1\n" + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + @@ -63,9 +65,11 @@ public class SendPortalTodoUtil { rs.executeQuery(sql); if (rs.next()){ - + String workflowid = Util.null2String(rs.getString("workflowid")) ; + String workflowname = getWorkflowname(workflowid); String title = Util.null2String(rs.getString("requestname")) ; String creator = Util.null2String(rs.getString("loginid")) ; + String workcode = Util.null2String(rs.getString("loginid")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ; @@ -79,8 +83,11 @@ public class SendPortalTodoUtil { messageTitle = getShortMessageTitle(messageTitle); 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestId; + String app_requestUrl = bpm_app_requesturl+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")) ; requestObject.put("center",center); @@ -98,7 +105,7 @@ public class SendPortalTodoUtil { requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + requestObject.put("ticketType",workflowname); JSONArray taskObjectList = new JSONArray(); JSONObject taskObject = new JSONObject(); @@ -117,32 +124,34 @@ public class SendPortalTodoUtil { requestObject.put("taskObjectList",taskObjectList); String email = Util.null2String(rs.getString("email")) ; + bb.writeLog("email1:"+email); Matcher matcher = regex.matcher(email); 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 passwd = "Uportal_123"; // String todourl = "http://172.16.25.133/portal-web/centerTodo/sync" ; String auth = username + ":" + passwd; String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); bb.writeLog("msgdata:"+msgdata); - if(!"".equals(msgdata)){ + if(StringUtils.isNotEmpty(msgdata)){ JSONObject msgObject = JSONObject.parseObject(msgdata); //{"resultCode":"1","resultMsg":"No Result"} if(msgObject.containsKey("resultCode")){ String resultCode = msgObject.getString("resultCode"); if("0".equals(resultCode)){ - System.out.println(emailArray.toJSONString()); - - 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"; - - sendMailUtil.sendMail(requestId,emailArray.toJSONString(),notificationSubject,notificationContent); + bb.writeLog("emailArray:"+emailArray); + if(StringUtils.isNotEmpty(emailArray)) + { + 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"; + sendMailUtil.sendMail(requestId,emailArray,notificationSubject,notificationContent); + } }else{ sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); @@ -161,7 +170,7 @@ public class SendPortalTodoUtil { * @param noideid * @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(); SendMailUtil sendMailUtil = new SendMailUtil(); @@ -173,7 +182,7 @@ public class SendPortalTodoUtil { String requestremark = "" ; JSONObject requestObject = new JSONObject(); - JSONArray emailArray = new JSONArray(); + String emailArray = ""; Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); BaseBean bb = new BaseBean(); @@ -189,7 +198,7 @@ public class SendPortalTodoUtil { try { 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" + " from workflow_requestbase t1\n" + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + @@ -201,9 +210,11 @@ public class SendPortalTodoUtil { bb.writeLog("sendTodoDataByNode--sql:"+sql); rs.executeQuery(sql); if (rs.next()){ - + String workflowid = Util.null2String(rs.getString("workflowid")) ; + String workflowname = getWorkflowname(workflowid); String title = Util.null2String(rs.getString("requestname")) ; String creator = Util.null2String(rs.getString("loginid")) ; + String workcode = Util.null2String(rs.getString("loginid")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ; @@ -216,8 +227,10 @@ public class SendPortalTodoUtil { messageTitle = getShortMessageTitle(messageTitle); 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String app_requestUrl = bpm_app_requesturl+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")) ; requestObject.put("center",center); @@ -235,7 +248,7 @@ public class SendPortalTodoUtil { requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + requestObject.put("ticketType",workflowname); } sql = " select t2.userid,h1.loginid,h1.email\n" + @@ -265,16 +278,17 @@ public class SendPortalTodoUtil { taskObjectList.add(taskObject); String email = Util.null2String(rs.getString("email")) ; + bb.writeLog("email2:"+email); Matcher matcher = regex.matcher(email); if(matcher.matches()){ - emailArray.add(email); + emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; } } requestObject.put("taskObjectList",taskObjectList); String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); + //bb.writeLog("requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); bb.writeLog("msgdata:"+msgdata); if(!"".equals(msgdata)){ @@ -284,12 +298,13 @@ public class SendPortalTodoUtil { String resultCode = msgObject.getString("resultCode"); if("0".equals(resultCode)){ - System.out.println(emailArray.toJSONString()); - - 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"; - - sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); + bb.writeLog("emailArray:"+emailArray); + if(StringUtils.isNotEmpty(emailArray)) + { + 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"; + sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + } }else{ sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); } @@ -309,7 +324,7 @@ public class SendPortalTodoUtil { * @param noideid * @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(); SendMailUtil sendMailUtil = new SendMailUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); @@ -326,21 +341,21 @@ public class SendPortalTodoUtil { String objectId = "" ; String requestname = "" ; - JSONArray emailArray = new JSONArray(); + String emailArray = ""; Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); try { int count = 0 ; String countSql =" select t2.userid,h1.loginid\n" + - " from workflow_requestbase t1\n" + - " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + - " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + - " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" + - " and t2.islasttimes = 1\n" + - " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + - " and t2.REQUESTID = "+requestid+ - " and t2.nodeid = " + noideid ; + " from workflow_requestbase t1\n" + + " inner join workflow_currentoperator t2 on t1.requestid = t2.requestid\n" + + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id,lastname,loginid from hrmresourcemanager ) h1 on h1.id = t2.userid\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and ((t2.isremark = '0' and (t2.takisremark is null or t2.takisremark = 0)) or t2.isremark in ('1', '5', '8', '9', '7', '11'))\n" + + " and t2.islasttimes = 1\n" + + " and (t2.isprocessing = '' or t2.isprocessing is null)\n" + + " and t2.REQUESTID = "+requestid+ + " and t2.nodeid = " + noideid ; bb.writeLog("sendTodoDataByNode--countSql:"+countSql); rs.executeQuery(countSql); while (rs.next()){ @@ -348,14 +363,14 @@ public class SendPortalTodoUtil { } bb.writeLog("sendTodoDataByNode--count:"+count); - String sql =" select 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" + - " from workflow_requestbase t1\n" + - " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ - " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + - " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; + 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" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; bb.writeLog("sendTodoDataByNode--sql:"+sql); if(count >0){ @@ -367,12 +382,14 @@ public class SendPortalTodoUtil { rs.executeQuery(sql); if (rs.next()){ + String workflowid = Util.null2String(rs.getString("workflowid")) ; + String workflowname = getWorkflowname(workflowid); String title = Util.null2String(rs.getString("requestname")) ; requestname = title; String creator = Util.null2String(rs.getString("loginid")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ; - + String workcode = Util.null2String(rs.getString("loginid")) ; String createdate = Util.null2String(rs.getString("createdate")) ; String createtime = Util.null2String(rs.getString("createtime")) ; String messageTitle = Util.null2String(rs.getString("requestname")) ; @@ -380,8 +397,10 @@ public class SendPortalTodoUtil { String messageContent = Util.null2String(rs.getString("requestname")) ; 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String app_requestUrl = bpm_app_requesturl+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")) ; requestObject.put("center",center); @@ -399,7 +418,7 @@ public class SendPortalTodoUtil { requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + requestObject.put("ticketType",workflowname); } String objectCode = user.getLoginid() ; @@ -421,13 +440,14 @@ public class SendPortalTodoUtil { JSONArray taskObjectList = new JSONArray(); rs.executeQuery(sql); if (rs.next()){ - + String workflowid = Util.null2String(rs.getString("workflowid")) ; + String workflowname = getWorkflowname(workflowid); String title = Util.null2String(rs.getString("requestname")) ; requestname = title; String creator = Util.null2String(rs.getString("loginid")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ; - + String workcode = Util.null2String(rs.getString("loginid")) ; String createdate = Util.null2String(rs.getString("createdate")) ; String createtime = Util.null2String(rs.getString("createtime")) ; String messageTitle = Util.null2String(rs.getString("requestname")) ; @@ -435,8 +455,10 @@ public class SendPortalTodoUtil { String messageContent = Util.null2String(rs.getString("requestname")) ; 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String app_requestUrl = bpm_app_requesturl+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")) ; requestObject.put("center",center); @@ -454,7 +476,7 @@ public class SendPortalTodoUtil { requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + requestObject.put("ticketType",workflowname); } sql = " select t2.userid,h1.loginid,h1.email\n" + @@ -483,16 +505,17 @@ public class SendPortalTodoUtil { taskObjectList.add(taskObject); String email = Util.null2String(rs.getString("email")) ; + bb.writeLog("email3:"+email); Matcher matcher = regex.matcher(email); if(matcher.matches()){ - emailArray.add(email); + emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; } } requestObject.put("taskObjectList",taskObjectList); } String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); + //bb.writeLog("requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); bb.writeLog("msgdata:"+msgdata); if(!"".equals(msgdata)){ @@ -502,10 +525,13 @@ public class SendPortalTodoUtil { String resultCode = msgObject.getString("resultCode"); if("0".equals(resultCode)){ - System.out.println(emailArray.toJSONString()); - 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"; - sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); + bb.writeLog("emailArray:"+emailArray); + if(StringUtils.isNotEmpty(emailArray)) + { + 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"; + sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + } }else{ sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); @@ -525,14 +551,14 @@ public class SendPortalTodoUtil { * @param noideid * @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(); SendMailUtil sendMailUtil = new SendMailUtil(); SendPortalErrorUtil sendPortalErrorUtil = new SendPortalErrorUtil(); JSONObject requestObject = new JSONObject(); - JSONArray emailArray = new JSONArray(); + String emailArray = ""; Pattern regex = Pattern.compile(EMAIL_REGEX_DEFAULT); BaseBean bb = new BaseBean(); @@ -550,24 +576,25 @@ public class SendPortalTodoUtil { String actionType = "2" ; JSONArray taskObjectList = new JSONArray(); - String sql =" select 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" + - " from workflow_requestbase t1\n" + - " inner join workflow_base t3 on t1.workflowid = t3.id\n" + - " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ - " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + - " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + - " and t1.requestid = "+requestid ; + 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" + + " from workflow_requestbase t1\n" + + " inner join workflow_base t3 on t1.workflowid = t3.id\n" + + " left join workflow_nodebase d1 on d1.id = t1.currentnodeid "+ + " left join (select id, lastname,loginid from hrmresource where status = 1 union all select id, lastname,loginid from hrmresourcemanager ) h1 on h1.id = t1.creater\n" + + " where (t1.deleted <> 1 or t1.deleted is null or t1.deleted = '')\n" + + " and t1.requestid = "+requestid ; bb.writeLog("sendTodoDataByReject--sql:"+sql); rs.executeQuery(sql); if (rs.next()){ - + String workflowid = Util.null2String(rs.getString("workflowid")) ; + String workflowname = getWorkflowname(workflowid); String title = Util.null2String(rs.getString("requestname")) ; requestname = title ; String creator = Util.null2String(rs.getString("loginid")) ; String taskCode = Util.null2String(rs.getString("taskcode")) ; String nodeId = Util.null2String(rs.getString("nodeid")) ; - + String workcode = Util.null2String(rs.getString("loginid")) ; String createdate = Util.null2String(rs.getString("createdate")) ; String createtime = Util.null2String(rs.getString("createtime")) ; String messageTitle = Util.null2String(rs.getString("requestname")) ; @@ -575,8 +602,10 @@ public class SendPortalTodoUtil { String messageContent = Util.null2String(rs.getString("requestname")) ; 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 urlDing = "[newtab]"+bpm_workflowurl+"/spa/workflow/static4mobileform/index.html#/req?requestid="+requestid; + String app_requestUrl = bpm_app_requesturl+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")) ; requestObject.put("center",center); @@ -594,7 +623,7 @@ public class SendPortalTodoUtil { requestObject.put("urlApp",urlApp); requestObject.put("urlDing",urlDing); requestObject.put("nodeName",nodeName); - requestObject.put("ticketType",ticketType); + requestObject.put("ticketType",workflowname); } sql = " select t2.userid,h1.loginid,h1.email\n" + @@ -615,7 +644,6 @@ public class SendPortalTodoUtil { JSONObject taskObject = new JSONObject(); String objectCode = usercode ; - String operatorCode = usercode ; taskObject.put("objectAction",objectAction); @@ -626,17 +654,17 @@ public class SendPortalTodoUtil { taskObjectList.add(taskObject); String email = Util.null2String(rs.getString("email")) ; + bb.writeLog("email4:"+email); Matcher matcher = regex.matcher(email); if(matcher.matches()){ - emailArray.add(email); + emailArray += StringUtils.isEmpty(emailArray) ? email : ","+email ; } - } requestObject.put("taskObjectList",taskObjectList); String auth = username + ":" + passwd; - bb.writeLog("requestObject:"+requestObject.toJSONString()); + //bb.writeLog("requestObject:"+requestObject.toJSONString()); String msgdata = httpRequestUtil.doPostByAuth(portal_todourl,requestObject.toJSONString(),auth); bb.writeLog("msgdata:"+msgdata); if(!"".equals(msgdata)){ @@ -646,13 +674,13 @@ public class SendPortalTodoUtil { String resultCode = msgObject.getString("resultCode"); if("0".equals(resultCode)){ - System.out.println(emailArray.toJSONString()); - - 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"; - - sendMailUtil.sendMail(requestid,emailArray.toJSONString(),notificationSubject,notificationContent); - + bb.writeLog("emailArray:"+emailArray); + if(StringUtils.isNotEmpty(emailArray)) + { + 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"; + sendMailUtil.sendMail(requestid,emailArray,notificationSubject,notificationContent); + } }else{ sendPortalErrorUtil.doCreateSendPortalTodoErrorInfo(); } @@ -671,4 +699,14 @@ public class SendPortalTodoUtil { 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; + } + } diff --git a/src/com/customization/sendtodo/SendRemarkOperateTodoCmd.java b/src/com/customization/sendtodo/SendRemarkOperateTodoCmd.java index 861c7951..7ddd89d8 100644 --- a/src/com/customization/sendtodo/SendRemarkOperateTodoCmd.java +++ b/src/com/customization/sendtodo/SendRemarkOperateTodoCmd.java @@ -12,6 +12,7 @@ import weaver.file.FileUpload; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; +import weaver.interfaces.comInfo.PropBean; import javax.servlet.http.HttpServletRequest; import java.util.Map; @@ -60,11 +61,12 @@ public class SendRemarkOperateTodoCmd extends AbstractCommandProxy 0) { sendTodoDataByCreateNode(requestid, nodeid, user, portal_todourl, username, passwd, bpm_workflowurl, center); } diff --git a/src/weaver/interfaces/comInfo/PropBean.java b/src/weaver/interfaces/comInfo/PropBean.java index 06443d53..6d98cdf9 100644 --- a/src/weaver/interfaces/comInfo/PropBean.java +++ b/src/weaver/interfaces/comInfo/PropBean.java @@ -10,7 +10,7 @@ public class PropBean { public static BaseBean bb = new BaseBean(); 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)){ return ""; diff --git a/src/weaver/interfaces/filter/HttpRequestUtil.java b/src/weaver/interfaces/filter/HttpRequestUtil.java index 4a97ef3b..8a20f304 100644 --- a/src/weaver/interfaces/filter/HttpRequestUtil.java +++ b/src/weaver/interfaces/filter/HttpRequestUtil.java @@ -1,355 +1,268 @@ package weaver.interfaces.filter; -import okhttp3.*; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.ParseException; -import org.apache.http.client.methods.CloseableHttpResponse; -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 com.api.login.util.LoginUtil; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import weaver.conn.RecordSet; 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.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; import java.util.Map; -import com.sun.jersey.core.util.Base64; public class HttpRequestUtil extends BaseBean{ - - /** - * 模拟请求 - * - * @param url 资源地址 - * @param encoding 编码 - * @return - * @throws ParseException - * @throws IOException - */ - public String sendPost(String url, Map headers,String encoding){ - String body = ""; - + public String doGetHttp(String url,String session){ BaseBean bb = new BaseBean(); - bb.writeLog("url ==" + url); - - //创建httpclient对象 - CloseableHttpClient client = HttpClients.createDefault(); - //创建post方式请求对象 - HttpPost httpPost = new HttpPost(url); - - //设置参数到请求对象中 - if (headers != null && headers.size() > 0) { - for (Map.Entry 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; + String msgData= "" ; + OkHttpClient client = new OkHttpClient().newBuilder().build(); + Request request = new Request.Builder() + .url(url) + .method("GET", null) + .addHeader("Cookie", "SESSION="+session) + .build(); try { + Response response = client.newCall(request).execute(); - response = client.execute(httpPost); - bb.writeLog(response.getStatusLine().getStatusCode()); - //获取结果实体 - HttpEntity entity = response.getEntity(); - if (entity != null) { - //按指定编码转换结果实体为String类型 - body = EntityUtils.toString(entity, encoding); + int code = response.code(); + String bodyMsg = response.body().string(); + bb.writeLog("PortalLoginFilter-response.code():"+code); + bb.writeLog("PortalLoginFilter-response.body():"+bodyMsg); + if(code == 200){ + msgData = bodyMsg; } - EntityUtils.consume(entity); - //释放链接 - response.close(); + } catch (IOException e) { e.printStackTrace(); - bb.writeLog("e:"+e); } - - return body; + return msgData; } - - - /** - * 向指定URL发送GET方法的请求 - * - * @param url - * 发送请求的URL - * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return result 所代表远程资源的响应结果 - */ - public String sendGet(String url, Map 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 entry : headers.entrySet()) { - bb.writeLog("key:"+entry.getKey()); - bb.writeLog("val:"+entry.getValue()); - connection.addRequestProperty(entry.getKey(), entry.getValue()); - } - } - - // 建立实际的连接 - connection.connect(); - // 获取所有响应头字段 - //Map> 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 { - if (in != null) { - in.close(); - } - } catch (Exception e2) { - e2.printStackTrace(); - } - } - - return result; - } /*** * - * @param url - * @param headers - * @param encode - * @return + * @param request + * @param staffCode + * @param uid */ - public String httpGet1(String url, Map headers, String encode){ - - BaseBean bb = new BaseBean(); - bb.writeLog("url",url); - if(encode == null){ - encode = "UTF-8"; - } - CloseableHttpResponse httpResponse = null; - 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 entry : headers.entrySet()) { - httpGet.addHeader(entry.getKey(),entry.getValue()); - } + public void loginUser(HttpServletRequest request,String staffCode,String uid,String resultCode){ + RecordSet rs = new RecordSet(); + if (!"".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 =? "; } + //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()); + request.getSession(true).setMaxInactiveInterval(60 * 60 * 24); + request.getSession(true).setAttribute("weaver_user@bean", user_new); + request.getSession(true).setAttribute("weaver_uid", uid); - 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) { - e.printStackTrace(); - } - return content; } - /*** + /**** * - * @param url - * @param headers - * @param encode - * @return + * @param request + * @param response + * @param application */ - public String httpGet2(String url,Map headers,String encode) - { - - BaseBean bb = new BaseBean(); - bb.writeLog("url",url); - if(encode == null){ - encode = "UTF-8"; + public void userSessionFilter(HttpServletRequest request, HttpServletResponse response, ServletContext application,String staffCode,String uid){ + + String path = PropBean.getUfPropValue("ecologypath"); + boolean isMutiLangua = Util.isEnableMultiLang(); + //系统使用语言,未使用多语言的用户默认为中文。 + int isLanguId = 8; + String languId = "8"; + if (isMutiLangua) { + isLanguId = Util.getIntValue(request.getParameter("islanguid"), 0); + //如何未选择,则默认系统使用语言为简体中文 + if (isLanguId == 0) { + isLanguId = 8; + } + languId = String.valueOf(isLanguId); + Cookie syslanid = new Cookie("Systemlanguid", languId); + syslanid.setMaxAge(-1); + syslanid.setPath(path); + response.addCookie(syslanid); } - CloseableHttpResponse httpResponse = null; - 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 entry : headers.entrySet()) { - bb.writeLog("key:"+entry.getKey()); - bb.writeLog("val:"+entry.getValue()); + RecordSet rs = new RecordSet(); + RecordSet rslog = new RecordSet(); + + User newUser = null; + String loginUserId = "" ; + String loginName = "" ; + 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}); + if (rs.next()) + { + newUser = new User(); + loginUserId = Util.null2String(rs.getInt("id")); + loginName = Util.null2String(rs.getInt("lastname")); + newUser.setUid(rs.getInt("id")); + newUser.setLoginid(rs.getString("loginid")); + newUser.setPwd(rs.getString("password")); + newUser.setFirstname(rs.getString("firstname")); + newUser.setLastname(rs.getString("lastname")); + newUser.setAliasname(rs.getString("aliasname")); + newUser.setTitle(rs.getString("title")); + newUser.setTitlelocation(rs.getString("titlelocation")); + newUser.setSex(rs.getString("sex")); + newUser.setPwd(rs.getString("password")); + String languageIdWeaver = rs.getString("systemlanguage"); + newUser.setLanguage(Util.getIntValue(languageIdWeaver, 8)); + if (!languId.equalsIgnoreCase(languageIdWeaver) && isMutiLangua) { + User.setUserLang(rs.getInt("id"), Util.getIntValue(languId, 8)); + languageIdWeaver = languId; - httpGet.addHeader(entry.getKey(),entry.getValue()); - } } - - httpGet.setHeader("Accept", "*"); - - httpResponse = closeableHttpClient.execute(httpGet); - if(httpResponse.getStatusLine().getStatusCode() == 200) - { - bb.writeLog(httpResponse.getStatusLine().getStatusCode()); - HttpEntity entity = httpResponse.getEntity(); - content = EntityUtils.toString(entity, encode); + newUser.setTelephone(rs.getString("telephone")); + newUser.setMobile(rs.getString("mobile")); + newUser.setMobilecall(rs.getString("mobilecall")); + newUser.setEmail(rs.getString("email")); + newUser.setCountryid(rs.getString("countryid")); + newUser.setLocationid(rs.getString("locationid")); + newUser.setResourcetype(rs.getString("resourcetype")); + + newUser.setStartdate(rs.getString("startdate")); + newUser.setEnddate(rs.getString("enddate")); + newUser.setContractdate(rs.getString("contractdate")); + newUser.setJobtitle(rs.getString("jobtitle")); + newUser.setJobgroup(rs.getString("jobgroup")); + newUser.setJobactivity(rs.getString("jobactivity")); + newUser.setJoblevel(rs.getString("joblevel")); + 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"; } - } catch (Exception e) { - e.printStackTrace(); - bb.writeLog("er333:"+e); - }finally{ - try { - httpResponse.close(); - } catch (IOException e) { - e.printStackTrace(); + 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); } - } - try { //关闭连接、释放资源 - closeableHttpClient.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return content; - } - /*** - * - * @param url - * @param jsonstr - * @return - */ - public static String doPostByAuth(String url,String jsonstr,String auth){ - CloseableHttpClient httpClient = null; - HttpPost httpPost = null; - String result = null; - try{ - String authStr = new String(Base64.encode(auth)); - httpClient = HttpClients.createDefault(); - httpPost = new HttpPost(url); -// String head_param_encode = urlEncode(head_param); - System.out.println("authStr:"+authStr); - httpPost.addHeader("Connection", "Keep-Alive"); - httpPost.addHeader("Cache-Control", "No-Cache"); - httpPost.addHeader("Accept", "*/*"); - httpPost.addHeader("Content-Type", "application/json;charset=utf-8"); - httpPost.addHeader("Authorization", "Basic " + authStr); - 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"); - StringEntity se = new StringEntity(jsonstr); - se.setContentType("application/json;charset=utf-8"); - httpPost.setEntity(se); - HttpResponse response = httpClient.execute(httpPost); - if(response != null){ - HttpEntity resEntity = response.getEntity(); - if(resEntity != null){ - result = EntityUtils.toString(resEntity,"utf-8"); - } + Map userSessions = (Map) application.getAttribute("userSessions"); + String uId = String.valueOf(newUser.getUID()); + if (userSessions == null) { + userSessions = new java.util.concurrent.ConcurrentHashMap(); } - }catch(Exception ex){ - ex.printStackTrace(); + List slist = (List) userSessions.get(uId); + slist = slist == null ? new ArrayList() : slist; + slist.add(session); + userSessions.put(uId, slist); + application.setAttribute("userSessions", userSessions); } - return result; - } - - -// public static String urlEncode(String url) throws UnsupportedEncodingException { -// if(url == null) { -// return null; -// } -// final String reserved_char = ";/?:@=&"; -// String ret = ""; -// for(int i=0; i < url.length(); i++) { -// String cs = String.valueOf( url.charAt(i) ); -// if(reserved_char.contains(cs)){ -// ret += cs; -// }else{ -// ret += URLEncoder.encode(cs, "utf-8"); -// } -// } -// return ret.replace("+", "%20"); -// } - - - public String doPostByAuth2(String dataJson){ - BaseBean bb = new BaseBean(); - String msgData = "" ; - OkHttpClient client = new OkHttpClient().newBuilder() - .build(); - MediaType mediaType = MediaType.parse("application/json"); - RequestBody body = RequestBody.create(mediaType, dataJson); - Request request = new Request.Builder() - .url("http://172.16.25.133/portal-web/centerTodo/sync") - .method("POST", body) - .addHeader("Authorization", "Basic YWRtaW46VXBvcnRhbF8xMjM=") - .addHeader("Content-Type", "application/json") - .build(); - try { - Response response = client.newCall(request).execute(); - bb.writeLog("response.code():"+response.code()); - bb.writeLog("response.body():"+response.body().string()); - msgData = response.body().string(); - } catch (IOException e) { - e.printStackTrace(); + if(!"".equals(loginUserId)) + { + LoginUtil.recordLogin(Util.getIntValue(loginUserId),loginName,request.getRemoteAddr()); } - return msgData; } } diff --git a/src/weaver/interfaces/filter/PortalLoginBeforeFilter.java b/src/weaver/interfaces/filter/PortalLoginBeforeFilter.java index 15bf0c94..b1f9fc54 100644 --- a/src/weaver/interfaces/filter/PortalLoginBeforeFilter.java +++ b/src/weaver/interfaces/filter/PortalLoginBeforeFilter.java @@ -2,49 +2,51 @@ package weaver.interfaces.filter; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang.StringUtils; -import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; +import weaver.interfaces.comInfo.PropBean; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class PortalLoginBeforeFilter implements Filter { private List bpmHostList = new ArrayList(); + private String portalUserAuth = "" ; + @Override public void init(FilterConfig filterConfig) throws ServletException { + 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)) { String[] bpm_host_arr = bpm_host_array.split(";"); for (int i = 0; i < bpm_host_arr.length; i++) { bpmHostList.add(bpm_host_arr[i]); } } + portalUserAuth = PropBean.getUfPropValue("portal_user_auth"); } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException { BaseBean bb = new BaseBean(); - RecordSet rs = new RecordSet(); - + HttpRequestUtil httpRequestUtil = new HttpRequestUtil(); HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + ServletContext application = request.getSession().getServletContext(); boolean isExcludedPage = false; String requestURL = request.getRequestURL().toString(); - bb.writeLog("bpmHostList:" + bpmHostList.size()); + //bb.writeLog("bpmHostList:" + bpmHostList.size()); if (!bpmHostList.isEmpty()) { 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)) { isExcludedPage = true; } @@ -55,212 +57,120 @@ public class PortalLoginBeforeFilter implements Filter { if (!isExcludedPage) { //请求地址 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文件,直接放行 isExcludedPage = true; } } - - bb.writeLog("getRequestURI:" + getRequestURI + " isExcludedPage:" + isExcludedPage); - - if (!isExcludedPage) { - User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean"); - if (loginuser == null) { - String uid = ""; - String cookies = request.getHeader("cookie"); - if (StringUtils.isNotEmpty(cookies)) { - String[] cookievals = cookies.split(";"); - for (int i = 0; i < cookievals.length; i++) { - String cookval = cookievals[i]; - if (!"".equals(cookval) && cookval.contains("=")) { - String key = cookval.substring(0, cookval.indexOf("=")); - String value = cookval.substring(cookval.indexOf("=") + 1); - if ("SESSION".equals(key.trim()) || key.contains("SESSION")) { - uid = value; - } + //bb.writeLog("getRequestURI:" + getRequestURI + " isExcludedPage:" + isExcludedPage); + if(isExcludedPage) + { + filterChain.doFilter(request, response); + }else{ + String uid = ""; + String cookies = request.getHeader("cookie"); + if (StringUtils.isNotEmpty(cookies)) + { + String[] cookievals = cookies.split(";"); + for (int i = 0; i < cookievals.length; i++) { + String cookval = cookievals[i]; + if (!"".equals(cookval) && cookval.contains("=")) { + String key = cookval.substring(0, cookval.indexOf("=")); + String value = cookval.substring(cookval.indexOf("=") + 1); + if ("SESSION".equals(key.trim()) || key.contains("SESSION")) { + uid = value; } } } + } - //ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996; - // ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca; - // areaId=731; userId=1; orgId=1; - // CLOUD_APP_NAME=dbeptest7_pot-uportal-core; - // CLOUD_APP_ID=44074 - - if (StringUtils.isNotEmpty(uid)) { - 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 headMap = new HashMap(); - headMap.put("Cookie", "SESSION=" + uid); - String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8"); - if (!"".equals(msg)) { - JSONObject jsonObject = JSONObject.parseObject(msg); - if ("1".equals(jsonObject.getString("resultCode"))) { - JSONObject resultObject = jsonObject.getJSONObject("resultObject"); - String staffCode = resultObject.getString("staffCode"); - if (!"".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 =? "; + //ecology=BA0A2738FBB4C7664CEECCC8B0CF408B; HTML_VERSION=1603079097996; + // ZSMART_LOCALE=en; SESSION=4e101591-da0e-4425-b035-ffe684f85bca; + // areaId=731; userId=1; orgId=1; + // CLOUD_APP_NAME=dbeptest7_pot-uportal-core; + // CLOUD_APP_ID=44074 + + if(StringUtils.isNotEmpty(uid)) + { + User loginuser = (User) request.getSession(true).getAttribute("weaver_user@bean"); + String weaver_uid = String.valueOf(request.getSession(true).getAttribute("weaver_uid")); + String portal_status = String.valueOf(request.getSession(true).getAttribute("portal_status")); + + bb.writeLog("weaver_uid:"+weaver_uid); + bb.writeLog("uid:"+uid); + + 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); + if(jsonObject.containsKey("resultCode")){ + String resultCode = jsonObject.getString("resultCode") ; + if("1".equals(resultCode)) + { + JSONObject resultObject = jsonObject.getJSONObject("resultObject"); + String staffCode = resultObject.getString("staffCode"); + httpRequestUtil.userSessionFilter(request,response, application, staffCode, uid); } - 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()); - request.getSession(true).setMaxInactiveInterval(60 * 60 * 24); - request.getSession(true).setAttribute("weaver_user@bean", user_new); + Util.setCookie(response, "portalStatus", resultCode, -1); - } +// request.getSession(true).setAttribute("portal_status", resultCode); } } + }else{ + bb.writeLog("weaver_uid == uid"); + +// String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid); +// if (!"".equals(msg)) +// { +// JSONObject jsonObject = JSONObject.parseObject(msg); +// if(jsonObject.containsKey("resultCode")){ +// String resultCode = jsonObject.getString("resultCode") ; +// request.getSession(true).setAttribute("portal_status", resultCode); +// } +// } } - } - }else{ - //用户session存在,判断和接口中的codeshi是否一致 - String uid = ""; - String cookies = request.getHeader("cookie"); - if (StringUtils.isNotEmpty(cookies)) { - String[] cookievals = cookies.split(";"); - for (int i = 0; i < cookievals.length; i++) { - String cookval = cookievals[i]; - if (!"".equals(cookval) && cookval.contains("=")) { - String key = cookval.substring(0, cookval.indexOf("=")); - String value = cookval.substring(cookval.indexOf("=") + 1); - if ("SESSION".equals(key.trim()) || key.contains("SESSION")) { - uid = value; - } - } - } - } - if (StringUtils.isNotEmpty(uid)) { - String url = bb.getPropValue("PORTAL_INFO", "portal_user_auth"); - //String url = "http://172.16.25.133/portal-web/user/current" ; - bb.writeLog("url:" + url); + }else { + bb.writeLog("weaver_uid is null "); + String msg = httpRequestUtil.doGetHttp(portalUserAuth,uid); + if (!"".equals(msg)) + { + JSONObject jsonObject = JSONObject.parseObject(msg); + if(jsonObject.containsKey("resultCode")){ + String resultCode = jsonObject.getString("resultCode") ; + if("1".equals(resultCode)) + { + JSONObject resultObject = jsonObject.getJSONObject("resultObject"); + String staffCode = resultObject.getString("staffCode"); + httpRequestUtil.userSessionFilter(request,response, application, staffCode, uid); + } - HttpRequestUtil HttpRequestUtil = new HttpRequestUtil(); - Map headMap = new HashMap(); - headMap.put("Cookie", "SESSION=" + uid); - String msg = HttpRequestUtil.httpGet1(url, headMap, "UTF-8"); - if (!"".equals(msg)) { - JSONObject jsonObject = JSONObject.parseObject(msg); - if ("1".equals(jsonObject.getString("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 { - sql = " select * from HrmResource where loginid =? "; - } + Util.setCookie(response, "portalStatus", resultCode, -1); - 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)); +// request.getSession(true).setAttribute("portal_status", resultCode); + } + } + } - 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")); +// 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); + } - user_new.setLoginip(request.getRemoteAddr()); - request.getSession(true).setMaxInactiveInterval(60 * 60 * 24); - request.getSession(true).setAttribute("weaver_user@bean", user_new); + filterChain.doFilter(request, response); - } - } - } - } - } - } } - filterChain.doFilter(request, response); } @Override diff --git a/src/weaver/interfaces/filter/PortalLoginFilter.java b/src/weaver/interfaces/filter/PortalLoginFilter.java index 42eedca3..9988396f 100644 --- a/src/weaver/interfaces/filter/PortalLoginFilter.java +++ b/src/weaver/interfaces/filter/PortalLoginFilter.java @@ -1,6 +1,7 @@ package weaver.interfaces.filter; import com.alibaba.fastjson.JSONObject; +import com.api.login.util.LoginUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.dubbo.common.utils.StringUtils; @@ -8,6 +9,7 @@ import weaver.conn.RecordSet; import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; +import weaver.interfaces.comInfo.PropBean; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; @@ -25,8 +27,7 @@ public class PortalLoginFilter implements Filter private List uncheck_sessionurl_custom_list = new ArrayList(); private List bpmHostList = new ArrayList(); private String path = "/bpm" ; - private String portal_homepage = "" ; - private String portal_user_auth = "" ; + private String portalUserAuth = "" ; @Override public void init(FilterConfig filterConfig) throws ServletException { @@ -34,8 +35,7 @@ public class PortalLoginFilter implements Filter this.application = filterConfig.getServletContext(); BaseBean bb = new BaseBean(); - portal_homepage = bb.getPropValue("PORTAL_INFO","portal_homepage"); - portal_user_auth = bb.getPropValue("PORTAL_INFO","portal_user_auth"); + portalUserAuth = PropBean.getUfPropValue("portal_user_auth"); String uncheck_init = bb.getPropValue("weaver_session_filter","uncheckurl"); 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)) { String[] bpm_host_arr = bpm_host_array.split(";"); @@ -131,33 +131,39 @@ 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) + filterChain.doFilter(request, response); + }else{ + + String resultCode = "" ; + + String uid = "" ; + String cookies = request.getHeader("cookie"); + if(!"".equals(cookies)) { - bb.writeLog("loginuser is null"); - String uid = "" ; - String cookies = request.getHeader("cookie"); - if(!"".equals(cookies)) + String[] cookievals = cookies.split(";"); + for(int i=0;i headMap = new HashMap(); - headMap.put("Cookie","SESSION="+uid); - String msg = HttpRequestUtil.httpGet1(portal_user_auth,headMap,"UTF-8"); + String msg = HttpRequestUtil.doGetHttp(portalUserAuth,uid); if(!"".equals(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"); String staffCode = resultObject.getString("staffCode"); @@ -188,7 +191,7 @@ public class PortalLoginFilter implements Filter }else{ sql = " select * from HrmResource where loginid =? "; } - bb.writeLog("sql:"+sql); + //bb.writeLog("sql:"+sql); rs.executeQuery(sql,new Object[]{staffCode}); if(rs.next()){ user_new = new User(); @@ -236,55 +239,104 @@ public class PortalLoginFilter implements Filter request.getSession(true).setMaxInactiveInterval(60 * 60 * 24); 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{ - 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{ - 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{ + + if (StringUtils.isNotEmpty(uid)) + { + 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 { + sql = " select * from HrmResource where loginid =? "; + } + + 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)); - bb.writeLog("uid-- is null"); - 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"); + 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")); - response.sendRedirect(portal_homepage); - return; + user_new.setLoginip(request.getRemoteAddr()); + request.getSession(true).setMaxInactiveInterval(60 * 60 * 24); + request.getSession(true).setAttribute("weaver_user@bean", user_new); + + } + } + } + } } } + + if("0".equals(resultCode)){ + 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("http://172.16.25.133/portal-web/#"); + return; + + }else{ + filterChain.doFilter(request, response); + } } - filterChain.doFilter(request, response); } @Override diff --git a/src/weaver/interfaces/job/DeptManagerCronJob.java b/src/weaver/interfaces/job/DeptManagerCronJob.java new file mode 100644 index 00000000..e4156d6a --- /dev/null +++ b/src/weaver/interfaces/job/DeptManagerCronJob.java @@ -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> list = new ArrayList>(); + Map 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 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 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); + } + } + + +} diff --git a/src/weaver/interfaces/job/ESiginsCronJob.java b/src/weaver/interfaces/job/ESiginsCronJob.java index 76a35003..50a63226 100644 --- a/src/weaver/interfaces/job/ESiginsCronJob.java +++ b/src/weaver/interfaces/job/ESiginsCronJob.java @@ -11,6 +11,7 @@ import weaver.docs.docs.ImageFileIdUpdate; import weaver.general.BaseBean; import weaver.general.TimeUtil; import weaver.general.Util; +import weaver.interfaces.comInfo.PropBean; import weaver.interfaces.schedule.BaseCronJob; import java.io.*; @@ -36,11 +37,11 @@ public class ESiginsCronJob extends BaseCronJob { BaseBean bb = new BaseBean(); // String esiginsUrl = "http://172.16.25.133/portal-web/v1/esign/"+sysUserCode+"/esigns" ; - String esiginsUrl = bb.getPropValue("PORTAL_INFO","esiginsUrl"); - String ecology_app_root = bb.getPropValue("PORTAL_INFO","ecology_app_root"); + String esiginsUrl = PropBean.getUfPropValue("esiginsUrl"); + String ecology_app_root = PropBean.getUfPropValue("ecology_app_root"); - String username = bb.getPropValue("PORTAL_INFO","username"); - String passwd = bb.getPropValue("PORTAL_INFO","passwd"); + String username = PropBean.getUfPropValue("username"); + String passwd = PropBean.getUfPropValue("passwd"); List> list = new ArrayList>(); Map map = null; diff --git a/src/weaver/interfaces/mq/RocketmqServlet.java b/src/weaver/interfaces/mq/RocketmqServlet.java new file mode 100644 index 00000000..41a5e70f --- /dev/null +++ b/src/weaver/interfaces/mq/RocketmqServlet.java @@ -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初始化,初始化一次即可
+ */ + 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() + { + // 什么也不做 + } + +} diff --git a/src/weaver/interfaces/mq/RocketmqUtil.java b/src/weaver/interfaces/mq/RocketmqUtil.java new file mode 100644 index 00000000..95481c7c --- /dev/null +++ b/src/weaver/interfaces/mq/RocketmqUtil.java @@ -0,0 +1,1315 @@ +package weaver.interfaces.mq; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.TimeUtil; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.resource.ResourceComInfo; +import weaver.interfaces.comInfo.PropBean; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +public class RocketmqUtil { + private Lock lock = new ReentrantLock(); + public int updateOrgData(String data) + { + BaseBean bb = new BaseBean(); + int errcount = 0; + try{ + lock.lock(); + JSONObject jsonObject = JSONObject.parseObject(data); + if(jsonObject.containsKey("requestObject")) + { + JSONArray requestArray = jsonObject.getJSONArray("requestObject"); + for(int i=0;i dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员信息更新sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + + } + }else if("D".equals(actType)){ + status = "5"; + String userUpdateSql = " update hrmresource set status=? where workcode=? "; + bb.writeLog("userUpdateSql:"+userUpdateSql); + boolean flag = rs.executeUpdate(userUpdateSql,new Object[]{status,staffCode}); + bb.writeLog("flag:"+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员离职更新sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员系统中已存在,操作类型为A"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + if("A".equalsIgnoreCase(actType)) + { + String pwd = "1"; + String password = DigestUtils.md5Hex(pwd).toUpperCase(); //MD5加密 + bb.writeLog("password:"+password); + + rs.executeProc("HrmResourceMaxId_Get", ""); + rs.next(); + String id = "" + rs.getInt(1); + bb.writeLog("id:"+id); + + if(StringUtils.isNotEmpty(id)){ + 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(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + bb.writeLog("userInsertSql:"+userInsertSql); + boolean flag = rs.executeUpdate(userInsertSql,new Object[]{id,staffCode,password,staffCode,lastname,deptId,subcompanyid1, + creator,email,pwdSmsTel,jobTitleId,status,loginedNum,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime, + locationid,seclevel,createrid,lastmodid}); + bb.writeLog("flag:"+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员新增sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员不在系统中,操作类型为M或者D"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员所属部门为空"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }catch (Exception e){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人力资源异常:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + } + +// {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode": +// "70300100030001","requestObject":[{"content":[{ +// "updateDate":"2022-07-22 11:05:22","orgName":"testOrg722","parentOrgCode":"LNP000001", +// "regionNbr":"TST_PR_CSS","orgLevel":"2","statusCd":"1000", +// "parentOrgName":"Vivia","orgId":"17012", +// "createStaff":"1","orgType":"1000", +// "regionId":"36","parentOrgId":"1", +// "orgCode":"testOrg722", +// "pathCode":"-1.1.17012","actType":"A","partyId":"0", +// "parRegionNbr":"1", +// "createDate":"2022-07-22 11:05:22" +// }],"tableName":"organization","primaryKey":"orgId"}],"key":"svcCont"} + /**** + * + * @param jsonArray + * @return + */ + public void updasteSysOrgData(JSONArray jsonArray,String tableName){ + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + for(int i=0;i dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","更新部门SQL语句执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else if("D".equalsIgnoreCase(actType)) + { + canceled = "1"; + + int hrmResourceCount = 0 ; + String queryHrmResourceSql = " select id from hrmresource where departmentid = ? and status !=5 " ; + rs.executeQuery(queryHrmResourceSql,new Object[]{deptid}); + if(rs.next()){ + hrmResourceCount++; + } + + if(hrmResourceCount == 0 ){ + String deptUpdateSql = " update hrmdepartment set departmentmark=?,departmentname=?,canceled=?," + + " subcompanyid1=?,showorder=?, supdepid=? where departmentcode=? "; + bb.writeLog("deptUpdateSql:"+deptUpdateSql); + boolean flag = rs.executeUpdate(deptUpdateSql,new Object[]{departmentmark,departmentmark,canceled,subcompanyid1,orgId,supdepid,orgCode}); + bb.writeLog("flag:"+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","封存部门SQL语句执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","部门在系统中已存在,操作类型为A"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + if("A".equalsIgnoreCase(actType)) + { + String deptInsertSql = " insert into hrmdepartment(departmentmark,departmentname,departmentcode,subcompanyid1,supdepid,showorder) values(?,?,?,?,?,?) "; + bb.writeLog("deptInsertSql:"+deptInsertSql); + boolean flag = rs.executeUpdate(deptInsertSql,new Object[]{departmentmark,departmentmark,orgCode,subcompanyid1,supdepid,orgId}); + bb.writeLog("flag:"+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","新增部门SQL语句执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","部门在系统中不存在,操作类型为M或者D"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","部门所属分部在系统为空"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }catch (Exception e){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","部门异常:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + } + +// {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode": +// "70300100030001","requestObject":[{"content":[{"sysUserRoleId":"23444","updateDate":"2022-07-22 11:08:33", +// "systemInfoCode":"TYMH","sysRoleId":"17013","statusCd":"1000", +// "systemInfoId":"727001","operType":"1000", +// "systemUserCode":"finaceManager", +// "expDate":"2120-01-01 00:00:00","orgId":"17012", +// "createStaff":"1","effDate":"2022-07-21 10:17:51", +// "systemUserName":"financeManager", +// "orgCode":"testOrg722","roleCode":"orgManager","manageClass":"1000","roleName":"orgManager", +// "actType":"A","sysUserId":"20047","createDate":"2022-07-22 11:08:33"}], +// "tableName":"system_user_role","primaryKey":"sysUserRoleId"}],"key":"svcCont"} + + // {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", +// "requestObject":[{"content":[{"sysUserRoleId":"23503","updateDate":"2022-07-27 09:32:48","systemInfoCode":"TYMH", +// "hisId":"20182","sysRoleId":"17015","statusCd":"1100","hasUserRole":false,"systemInfoId":"727001", +// "operType":"1000","systemUserCode":"testQian722","expDate":"2120-01-01 00:00:00","orgId":"2","createStaff":"1", +// "effDate":"2022-07-25 13:59:59","systemUserName":"testQian722","orgCode":"2","roleCode":"testQian722", +// "manageClass":"1000","roleName":"testQian722","actType":"D","sysUserId":"20055", +// "createDate":"2022-07-25 15:43:24","updateStaff":"1"}],"tableName":"system_user_role", +// "primaryKey":"sysUserRoleId"}],"key":"svcCont"} + + + //{"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", + // "requestObject":[{"content":[{"sysUserRoleId":"24031","updateDate":"2022-08-09 10:26:15","systemInfoCode":"TYMH", + // "sysRoleId":"17020","statusCd":"1000","systemInfoId":"727001","systemUserCode":"weaver12", + // "expDate":"2120-01-01 00:00:00","orgId":"11205","createStaff":"1","effDate":"2022-08-09 10:26:16", + // "systemUserName":"weaver12","orgCode":"GTR000593","roleCode":"weaver role","manageClass":"1000", + // "roleName":"weaver role","actType":"A","sysUserId":"20104","createDate":"2022-08-09 10:26:15"}], + // "tableName":"system_user_role","primaryKey":"sysUserRoleId"}],"key":"svcCont"} + + +// {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", +// "requestObject":[{"content":[{"sysUserRoleId":"32411","updateDate":"2022-10-24 19:10:40", +// "systemInfoCode":"TYMH","hisId":"30145","sysRoleId":"23005", +// "statusCd":"1100","hasUserRole":false,"systemInfoId":"727001", +// "systemUserCode":"weaver44","expDate":"2120-01-01 00:00:00","orgId":"17012","createStaff":"1", +// "effDate":"2022-10-24 19:10:11","systemUserName":"weaver44", +// "orgCode":"testOrg722","roleCode":"TestRole02","manageClass":"1000", +// "roleName":"TestRole02","actType":"D","sysUserId":"28025","createDate":"2022-10-24 19:10:19", +// "updateStaff":"1"}],"tableName":"system_user_role","primaryKey":"sysUserRoleId"}],"key":"svcCont"} + + /*** + * + * @param jsonArray + */ + public void updateSystemUserRoleData(JSONArray jsonArray,String tableName) { + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + String rolelevel = "2" ; //总部=2;分部=1;部门=0 + String resourcetype = "1"; //1=人力资源 + + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + + for (int i = 0; i < jsonArray.size(); i++) + { + JSONObject jsonObject = jsonArray.getJSONObject(i); + String systemInfoCode = Util.null2String(jsonObject.get("systemInfoCode")); + if("PC_OA".equalsIgnoreCase(systemInfoCode)) + { + String roleCode = Util.null2String(jsonObject.get("roleCode")).replace(" ", ""); + String roleName = Util.null2String(jsonObject.get("roleName")); + + String systemUserCode = Util.null2String(jsonObject.get("systemUserCode")); + String systemUserName = Util.null2String(jsonObject.get("systemUserName")); + + String actType = Util.null2String(jsonObject.get("actType")); + String statusCd = Util.null2String(jsonObject.get("statusCd")); + bb.writeLog("statusCd:" + statusCd + " actType:" + actType); + + try { + + String userId = ""; + String roleId = ""; + + if (StringUtils.isNotEmpty(systemUserCode)) { + String sql = " select id from hrmresource where loginid=?"; + rs.executeQuery(sql, new Object[]{systemUserCode}); + if (rs.next()) { + userId = Util.null2String(rs.getString("id")); + } + } + + if(StringUtils.isNotEmpty(roleCode)) { + + String queryRoleIdSql = "select id from hrmroles where ecology_pinyin_search=?"; + rs.executeQuery(queryRoleIdSql, new Object[]{roleCode}); + if (rs.next()) { + roleId = rs.getString("id"); + } + } + bb.writeLog("userId:" + userId + " roleId:" + roleId); + + if (StringUtils.isNotEmpty(userId) && StringUtils.isNotEmpty(roleId)) { + //查看是否已存在角色用户关系 + String releationId = ""; + String ifExistSql = "select id from hrmrolemembers where roleid=? and resourceid=?"; + rs.executeQuery(ifExistSql,new Object[]{roleId, userId}); + if (rs.next()) { + releationId = rs.getString("id"); + } + bb.writeLog("userId:" + userId + " roleId:" + roleId + "releationId:" + releationId); + if (StringUtils.isNotEmpty(releationId)) { + if ("D".equals(actType)) { + String delHrmrolemembersSql = " delete from hrmrolemembers where id = ?"; + boolean flag = rs.executeUpdate(delHrmrolemembersSql, releationId); + bb.writeLog("delHrmrolemembersSql : " + flag); + if (!flag) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","角色成员新增失败"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","角色成员系统已存在,操作类型为A或者M"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } else { + if ("A".equals(actType)) { + String insertHrmrolemembersSql = "insert into hrmrolemembers(roleid,resourceid,rolelevel,resourcetype,uuid) values(?,?,?,?,?)"; + boolean flag = rs.executeUpdate(insertHrmrolemembersSql, new Object[]{roleId, userId, rolelevel, resourcetype, UUID.randomUUID().toString()}); + bb.writeLog("insertHrmrolemembersSql : " + flag); + if (!flag) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","角色成员新增失败"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","角色成员系统不存在,操作类型为M或者D"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员角色数据,人员或者角色系统不存在"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } catch (Exception e) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","角色成员异常:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + } + } + + + //{"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", +// "requestObject":[{"content":[{"updateDate":"2022-07-27 09:32:48","systemInfoCode":"TYMH","relType":"1100","orgId":"2", +// "sysUserPostId":"123089","orgType":"1000","systemUserName":"testQian722","orgCode":"2","postName":"testXiao", +// "staffName":"testQian722","actType":"D","sysUserId":"20055","createDate":"2022-07-25 15:43:24","defaultFlag":"0", +// "staffCode":"testQian722","orgName":"Default Branch 1","sysPostId":"18007","hisId":"322425", +// "statusCd":"1100","systemInfoId":"727001","systemUserCode":"testQian722","createStaff":"1", +// "postCode":"testXiao","staffId":22021,"updateStaff":"1"}],"tableName":"system_user_post", +// "primaryKey":"sysUserPostId"}],"key":"svcCont"} + + /*** + * + * @param jsonArray + */ + public void updateSystemUserPostData(JSONArray jsonArray,String tableName) { + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + for (int i = 0; i < jsonArray.size(); i++) { + + JSONObject jsonObject = jsonArray.getJSONObject(i); + + String postCode = Util.null2String(jsonObject.get("postCode")); + String systemUserCode = Util.null2String(jsonObject.get("systemUserCode")); + String orgCode = Util.null2String(jsonObject.get("orgCode")); + + String actType = Util.null2String(jsonObject.get("actType")); + String currentDateTime = TimeUtil.getCurrentTimeString(); //当前时间 + String updateStaff = Util.null2String(jsonObject.get("updateStaff")); + if(StringUtils.isEmpty(updateStaff)){ + updateStaff = "1"; + } + + String userId = ""; + String jobtitlesId = ""; + String departmentId = ""; + + try { + if(StringUtils.isNotEmpty(orgCode)){ + String querDepartmentIdSql = " select id from hrmdepartment where departmentcode=? "; + bb.writeLog("querDepartmentIdSql:"+querDepartmentIdSql); + rs.executeQuery(querDepartmentIdSql,new Object[]{orgCode}); + if (rs.next()){ + departmentId = rs.getString("id"); + } + } + if(StringUtils.isNotEmpty(departmentId) && StringUtils.isNotEmpty(systemUserCode)) + { + String sql = " select id from hrmresource where workcode=? and departmentid = ?"; + bb.writeLog("sql:" + sql); + rs.executeQuery(sql, new Object[]{systemUserCode, departmentId}); + if (rs.next()) { + userId = Util.null2String(rs.getString("id")); + } + } + if(StringUtils.isNotEmpty(postCode)) { + String queryRoleIdSql = " select id from hrmjobtitles where jobtitlecode=? "; + bb.writeLog("queryRoleIdSql:" + queryRoleIdSql); + rs.executeQuery(queryRoleIdSql, new Object[]{postCode}); + if (rs.next()) { + jobtitlesId = rs.getString("id"); + } + } + bb.writeLog("jobtitlesId:"+jobtitlesId); + + if(StringUtils.isNotEmpty(jobtitlesId) && StringUtils.isNotEmpty(userId)) + { + if("A".equals(actType) || "M".equals(actType)) + { + String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; + bb.writeLog("updateUserJobSql:"+updateUserJobSql); + boolean flag = rs.executeUpdate(updateUserJobSql,new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}); + bb.writeLog(" updateUserJobFlag: "+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","更新人员岗位sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else if("D".equals(actType)){ + jobtitlesId = "" ; + String updateUserJobSql = " update hrmresource set jobtitle=?,modified=?,modifier=? where id=? "; + bb.writeLog("updateUserJobSql:"+updateUserJobSql); + boolean flag = rs.executeUpdate(updateUserJobSql,new Object[]{jobtitlesId,currentDateTime,updateStaff,userId}); + bb.writeLog(" updateUserJobFlag: "+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","删除人员岗位sql执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员岗位中岗位或者人员ID在系统中不存在"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }catch (Exception e){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员岗位异常:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + } + +// {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", +// "requestObject":[{"content":[{"updateDate":"2022-08-09 10:24:01", +// "systemInfoCode":"TYMH","regionNbr":"TST_PR_CSS","sysRoleId":"17020", +// "sysRoleName":"weaver role","statusCd":"1000","systemInfoId":"727001","sysRoleCode":"weaver role", +// "createStaff":"1","regionId":"36","sysRoleType":"1000","actType":"A","createDate":"2022-08-09 10:24:01"}], +// "tableName":"system_roles","primaryKey":"sysRoleId"}],"key":"svcCont"} + + +// {"updateDate":"2022-08-09 10:24:01", +// "systemInfoCode":"TYMH","regionNbr":"TST_PR_CSS","sysRoleId":"17020", +// "sysRoleName":"weaver role","statusCd":"1000","systemInfoId":"727001","sysRoleCode":"weaver role", +// "createStaff":"1","regionId":"36","sysRoleType":"1000","actType":"A","createDate":"2022-08-09 10:24:01"} + +// {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"}, +// "svcCode":"70300100030001","requestObject":[{"content":[{"updateDate":"2022-07-27 11:04:19","systemInfoCode": +// "TYMH","regionNbr":"TST_PR_CSS","sysRoleId":"17016","sysRoleName":"role727", +// "statusCd":"1000","sysRoleDesc":"test727","systemInfoId":"727001","sysRoleCode":"role727", +// "createStaff":"1","regionId":"36","sysRoleType":"1000","actType":"A","createDate":"2022-07-27 11:04:19"}], +// "tableName":"system_roles","primaryKey":"sysRoleId"}],"key":"svcCont"} + + /*** + * + * @param jsonArray + */ + public void updasteSysRoleData(JSONArray jsonArray,String tableName) { + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + String type = "0"; + String subcompanyid = "0" ; + + for (int i = 0; i < jsonArray.size(); i++) + { + JSONObject jsonObject = jsonArray.getJSONObject(i); + + //角色标识 + String sysRoleCode = Util.null2String(jsonObject.get("sysRoleCode")).replace(" ",""); + //角色名称 + String sysRoleName = Util.null2String(jsonObject.get("sysRoleName")); + //状态1000 有效,1100 无效 + String statusCd = Util.null2String(jsonObject.get("statusCd")); + //角色描述 +// String sysRoleDesc = Util.null2String(jsonObject.get("sysRoleDesc")); + //角色类型1100:管理角色,1000:普通角色 + String sysRoleType = Util.null2String(jsonObject.get("sysRoleType")); + //A:新增,M:修改 + String actType = Util.null2String(jsonObject.get("actType")); + + + bb.writeLog("sysRoleName:"+sysRoleName); + bb.writeLog("sysRoleCode:"+sysRoleCode); + +// String rolesmark = "~`~`7 "+sysRoleName+"`~`8 "+sysRoleName+"`~`~" ; +// String rolesname = "~`~`7 "+sysRoleName+"`~`8 "+sysRoleName+"`~`~" ; + + String rolesmark = sysRoleName ; + String rolesname = sysRoleName ; + + bb.writeLog("rolesmark:"+rolesmark); + bb.writeLog("rolesname:"+rolesname); + + String systemInfoCode = Util.null2String(jsonObject.get("systemInfoCode")); + if("PC_OA".equalsIgnoreCase(systemInfoCode)){ + String uuid = UUID.randomUUID().toString(); + String rolesid = ""; + try{ + if(StringUtils.isNotEmpty(sysRoleCode)){ + String queryRoleSql = "select id from hrmroles where ecology_pinyin_search=?"; + rs.executeQuery(queryRoleSql,new Object[]{sysRoleCode}); + bb.writeLog(queryRoleSql); + if (rs.next()){ + rolesid = rs.getString("id"); + } + } + bb.writeLog("rolesid:"+rolesid); + if (StringUtils.isNotEmpty(rolesid)){ + if ("M".equals(actType)) { //修改 + String updateHrmrolesSql = " update hrmroles set rolesmark=?,rolesname=? where id=?"; + boolean flag = rs.executeUpdate(updateHrmrolesSql, new Object[]{sysRoleName, sysRoleName, rolesid}); + bb.writeLog("updateHrmroles : " + flag); + if (!flag) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统角色更新SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else if("D".equals(actType)) { + int membercount = 0; + String queryHrmRolesSql = " select id from hrmrolemembers where roleid = ?"; + rs.executeQuery(queryHrmRolesSql,new Object[]{rolesid}); + while (rs.next()){ + membercount++; + } + if(membercount == 0){ + String deleteHrmRolesSql = " delete from hrmroles where id = ?"; + boolean flag = rs.executeUpdate(deleteHrmRolesSql,rolesid); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统角色删除SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统角色存在角色成员,无法删除系统角色"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","角色成员系统已存在,操作类型为A"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else { + if ("A".equals(actType)){ //新增 + String insertHrmrolesSql = " insert into hrmroles(rolesmark,rolesname,type,subcompanyid,ecology_pinyin_search,uuid) values(?,?,?,?,?,?)"; + boolean flag = rs.executeUpdate(insertHrmrolesSql,new Object[]{rolesmark,rolesname,type,subcompanyid,sysRoleCode, uuid}); + bb.writeLog("insertHrmroles : "+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","新增系统角色SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统角色系统不存在,操作类型为M或者D"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }catch (Exception e){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统角色:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + } + } + + + //{"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", + // "requestObject":[{"content":[{"updateDate":"2022-07-27 11:04:39","orgName":"Vivia","regionNbr":"TST_PR_CSS", + // "initFlag":"0","sysPostId":"18008","statusCd":"1000","systemInfoId":"727001", + // "sysPostType":"1000","orgId":"1","createStaff":"1","regionId":"36","orgCode":"LNP000001","sysPostCode":"position727", + // "actType":"A","sysPostDesc":"test727","sysPostName":"position727","createDate":"2022-07-27 11:04:39"}], + // "tableName":"system_post","primaryKey":"sysPostId"}],"key":"svcCont"} + +// {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", +// "requestObject":[{"content":[{"updateDate":"2022-07-19 00:51:32", +// "orgName":"Default Company","regionNbr":"1","initFlag":"0", +// "sysPostId":"6006","statusCd":"1000","systemInfoId":"727001", +// "sysPostType":"1000","orgId":"1","createStaff":"1","regionId":"731","orgCode":"1", +// "sysPostCode":"CASH_ADMIN","actType":"M","sysPostDesc":"CASH_ADMIN","sysPostName":"CASH_ADMIN", +// "createDate":"2020-11-13 11:02:11","updateStaff":"1"}],"tableName":"system_post","primaryKey":"sysPostId"}],"key":"svcCont"} + + + /*** + * + * @param jsonArray + */ + public void updasteSysPostData(JSONArray jsonArray,String tableName) { + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + String creater ="1"; + String modifier = "1" ; + String created = TimeUtil.getCurrentTimeString() ; + String modified = TimeUtil.getCurrentTimeString() ; + + for (int i = 0; i < jsonArray.size(); i++) + { + JSONObject jsonObject = jsonArray.getJSONObject(i); + //系统岗位编码 + String sysPostType = Util.null2String(jsonObject.get("sysPostType")); + if("1300".equals(sysPostType)) + { + String sysPostCode = Util.null2String(jsonObject.get("sysPostCode")); + //系统岗位名称 + String sysPostName = Util.null2String(jsonObject.get("sysPostName")); + //部门编码 + String orgCode = Util.null2String(jsonObject.get("orgCode")); + //系统岗位状态1000 有效 1100 无效 + String statusCd = Util.null2String(jsonObject.get("statusCd")); + //修改时间 + String updateDate = Util.null2String(jsonObject.get("updateDate")); + //修改人 + String updateStaff = Util.null2String(jsonObject.get("updateStaff")); + //创建时间 + String createDate = Util.null2String(jsonObject.get("createDate")); + //创建人 + String createStaff = Util.null2String(jsonObject.get("createStaff")); + //A:新增,M:修改 + String actType = Util.null2String(jsonObject.get("actType")); + + //String allname = "~`~`7 " + sysPostName + "`~`8 " + sysPostName + "`~`~"; + + String jobtitlemark = sysPostName; + String jobtitlename = sysPostName; + + try { + String departmentId = ""; + if(StringUtils.isNotEmpty(orgCode)){ + String querDepartmentIdSql = "select id from hrmdepartment where departmentcode=?"; + rs.executeQuery(querDepartmentIdSql, new Object[]{orgCode}); + if (rs.next()) { + departmentId = rs.getString("id"); + } + } + + String groupsid = ""; + String jobgroupname = "DITO_MSS_LEADERSHIP"; + String sql = " select * from hrmjobgroups where jobgroupname like '%"+jobgroupname+"%'"; + rs.executeQuery(sql); + if (rs.next()) { + groupsid = Util.null2String(rs.getString("id")); + } + + String jobactivitiesid = ""; + String jobactivityname = "MSS_LEADERSHIP"; + if (StringUtils.isNotEmpty(groupsid) && StringUtils.isNotEmpty(jobactivityname)) { + sql = " select id from hrmjobactivities where jobgroupid = ? and jobactivityname like '%" + jobactivityname + "%'"; + rs.executeQuery(sql, new Object[]{groupsid}); + if (rs.next()) { + jobactivitiesid = Util.null2String(rs.getString("id")); + } + } + + String jobtitleid = ""; + if (StringUtils.isNotEmpty(jobactivitiesid)) + { + String queryRoleSql = " select id from hrmjobtitles where jobtitlecode =? and jobactivityid = ?"; + rs.executeQuery(queryRoleSql, new Object[]{sysPostCode, jobactivitiesid}); + if (rs.next()) { + jobtitleid = rs.getString("id"); + } + } + + if (StringUtils.isNotEmpty(jobtitleid)) + { + if ("M".equals(actType)) { //修改 + String updateHrmjobactivitiesSql = "update hrmjobtitles set jobtitlemark=?,jobtitlename=?,modified=?,modifier=? where id=?"; + boolean flag = rs.executeUpdate(updateHrmjobactivitiesSql, new Object[]{jobtitlemark, jobtitlename, modified, modifier, jobtitleid}); + bb.writeLog("insertHrmjobactivitiesSql flag:" + flag); + if (!flag) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统岗位更新SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } else if ("D".equals(actType)) { + String canceled = "1"; + String updateHrmjobactivitiesSql = "update hrmjobtitles set jobtitlemark=?,jobtitlename=?,modified=?,modifier=?,canceled = ? where id=?"; + boolean flag = rs.executeUpdate(updateHrmjobactivitiesSql,new Object[]{jobtitlemark, jobtitlename, modified, modifier, canceled, jobtitleid}); + bb.writeLog("insertHrmjobactivitiesSql flag:" + flag); + if (!flag) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统岗位封存SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统岗位系统已存在,操作类型为A"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + if ("A".equals(actType)) { //新增 + String uuid = UUID.randomUUID().toString(); + String insertHrmjobactivitiesSql = " insert into hrmjobtitles(jobtitlemark,jobtitlename,jobactivityid,jobdepartmentid,jobtitlecode,created,creater,modified,modifier,uuid) values(?,?,?,?,?,?,?,?,?,?)"; + boolean flag = rs.executeUpdate(insertHrmjobactivitiesSql, new Object[]{jobtitlemark, jobtitlename, jobactivitiesid, departmentId, sysPostCode, created, creater, modified, modifier, uuid}); + bb.writeLog("insertHrmjobactivitiesSql flag:" + flag); + if (!flag) { + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统岗位新增SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统岗位系统不存在,操作类型为D或者M"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }catch (Exception e) { + + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","系统角色:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + + } + } + } + } + + + // {"authenticationInfo":{"sysUserPostId":"37484","sysUserId":"1","key":"authenticationInfo"},"svcCode":"70300100030001", + // "requestObject":[{"content":[{"statusDate":"2022-08-09 09:47:54","updateDate":"2022-08-09 09:47:54", + // "staffCode":"fanweiceshi12","orgName":"yhwgfz","regionNbr":"TST_PR_CSS", + // "staffAccount":"fanweiceshi12","statusCd":"1000","staffType":"1000","orgId":"11205","createStaff":"1", + // "eMail":"123453243132312","mobilePhone":"44553321","commonRegionId":"36","orgCode":"GTR000593", + // "staffName":"fanweiceshi12","actType":"A","sysUserId":20102,"partyId":"-1","staffId":"22061", + // "createDate":"2022-08-09 09:47:54","updateStaff":"1"}],"tableName":"staff","primaryKey":"staffId"}],"key":"svcCont"} + + public void updateStaffData(JSONArray jsonArray,String tableName){ + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String nowDateTime = sdf.format(new Date()); + + String locationid = "2" ; + String seclevel = "20" ; + String createrid = "1" ; + String lastmodid = "1" ; + String creator = "1"; + String systemlanguage = "8" ; + String pwd = "1"; + String password = DigestUtils.md5Hex(pwd).toUpperCase(); //MD5加密 + bb.writeLog("password:"+password); + + String currentDate = TimeUtil.getCurrentDateString();//当前日期 + String currentDateTime = TimeUtil.getCurrentTimeString(); //当前时间 + bb.writeLog("currentDate:"+currentDate); + + String jobTitleId = "" ; + String defaultJobCode = PropBean.getUfPropValue("defaultJobCode"); + if(StringUtils.isNotEmpty(defaultJobCode)){ + String sql = " select id from hrmjobtitles where jobtitlecode = ?" ; + rs.executeQuery(sql,new Object[]{defaultJobCode}); + if(rs.next()){ + jobTitleId = Util.null2String(rs.getString("id")); + } + } + + for(int i=0;i dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员更新SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else if("D".equals(actType)){ + status = "5"; + String userUpdateSql = " update hrmresource set status=? where workcode=? "; + bb.writeLog("userUpdateSql:"+userUpdateSql); + boolean flag = rs.executeUpdate(userUpdateSql,new Object[]{status,staffCode}); + bb.writeLog("flag:"+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员离职SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员在系统中已存在,操作类型为A"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }else{ + if("A".equalsIgnoreCase(actType)) + { + rs.executeProc("HrmResourceMaxId_Get", ""); + rs.next(); + String id = "" + rs.getInt(1); + bb.writeLog("id:"+id); + + if(StringUtils.isNotEmpty(id)) + { + 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(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + bb.writeLog("userInsertSql:"+userInsertSql); + boolean flag = rs.executeUpdate(userInsertSql,new Object[]{id,staffCode,password,staffCode,lastname,deptId,subcompanyid1, + creator,email,pwdSmsTel,jobTitleId,status,loginedNum,systemlanguage,currentDate,currentDate,currentDateTime,currentDateTime, + locationid,seclevel,createrid,lastmodid}); + bb.writeLog("flag:"+flag); + if(!flag){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员新增SQL执行错误"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员系统中不存在,操作类型为M或者D"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + }else{ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人员所属部门为空"); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + }catch (Exception e){ + Map dataMap = new HashMap(); + dataMap.put("syndate",nowDateTime); + dataMap.put("reqmessage",jsonObject.toJSONString()); + dataMap.put("errmessage","人力资源异常:"+e.getMessage()); + dataMap.put("systable",tableName); + recordErrorData(dataMap); + } + } + } + + + /*** + * + */ + public void recordErrorData(Map dataMap){ + + String uftable = "uf_orgmq" ; + RecordSet rs = new RecordSet(); + BaseBean bb = new BaseBean(); + ModeRightInfo mode=new ModeRightInfo(); + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");//当前时间日期 + SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss"); + + int formmodeid = 0 ; + String modedatacreater = "1" ; + String modedatacreatertype = "0" ; + String modedatacreatedate = sdf1.format(new Date()); + String modedatacreatetime = sdf2.format(new Date()); + String uuid = UUID.randomUUID().toString(); + + try { + + String sql =" select k.id from modeinfo k \n" + + " inner join workflow_bill l on formid = l.id\n" + + " where l.tablename = ? " ; + rs.executeQuery(sql,new Object[]{uftable}); + if(rs.next()){ + formmodeid = Util.getIntValue(Util.null2String(rs.getString("id"))); + } + + String syndate = Util.null2String(dataMap.get("syndate")); + String reqmessage = Util.null2String(dataMap.get("reqmessage")); + String errmessage = Util.null2String(dataMap.get("errmessage")); + String systable = Util.null2String(dataMap.get("systable")); + + int bool = 0; + sql =" insert into "+uftable+"(uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,syndate,reqmessage,errmessage,systable)" + + " values(?,?,?,?,?,?,?,?,?,?)" ; + boolean flag = rs.executeUpdate(sql,new Object[]{uuid,formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,syndate,reqmessage,errmessage,systable}); + bb.writeLog("sql;"+sql); + if(flag){ + bool++; + } + bb.writeLog("bool;"+bool); + if(bool>0) + { + String dataid = ""; + sql = " select * from "+uftable+" where uuid=? "; + bb.writeLog("sql:" + sql); + rs.executeQuery(sql,new Object[]{uuid}); + if (rs.next()) { + dataid = Util.null2String(rs.getString("id")); + } + bb.writeLog("sql:" + sql); + bb.writeLog("dataid:" + dataid); + bb.writeLog("modeid:" + formmodeid); + if (StringUtils.isNotEmpty(dataid)) + { + mode.setNewRight(true); + mode.editModeDataShare(Integer.valueOf(modedatacreater), formmodeid, Integer.parseInt(dataid)); + } + } + }catch (Exception e){ + bb.writeLog("e:"+e); + } + } + + /*** + * 更新系统组织换成 + */ + public void removeCache(){ + ResourceComInfo resComInfo; + DepartmentComInfo deptComInfo; + try { + resComInfo = new ResourceComInfo(); + resComInfo.removeResourceCache(); + deptComInfo = new DepartmentComInfo(); + deptComInfo.removeCompanyCache(); + } catch (Exception e) { + new BaseBean().writeLog(e); + } + } + +} diff --git a/src/weaver/interfaces/util/ReadExcel.java b/src/weaver/interfaces/util/ReadExcel.java new file mode 100644 index 00000000..22c5de16 --- /dev/null +++ b/src/weaver/interfaces/util/ReadExcel.java @@ -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> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) { + List> varList = new ArrayList>(); + 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> readExcel2003(String filepath, String filename, int startrow, int startcol, int sheetnum) { + List> varList = new ArrayList>(); + 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 varpd = new HashMap(); + // 行 + 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> readExcel2007(String filepath, String filename, int startrow, int startcol, int sheetnum) { + List> varList = new ArrayList>(); + 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 varpd = new HashMap(); + // 得到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; + } + +} +