• Init wms goodlocation data


    insert goodlocation:

    CREATE PROCEDURE [dbo].[sp_insert_goodlocation]  
     -- Add the parameters for the stored procedure here  
      @the_plattoon int,  
      @the_column int,  
      @the_floor int   
    AS  
    begin try  
    begin tran  
    BEGIN  
     -- SET NOCOUNT ON added to prevent extra result sets from  
     -- interfering with SELECT statements.  
     SET NOCOUNT ON;  
      
      declare @count int  
      declare @cargo_space_id varchar(30)  
      declare @storagenum varchar(10)   --仓库代码
      declare @localnum varchar(20)     --库区代码
      declare @goodlocationname varchar(30) --货位名称
      declare @goodlocationtype varchar(30) --货位类型
      declare @goodlocationnum varchar(30)  --货位代码
      declare @roadway_num varchar(30)  
      declare @cargo_area_id varchar(30)  
      declare @cargo_space_name varchar(30)  
     begin  
      --取得仓库代码 
      SELECT @storagenum=F_StorageNum  FROM [dbo].[Sys_Storage]  
      --取得库区代码
      select @localnum=F_LocalNum from Sys_Location where F_StorageNum=@storagenum
      --取得货位名称
      select @goodlocationname=concat(right(cast('00'+rtrim(@the_plattoon) as varchar(20)),2),'',right(cast('00'+rtrim(@the_column) as varchar(20)),2),'',right(cast('00'+rtrim(@the_floor) as varchar(20)),2),'')  
      --取得巷道代码  
      select @roadway_num=cast(round(cast(cast(@the_plattoon as decimal(8,2))/2 as decimal(8,2)),0) as int)   
      --判断该条记录是否已存在   
      select @count=count(*) from [dbo].[Sys_GoodLocation] where F_GoodLocationName=@goodlocationname  
      --取得货位代码  
      select @goodlocationnum= concat('01',right(cast('00'+rtrim(@the_plattoon) as varchar(20)),2),right(cast('00'+rtrim(@the_column) as varchar(20)),2),right(cast('00'+rtrim(@the_floor) as varchar(20)),2))  
      
      --插入语句  
      if @count=0   
        begin   
            INSERT INTO [dbo].[Sys_GoodLocation]
               ([F_GoodLocationNum]
               ,[F_StorageNum]
               ,[F_RoadWayNum]
               ,[F_LocalNum]
               ,[F_GoodLocationType]
               ,[F_GoodLocationName]
               ,[F_Platoon]
               ,[F_Column]
               ,[F_Floor]
               ,[F_Status]
               ,[F_Locked]
               ,[F_TrayCode]
               ,[F_TrayInTime]
               ,[F_JobId]
               ,[F_TaskNo]
               ,[F_JobInTime]
               ,[F_SortCode]
               ,[F_DeleteMark]
               ,[F_EnabledMark]
               ,[F_Description]
               ,[F_CreatorTime]
               ,[F_CreatorUserId]
               ,[F_LastModifyTime]
               ,[F_LastModifyUserId]
               ,[F_DeleteTime]
               ,[F_DeleteUserId])
           VALUES
               (@goodlocationnum
               ,@storagenum
               ,@roadway_num
               ,@localnum
               ,1
               ,@goodlocationname
               ,@the_plattoon
               ,@the_column
               ,@the_floor
               ,1
               ,'N'
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL
               ,NULL)
      end  
        end  
    END  
    commit tran  
    END try  
    begin catch  
        rollback tran  
    end catch  

    sp_batchinsert_goodlocation:

    CREATE PROCEDURE [dbo].[sp_batchinsert_goodlocation]  
     -- Add the parameters for the stored procedure here  
      @the_plattoon int,  
      @the_column int,  
      @the_floor int   
    AS  
    begin try  
    BEGIN TRANSACTION  
    BEGIN  
     -- SET NOCOUNT ON added to prevent extra result sets from  
     -- interfering with SELECT statements.  
     SET NOCOUNT ON;  
      
      declare @initplatoon int  
      declare @initcolumn int  
      declare @initfloor int  
      
     begin  
      set @initplatoon=1   
      while @initplatoon<=@the_plattoon    --循环排  
      begin   
         set @initcolumn=1  
         while @initcolumn<=@the_column    --循环列  
           begin  
              set @initfloor=1  
              while @initfloor<=@the_floor    --循环层  
                 begin  
                   print concat(@initplatoon,@initcolumn,@initfloor)
                   exec [dbo].[sp_insert_goodlocation]  @initplatoon,@initcolumn,@initfloor  --插入  
                   set @initfloor=@initfloor+1   
                 end  
                    set @initcolumn=@initcolumn+1   
            end  
         set @initplatoon=@initplatoon+1   
      end  
        end  
    END  
    commit tran  
    END try  
    begin catch  
        rollback tran  
    end catch  

    Execute:

    exec sp_batchinsert_goodlocation 8,37,5

    Result:

  • 相关阅读:
    Python深拷贝和浅拷贝解析
    python中count函数的用法
    Jenkins + gitlab + maven 自动打包部署项目
    nio和bio得区别
    nginx负载均衡的5种策略
    接口测试常见bug
    接口自动化面试4
    pass 语句
    if 语句
    while循环
  • 原文地址:https://www.cnblogs.com/AriLee/p/10755555.html
Copyright © 2020-2023  润新知