SVN-Revision: r923
This commit is contained in:
cyf
2025-08-07 09:20:25 +00:00
parent 25e9863964
commit f7a53010be
9 changed files with 376 additions and 34 deletions
@@ -1,4 +1,5 @@
using Lskj.Model;
using Lskj.Core;
using Lskj.Model;
using System;
using System.Collections.Generic;
using System.Data;
@@ -23,7 +24,7 @@ namespace Lskj.Business.Impl
/// <returns>DataTable.</returns>
public static DataTable GetBaseFlowData(string menuCode)
{
string sqlValue = string.Format("select * from p_systemdlltabflow where typeCode='{0}'", menuCode);
string sqlValue = string.Format("select * from p_systemdlltabflow where typeCode='{0}' ORDER BY stepCode ", menuCode);
return GetDataTableResult(sqlValue);
}
/// <summary>
@@ -504,4 +505,259 @@ namespace Lskj.Business.Impl
sqlValue = string.Format(@"UPDATE p_systembillsourcecond set controlName='{0}',controlLabel='{1}',controlType='{2}',defaultValue='{3}',sourceSql='{4}',keyField='{5}',resultField='{6}',
controlLeft='{7}',controlTop='{8}',controlHeight='{9}',controlWidth='{10}',checkCond='{11}',ShowMobile='{12}' where id='{13}' ;",
(dr["controlName"] + "").Replace("'", "''"), (dr["controlLabel"] + "").Replace("'", "''"), (dr["controlType"] + "").Replace("'", "''"), (dr["defaultValue"] + "").Replace("'", "''"), (dr["sourceSql"] + "").Replace("'", "''"), (dr["keyField"] + "").Replace("'", "''"), (dr["resultField"] + "").Replace("'", "''"),
(dr["controlLeft"] + "").Replace("'", "''"), (dr["controlTop"] + "").Replace("'", "''"), (dr["controlHeight"] + "").Replace("'", "''"), (dr["controlWidth"] + "").Replace("'", "''"), (dr["checkCond"] + "").Replace("'", "''"), (dr["ShowMobile"] + "").
(dr["controlLeft"] + "").Replace("'", "''"), (dr["controlTop"] + "").Replace("'", "''"), (dr["controlHeight"] + "").Replace("'", "''"), (dr["controlWidth"] + "").Replace("'", "''"), (dr["checkCond"] + "").Replace("'", "''"), (dr["ShowMobile"] + "").Replace("'", "''"), (dr["id"] + "").Replace("'", "''")
);
}
return ExecSqlValue(sqlValue) > 0;
}
/// <summary>
/// <para>说明:保存终审条件信息</para>
/// <para>创建人:曹屹峰</para>
/// <para>创建日期:2022-06-7 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>System.String.</returns>
public static bool deleteFinalConditions(string id, string key)
{
string sqlValue = string.Empty;
sqlValue = string.Format("delete from p_systemControlLocation where formkey='{0}' and fieldid='{1}'", key, id);
sqlValue += string.Format("delete from p_systembillsourcecond where id='{0}'", id);
return ExecSqlValue(sqlValue) > 0;
}
/// <summary>
/// 创建 生成终审sql 的存储过程
/// </summary>
/// <returns></returns>
public static bool CreateSQL()
{
//有存储过程就不创建
string sql = "SELECT 1 FROM sys.procedures WHERE name = 'p_systemCreateendFlowSQL'";
string value=GetResult(sql) + "";
if (value.Equals("1")) return true;
string sqlValue = @"CREATE PROCEDURE dbo.p_systemCreateendFlowSQL
@typecode varchar(20),
@stepcode int,
@operatorid int,
@msg varchar(2000) output
AS
BEGIN
declare @modtype int,
@mastertable varchar(50),
@fieldsql varchar(max)='',
@tmpsql varchar(max)='',
@fieldname varchar(50),
@username varchar(100),
@fieldtypeid int,
@lookupkey varchar(50),
@lookupresult varchar(50),
@lookupsql varchar(max),
@rtagid int=0,
@jointable varchar(max)='',
@column_prefix varchar(20),
@shNewMode int=0,
@bxshFlag int=0,
@flowTable varchar(50),
@flowStepTable varchar(50),
@tmpkeyfield varchar(50),
@flowStepGridTable varchar(50),
@orderid int
print 'start'
set @msg=''
begin tran
begin try
select @modtype=modType,@mastertable=TableName from v_systemdlltab where DllCoid=@typecode
if @modtype is null
begin
set @msg='模块['+@typecode+']未找到'
goto on_error
end
print '1'
set @column_prefix=dbo.p_getColumnPrefix(@mastertable)
if @modtype=2
begin
set @tmpkeyfield=@column_prefix+'billdocument_id'
set @flowTable='wms_billflowoper'
set @flowStepTable='p_systembillflowtypestep'
set @flowStepGridTable='p_systembillstepgrid'
if object_id('wms_billflowoper') is not null
set @shNewMode=1
if exists(select 1 from sys.columns
where object_id=object_id('p_systembillflowtypestep')
and lower(name)='pstepcode')
and exists(select 1 from sys.columns
where object_id=object_id(@mastertable) and lower(name)=LOWER(@column_prefix+'pstepcode'))
set @bxshFlag=1
end
print '2'
if @modtype=1
begin
select top 1 @tmpkeyfield=fieldname
from p_systemwordbooktab
where tab=@typecode
order by orderid
set @flowTable='p_baseflowoper'
set @flowStepTable='p_systemdlltabflowtypestep'
set @flowStepGridTable='p_systemdlltabflowstepgrid'
if object_id('p_baseflowoper') is not null
set @shNewMode=1
if exists(select 1 from sys.columns
where object_id=object_id('p_systemdlltabflowtypestep')
and lower(name)='pstepcode')
and exists(select 1 from sys.columns
where object_id=object_id(@mastertable) and lower(name)=LOWER(@column_prefix+'pstepcode'))
set @bxshFlag=1
end
print '3'
print 'bxshFlag='+cast(@bxshFlag as varchar)+' shNewMode='+cast(@shNewMode as varchar)
if @modtype=2
set @tmpsql='declare tmpCur cursor for
select top 1000 fieldName,
case when isnull(userName,'''')='''' and isnull(sysname,'''')='''' then fieldName
when isnull(userName,'''')='''' then sysName
else userName end as userName,fieldTypeId,
lookupKeyField,lookupResult,lookupSql
from p_systembillinfo a
inner join sys.columns b on object_id(''' + @mastertable + ''')=b.object_id and lower(a.fieldname)=lower(b.name)
where typecode='+QUOTENAME( @typecode,'''')+
' and (isnull(isvisible,0)=0 or lower(fieldName) in ('+QUOTENAME(+lower(@column_prefix)+'stepcode','''')+','+QUOTENAME(LOWER(@column_prefix)+'rtagid','''')+','+QUOTENAME(LOWER(@column_prefix)+'billdocument_id','''')+')) order by orderid'
if @modtype=1
set @tmpsql='declare tmpCur cursor for
select top 1000 fieldName,
case when isnull(userName1,'''')='''' and isnull(sysname,'''')='''' then fieldName
when isnull(userName1,'''')='''' then sysName
else userName1 end as userName,fieldsqlTag as fieldTypeId,
fieldsqlid as lookupKeyField,fieldsqlname as lookupResult,fieldsql as lookupSql
from p_systemwordbooktab a
inner join sys.columns b on object_id('+QUOTENAME(@mastertable,'''')+')=b.object_id and lower(a.fieldname)=lower(b.name)
where tab='+QUOTENAME( @typecode,'''')+
' and (isnull(vislble,0)=0 or lower(fieldName) in ('+QUOTENAME(+lower(@column_prefix)+'stepcode','''')+','+QUOTENAME(LOWER(@column_prefix)+'rtagid','''')+','+QUOTENAME(@tmpkeyfield,'''')+'))
order by orderid'
print '@tmpsql22222222='+isnull(@tmpsql,'')
exec(@tmpsql)
print '4'
open tmpCur
fetch next from tmpCur into @fieldname ,
@username ,
@fieldtypeid ,
@lookupkey ,
@lookupresult ,
@lookupsql
set @tmpsql=''
--生成步骤语句
print '5'
set @orderid=1
while @@FETCH_STATUS=0
begin
if LOWER(@fieldname)<>lower(@column_prefix+'stepcode')
begin
if LOWER(@fieldname)=lower(@column_prefix+'rtagid')
set @rtagid=1
if @tmpsql=''
set @tmpsql=@tmpsql+'a.'+@fieldname
else
set @tmpsql=@tmpsql+CHAR(10)+',a.'+@fieldname
set @orderid=@orderid+1
end
fetch next from tmpCur into @fieldname ,
@username ,
@fieldtypeid ,
@lookupkey ,
@lookupresult ,
@lookupsql
end
close tmpCur
deallocate tmpCur
set @tmpsql=@tmpsql+','+CAST(@stepcode as varchar)+' as '+@column_prefix+'stepcode'
if @rtagid=0
begin
set @tmpsql=@tmpsql+',a.'+@column_prefix+'rtagid'
end
set @tmpsql = 'select ' + char(10) + @tmpsql + CHAR(10) + ' from ' + @mastertable + ' a ' + @jointable
print '@tmpsql111111111='+isnull(@tmpsql,'')
if @shNewMode=1
begin
if @bxshFlag=0
begin
set @tmpsql = @tmpsql + CHAR(10) + ' where 1=1'+
' and isnull(a.' + @column_prefix + 'stepOver,0)=1 ' + CHAR(10)
end
else
begin
set @tmpsql = @tmpsql + CHAR(10) + ' where 1=1'+
' and isnull(a.' + @column_prefix + 'stepOver,0)=1 ' + CHAR(10)
end
end
else
begin
if @bxshFlag=0
begin
set @tmpsql = @tmpsql + char(10) + ' where 1=1 and isnull(a.' + @column_prefix + 'stepOver,0)=1'
end
else
begin
set @tmpsql= @tmpsql + char(10) + ' where isnull(a.' + @column_prefix + 'stepOver,0)=1'
end
end
print '@tmpsql='+isnull(@tmpsql,'')
set @msg=@tmpsql
commit
return 1
end try
begin catch
set @msg= LEFT( ERROR_MESSAGE(),1000)
IF EXISTS(SELECT 1 FROM MASTER.dbo.SYSCURSORS WHERE cursor_name='tmpcur')
BEGIN
CLOSE tmpcur -- 关闭游标
DEALLOCATE tmpcur -- 释放游标
END
goto on_error
end catch
on_error:
rollback
return -1
END
";
ExecSqlValue(sqlValue);
return true;
}
/// <summary>
/// 生成终审回退sql
/// </summary>
/// <returns></returns>
public static int GenerateFinalSqlStatement(string mMenuCode,string stepcode, out string retuenMsg)
{
SqlParameter pMsg = ERPInfo.Instance.ChangeParameterType ? new SqlParameter("@msg", SqlDbType.NVarChar, 6000) : new SqlParameter("@msg", SqlDbType.VarChar, 2000);
pMsg.Direction = ParameterDirection.Output;
SqlParameter returnValue = new SqlParameter("@return", SqlDbType.Int, 4);
returnValue.Direction = ParameterDirection.ReturnValue;
SqlParameter[] param =
{
new SqlParameter("@typecode",SqlDbType.VarChar,20),
new SqlParameter("@stepcode",SqlDbType.Int),
new SqlParameter("@operatorid",SqlDbType.Int),
pMsg,