Files
FTC25009/sql/20260714_warehouse_03_charging_stations.sql

96 lines
2.7 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
set nocount on;
set xact_abort on;
/* 03仓充电桩:仅允许更新指定的两个货位节点。 */
begin try
begin transaction;
if
(
select count(*)
from dbo.bas_cargo_space with (updlock, holdlock)
where warehouse_id = N'03'
and cargo_space_id in (N'03060501', N'03060502')
) <> 2
throw 51020, N'03仓充电桩货位不存在或数量异常。', 1;
update dbo.bas_cargo_space
set status = N'10',
the_type_name = N'充电桩',
cargo_space_name = concat(
right(N'00' + convert(nvarchar(2), the_platoon), 2), N'排',
right(N'00' + convert(nvarchar(2), the_column), 2), N'列',
right(N'00' + convert(nvarchar(2), the_floor), 2), N'层-充电桩'
),
group_coding_no = null,
group_coding = null,
this_cargo_area = null
where warehouse_id = N'03'
and cargo_space_id in (N'03060501', N'03060502');
declare @updated_count int = @@rowcount;
if @updated_count <> 2
throw 51021, N'03仓充电桩更新数量异常。', 1;
if not exists
(
select 1
from dbo.sys_dict_data
where dict_type = N'bas_cargo_space_status'
and dict_value = N'10'
)
begin
insert into dbo.sys_dict_data
(
dict_sort, dict_label, dict_value, dict_type,
css_class, list_class, is_default, status,
create_by, create_time, update_by, update_time, remark
)
values
(
10, N'充电桩', N'10', N'bas_cargo_space_status',
null, N'info', N'N', N'0',
N'admin', getdate(), N'', null, N'03仓充电桩节点'
);
end
else
begin
update dbo.sys_dict_data
set dict_label = N'充电桩',
dict_sort = 10,
status = N'0',
remark = N'03仓充电桩节点',
update_by = N'admin',
update_time = getdate()
where dict_type = N'bas_cargo_space_status'
and dict_value = N'10';
end;
if exists
(
select 1
from dbo.bas_cargo_space
where cargo_space_id in (N'03060501', N'03060502')
and
(
warehouse_id <> N'03'
or status <> N'10'
or the_type_name <> N'充电桩'
or group_coding is not null
)
)
throw 51022, N'03仓充电桩结果校验失败。', 1;
commit transaction;
end try
begin catch
if xact_state() <> 0
rollback transaction;
throw;
end catch;
select cargo_space_id, cargo_space_name, status, the_type_name, group_coding
from dbo.bas_cargo_space
where cargo_space_id in (N'03060501', N'03060502')
order by cargo_space_id;