|
存储过程代码:
ALTER PROCEDURE [dbo].[oaTaskCollect]
-- Add the parameters for the stored procedure here
@id varchar(100) --创建人ID 或者 执行者ID
AS
BEGIN
DECLARE @zid varchar(1024), --创建人 主表ID
@cid varchar(1024) --执行者 从表ID
select @zid = a.fID from OA_Task a left join OA_TaskDetail b on a.fID = b.fMasterID where a.FB_PersonID = @id and a.fTaskState= '未完成';
select @cid = a.fID from OA_Task a left join OA_TaskDetail b on a.fID = b.fMasterID where b.fTaskPersonID = @id and b.fTaskDesprition= '未完成';
--cte 递归查询
WITH cte AS (SELECT * FROM OA_Task
WHERE fID = @zid --第一个查询作为递归的基点(锚点)
UNION ALL
SELECT OA_Task.* --第二个查询作为递归成员, 下属成员的结果为空时,此递归结束。
FROM cte INNER JOIN OA_Task ON cte.fID = OA_Task.fTaskID)
SELECT * FROM cte
END
重写queryAction方法:
public static Table qqqueryOA_Task1(String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables) throws NamingException, SQLException{
Connection conn = com.justep.model.ModelUtils.getConnectionInTransaction("/rbc_OA/workTask/data");
CallableStatement proc = conn.prepareCall("{call oaTaskCollect(?)}");
String FB_PersonID = ContextHelper.getPerson().getID();
proc.setString(1, FB_PersonID);
ResultSet rs = proc.executeQuery();
Table t = com.justep.system.util.BizUtils.resultSet2Table(rs,"/rbc_OA/workTask/data");
System.out.println(t.size());
return t;
}
麻烦各位大神多多指点,这是为什么,我用表生成的action返回的数据和重写action返回的数据一模一样,为什么前台就报错呢?
而且后台我重新的action已经执行完毕,加载的时候为什么会出错?
|
-
表生成queryAction
-
重写queryAction调用存储过程
|