• 处理异常刷卡记录存储过程


    USE [ChiefmesNEW]
    GO
    /****** Object: StoredProcedure [dbo].[st_Alarm_DealStatStopCard] Script Date: 04/12/2016 10:36:06 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    /********************
    Create By: Wuchun
    Create Date: 2013-08-21
    Module: Alarm
    Remark: 处理异常刷卡记录统计表
    ********************/
    ALTER procEDURE [dbo].[st_Alarm_DealStatStopCard]
    as
    --drop table #t_DealStopCard
    declare @BCCode varchar(10)
    select @BCCode = dbo.[Fn_GetBCCode]()

    select distinct Seq = identity(int),
    a.AlarmBillNO,
    a.AlarmSetNO,a.AlarmCode,
    a.AlarmLevel,a.DispatchNO,a.MachineNO,
    a.LastDealTime,a.BCCode,a.UnitTime,
    a.MouldNO,a.MO,a.DispatchPrior
    into #t_DealStopCard
    from MES_AlarmBill a
    join dbo.MES_AlarmStopCard s
    on a.AlarmCode = s.AlarmCode
    where (a.BCCode = 'All' or charindex(a.BCCode,@BCCode)>0)
    and a.DealFlag = 0
    --and a.AlarmCode='StopMaintain' and a.MachineNo='TS-217'

    if @@rowCount = 0 return

    select * from #t_DealStopCard

    --处理异常
    declare @DispatchNO varchar(50), @MachineNo varchar(50), @AlarmLevel varchar(50), @MO varchar(50), @DispatchPrior float
    declare @AlarmBillNo varchar(100), @AlarmSetNo varchar(100), @AlarmCode varchar(50), @MouldNO varchar(50)
    declare @LastDealTime datetime , @UnitTime int, @CmpMinutes int , @SmsContent varchar(8000), @i int , @icount int
    declare @UnitTimePre varchar(100), @unitTimeSuf varchar(100) , @AlarmRdNO varchar(100), @StopBeginTime datetime, @MapID int
    declare @OtherDesc varchar(1000) --附加的提示信息
    select @CmpMinutes = 0, @i = 1
    select @iCount = count(*) from #t_DealStopCard

    while(@i<=@iCount)
    begin
    select @AlarmBillNo = AlarmBillNo,
    @AlarmSetNo = AlarmSetNo,
    @AlarmCode = AlarmCode,
    @MO = MO,
    @DispatchPrior = DispatchPrior,
    @AlarmLevel = AlarmLevel, @DispatchNo = DispatchNo,
    @MachineNO = MachineNO, @LastDealTime = LastDealTime,
    @UnitTime = UnitTime, @CmpMinutes = 0,
    @BCCode = BCCode, @MouldNO = MouldNO,
    @OtherDesc = ''
    from #t_DealStopCard
    where Seq =@i


    if(@AlarmCode = 'StopMouldErr')
    begin
    declare @MouldName nvarchar(100)
    select top 1 @MouldName=MouldName from MES_MouldDetail where MouldNO=@MouldNO
    select @OtherDesc = '(模具:'+@MouldNO+': '+@MouldName+')'
    end


    select @CmpMinutes = AlarmMinutes,
    @StopBeginTime = BeginTime,
    @MapID = MapID

    from MES_AlarmTimeStat
    where AlarmCode = @AlarmCode and
    DispatchNo = @DispatchNo and
    DispatchPrior = @DispatchPrior and
    MachineNo = @MachineNo and
    AlarmSetNO = replace(@AlarmSetNo, @AlarmLevel,'') and
    (
    (@AlarmLevel = 'Lvl1' and UserFlagLvl1= 0) or
    (@AlarmLevel = 'Lvl2' and UserFlagLvl2= 0) or
    (@AlarmLevel = 'Lvl3' and UserFlagLvl3= 0) or
    (@AlarmLevel = 'Lvl4' and UserFlagLvl4= 0)
    ) and
    EndTime is null

    --select @AlarmCode as '1'
    -- select @DispatchNo as '2'
    -- select @DispatchPrior as '3'
    -- select @MachineNo as '4'
    -- select @AlarmSetNo as '5'
    -- select @AlarmLevel as '6'

    --Add by zhuss 2014-09-16 机器故障、辐射故障、模具故障第一层不在这里报警、报障时报警
    ---增加控制差异20分钟内允许产生报警
    --select @CmpMinutes as 'CmpMinutes'
    --select @UnitTime as 'UnitTime'
    if
    (
    (@AlarmCode<>'StopMachineErr' or @AlarmLevel<>'Lvl1') and

    (@AlarmCode<>'StopDeviceErr' or @AlarmLevel<>'Lvl1') and
    (@AlarmCode<>'StopMouldErr' or @AlarmLevel<>'Lvl1')
    )

    begin
    if (@CmpMinutes>@UnitTime and
    --9>2
    (@CmpMinutes-@UnitTime)<20
    --and
    -- (
    -- (@AlarmCode<>'StopMachineErr' and @AlarmLevel<>'Lvl1') and
    -- (@AlarmCode<>'StopDeviceErr' and @AlarmLevel<>'Lvl1') and
    -- (@AlarmCode<>'StopMouldErr' and @AlarmLevel<>'Lvl1')
    -- )
    )
    begin
    select @UnitTimePre = UnitTimePre, @unitTimeSuf = unitTimeSuf
    from V_AlarmTypeSet where AlarmCode = @AlarmCode
    select @SmsContent = '机台'+@MachineNO+@OtherDesc+@UnitTimePre+rtrim(dbo.Fn_GetMinuteToHour(@CmpMinutes))
    select @AlarmRdNO = @AlarmBillNo +right(convert(char(16),getdate(),120),5)

    insert into MES_AlarmRdLog(AlarmRdNO, AlarmBillNo, AlarmSetNo,
    AlarmCode, MO, DispatchNo, DispatchPrior,
    MachineNo, SmsContent, CreateDate,Flag,
    BCCode,AlarmLevel)
    select @AlarmRdNO, @AlarmBillNO, @AlarmSetNo,
    @AlarmCode, @MO, @DispatchNo, @DispatchPrior,
    @MachineNO, @SmsContent, getdate(), 0,
    @BCCode,@AlarmLevel

    update MES_AlarmTimeStat set
    AlarmBillNo = @AlarmBillNo
    , BillTimeBegin = @LastDealTime
    , BillTimeEnd = getdate()
    , AlarmRdNO = @AlarmRdNO
    , UserFlagLvl1 = case when @AlarmLevel = 'Lvl1' then 1 else UserFlagLvl1 end
    , UserFlagLvl2 = case when @AlarmLevel = 'Lvl2' then 1 else UserFlagLvl2 end
    , UserFlagLvl3 = case when @AlarmLevel = 'Lvl3' then 1 else UserFlagLvl3 end
    , UserFlagLvl4 = case when @AlarmLevel = 'Lvl4' then 1 else UserFlagLvl4 end
    , FlagUpdateTimeLvl1 = case when @AlarmLevel = 'Lvl1' then getdate() else FlagUpdateTimeLvl1 end
    , FlagUpdateTimeLvl2 = case when @AlarmLevel = 'Lvl2' then getdate() else FlagUpdateTimeLvl2 end
    , FlagUpdateTimeLvl3 = case when @AlarmLevel = 'Lvl3' then getdate() else FlagUpdateTimeLvl3 end
    , FlagUpdateTimeLvl4 = case when @AlarmLevel = 'Lvl4' then getdate() else FlagUpdateTimeLvl4 end
    where AlarmCode = @AlarmCode
    and DispatchNo = @DispatchNo
    and DispatchPrior = @DispatchPrior
    and MachineNo = @MachineNo
    and AlarmSetNO = replace(@AlarmSetNo, @AlarmLevel,'')
    and MapID = @MapID

    end

    end


    set @i = @i+1
    end

    --更新上次处理时间
    update a set LastDealTime = GETDATE(),
    NextDealTime = case when isnull(datediff(minute,a.NextDealTime,GETDATE()),0)>5
    then DATEADD(minute,a.UnitTime,GETDATE())
    else NextDealTime end
    from MES_AlarmBill a
    join #t_DealStopCard t on
    a.AlarmBillNo = t.AlarmBillNo and
    a.AlarmSetNo = t.AlarmSetNo and
    a.MachineNo = t.MachineNo

    drop table #t_DealStopCard
    ---------------------------------------------------------------------------------

  • 相关阅读:
    自定义的事件管理器
    解决修改表结构,添加外键时出现“约束冲突”的错误
    jQuery学习(二) 自定义扩展函数
    iBt(001-004)原文与试译
    老婆怀孕了!(5+6)
    Mac_如何打开系统文件library
    Mac_如何通过命令行装包到ios手机
    MAC干净卸载pycharm
    selenium自动化_如何启动safari浏览器
    selenium自动化_click方法点击无效
  • 原文地址:https://www.cnblogs.com/chengjun/p/5382619.html
Copyright © 2020-2023  润新知