diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..a1757ae5 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/haojing.iml b/.idea/haojing.iml index b4dc7173..d901a3c5 100644 --- a/.idea/haojing.iml +++ b/.idea/haojing.iml @@ -10,5 +10,6 @@ + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 00000000..6560a989 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/classbean.xml b/.idea/libraries/classbean.xml new file mode 100644 index 00000000..d6f55c76 --- /dev/null +++ b/.idea/libraries/classbean.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml new file mode 100644 index 00000000..234c843d --- /dev/null +++ b/.idea/libraries/lib.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/lib1.xml b/.idea/libraries/lib1.xml new file mode 100644 index 00000000..c81cf24c --- /dev/null +++ b/.idea/libraries/lib1.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/com/api/dito/web/SsoLoginAction.java b/src/com/api/dito/web/SsoLoginAction.java new file mode 100644 index 00000000..ac472912 --- /dev/null +++ b/src/com/api/dito/web/SsoLoginAction.java @@ -0,0 +1,12 @@ +package com.api.dito.web; + + +import javax.ws.rs.Path; + +/** + * @author Lee + */ +@Path("/dito/ssologin/action") +public class SsoLoginAction extends com.engine.dito.web.SsoLoginAction { +} + diff --git a/src/com/engine/dito/constant/DitoConstant.java b/src/com/engine/dito/constant/DitoConstant.java new file mode 100644 index 00000000..0ca6222b --- /dev/null +++ b/src/com/engine/dito/constant/DitoConstant.java @@ -0,0 +1,40 @@ +package com.engine.dito.constant; + +/** + * @version 1.0 + * @Title ecology-9 + * @Company 泛微软件 + * @CreateDate 2022/10/26 + * @Description ${description} + * @Author Lee + */ +public class DitoConstant { + /** + * 单点登录token缓存key + */ + public static final String SSO_LOGIN_ACCESS_TOKEN = "SSO_LOGIN_ACCESS_TOKEN"; + public static final String SSO_LOGIN_USER_ACCESS_TOKEN = "USER_ACCESS_TOKEN_"; + /** + * 单点登录接口返回成功状态码 + */ + public static final String SUCCESS_RESULT_CODE = "0"; + /** + * 同步标识:0全量,1增量 + */ + public static final String SYNC_ALL = "0"; + public static final String SYNC_INCREMENT = "1"; + /** + * 是否有效:0有效,1无效 + */ + public static final String EFFECTIVE_YES = "0"; + public static final String EFFECTIVE_NO = "1"; + /** + * 0 -添加流程1 -修改流程名称(不能修改流程代码)2 -删除流程 + */ + public static final String ACTION_TYPE_ADD = "0"; + public static final String ACTION_TYPE_DELETE = "2"; + /** + * 同步作用:0流程推送--有其他用途可追加 + */ + public static final String TIME_NODE_USE_WORKFLOW_SYNC = "0"; +} diff --git a/src/com/engine/dito/service/MobileSsoLoginService.java b/src/com/engine/dito/service/MobileSsoLoginService.java new file mode 100644 index 00000000..9eb17ac5 --- /dev/null +++ b/src/com/engine/dito/service/MobileSsoLoginService.java @@ -0,0 +1,39 @@ +package com.engine.dito.service; + +import weaver.hrm.User; + +import java.util.Map; + +/** + * @version 1.0 + * @Title ecology-9 + * @Company 泛微软件 + * @CreateDate 2022/10/26 + * @Description ${description} + * @Author Lee + */ +public interface MobileSsoLoginService { + /** + * 获取应用accessToken + * @param paramMap + * @param paramUser + * @return + */ + Map getAccessToken(Map paramMap, User paramUser); + + /** + * 获取userAccessToken + * @param paramMap + * @param user + * @return + */ + Map getUserAccessToken(Map paramMap, User user); + + /** + * 获取用户信息 + * @param paramMap + * @param user + * @return + */ + Map getUserInfo(Map paramMap, User user); +} diff --git a/src/com/engine/dito/service/impl/MobileSsoLoginServiceImpl.java b/src/com/engine/dito/service/impl/MobileSsoLoginServiceImpl.java new file mode 100644 index 00000000..d958aae4 --- /dev/null +++ b/src/com/engine/dito/service/impl/MobileSsoLoginServiceImpl.java @@ -0,0 +1,173 @@ +package com.engine.dito.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.cloudstore.dev.api.util.Util_DataCache; +import com.engine.core.impl.Service; +import com.engine.dito.service.MobileSsoLoginService; +import org.apache.commons.lang3.StringUtils; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.util.HttpUtils; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import static com.engine.dito.constant.DitoConstant.*; + + +/** + * @version 1.0 + * @Title ecology-9 + * @Company 泛微软件 + * @CreateDate 2022/10/26 + * @Description 单点登录 + * @Author Lee + */ +public class MobileSsoLoginServiceImpl extends Service implements MobileSsoLoginService { + @Override + public Map getUserAccessToken(Map paramMap, User user) { + Map dataMap = new HashMap<>(); + BaseBean baseBean = new BaseBean(); + //从缓存中获取用户accessToken + String userAccessTokenCache = (String) Util_DataCache.getObjVal(SSO_LOGIN_USER_ACCESS_TOKEN + user.getLoginid()); + if (returnTokenWithCache(dataMap, userAccessTokenCache)) { + return dataMap; + } + //请求链接地址 + String userAccessTokenUrl = baseBean.getPropValue("weaverssologin", "userAccessTokenUrl"); + dataMap.put("api_status", false); + try { + String authCode = (String) paramMap.get("auth_code"); + //获取应用access_token + String accessToken = getAccessToken(); + HashMap requestMap = new HashMap<>(); + requestMap.put("auth_code", authCode); + requestMap.put("access_token", accessToken); + //请求获取用户accessToken + String data = HttpUtils.doPost(userAccessTokenUrl, requestMap, null); + JSONObject dataJson = JSONObject.parseObject(data); + String resultCode = dataJson.getString("resultCode"); + JSONObject resultJson = dataJson.getJSONObject("result"); + if (resultJson != null && SUCCESS_RESULT_CODE.equals(resultCode)) { + baseBean.writeLog("获取userAccessToken", resultJson.toString()); + String userAccessToken = resultJson.getString("access_token"); + String expiresIn = resultJson.getString("expires_in"); + String refreshToken = resultJson.getString("refresh_token"); + //access_token加缓存 + Util_DataCache.setObjValWithRedis(SSO_LOGIN_ACCESS_TOKEN, refreshToken, Integer.parseInt(expiresIn)); + Util_DataCache.setObjValWithRedis(SSO_LOGIN_USER_ACCESS_TOKEN + user.getLoginid(), userAccessToken, Integer.parseInt(expiresIn)); + dataMap.put("api_status", true); + dataMap.put("data", resultJson.getInnerMap()); + return dataMap; + } + baseBean.writeLog("获取userAccessToken失败", dataJson.toString()); + return dataMap; + } catch (Exception e) { + baseBean.writeLog("获取userAccessToken异常", e.getMessage()); + dataMap.put("api_status", false); + dataMap.put("errorMsg", e.getMessage()); + return dataMap; + } + } + + @Override + public Map getUserInfo(Map paramMap, User user) { + Map dataMap = new HashMap<>(); + BaseBean baseBean = new BaseBean(); + try { + String authCode = (String) paramMap.get("auth_code"); + String accessToken = (String) Util_DataCache.getObjVal(SSO_LOGIN_ACCESS_TOKEN); + if (StringUtils.isEmpty(accessToken)) { + accessToken = getAccessToken(); + } +// String userAccessToken = (String) Util_DataCache.getObjVal(SSO_LOGIN_USER_ACCESS_TOKEN + user.getLoginid()); + //请求链接地址 + String userInfoUrl = baseBean.getPropValue("weaverssologin", "userInfoUrl"); + dataMap.put("api_status", false); + HashMap requestMap = new HashMap<>(); + requestMap.put("auth_code", authCode); + requestMap.put("access_token", accessToken); + String data = HttpUtils.doPost(userInfoUrl, requestMap, null); + JSONObject dataJson = JSONObject.parseObject(data); + String resultCode = dataJson.getString("resultCode"); + JSONObject resultJson = dataJson.getJSONObject("result"); + if (resultJson != null && SUCCESS_RESULT_CODE.equals(resultCode)) { + baseBean.writeLog("获取用户信息状态码:", resultCode); + dataMap.put("api_status", true); + dataMap.put("data", resultJson.getInnerMap()); + return dataMap; + } + baseBean.writeLog("获取用户信息失败", dataJson.toString()); + return dataMap; + } catch (Exception e) { + baseBean.writeLog("获取用户信息异常", e.getMessage()); + dataMap.put("api_status", false); + dataMap.put("errorMsg", e.getMessage()); + return dataMap; + } + } + + + @Override + public Map getAccessToken(Map paramMap, User paramUser) { + Map dataMap = new HashMap<>(); + BaseBean baseBean = new BaseBean(); + String accessTokenCache = (String) Util_DataCache.getObjVal(SSO_LOGIN_ACCESS_TOKEN); + if (returnTokenWithCache(dataMap, accessTokenCache)) { + return dataMap; + } + //请求链接地址 + String accessTokenUrl = baseBean.getPropValue("weaverssologin", "accessTokenUrl"); + String appKey = baseBean.getPropValue("weaverssologin", "appKey"); + String appSecret = baseBean.getPropValue("weaverssologin", "appSecret"); + dataMap.put("api_status", false); + try { + HashMap requestMap = new HashMap<>(); + requestMap.put("appKey", appKey); + requestMap.put("appSecret", appSecret); + String data = HttpUtils.doPost(accessTokenUrl, requestMap, null); + JSONObject dataJson = JSONObject.parseObject(data); + String resultCode = dataJson.getString("resultCode"); + JSONObject resultJson = dataJson.getJSONObject("result"); + if (resultJson != null && SUCCESS_RESULT_CODE.equals(resultCode)) { + baseBean.writeLog("获取accessToken", resultJson.toString()); + String accessToken = resultJson.getString("access_token"); + String expiresIn = resultJson.getString("expires_in"); + Util_DataCache.setObjValWithRedis(SSO_LOGIN_ACCESS_TOKEN, accessToken, Integer.parseInt(expiresIn)); + dataMap.put("api_status", true); + dataMap.put("data", resultJson.getInnerMap()); + return dataMap; + } + baseBean.writeLog("获取accessToken失败", dataJson.toString()); + return dataMap; + } catch (Exception e) { + baseBean.writeLog("获取accessToken异常", e.getMessage()); + dataMap.put("api_status", false); + dataMap.put("errorMsg", e.getMessage()); + return dataMap; + } + } + + private boolean returnTokenWithCache(Map dataMap, String userAccessTokenCache) { + if (StringUtils.isNotEmpty(userAccessTokenCache)) { + dataMap.put("api_status", true); + Map resultMap = new HashMap<>(); + resultMap.put("access_token", userAccessTokenCache); + dataMap.put("data", resultMap); + return true; + } + return false; + } + + private String getAccessToken() throws IOException { + String accessToken = (String) Util_DataCache.getObjVal(SSO_LOGIN_ACCESS_TOKEN); + if (StringUtils.isEmpty(accessToken)) { + Map accessTokenMap = getAccessToken(null, null); + Map data = (Map) accessTokenMap.get("data"); + accessToken = (String) data.get("access_token"); + } + return accessToken; + } + +} diff --git a/src/com/engine/dito/web/SsoLoginAction.java b/src/com/engine/dito/web/SsoLoginAction.java new file mode 100644 index 00000000..ecf3e792 --- /dev/null +++ b/src/com/engine/dito/web/SsoLoginAction.java @@ -0,0 +1,81 @@ +package com.engine.dito.web; + +import com.alibaba.fastjson.JSONObject; +import com.api.projectlistdemo2.ProjectListDemoAction; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.dito.service.MobileSsoLoginService; +import com.engine.dito.service.impl.MobileSsoLoginServiceImpl; +import com.engine.projectlistdemo2.service.ProjectListService; +import com.engine.projectlistdemo2.service.impl.ProjectListServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import java.util.HashMap; +import java.util.Map; + +/** + * @author Lee + */ +public class SsoLoginAction { + private MobileSsoLoginService getService() { + return ServiceUtil.getService(MobileSsoLoginServiceImpl.class); + } + + @GET + @Path("/getAccessToken") + @Produces({"application/json"}) + public String getAccessToken(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getService().getAccessToken(ParamUtil.request2Map(request), user); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + + @POST + @Path("/getUserAccessToken") + @Produces({"application/json"}) + public String getUserAccessToken(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getService().getUserAccessToken(ParamUtil.request2Map(request), user); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } + + @POST + @Path("/getUserInfo") + @Produces({"application/json"}) + public String getUserInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap<>(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getService().getUserInfo(ParamUtil.request2Map(request), user); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} + diff --git a/src/weaver/interfaces/job/WorkflowSyncCronJob.java b/src/weaver/interfaces/job/WorkflowSyncCronJob.java new file mode 100644 index 00000000..38e4603f --- /dev/null +++ b/src/weaver/interfaces/job/WorkflowSyncCronJob.java @@ -0,0 +1,202 @@ +package weaver.interfaces.job; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.TimeUtil; +import weaver.interfaces.schedule.BaseCronJob; +import weaver.interfaces.util.HttpUtils; + +import java.util.*; + +import static com.engine.dito.constant.DitoConstant.*; + +/** + * @version 1.0 + * @Title ecology-9 + * @Company 泛微软件 + * @CreateDate 2022/10/27 + * @Description 新建流程推送门(包含发起人权限) + * @Author Lee + */ +public class WorkflowSyncCronJob extends BaseCronJob { + /** + * 推送类型(0全量、1增量) + */ + private String syncType; + + @Override + public void execute() { + BaseBean bb = new BaseBean(); + bb.writeLog("开始推送流程"); + try { + //推送流程url + String synchronizeFlowUrl = bb.getPropValue("PORTAL_INFO", "synchronizeFlowUrl"); + //同步人员权限url + String synchronizeUserUrl = bb.getPropValue("PORTAL_INFO", "synchronizeUserUrl"); + //新建流程推送到目录code + String catalogueCode = bb.getPropValue("PORTAL_INFO", "catalogueCode"); + String workflowAuthTable = bb.getPropValue("PORTAL_INFO", "workflowAuthTable"); + String timeNodeTable = bb.getPropValue("PORTAL_INFO", "timeNodeTable"); + String accountName = bb.getPropValue("PORTAL_INFO", "accountName"); + String password = bb.getPropValue("PORTAL_INFO", "password"); + String timeNodeFormModeId = bb.getPropValue("PORTAL_INFO", "timeNodeFormModeId"); + //全量同步使用全量同步方法 + if (SYNC_ALL.equals(syncType)) { + String currentTime = TimeUtil.getCurrentTimeString(); + allSynchronizeWorkflow(bb, synchronizeFlowUrl, synchronizeUserUrl, catalogueCode, workflowAuthTable, accountName, password); + writeTimeNode(timeNodeTable, currentTime, SYNC_ALL, TIME_NODE_USE_WORKFLOW_SYNC, timeNodeFormModeId); + } + //增量同步使用增量同步方法 + if (SYNC_INCREMENT.equals(syncType)) { + String currentTime = TimeUtil.getCurrentTimeString(); + IncrementSynchronizeWorkflow(bb, synchronizeFlowUrl, synchronizeUserUrl, catalogueCode, workflowAuthTable, timeNodeTable, accountName, password); + writeTimeNode(timeNodeTable, currentTime, SYNC_INCREMENT, TIME_NODE_USE_WORKFLOW_SYNC, timeNodeFormModeId); + } + + } catch (Exception e) { + bb.writeLog("流程推送异常", e.getMessage()); + } + } + + private void IncrementSynchronizeWorkflow(BaseBean bb, String synchronizeFlowUrl, String synchronizeUserUrl, String cataCode, String workflowAuthTable, String timeNodeTable, String accountName, String password) { + RecordSet recordSet = new RecordSet(); + //查询时间节点表,上次流程推送增量同步的时间 + String timeSql = "select tbsj from " + timeNodeTable + " where tblx=? and zy=? order by tbsj desc"; + recordSet.executeQuery(timeSql, SYNC_INCREMENT, TIME_NODE_USE_WORKFLOW_SYNC); + String preTime = ""; + if (recordSet.next()) { + preTime = recordSet.getString("tbsj"); + } + syncWorkflowByCondition(bb, synchronizeFlowUrl, synchronizeUserUrl, cataCode, workflowAuthTable, accountName, password, preTime); + } + + // 全量同步 + private void allSynchronizeWorkflow(BaseBean bb, String synchronizeFlowUrl, String synchronizeUserUrl, String cataCode, String workflowAuthTable, String accountName, String password) { + syncWorkflowByCondition(bb, synchronizeFlowUrl, synchronizeUserUrl, cataCode, workflowAuthTable, accountName, password, null); + } + + /** + * 根据不同条件请求同步方法 + */ + private void syncWorkflowByCondition(BaseBean bb, String synchronizeFlowUrl, String synchronizeUserUrl, String cataCode, String workflowAuthTable, String accountName, String password, String timeCondition) { + RecordSet recordSet = new RecordSet(); + ArrayList> addWorkflowList = new ArrayList<>(); + ArrayList> delWorkflowList = new ArrayList<>(); + ArrayList> addUserList = new ArrayList<>(); + ArrayList> delUserList = new ArrayList<>(); + //查询建模所有流程 + String workflowSql = "SELECT DISTINCT workflowselect as flowcode,workflowname as flowname,effective FROM " + workflowAuthTable + + " WHERE effective IN (SELECT DISTINCT effective FROM " + workflowAuthTable + ")"; + if (StringUtils.isNotEmpty(timeCondition)) { + workflowSql += " AND modedatamodifydatetime >=" + timeCondition; + } + recordSet.execute(workflowSql); + //区分有效和无效的流程 + while (recordSet.next()) { + String effective = recordSet.getString("effective"); + if (EFFECTIVE_YES.equals(effective)) { + String flowcode = recordSet.getString("flowcode"); + String flowname = recordSet.getString("flowname"); + //拼接有效流程请求参数 + concatWorkflowCondition(cataCode, flowcode, flowname, ACTION_TYPE_ADD, addWorkflowList); + //有效流程关联的人员参数拼接 + getUserConditionByWorkflow(cataCode, flowcode, flowname, ACTION_TYPE_ADD, addUserList, timeCondition); + } else if (EFFECTIVE_NO.equals(effective)) { + String flowcode = recordSet.getString("flowcode"); + String flowname = recordSet.getString("flowname"); + //拼接无效流程请求参数 + concatWorkflowCondition(cataCode, flowcode, flowname, ACTION_TYPE_DELETE, delWorkflowList); + //无效流程关联的人员参数拼接 + getUserConditionByWorkflow(cataCode, flowcode, flowname, ACTION_TYPE_DELETE, delUserList, timeCondition); + } + } + HashMap headers = new HashMap<>(); + headers.put("Authorization", "Basic " + Base64.getUrlEncoder().encodeToString((accountName + ":" + password).getBytes())); + //调用流程同步方法 + if (CollectionUtils.isNotEmpty(addWorkflowList)) { + for (Map workflowMap : addUserList) { + String data = HttpUtils.doPost(synchronizeFlowUrl, workflowMap, headers); + bb.writeLog("增加流程", data); + } + } + if (CollectionUtils.isNotEmpty(delWorkflowList)) { + for (Map workflowMap : delWorkflowList) { + String data = HttpUtils.doPost(synchronizeFlowUrl, workflowMap, headers); + bb.writeLog("删除流程", data); + } + } + //调用人员同步方法 + if (CollectionUtils.isNotEmpty(addUserList)) { + for (Map workflowMap : addUserList) { + String data = HttpUtils.doPost(synchronizeUserUrl, workflowMap, headers); + bb.writeLog("增加人员", data); + } + } + if (CollectionUtils.isNotEmpty(delUserList)) { + for (Map workflowMap : delUserList) { + String data = HttpUtils.doPost(synchronizeUserUrl, workflowMap, headers); + bb.writeLog("删除人员", data); + } + } + } + + private void concatWorkflowCondition(String cataCode, String flowcode, String flowname, String actionType, ArrayList> workflowList) { + Map workflowMap = new HashMap<>(); + workflowMap.put("flowcode", flowcode); + workflowMap.put("flowname", flowname); + workflowMap.put("actionType", actionType); + workflowMap.put("cataCode", cataCode); + workflowMap.put("urPC", "/bpm/workflow/request/CreateRequestForward.jsp?workflowid=" + flowcode); + workflowMap.put("urApp", "/bpm/spa/workflow/static4mobileform/index.html#/req?iscreate=1&workflowid=" + flowcode); + workflowList.add(workflowMap); + } + + private void getUserConditionByWorkflow(String cataCode, String flowcode, String flowname, String actionType, ArrayList> userList, String timeCondition) { + Map usermap = new HashMap<>(); + StringBuilder staffCodeBuilder = new StringBuilder(); + String userSql = "SELECT workcode as staffCode FROM uf_workflow_aut WHERE workflowselect=?"; + if (StringUtils.isNotEmpty(timeCondition)) { + userSql += " AND modedatamodifydatetime >=" + timeCondition; + } + RecordSet rs = new RecordSet(); + rs.executeQuery(userSql, flowcode); + while (rs.next()) { + staffCodeBuilder.append(rs.getString("staffCode")).append("|"); + } + usermap.put("flowcode", flowcode); + usermap.put("flowname", flowname); + //同步所需参数一并拼接 + usermap.put("actionType", actionType); + usermap.put("cataCode", cataCode); + usermap.put("staffCode", staffCodeBuilder.toString()); + userList.add(usermap); + } + + /** + * 将同步时间写入时间节点表 + * + * @param timeNodeTable 表名 + * @param syncType 同步类型 + * @param timeNodeUse 同步作用 + * @param formmodeid 模块id + */ + private void writeTimeNode(String timeNodeTable, String currentTime, String syncType, String timeNodeUse, String formmodeid) { + RecordSet recordSet = new RecordSet(); + String sql = "insert into " + timeNodeTable + "(id,formmodeid,tblx,tbsj,zy) values(?,?,?,?,?)"; + recordSet.executeUpdate(sql, UUID.randomUUID(), formmodeid, syncType, currentTime, timeNodeUse); + } + +// 增量同步 + //接口查询portal_oa已同步的流程 + //查询ecology有效的流程 + //对比,portal_oa需要删除的流程 + //portal_oa需要新同步的流程 + //查询流程关联的workcode,以"|"为分隔符拼接成字符串 + //根据需要删除的流程数量循环调用同步方法 + //根据要新同步的流程数量循环调用同步方法 + //调用人员同步方法 + + +} diff --git a/src/weaver/interfaces/mq/RocketMsgListener.java b/src/weaver/interfaces/mq/RocketMsgListener.java deleted file mode 100644 index 72f1ed7b..00000000 --- a/src/weaver/interfaces/mq/RocketMsgListener.java +++ /dev/null @@ -1,40 +0,0 @@ -package weaver.interfaces.mq; - -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.common.message.MessageExt; -import weaver.general.BaseBean; - -import java.io.UnsupportedEncodingException; -import java.util.List; - - -public class RocketMsgListener implements MessageListenerConcurrently { - @Override - public ConsumeConcurrentlyStatus consumeMessage(List msgs, ConsumeConcurrentlyContext consumeConcurrentlyContext) { - BaseBean bb = new BaseBean(); - MessageExt msg = msgs.get(0); - - RocketmqUtil rocketmqUtil = new RocketmqUtil(); - - try { - - bb.writeLog("Consumer---3----"+new String(msg.getBody())); - String msgdata = new String(msg.getBody(),"UTF-8"); - if(!"".equals(msgdata)) - { - String data = msgdata.substring(msgdata.indexOf("{")); - int errcount = rocketmqUtil.updateOrgData(data); - bb.writeLog("Consumer---errcount---:"+errcount); - } - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - bb.writeLog("Consumer---UnsupportedEncodingException---e:"+e); - return ConsumeConcurrentlyStatus.RECONSUME_LATER; - } - return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; - - } - -} diff --git a/src/weaver/interfaces/mq/RocketmqServlet.java b/src/weaver/interfaces/mq/RocketmqServlet.java deleted file mode 100644 index 923caf16..00000000 --- a/src/weaver/interfaces/mq/RocketmqServlet.java +++ /dev/null @@ -1,117 +0,0 @@ -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 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 = bb.getPropValue("PORTAL_INFO","consumerGroup"); - bb.writeLog("consumerGroup:"+consumerGroup); - DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(consumerGroup); - - String namesrvAddr = bb.getPropValue("PORTAL_INFO","namesrvAddr"); - bb.writeLog("namesrvAddr:"+namesrvAddr); - consumer.setNamesrvAddr(namesrvAddr); - - String instanceName = bb.getPropValue("PORTAL_INFO","instanceName"); - bb.writeLog("instanceName:"+instanceName); - consumer.setInstanceName(instanceName); - consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET); - //consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET); - - String topic = bb.getPropValue("PORTAL_INFO","topic"); - String subExpression = bb.getPropValue("PORTAL_INFO","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 deleted file mode 100644 index 013cbe8b..00000000 --- a/src/weaver/interfaces/mq/RocketmqUtil.java +++ /dev/null @@ -1,1314 +0,0 @@ -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 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 = bb.getPropValue("PORTAL_INFO","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/HttpUtils.java b/src/weaver/interfaces/util/HttpUtils.java new file mode 100644 index 00000000..3e3cee8a --- /dev/null +++ b/src/weaver/interfaces/util/HttpUtils.java @@ -0,0 +1,116 @@ +package weaver.interfaces.util; + +import com.google.gson.Gson; +import info.monitorenter.util.Entry; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.http.Header; +import org.apache.http.HttpEntity; +import org.apache.http.StatusLine; +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.HttpClients; +import org.apache.http.util.EntityUtils; +import org.springframework.util.Assert; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +@Slf4j +public class HttpUtils { + + public static String doPost(String url) { + return doPost(url, null, null); + } + + public static final Gson gson = new Gson(); + + public static String doPost(String url, Map paramMap, Map headers) { + Assert.hasText(url, "Url is empty!"); + CloseableHttpClient httpClient = HttpClients.createDefault(); + try { + HttpPost httpPost = new HttpPost(url); + if (MapUtils.isNotEmpty(paramMap)) { + StringEntity entity = new StringEntity(gson.toJson(paramMap), "UTF-8"); + entity.setContentEncoding("UTF-8"); + entity.setContentType("application/json"); + httpPost.setEntity(entity); + } + if (MapUtils.isNotEmpty(headers)) { + for (String key : headers.keySet()) { + httpPost.addHeader(key, headers.get(key)); + } + } + + CloseableHttpResponse response = httpClient.execute(httpPost); + String result; + result = getString(response); + + return result; + } catch (Exception e) { + throw new RuntimeException("Exception occurred when send post request[url:" + url + + ",paramMap:" + paramMap + "]!", e); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + //np + } + } + } + + private static String getString(CloseableHttpResponse response) throws IOException { + String result; + try { + StatusLine statusLine = response.getStatusLine(); + if (statusLine.getStatusCode() != HttpStatus.SC_OK) { + throw new RuntimeException("Unexpected failure: " + statusLine.toString()); + } + + HttpEntity resEntity = response.getEntity(); + if (resEntity != null) { + result = EntityUtils.toString(resEntity, Charset.forName("UTF-8")); + EntityUtils.consume(resEntity); + } else { + result = null; + } + } finally { + response.close(); + } + return result; + } + + + public static String doGet(String url, boolean mobile) { + Assert.hasText(url, "Url is empty!"); + CloseableHttpClient httpClient = HttpClients.createDefault(); + try { + HttpGet httpGet = new HttpGet(url); + if (mobile) { + httpGet.setHeader("user-agent", + "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"); + } + + CloseableHttpResponse response = httpClient.execute(httpGet); + String result; + result = getString(response); + return result; + } catch (Exception e) { + throw new RuntimeException("Exception occurred when send post request[url:" + url, e); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + //np + } + } + } + +}