public ExecuteResult doService(IMessage message, String soa_processid) { // 获取运行流程项 IProcess process = ProcessFactory.getInstance(soa_processid); String processInfo = process.getNameSpace() + "." + process.getName(); // 初始化服务运行参数,如失败,返回执行结果 if (!initFordo(message, soa_processid)) { log.error(processInfo + ",修改适配器,初始化服务运行参数失败"); return ExecuteResult.fail; } try { Statement stmt = null; ResultSet rs = null; try { IDAO_Core dao = DAOFactory_Core.getInstance(DataBaseType.getDataBaseType(con)); if (dao == null) { message.addServiceException( new ServiceException( ServiceExceptionType.UNKNOWNDATABASETYPE, "未知的数据库类型", this.getId(), soa_processid, new Date(), null)); log.error(processInfo + ",修改适配器中,数据库加载类型错误,未知的数据库类型"); return ExecuteResult.fail; } log.debug(processInfo + ",修改适配器中,数据库加载成功"); stmt = con.createStatement(); Map<String, String> data = new HashMap<String, String>(); String map_processid = null; String map_i_serveralias = null; String map_i_parameter = null; String map_source = null; String map_o_serveralias = null; String map_o_parameter = null; String data_sql_select = dao.getSQL_QueryAdepterInfo(processid); log.debug(processInfo + "查询此流程号的所有信息的sql语句: data_sql_select = " + data_sql_select); rs = stmt.executeQuery(data_sql_select); while (rs.next()) { map_processid = rs.getString(1); map_i_serveralias = rs.getString(2); map_i_parameter = rs.getString(3); map_source = rs.getString(4); map_o_serveralias = rs.getString(5); map_o_parameter = rs.getString(6); } String debug_result_map = "select_map_processid = " + map_processid + "\n" + "select_map_i_serveralias = " + map_i_serveralias + "\n" + "select_map_i_parameter = " + map_i_parameter + "\n" + "select_map_source = " + map_source + "\n" + "select_map_o_serveralias = " + map_o_serveralias + "\n" + "select_map_o_parameter = " + map_o_parameter; log.debug( processInfo + " , " + this.getClass().getName() + "查询此流程号的所有信息是: debug_result_map = " + debug_result_map); data.put("map_processid", map_processid); data.put("map_i_serveralias", map_i_serveralias); data.put("map_i_parameter", map_i_parameter); data.put("map_source", map_source); data.put("map_o_serveralias", map_o_serveralias); data.put("map_o_parameter", map_o_parameter); message.setOtherParameter(this.getClass().getName(), data); /* * 修改适配器 */ String sql_update = dao.getSQL_UpdateAdapterInfo( processid, i_serveralias, i_parameter, source, o_serveralias, o_parameter); log.debug("根据流程号,输入服务别名,输入参数名,更新数据来源号,输出服务别名,输出参数名的sql语句: " + "sql_update = " + sql_update); stmt.executeUpdate(sql_update); /** 启用新适配器 */ MessageAdapterFactory.loadAllMessageAdapter(con); } catch (SQLException sqle) { message.addServiceException( new ServiceException( ServiceExceptionType.DATABASEERROR, "数据库操作异常", this.getId(), soa_processid, new Date(), sqle)); log.fatal(processInfo + ",修改适配器_数据库操作异常:" + sqle.toString()); return ExecuteResult.fail; } finally { if (rs != null) rs.close(); if (stmt != null) stmt.close(); } } catch (Exception e) { message.addServiceException( new ServiceException( ServiceExceptionType.UNKNOWN, e.toString(), this.getId(), soa_processid, new java.util.Date(), e)); log.fatal(processInfo + ",修改适配器时出现未知异常" + e.toString()); return ExecuteResult.fail; } return ExecuteResult.sucess; }
public ExecuteResult doService(IMessage message, String soa_processid) { // 获取运行流程项 IProcess process = ProcessFactory.getInstance(soa_processid); String processInfo = process.getNameSpace() + "." + process.getName(); if (!initFordo(message, soa_processid)) { log.error(processInfo + ",修改用户,初始化服务运行失败"); return ExecuteResult.fail; } try { Statement stmt = null; ResultSet rs = null; try { IDAO_UserManager dao = DAOFactory_UserManager.getInstance(DataBaseType.getDataBaseType(con)); if (dao == null) { message.addServiceException( new ServiceException( ServiceExceptionType.UNKNOWNDATABASETYPE, "", this.getId(), soa_processid, new Date(), null)); log.error(processInfo + ",修改用户,加载数据库错误,未知的数据库类型"); return ExecuteResult.fail; } log.debug(processInfo + ",修改用户,加载数据库成功"); stmt = con.createStatement(); String sql_check = dao.getSQL_QueryCountForUserNo(usrno); log.debug("取得用户id是否重复的sql语句: sql_check = " + sql_check); rs = stmt.executeQuery(sql_check); int count = 0; if (rs.next()) { count = rs.getInt(1); } if (count == 0) { message.addServiceException( new ServiceException( ServiceExceptionType.UNKNOWN, "没有要更新的数据!", this.getId(), soa_processid, new Date(), null)); log.error(processInfo + ",修改用户时,没有要更新的数据 count = " + count); return ExecuteResult.fail; } /* * 查询所有参数放入Map中 */ Map<String, String> data = new HashMap<String, String>(); String rs_usrno = null; String rs_usrname = null; String rs_password = null; String rs_employeeid = null; String rs_state = null; String rs_lastupdateuser = null; String rs_lastupdatetime = null; String rs_note = null; String rs_enabled = null; String map_sql_select = dao.getSQL_QueryUserInfoForUserID(usrno); log.debug(processInfo + "查询此用户所有参数的sql语句: map_sql_select = " + map_sql_select); rs = stmt.executeQuery(map_sql_select); while (rs.next()) { rs_usrno = rs.getString(1); rs_usrname = rs.getString(2); rs_password = rs.getString(3); rs_employeeid = rs.getString(5); rs_state = rs.getString(6); rs_lastupdateuser = rs.getString(7); rs_lastupdatetime = rs.getString(8); rs_note = rs.getString(9); rs_enabled = rs.getString(10); } String rs_debug = "rs_usrno = " + rs_usrno + "\n" + "rs_usrname = " + rs_usrname + "\n" + "rs_password = "******"\n" + "rs_employeeid = " + rs_employeeid + "\n" + "rs_state = " + rs_state + "\n" + "rs_lastupdateuser = "******"\n" + "rs_lastupdatetime = " + rs_lastupdatetime + "\n" + "rs_note = " + rs_note + "\n" + "rs_enabled = " + rs_enabled; log.debug(processInfo + "查询的所有信息为: rs_debug = " + rs_debug); data.put("rs_usrno", rs_usrno); data.put("rs_usrname", rs_usrname); data.put("rs_password", rs_password); data.put("rs_oldRoleno", oldRoleno); data.put("rs_old_default_roleno", old_default_roleno); data.put("rs_employeeid", rs_employeeid); data.put("rs_state", rs_state); data.put("rs_lastupdateuser", rs_lastupdateuser); data.put("rs_lastupdatetime", rs_lastupdatetime); data.put("rs_note", rs_note); data.put("rs_enabled", rs_enabled); message.setOtherParameter(this.getClass().getName(), data); String sql_update; // password be changed if (!password.equals("********")) { sql_update = dao.getSQL_UpdateUser( usrno, usrname, password, employeeid, state, lastupdateuser, lastupdatetime, note, enabled); } else // password not changed { sql_update = dao.getSQL_UpdateUser( usrno, usrname, employeeid, state, lastupdateuser, lastupdatetime, note, enabled); } log.debug("根据用户id,更改用户信息,包括密码的sql语句: sql_update = " + sql_update); stmt.executeUpdate(sql_update); String sql_deleteDataUserRole = ""; String sql_insertDataUserRole = ""; String[] role_new = roleno.split(":"); sql_deleteDataUserRole = dao.getSQL_DeleteDataUserRole(new Integer(usrno)); log.debug("根据角色号,删除原有角色号的sql语句:sql_deleteDataUserRole = " + sql_deleteDataUserRole); stmt.executeUpdate(sql_deleteDataUserRole); for (String ch : role_new) { if (ch != null && !ch.equals("")) { if (default_roleno.equals(ch)) { sql_insertDataUserRole = dao.getSQL_insertDataUserRole(new Integer(usrno), new Integer(ch), "0"); } else { sql_insertDataUserRole = dao.getSQL_insertDataUserRole(new Integer(usrno), new Integer(ch), "1"); } log.debug( "插入新角色号data_user_role表的sql语句: sql_insertDataUserRole = " + sql_insertDataUserRole); stmt.executeUpdate(sql_insertDataUserRole); } } } catch (SQLException sqle) { message.addServiceException( new ServiceException( ServiceExceptionType.DATABASEERROR, "数据库错误" + sqle, this.getId(), soa_processid, new Date(), sqle)); log.fatal(processInfo + ",修改用户,数据库操作异常" + sqle.toString()); return ExecuteResult.fail; } finally { if (rs != null) rs.close(); if (stmt != null) stmt.close(); } } catch (Exception e) { message.addServiceException( new ServiceException( ServiceExceptionType.UNKNOWN, e.toString(), this.getId(), soa_processid, new java.util.Date(), e)); log.fatal(processInfo + ",修改用户,未知异常" + e.toString()); return ExecuteResult.fail; } return ExecuteResult.sucess; }