declare @areaCode varchar(10)
declare @CreditType Varchar(20)
set @areaCode=''
--资质等级
set @CreditType='KFCreditLevel'
if(@ApplyType='002')
select @CreditType='WYCreditLevel'
if(@ApplyType='003')
select @CreditType='CQCreditLevel'
if(@ApplyType='004')
select @CreditType='PGCreditLevel'
--注册地址开始
declare @shift smallint
set @shift=len(@RegCode)
while(@shift>0)
begin
if(substring(@RegCode,@shift,1)<>'0')
break
set @shift=@shift -1
end
--print @shift
if(@shift>0 and (2*(@shift/2))<>@shift)
set @shift=@shift+1
if @shift>0
set @areaCode=substring(@RegCode,1,@shift)
----注册地址结束
declare @approveSql varchar(200)
set @approveSql=''
if(@ApprovePerson<>'')
set @approveSql=' and wa.innerInstanceId=gg.innerInstanceId and gg.ApprovePerson='''+@ApprovePerson+''' and gg.ApproveTime is not null '
declare @sql varchar(5000)
DECLARE @sql1 varchar(8000)
DECLARE @sql2 varchar(8000)
declare @whereSql varchar(2000)
DECLARE @WhereSql1 varchar(5000)
--decalre
if(@StartDate<>'' and @EndDate='')
set @EndDate='2050-12-01'
if(@StartDate='' and @EndDate<>'')
set @StartDate='2001-01-01'
SET @WhereSql1=' Where 1=1 '
IF(@areaCode<>'')
SET @WhereSql1=@WhereSql1+ ' AND pebi.RegCode like ''' + @areaCode + '%'''
IF(@EntpCode<>'')
SET @WhereSql1=@WhereSql1 + ' AND pebi.EntpCode=''' + @EntpCode + ''''
IF(@EntpName<>'')
SET @WhereSql1=@WhereSql1 + ' AND pebi.EntpName like ''%' + @EntpName + '%'''
IF(@ApplyLevel<>'')
SET @WhereSql1=@WhereSql1 + ' AND weal.ApplyLevel=''' + @ApplyLevel + ''''
IF(@StartDate<>'' and @EndDate<>'')
SET @whereSql1=@whereSql1 + ' AND weal.ApplyDate BETWEEN '''+@StartDate+''' AND '''+@EndDate+''''
IF(@ApplyType<>'')
SET @WhereSql1=@WhereSql1 + ' AND weal.AptitudeType=''' + substring(@ApplyType,1,3) + ''''
IF(@BusiTypes<>'')
SET @whereSql1=@whereSql1 + ' AND weal.BusiType IN ('+@BusiTypes+')'
IF(@ApprovePerson<>'')
SET @WhereSql1=@WhereSql1 + ' AND wial.ApprovePerson=''' + @ApprovePerson + ''''
if(@ArriveStartDate<>'' and @ArriveEndDate='')
set @ArriveEndDate='2050-12-01'
if(@ArriveStartDate='' and @ArriveEndDate<>'')
set @ArriveStartDate='2001-01-01'
IF(@ArriveStartDate<>'' and @ArriveEndDate<>'')
SET @whereSql1=@whereSql1 + ' AND wial.ApproveTime BETWEEN '''+@ArriveStartDate+''' AND '''+@ArriveEndDate+''''
IF(@BranchNo<>'')
SET @WhereSql1=@WhereSql1 + ' AND wial.BatchNo=''' + @BranchNo + ''''
if(@ApplyType<>'' and len(convert(varchar(5),@ApplyType))=5)
begin
if (substring(@ApplyType,4,2)='02')
set @WhereSql1=@WhereSql1+' and pem.EntpMode =''村镇企业'''
else
set @WhereSql1=@WhereSql1+' and isnull(pem.EntpMode,'''') <>''村镇企业'''
end
SET @sql1='SELECT distinct weal.WorkInstanceID into #TempWork
FROM WWF_EntpApplyList weal
INNER JOIN WWF_AuditLog wal ON wal.WorkInstanceID = weal.WorkInstanceID
INNER JOIN WWF_InnerAuditLog wial ON wial.InnerInstanceID = wal.InnerInstanceID
INNER JOIN PUB_EntpBasicInfo pebi ON pebi.EntpCode = weal.EntpCode
INNER JOIN PUB_EntpMessage pem ON pem.EntpCode = pebi.EntpCode '
--PRINT (@sql1+@WhereSql1)
--EXEC( @sql1+@WhereSql1)
SET @sql2=' SELECT B.WorkInstanceID,B.EntpName,B.ApplyDate,B.ArriveTime,B.EntpCode,B.ApplyLevel,
B.ApplyName,B.ApplyPerson,B.LinkPhone,B.BusiType,B.AptitudeType,ApproveDeptName,
B.Description,B.ApproveDept,B.AreaCode,B.Timeout,B.ApproveOpinion,B.caption,
B.ApproveTime,B.Diffdays,B.TaskId,B.TaskName,B.innerarrivetime,B.Roles,B.ApplyItemCodes
FROM
(
SELECT pebi.EntpName,pebi.EntpCode,weal.BusiType,weal.WorkInstanceID,
weal.ApplyDate,ApplyLevel,
DicName as ApplyName,weal.ApplyPerson,weal.LinkPhone,weal.AptitudeType,
wial.ArriveTime,wial.ApprovePerson,poi.OrgName AS ApproveDeptName,
isnull(weal.Description,''审批中'') as Description,
(case when wal.ApproveDept is null then dbo.uf_getApprovedept(wal.innerInstanceId,wal.AreaCode,pem.AuditStatus)
else wal.ApproveDept end) as ApproveDept,
wal.AreaCode,dbo.uf_getTimeSpan(wal.ArriveTime,isnull(wal.Timeout,0)) as Timeout,
isnull(wal.ApproveOpinion,'''') as ApproveOpinion ,isnull(caption ,'''') caption ,
wial.ApproveTime,DATEDIFF(day, getdate(),ApplyDate) AS Diffdays, wial.Remark,
wial.TaskId,wial.TaskName,wial.arrivetime as innerarrivetime,wial.Roles,ApplyItemCodes
FROM WWF_EntpApplyList weal
INNER JOIN WWF_AuditLog wal ON wal.WorkInstanceID = weal.WorkInstanceID
INNER JOIN WWF_InnerAuditLog wial ON wial.InnerInstanceID = wal.InnerInstanceID
INNER JOIN PUB_EntpBasicInfo pebi ON pebi.EntpCode = weal.EntpCode
INNER JOIN PUB_EntpMessage pem ON pebi.EntpCode = pem.EntpCode
LEFT JOIN PUB_OrganInfo poi ON poi.OrgCode=wal.ApproveDept
LEFT JOIN PUB_PublicCode ppc ON ppc.DicCode=weal.ApplyLevel And DicType='''+@CreditType+'''
LEFT JOIN FW_Users fu ON fu.Login=wial.ApprovePerson
INNER JOIN #TempWork a ON a.WorkInstanceID=weal.WorkInstanceID
) B
INNER JOIN
(
SELECT weal.WorkInstanceID,max(wial.ArriveTime) AS ArriveTime
FROM WWF_EntpApplyList weal
INNER JOIN WWF_AuditLog wal ON wal.WorkInstanceID = weal.WorkInstanceID
INNER JOIN WWF_InnerAuditLog wial ON wial.InnerInstanceID = wal.InnerInstanceID
INNER JOIN #TempWork a ON a.WorkInstanceID=weal.WorkInstanceID
GROUP BY weal.WorkInstanceID
) C ON C.WorkInstanceID=B.WorkInstanceID AND C.ArriveTime = B.ArriveTime ORDER BY B.ArriveTime Desc'
PRINT( @sql1+@WhereSql1+@sql2)
EXEC( @sql1+@WhereSql1+@sql2)