feat: update MES pages and tracking docs

This commit is contained in:
2026-06-29 18:27:00 +08:00
parent ebee02d103
commit e0e1b5d2bb
59 changed files with 8405 additions and 1398 deletions

View File

@@ -0,0 +1,169 @@
USE [YL_MESDB]
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'名称') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(100) NULL
GO
ALTER PROCEDURE [dbo].[_设备信息_增加]
@ nvarchar(50) = NULL,
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ nvarchar(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
IF ISNULL(@, N'') = N'' BEGIN SELECT '0' AS result, N'公司编码不能为空' AS message; RETURN; END
INSERT INTO [dbo].[_设备工位点检表] ([],[],[],[],[],[],[使],[],[],[],[],[],[],[],[],[],[],[])
VALUES (@,@,@,@,@,@,@使,TRY_CONVERT(date, NULLIF(@, N'')),@,@,@,@,@,@,@,@,@,TRY_CONVERT(date, NULLIF(@, N'')));
SELECT '1' AS result;
END
GO
ALTER PROCEDURE [dbo].[_设备信息_编辑]
@ int = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ nvarchar(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[_设备工位点检表]
SET []=@,[]=@,[]=@,[]=@,[]=@,[使]=@使,[]=TRY_CONVERT(date, NULLIF(@, N'')),[]=@,[]=@,[]=@,[]=@,[]=@,[]=@,[]=@,[]=@,[]=@,[]=TRY_CONVERT(date, NULLIF(@, N''))
WHERE []=@;
SELECT '1' AS result;
END
GO
DECLARE @ TABLE ([] nvarchar(100),[] nvarchar(100),[] nvarchar(50),[] nvarchar(50),[] nvarchar(500),[使] nvarchar(100),[] date,[] nvarchar(50),[] decimal(18,4),[] nvarchar(50));
INSERT INTO @ VALUES (N'气泵(空压机)',N'REALLY-11',N'气泵',N'1.4MPa/YT132S-4',N'最大压力0.8Mpa',N'一楼机加车间','2006-12-31',N'',1,N'停用');
INSERT INTO @ VALUES (N'台钻',N'REALLY-21',N'台钻',N'JW7114',N'φ2-12mm/0.1mm',N'二楼机加车间','2007-01-01',N'',1,NULL);
INSERT INTO @ VALUES (N'数控加工中心',N'REALLY-6',N'加1',N'VDL-600A',N'X600/Y420/Z520/',N'一楼机加车间','2008-12-23',N'',1,NULL);
INSERT INTO @ VALUES (N'普通车床',N'REALLY-1',N'普1',N'CD6240A',N'回转直径400/转速1400/0.04mm',N'一楼机加车间','2010-12-31',N'',1,NULL);
INSERT INTO @ VALUES (N'砂轮机',N'REALLY-19',N'砂轮机',N'MQ3225',N'转速3000/砂轮直径250',N'一楼机加车间','2010-12-31',N'',1,NULL);
INSERT INTO @ VALUES (N'数控车床',N'REALLY-3',N'数2',N'CAK5085di',N'床鞍直径280',N'一楼机加车间','2011-09-29',N'',1,NULL);
INSERT INTO @ VALUES (N'万能外圆磨床',N'REALLY-8',N'磨2',N'MG1420E',N'0.005mm',N'一楼机加车间','2012-03-29',N'',1,NULL);
INSERT INTO @ VALUES (N'数控车床',N'REALLY-2',N'数1',N'CAK3665DI',N'0.01mm',N'一楼机加车间','2013-12-31',N'',1,NULL);
INSERT INTO @ VALUES (N'数显鼓风干燥箱/烤箱',N'REALLY-14',N'烤箱',N'101A-0',NULL,N'二楼装配区','2014-06-05',N'',1,NULL);
INSERT INTO @ VALUES (N'数控车床',N'REALLY-4',N'数3',N'Viva T2c/500',N'0.01mm',N'一楼机加车间','2015-03-17',N'',1,NULL);
INSERT INTO @ VALUES (N'超声波清洗机',N'REALLY-16',N'清洗机',N'FRQ-20100ST',NULL,N'二楼清洗室','2015-04-12',N'',1,NULL);
INSERT INTO @ VALUES (N'抛光机',N'REALLY-44',N'抛光机',N'ZXH-Z615-1/ZXH-756',NULL,N'一楼机加车间','2015-05-17',N'',1,NULL);
INSERT INTO @ VALUES (N'激光打标机',N'REALLY-13',N'打标机',N'骄子LMK-F20',NULL,N'二楼装配区','2016-02-01',N'',1,NULL);
INSERT INTO @ VALUES (N'数控车床',N'REALLY-5',N'数4',N'Viva T2C/500',N'0.01mm',N'一楼机加车间','2018-05-11',N'',1,NULL);
INSERT INTO @ VALUES (N'锯床',N'REALLY-10',N'锯1',N'GZ4232',N'0.1mm',N'一楼机加车间','2018-08-26',N'',1,NULL);
INSERT INTO @ VALUES (N'内燃叉车',N'REALLY-33',N'油叉',N'CPCD30/3.0T',N'3T',N'一楼机加车间','2020-04-15',N'',1,NULL);
INSERT INTO @ VALUES (N'螺杆空压机',N'REALLY-23',N'15KW空压机',N'LU15 Pmi',N'最大压力0.8Mpa',N'一楼空压机室','2020-06-29',N'',1,NULL);
INSERT INTO @ VALUES (N'冷干机',N'已报废',NULL,N'PRIMAK D21',NULL,N'一楼空压机室','2020-06-29',N'',1,N'报废');
INSERT INTO @ VALUES (N'数控车床',N'REALLY-25',N'数5',N'T55M含自动排屑器',N'0.01mm',N'一楼机加车间','2020-11-05',N'',1,NULL);
INSERT INTO @ VALUES (N'立卧两用数控台',N'加1#用',N'加1四轴',N'SKT13170F',N'0.05mm',N'加1设备内','2020-12-10',N'',1,NULL);
INSERT INTO @ VALUES (N'立式加工中心',N'REALLY-26',N'加3',N'VDF-850A',N'0.02mm',N'一楼机加车间','2020-12-10',N'',1,NULL);
INSERT INTO @ VALUES (N'立卧两用数控台',N'加3#用',NULL,N'SKT13200F',N'0.05mm',N'一楼机加车间','2020-12-10',N'',1,NULL);
INSERT INTO @ VALUES (N'带锯床',N'REALLY-31',N'锯2',N'B33',N'0.1mm',N'一楼机加车间','2021-02-01',N'',1,NULL);
INSERT INTO @ VALUES (N'电动攻丝机',N'RELLY-29',N'攻丝机2#',N'SW-U16-L',N'夹头范围M3-M16',N'一楼机加车间','2021-02-28',N'',1,N'停用');
INSERT INTO @ VALUES (N'自动数控穿孔机',N'REALLY-28',N'电火花',N'NC4030高精度线规结构',N'穿孔直径0.8-3.0mm/0.05mm',N'一楼机加车间','2021-03-03',N'',1,NULL);
INSERT INTO @ VALUES (N'立式加工中心',N'REALLY-27',N'加4',N'VDF-850A',N'0.02mm',N'一楼机加车间','2021-03-11',N'',1,NULL);
INSERT INTO @ VALUES (N'摇臂钻床',N'REALLY-30',N'钻床',N'Z3050/16',N'夹头范围3-50',N'一楼机加车间','2021-03-17',N'',1,NULL);
INSERT INTO @ VALUES (N'航车',N'起重机/吊车',N'5T吊',N'YLHC-27',N'5T',N'一楼机加车间','2021-04-05',N'',1,NULL);
INSERT INTO @ VALUES (N'电动叉车',N'REALLY-34',N'1.5T电叉',N'CDD-1525/CPCZ1.5T',N'1.5T',N'二楼机加车间','2021-04-05',N'',1,NULL);
INSERT INTO @ VALUES (N'普通车床',N'REALLY-32',N'普2',N'CDE6150A',N'0.03mm',N'一楼机加车间','2021-09-02',N'',1,NULL);
INSERT INTO @ VALUES (N'数控车床',N'REALLY-36',N'数7',N'T55S',N'0.01mm',N'一楼机加车间','2022-04-03',N'',1,NULL);
INSERT INTO @ VALUES (N'数控车床',N'REALLY-37',N'数8',N'T55S',N'0.01mm',N'一楼机加车间','2022-04-03',N'',1,NULL);
INSERT INTO @ VALUES (N'洗地机',N'RELLY-38',N'洗地机',N'YZ-X2',NULL,N'一楼机加车间','2022-04-29',N'',1,NULL);
INSERT INTO @ VALUES (N'自动上下料设备',N'REALLY-39',N'数8机械人',N'HY2119/HY-JCSXL1-2',NULL,N'一楼机加车间','2022-06-22',N'',1,NULL);
INSERT INTO @ VALUES (N'加工中心',N'REALLY-40',N'加5',N'V11L',N'0.02mm',N'一楼机加车间','2022-12-09',N'',1,NULL);
INSERT INTO @ VALUES (N'转台',N'加5#用',N'加5四轴',N'HR-255N-K',N'0.05mm',N'一楼机加车间','2022-12-22',N'',1,NULL);
INSERT INTO @ VALUES (N'旋转接头',N'数7#数#8用',NULL,N'YQXJ56M-20',N'0.1mm',N'一楼机加车间','2023-02-06',N'',2,NULL);
INSERT INTO @ VALUES (N'中实三爪液压卡盘',N'数7#数#8用',N'液压卡盘',N'CL-06A5',NULL,N'一楼机加车间','2023-02-14',N'',2,NULL);
INSERT INTO @ VALUES (N'套丝机',N'RELLY-41',N'套丝机',N'SQ-50B1',NULL,N'一楼机加车间','2023-03-12',N'',1,NULL);
INSERT INTO @ VALUES (N'线号机',N'REALLY-17',N'线号机',N'LM-550B/LM550E',NULL,N'二楼装配车间','2023-04-22',N'',1,NULL);
INSERT INTO @ VALUES (N'高频加热炉',N'REALLY-42',N'高频加热',N'TGG-35KW进品版',NULL,N'二楼装配车间','2023-08-06',N'',1,NULL);
INSERT INTO @ VALUES (N'普通车床',N'REALLY-43',N'普3',N'CW6163E/1000',N'0.03mm',N'一楼机加车间','2023-08-14',N'',1,NULL);
INSERT INTO @ VALUES (N'光栅尺数显系统',N'普3#用',N'普3数显',N'Z向1100mmX向570mm',NULL,N'一楼机加车间','2023-08-16',N'',1,NULL);
INSERT INTO @ VALUES (N'卧式加工中心',N'REALLY-45',N'卧加1',N'HCN-6000L',N'0.01mm',N'一楼机加车间','2023-11-27',N'',1,NULL);
INSERT INTO @ VALUES (N'姊妹刀功能软件',N'数7#数#8用',N'对刀仪',N'6FC5800-OAM78-OYB0',NULL,N'一楼机加车间','2023-12-03',N'',2,NULL);
INSERT INTO @ VALUES (N'自动料仓',N'机器人用',N'机器人料仓',N'配机械手定制件',NULL,N'一楼机加车间','2024-01-28',N'',1,NULL);
INSERT INTO @ VALUES (N'电动悬挂起重机(欧式)',N'REALLY-46',N'普车吊',N'LX2.8T-7.3M/LD2-70/YJ',N'1.5T',N'一楼机加车间','2024-06-29',N'',1,NULL);
INSERT INTO @ VALUES (N'电动悬挂起重机(欧式)',N'REALLY-47',N'装配吊',N'LX2.8T-7M/LD2-40/OR6',N'1.5T',N'二楼车间装配区','2024-06-29',N'',1,NULL);
INSERT INTO @ VALUES (N'多功能除渣除油一体机',N'REALLY-50',N'除渣除油机',N'FGB-4',NULL,N'一楼机加车间','2024-06-29',N'',1,NULL);
INSERT INTO @ VALUES (N'桥式悬挂起重机',N'REALLY-49',N'原料吊',N'LX2-7m/LD2-70Y/YK',N'1.5T',N'一楼车间库房区','2024-06-29',N'',1,NULL);
INSERT INTO @ VALUES (N'切割剥皮两用机',N'REALLY-60',N'割管机',N'QB-51',NULL,N'二楼车间清洗间','2024-09-29',N'',1,NULL);
INSERT INTO @ VALUES (N'缩管机',N'REALLY-61',N'缩管机',N'KM-91C8-323',NULL,N'二楼车间清洗间','2024-09-29',N'',1,NULL);
INSERT INTO @ VALUES (N'冷冻式干燥机',N'REALLY-59',N'冷干机',N'AD2-10',NULL,N'一楼三坐标室','2024-11-25',N'',1,NULL);
INSERT INTO @ VALUES (N'工业脉冲集尘机',N'REALLY-52',N'磨床除尘机',N'FMCJC-2200',NULL,N'一楼机加车间','2024-11-25',N'',1,NULL);
INSERT INTO @ VALUES (N'闪链云智能物',N'REALLY-58',N'刀具柜',N'智能刀具柜主柜88货道+40侧边格/SCCM-03',NULL,N'一楼机加车间','2024-11-25',N'',1,NULL);
INSERT INTO @ VALUES (N'小锯床',N'REALLY-63',N'小带锯',N'DLY-18F1',N'切割范围45°φ100mm/90°180mm',N'二楼车间装配区','2024-11-25',N'',1,NULL);
INSERT INTO @ VALUES (N'车床桁架机械手',N'REALLY-51',N'数5机械手',N'CNPR-B02/CNPR-3000-B',NULL,N'一楼机加车间','2024-11-29',N'',1,NULL);
INSERT INTO @ VALUES (N'二氧焊机',N'REALLY-55',N'二氧焊机',N'YM-350FR2',NULL,N'一楼车间打磨间','2024-11-29',N'',1,N'停用');
INSERT INTO @ VALUES (N'弯管机',N'REALLY-62',N'弯管机',N'DW38NC',NULL,N'二楼车间装配区','2024-11-29',N'',1,NULL);
INSERT INTO @ VALUES (N'数控机床(多主轴车削中心)',N'REALLY-57',N'数9',N'DUAL TURN200/DT200',N'0.01mm',N'一楼机加车间','2024-12-10',N'',1,NULL);
INSERT INTO @ VALUES (N'外圆磨床',N'REALLY-53',N'磨1',N'M1332B/1000',N'0.005mm',N'一楼机加车间','2024-12-25',N'',1,NULL);
INSERT INTO @ VALUES (N'气动压力机',N'REALLY-64',N'压力机1',N'大双柱63型 推力200KG',NULL,N'二楼车间装配','2024-12-03',N'',1,NULL);
INSERT INTO @ VALUES (N'气动压力机',N'REALLY-65',N'压力机2',N'大双柱63型 推力200KG',NULL,N'二楼车间装配','2024-12-03',N'',1,NULL);
INSERT INTO @ VALUES (N'气动压力机',N'REALLY-66',N'压力机3',N'大双柱63型 推力200KG',NULL,N'二楼车间装配','2024-12-03',N'',1,NULL);
INSERT INTO @ VALUES (N'卡套预装机+模具四套',N'REALLY-67',N'卡套预装机',N'KC-A01',NULL,N'二楼车间装配区','2025-01-01',N'',1,NULL);
INSERT INTO @ VALUES (N'单臂移动式焊烟净化器',N'REALLY-56',N'焊烟净化器',N'LW1201L-030AFLW-C-M1201-030A1',N'3000m³/小时',N'一楼车间打磨间','2025-02-13',N'',1,NULL);
INSERT INTO @ VALUES (N'冷干机',N'REALLY-24替换原冷干机',N'冷干机',N'FX45-230/1/50-CN',NULL,N'一楼空压机室','2025-02-07',N'',1,NULL);
INSERT INTO @ VALUES (N'管型预绝缘端子压接机',N'REALLY-68',N'端子机1',N'MD-E(0.5-4平方',N'压接端子范围0.5-4mm²',N'二楼装配车间','2025-08-29',N'',1,NULL);
INSERT INTO @ VALUES (N'OTUT端子压接机2#',N'REALLY-69',N'端子机2',N'MD-180S/MD-180TUT',N'截面积0.33-0.82mm²',N'二楼装配车间','2025-09-04',N'',1,NULL);
INSERT INTO @ VALUES (N'车床桁架机械手',N'REALLY-70',N'数7机械手',N'CNPR-B02/SX-621',NULL,N'一楼机加车间','2025-08-31',N'',1,NULL);
INSERT INTO @ VALUES (N'氩弧焊机',N'REALLY-71',N'氩弧焊机',N'WSE-315',N'使用焊丝规格φ1.0-3.0mm/电流范围20-315A',N'一楼焊接区','2014-06-03',N'',1,N'停用');
INSERT INTO @ VALUES (N'车床桁架机械手',N'REALLY-74',N'数9机械手',N'CNPR-B02/SX-620',N'0.1mm',N'一楼机加车间','2025-08-31',N'',1,NULL);
INSERT INTO @ VALUES (N'电动悬挂起重机(欧式)',N'REALLY-72',N'阀类吊',N'LX2.8T-6M',N'最大起重2.8T/链长6M',N'二楼阀类测试区','2025-12-04',N'',1,NULL);
INSERT INTO @ VALUES (N'马扎克数控车床',N'REALLY-73',N'数6',N'QTE200/500L',N'12工位刀塔/加工φ290/行程500',N'一楼机加车间','2026-01-10',N'',1,NULL);
INSERT INTO @ VALUES (N'马扎克加工中心',N'REALLY-75',N'加2',N'FF400V/30L',N'X500/Y400/Z400',N'一楼机加车间','2026-02-10',N'',1,NULL);
INSERT INTO @ VALUES (N'电动攻丝机',N'RELLY-54',N'攻丝机1#',N'M3-M20(YZ-20C)',N'夹头范围M3-M20',N'一楼机加车间','2025-12-01',N'',1,NULL);
INSERT INTO @ VALUES (N'手动液压叉车',N'REALLY-76',N'手动搬运车',N'黄色AC540 2.5T',N'最大承重2.5T',N'一楼机加车间','2025-12-11',N'',1,NULL);
INSERT INTO @ VALUES (N'455铜铝型材切割机(全自动)',N'REALLY-77',N'自动切割机',N'455铜铝型材切割机',N'最大切割行程100',N'一楼机加车间','2026-03-09',N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-78',N'数5用',N'YWJC-LD300',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-79',N'数7用',N'YWJC-LD300',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-80',N'数8用',N'YWJC-LD300',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-81',N'数6用',N'YWJC-LD300',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-82',N'加2用',N'YWJC-LD1100',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-83',N'加3用',N'YWJC-LD1100',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-84',N'加5用',N'YWJC-LD1100',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-85',N'卧加用',N'YWJC-LD1500',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'油雾收集器',N'REALLY-86',N'数9用',N'YWJC-LD600',NULL,N'一楼机加车间',NULL,N'',1,NULL);
INSERT INTO @ VALUES (N'无尘环保带锯床',N'REALLY-87',N'小带锯2#',N'DLY-18F1',N'45°切割范围φ100',N'一楼机打磨间','2026-05-20',N'',1,NULL);
INSERT INTO @ VALUES (N'车床桁架机械手',N'REALLY-88',N'数6机械手',N'CNPR-B03',NULL,N'一楼机加车间',NULL,N'',1,NULL);
MERGE [dbo].[_设备工位点检表] AS target
USING @ AS source
ON ISNULL(target.[], N'') = ISNULL(source.[], N'') AND ISNULL(source.[], N'') <> N''
WHEN MATCHED THEN UPDATE SET
target.[]=source.[], target.[]=source.[], target.[]=source.[], target.[]=source.[], target.[使]=source.[使], target.[]=source.[], target.[]=source.[], target.[]=source.[], target.[]=source.[]
WHEN NOT MATCHED BY TARGET THEN
INSERT ([],[],[],[],[],[使],[],[],[],[])
VALUES (source.[],source.[],source.[],source.[],source.[],source.[使],source.[],source.[],source.[],source.[]);
GO
SELECT COUNT(*) AS [] FROM [dbo].[_设备工位点检表];
GO

View File

@@ -0,0 +1,43 @@
USE [YL_MESDB]
GO
DECLARE @NewMenuId INT;
SELECT @NewMenuId = MAX(id)
FROM [dbo].[_二级菜单]
WHERE title = N'结算工时'
OR componet = '/ProductionManagement/SettlementWorkhours/index';
IF @NewMenuId IS NULL
BEGIN
SELECT @NewMenuId = ISNULL(MAX(id), 0) + 1
FROM [dbo].[_二级菜单];
END;
INSERT INTO [dbo].[_二级菜单]
(id, pid, path, componet, redirect, name, title, icon, , , , AddData, DeleteData, EditData, SearchData)
SELECT
@NewMenuId AS id,
3 AS pid,
'SettlementWorkhours/index' AS path,
'/ProductionManagement/SettlementWorkhours/index' AS componet,
'' AS redirect,
'SettlementWorkhours' AS name,
N'结算工时' AS title,
ISNULL(NULLIF(w.icon, ''), 'DimensionsSummaryReport') AS icon,
w.,
w.,
ISNULL(w., 1) AS ,
w.AddData,
w.DeleteData,
w.EditData,
w.SearchData
FROM [dbo].[_二级菜单] w
WHERE w.title = N'工时查询'
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.title = N'结算工时'
AND existing. = w.
);
GO

View File

@@ -0,0 +1,85 @@
USE [YL_MESDB]
GO
SET NOCOUNT ON;
DECLARE @Title nvarchar(100) = N'及时齐套跟踪结果';
DECLARE @Path nvarchar(300) = N'TimelyKitTrackingResult/index';
DECLARE @Component nvarchar(300) = N'/PlanManagement/TimelyKitTrackingResult/index';
DECLARE @Name nvarchar(100) = N'TimelyKitTrackingResult';
DECLARE @SourcePath nvarchar(300) = N'PlanShell/index';
DECLARE @SourceComponent nvarchar(300) = N'/PlanManagement/PlanShell/index';
IF OBJECT_ID(N'dbo.登录基础数据_二级菜单', N'U') IS NULL
BEGIN
RAISERROR(N'未找到表 dbo.登录基础数据_二级菜单。', 16, 1);
RETURN;
END;
DECLARE @IdIsIdentity bit = ISNULL(COLUMNPROPERTY(OBJECT_ID(N'dbo.登录基础数据_二级菜单'), N'id', 'IsIdentity'), 0);
IF @IdIsIdentity = 1
BEGIN
;WITH SourceRows AS (
SELECT
src.[],
src.[pid],
src.[icon]
FROM [dbo].[_二级菜单] src
WHERE src.[] = 1
AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'计划用表')
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.[] = src.[]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
)
INSERT INTO [dbo].[_二级菜单]
([pid], [path], [componet], [redirect], [name], [title], [icon], [], [])
SELECT [pid], @Path, @Component, NULL, @Name, @Title, [icon], [], 1
FROM SourceRows;
END
ELSE
BEGIN
;WITH SourceRows AS (
SELECT
ROW_NUMBER() OVER (ORDER BY src.[], src.[id]) AS rn,
src.[],
src.[pid],
src.[icon]
FROM [dbo].[_二级菜单] src
WHERE src.[] = 1
AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'计划用表')
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_二级菜单] existing
WHERE existing.[] = src.[]
AND (existing.[path] = @Path OR existing.[componet] = @Component OR existing.[title] = @Title)
)
),
BaseId AS (
SELECT ISNULL(MAX([id]), 0) AS maxId
FROM [dbo].[_二级菜单]
)
INSERT INTO [dbo].[_二级菜单]
([id], [pid], [path], [componet], [redirect], [name], [title], [icon], [], [])
SELECT BaseId.maxId + SourceRows.rn, SourceRows.[pid], @Path, @Component, NULL, @Name, @Title, SourceRows.[icon], SourceRows.[], 1
FROM SourceRows
CROSS JOIN BaseId;
END;
UPDATE [dbo].[_二级菜单]
SET
[path] = @Path,
[componet] = @Component,
[name] = @Name,
[title] = @Title,
[] = [id],
[] = 1
WHERE [title] = @Title OR [componet] = @Component;
SELECT [id], [pid], [path], [componet], [name], [title], [icon], [], []
FROM [dbo].[_二级菜单]
WHERE [path] = @Path OR [componet] = @Component OR [title] = @Title
ORDER BY [], [id];

View File

@@ -0,0 +1,231 @@
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID(N'[dbo].[生产管理_结算工时_查询]', N'P') IS NULL
EXEC(N'CREATE PROCEDURE [dbo].[生产管理_结算工时_查询] AS BEGIN SET NOCOUNT ON; END')
GO
ALTER PROCEDURE [dbo].[_结算工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL,
@ INT = 100
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
AID,
,
,
FROM [dbo].[MES_接口_生产计划]
WHERE IS NULL
),
AS (
SELECT TOP (CASE WHEN ISNULL(@, 0) <= 0 THEN 100 ELSE @ END)
v.TaskAID,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
p.,
p.
FROM [dbo].[View_生产工时视图] v
INNER JOIN p ON p.AID = v.TaskAID
WHERE (@ IS NULL OR @ = '' OR v. >= @)
AND (@ IS NULL OR @ = '' OR v. < DATEADD(DAY, 1, @))
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. = @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND ISNULL(v., 0) > 0
AND (ISNULL(v., '') IN ('报工', '辅助结束') OR ISNULL(v., '') IN ('报工', '辅助结束'))
ORDER BY v. DESC
),
AS (
SELECT DISTINCT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS
FROM
),
AS (
SELECT
k.TaskAID,
k.,
LTRIM(RTRIM(s.value)) AS
FROM k
INNER JOIN [dbo].[View_生产工时视图全部] v2
ON v2.TaskAID = k.TaskAID
AND v2. >= CONVERT(DATETIME, k., 120)
AND v2. < DATEADD(SECOND, 1, CONVERT(DATETIME, k., 120))
CROSS APPLY STRING_SPLIT(REPLACE(REPLACE(ISNULL(v2., ''), N'', ','), N'', ','), ',') s
WHERE ISNULL(v2., 0) <= 0
AND NULLIF(LTRIM(RTRIM(s.value)), '') IS NOT NULL
),
AS (
SELECT
TaskAID,
,
STRING_AGG(, ',') AS
FROM (
SELECT DISTINCT TaskAID, ,
FROM
) x
GROUP BY TaskAID,
),
AS (
SELECT
ISNULL(b., b.) AS ,
ISNULL(b., b.) AS ,
b.,
b.,
b.TaskAID,
b.,
b.,
ISNULL(o., '') AS ,
CASE
WHEN ISNULL(b., '') LIKE '%辅助%' OR ISNULL(b., '') LIKE '%辅助%' THEN '辅助结束'
ELSE '报工'
END AS ,
CAST(ISNULL(b., 0) / 60.0 / 60.0 AS DECIMAL(18, 4)) AS ,
ISNULL(b., 0) AS
FROM b
LEFT JOIN o
ON o.TaskAID = b.TaskAID
AND o. = CONVERT(VARCHAR(19), b., 120)
),
AS (
SELECT
,
,
,
,
MAX() AS ,
MAX() AS ,
COUNT(*) AS ,
SUM(CASE WHEN = '报工' THEN ELSE 0 END) AS ,
SUM(CASE WHEN = '辅助结束' THEN ELSE 0 END) AS ,
SUM(CASE WHEN = '报工' THEN ELSE 0 END) AS ,
SUM(CASE WHEN = '辅助结束' THEN ELSE 0 END) AS ,
SUM() AS
FROM j
GROUP BY , , ,
),
AS (
SELECT
,
,
ISNULL(, '') AS ,
STRING_AGG(, ',') AS
FROM (
SELECT DISTINCT
j.,
j.,
ISNULL(j., '') AS ,
LTRIM(RTRIM(s.value)) AS
FROM j
CROSS APPLY STRING_SPLIT(REPLACE(REPLACE(ISNULL(j., ''), N'', ','), N'', ','), ',') s
WHERE NULLIF(LTRIM(RTRIM(s.value)), '') IS NOT NULL
) x
GROUP BY , , ISNULL(, '')
),
AS (
SELECT
b.,
b.,
b.,
b.,
b.,
b.,
b.,
b.,
b.,
b.,
b.,
b.,
ISNULL(o., '') AS
FROM b
LEFT JOIN o
ON o. = b.
AND o. = b.
AND o. = ISNULL(b., '')
),
AS (
SELECT
,
,
SUM() AS ,
SUM() AS ,
SUM() AS ,
SUM() AS ,
SUM() AS ,
SUM() AS
FROM
GROUP BY ,
)
SELECT
1 AS [Level],
AS materialCode,
AS materialDesc,
ISNULL(, '') + ' ' + ISNULL(, '') AS taskDescription,
'' AS productionOrderNo,
'' AS station,
CAST( AS VARCHAR(20)) AS reportWorkHours,
CAST( AS VARCHAR(20)) AS auxiliaryWorkHours,
CAST( AS VARCHAR(20)) AS reportFinishQty,
CAST( AS VARCHAR(20)) AS auxiliaryFinishQty,
CAST( AS VARCHAR(20)) AS totalWorkHours,
CAST(CASE WHEN > 0 THEN ( - 0 * ) / ELSE 0 END AS VARCHAR(20)) AS clampingTime,
CAST(0 AS VARCHAR(20)) AS programTime,
CAST(CASE WHEN > 0 THEN / ELSE 0 END AS VARCHAR(20)) AS settlementReportPieceHours,
CAST(CASE WHEN > 0 THEN / ELSE 0 END AS VARCHAR(20)) AS settlementAuxiliaryPieceHours,
'' AS operatorNames,
CAST( AS VARCHAR(20)) AS recordCount
FROM
UNION ALL
SELECT
2 AS [Level],
AS materialCode,
AS materialDesc,
ISNULL(, '') + ' ' + ISNULL(, '')
+ CASE WHEN NULLIF(ISNULL(, ''), '') IS NULL THEN '' ELSE ' ' + END
+ CASE WHEN IS NULL THEN '' ELSE '' + CAST( AS VARCHAR(20)) END AS taskDescription,
ISNULL(, '') AS productionOrderNo,
ISNULL(, '') AS station,
CAST( AS VARCHAR(20)) AS reportWorkHours,
CAST( AS VARCHAR(20)) AS auxiliaryWorkHours,
CAST( AS VARCHAR(20)) AS reportFinishQty,
CAST( AS VARCHAR(20)) AS auxiliaryFinishQty,
CAST( AS VARCHAR(20)) AS totalWorkHours,
CAST(CASE WHEN > 0 THEN ( - 0 * ) / ELSE 0 END AS VARCHAR(20)) AS clampingTime,
CAST(0 AS VARCHAR(20)) AS programTime,
CAST(CASE WHEN > 0 THEN / ELSE 0 END AS VARCHAR(20)) AS settlementReportPieceHours,
CAST(CASE WHEN > 0 THEN / ELSE 0 END AS VARCHAR(20)) AS settlementAuxiliaryPieceHours,
ISNULL(, '') AS operatorNames,
CAST( AS VARCHAR(20)) AS recordCount
FROM
ORDER BY materialCode, [Level], productionOrderNo, station
END
GO

View File

@@ -0,0 +1,410 @@
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID(N'dbo.生产管理_及时齐套跟踪结果_查询', N'P') IS NULL
BEGIN
EXEC(N'CREATE PROCEDURE [dbo].[生产管理_及时齐套跟踪结果_查询] AS BEGIN SET NOCOUNT ON; END');
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_及时齐套跟踪结果_查询]
@ int = 0,
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'全部',
@ nvarchar(50) = N'全部',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'全部',
@ nvarchar(50) = N'全部',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'全部',
@ nvarchar(50) = N'全部'
AS
BEGIN
SET NOCOUNT ON;
;WITH SAP缺件源 AS (
SELECT
s.DocEntry,
s.Project COLLATE DATABASE_DEFAULT AS Project,
s.[],
s.ItemCode COLLATE DATABASE_DEFAULT AS ItemCode,
s.U_Name COLLATE DATABASE_DEFAULT AS U_Name,
ISNULL(s.[] COLLATE DATABASE_DEFAULT, N'') AS ,
ISNULL(s.[], 0) AS ,
ISNULL(s.[], 0) AS ,
s.[] COLLATE DATABASE_DEFAULT AS ,
s.[],
ISNULL(s.[], 0) AS ,
ISNULL(s.[稿], 0) AS 稿
FROM [SAP].[SBO_YL].[dbo].[VIEW_Jijiankukc] AS s
WHERE ISNULL(s.[], 0) > 0
),
SAP缺件 AS (
SELECT TOP (2000)
src.*
FROM (
SELECT
SAP缺件源.*,
ROW_NUMBER() OVER (
PARTITION BY
SAP缺件源.DocEntry,
SAP缺件源.Project,
SAP缺件源.ItemCode,
SAP缺件源.
ORDER BY
SAP缺件源.[] DESC,
SAP缺件源.[]
) AS rn
FROM SAP缺件源
) AS src
WHERE src.rn = 1
),
AS (
SELECT
ISNULL(v.[], N'') AS [],
ISNULL(v.[], N'') AS [],
v.[] AS [],
v.[] AS [],
v.[] AS [],
v.[],
v.[],
v.[] AS [],
v.[],
CASE
WHEN ISNULL(v.[], 0) = 1 THEN N'已发货'
ELSE N'未发货'
END AS [],
CASE
WHEN ISNULL(v.[], 0) = 1 THEN N''
ELSE N''
END AS [],
CASE
WHEN ISNULL(v.[], 0) = 1 THEN N'已拣配'
ELSE N'未拣配'
END AS [],
CASE
WHEN ISNULL(v.[], N'') = N'1' THEN N'发料齐套'
WHEN ISNULL(v.[], N'') = N'2' THEN N'发料缺件'
ELSE N'未发料'
END AS [],
CASE
WHEN ISNULL(v.[], 0) IN (2, 4) OR v.[] > '1900-01-01' THEN N'已开工'
ELSE N'待执行'
END AS [],
v.[],
CASE
WHEN final_check.[] IS NOT NULL THEN N''
ELSE N''
END AS [],
CASE WHEN ISNULL(v.[], 0) = 1 THEN N'' ELSE N'' END AS [],
CASE WHEN ISNULL(v.[], 0) = 1 THEN N'已排产' ELSE N'未排产' END AS [],
ISNULL(v.[], N'') AS [],
v.[] AS [],
sap.ItemCode AS [],
sap.U_Name AS [],
sap.[] AS [],
CASE WHEN sap.[] = N'' THEN N'外购' ELSE sap.[] END AS [],
CASE
WHEN sap.[] = N'' THEN ISNULL(CONVERT(nvarchar(50), NULLIF(sap.[稿], 0)), N'')
ELSE ISNULL(CONVERT(nvarchar(50), detail_order.[]), N'')
END AS [],
CASE WHEN sap.[] = N'' THEN N'' ELSE ISNULL(current_step.[], N'') END AS [],
CASE
WHEN sap.[] = N'' THEN
N'采购员:' + ISNULL(NULLIF(sap.[], N''), N'-') +
N' / 未清数量:' + CONVERT(nvarchar(30), sap.[]) +
N' / 到货草稿:' + CONVERT(nvarchar(30), sap.[稿]) +
N' / 质检状态:' + ISNULL(purchase_check.[], N'未完成')
ELSE ISNULL(route.[线], N'')
END AS [线],
CASE
WHEN sap.[] = N'' THEN sap.[]
ELSE route.[]
END AS [],
CASE WHEN sap.[] = N'' THEN N'' ELSE ISNULL(route.[线], N'[]') END AS [线],
sap.[],
sap.[],
sap.[稿],
ISNULL(purchase_check.[], CASE WHEN sap.[] = N'' THEN N'未完成' ELSE N'' END) AS [],
sap.DocEntry AS [SAP单据],
sap.[] AS [SAP行号]
FROM SAP缺件 AS sap
OUTER APPLY (
SELECT TOP (1) m.*
FROM [dbo].[View_生产订单_MES] AS m
WHERE m.[] = N'pit_Resource'
AND ISNULL(m.[], 0) = 1
AND m.[] = sap.DocEntry
ORDER BY m.[]
) AS v
OUTER APPLY (
SELECT TOP (1) m.*
FROM [dbo].[View_生产订单_MES] AS m
WHERE m.[] = N'pit_Resource'
AND ISNULL(m.[], 0) = 1
AND m.[] <> v.[]
AND (
(sap.[] = N'机加件' AND m.[] = sap.ItemCode)
OR (sap.[] LIKE N'%装配%' AND m.[] = sap.ItemCode AND ISNULL(m.[], N'') = ISNULL(sap.Project, N''))
)
ORDER BY m.[] DESC, m.[]
) AS detail_order
OUTER APPLY (
SELECT TOP (1) q.[]
FROM [dbo].[YL_质量检验_质检记录] AS q
WHERE q.[] = N'终检'
AND q.[] = v.[]
) AS final_check
OUTER APPLY (
SELECT
MAX(p.[]) AS [],
STUFF((
SELECT N'' + p2.[] +
CASE WHEN ISNULL(p2.[], N'') = N'' THEN N'' ELSE N'(' + p2.[] + N')' END
FROM [dbo].[View_生产订单_MES] AS p2
WHERE p2.[] = detail_order.[]
AND p2.[] = N'pit_Resource'
ORDER BY p2.[]
FOR XML PATH(N''), TYPE
).value(N'.', N'nvarchar(max)'), 1, 1, N'') AS [线],
(
SELECT
p2.[],
p2.[],
p2.[],
p2.[],
p2.[],
ISNULL(p2.[], 0) AS [],
ISNULL(p2.[], 0) AS [],
ISNULL(p2.[], 0) AS [],
ISNULL(p2.[], 0) AS [],
p2.[],
ISNULL(check_qty.[], 0) AS [],
ISNULL(check_qty.[], 0) AS []
FROM [dbo].[View_生产订单_MES] AS p2
OUTER APPLY (
SELECT
SUM(ISNULL(q.[], 0)) AS [],
SUM(ISNULL(q.[], 0)) AS []
FROM [dbo].[YL_质量检验_质检记录] AS q
WHERE q.[TaskAID] = p2.[TaskAID]
AND q.[] = N'收检'
) AS check_qty
WHERE p2.[] = detail_order.[]
AND p2.[] = N'pit_Resource'
ORDER BY p2.[]
FOR JSON PATH
) AS [线]
FROM [dbo].[View_生产订单_MES] AS p
WHERE p.[] = detail_order.[]
AND p.[] = N'pit_Resource'
) AS route
OUTER APPLY (
SELECT TOP (1)
pending.[],
pending.[],
pending.[],
pending.[],
pending.[],
pending.[],
pending.[]
FROM [dbo].[View_生产订单_MES] AS pending
WHERE pending.[] = detail_order.[]
AND pending.[] = N'pit_Resource'
AND NOT (
ISNULL(pending.[], 0) >= 100
OR (ISNULL(pending.[], 0) > 0 AND ISNULL(pending.[], 0) >= ISNULL(pending.[], 0))
)
ORDER BY pending.[]
) AS pending
OUTER APPLY (
SELECT TOP (1) prev.[]
FROM [dbo].[View_生产订单_MES] AS prev
WHERE prev.[] = detail_order.[]
AND prev.[] = N'pit_Resource'
AND prev.[] < pending.[]
ORDER BY prev.[] DESC
) AS prev_step
OUTER APPLY (
SELECT TOP (1) last_step.[]
FROM [dbo].[View_生产订单_MES] AS last_step
WHERE last_step.[] = detail_order.[]
AND last_step.[] = N'pit_Resource'
ORDER BY last_step.[] DESC
) AS last_step
OUTER APPLY (
SELECT
CASE
WHEN detail_order.[] IS NULL THEN N''
WHEN pending.[] IS NULL THEN ISNULL(last_step.[], N'') + N''
WHEN ISNULL(pending.[], 0) > 0
OR ISNULL(pending.[], 0) > 0
OR ISNULL(pending.[], 0) IN (2, 3, 4, 5, 6)
OR pending.[] > '1900-01-01'
THEN ISNULL(pending.[], N'') + N''
WHEN prev_step.[] IS NULL THEN N''
ELSE prev_step.[] + N'毕待' + ISNULL(pending.[], N'')
END AS []
) AS current_step
OUTER APPLY (
SELECT
CASE
WHEN sap.[] <> N'' THEN N''
WHEN EXISTS (
SELECT 1
FROM [dbo].[_质检任务_SAP] AS task
OUTER APPLY (
SELECT SUM(ISNULL(q.[], 0)) AS []
FROM [dbo].[YL_质量检验_质检记录] AS q
WHERE q.[] = 5
AND q.[] = task.[]
AND q.[] = task.[]
AND q.[] = task.[]
) AS checked_qty
WHERE sap.[稿] > 0
AND task.[] = N'20'
AND task.[] = sap.[稿]
AND ISNULL(task.[], 0) > 0
)
AND NOT EXISTS (
SELECT 1
FROM [dbo].[_质检任务_SAP] AS task
OUTER APPLY (
SELECT SUM(ISNULL(q.[], 0)) AS []
FROM [dbo].[YL_质量检验_质检记录] AS q
WHERE q.[] = 5
AND q.[] = task.[]
AND q.[] = task.[]
AND q.[] = task.[]
) AS checked_qty
WHERE sap.[稿] > 0
AND task.[] = N'20'
AND task.[] = sap.[稿]
AND (
ISNULL(task.[], 0) <= 0
OR ISNULL(checked_qty.[], 0) < ISNULL(task.[], 0)
)
) THEN N'已完成'
ELSE N'未完成'
END AS []
) AS purchase_check
WHERE
v.[] IS NOT NULL
AND (@ <= 0 OR v.[] = @)
AND (@ = N'' OR ISNULL(v.[], N'') = @)
AND (@ = N'' OR ISNULL(v.[], N'') LIKE N'%' + @ + N'%')
AND (@ = N'' OR ISNULL(v.[], N'') LIKE N'%' + @ + N'%')
AND (@ = N'' OR ISNULL(v.[], N'') LIKE N'%' + @ + N'%')
AND (@ = N'' OR EXISTS (
SELECT 1
FROM [dbo].[View_生产订单_MES] AS fp
WHERE fp.[] = v.[]
AND fp.[] = @
))
AND (@ = N'' OR v.[] >= TRY_CONVERT(datetime, @))
AND (@ = N'' OR v.[] <= TRY_CONVERT(datetime, @))
AND (@ = N'全部' OR @ = N'' OR
(@ = N'已完成' AND ISNULL(v.[], 0) = 1) OR
(@ = N'未完成' AND ISNULL(v.[], 0) = 0)
)
AND (@ = N'全部' OR @ = N'' OR EXISTS (
SELECT 1
FROM [dbo].[View_生产订单_MES] AS ap
WHERE ap.[] = v.[]
AND ap.[] IN (SELECT LTRIM(RTRIM(value)) FROM STRING_SPLIT(@, N','))
))
AND (@ = N'全部' OR @ = N'' OR
(@ = N'已发货' AND ISNULL(v.[], N'0') = N'1') OR
(@ = N'未发货' AND ISNULL(v.[], N'0') <> N'1')
)
AND (@ = N'全部' OR @ = N'' OR
(@ = N'' AND ISNULL(v.[], 0) = 1) OR
(@ = N'' AND ISNULL(v.[], 0) <> 1)
)
AND (@ = N'全部' OR @ = N'' OR
(@ = N'发料齐套' AND ISNULL(v.[], N'0') = N'1') OR
(@ = N'发料缺件' AND ISNULL(v.[], N'0') = N'2') OR
(@ = N'未发料' AND ISNULL(v.[], N'0') NOT IN (N'1', N'2'))
)
AND (@ = N'全部' OR @ = N'' OR
(@ = N'机加' AND (sap.[] = N'机加件' OR v.[] = N'机加件')) OR
(@ = N'装配' AND (sap.[] LIKE N'%装配%' OR v.[] LIKE N'%装配%'))
)
AND (@ = N'' OR (sap.[] = N'' AND ISNULL(purchase_check.[], N'') = @))
)
SELECT TOP (1000)
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[线],
[],
[线],
[],
[],
[稿],
[],
[SAP单据],
[SAP行号]
FROM (
SELECT
.*,
ROW_NUMBER() OVER (
PARTITION BY
[],
CASE
WHEN ISNULL([], N'') <> N'' THEN []
ELSE [] + N':' + CONVERT(nvarchar(30), [SAP行号])
END
ORDER BY [] DESC, [SAP单据], [SAP行号]
) AS rn
FROM
) AS dedup
WHERE rn = 1
ORDER BY
[],
[],
[],
[];
END
GO

View File

@@ -0,0 +1,76 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[_设备信息_增加]
@ nvarchar(50) = NULL,
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ nvarchar(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
IF ISNULL(@, N'') = N''
BEGIN
SELECT '0' AS result, N'公司编码不能为空' AS message;
RETURN;
END
INSERT INTO [dbo].[_设备工位点检表] (
[],
[],
[],
[],
[],
[],
[使],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[]
)
VALUES (
@,
@,
@,
@,
@,
@,
@使,
TRY_CONVERT(date, NULLIF(@, N'')),
@,
@,
@,
@,
@,
@,
@,
@,
@,
TRY_CONVERT(date, NULLIF(@, N''))
);
SELECT '1' AS result;
END
GO

View File

@@ -0,0 +1,96 @@
USE [YL_MESDB]
GO
DECLARE @ TABLE ([] nvarchar(100), [] date);
INSERT INTO @ VALUES (N'REALLY-11', '2007-01-01');
INSERT INTO @ VALUES (N'REALLY-21', '2007-01-02');
INSERT INTO @ VALUES (N'REALLY-6', '2008-12-24');
INSERT INTO @ VALUES (N'REALLY-1', '2011-01-01');
INSERT INTO @ VALUES (N'REALLY-19', '2011-01-01');
INSERT INTO @ VALUES (N'REALLY-3', '2011-09-30');
INSERT INTO @ VALUES (N'REALLY-8', '2012-03-30');
INSERT INTO @ VALUES (N'REALLY-2', '2014-01-01');
INSERT INTO @ VALUES (N'REALLY-14', '2014-06-06');
INSERT INTO @ VALUES (N'REALLY-4', '2015-03-18');
INSERT INTO @ VALUES (N'REALLY-16', '2015-04-13');
INSERT INTO @ VALUES (N'REALLY-44', '2015-05-18');
INSERT INTO @ VALUES (N'REALLY-13', '2016-02-02');
INSERT INTO @ VALUES (N'REALLY-5', '2018-05-12');
INSERT INTO @ VALUES (N'REALLY-10', '2018-08-27');
INSERT INTO @ VALUES (N'REALLY-33', '2020-04-16');
INSERT INTO @ VALUES (N'REALLY-23', '2020-06-30');
INSERT INTO @ VALUES (N'已报废', '2020-06-30');
INSERT INTO @ VALUES (N'REALLY-25', '2020-11-06');
INSERT INTO @ VALUES (N'加1#用', '2020-12-11');
INSERT INTO @ VALUES (N'REALLY-26', '2020-12-11');
INSERT INTO @ VALUES (N'加3#用', '2020-12-11');
INSERT INTO @ VALUES (N'REALLY-31', '2021-02-02');
INSERT INTO @ VALUES (N'RELLY-29', '2021-03-01');
INSERT INTO @ VALUES (N'REALLY-28', '2021-03-04');
INSERT INTO @ VALUES (N'REALLY-27', '2021-03-12');
INSERT INTO @ VALUES (N'REALLY-30', '2021-03-18');
INSERT INTO @ VALUES (N'起重机/吊车', '2021-04-06');
INSERT INTO @ VALUES (N'REALLY-34', '2021-04-06');
INSERT INTO @ VALUES (N'REALLY-32', '2021-09-03');
INSERT INTO @ VALUES (N'REALLY-36', '2022-04-04');
INSERT INTO @ VALUES (N'REALLY-37', '2022-04-04');
INSERT INTO @ VALUES (N'RELLY-38', '2022-04-30');
INSERT INTO @ VALUES (N'REALLY-39', '2022-06-23');
INSERT INTO @ VALUES (N'REALLY-40', '2022-12-10');
INSERT INTO @ VALUES (N'加5#用', '2022-12-23');
INSERT INTO @ VALUES (N'数7#数#8用', '2023-02-07');
INSERT INTO @ VALUES (N'数7#数#8用', '2023-02-15');
INSERT INTO @ VALUES (N'RELLY-41', '2023-03-13');
INSERT INTO @ VALUES (N'REALLY-17', '2023-04-23');
INSERT INTO @ VALUES (N'REALLY-42', '2023-08-07');
INSERT INTO @ VALUES (N'REALLY-43', '2023-08-15');
INSERT INTO @ VALUES (N'普3#用', '2023-08-17');
INSERT INTO @ VALUES (N'REALLY-45', '2023-11-28');
INSERT INTO @ VALUES (N'数7#数#8用', '2023-12-04');
INSERT INTO @ VALUES (N'机器人用', '2024-01-29');
INSERT INTO @ VALUES (N'REALLY-46', '2024-06-30');
INSERT INTO @ VALUES (N'REALLY-47', '2024-06-30');
INSERT INTO @ VALUES (N'REALLY-50', '2024-06-30');
INSERT INTO @ VALUES (N'REALLY-49', '2024-06-30');
INSERT INTO @ VALUES (N'REALLY-60', '2024-09-30');
INSERT INTO @ VALUES (N'REALLY-61', '2024-09-30');
INSERT INTO @ VALUES (N'REALLY-59', '2024-11-26');
INSERT INTO @ VALUES (N'REALLY-52', '2024-11-26');
INSERT INTO @ VALUES (N'REALLY-58', '2024-11-26');
INSERT INTO @ VALUES (N'REALLY-63', '2024-11-26');
INSERT INTO @ VALUES (N'REALLY-51', '2024-11-30');
INSERT INTO @ VALUES (N'REALLY-55', '2024-11-30');
INSERT INTO @ VALUES (N'REALLY-62', '2024-11-30');
INSERT INTO @ VALUES (N'REALLY-57', '2024-12-11');
INSERT INTO @ VALUES (N'REALLY-53', '2024-12-26');
INSERT INTO @ VALUES (N'REALLY-64', '2024-12-04');
INSERT INTO @ VALUES (N'REALLY-65', '2024-12-04');
INSERT INTO @ VALUES (N'REALLY-66', '2024-12-04');
INSERT INTO @ VALUES (N'REALLY-67', '2025-01-02');
INSERT INTO @ VALUES (N'REALLY-56', '2025-02-14');
INSERT INTO @ VALUES (N'REALLY-24替换原冷干机', '2025-02-08');
INSERT INTO @ VALUES (N'REALLY-68', '2025-08-30');
INSERT INTO @ VALUES (N'REALLY-69', '2025-09-05');
INSERT INTO @ VALUES (N'REALLY-70', '2025-09-01');
INSERT INTO @ VALUES (N'REALLY-71', '2014-06-04');
INSERT INTO @ VALUES (N'REALLY-74', '2025-09-01');
INSERT INTO @ VALUES (N'REALLY-72', '2025-12-04');
INSERT INTO @ VALUES (N'REALLY-73', '2026-01-10');
INSERT INTO @ VALUES (N'REALLY-75', '2026-02-10');
INSERT INTO @ VALUES (N'RELLY-54', '2025-12-01');
INSERT INTO @ VALUES (N'REALLY-76', '2025-12-11');
INSERT INTO @ VALUES (N'REALLY-77', '2026-03-09');
INSERT INTO @ VALUES (N'REALLY-78', NULL);
INSERT INTO @ VALUES (N'REALLY-79', NULL);
INSERT INTO @ VALUES (N'REALLY-80', NULL);
INSERT INTO @ VALUES (N'REALLY-81', NULL);
INSERT INTO @ VALUES (N'REALLY-82', NULL);
INSERT INTO @ VALUES (N'REALLY-83', NULL);
INSERT INTO @ VALUES (N'REALLY-84', NULL);
INSERT INTO @ VALUES (N'REALLY-85', NULL);
INSERT INTO @ VALUES (N'REALLY-86', NULL);
INSERT INTO @ VALUES (N'REALLY-87', '2026-05-20');
INSERT INTO @ VALUES (N'REALLY-88', NULL);
UPDATE target SET target.[] = source.[]
FROM [dbo].[_设备工位点检表] target INNER JOIN @ source ON target.[] = source.[];
SELECT COUNT(*) AS [] FROM [dbo].[_设备工位点检表];
GO

View File

@@ -0,0 +1,120 @@
USE [YL_MESDB]
GO
ALTER PROCEDURE [dbo].[_设备信息_增加]
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ nvarchar(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
IF ISNULL(@, N'') = N''
BEGIN
SELECT '0' AS result, N'公司编码不能为空' AS message;
RETURN;
END
INSERT INTO [dbo].[_设备工位点检表] (
[],
[],
[],
[],
[],
[使],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[]
)
VALUES (
@,
@,
@,
@,
@,
@使,
TRY_CONVERT(date, NULLIF(@, N'')),
@,
@,
@,
@,
@,
@,
@,
@,
@,
TRY_CONVERT(date, NULLIF(@, N''))
);
SELECT '1' AS result;
END
GO
ALTER PROCEDURE [dbo].[_设备信息_编辑]
@ int = NULL,
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ nvarchar(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[_设备工位点检表]
SET
[] = @,
[] = @,
[] = @,
[] = @,
[使] = @使,
[] = TRY_CONVERT(date, NULLIF(@, N'')),
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = TRY_CONVERT(date, NULLIF(@, N''))
WHERE [] = @;
SELECT '1' AS result;
END
GO

View File

@@ -0,0 +1,208 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
LTRIM(RTRIM(Personnel_Name)) AS Personnel_Name,
MAX(NULLIF(LTRIM(RTRIM()), '')) AS
FROM [YL_MESDB].[dbo].[_人员信息]
WHERE Personnel_Name IS NOT NULL
GROUP BY LTRIM(RTRIM(Personnel_Name))
),
AS (
SELECT
v.*,
ISNULL(p., '未分类') AS ,
CASE
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 AND ISNULL(v., 0) = 0 THEN ISNULL(v., 0)
WHEN v. LIKE '%加班%' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '开始加工' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '异常' THEN -ISNULL(v., 0)
ELSE 0
END AS
FROM [dbo].[View_生产工时视图全部] v
LEFT JOIN p ON LTRIM(RTRIM(v.)) = p.Personnel_Name
),
AS (
SELECT *
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM [dbo].[View_生产工时视图全部]
WHERE = 6
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
),
AS (
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
b.TaskAID,
b. AS ,
b.,
b.,
b.,
b.,
b.,
b.,
b. AS ,
ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
b.,
b.,
b.
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
),
AS (
SELECT , SUM() AS
FROM (
SELECT , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , TaskAID,
) x
GROUP BY
),
AS (
SELECT , , SUM() AS
FROM (
SELECT , , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , , TaskAID,
) x
GROUP BY ,
),
AS (
SELECT
,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY , CONVERT(VARCHAR(10), , 120)
)
SELECT
1 AS [Level],
s. AS operator,
'' AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s.
UNION ALL
SELECT
2 AS [Level],
s. AS operator,
s. AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s. AND q. = s.
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours,
CAST(TaskAID AS VARCHAR(50)) AS TaskAID
FROM
ORDER BY operator, dateLabel, [Level], startTime
END

View File

@@ -0,0 +1,192 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
LTRIM(RTRIM(Personnel_Name)) AS Personnel_Name,
MAX(NULLIF(LTRIM(RTRIM()), '')) AS
FROM [YL_MESDB].[dbo].[_人员信息]
WHERE Personnel_Name IS NOT NULL
GROUP BY LTRIM(RTRIM(Personnel_Name))
),
AS (
SELECT
v.*,
ISNULL(p., '未分类') AS ,
CASE
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 AND ISNULL(v., 0) = 0 THEN ISNULL(v., 0)
WHEN v. LIKE '%加班%' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '开始加工' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '异常' THEN -ISNULL(v., 0)
ELSE 0
END AS
FROM [dbo].[View_生产工时视图全部] v
LEFT JOIN p ON LTRIM(RTRIM(v.)) = p.Personnel_Name
),
AS (
SELECT
,
COUNT(*) AS ,
SUM(CASE
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN -
ELSE 0
END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
SUM(CASE
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN -
ELSE 0
END) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
GROUP BY , CONVERT(VARCHAR(10), , 120)
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
AS ,
,
,
,
,
,
,
AS ,
CASE
WHEN NOT IN ('异常') THEN
WHEN = '异常' THEN -
ELSE 0
END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
,
,
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
)
SELECT
1 AS [Level],
AS operator,
'' AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
2 AS [Level],
AS operator,
AS dateLabel,
CAST( AS VARCHAR(20)) AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours
FROM
ORDER BY operator, dateLabel, [Level]
END

View File

@@ -0,0 +1,209 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
LTRIM(RTRIM(Personnel_Name)) AS Personnel_Name,
MAX(NULLIF(LTRIM(RTRIM()), '')) AS
FROM [YL_MESDB].[dbo].[_人员信息]
WHERE Personnel_Name IS NOT NULL
GROUP BY LTRIM(RTRIM(Personnel_Name))
),
AS (
SELECT
v.*,
ISNULL(p., '未分类') AS ,
CASE
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 AND ISNULL(v., 0) = 0 THEN ISNULL(v., 0)
WHEN v. LIKE '%加班%' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '开始加工' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '异常' THEN -ISNULL(v., 0)
ELSE 0
END AS
FROM [dbo].[View_生产工时视图全部] v
LEFT JOIN p ON LTRIM(RTRIM(v.)) = p.Personnel_Name
),
AS (
SELECT *
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM [dbo].[View_生产工时视图全部]
where = 6
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
),
AS (
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
b.TaskAID,
b. AS ,
b.,
b.,
b.,
b.,
b.,
b.,
b. AS ,
ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
b.,
b.,
b.
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
),
AS (
SELECT , SUM() AS
FROM (
SELECT , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , TaskAID,
) x
GROUP BY
),
AS (
SELECT , , SUM() AS
FROM (
SELECT , , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , , TaskAID,
) x
GROUP BY ,
),
AS (
SELECT
,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY , CONVERT(VARCHAR(10), , 120)
)
SELECT
1 AS [Level],
s. AS operator,
'' AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s.
UNION ALL
SELECT
2 AS [Level],
s. AS operator,
s. AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s. AND q. = s.
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours,
CAST(TaskAID AS VARCHAR(50)) AS TaskAID
FROM
ORDER BY operator, dateLabel, [Level], startTime
END

View File

@@ -0,0 +1,209 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
LTRIM(RTRIM(Personnel_Name)) AS Personnel_Name,
MAX(NULLIF(LTRIM(RTRIM()), '')) AS
FROM [YL_MESDB].[dbo].[_人员信息]
WHERE Personnel_Name IS NOT NULL
GROUP BY LTRIM(RTRIM(Personnel_Name))
),
AS (
SELECT
v.*,
ISNULL(p., '未分类') AS ,
CASE
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 AND ISNULL(v., 0) = 0 THEN ISNULL(v., 0)
WHEN v. LIKE '%加班%' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '开始加工' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '异常' THEN -ISNULL(v., 0)
ELSE 0
END AS
FROM [dbo].[View_生产工时视图全部] v
LEFT JOIN p ON LTRIM(RTRIM(v.)) = p.Personnel_Name
),
AS (
SELECT *
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM
WHERE TaskAID IS NOT NULL
AND IS NOT NULL
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
),
AS (
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
b.TaskAID,
b. AS ,
b.,
b.,
b.,
b.,
b.,
b.,
b. AS ,
ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
b.,
b.,
b.
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
),
AS (
SELECT , SUM() AS
FROM (
SELECT , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , TaskAID,
) x
GROUP BY
),
AS (
SELECT , , SUM() AS
FROM (
SELECT , , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , , TaskAID,
) x
GROUP BY ,
),
AS (
SELECT
,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY , CONVERT(VARCHAR(10), , 120)
)
SELECT
1 AS [Level],
s. AS operator,
'' AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s.
UNION ALL
SELECT
2 AS [Level],
s. AS operator,
s. AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s. AND q. = s.
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours,
CAST(TaskAID AS VARCHAR(50)) AS TaskAID
FROM
ORDER BY operator, dateLabel, [Level], startTime
END

View File

@@ -0,0 +1,71 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '作业者工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*12 AS , 256*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
;WITH AS (
SELECT *
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM [dbo].[View_生产工时视图全部]
WHERE = 6
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
)
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
CAST(ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END) AS VARCHAR(20)) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
ORDER BY b., b.
END

View File

@@ -0,0 +1,47 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '作业者工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*12 AS , 256*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CASE WHEN IN ('报工', '辅助结束', '加班', '异常', '开始加工') THEN CAST( AS VARCHAR(20)) ELSE '0' END AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CONVERT(VARCHAR(19), , 120) AS ,
CAST(CAST( / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
ORDER BY ,
END

View File

@@ -0,0 +1,70 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '作业者工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*12 AS , 256*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
;WITH AS (
SELECT *
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM [dbo].[View_生产工时视图全部]
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
)
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
CAST(ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END) AS VARCHAR(20)) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
ORDER BY b., b.
END

View File

@@ -0,0 +1,72 @@
CREATE PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '作业者工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*12 AS , 256*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
;WITH AS (
SELECT *
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM
WHERE TaskAID IS NOT NULL
AND IS NOT NULL
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
)
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
CAST(ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END) AS VARCHAR(20)) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
ORDER BY b., b.
END

View File

@@ -0,0 +1,298 @@
/*
过程异常管控并行审批调整
目标:
1. sp_创建流程_简化版 支持前端传入多个审批人审批人ID/审批人姓名使用英文逗号分隔。
2. 多个审批人写入同一个步骤序号的多个 processing 节点,所有审批人可同时看到待办。
3. sp_获取待处理任务 兼容同一步骤多行节点也兼容旧过程已写入的逗号分隔审批人ID。
4. sp_处理审批 中任意一个审批人同意后,当前流程直接完成,并关闭同一步骤其他待处理节点。
说明:本脚本仅定义存储过程,不插入业务数据。
*/
CREATE OR ALTER PROCEDURE [dbo].[sp_创建流程_简化版]
@ NVARCHAR(200),
@ NVARCHAR(MAX),
@ NVARCHAR(20) = N'normal',
@ID NVARCHAR(100),
@ NVARCHAR(100),
@ID NVARCHAR(MAX),
@ NVARCHAR(MAX),
@ID INT = 0,
@ NVARCHAR(100) = N'',
@ NVARCHAR(100) = N'',
@ NVARCHAR(100) = N'',
@ NVARCHAR(100) = N''
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ INT = 0;
DECLARE @ NVARCHAR(500) = N'';
BEGIN TRY
BEGIN TRANSACTION;
DECLARE @IDXml XML;
DECLARE @Xml XML;
SET @IDXml = CAST(
N'<i>' +
REPLACE(REPLACE(REPLACE(REPLACE(ISNULL(@ID, N''), N'&', N'&amp;'), N'<', N'&lt;'), N'>', N'&gt;'), N',', N'</i><i>') +
N'</i>' AS XML
);
SET @Xml = CAST(
N'<i>' +
REPLACE(REPLACE(REPLACE(REPLACE(ISNULL(@, N''), N'&', N'&amp;'), N'<', N'&lt;'), N'>', N'&gt;'), N',', N'</i><i>') +
N'</i>' AS XML
);
DECLARE @ TABLE (
INT IDENTITY(1, 1) PRIMARY KEY,
ID NVARCHAR(100),
NVARCHAR(100)
);
DECLARE @ID表 TABLE (
INT IDENTITY(1, 1) PRIMARY KEY,
ID NVARCHAR(100)
);
DECLARE @ TABLE (
INT IDENTITY(1, 1) PRIMARY KEY,
NVARCHAR(100)
);
INSERT INTO @ID表 (ID)
SELECT NULLIF(LTRIM(RTRIM(T.C.value(N'.', N'NVARCHAR(100)'))), N'')
FROM @IDXml.nodes(N'/i') AS T(C);
INSERT INTO @ ()
SELECT NULLIF(LTRIM(RTRIM(T.C.value(N'.', N'NVARCHAR(100)'))), N'')
FROM @Xml.nodes(N'/i') AS T(C);
INSERT INTO @ (ID, )
SELECT I.ID, ISNULL(N., I.ID)
FROM @ID表 I
LEFT JOIN @ N ON N. = I.
WHERE I.ID IS NOT NULL;
IF NOT EXISTS (SELECT 1 FROM @)
BEGIN
INSERT INTO @ (ID, )
VALUES (@ID, @);
END;
INSERT INTO [dbo].[] (
,
,
,
,
ID,
,
,
,
,
,
,
,
,
,
)
VALUES (
@,
@,
ISNULL(NULLIF(@, N''), N'normal'),
N'processing',
@ID,
@,
N'异常审批',
1,
1,
ISNULL(@, N''),
ISNULL(@, N''),
ISNULL(@, N''),
ISNULL(@, N''),
GETDATE(),
GETDATE()
);
SET @ID = SCOPE_IDENTITY();
INSERT INTO [dbo].[] (
ID,
,
ID,
,
,
,
)
SELECT
@ID,
N'异常审批',
ID,
,
1,
N'processing',
0
FROM @;
SET @ = 1;
SET @ = N'流程创建成功流程ID: ' + CAST(@ID AS NVARCHAR(20));
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
SET @ = 0;
SET @ = N'错误: ' + ERROR_MESSAGE();
END CATCH;
SELECT @ AS , @ AS , @ID AS ID;
END;
GO
CREATE OR ALTER PROCEDURE [dbo].[sp_获取待处理任务]
@ID NVARCHAR(100)
AS
BEGIN
SET NOCOUNT ON;
SELECT
p.ID,
p.,
p.,
p.,
p.,
p. AS ,
p. AS ,
p.,
p.,
p.,
p.,
pn.ID,
pn. AS ,
pn.
FROM [dbo].[] pn
INNER JOIN [dbo].[] p ON p.ID = pn.ID
WHERE pn. = N'processing'
AND p. = N'processing'
AND (
pn.ID = @ID
OR CHARINDEX(N',' + @ID + N',', N',' + REPLACE(ISNULL(pn.ID, N''), N'', N',') + N',') > 0
)
ORDER BY p. DESC, p. DESC;
END;
GO
CREATE OR ALTER PROCEDURE [dbo].[sp_处理审批]
@ID INT,
@ID INT,
@ID NVARCHAR(100),
@ NVARCHAR(100),
@ NVARCHAR(20),
@ NVARCHAR(MAX) = N'',
@ BIT = 0
AS
BEGIN
SET NOCOUNT ON;
SET @ = 0;
BEGIN TRY
BEGIN TRANSACTION;
DECLARE @ INT;
SELECT @ =
FROM [dbo].[]
WHERE ID = @ID
AND ID = @ID
AND = N'processing';
IF @ IS NULL
BEGIN
RAISERROR(N'待处理节点不存在或已处理。', 16, 1);
END;
INSERT INTO [dbo].[] (
ID,
ID,
ID,
,
,
)
VALUES (
@ID,
@ID,
@ID,
@,
@,
ISNULL(@, N'')
);
IF @ = N'approved'
BEGIN
UPDATE [dbo].[]
SET = N'approved'
WHERE ID = @ID
AND = @
AND = N'processing';
UPDATE [dbo].[]
SET = N'completed',
= N'已完成',
= GETDATE()
WHERE ID = @ID;
IF COL_LENGTH(N'dbo.流程表', N'完成人') IS NOT NULL
BEGIN
EXEC sp_executesql
N'UPDATE [dbo].[流程表] SET 完成人 = @p审批人姓名 WHERE 流程ID = @p流程ID',
N'@p审批人姓名 NVARCHAR(100), @p流程ID INT',
@p审批人姓名 = @,
@p流程ID = @ID;
END;
IF COL_LENGTH(N'dbo.流程表', N'完成时间') IS NOT NULL
BEGIN
EXEC sp_executesql
N'UPDATE [dbo].[流程表] SET 完成时间 = GETDATE() WHERE 流程ID = @p流程ID',
N'@p流程ID INT',
@p流程ID = @ID;
END;
END
ELSE IF @ = N'rejected'
BEGIN
UPDATE [dbo].[]
SET = N'rejected'
WHERE ID = @ID
AND = @
AND = N'processing';
UPDATE [dbo].[]
SET = N'rejected',
= N'已拒绝',
= GETDATE()
WHERE ID = @ID;
END
ELSE
BEGIN
UPDATE [dbo].[]
SET = @
WHERE ID = @ID;
END;
SET @ = 1;
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
SET @ = 0;
THROW;
END CATCH;
SELECT @ AS ;
END;
GO

View File

@@ -0,0 +1,190 @@
USE [YL_MESDB]
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'公司编码') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(100) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'设备信息') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(500) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'使用部门') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [使] nvarchar(100) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'入账日期') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] date NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'单位') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(50) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'数量') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] decimal(18, 4) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'状态') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(50) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'维修记录') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(1000) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'维保记录') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(1000) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'工位绑定') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(1000) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'主要设备') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(10) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'设备标准开机工时') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] decimal(18, 4) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'特种设备') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] nvarchar(10) NULL
GO
IF COL_LENGTH(N'dbo.基础数据_设备工位点检表', N'证书有效期至') IS NULL
ALTER TABLE [dbo].[_设备工位点检表] ADD [] date NULL
GO
ALTER PROCEDURE [dbo].[_设备信息_查询]
@_check bit = NULL,
@ nvarchar(50) = NULL,
@_check bit = NULL,
@ int = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
a.*,
d.[] AS []
FROM [dbo].[_设备工位点检表] a
LEFT JOIN [dbo].[YL_基础表_数据字典] d ON a.[] = d.[AID]
WHERE (@_check IS NULL OR @_check = 0 OR a.[] LIKE N'%' + ISNULL(@, N'') + N'%')
AND (@_check IS NULL OR @_check = 0 OR a.[] = CONVERT(nvarchar(50), @))
ORDER BY
CASE
WHEN a.[] IS NOT NULL AND a.[] < CONVERT(date, GETDATE()) THEN 0
WHEN a.[] IS NOT NULL AND a.[] <= DATEADD(day, 30, CONVERT(date, GETDATE())) THEN 1
ELSE 2
END,
a.[],
a.[] DESC;
END
GO
ALTER PROCEDURE [dbo].[_设备信息_增加]
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ date = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ date = NULL
AS
BEGIN
SET NOCOUNT ON;
IF ISNULL(@, N'') = N''
BEGIN
SELECT '0' AS result, N'公司编码不能为空' AS message;
RETURN;
END
INSERT INTO [dbo].[_设备工位点检表] (
[],
[],
[],
[],
[],
[使],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[]
)
VALUES (
@,
@,
@,
@,
@,
@使,
@,
@,
@,
@,
@,
@,
@,
@,
@,
@,
@
);
SELECT '1' AS result;
END
GO
ALTER PROCEDURE [dbo].[_设备信息_编辑]
@ int = NULL,
@ nvarchar(100) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(500) = NULL,
@使 nvarchar(100) = NULL,
@ date = NULL,
@ nvarchar(50) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(50) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(1000) = NULL,
@ nvarchar(10) = NULL,
@ decimal(18, 4) = NULL,
@ nvarchar(10) = NULL,
@ date = NULL
AS
BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[_设备工位点检表]
SET
[] = @,
[] = @,
[] = @,
[] = @,
[使] = @使,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @,
[] = @
WHERE [] = @;
SELECT '1' AS result;
END
GO

View File

@@ -0,0 +1,290 @@
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[_作业者工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
LTRIM(RTRIM(Personnel_Name)) AS Personnel_Name,
MAX(NULLIF(LTRIM(RTRIM()), '')) AS
FROM [YL_MESDB].[dbo].[_人员信息]
WHERE Personnel_Name IS NOT NULL
GROUP BY LTRIM(RTRIM(Personnel_Name))
),
AS (
SELECT
v.*,
ISNULL(p., '未分类') AS ,
CASE
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. IN ('报工', '辅助结束') AND ISNULL(v., 0) > 0 AND ISNULL(v., 0) = 0 THEN ISNULL(v., 0)
WHEN v. LIKE '%加班%' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '开始加工' AND ISNULL(v., 0) > 0 THEN ISNULL(v., 0)
WHEN v. = '异常' THEN -ISNULL(v., 0)
ELSE 0
END AS
FROM [dbo].[View_生产工时视图全部] v
LEFT JOIN p ON LTRIM(RTRIM(v.)) = p.Personnel_Name
),
AS (
SELECT *
FROM
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR = @)
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM [dbo].[View_生产工时视图全部]
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
),
AS (
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
b.TaskAID,
b. AS ,
b.,
b.,
b.,
b.,
b.,
b.,
b. AS ,
CASE
WHEN ISNULL(b., '') LIKE '%装配%' THEN 0
ELSE ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END)
END AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS ,
b.,
b.,
b.
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
),
AS (
SELECT , SUM() AS
FROM (
SELECT , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , TaskAID,
) x
GROUP BY
),
AS (
SELECT , , SUM() AS
FROM (
SELECT , , TaskAID, , MAX() AS
FROM
WHERE TaskAID IS NOT NULL AND IS NOT NULL AND != ''
GROUP BY , , TaskAID,
) x
GROUP BY ,
),
AS (
SELECT
,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY
),
AS (
SELECT
,
CONVERT(VARCHAR(10), , 120) AS ,
COUNT(*) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS
FROM
GROUP BY , CONVERT(VARCHAR(10), , 120)
)
SELECT
1 AS [Level],
s. AS operator,
'' AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s.
UNION ALL
SELECT
2 AS [Level],
s. AS operator,
s. AS dateLabel,
CAST(s. AS VARCHAR(20)) AS reportCount,
CAST(ISNULL(q., 0) AS VARCHAR(20)) AS reportQty,
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST(NULL AS DECIMAL(19,6)) AS ,
'' AS ,
'' AS ,
'' AS startTime,
'' AS endTime,
'' AS ,
'' AS ,
'' AS ,
CAST(s. AS VARCHAR(20)) AS workHours,
'' AS TaskAID
FROM s
LEFT JOIN q ON q. = s. AND q. = s.
UNION ALL
SELECT
3 AS [Level],
AS operator,
AS dateLabel,
'' AS reportCount,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS contractNo,
ISNULL(, '') AS orderNo,
ISNULL(, '') AS productCode,
ISNULL(, '') AS productName,
ISNULL(, '') AS processName,
AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS startTime,
ISNULL(, '') AS endTime,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
ISNULL(, '') AS ,
CAST( AS VARCHAR(20)) AS workHours,
CAST(TaskAID AS VARCHAR(50)) AS TaskAID
FROM
ORDER BY operator, dateLabel, [Level], startTime
END
GO
ALTER PROCEDURE [dbo].[_作业者工时_查询_导出]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT '作业者工时统计_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
SELECT 256*12 AS , 256*15 AS , 256*20 AS , 256*12 AS , 256*40 AS ,
256*25 AS , 256*15 AS , 256*12 AS , 256*10 AS , 256*20 AS , 256*20 AS , 256*12 AS '工时(h)'
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS '工时(h)'
;WITH AS (
SELECT *
FROM [dbo].[View_生产工时视图]
WHERE (@ IS NULL OR @ = '' OR >= @)
AND (@ IS NULL OR @ = '' OR <= @)
AND IS NOT NULL AND != ''
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR LIKE '%' + @ + '%')
AND ISNULL(, 0) != -1
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN NOT IN ('异常') THEN ISNULL(, 0)
WHEN = '异常' THEN -ISNULL(, 0)
ELSE 0
END) AS
FROM [dbo].[View_生产工时视图全部]
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
)
SELECT
b.,
CONVERT(VARCHAR(10), b., 120) AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
ISNULL(b., '') AS ,
CAST(CASE
WHEN ISNULL(b., '') LIKE '%装配%' THEN 0
ELSE ISNULL(q., CASE
WHEN b. NOT IN ('异常') THEN ISNULL(b., 0)
WHEN b. = '异常' THEN -ISNULL(b., 0)
ELSE 0
END)
END AS VARCHAR(20)) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CONVERT(VARCHAR(19), b., 120) AS ,
CAST(CAST(b. / 60.0 / 60.0 AS DECIMAL(10,2)) AS VARCHAR(20)) AS '工时(h)'
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
ORDER BY b., b.
END
GO

View File

@@ -0,0 +1,253 @@
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_工时查询_工序工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL,
@ INT = 100
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT TOP (CASE WHEN ISNULL(@, 0) <= 0 THEN 100 ELSE @ END)
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.TaskAID,
v.,
CASE
WHEN ISNULL(v., '') LIKE '%辅助%' OR ISNULL(v., '') LIKE '%辅助%' THEN '调机'
WHEN ISNULL(v., '') LIKE '%报工%' OR ISNULL(v., '') LIKE '%报工%' THEN '正常'
ELSE ISNULL(NULLIF(v., ''), v.)
END AS ,
p. AS
FROM [dbo].[View_生产工时视图] v
LEFT JOIN [dbo].[_零件生产工艺_工艺库] p
ON v. = p.
AND v. = p.
WHERE (@ IS NULL OR @ = '' OR v. >= @)
AND (@ IS NULL OR @ = '' OR v. < DATEADD(DAY, 1, @))
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. = @)
AND (ISNULL(v., '') IN ('报工', '辅助结束') OR ISNULL(v., '') IN ('报工', '辅助结束'))
AND ISNULL(v., 0) > 0
ORDER BY v. DESC
),
AS (
SELECT DISTINCT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS
FROM
),
TaskStart报工数量 AS (
SELECT
TaskAID,
CONVERT(VARCHAR(19), , 120) AS ,
MAX(CASE
WHEN = '异常' THEN -ISNULL(, 0)
ELSE ISNULL(, 0)
END) AS
FROM [dbo].[View_生产工时视图全部]
GROUP BY TaskAID, CONVERT(VARCHAR(19), , 120)
),
TaskStart扩展 AS (
SELECT
k.TaskAID,
k.,
CASE
WHEN EXISTS (
SELECT 1
FROM [dbo].[View_生产工时视图全部] v
WHERE v.TaskAID = k.TaskAID
AND CONVERT(VARCHAR(19), v., 120) = k.
AND ISNULL(v., '') LIKE '%白班%'
) THEN '白班'
WHEN EXISTS (
SELECT 1
FROM [dbo].[View_生产工时视图全部] v
WHERE v.TaskAID = k.TaskAID
AND CONVERT(VARCHAR(19), v., 120) = k.
AND ISNULL(v., '') LIKE '%夜班%'
) THEN '夜班'
ELSE ''
END AS ,
(
SELECT STRING_AGG(x., ',')
FROM (
SELECT DISTINCT LTRIM(RTRIM(v2.)) AS
FROM [dbo].[View_生产工时视图全部] v2
WHERE v2.TaskAID = k.TaskAID
AND CONVERT(VARCHAR(19), v2., 120) = k.
AND ISNULL(v2., 0) <= 0
AND NULLIF(LTRIM(RTRIM(ISNULL(v2., ''))), '') IS NOT NULL
) x
) AS
FROM k
),
AS (
SELECT
b.TaskAID,
ISNULL(b., '') + ' ' + ISNULL(b., '') + ' ' + ISNULL(b., '') + '' + CAST(ISNULL(b., 0) AS VARCHAR(50)) AS ,
CONVERT(VARCHAR(10), b., 120) AS ,
e.,
e.,
b. AS ,
b.,
qv.,
b. AS ,
CAST(ISNULL(b., 0) / 60.0 / 60.0 AS DECIMAL(10, 2)) AS ,
CAST(ISNULL(b., 0) / 60.0 AS DECIMAL(10, 2)) AS ,
'' AS ,
CASE
WHEN qv. > 0 THEN CAST((ISNULL(b., 0) / 60.0) / qv. AS DECIMAL(10, 2))
ELSE CAST(ISNULL(b., 0) AS DECIMAL(10, 2))
END AS ,
b.,
CONVERT(VARCHAR(19), b., 120) AS
FROM b
LEFT JOIN TaskStart报工数量 q
ON q.TaskAID = b.TaskAID
AND q. = CONVERT(VARCHAR(19), b., 120)
LEFT JOIN TaskStart扩展 e
ON e.TaskAID = b.TaskAID
AND e. = CONVERT(VARCHAR(19), b., 120)
CROSS APPLY (
SELECT CASE
WHEN ISNULL(b., '') LIKE '%装配%' THEN 0
ELSE ISNULL(q., ISNULL(b., 0))
END AS
) qv
),
AS (
SELECT
TaskAID,
,
,
MAX() AS
FROM
GROUP BY TaskAID, ,
),
Task数量汇总 AS (
SELECT TaskAID, SUM() AS
FROM
GROUP BY TaskAID
),
AS (
SELECT TaskAID, , SUM() AS
FROM
GROUP BY TaskAID,
),
Task汇总 AS (
SELECT
m.TaskAID,
MAX(m.) AS ,
COUNT(*) AS ,
ISNULL(q., 0) AS ,
SUM(m.) AS ,
SUM(m.) AS ,
MAX(m.) AS
FROM m
LEFT JOIN Task数量汇总 q ON q.TaskAID = m.TaskAID
GROUP BY m.TaskAID, q.
),
AS (
SELECT
m.TaskAID,
MAX(m.) AS ,
m.,
COUNT(*) AS ,
ISNULL(q., 0) AS ,
SUM(m.) AS ,
SUM(m.) AS ,
MAX(m.) AS
FROM m
LEFT JOIN q ON q.TaskAID = m.TaskAID AND q. = m.
GROUP BY m.TaskAID, m., q.
)
SELECT
1 AS [Level],
TaskAID,
AS taskDescription,
'' AS dateLabel,
'' AS shift,
'' AS operatorNames,
'' AS productionOrderNo,
'' AS reportType,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS station,
CAST( AS VARCHAR(20)) AS workHours,
CAST( AS VARCHAR(20)) AS actualWorkHours,
'' AS programTime,
CAST(CASE WHEN > 0 THEN / ELSE ISNULL(, 0) END AS VARCHAR(20)) AS pieceWorkHours,
CAST(ISNULL(, 0) AS VARCHAR(20)) AS processWorkHours,
'' AS startTime,
CAST( AS VARCHAR(20)) AS reportCount
FROM Task汇总
UNION ALL
SELECT
2 AS [Level],
TaskAID,
AS taskDescription,
AS dateLabel,
'' AS shift,
'' AS operatorNames,
'' AS productionOrderNo,
'' AS reportType,
CAST( AS VARCHAR(20)) AS reportQty,
'' AS station,
CAST( AS VARCHAR(20)) AS workHours,
CAST( AS VARCHAR(20)) AS actualWorkHours,
'' AS programTime,
CAST(CASE WHEN > 0 THEN / ELSE ISNULL(, 0) END AS VARCHAR(20)) AS pieceWorkHours,
CAST(ISNULL(, 0) AS VARCHAR(20)) AS processWorkHours,
'' AS startTime,
CAST( AS VARCHAR(20)) AS reportCount
FROM
UNION ALL
SELECT
3 AS [Level],
TaskAID,
AS taskDescription,
AS dateLabel,
AS shift,
ISNULL(, '') AS operatorNames,
ISNULL(, '') AS productionOrderNo,
ISNULL(, '') AS reportType,
CAST( AS VARCHAR(20)) AS reportQty,
ISNULL(, '') AS station,
CAST( AS VARCHAR(20)) AS workHours,
CAST( AS VARCHAR(20)) AS actualWorkHours,
AS programTime,
CAST( AS VARCHAR(20)) AS pieceWorkHours,
CAST(ISNULL(, 0) AS VARCHAR(20)) AS processWorkHours,
AS startTime,
'' AS reportCount
FROM
ORDER BY TaskAID, dateLabel, [Level], startTime
END
GO

View File

@@ -0,0 +1,238 @@
CREATE PROCEDURE [dbo].[_工时查询_工序工时_查询]
@ NVARCHAR(50) = NULL,
@ NVARCHAR(100) = NULL,
@ NVARCHAR(50) = NULL,
@ DATE = NULL,
@ DATE = NULL,
@ int = 100
AS
BEGIN
SET NOCOUNT ON;
-- 获取班次信息
DECLARE @ TIME = '07:45:00'
DECLARE @ TIME = '16:30:00'
DECLARE @ TIME = '16:30:00'
DECLARE @ TIME = '00:40:00'
;WITH AS (
SELECT top (@)
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.,
v.TaskAID,
v.,
-- 根据时间判断班次
CASE
WHEN CAST(v. AS TIME) >= @
AND CAST(v. AS TIME) < @ THEN '白班'
WHEN CAST(v. AS TIME) >= @
OR CAST(v. AS TIME) < @ THEN '夜班'
ELSE '其他'
END AS ,
-- 标记实际工时和辅助工时
CASE WHEN v. = '报工' THEN v. ELSE 0 END AS ,
CASE WHEN v. = '辅助结束' THEN v. ELSE 0 END AS ,
-- 标记报工数量和辅助数量
CASE WHEN v. = '报工' THEN v. ELSE 0 END AS ,
CASE WHEN v. = '辅助结束' THEN v. ELSE 0 END AS ,
-- 关联工艺库获取标准工时(工艺工时)
p. AS
FROM View_生产工时视图 v
LEFT JOIN _零件生产工艺_工艺库 p
ON v. = p.
AND v. = p.
WHERE (@ IS NULL OR @ = '' OR v. >= @)
AND (@ IS NULL OR @ = '' OR v. >= @)
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. LIKE '%' + @ + '%')
AND (@ IS NULL OR @ = '' OR v. = @)
-- 去掉报工时间为0的数据实际加工工时或辅助加工工时不为0
AND (CASE WHEN v. = '报工' THEN v. ELSE 0 END > 0
OR CASE WHEN v. = '辅助结束' THEN v. ELSE 0 END > 0)
),
-- 获取每个TaskAID对应的任务描述取第一条记录
Task描述 AS (
SELECT DISTINCT
TaskAID,
-- 任务描述:产品名称 + 产品编码 + 工序名称
ISNULL(, '') + ' ' + ISNULL(, '') + ' ' + ISNULL(, '') + ''+ CAST( AS VARCHAR(50)) AS
FROM
),
-- 第一层按TaskAID汇总
TaskAID汇总 AS (
SELECT
b.TaskAID,
t.,
'' AS ,
'' AS ,
COUNT(*) AS ,
SUM() AS ,
SUM() AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
-- 计算平均实际工时(实际加工工时/实际报工数量)
CASE
WHEN SUM() > 0
THEN CAST((SUM() / 60.0 / 60.0) / SUM() AS DECIMAL(10,2))
ELSE 0
END AS ,
-- 计算平均辅助工时(辅助加工工时/辅助报工数量)
CASE
WHEN SUM() > 0
THEN CAST((SUM() / 60.0 / 60.0) / SUM() AS DECIMAL(10,2))
ELSE 0
END AS ,
-- 工艺工时(取第一条记录的工艺工时)
MAX(b.) AS
FROM b
LEFT JOIN Task描述 t ON b.TaskAID = t.TaskAID
GROUP BY b.TaskAID, t.
),
-- 第二层按TaskAID和日期汇总
AS (
SELECT
b.TaskAID,
t.,
CONVERT(VARCHAR(10), b., 120) AS ,
'' AS ,
COUNT(*) AS ,
SUM() AS ,
SUM() AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
-- 计算平均实际工时(实际加工工时/实际报工数量)
CASE
WHEN SUM() > 0
THEN CAST((SUM() / 60.0 / 60.0) / SUM() AS DECIMAL(10,2))
ELSE 0
END AS ,
-- 计算平均辅助工时(辅助加工工时/辅助报工数量)
CASE
WHEN SUM() > 0
THEN CAST((SUM() / 60.0 / 60.0) / SUM() AS DECIMAL(10,2))
ELSE 0
END AS ,
-- 工艺工时(取该日期第一条记录的工艺工时)
MAX(b.) AS
FROM b
LEFT JOIN Task描述 t ON b.TaskAID = t.TaskAID
GROUP BY b.TaskAID, t., CONVERT(VARCHAR(10), b., 120)
),
-- 第三层按TaskAID、日期和班次汇总
AS (
SELECT
b.TaskAID,
t.,
CONVERT(VARCHAR(10), b., 120) AS ,
b.,
b.,
COUNT(*) AS ,
SUM() AS ,
SUM() AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
CAST(SUM() / 60.0 / 60.0 AS DECIMAL(10,1)) AS ,
-- 计算平均实际工时(实际加工工时/实际报工数量)
CASE
WHEN SUM() > 0
THEN CAST((SUM() / 60.0 / 60.0) / SUM() AS DECIMAL(10,2))
ELSE 0
END AS ,
-- 计算平均辅助工时(辅助加工工时/辅助报工数量)
CASE
WHEN SUM() > 0
THEN CAST((SUM() / 60.0 / 60.0) / SUM() AS DECIMAL(10,2))
ELSE 0
END AS ,
-- 工艺工时(取该班次第一条记录的工艺工时)
MAX(b.) AS
FROM b
LEFT JOIN Task描述 t ON b.TaskAID = t.TaskAID
GROUP BY b.TaskAID, t., CONVERT(VARCHAR(10), b., 120), b., b.
)
-- 第一层TaskAID汇总
SELECT
1 AS [Level],
TaskAID,
AS taskDescription,
'' AS dateLabel,
'' AS shift,
'' AS ,
CAST( AS VARCHAR(20)) AS reportQty,
CAST( AS VARCHAR(20)) AS actualWorkHours,
CAST( AS VARCHAR(20)) AS auxiliaryWorkHours,
CAST( AS VARCHAR(20)) AS avgActualWorkHours,
CAST( AS VARCHAR(20)) AS avgAuxiliaryWorkHours,
CAST(ISNULL(, 0) AS VARCHAR(20)) AS processWorkHours, -- 工艺工时
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST( AS VARCHAR(20)) AS reportCount
FROM TaskAID汇总
WHERE > 0 OR > 0
UNION ALL
-- 第二层:日期汇总
SELECT
2 AS [Level],
TaskAID,
AS taskDescription,
AS dateLabel,
'' AS shift,
'' AS ,
CAST( AS VARCHAR(20)) AS reportQty,
CAST( AS VARCHAR(20)) AS actualWorkHours,
CAST( AS VARCHAR(20)) AS auxiliaryWorkHours,
CAST( AS VARCHAR(20)) AS avgActualWorkHours,
CAST( AS VARCHAR(20)) AS avgAuxiliaryWorkHours,
CAST(ISNULL(, 0) AS VARCHAR(20)) AS processWorkHours, -- 工艺工时
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST( AS VARCHAR(20)) AS reportCount
FROM
WHERE > 0 OR > 0
UNION ALL
-- 第三层:班次汇总
SELECT
3 AS [Level],
TaskAID,
AS taskDescription,
AS dateLabel,
AS shift,
AS ,
CAST( AS VARCHAR(20)) AS reportQty,
CAST( AS VARCHAR(20)) AS actualWorkHours,
CAST( AS VARCHAR(20)) AS auxiliaryWorkHours,
CAST( AS VARCHAR(20)) AS avgActualWorkHours,
CAST( AS VARCHAR(20)) AS avgAuxiliaryWorkHours,
CAST(ISNULL(, 0) AS VARCHAR(20)) AS processWorkHours, -- 工艺工时
'' AS contractNo,
'' AS orderNo,
'' AS productCode,
'' AS productName,
'' AS processName,
CAST( AS VARCHAR(20)) AS reportCount
FROM
WHERE > 0 OR > 0
ORDER BY TaskAID, dateLabel, shift, [Level]
END