9 Commits
191 changed files with 1830 additions and 9325 deletions
@@ -1,2 +0,0 @@
ALTER TABLE `emergency_schedules_new_item`
ADD COLUMN `sort` tinyint NULL DEFAULT 0 COMMENT '排序' AFTER `user_name`;
@@ -1,6 +0,0 @@
INSERT INTO emergency_resource
(id,`name`, address, longitude, latitude, type, `status`, del_flag, create_by, create_time, update_by, update_time, memo)
SELECT
id,`name`, org_name, longitude, latitude, 3 as type, `status`, del_flag, create_by, create_time, update_by, update_time, memo
FROM
`emergency_health_room`;
-18
View File
@@ -1,18 +0,0 @@
-------------------------
------------ xj_emergency
-------------------------
CREATE TABLE `large_screen_data`
(
`id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_persian_ci NOT NULL COMMENT '主键',
`type` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开关类型(参考entity)',
`center_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应急中心id',
`status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '开启状态(0:未开启 1:开启)',
`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '名称(体检机构才有值)',
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '值',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`update_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-263
View File
@@ -1,263 +0,0 @@
ALTER TABLE `emergency_resource`
ADD COLUMN `job_num` int NULL DEFAULT NULL COMMENT '在岗人数' AFTER `memo`,
ADD COLUMN `run_time` int NULL DEFAULT NULL COMMENT '运转时间(分钟)' AFTER `job_num`;
-- 创建aed表
CREATE TABLE `xj_aed`
(
`id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_persian_ci NOT NULL COMMENT '主键',
`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'aed名称',
`address` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设置地点',
`longitude` decimal(10, 6) DEFAULT NULL COMMENT '经度(火星坐标系)',
`latitude` decimal(10, 6) DEFAULT NULL COMMENT '纬度(火星坐标系)',
`manage_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '管理员姓名',
`manage_phone` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '管理员电话',
`org_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'orgCode',
`del_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态(0-正常,1-已删除)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`update_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- 写入aed表数据 -- 数据来源于excel表 各二级单位坐标位置更正统计9.15(2) 经纬度已通过度分秒转换为84坐标系又通过GPS84ToGCJ02方法转换为火星坐标系
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214849', '自动体外除颤仪', '公司机关机关机关楼一楼524房间', 84.892962, 45.571915, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214850', '自动体外除颤仪', '乌鲁木齐明园服务中心无明园服务中心综合办公楼四层会议室门口', 87.597842, 43.818145, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214851', '自动体外除颤仪', '西部原油销售中心无明园服务中心综合办公楼四层会议室门口', 87.597842, 43.818145, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214852', '自动体外除颤仪', '玛湖勘探开发项目部项目部机关油田公司机关2#楼7楼8楼油田公司机关2#楼1楼大厅', 84.886853, 45.578863, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214853', '自动体外除颤仪', '玛湖勘探开发项目部项目部基地项目部基地2#办公楼1楼墙面', 85.413101, 45.911086, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214854', '自动体外除颤仪', '监督中心机关各监督站油田公司机关2#楼1楼大厅', 84.886853, 45.578863, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214855', '自动体外除颤仪', '监督中心计量监督检测中心质量安全环保研究所公共事务中心大院5号楼1楼', 84.873536, 45.599149, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214856', '自动体外除颤仪', '监督中心油田化学剂产品质量监督检验站勘探开发研究院大院6号楼一楼', 84.901295, 45.604129, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214857', '自动体外除颤仪', '监督中心环境监测站勘探开发研究院大院2号楼一楼', 84.899350, 45.604129, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214858', '自动体外除颤仪', '新疆油田储气库有限公司机关机关二楼健康小屋内', 86.888887, 44.174855, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214859', '自动体外除颤仪', '新疆油田储气库有限公司集注站集注站中控', 87.029069, 44.129586, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214860', '自动体外除颤仪', '风城油田作业区乌尔禾机关机关楼一楼大厅', 85.679373, 46.090483, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214861', '自动体外除颤仪', '风城油田作业区乌尔禾A栋办公楼B栋房务中心', 85.676867, 46.089368, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214862', '自动体外除颤仪', '风城油田作业区乌尔禾B栋宿舍B栋房务中心', 85.676867, 46.089368, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214863', '自动体外除颤仪', '风城油田作业区乌尔禾C栋宿舍C栋房务中心', 85.681600, 46.089099, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214864', '自动体外除颤仪', '风城油田作业区乌尔禾D栋宿舍D栋房务中心', 85.683271, 46.089658, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214865', '自动体外除颤仪', '风城油田作业区乌尔禾E栋宿舍E栋房务中心', 85.684106, 46.089659, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214866', '自动体外除颤仪', '开发公司机关石油大厦B座23楼电梯前室', 84.903242, 45.673281, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214867', '自动体外除颤仪', '开发公司第一项目经理部第一项目部基地112房间', 85.067125, 45.673073, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214868', '自动体外除颤仪', '开发公司第二项目经理部第二项目部基地安全办', 86.853424, 45.429250, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214869', '自动体外除颤仪', '采气一厂机关机关楼一楼大厅', 84.869098, 45.599154, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214870', '自动体外除颤仪', '采气一厂机关机关楼一楼大厅', 84.869098, 45.599154, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214871', '自动体外除颤仪', '采气一厂呼图壁采气作业区石油公寓2楼218', 86.901390, 44.191784, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214872', '自动体外除颤仪', '采气一厂克75采气作业区中控室', 85.193392, 45.182159, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214873', '自动体外除颤仪', '采气一厂克75采气作业区中控室', 85.193392, 45.182159, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214874', '自动体外除颤仪', '采气一厂试采维修抢险中心前院办公室中控室', 85.055415, 45.480862, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214875', '自动体外除颤仪', '采气一厂试采维修抢险中心前院办公室中控室', 85.055415, 45.480862, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214876', '自动体外除颤仪', '采气一厂克拉美丽采气作业区健康小屋', 87.613755, 45.243382, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214877', '自动体外除颤仪', '采气一厂盆5采气作业区公寓医护值班室', 86.203756, 44.950184, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214878', '自动体外除颤仪', '采气一厂玛河作业区公寓一楼南103医护值班室', 86.056411, 44.283982, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214879', '自动体外除颤仪', '采气一厂玛河作业区公寓一楼南103医护值班室', 86.056411, 44.283982, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214880', '自动体外除颤仪', '采油二厂机关机关楼一楼大厅', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214881', '自动体外除颤仪', '采油二厂第一采油作业区7821中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214882', '自动体外除颤仪', '采油二厂第二采油作业区7109中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214883', '自动体外除颤仪', '采油二厂第三采油作业区7830中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214884', '自动体外除颤仪', '采油二厂第五采油作业区5320中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214885', '自动体外除颤仪', '采油二厂运行维护一中心8562中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214886', '自动体外除颤仪', '采油二厂运行维护一中心8513中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214887', '自动体外除颤仪', '采油二厂第七采油作业区5203中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214888', '自动体外除颤仪', '采油二厂第八采油作业区5115中心站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214889', '自动体外除颤仪', '采油二厂第九采油作业区玛湖生活基地', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214890', '自动体外除颤仪', '采油二厂联合注入站七东1号注聚站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819723214891', '自动体外除颤仪', '采油二厂联合处理一站81#联合处理站应急材料室', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352193', '自动体外除颤仪', '采油二厂联合处理二站51#联合处理站', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352194', '自动体外除颤仪', '采油二厂天然气处理站深冷中控室', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352195', '自动体外除颤仪', '采油二厂联合办公楼克拉玛依市6+1大楼B座2楼212室', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352196', '自动体外除颤仪', '采油二厂综合体育馆白碱滩区综合体育馆大厅', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352197', '自动体外除颤仪', '石西油田作业区石西公寓石西公寓大食堂门口', 86.857307, 45.428411, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352198', '自动体外除颤仪', '石西油田作业区石西公寓石西公寓大食堂门口', 86.857307, 45.428411, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352199', '自动体外除颤仪', '石西油田作业区石南4联合站石南4联合站办公区中控室内', 86.737987, 45.623245, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352200', '自动体外除颤仪', '石西油田作业区石南4联合站石南4联合站办公区中控室内', 86.737987, 45.623245, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352201', '自动体外除颤仪', '石西油田作业区莫北转油站莫北转油站办公区大门进门左手墙上', 86.769374, 45.223810, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352202', '自动体外除颤仪', '石西油田作业区莫北转油站莫北转油站办公区大门进门左手墙上', 86.769374, 45.223810, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352203', '自动体外除颤仪', '石西油田作业区莫109转输处理站莫109转输站办公区中控室内', 86.606250, 45.114165, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352204', '自动体外除颤仪', '石西油田作业区莫109转输处理站莫109转输站办公区中控室内', 86.606250, 45.114165, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352205', '自动体外除颤仪', '石西油田作业区石204混输泵站石204混输泵站采油食堂进门左手处', 86.838465, 45.701458, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352206', '自动体外除颤仪', '石西油田作业区石204混输泵站石204混输泵站采油食堂进门左手处', 86.838465, 45.701458, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352207', '自动体外除颤仪', '石西油田作业区石南31联合站采油休息办公室石南31联合站采油办公室车库进门右手处', 86.950727, 45.614508, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352208', '自动体外除颤仪', '石西油田作业区石南31联合站采油休息办公室石南31联合站采油办公室车库进门右手处', 86.950727, 45.614508, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352209', '自动体外除颤仪', '吉庆油田作业区机关综合楼一楼大厅', 89.220063, 44.003277, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352210', '自动体外除颤仪', '吉庆油田作业区吉7运行维护中心公寓A座2楼222室', 89.277552, 44.105983, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352211', '自动体外除颤仪', '吉庆油田作业区页岩油运行维护中心红旗大饭店4楼412室', 89.111967, 44.236072, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352212', '自动体外除颤仪', '油田技术服务分公司机关科研生产办公楼A座机关楼五楼茶水间503-2对面', 84.900460, 45.571913, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352213', '自动体外除颤仪', '油田技术服务分公司机关科研生产办公楼A座机关楼五楼茶水间503-2对面', 84.900460, 45.571913, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352214', '自动体外除颤仪', '百口泉采油厂市区机关3楼羽毛球场', 84.896294, 45.576635, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352215', '自动体外除颤仪', '百口泉采油厂百口泉基地体育馆', 85.415878, 45.912751, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352216', '自动体外除颤仪', '百口泉采油厂百21采油作业区百21作业区113室', 85.414490, 45.913029, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352217', '自动体外除颤仪', '百口泉采油厂检188采油作业区检188作业区调度室', 85.414490, 45.913029, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352218', '自动体外除颤仪', '百口泉采油厂玛湖第一采油作业区玛一作业区调度室', 85.937222, 45.964626, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352219', '自动体外除颤仪', '百口泉采油厂玛湖第二采油作业区玛二作业区资料组办公室', 86.006614, 46.073928, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352220', '自动体外除颤仪', '百口泉采油厂玛湖第三采油作业区基地会议室', 85.765285, 45.814277, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352221', '自动体外除颤仪', '百口泉采油厂玛湖第三采油作业区玛中4基地会议室', 85.761668, 45.642106, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352222', '自动体外除颤仪', '百口泉采油厂注输联合站玛18转油站会议室', 85.765285, 45.814277, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352223', '自动体外除颤仪', '百口泉采油厂注输联合站玛131转油站会议室', 86.006614, 46.073928, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352224', '自动体外除颤仪', '百口泉采油厂注输联合站注输联合站小会议室', 85.478225, 45.921806, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352225', '自动体外除颤仪', '百口泉采油厂员工培训站员工培训中心会议室', 85.414212, 45.905810, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352226', '自动体外除颤仪', '电力公司机关机关楼一楼大厅', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352227', '自动体外除颤仪', '电力公司发电机关楼一楼大厅', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352228', '自动体外除颤仪', '咨询中心机关各业务部室油田公司机关2#楼1楼大厅', 84.886974, 45.578946, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352229', '自动体外除颤仪', '咨询中心机关各业务部室油田公司机关2#楼1楼大厅', 84.886974, 45.578946, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352230', '自动体外除颤仪', '准东采油厂机关机关楼一楼大厅', 87.886688, 44.143790, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352231', '自动体外除颤仪', '准东采油厂机关机关食堂', 87.884192, 44.147956, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352232', '自动体外除颤仪', '准东采油厂甘泉河作业区甘泉河健康小屋内', 88.744436, 44.104291, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352233', '自动体外除颤仪', '准东采油厂甘泉河作业区甘泉河员工餐厅', 88.742768, 44.102903, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352234', '自动体外除颤仪', '准东采油厂甘泉河作业区甘泉河办公楼一楼', 88.746102, 44.103181, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352235', '自动体外除颤仪', '准东采油厂沙南作业区沙南健康小屋内', 88.716637, 44.349966, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352236', '自动体外除颤仪', '准东采油厂沙南作业区沙南北联站', 88.719143, 44.367462, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352237', '自动体外除颤仪', '准东采油厂沙南作业区沙南西泉1区', 88.606412, 44.323148, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352238', '自动体外除颤仪', '准东采油厂沙南作业区沙南沙联站', 88.700499, 44.479339, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352239', '自动体外除颤仪', '准东采油厂吉庆运维项目部红旗大酒店4楼健康小屋', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352240', '自动体外除颤仪', '准东采油厂吉庆运维项目部红旗大酒店4楼健康小屋', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352241', '自动体外除颤仪', '准东采油厂南疆哈得项目部跃满公寓一楼西头', 82.995713, 40.787383, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352242', '自动体外除颤仪', '准东采油厂水务公司水务公司水二泵站', 88.974941, 44.691779, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352243', '自动体外除颤仪', '准东采油厂勘探开发研究所基地勘探开发研究所基地办公楼', 87.093713, 44.151348, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352244', '自动体外除颤仪', '准东采油厂勘探开发研究所明园勘探开发研究所明园办公楼', 87.595343, 43.817591, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352245', '自动体外除颤仪', '准东采油厂火烧山作业区火烧山公寓健康小屋', 89.002570, 44.920211, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352246', '自动体外除颤仪', '准东采油厂火烧山作业区火烧山新公寓一楼', 89.002012, 44.919654, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352247', '自动体外除颤仪', '准东采油厂彩南作业区1号公寓健康小屋', 88.367529, 44.987863, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819769352248', '自动体外除颤仪', '准东采油厂彩南作业区滴12生活点会议室', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266753', '自动体外除颤仪', '准东采油厂彩南作业区集中处理站党员服务室', 88.362798, 44.978688, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266754', '自动体外除颤仪', '准东采油厂彩南作业区彩参二班组', 88.405333, 44.975112, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266755', '自动体外除颤仪', '准东采油厂工程技术服务公司工程技术服务公司沙南驻地走廊西侧', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266756', '自动体外除颤仪', '准东采油厂工程技术服务公司工程技术服务公司吉7驻地餐厅', 89.277552, 44.102652, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266757', '自动体外除颤仪', '准东采油厂供电新能源公司火烧山110kV变电所', 89.030746, 44.948075, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266758', '自动体外除颤仪', '准东采油厂油田保障中心体育馆一楼大厅', 87.893901, 44.145174, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266759', '自动体外除颤仪', '准东采油厂油田公寓服务中心准东宾馆总台', 87.886966, 44.149065, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266760', '自动体外除颤仪', '重油开发公司机关机关楼一楼大厅', 84.860503, 45.618329, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266761', '自动体外除颤仪', '重油开发公司采油作业一区采油一区三班', 84.864939, 45.618601, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266762', '自动体外除颤仪', '重油开发公司采油作业二区采油二区大班房', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266763', '自动体外除颤仪', '重油开发公司采油作业三区采油三区大班房', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266764', '自动体外除颤仪', '重油开发公司采油作业四区采油三班基地会议室', 85.200055, 45.392445, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266765', '自动体外除颤仪', '重油开发公司采油作业五区采油五区大班房', 85.181779, 45.714932, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266766', '自动体外除颤仪', '重油开发公司采油作业六区五区南班组基地', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266767', '自动体外除颤仪', '重油开发公司集输污水联合站金龙2转油站', 85.241668, 45.357122, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266768', '自动体外除颤仪', '应急抢险救援中心中心机关中心机关楼四楼公共展厅', 84.835834, 45.573936, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266769', '自动体外除颤仪', '应急抢险救援中心中心机关中心机关楼四楼公共展厅', 84.835834, 45.573936, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266770', '自动体外除颤仪', '应急抢险救援中心研究所中心机关楼四楼公共展厅', 84.835834, 45.573936, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266771', '自动体外除颤仪', '应急抢险救援中心技术监督中心中心机关楼四楼公共展厅', 84.835834, 45.573936, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266772', '自动体外除颤仪', '应急抢险救援中心技术监督中心井控技术分公司一楼过道', 84.875754, 45.591647, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266773', '自动体外除颤仪', '应急抢险救援中心井控培训中心教学楼A-B区走廊', 84.873814, 45.606370, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266774', '自动体外除颤仪', '应急抢险救援中心储层作业分公司分公司机关二楼大厅', 85.111481, 45.678892, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266775', '自动体外除颤仪', '应急抢险救援中心酸压作业分公司酸压作业分公司机关楼二楼', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266776', '自动体外除颤仪', '应急抢险救援中心零散气作业分公司零散气作业分公司机关楼二楼', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266777', '自动体外除颤仪', '应急抢险救援中心井筒作业分公司共用井控技术分公司一楼过道', 84.875754, 45.591647, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266778', '自动体外除颤仪', '应急抢险救援中心井筒作业分公司陆梁基地会议室', 86.896466, 45.860501, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266779', '自动体外除颤仪', '应急抢险救援中心机械设备制造分公司机关大厅', 85.084933, 45.599498, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266780', '自动体外除颤仪', '应急抢险救援中心井控技术分公司井控技术分公司一楼过道', 84.875754, 45.591647, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266781', '自动体外除颤仪', '应急抢险救援中心带压作业分公司带压作业分公司一楼过道', 85.116617, 45.680038, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266782', '自动体外除颤仪', '应急抢险救援中心连管作业分公司带压作业分公司一楼过道', 85.116617, 45.680038, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266783', '自动体外除颤仪', '应急抢险救援中心特车分公司特车分公司机关楼', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819832266784', '自动体外除颤仪', '应急抢险救援中心综合服务站共用井控技术分公司一楼过道', 84.875754, 45.591647, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375617', '自动体外除颤仪', '应急抢险救援中心准东消防大队准东消防大队一楼大厅', 87.881141, 44.152678, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375618', '自动体外除颤仪', '应急抢险救援中心白碱滩消防大队健身房', 85.122446, 45.685865, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375619', '自动体外除颤仪', '应急抢险救援中心沙漠腹部消防大队石西作业区公寓1#食堂门口', 86.857307, 45.428689, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375620', '自动体外除颤仪', '应急抢险救援中心陆梁作业区公寓2#食堂门口', 86.891187, 45.858004, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375621', '自动体外除颤仪', '应急抢险救援中心百口泉消防大队百口泉消防大队一楼大厅', 84.886854, 45.603024, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375622', '自动体外除颤仪', '应急抢险救援中心风城油田消防中队风城油田消防中队执勤楼一楼大厅', 85.675196, 46.092419, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375623', '自动体外除颤仪', '新能源事业部机关机关2号楼656办公室', 84.883523, 45.577753, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375624', '自动体外除颤仪', '新能源事业部煤电项目部煤电项目部一楼大厅', 85.016096, 45.547144, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375625', '自动体外除颤仪', '红山公司机关科研生产办公楼A座机关楼七楼茶水间', 84.896905, 45.570603, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375626', '自动体外除颤仪', '红山公司运行维护二中心办公室运行维护二中心坡下基地调度值班室', 84.816239, 45.367030, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375627', '自动体外除颤仪', '红山公司运行维护二中心办公室运行维护二中心7号中心站对面值班室', 84.817236, 45.353428, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375628', '自动体外除颤仪', '红山公司运行维护三中心办公室运行维护三中心处理站仪控室', 84.823821, 45.368316, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375629', '自动体外除颤仪', '油气储运公司克区机关楼209室', 84.981774, 45.574815, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375630', '自动体外除颤仪', '油气储运公司昌吉机关楼421室', 87.302532, 43.991870, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375631', '自动体外除颤仪', '油气储运公司石西站石西站公寓大门口', 86.869512, 45.428671, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375632', '自动体外除颤仪', '油气储运公司北三台站油库北三台站油库', 88.710788, 44.243344, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375633', '自动体外除颤仪', '油气储运公司北三台站彩南交接点北三台站彩南交接点', 88.363077, 44.976466, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375634', '自动体外除颤仪', '油气储运公司北三台站火烧山交油点北三台站火烧山交油点', 89.028515, 44.948347, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375635', '自动体外除颤仪', '油气储运公司706站706站经济员办公室', 86.966269, 44.077771, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375636', '自动体外除颤仪', '油气储运公司706站705站点705站点技术员办公室', 86.527177, 44.300162, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375637', '自动体外除颤仪', '油气储运公司四泵站办公楼二楼党员之家办公室', 84.768154, 44.916483, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375638', '自动体外除颤仪', '油气储运公司六泵站六泵站会议室', 84.859622, 44.442485, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375639', '自动体外除颤仪', '油气储运公司704站704站技术员办公室', 85.498086, 44.830121, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375640', '自动体外除颤仪', '油气储运公司704站703站703站点经济员办公室', 85.498086, 44.830121, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375641', '自动体外除颤仪', '油气储运公司风城中心站夏子街增压站夏子街增压站', 86.084328, 46.150461, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375642', '自动体外除颤仪', '油气储运公司交油队百克站百克站生产值班室', 85.433080, 45.913570, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375643', '自动体外除颤仪', '油气储运公司王家沟油气储运中心站王家沟油气储运中心武警楼健康小屋', 87.366044, 43.880664, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375644', '自动体外除颤仪', '新疆培训中心克拉玛依校区新疆培训中心C1教学楼1楼大厅', 84.928628, 45.548118, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375645', '自动体外除颤仪', '新疆培训中心克拉玛依校区新疆培训中心K2公寓1楼大厅', 84.929947, 45.545808, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375646', '自动体外除颤仪', '数智技术公司全体部门技术信息楼一楼大厅', 83.897238, 45.576331, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375647', '自动体外除颤仪', '数智技术公司全体部门雅典娜办公楼一楼大厅', 84.878820, 45.904886, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375648', '自动体外除颤仪', '数智技术公司全体部门数据中心二楼东面大厅', 84.880193, 45.576369, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375649', '自动体外除颤仪', '数智技术公司全体部门乌鲁木齐明园办公大楼一楼大厅', 87.599231, 43.814259, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819899375650', '自动体外除颤仪', '采油一厂机关机关楼一楼大厅', 84.882969, 45.596639, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261697', '自动体外除颤仪', '采油一厂机关体育馆西北角', 84.880194, 45.594698, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261698', '自动体外除颤仪', '采油一厂黑油山综合管理部黑油山综合管理部一楼大厅', 84.900184, 45.604407, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261699', '自动体外除颤仪', '采油一厂黑油山综合管理部黑油山综合管理部一楼大厅', 84.900184, 45.604407, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261700', '自动体外除颤仪', '采油一厂第三采油作业区车89处理站中控室', 84.827494, 44.958074, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261701', '自动体外除颤仪', '采油一厂第三采油作业区车89处理站中控室', 84.827494, 44.958074, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261702', '自动体外除颤仪', '物资供应公司机关体育馆门口右侧', 85.879435, 45.588894, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261703', '自动体外除颤仪', '陆梁油田作业区综合管理办公室机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261704', '自动体外除颤仪', '陆梁油田作业区综合管理办公室机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261705', '自动体外除颤仪', '陆梁油田作业区经营管理办公室机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261706', '自动体外除颤仪', '陆梁油田作业区质量健康安全环保办公室机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261707', '自动体外除颤仪', '陆梁油田作业区党群维稳办公室机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261708', '自动体外除颤仪', '陆梁油田作业区地质研究中心机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261709', '自动体外除颤仪', '陆梁油田作业区生产指挥中心机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261710', '自动体外除颤仪', '陆梁油田作业区工程技术中心机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261711', '自动体外除颤仪', '陆梁油田作业区陆梁运行维护中心办公区机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261712', '自动体外除颤仪', '陆梁油田作业区石南运行维护中心办公区机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261713', '自动体外除颤仪', '陆梁油田作业区玛东运行维护中心办公区机关楼1039房间\n体育馆休息室门口\n食堂门口', 86.889520, 45.856062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261714', '自动体外除颤仪', '陆梁油田作业区陆梁运行维护中心现场陆梁集中处理站值班室', 86.941263, 45.858865, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261715', '自动体外除颤仪', '陆梁油田作业区石南运行维护中心现场石南集中处理站值班室', 86.894790, 45.693332, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261716', '自动体外除颤仪', '陆梁油田作业区玛东运行维护中心现场玛东集中处理站值班室', 86.549398, 45.862491, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261717', '自动体外除颤仪', '新港公司机关公司七楼健康自助服务站', 84.897960, 45.570525, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261718', '自动体外除颤仪', '新港公司采油作业一区采油作业一区值班室', 85.237800, 45.744015, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210819983261719', '自动体外除颤仪', '新港公司采油作业二区采油作业二区一班值班室', 85.258357, 45.762062, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399041', '自动体外除颤仪', '新港公司采油作业三区采油作业三区值班室', 85.273371, 45.749851, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399042', '自动体外除颤仪', '新港公司供汽作业区供汽作业区软化水站值班室', 85.246686, 45.744012, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399043', '自动体外除颤仪', '新港公司供汽作业区供汽作业区2#站值班室', 85.232247, 45.745684, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399044', '自动体外除颤仪', '新港公司集输作业区集输作业区91处理站值班室', 85.233358, 45.739574, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399045', '自动体外除颤仪', '新港公司运行保障中心运行保障中心值班室', 85.253632, 45.759840, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399046', '自动体外除颤仪', '公共事务中心离退休人员管理中心机关行政事务管理部机关楼一楼303房间', 84.892962, 45.571915, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399047', '自动体外除颤仪', '公共事务中心离退休人员管理中心造林减排作业区作业区办公楼一楼大厅', 85.008600, 45.274316, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399048', '自动体外除颤仪', '公共事务中心离退休人员管理中心离退休管理部原退管办公楼一楼门岗', 84.864609, 45.596429, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399049', '自动体外除颤仪', '公共事务中心离退休人员管理中心克拉玛依离退休服务东站东站一楼大厅', 84.882587, 45.593484, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399050', '自动体外除颤仪', '公共事务中心离退休人员管理中心白碱滩离退休服务站二楼202房间', NULL, NULL, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399051', '自动体外除颤仪', '社会保险管理中心综合管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399052', '自动体外除颤仪', '社会保险管理中心综合管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399053', '自动体外除颤仪', '社会保险管理中心财务管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399054', '自动体外除颤仪', '社会保险管理中心财务管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399055', '自动体外除颤仪', '社会保险管理中心基金管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399056', '自动体外除颤仪', '社会保险管理中心基金管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399057', '自动体外除颤仪', '社会保险管理中心内控稽核管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399058', '自动体外除颤仪', '社会保险管理中心内控稽核管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399059', '自动体外除颤仪', '社会保险管理中心社保管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399060', '自动体外除颤仪', '社会保险管理中心社保管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399061', '自动体外除颤仪', '社会保险管理中心企业医保管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399062', '自动体外除颤仪', '社会保险管理中心企业医保管理部6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399063', '自动体外除颤仪', '社会保险管理中心信息档案管理站6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399064', '自动体外除颤仪', '社会保险管理中心信息档案管理站6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399065', '自动体外除颤仪', '社会保险管理中心社保事务所6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399066', '自动体外除颤仪', '社会保险管理中心社保事务所6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399067', '自动体外除颤仪', '社会保险管理中心企业医保事务所6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399068', '自动体外除颤仪', '社会保险管理中心企业医保事务所6+1联合办公楼A座1楼大厅', 84.870207, 45.588322, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399069', '自动体外除颤仪', '勘探开发研究院机关机关一楼大厅', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399070', '自动体外除颤仪', '勘探开发研究院技术服务中心计信楼二楼215房间', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399071', '自动体外除颤仪', '勘探开发研究院技术服务中心体育馆大厅', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399072', '自动体外除颤仪', '勘探开发研究院油气战略规划研究所规划楼一楼中间楼梯边过道', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399073', '自动体外除颤仪', '勘探开发研究院开发实验中心地质岩心库大厅', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399074', '自动体外除颤仪', '勘探开发研究院开发实验中心提采楼西段1楼正门处', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399075', '自动体外除颤仪', '勘探开发研究院稀油开发研究所开发楼一楼大厅', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399076', '自动体外除颤仪', '勘探开发研究院非常规研究所科研楼1楼咖啡间', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399077', '自动体外除颤仪', '勘探开发研究院档案中心档案中心一楼圆厅', 84.895462, 45.604686, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399078', '自动体外除颤仪', '勘探开发研究院中亚油气研究所数据公司信息楼五楼大厅512门口', 84.899349, 45.577190, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399079', '自动体外除颤仪', '勘探开发研究院地球物理研究所3号楼3楼西侧走廊', 87.545160, 43.899830, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399080', '自动体外除颤仪', '勘探开发研究院地球物理研究所2号楼2楼西侧', 87.545160, 43.899830, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399081', '自动体外除颤仪', '宇澄热力股份有限公司机关机关楼一楼健身房间', 84.894073, 45.592467, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399082', '自动体外除颤仪', '宇澄热力股份有限公司机关机关楼一楼健身房间', 84.894073, 45.592467, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399083', '自动体外除颤仪', '宇澄热力股份有限公司风城供汽中心1#站风城供汽中心1#站中控室', 85.774179, 46.133604, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399084', '自动体外除颤仪', '宇澄热力股份有限公司风城供汽中心2#站风城供汽中心2#站中控室', 85.806331, 46.129121, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399085', '自动体外除颤仪', '宇澄热力股份有限公司红山供汽中心红山供汽中心中控室', 84.797023, 45.329293, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399086', '自动体外除颤仪', '采油工艺研究院监理公司采油工艺研究所老机关楼1楼大厅', 84.888243, 45.612189, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399087', '自动体外除颤仪', '采油工艺研究院监理公司采油工艺实验中心物业楼二楼楼道内东头', 84.884635, 45.614135, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399088', '自动体外除颤仪', '采油工艺研究院监理公司设备设施完整性检验检测中心管柱楼办公楼1楼道内', 84.887966, 45.612744, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399089', '自动体外除颤仪', '采油工艺研究院监理公司节能监测中心勘探院南院6号楼1楼大厅', 84.907686, 45.610239, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
INSERT INTO `xj_aed` (`id`, `name`, `address`, `longitude`, `latitude`, `manage_name`, `manage_phone`, `org_code`, `del_flag`, `create_time`, `create_by`, `update_time`, `update_by`) VALUES ('1968210820029399090', '自动体外除颤仪', '采油工艺研究院监理公司体育馆院体育馆大厅内', 84.885468, 45.613301, NULL, NULL, NULL, 0, '2025-09-17 15:10:02', 'admin', NULL, NULL);
@@ -1,10 +0,0 @@
-- ----------------------------
-- Table structure for health_user_employee_ex
-- ----------------------------
ALTER TABLE `health_user_employee_ex`
ADD COLUMN `care_liaison_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关爱联络员姓名',
ADD COLUMN `care_liaison_job` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关爱联络员职务',
ADD COLUMN `care_liaison_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '关爱联络员电话',
ADD COLUMN `lifeguard_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '急救人员姓名',
ADD COLUMN `lifeguard_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '急救人员电话';
@@ -1,10 +0,0 @@
-- ----------------------------
-- Table structure for emergency_order
-- ----------------------------
ALTER TABLE `emergency_order`
ADD COLUMN `major_user_two_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第二位参与的专业人员id',
ADD COLUMN `major_user_two_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第二位参与的专业人员姓名',
ADD COLUMN `major_user_two_sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第二位参与的专业人员性别',
ADD COLUMN `major_user_two_mobile` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第二位参与的专业人员电话',
ADD COLUMN `major_user_two_avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '第二位参与的专业人头像';
@@ -1,14 +0,0 @@
-- ----------------------------
-- Table structure for emergency_order_operator
-- ----------------------------
CREATE TABLE `emergency_order_operator` (
`id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'id',
`order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '应急工单ID',
`operator_type` int(11) NOT NULL COMMENT '人员类型(人员类型0:操作人员 1:专业人员)',
`user_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '人员ID',
`join_type` int(11) NOT NULL COMMENT '参与类型(0:处理应急,1:协助应急)',
`join_date` datetime NOT NULL COMMENT '参与应急时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
@@ -38,6 +38,7 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
<scope>provided</scope>
</dependency>
</dependencies>
-1
View File
@@ -20,7 +20,6 @@
<module>font-resources</module>
<module>monitoring-sync</module>
<module>renkang-test</module>
<module>xj-anyan-api</module>
</modules>
<properties>
+1
View File
@@ -33,6 +33,7 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
<scope>provided</scope>
</dependency>
</dependencies>
-46
View File
@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.renkang</groupId>
<artifactId>functional-modules</artifactId>
<version>2.0.0</version>
</parent>
<artifactId>xj-anyan-api</artifactId>
<description>xj安眼系统API</description>
<version>2.0.0</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
@@ -1,138 +0,0 @@
package com.renkang.anyan.client;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.renkang.anyan.model.dto.HealthRoomDTO;
import com.renkang.anyan.model.dto.HealthSignListParam;
import com.renkang.anyan.model.dto.MedicalAbnormalDTO;
import com.renkang.anyan.model.vo.*;
import java.util.Date;
import java.util.List;
/**
* @Description: AnYanClient xj安眼系统接口调用客户端
* @Author: feng
* @Date: 2025-8-1
* @Version: V1.0
*/
public interface AnYanClient {
/**
* 获取服务访问令牌
*
* @return
*/
String getAuthToken();
/**
* 获取服务访问令牌(密码模式)
*
* @return
*/
AuthResult getAuthTokenByPassword(String username, String password);
/**
* 刷新口令
*/
void refreshToken();
/**
* 体检医院人数统计查询
*
* @param medicalYear 体检年份
* @return
*/
List<MedicalPeopleNumStatisticsVO> examinationStatistics(Integer medicalYear);
/**
* 健康打卡数据统计查询(血压,减重,血糖)
*
* @param beginDate
* @param endDate
* @return
*/
HealthSignStatVO healthCheckStatistics(Date beginDate, Date endDate);
/**
* 健康打卡异常数据详细查询(血压)
*
* @param healthSignListParam
* @return
*/
IPage<BloodPressureList> bloodPressureList(HealthSignListParam healthSignListParam);
/**
* 健康打卡异常数据详细查询(减重)
*
* @param healthSignListParam
* @return
*/
IPage<WeightPressureList> weightPressureList(HealthSignListParam healthSignListParam);
/**
* 健康打卡异常数据详细查询(血糖)
*
* @param healthSignListParam
* @return
*/
IPage<BloodSugarClockSList> bloodSugarClockSList(HealthSignListParam healthSignListParam);
/**
* 油田医院数据查询
*
* @return
*/
List<HospitalListVO> hospitalList();
/**
* 健康小屋基础数据查询
*
* @return
*/
List<HealthRoomBaseVO> healthPlaceHomList();
/**
* 健康小屋详细数据查询
*
* @param healthRoomDTO
* @return
*/
IPage<HealthPlaceHomDetailsVO> healthPlaceHomDetailList(HealthRoomDTO healthRoomDTO);
/**
* 当年体检异常人数统计
*
* @param medicalYear 年份
* @return
*/
MedicalAbnormalStatisticsVO medicalAbnormalStatistics(Integer medicalYear);
/**
* 当年体检异常人员列表
*
* @param param
* @return
*/
IPage<MedicalAbnormalVO> medicalAbnormalList(MedicalAbnormalDTO param);
/**
* 公网环境获取服务访问token (目前仅用于访问安眼大屏)
*
* @return
*/
String publicNetworkToken();
/**
* 公网环境获取服务访问token (目前仅用于访问安眼大屏, 不走缓存, 每次用现取)
*
* @return
*/
AuthResult publicNetworkTokenNoCache();
/**
* 获取用户信息
*
* @param token
* @return
*/
AnYanUserInfoResult getAnYanUserInfo(String token);
}
@@ -1,289 +0,0 @@
package com.renkang.anyan.client;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.renkang.anyan.config.AnYanProperties;
import com.renkang.anyan.config.RestTemplateUtil;
import com.renkang.anyan.constants.AnYanConstants;
import com.renkang.anyan.enums.AnYanApiEnum;
import com.renkang.anyan.model.dto.AuthParam;
import com.renkang.anyan.model.dto.HealthRoomDTO;
import com.renkang.anyan.model.dto.HealthSignListParam;
import com.renkang.anyan.model.dto.MedicalAbnormalDTO;
import com.renkang.anyan.model.vo.*;
import com.renkang.anyan.utils.PageResultToBeanUtil;
import com.renkang.anyan.utils.SM4Utils;
import com.renkang.anyan.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.jeecg.common.exception.ExceptionAssertsUtil;
import org.jeecg.util.RedisClientUtil;
import org.jeecg.util.RedisKeyPrefix;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.retry.annotation.Retryable;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.HttpClientErrorException;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* @Description: AnYanClientExecutor xj安眼系统接口调用执行器
* @Author: feng
* @Date: 2025-8-1
* @Version: V1.0
*/
@Slf4j
@Service
@EnableRetry
@RequiredArgsConstructor
public class AnYanClientExecutor implements AnYanClient {
//安眼获取token访问公钥
private String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJL0JkqsUoK6kt3JyogsgqNp9VDGDp+t3ZAGMbVoMPdHNT2nfiIVh9ZMNHF7g2XiAa8O8AQWyh2PjMR0NiUSVQMCAwEAAQ==";
private final RedisClientUtil redisClientUtil;
private final AnYanProperties anYanProperties;
@Override
public String getAuthToken() {
String token = redisClientUtil.get(new RedisKeyPrefix(AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "token", String.class);
if (StrUtil.isEmpty(token)) {
AuthResult authResult = getAuthTokenExecutor();
if (ObjectUtil.isNotEmpty(authResult) && StrUtil.isNotEmpty(authResult.getAccess_token())) {
token = authResult.getAccess_token();
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in()) ? authResult.getExpires_in() : 7200;
redisClientUtil.set(new RedisKeyPrefix(expireSeconds, AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "token", token);
}
}
return token;
}
private AuthResult getAuthTokenExecutor() {
AuthParam authParam = new AuthParam();
authParam.setClient_id(anYanProperties.getClientId());
authParam.setClient_secret(anYanProperties.getClientSecret());
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
ResponseEntity<AuthResult> responseEntity = RestTemplateUtil.postExchange(AnYanApiEnum.QUERY_AUTH_TOKEN, headers, authParam, AuthResult.class);
if (HttpStatus.OK.equals(responseEntity.getStatusCode()) && ObjectUtils.isNotEmpty(responseEntity.getBody())) {
return responseEntity.getBody();
} else {
ExceptionAssertsUtil.fail("------安眼系统获取token失败------" + responseEntity.getBody());
}
return new AuthResult();
}
/**
* @description: 通过密码获取令牌
* @author PengJ
* @date 2025/10/24 11:15
*/
@Override
public AuthResult getAuthTokenByPassword(String username, String password) {
try {
String encryptPassword = StringUtils.encryptByPublicKey(publicKey, password);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add("grant_type", "password");
formData.add("username", username);
formData.add("password", encryptPassword);
formData.add("client_id", anYanProperties.getClientId());
formData.add("client_secret", anYanProperties.getClientSecret());
ResponseEntity<AuthResult> authResult = RestTemplateUtil.postExchangeForGetTokenByPassword(AnYanApiEnum.QUERY_AUTH_TOKEN, formData, headers, AuthResult.class);
if (HttpStatus.OK.equals(authResult.getStatusCode())
&& ObjectUtils.isNotEmpty(authResult.getBody())) {
return authResult.getBody();
} else {
log.error("------安眼系统获取token失败(密码模式){}------", authResult.getBody());
ExceptionAssertsUtil.fail("------安眼系统获取token失败------" + authResult.getBody());
return null;
}
} catch (HttpClientErrorException e) {
log.error("------安眼系统获取token失败(密码模式){}------", e.getMessage());
String replace = Objects.requireNonNull(e.getMessage()).replace("401 Unauthorized: ", "");
replace = replace.replace("\"", "");
AuthResult bean = JSONUtil.toBean(replace, AuthResult.class);
ExceptionAssertsUtil.fail(bean.getMessage());
} catch (Exception e) {
ExceptionAssertsUtil.fail(e.getMessage());
}
return null;
}
@Override
public void refreshToken() {
AuthResult authResult = getAuthTokenExecutor();
if (ObjectUtil.isNotEmpty(authResult) && StrUtil.isNotEmpty(authResult.getAccess_token())) {
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in()) ? authResult.getExpires_in() : 7200;
redisClientUtil.set(new RedisKeyPrefix(expireSeconds, AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "token", authResult.getAccess_token());
}
}
private HttpHeaders buildTokenHeader() {
HttpHeaders headers = new HttpHeaders();
headers.add(AnYanConstants.AUTHORIZATION, AnYanConstants.TOKEN_TYPE + getAuthToken());
return headers;
}
@Override
@Retryable(maxAttempts = 2)
public List<MedicalPeopleNumStatisticsVO> examinationStatistics(Integer medicalYear) {
if (null == medicalYear) {
medicalYear = DateUtil.year(new Date());
}
JSONObject param = new JSONObject();
param.put("medicalYear", String.valueOf(medicalYear));
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_EXAMINATION_STATISTICS, buildTokenHeader(), param);
List<Object> listMaps = (List<Object>) result.getData();
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, MedicalPeopleNumStatisticsVO.class)).collect(Collectors.toList());
}
@Override
@Retryable(maxAttempts = 2)
public HealthSignStatVO healthCheckStatistics(Date beginDate, Date endDate) {
JSONObject param = new JSONObject();
param.put("inputDateBegin", ObjectUtil.isEmpty(beginDate) ? DateUtil.today() : DateUtil.formatDate(beginDate));
param.put("inputDateEnd", ObjectUtil.isEmpty(endDate) ? DateUtil.today() : DateUtil.formatDate(endDate));
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_CHECK_STATISTICS, buildTokenHeader(), param);
return BeanUtil.toBean(result.getData(), HealthSignStatVO.class);
}
@Override
@Retryable(maxAttempts = 2)
public IPage<BloodPressureList> bloodPressureList(HealthSignListParam healthSignListParam) {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.BLOOD_PRESSURE_LIST, buildTokenHeader(), healthSignListParam);
return new PageResultToBeanUtil<BloodPressureList>().transform(result, BloodPressureList.class);
}
@Override
@Retryable(maxAttempts = 2)
public IPage<WeightPressureList> weightPressureList(HealthSignListParam healthSignListParam) {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.WEIGHT_PRESSURE_LIST, buildTokenHeader(), healthSignListParam);
return new PageResultToBeanUtil<WeightPressureList>().transform(result, WeightPressureList.class);
}
@Override
@Retryable(maxAttempts = 2)
public IPage<BloodSugarClockSList> bloodSugarClockSList(HealthSignListParam healthSignListParam) {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.BLOOD_SUGAR_CLOCKS_LIST, buildTokenHeader(), healthSignListParam);
return new PageResultToBeanUtil<BloodSugarClockSList>().transform(result, BloodSugarClockSList.class);
}
@Override
@Retryable(maxAttempts = 2)
public List<HospitalListVO> hospitalList() {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HOSPITAL_LIST, buildTokenHeader(), null);
List<Object> listMaps = (List<Object>) result.getData();
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, HospitalListVO.class)).collect(Collectors.toList());
}
@Override
@Retryable(maxAttempts = 2)
public List<HealthRoomBaseVO> healthPlaceHomList() {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_PLACE_ROOM_LIST, buildTokenHeader(), null);
List<Object> listMaps = (List<Object>) result.getData();
return listMaps.stream().map(lMap -> BeanUtil.toBean(lMap, HealthRoomBaseVO.class)).collect(Collectors.toList());
}
@Override
@Retryable(maxAttempts = 2)
public IPage<HealthPlaceHomDetailsVO> healthPlaceHomDetailList(HealthRoomDTO healthRoomDTO) {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.HEALTH_PLACE_ROOM_INFO_LIST, buildTokenHeader(), healthRoomDTO);
return new PageResultToBeanUtil<HealthPlaceHomDetailsVO>().transform(result, HealthPlaceHomDetailsVO.class);
}
@Override
@Retryable(maxAttempts = 2)
public MedicalAbnormalStatisticsVO medicalAbnormalStatistics(Integer medicalYear) {
if (null == medicalYear) {
medicalYear = DateUtil.year(new Date());
}
JSONObject param = new JSONObject();
param.put("medicalYear", medicalYear);
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.MEDICAL_ABNORMAL_STATISTICS, buildTokenHeader(), param);
return BeanUtil.toBean(result.getData(), MedicalAbnormalStatisticsVO.class);
}
@Override
@Retryable(maxAttempts = 2)
public IPage<MedicalAbnormalVO> medicalAbnormalList(MedicalAbnormalDTO param) {
AnYanResult<Object> result = RestTemplateUtil.postExchange(AnYanApiEnum.MEDICAL_ABNORMAL_LIST, buildTokenHeader(), param);
return new PageResultToBeanUtil<MedicalAbnormalVO>().transform(result, MedicalAbnormalVO.class);
}
@Override
public String publicNetworkToken() {
String token = redisClientUtil.get(new RedisKeyPrefix(AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "publicToken", String.class);
if (StrUtil.isEmpty(token)) {
AuthResult authResult = publicNetworkTokenNoCache();
if (null != authResult) {
token = authResult.getAccess_token();
int expireSeconds = ObjectUtil.isNotEmpty(authResult.getExpires_in()) ? authResult.getExpires_in() : 7200;
redisClientUtil.set(new RedisKeyPrefix(expireSeconds, AnYanConstants.AN_YAN_API_TOKEN_PREFIX), "publicToken", token);
}
}
return token;
}
@Override
public AuthResult publicNetworkTokenNoCache() {
JSONObject param = new JSONObject();
String password = anYanProperties.getPublicPassWrod();
String userName = anYanProperties.getPublicUserNmae();
try {
String sm4Password = SM4Utils.encryptSM4(password);
String encryptPassword = StringUtils.encryptByPublicKey(publicKey, password);
param.put("password", encryptPassword);
param.put("selfPassword", sm4Password);
param.put("loginName", userName);
param.put("timeStamp", UUID.randomUUID().toString());
ResponseEntity<AnYanResult> responseEntity = RestTemplateUtil.postExchangeForGetToken(AnYanApiEnum.PUBLIC_NETWORK_AUTH_TOKEN, param, AnYanResult.class);
//安眼提供的接口包过深 ,先从AnYanResult对象中取出加密的密文,后在解密密文拿出 AuthResult对象 , 再从AuthResult对象中拿出 access_token
AnYanResult anYanResult = responseEntity.getBody();
if (ObjectUtil.isNotEmpty(anYanResult) && ObjectUtil.isNotEmpty(anYanResult.getData())) {
String decryptAuthResult = SM4Utils.decryptSM4((String) anYanResult.getData());
AuthResult authResult = JSON.parseObject(decryptAuthResult).toJavaObject(AuthResult.class);
if (null != authResult && null != authResult.getAccess_token()) {
return authResult;
} else {
ExceptionAssertsUtil.fail("获取安眼系统token失败");
}
}
} catch (Exception e) {
e.printStackTrace();
ExceptionAssertsUtil.fail("获取安眼系统token失败");
}
return null;
}
/**
* @description: 根据token获取用户信息
* @author PengJ
* @date 2025/10/24 17:00
*/
@Override
public AnYanUserInfoResult getAnYanUserInfo(String token) {
HttpHeaders headers = new HttpHeaders();
headers.add(AnYanConstants.AUTHORIZATION, AnYanConstants.TOKEN_TYPE + token);
ResponseEntity<AnYanUserInfoResult> exchange = RestTemplateUtil.getExchange(AnYanApiEnum.USER_INFO_UNIT_V2, headers, AnYanUserInfoResult.class);
return BeanUtil.toBean(exchange.getBody(), AnYanUserInfoResult.class);
}
}
@@ -1,53 +0,0 @@
package com.renkang.anyan.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* @Description: AnYanProperties
* @Author: feng
* @Date: 2025-8-1
* @Version: V1.0
*/
@Data
@Configuration
@ConfigurationProperties(prefix = "variable.anyan")
public class AnYanProperties {
/**
* 是否启用安眼的接口
*/
private boolean enable;
/**
*服务调用地址
*/
private String host = "";
/**
* clientId
*/
private String clientId = "";
/**
*clientSecret
*/
private String clientSecret = "";
/**
*公网可访问的接口地址 (目前或者大屏调转的toekn使用)
*/
private String publicHost = "";
/**
* 公网环境的鉴权账号 (目前或者大屏调转的toekn使用)
*/
private String publicUserNmae = "";
/**
*公网环境的鉴权密码 (目前或者大屏调转的toekn使用)
*/
private String publicPassWrod = "";
/**
*链接超时时间
*/
private Long timeout = 3000L;
/**
*读取超时时间
*/
private Long readTimeout = 30000L;
}
@@ -1,85 +0,0 @@
package com.renkang.restaurant.config;
import com.renkang.anyan.client.AnYanClient;
import com.renkang.anyan.config.AnYanProperties;
import com.renkang.anyan.enums.AnYanApiEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.exception.ExceptionAssertsUtil;
import org.jeecg.common.util.SpringContextUtils;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @Description: AnYanClient xj安眼系统接口调用客户端
* @Author: feng
* @Date: 2025-8-1
* @Version: V1.0
*/
@Slf4j
@Configuration
@RequiredArgsConstructor
public class AnYanRestTemplateConfig {
private final AnYanProperties properties;
@Bean
public RestTemplate anYanTemplate() {
ClientHttpRequestInterceptor authInterceptor = authInterceptor();
return new RestTemplateBuilder()
.setConnectTimeout(Duration.of(properties.getTimeout(), ChronoUnit.MILLIS))
.setReadTimeout(Duration.of(properties.getReadTimeout(), ChronoUnit.MILLIS))
.additionalMessageConverters(
new StringHttpMessageConverter(StandardCharsets.UTF_8),
new MappingJackson2HttpMessageConverter(),
new FormHttpMessageConverter()
)
.additionalInterceptors(authInterceptor)
.build();
}
/**
* 自定义拦截器处理接口鉴权失败, 配合spring retry使用从而避免因token失效导致的接口调用失败
*/
public ClientHttpRequestInterceptor authInterceptor() {
// 添加重试次数限制
AtomicInteger retryCount = new AtomicInteger(0);
int maxRetries = 5;
return (httpRequest, bytes, clientHttpRequestExecution) -> {
ClientHttpResponse execute;
try {
// 获取请求URL
String url = httpRequest.getURI().toString();
// 排除特定接口不执行拦截逻辑
boolean shouldSkip = url.contains(AnYanApiEnum.QUERY_AUTH_TOKEN.getMethodPath());
execute = clientHttpRequestExecution.execute(httpRequest, bytes);
if (shouldSkip) {
return execute;
}
HttpStatus httpStatus = execute.getStatusCode();
if (Arrays.asList(HttpStatus.UNAUTHORIZED, HttpStatus.FORBIDDEN).contains(httpStatus)
&& retryCount.getAndIncrement() < maxRetries) {
SpringContextUtils.getBean("anYanClientExecutor", AnYanClient.class).refreshToken();
}
} catch (Exception e) {
log.error("---------安眼平台API调用异常-------e{}", e.getMessage(), e);
ExceptionAssertsUtil.fail("安眼平台API调用失败");
throw e;
}
return execute;
};
}
}
@@ -1,125 +0,0 @@
package com.renkang.anyan.config;
import com.renkang.anyan.enums.AnYanApiEnum;
import com.renkang.anyan.model.vo.AnYanResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.jeecg.common.util.SpringContextUtils;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.Objects;
/**
* @Description: RestTemplate 工具类 (更多请求方式自行封装)
* @Author: feng
* @Date: 2025-8-1
* @Version: V1.0
*/
@Slf4j
public class RestTemplateUtil {
private static RestTemplate restTemplate;
private static AnYanProperties properties;
public static RestTemplate getRestTemplate() {
if (Objects.isNull(restTemplate)) {
restTemplate = SpringContextUtils.getBean("anYanTemplate", RestTemplate.class);
}
return restTemplate;
}
public static AnYanProperties getProperties() {
if (Objects.isNull(properties)) {
properties = SpringContextUtils.getBean(AnYanProperties.class);
}
return properties;
}
/**
* 请求接口访问 token
*
* @param api 接口
* @param requestBody 参数
* @return ResponseEntity
*/
public static <T> ResponseEntity<T> postExchange(AnYanApiEnum api, HttpHeaders headers, Object requestBody, Class<T> responseType) {
String url = getProperties().getHost() + api.getMethodPath() + api.getMethodParam();
HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody);
return getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, responseType);
}
/**
* 公网请求接口访问 token(密码模式)
*
* @param api 接口
* @param formData 参数
* @return ResponseEntity
*/
public static <T> ResponseEntity<T> postExchangeForGetTokenByPassword(AnYanApiEnum api, MultiValueMap<String, String> formData, HttpHeaders headers, Class<T> responseType) {
String url = getProperties().getPublicHost() + api.getMethodPath();
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(formData, headers);
log.info("开始发送请求到: {},入参:{}", url, formData);
ResponseEntity<T> response = getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, responseType);
log.info("收到响应: {}", response);
return response;
}
/**
* 公网请求接口访问 token
*
* @param api 接口
* @param requestBody 参数
* @return ResponseEntity
*/
public static <T> ResponseEntity<T> postExchangeForGetToken(AnYanApiEnum api, Object requestBody, Class<T> responseType) {
String url = getProperties().getPublicHost() + api.getMethodPath() + api.getMethodParam();
HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody);
return getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, responseType);
}
/**
* 通用调用方法
*
* @param api 请求接口
* @param headers 请求头
* @param requestBody body参数
* @return Result对象
*/
public static AnYanResult<Object> postExchange(AnYanApiEnum api, HttpHeaders headers, Object requestBody) {
String url = getProperties().getHost() + api.getMethodPath() + api.getMethodParam();
HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
return responseHandler(getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, AnYanResult.class));
}
/**
* 通用调用方法
*
* @param api 请求接口
* @param headers 请求头
* @return Result对象
*/
public static <T> ResponseEntity<T> getExchange(AnYanApiEnum api, HttpHeaders headers, Class<T> responseType) {
String url = getProperties().getHost() + api.getMethodPath() + api.getMethodParam();
HttpEntity<Object> requestEntity = new HttpEntity<>(headers);
return getRestTemplate().exchange(url, api.getHttpMethod(), requestEntity, responseType);
}
/**
* ResponseEntity 转 Result
*
* @param entity
* @return
*/
private static <T extends AnYanResult<Object>> AnYanResult<Object> responseHandler(ResponseEntity<T> entity) {
if (HttpStatus.OK.equals(entity.getStatusCode()) && ObjectUtils.isNotEmpty(entity.getBody())) {
return entity.getBody();
} else {
return AnYanResult.error("天眼系统API调用失败");
}
}
}
@@ -1,24 +0,0 @@
package com.renkang.anyan.constants;
import org.jeecg.util.RedisKeyPrefix;
/**
* @Description: AnYanConstants 常量
* @Author: feng
* @Date: 2025-8-01
* @Version: V1.0
*/
public interface AnYanConstants {
/**
* token传递请求头参数
*/
String AUTHORIZATION = "authorization";
/**
* token类型
*/
String TOKEN_TYPE = "bearer ";
/**
* 缓存调用安眼系统接口鉴权token缓存key
*/
String AN_YAN_API_TOKEN_PREFIX = "exterior:anyan:api:";
}
@@ -1,98 +0,0 @@
package com.renkang.anyan.enums;
import lombok.Getter;
import org.springframework.http.HttpMethod;
/**
* @Description: AnYanApiEnum xj安眼系统接口枚举类
* @Author: feng
* @Date: 2025-8-1
* @Version: V1.0
*/
@Getter
public enum AnYanApiEnum {
/**
* 1.获取token接口
*/
QUERY_AUTH_TOKEN("/oauth/oauth/token", "", HttpMethod.POST),
/**
* 2.体检人数统计查询
*/
HEALTH_EXAMINATION_STATISTICS("/aygc-znhpt-sys/0/aystatistics/peopleHealthExaminationStatistics", "", HttpMethod.POST),
/**
* 3.健康打卡数据统计查询(血压,减重,血糖)
*/
HEALTH_CHECK_STATISTICS("/aygc-znhpt-sys/0/aystatistics/healthCheckStatistics", "", HttpMethod.POST),
/**
* 4.健康打卡异常数据详细查询(血压)
*/
BLOOD_PRESSURE_LIST("/aygc-znhpt-sys/0/aystatistics/bloodPressureList", "", HttpMethod.POST),
/**
* 5.健康打卡异常数据详细查询(减重)
*/
WEIGHT_PRESSURE_LIST("/aygc-znhpt-sys/0/aystatistics/weightPressureList", "", HttpMethod.POST),
/**
* 6.健康打卡异常数据详细查询(血糖)
*/
BLOOD_SUGAR_CLOCKS_LIST("/aygc-znhpt-sys/0/aystatistics/bloodSugarClockSList", "", HttpMethod.POST),
/**
* 7.体检异常数据统计查询(暂定)
*/
MEDICAL_ABNORMAL_STATISTICS("/aygc-znhpt-sys/0/aystatistics/checkstatistics", "", HttpMethod.POST),
/**
* 8.体检异常数据清单(暂定)
*/
MEDICAL_ABNORMAL_LIST("/aygc-znhpt-sys/0/aystatistics/checkList", "", HttpMethod.POST),
/**
* 9.油田医院数据查询
*/
HOSPITAL_LIST("/aygc-znhpt-sys/0/aystatistics/HospitalList", "", HttpMethod.POST),
/**
* 10.健康小屋基础数据查询
*/
HEALTH_PLACE_ROOM_LIST("/aygc-znhpt-sys/0/aystatistics/HealthPlaceHomList", "", HttpMethod.POST),
/**
* 11.健康小屋详细数据查询
*/
HEALTH_PLACE_ROOM_INFO_LIST("/aygc-znhpt-sys/0/aystatistics/initEmpHealthRoomCheckinInfoPages", "", HttpMethod.POST),
/**
* 12.从外网地址获取安眼token接口
*/
PUBLIC_NETWORK_AUTH_TOKEN("/aygc-service-sys/0/api/xj/outside/getToken", "", HttpMethod.POST),
/**
* 13.获取员工信息及单位-V2
*/
USER_INFO_UNIT_V2("/iosp-iam/v2/users/self", "?containsUnit=true", HttpMethod.GET),
;
/**
* 接口路径
*/
private String methodPath;
/**
* 接口的路径参数
*/
private String methodParam;
/**
* 接口请求方式
*/
private HttpMethod httpMethod;
AnYanApiEnum(String methodPath, String methodParam, HttpMethod httpMethod) {
this.methodPath = methodPath;
this.methodParam = methodParam;
this.httpMethod = httpMethod;
}
}
@@ -1,32 +0,0 @@
package com.renkang.anyan.model.dto;
import lombok.Data;
/**
* @author PengJ
* @description: 密码鉴权入参
* @date 2025/10/24 11:04
*/
@Data
public class AuthByPasswordParam {
/**
* grant_type
*/
private String grant_type = "password";
/**
* username
*/
private String username;
/**
* password
*/
private String password;
/**
* client_id
*/
private String client_id;
/**
* client_secret
*/
private String client_secret;
}
@@ -1,19 +0,0 @@
package com.renkang.anyan.model.dto;
import lombok.Data;
@Data
public class AuthParam {
/**
*grant_type
*/
private String grant_type = "client_credentials";
/**
* client_id
*/
private String client_id;
/**
* client_secret
*/
private String client_secret;
}
@@ -1,49 +0,0 @@
package com.renkang.anyan.model.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 健康打卡异常数据详情查询参数
*/
@Data
public class HealthSignListParam {
/**
*单位
*/
@Schema(title = "单位")
private String departName;
/**
* 员工姓名
*/
@Schema(title = "员工姓名")
private String name;
/**
* 开始时间
*/
@Schema(title = "开始时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date inputDateBegin;
/**
*结束时间
*/
@Schema(title = "结束时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date inputDateEnd;
/**
* pageNo
*/
@Schema(title = "pageNo")
private Integer pageNo = 1;
/**
* pageSize
*/
@Schema(title = "pageSize")
private Integer pageSize = 10;
}
@@ -1,170 +0,0 @@
package com.renkang.anyan.model.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.constant.CommonConstant;
import java.io.Serializable;
@Data
@Schema(title = "安眼系统接口返回对象", description = "安眼系统接口返回对象")
public class AnYanResult<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 成功标志
*/
@Schema(title = "成功标志")
private boolean success = true;
/**
* 返回处理消息
*/
@Schema(title = "返回处理消息")
private String message = "";
/**
* 返回代码
*/
@Schema(title = "返回代码")
private Integer code = 0;
/**
* 返回数据对象 data
*/
@Schema(title = "返回数据对象")
private T data;
/**
* 时间戳
*/
@Schema(title = "时间戳")
private long timestamp = System.currentTimeMillis();
@JsonIgnore
private String onlTable;
public AnYanResult() {
}
/**
* 兼容VUE3版token失效不跳转登录页面
*
* @param code
* @param message
*/
public AnYanResult(Integer code, String message) {
this.code = code;
this.message = message;
}
public static <T> AnYanResult<T> ok() {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
return r;
}
public static <T> AnYanResult<T> ok(String msg) {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
r.setData((T) msg);
r.setMessage(msg);
return r;
}
public static <T> AnYanResult<T> ok(T data) {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
r.setData(data);
return r;
}
public static <T> AnYanResult<T> OK() {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
return r;
}
/**
* 此方法是为了兼容升级所创建
*
* @param msg
* @param <T>
* @return
*/
public static <T> AnYanResult<T> OK(String msg) {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
r.setMessage(msg);
//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
r.setData((T) msg);
return r;
}
public static <T> AnYanResult<T> OK(T data) {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
r.setData(data);
return r;
}
public static <T> AnYanResult<T> OK(String msg, T data) {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(true);
r.setCode(CommonConstant.SC_OK_200);
r.setMessage(msg);
r.setData(data);
return r;
}
public static <T> AnYanResult<T> error(String msg, T data) {
AnYanResult<T> r = new AnYanResult<T>();
r.setSuccess(false);
r.setCode(CommonConstant.SC_INTERNAL_SERVER_ERROR_500);
r.setMessage(msg);
r.setData(data);
return r;
}
public static <T> AnYanResult<T> error(String msg) {
return error(CommonConstant.SC_INTERNAL_SERVER_ERROR_500, msg);
}
public static <T> AnYanResult<T> error(int code, String msg) {
AnYanResult<T> r = new AnYanResult<T>();
r.setCode(code);
r.setMessage(msg);
r.setSuccess(false);
return r;
}
/**
* 无权限访问返回结果
*/
public static <T> AnYanResult<T> noauth(String msg) {
return error(CommonConstant.SC_JEECG_NO_AUTHZ, msg);
}
public AnYanResult<T> success(String message) {
this.message = message;
this.code = CommonConstant.SC_OK_200;
this.success = true;
return this;
}
public AnYanResult<T> error500(String message) {
this.message = message;
this.code = CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
this.success = false;
return this;
}
}
@@ -1,149 +0,0 @@
package com.renkang.anyan.model.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Huawei
* @version 1.0
* @description: TODO
* @date 2025/10/24 16:59
*/
@NoArgsConstructor
@Data
public class AnYanUserInfoResult {
@JsonProperty("id")
private String id;
@JsonProperty("loginName")
private String loginName;
@JsonProperty("email")
private String email;
@JsonProperty("organizationId")
private Integer organizationId;
@JsonProperty("realName")
private String realName;
@JsonProperty("phone")
private String phone;
@JsonProperty("gender")
private Integer gender;
@JsonProperty("tenantName")
private String tenantName;
@JsonProperty("tenantNum")
private String tenantNum;
@JsonProperty("roleMergeFlag")
private Integer roleMergeFlag;
@JsonProperty("tenantId")
private Integer tenantId;
@JsonProperty("currentRoleId")
private String currentRoleId;
@JsonProperty("currentRoleCode")
private String currentRoleCode;
@JsonProperty("currentRoleName")
private String currentRoleName;
@JsonProperty("currentRoleLevel")
private String currentRoleLevel;
@JsonProperty("employeeUnitDTO")
private EmployeeUnitDTO employeeUnitDTO;
@NoArgsConstructor
@Data
public static class EmployeeUnitDTO {
/**
* 职工编号
*/
@JsonProperty("employeeNum")
private String employeeNum;
/**
* 姓名
*/
@JsonProperty("name")
private String name;
/**
* 邮箱
*/
@JsonProperty("email")
private String email;
/**
* 手机
*/
@JsonProperty("mobile")
private String mobile;
/**
* 性别,0男,1女
*/
@JsonProperty("gender")
private Integer gender;
@JsonProperty("status")
private Object status;
/**
* 启用状态
*/
@JsonProperty("enabledFlag")
private String enabledFlag;
@JsonProperty("unitName")
private String unitName;
/**
* 所属二级单位unitCode
*/
@JsonProperty("unitCode")
private String unitCode;
/**
* 科级单位名称
*/
@JsonProperty("sectionUnitName")
private String sectionUnitName;
/**
* 科级单位unitCode
*/
@JsonProperty("sectionUnitCode")
private String sectionUnitCode;
@JsonProperty("directDepartmentName")
private String directDepartmentName;
/**
* 直属部门unitCode
*/
@JsonProperty("directDepartmentCode")
private String directDepartmentCode;
/**
* 层级路径(unitCode拼接)
*/
@JsonProperty("levelPath")
private String levelPath;
/**
* 完整组织机构路径(unitName拼接)
*/
@JsonProperty("unitNamePath")
private String unitNamePath;
/**
* 固定电话
*/
@JsonProperty("attribute1")
private String attribute1;
/**
* 职务
*/
@JsonProperty("attribute2")
private String attribute2;
/**
* 生日或年龄
*/
@JsonProperty("attribute3")
private Object attribute3;
}
}
@@ -1,39 +0,0 @@
package com.renkang.anyan.model.vo;
import lombok.Data;
@Data
public class AuthResult {
/**
*范围
*/
private String scope;
/**
*有效期
*/
private Integer expires_in;
/**
* token_type
*/
private String token_type;
/**
* token
*/
private String access_token;
/**
* refresh_token
*/
private String refresh_token;
/**
* satoken
*/
private String satoken;
/**
* message
*/
private String message;
/**
* success
*/
private boolean success;
}
@@ -1,36 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(title="健康打卡血压异常数据详细", description="健康打卡血压异常数据详细")
public class BloodPressureList extends XjUserBaseInfo {
/**
*收缩压
*/
@Schema(title = "收缩压")
private String sbp;
/**
*收缩压是否异常
*/
@Schema(title = "收缩压是否异常")
private String sbpFlag;
/**
*舒张压
*/
@Schema(title = "舒张压")
private String dbp;
/**
*舒张压是否异常
*/
@Schema(title = "舒张压是否异常")
private String dbpFlag;
/**
*填报时间 YYYY-MM-DD
*/
@Schema(title = "填报时间")
private String inputDate;
}
@@ -1,26 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(title="健康打卡血糖异常数据详细", description="健康打卡血糖异常数据详细")
public class BloodSugarClockSList extends XjUserBaseInfo {
/**
*血糖值
*/
@Schema(title = "血糖值")
private String bsVal;
/**
*血糖是否异常
*/
@Schema(title = "血糖是否异常")
private String bsFlag;
/**
*填报时间 YYYY-MM-DD
*/
@Schema(title = "填报时间")
private String inputDate;
}
@@ -1,143 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(title="重点关爱趋势预警信息",description="重点关爱趋势预警信息")
public class CareUserListVo {
@Schema(title = "ID")
private String id;
@Schema(title = "员工ID")
private String empId;
@Schema(title = "员工姓名")
private String name;
@Schema(title = "年龄")
private Integer age;
@Schema(title = "性别")
private String sex;
@Schema(title = "工作单位")
private String workUnit ;
@Schema(title = "单位ID")
private String workUnitId;
@Schema(title = "创建时间")
private String createDate;
@Schema(title = "修改时间")
private String updateDate;
@Schema(title = "关爱状态(0-已完成,1-未完成)")
private Integer dataLevel;
@Schema(title = "负面清单")
private String negativeList;
@Schema(title = "一人一案")
private String caseInfo;
@Schema(title = "肥胖人员标识(1,是,2-否)")
private Integer flagFat;
@Schema(title = "BMI")
private Double bmi;
@Schema(title = "身高")
private Double height;
@Schema(title = "体重")
private Double weight;
@Schema(title = "体重管理目标")
private Double targetWeight;
@Schema(title = "目前BMI监测值")
private String bmiCurrent;
@Schema(title = "高血压(0-否,1-是)")
private Integer hypertension;
@Schema(title = "收缩压均值")
private String systolicPressureAvg;
@Schema(title = "收缩压控制目标")
private String systolicPressureTarget;
@Schema(title = "目前收缩压检测值")
private String systolicPressureCurrent;
@Schema(title = "舒张压平均值")
private String diastolicPressureAvg;
@Schema(title = "舒张压控制目标值")
private String diastolicPressureTarget;
@Schema(title = "舒张压当前检测值")
private String diastolicPressureCurrent;
@Schema(title = "糖尿病标识(0-否,1-是)")
private Integer diabetes;
@Schema(title = "空腹葡萄糖(GLU)")
private String glu;
@Schema(title = "血糖控制目标值")
private String bloodSugarTarget;
@Schema(title = "目前血糖监测值:")
private String bloodSugarCurrent;
@Schema(title = "低密度脂蛋白")
private String ldl;
@Schema(title = "低密度脂蛋白目标控制值")
private String ldlTarget;
@Schema(title = "低密度脂蛋白当前检测值")
private String ldlCurrent;
@Schema(title = "总胆固醇")
private String tc;
@Schema(title = "总胆固醇目标控制值")
private String tcTarget;
@Schema(title = "总胆固醇目前监测值")
private String tcCurrent;
@Schema(title = "甘油三酯")
private String tg;
@Schema(title = "甘油三酯目标控制值")
private String tgTarget;
@Schema(title = "甘油三酯当前监测值")
private String tgCurrent;
@Schema(title = "尿酸")
private String uricAcid;
@Schema(title = "尿酸目标控制值")
private String uricAcidTarget;
@Schema(title = "尿酸当前监测值")
private String uricAcidCurrent;
@Schema(title = "同型半胱氨酸")
private String homocysteine;
@Schema(title = "同型半胱氨酸目标控制值")
private String homocysteineTarget;
@Schema(title = "同型半胱氨酸当前监测值")
private String homocysteineCurrent;
@Schema(title = "关爱联络员姓名")
private String careLiaisonName;
}
@@ -1,20 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class CareUserVO {
private String userId;
@Schema(title = "关爱联络员姓名")
private String careLiaisonName;
@Schema(title = "关爱联络员电话")
private String careLiaisonPhone;
@Schema(title = "关爱联络员职务")
private String careLiaisonJob;
@Schema(title = "急救人员姓名")
private String lifeguardName;
@Schema(title = "急救人员电话")
private String lifeguardPhone;
}
@@ -1,56 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
@Data
@Schema(title="健康小屋数据详情列表", description="健康小屋数据详情列表")
public class HealthPlaceHomDetailsVO {
/**
* 单位
*/
@Schema(title = "单位")
private String departName;
/**
* 姓名
*/
@Schema(title = "姓名")
private String name;
/**
* 检查日期
*/
@Schema(title = "检查日期")
private String checkInDate;
/**
* 检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加
*/
@Schema(title = "检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加")
@Dict(dicCode = "xj_check_type")
private String checkType;
/**
* 去年体检值 前一年的体检值(初始值)
*/
@Schema(title = "去年体检值 前一年的体检值(初始值)")
private String lastVal;
/**
* 控降目标 一人一档(控降目标值)
*/
@Schema(title = "控降目标 一人一档(控降目标值")
private String goalVal;
/**
* 目前测量值 目前控降数值(可和健康打卡最新值一致)
*/
@Schema(title = "目前测量值 目前控降数值(可和健康打卡最新值一致)")
private String currentVal;
/**
* 控降差值 和控降目标对比
*/
@Schema(title = "控降差值 和控降目标对比")
private String compareVal;
/**
* 是否成功空降,1:是/0.否
*/
@Schema(title = "是否成功空降,1:是/0.否")
private String successFlag;
}
@@ -1,39 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(title="健康小屋数据VO", description="健康小屋数据VO")
public class HealthPlaceHomListVO {
/**
* id
*/
private String id;
/**
* 单位
*/
@Schema(title = "单位")
private String departName;
/**
* 地点
*/
@Schema(title = "地点")
private String address;
/**
* 经度
*/
@Schema(title = "经度")
private String lon;
/**
* 纬度
*/
@Schema(title = "纬度")
private String lat;
/**
* 建设时间 YYYY-MM-DD
*/
@Schema(title = "建设时间(YYYY-MM-DD)")
private String buildDate;
}
@@ -1,50 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(title="新疆健康小屋对象", description="新疆健康小屋对象")
public class HealthRoomBaseVO {
/**
* id
*/
private String id;
/**
* 地址
*/
@Schema(title = "地址")
private String address;
/**
* 单位
*/
@Schema(title = "单位")
private String departName;
/**
* 经度
*/
@Schema(title = "经度")
private String lon;
/**
* 纬度
*/
@Schema(title = "纬度")
private String lat;
/**
* 建设时间 yyyy-MM-dd
*/
@Schema(title = "建设时间")
private String buildDate;
/**
* 在岗人数
*/
@Schema(title = "在岗人数")
private Integer jobNum;
/**
* 运转时间(分钟)
*/
@Schema(title = "运转时间(分钟)")
private Integer runTime;
}
@@ -1,40 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(title="打卡人数统计", description="打卡人数统计")
public class HealthSignStatVO {
/**
* 减重打卡总人数
*/
@Schema(title = "减重打卡总人数")
private String weigtTotalCount;
/**
* 减重异常人数
*/
@Schema(title = "减重异常人数")
private String weigtAbCount;
/**
* 血压打卡总人数
*/
@Schema(title = "血压打卡总人数")
private String bpTotalCount;
/**
* 血压异常人数
*/
@Schema(title = "血压异常人数")
private String bpAbCount;
/**
* 血糖打卡总人数
*/
@Schema(title = "血糖打卡总人数")
private String bsTotalCount;
/**
* 血糖异常人数
*/
@Schema(title = "血糖异常人数")
private String bsAbCount;
}
@@ -1,45 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(title="油田医院VO", description="油田医院VO")
public class HospitalListVO {
/**
* id
*/
@Schema(title = "id")
private String id;
/**
* 医院名称
*/
@Schema(title = "医院名称")
private String hospitalName;
/**
* 别名
*/
@Schema(title = "别名")
private String alias;
/**
* 地点
*/
@Schema(title = "地点")
private String address;
/**
* 经度
*/
@Schema(title = "经度")
private String lon;
/**
* 纬度
*/
@Schema(title = "纬度")
private String lat;
/**
* 签约时间 YYYY-MM-DD
*/
@Schema(title = "签约时间(YYYY-MM-DD)")
private String contractDate;
}
@@ -1,14 +0,0 @@
package com.renkang.anyan.model.vo;
import lombok.Data;
@Data
public class MedicalAbnormalStatisticsVO {
private Integer totalCount;
// 冠脉CTA异常人数
private Integer cardiovaAbCount;
// 头颅CTA异常人数
private Integer cerebrovAbCount;
// 冠脉ct异常人数 (未返回)
private Integer cctaAbCount;
}
@@ -1,41 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(title="健康打卡体重异常数据详细", description="健康打卡体重异常数据详细")
public class WeightPressureList extends XjUserBaseInfo {
/**
*腰围(CM
*/
@Schema(title = "腰围(CM")
private String waist;
/**
*身高(M
*/
@Schema(title = "身高(M")
private String height;
/**
*体重(KG
*/
@Schema(title = "体重(KG")
private String weight;
/**
*BMI
*/
@Schema(title = "BMI")
private String bmi;
/**
*BMI是否异常(1:是/0:否)
*/
@Schema(title = "BMI是否异常(1:是/0:否)")
private String bmiFlag;
/**
*填报时间 YYYY-MM-DD
*/
@Schema(title = "填报时间")
private String inputDate;
}
@@ -1,36 +0,0 @@
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 员工基本信息
*/
@Data
public class XjUserBaseInfo {
/**
*单位
*/
@Schema(title = "单位")
private String departName;
/**
*姓名
*/
@Schema(title = "姓名")
private String name;
/**
*身份证号
*/
@Schema(title = "身份证号")
private String idCard;
/**
*年龄
*/
@Schema(title = "年龄")
private String age;
/**
*性别
*/
@Schema(title = "性别")
private String sex;
}
@@ -1,25 +0,0 @@
package com.renkang.anyan.utils;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.renkang.anyan.model.vo.AnYanResult;
import java.util.stream.Collectors;
/**
* IPage 类型装换
* @param <T>
*/
public class PageResultToBeanUtil<T> {
public IPage<T> transform(AnYanResult<Object> result, Class<T> tClass) {
IPage<?> page = BeanUtil.toBean(result.getData(), Page.class);
IPage<T> iPage = new Page<>();
BeanUtil.copyProperties(page,iPage,"records");
if(page.getTotal() > 0){
iPage.setRecords(page.getRecords().stream().map(o ->BeanUtil.toBean(o, tClass)).collect(Collectors.toList()));
}
return iPage;
}
}
@@ -1,47 +0,0 @@
package com.renkang.anyan.utils;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.SM4;
/**
* XJ安眼平台提供的数据加密工具类 仅用于安眼系统外部登录接口的对接
*/
public class SM4Utils {
private static final String privateKey = "5tgb6yhn7ujm8ik,";
// private static final String privateKey = "123456789qwertyu";
private static final String iv = "5tgb6yhn7ujm8ik,";
// private static final String iv = "abcdefghi1234567";
private static SM4 sm4 = null;
private static SM4 getInstance() {
if (sm4 == null) {
sm4 = new SM4(Mode.CBC, Padding.PKCS5Padding, privateKey.getBytes(), iv.getBytes());
}
return sm4;
}
/**
* @description 加密
* @author xj
* @time 2023/8/17
*/
public static String encryptSM4(String needEncryptText) {
return getInstance().encryptBase64(needEncryptText);
}
/**
* @description 解密
* @author xj
* @time 2023/8/17
*/
public static String decryptSM4(String encryptText) {
if (encryptText == null || encryptText.isEmpty()) return "";
return getInstance().decryptStr(encryptText);
}
}
@@ -1,115 +0,0 @@
package com.renkang.anyan.utils;
import cn.hutool.core.util.StrUtil;
import javax.crypto.Cipher;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;
/**
* 安眼平台提供的数据加密工具类 仅用于安眼系统外部登录接口的对接
*/
public class StringUtils {
/**
* 公钥加密方法
*
* @param publicKeyText 公钥
* @param text 将要加密的信息
* @return Base64编码的字符串
* @throws Exception
*/
public static String encryptByPublicKey(String publicKeyText, String text) throws Exception {
// 返回按照 X.509 标准进行编码的密钥的字节
// x509EncodedKeySpec2 是一种规范、规格
X509EncodedKeySpec x509EncodedKeySpec2 = new X509EncodedKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64(publicKeyText));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
// 让密钥工厂按照指定的 规范 生成公钥
PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec2);
Cipher cipher = Cipher.getInstance("RSA");
// 对加密初始化,使用加密模式,公钥加密
// Cipher.ENCRYPT_MODE 可以用 1 代替
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] result = cipher.doFinal(text.getBytes());
// 返回 Base64编码的字符串
return org.apache.commons.codec.binary.Base64.encodeBase64String(result);
}
public static String base64Encode(String input) {
return Base64.getEncoder().encodeToString(input.getBytes());
}
public static String base64Decode(String encodedInput) {
byte[] decodedBytes = Base64.getDecoder().decode(encodedInput);
return new String(decodedBytes);
}
public static String preprocessJsonString(String jsonStr) {
String a = StrUtil.removeAll(jsonStr, ' ', '\t', '\r', '\n');
String[] searchList = {"\":\"", "\",\"", "{\"", "\"}", "\":"};
String[] replacementList = {"$is$", "$center$", "$left$", "$right$", "$start$"};
String b = org.apache.commons.lang3.StringUtils.replaceEach(a, searchList, replacementList);
String c = b.replace("\"", "\\\"");
return org.apache.commons.lang3.StringUtils.replaceEach(c, replacementList, searchList);
}
/**
* 提取文件名中的扩展名
*
* @param fileName 文件名
* @param needDot 需要点
* @return 文件扩展名,如果文件名中没有扩展名则返回 null
*/
public static String getFileExtension(String fileName, boolean needDot) {
// 检查文件名是否为 null 或空字符串
if (fileName == null || fileName.isEmpty()) {
return null;
}
// 找到最后一个点的位置
int lastDotIndex = fileName.lastIndexOf('.');
// 如果找不到点,或者点在字符串的第一个位置,返回 null
if (lastDotIndex == -1 || lastDotIndex == 0) {
return null;
}
return fileName.substring(needDot ? lastDotIndex : (lastDotIndex + 1));
}
/**
* 获取路径的最后一个元素(文件名或目录名)
*
* @param pathOrUrl 文件路径或 URL
* @return 路径的最后一个元素
*/
public static String baseName(String pathOrUrl) {
if (pathOrUrl == null || pathOrUrl.isEmpty()) {
return "";
}
try {
// 尝试将字符串解析为 URI
URI uri = new URI(pathOrUrl);
// 获取 URI 的路径部分
String path = uri.getPath();
// 使用 Path 类获取路径的最后一个元素
Path filePath = Paths.get(path);
return filePath.getFileName().toString();
} catch (URISyntaxException e) {
// 如果解析 URI 失败,则直接将字符串作为路径处理
Path filePath = Paths.get(pathOrUrl);
return filePath.getFileName().toString();
}
}
}
@@ -13,6 +13,7 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
</dependency>
<!-- feign -->
@@ -20,9 +20,6 @@ public class ConDoctorUserVO {
@Schema(title = "用户账号")
private String username;
@Schema(title = "用户姓名")
private String realname;
@Schema(title = "用户密码")
@JsonInclude(JsonInclude.Include.NON_NULL)
private String password;
@@ -76,9 +76,6 @@ public class ConDoctorVO {
@Schema(title = "执业经历")
private String experience;
@Schema(title = "擅长")
private String goodAt;
@Schema(title = "排序")
private Integer sort;
@@ -13,18 +13,22 @@
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-consultation-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-emergency-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-im-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-cloud-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
@@ -50,4 +54,21 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>biz-obf</id>
<build>
<plugins>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
@@ -0,0 +1,38 @@
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
-keep @org.springframework.stereotype.Service class *
-keep @org.springframework.web.bind.annotation.RestController class *
-keep @org.springframework.context.annotation.Configuration class * { *; }
-keep @org.springframework.stereotype.Component class *
-keep class lombok.** { *; }
-keepclassmembers enum * { # 保留枚举结构
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements java.io.Serializable { *; }
-keepclassmembers class * {
@org.springframework.web.bind.annotation.*Mapping *;
}
-keepclassmembers class * {
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
}
-keepclassmembers class * {
@lombok.Getter *;
@lombok.Setter *;
}
# MyBatis 专用保留规则
-keep interface com.renkang.**.mapper.** { *; }
-keep class com.renkang.**.entity.** { *; }
-keep class com.renkang.**.bean.** { *; }
-keep class com.renkang.**.model.** { *; }
-keep class com.renkang.**.vo.** { *; }
-keepparameternames
# 关闭优化和压缩(避免框架兼容性问题)
-dontshrink # 不删除未使用代码
-dontoptimize # 不优化字节码[5,6](@ref)
-keepdirectories
-dontusemixedcaseclassnames
-adaptclassstrings
# 混淆选项
-useuniqueclassmembernames # 成员名称唯一化
-ignorewarnings
@@ -58,7 +58,5 @@ public interface RequestPrefix {
String sessionReservationDate = BASE + "/sessionReservationDate";
String screen = BASE + "/screen";
}
@@ -1,133 +0,0 @@
package com.renkang.consultation.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.renkang.consultation.api.RequestPrefix;
import com.renkang.consultation.api.service.ConHelperApiService;
import com.renkang.consultation.dto.ConDoctorDTO;
import com.renkang.consultation.entity.ConDoctor;
import com.renkang.consultation.entity.ConSession;
import com.renkang.consultation.service.IConDoctorService;
import com.renkang.consultation.service.IConSessionService;
import com.renkang.consultation.vo.ConDoctorVO;
import com.renkang.consultation.vo.ConHelperCustomUserVO;
import com.renkang.emergency.entity.EmergencyCenterResource;
import io.swagger.v3.oas.annotations.Operation;
import org.apache.commons.collections4.CollectionUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.modules.manager.SysCacheImpl;
import org.jeecg.modules.system.entity.SysDepart;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(RequestPrefix.screen)
public class ConScreenApiController {
@Autowired
private IConDoctorService conDoctorService;
@Autowired
private IConSessionService conSessionService;
@Autowired
private SysCacheImpl sysCache;
@Operation(summary = "查询统计数", description = "查询统计数")
@GetMapping("/queryStaticCount")
public Result<?> queryStaticCount() {
Map<String,Long> map = new HashMap<>();
//入驻医生数
LambdaQueryWrapper<ConDoctor> dockerWrapper = new LambdaQueryWrapper<>();
dockerWrapper.eq(ConDoctor::getDoctorStatus, "1");//只查有效的
Long docCount = conDoctorService.count(dockerWrapper);
map.put("docCount",docCount);
//累计咨询
Long consultCount = conSessionService.count();
map.put("consultCount",consultCount);
//累计咨询人数
LambdaQueryWrapper<ConSession> sessionWrapper = new LambdaQueryWrapper<>();
sessionWrapper.in(ConSession::getSessionType, "1", "2");
sessionWrapper.groupBy(ConSession::getFromAccount);
sessionWrapper.select(ConSession::getFromAccount);
List<ConSession> fromAccountList = conSessionService.list(sessionWrapper);
map.put("consultPersonCount", (long) fromAccountList.size());
return Result.OK(map);
}
@Operation(summary = "分页查询入驻专家", description = "分页查询入驻专家")
@GetMapping("/queryPageList")
public Result<IPage<ConDoctorVO>> queryPageList(ConDoctorDTO dto) {
Page<ConDoctor> page = new Page<>(dto.getPageNo(), dto.getPageSize());
// dto.setDoctorTitle("2");//主任医师
dto.setDoctorStatus("1");//有效
List<OrderItem> orders = new ArrayList<>();
orders.add(OrderItem.asc("sort"));
page.setOrders( orders);
IPage<ConDoctorVO> pageList = conDoctorService.queryPageList(page, dto);
return Result.OK(pageList);
}
@Operation(summary = "查询全部入驻专家", description = "查询全部入驻专家")
@GetMapping("/queryDocList")
public Result<List<ConDoctorVO>> queryAllDocList() {
ConDoctorDTO dto = new ConDoctorDTO();
dto.setPageNo(1);
dto.setPageSize(1000);//懒得重写了,这里复用分页查询,专家数应该不会超过1000
Page<ConDoctor> page = new Page<>(dto.getPageNo(), dto.getPageSize());
// dto.setDoctorTitle("2");//主任医师
dto.setDoctorStatus("1");//有效
List<OrderItem> orders = new ArrayList<>();
orders.add(OrderItem.asc("sort"));
page.setOrders( orders);
IPage<ConDoctorVO> pageList = conDoctorService.queryPageList(page, dto);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
return Result.OK(pageList.getRecords());
}
return Result.OK();
}
@Operation(summary = "医院专家数量统计", description = "医院专家数量统计")
@GetMapping("/queryDocCountStat")
public Result<?> queryDocCountStat() {
List<Map<String, Object>> mapList = conDoctorService.getDocCountStatList();
return Result.OK(mapList);
}
@Operation(summary = "单位咨询数量统计", description = "单位咨询数量统计")
@GetMapping("/queryDeptCountStat")
public Result<?> queryDeptCountStat() {
List<Map<String, Object>> mapList = conDoctorService.getDeptCountStatList();
if(!CollectionUtils.isEmpty(mapList)){
for (Map<String, Object> map : mapList) {
SysDepart depart = sysCache.getDepartByOrgCode(map.get("orgCode").toString());
if(depart != null){
map.put("departName", depart.getDepartName());
}
}
}
return Result.OK(mapList);
}
@Operation(summary = "科室咨询数量统计", description = "科室咨询数量统计")
@GetMapping("/queryDepartmentCountStat")
public Result<?> queryDepartmentCountStat() {
List<Map<String, Object>> mapList = conDoctorService.getDepartmentCountStatList();
return Result.OK(mapList);
}
@Operation(summary = "医院咨询数量统计", description = "医院咨询数量统计")
@GetMapping("/queryHospitalCountStat")
public Result<?> queryHospitalCountStat() {
List<Map<String, Object>> mapList = conDoctorService.getHospitalCountStatList();
return Result.OK(mapList);
}
}
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.storge.redis.ConHealthInfoRedisTunnel;
import com.renkang.consultation.entity.ConHealthInfo;
import com.renkang.consultation.mapper.ConHealthInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
import java.util.List;
@Repository
@Component
public class ComposeConHealthInfo {
@@ -5,9 +5,9 @@ import com.renkang.consultation.entity.ConKnowledge;
import com.renkang.consultation.mapper.ConKnowledgeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
@Repository
@Component
public class ComposeConKnowledge {
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.storge.db.ConKnowledgeCategoryDbTunnel;
import com.renkang.consultation.api.storge.redis.ConKnowledgeCategoryRedisTunnel;
import com.renkang.consultation.entity.ConKnowledgeCategory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
import java.util.List;
@Repository
@Component
public class ComposeConKnowledgeCategory {
@Autowired
@@ -5,11 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.renkang.consultation.entity.ConKnowledgeCategory;
import com.renkang.consultation.mapper.ConKnowledgeCategoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
import java.util.List;
@Repository
@Component
public class ConKnowledgeCategoryDbTunnel {
@@ -5,9 +5,9 @@ import com.renkang.consultation.entity.ConDoctorFollow;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
@Repository
@Component
public class ConDoctorFollowReidsTunnel {
@Autowired
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.RedisConstants;
import com.renkang.consultation.entity.ConHealthInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
import java.util.List;
@Repository
@Component
public class ConHealthInfoRedisTunnel {
@Autowired
@@ -5,9 +5,9 @@ import com.renkang.consultation.entity.ConHospitalFollow;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
@Repository
@Component
public class ConHospitalFollowReidsTunnel {
@Autowired
@@ -4,11 +4,11 @@ import com.renkang.consultation.api.RedisConstants;
import com.renkang.consultation.entity.ConKnowledgeCategory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Component;
import java.util.List;
@Repository
@Component
public class ConKnowledgeCategoryRedisTunnel {
@@ -3,45 +3,38 @@ package com.renkang.consultation.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.renkang.consultation.async.AsyncExportService;
import com.renkang.consultation.constant.ConsultationConstants;
import com.renkang.consultation.dto.AccountDTO;
import com.renkang.consultation.dto.ConDoctorDTO;
import com.renkang.consultation.dto.DoctorAudioStatusDTO;
import com.renkang.consultation.dto.DoctorJumpHolidayDTO;
import com.renkang.consultation.entity.*;
import com.renkang.consultation.mapper.ConDepartmentMapper;
import com.renkang.consultation.mapper.ConResourceMapper;
import com.renkang.consultation.entity.ConCostLog;
import com.renkang.consultation.entity.ConDoctor;
import com.renkang.consultation.entity.ConDoctorExAndUser;
import com.renkang.consultation.entity.CondepartmentId;
import com.renkang.consultation.mapper.ESConDoctorMapper;
import com.renkang.consultation.service.IConDepartmentService;
import com.renkang.consultation.service.IConDoctorService;
import com.renkang.consultation.service.IConResourceService;
import com.renkang.consultation.util.PicturesUtils;
import com.renkang.consultation.vo.*;
import com.renkang.consultation.vo.AccountVO;
import com.renkang.consultation.vo.ConDoctorExportVO;
import com.renkang.consultation.vo.ConDoctorVO;
import com.renkang.consultation.vo.ConServiceVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.util.DictUtil;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.util.CheckPasswordUtil;
import org.jeecg.common.util.MyUploadUtil;
import org.jeecg.global.GlobalUtils;
import org.jeecg.util.RSAEncryptUtils;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
@@ -51,13 +44,13 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.*;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* @Description: con_doctor
@@ -79,12 +72,6 @@ public class ConDoctorController extends JeecgController<ConDoctor, IConDoctorSe
private ESConDoctorMapper esConDoctorMapper;
@Resource
private AsyncExportService asyncExportService;
@Autowired
private ConResourceMapper conResourceMapper;
@Autowired
private DictUtil dictUtil;
@Autowired
private ConDepartmentMapper conDepartmentMapper;
/**
* 分页列表查询
@@ -458,276 +445,5 @@ public class ConDoctorController extends JeecgController<ConDoctor, IConDoctorSe
// }
// esConDoctorMapper.deleteById(id);
// return Result.OK("出库成功!");
// }
@PostMapping("/initDoctor")
public String initDoctor(@RequestParam("file") MultipartFile file,
@RequestParam("token") String token,
@RequestParam("urlPath") String urlPath) {
if (file.isEmpty()) {
return "上传文件为空";
}
PicturesUtils picturesUtils = new PicturesUtils();
try {
byte[] fileData = file.getBytes(); // 读取上传文件的字节流
Map<Integer, PicturesUtils.PicturePosition> pictures = picturesUtils.getPicturesWithRow(fileData);
try (InputStream is = file.getInputStream();
XSSFWorkbook workbook = new XSSFWorkbook(is)) {
XSSFSheet sheet = workbook.getSheetAt(0);
for (int rowIndex = 2; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
Row row = sheet.getRow(rowIndex);
if (row == null) {
continue;
}
ConDoctorExAndUser doctorExAndUser = new ConDoctorExAndUser();
ConDoctorDoctorVO doctorVO = new ConDoctorDoctorVO();
ConDoctorUserVO userVO = new ConDoctorUserVO();
String name = getCellStringValue(row.getCell(0));
doctorVO.setDoctorName(name);
userVO.setRealname(name);
String account = getCellStringValue(row.getCell(1));
userVO.setUsername(account);
String password = getCellStringValue(row.getCell(2));
String g = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmZfR/bA9X3vp86y1aEpvwzXJYKRRF1fLau2+05/ZtaITLpV8bhkmSf3neSy/Q9gAdvG75Fr73E+GWE+K5b0BpvIS1jDGo319+PpZR39SaZTKZ27XFXrosmJTZutN79t819HS1VseleunHAFgMVufE9U5jP6LGzl/wbkSy01GhzwIDAQAB";
String cipherText = RSAEncryptUtils.encrypt1(password, g);
String key = RSAEncryptUtils.decrypt1(cipherText, CommonConstant.PRIVATE_KEY);
String s = CheckPasswordUtil.checkPasswordRule(key);
if (StrUtil.isNotBlank(s)) {
return null;
}
userVO.setPassword(cipherText);
System.out.println("" + (rowIndex + 1) + "行数据:姓名=" + name + ", 账号=" + account + ", 密码=" + password);
// 根据行号直接获取对应图片
PicturesUtils.PicturePosition picPos = pictures.get(rowIndex);
if (picPos != null) {
XSSFPictureData xssfPictureData = picPos.getPictureData();
String fileName = xssfPictureData.getPackagePart().getPartName().getName();
System.out.println("图片文件名:" + fileName);
File imgFile = new File("D:\\" + fileName);
File dir = imgFile.getParentFile();
if (!dir.exists()) {
dir.mkdirs();
}
try {
Files.write(Paths.get(imgFile.getPath()), xssfPictureData.getData());
// 调用之前写好的上传接口,传入token
String url = uploadImage(imgFile, MyUploadUtil.TEMP_BIZ, token,urlPath);
userVO.setAvatar(url);
} catch (IOException e) {
e.printStackTrace();
}
String resourceName = getCellStringValue(row.getCell(4));
doctorVO.setResourceName(resourceName);
List<ConResource> conResources = conResourceMapper.selectByResourceName(resourceName);
if (conResources != null && !conResources.isEmpty()) {
ConResource conResource = conResources.get(0);
if (conResource != null) {
doctorVO.setResourceId(conResource.getId());
}
}
String departmentName = getCellStringValue(row.getCell(5));
List<ConDepartment> conDepartments = conDepartmentMapper.selectListByName(departmentName);
if (conDepartments != null && !conDepartments.isEmpty()) {
ConDepartment conDepartment = conDepartments.get(0);
if (conDepartment != null) {
doctorVO.setDepartmentId(conDepartment.getId());
doctorVO.setDepartmentName(departmentName);
}
}
String zc = getCellStringValue(row.getCell(6));
List<DictModel> models = dictUtil.queryDictItemListByCode("z_doct_lev");
DictModel dictModel = models.stream().filter(item -> item.getText().equals(zc)).findFirst().orElse(null);
if (dictModel != null) {
doctorVO.setDoctorJob(dictModel.getValue());
}
doctorVO.setGoodAt(getCellStringValue(row.getCell(7)));
doctorVO.setExperience(getCellStringValue(row.getCell(8)));
String sex = getCellStringValue(row.getCell(9));
userVO.setSex(Integer.valueOf(sex));
} else {
System.out.println("" + (rowIndex + 1) + "行无对应图片");
}
doctorExAndUser.setConDoctor(doctorVO);
doctorExAndUser.setSysUserModel(userVO);
conDoctorService.saveDoctorUser(doctorExAndUser);
System.out.println(rowIndex);
}
return "处理成功";
}
} catch (Exception e) {
e.printStackTrace();
return "处理失败:" + e.getMessage();
}
}
/**
* 上传图片文件到指定接口,返回响应字符串(一般是json)。
* @param file 头像文件
* @param bizValue biz字段值,示例中固定为 "temp"
* @param token x-access-token 请求头值
* @return 服务端响应内容
* @throws Exception 异常抛出
*/
private String uploadImage(File file, String bizValue, String token,String urlPath) throws Exception {
String boundary = "----WebKitFormBoundaryGEKNMBfLirBXKE2d";
String LINE_FEED = "\r\n";
String charset = "UTF-8";
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36");
conn.setRequestProperty("x-access-token", token);
conn.setRequestProperty("x-requested-with", "XMLHttpRequest");
try (
OutputStream outputStream = conn.getOutputStream();
PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, charset), true);
) {
// 写 biz 字段
writer.append("--").append(boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\"biz\"").append(LINE_FEED);
writer.append(LINE_FEED);
writer.append(bizValue).append(LINE_FEED);
writer.flush();
// 写文件字段
String fileName = file.getName();
String mimeType = Files.probeContentType(file.toPath());
if (mimeType == null) {
mimeType = "application/octet-stream";
}
writer.append("--").append(boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"").append(fileName).append("\"").append(LINE_FEED);
writer.append("Content-Type: ").append(mimeType).append(LINE_FEED);
writer.append(LINE_FEED);
writer.flush();
try (FileInputStream inputStream = new FileInputStream(file)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
}
writer.append(LINE_FEED);
writer.flush();
// 结尾
writer.append("--").append(boundary).append("--").append(LINE_FEED);
writer.flush();
}
int status = conn.getResponseCode();
InputStream responseStream = (status >= 200 && status < 300) ? conn.getInputStream() : conn.getErrorStream();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(responseStream, charset))) {
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
// 解析json,提取result.url
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(response.toString());
if (rootNode.path("success").asBoolean(false)) {
JsonNode urlNode = rootNode.path("result").path("url");
if (!urlNode.isMissingNode()) {
return urlNode.asText();
}
}
// 如果失败或无url,返回完整响应或空
return "";
} finally {
conn.disconnect();
}
}
private String getCellStringValue(Cell cell) {
if (cell == null) {
return "";
}
cell.setCellType(CellType.STRING);
return cell.getStringCellValue().trim();
}
public static void main(String[] args) {
PicturesUtils picturesUtils = new PicturesUtils();
byte[] fileData = picturesUtils.getFileStream(new File("C:\\Users\\Huawei\\Desktop\\专家库.xlsm"));
Map<Integer, PicturesUtils.PicturePosition> pictures = picturesUtils.getPicturesWithRow(fileData);
pictures.forEach((row, picturePosition) -> {
System.out.println("图片所在行号(从0开始):" + row);
XSSFPictureData pictureData = picturePosition.getPictureData();
String fileName = pictureData.getPackagePart().getPartName().getName();
System.out.println("文件名:" + fileName);
// 保存路径,注意转义反斜杠
File file = new File("D:\\" + fileName);
File dir = file.getParentFile();
if (!dir.exists()) {
dir.mkdirs();
}
try {
Files.write(Paths.get(file.getPath()), pictureData.getData());
System.out.println("图片保存成功,路径:" + file.getPath());
} catch (IOException e) {
e.printStackTrace();
}
});
}
// public static void main(String[] args) {
// String filePath = "C:\\Users\\Huawei\\Desktop\\专家库.xlsm";
//
// try (FileInputStream fis = new FileInputStream(filePath);
// XSSFWorkbook workbook = new XSSFWorkbook(fis)) {
//
// XSSFSheet sheet = workbook.getSheetAt(0);
//
// XSSFDrawing drawing = sheet.getDrawingPatriarch();
// if (drawing == null) {
// System.out.println("该sheet没有图片");
// return;
// }
//
// List<XSSFShape> shapes = drawing.getShapes();
// for (XSSFShape shape : shapes) {
// if (shape instanceof XSSFPicture) {
// XSSFPicture picture = (XSSFPicture) shape;
// XSSFClientAnchor anchor = picture.getPreferredSize();
//
// int row = anchor.getRow1(); // 图片所在的起始行号(从0开始)
// int col = anchor.getCol1(); // 图片所在的起始列号
//
// String fileName = picture.getPictureData().getPackagePart().getPartName().getName();
// System.out.println("图片对应行:" + (row + 1) + ",列:" + (col + 1) + ",文件名:" + fileName);
// }
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}
@@ -214,89 +214,4 @@ public interface ConDoctorMapper extends BaseMapper<ConDoctor> , MPJBaseMapper<C
String selectDoctorNoExist(@Param("doctorNo") String doctorNo,@Param("doctorId") String doctorId);
@Select("SELECT\n" +
" * \n" +
"FROM\n" +
" (\n" +
" SELECT\n" +
" conr.resource_name hospitalName,\n" +
" count(doct.resource_id) docCount \n" +
" FROM\n" +
" con_resource conr\n" +
" LEFT JOIN con_doctor doct ON conr.id = doct.resource_id \n" +
" WHERE conr.del_flag = 0 and doct.del_flag = 0 and doct.status = '1' \n" +
" GROUP BY conr.id) a\n" +
"ORDER BY\n" +
" docCount DESC")
List<Map<String, Object>> getDocCountStatList();
@Select("SELECT\n" +
" * \n" +
"FROM\n" +
" (\n" +
" SELECT\n" +
" LEFT(org_code, 6) orgCode,\n" +
" SUM(CASE WHEN c.session_type = '2' THEN 1 ELSE 0 END) AS consultHelperCount,\n" +
" SUM(CASE WHEN c.session_type = '1' THEN 1 ELSE 0 END) AS consultDocCount\n" +
" FROM\n" +
" con_session c \n" +
" WHERE\n" +
" c.del_flag = 0 \n" +
" AND c.STATUS = '1' \n" +
" AND (c.tf_reply = 1 OR c.user_tf_reply = 1) \n" +
" AND c.session_type IN ('1', '2') \n" +
" AND length(c.org_code) >= 6 \n" +
" GROUP BY\n" +
" LEFT(org_code, 6)) a \n" +
"ORDER BY\n" +
" consultHelperCount DESC")
List<Map<String, Object>> getDeptCountStatList();
@Select("SELECT\n" +
" * \n" +
"FROM\n" +
" (\n" +
" SELECT\n" +
" cre.department_name departmentName,\n" +
" SUM(CASE WHEN c.content_type = '1' THEN 1 ELSE 0 END) AS consultImCount,\n" +
" SUM(CASE WHEN c.content_type = '2' THEN 1 ELSE 0 END) AS consultVedioCount\n" +
" FROM\n" +
" con_session c\n" +
" LEFT JOIN con_doctor d ON c.to_account = d.id\n" +
" LEFT JOIN con_department cre ON d.department_id = cre.id \n" +
" WHERE\n" +
" c.del_flag = 0 \n" +
" AND c.STATUS = '1' \n" +
" AND (c.tf_reply = 1 OR c.user_tf_reply = 1) \n" +
" AND c.session_type = '1' \n" +
" AND cre.id IS NOT NULL \n" +
" GROUP BY\n" +
" cre.id) a \n" +
"ORDER BY\n" +
" consultImCount DESC")
List<Map<String, Object>> getDepartmentCountStatList();
@Select("SELECT\n" +
" * \n" +
"FROM\n" +
" (\n" +
" SELECT\n" +
" cre.resource_name hospitalName,\n" +
" SUM(CASE WHEN c.content_type = '1' THEN 1 ELSE 0 END) AS consultImCount,\n" +
" SUM(CASE WHEN c.content_type = '2' THEN 1 ELSE 0 END) AS consultVedioCount\n" +
" FROM\n" +
" con_session c\n" +
" LEFT JOIN con_doctor d ON c.to_account = d.id\n" +
" LEFT JOIN con_resource cre ON d.resource_id = cre.id \n" +
" WHERE\n" +
" c.del_flag = 0 \n" +
" AND c.STATUS = '1' \n" +
" AND (c.tf_reply = 1 OR c.user_tf_reply = 1) \n" +
" AND c.session_type = '1' \n" +
" AND cre.id IS NOT NULL \n" +
" GROUP BY\n" +
" cre.id) a \n" +
"ORDER BY\n" +
" consultImCount DESC")
List<Map<String, Object>> getHospitalCountStatList();
}
@@ -16,7 +16,6 @@ import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* @Description: con_doctor
@@ -155,12 +154,4 @@ public interface IConDoctorService extends IService<ConDoctor> {
void updateDoctorByLog(ConDoctorChangeLog changeLog);
void recommendDoctor(String id, Integer type);
List<Map<String, Object>> getDocCountStatList();
List<Map<String, Object>> getDeptCountStatList();
List<Map<String, Object>> getDepartmentCountStatList();
List<Map<String, Object>> getHospitalCountStatList();
}
@@ -1089,24 +1089,4 @@ public class ConDoctorServiceImpl extends ServiceImpl<ConDoctorMapper, ConDoctor
doctor.setTfRecommend(String.valueOf(type));
this.updateDoctor(doctor);
}
@Override
public List<Map<String, Object>> getDocCountStatList() {
return conDoctorMapper.getDocCountStatList();
}
@Override
public List<Map<String, Object>> getDeptCountStatList() {
return conDoctorMapper.getDeptCountStatList();
}
@Override
public List<Map<String, Object>> getDepartmentCountStatList() {
return conDoctorMapper.getDepartmentCountStatList();
}
@Override
public List<Map<String, Object>> getHospitalCountStatList() {
return conDoctorMapper.getHospitalCountStatList();
}
}
@@ -1,370 +0,0 @@
package com.renkang.consultation.util;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.XML;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.openxml4j.opc.PackagePartName;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/**
* @author bianhl
* @version 1.0
* @description 获取图片资源
* @date 2024年4月28日08:44:42
*/
@Slf4j
public class PicturesUtils {
public static void main(String[] args) {
PicturesUtils picturesUtils = new PicturesUtils();
byte[] fileData = picturesUtils.getFileStream(new File("你的文件路径"));
Map<String, XSSFPictureData> pictures = picturesUtils.getPictures(fileData);
pictures.forEach((id, xssfPictureData) -> {
System.out.println("id" + id);
String fileName = xssfPictureData.getPackagePart().getPartName().getName();
System.out.println("fileName" + fileName);
File file = new File("C:\\Users\\XXX\\Desktop\\" + fileName);
File dir = file.getParentFile();
dir.mkdirs();
try {
Files.write(Paths.get(file.getPath()), xssfPictureData.getData());
} catch (IOException e) {
e.printStackTrace();
}
});
}
/**
* 获取浮动图片,以 map 形式返回,键为行列格式 x-y。
*
* @param xssfSheet WPS 工作表
* @return 浮动图片的 map
*/
public static Map<String, XSSFPictureData> getFloatingPictures(XSSFSheet xssfSheet) {
Map<String, XSSFPictureData> mapFloatingPictures = new HashMap<>();
XSSFDrawing drawingPatriarch = xssfSheet.getDrawingPatriarch();
if (drawingPatriarch != null) {
List<XSSFShape> shapes = drawingPatriarch.getShapes();
for (XSSFShape shape : shapes) {
if (shape instanceof XSSFPicture) {
XSSFPicture picture = (XSSFPicture) shape;
XSSFClientAnchor anchor = (XSSFClientAnchor) picture.getAnchor();
XSSFPictureData pictureData = picture.getPictureData();
String key = anchor.getRow1() + "-" + anchor.getCol1();
mapFloatingPictures.put(key, pictureData);
}
}
}
return mapFloatingPictures;
}
/**
* 处理 WPS 文件中的图片数据,返回图片信息 map。
*
* @param stream 输入流
* @param mapConfig 配置映射
* @return 图片信息的 map
* @throws IOException
*/
private Map<String, XSSFPictureData> processPictures(ByteArrayInputStream stream, Map<String, String> mapConfig) throws IOException {
Map<String, XSSFPictureData> mapPictures = new HashedMap<>();
Workbook workbook = WorkbookFactory.create(stream);
List<XSSFPictureData> allPictures = (List<XSSFPictureData>) workbook.getAllPictures();
for (XSSFPictureData pictureData : allPictures) {
PackagePartName partName = pictureData.getPackagePart().getPartName();
String uri = partName.getURI().toString();
if (mapConfig.containsKey(uri)) {
String strId = mapConfig.get(uri);
mapPictures.put(strId, pictureData);
}
}
return mapPictures;
}
/**
* 获取 WPS 文档中的图片,包括嵌入式图片和浮动式图片。
*
* @param data 二进制数据
* @return 图片信息的 map
* @throws IOException
*/
public Map<String, XSSFPictureData> getPictures(byte[] data) {
try {
Map<String, String> mapConfig = processZipEntries(new ByteArrayInputStream(data));
Map<String, XSSFPictureData> mapPictures = processPictures(new ByteArrayInputStream(data), mapConfig);
Iterator<Sheet> sheetIterator = WorkbookFactory.create(new ByteArrayInputStream(data)).sheetIterator();
while (sheetIterator.hasNext()) {
mapPictures.putAll(getFloatingPictures((XSSFSheet) sheetIterator.next()));
}
return mapPictures;
} catch (IOException e) {
return new HashedMap<>();
}
}
@Data
public static class PicturePosition {
private XSSFPictureData pictureData;
private int row;
private int col;
public PicturePosition(XSSFPictureData pictureData, int row, int col) {
this.pictureData = pictureData;
this.row = row;
this.col = col;
}
}
public Map<Integer, PicturePosition> getPicturesWithRow(byte[] data) {
Map<Integer, PicturePosition> pictureMap = new HashMap<>();
try {
Map<String, String> mapConfig = processZipEntries(new ByteArrayInputStream(data));
Map<String, XSSFPictureData> mapPictures = processPictures(new ByteArrayInputStream(data), mapConfig);
Iterator<Sheet> sheetIterator = WorkbookFactory.create(new ByteArrayInputStream(data)).sheetIterator();
while (sheetIterator.hasNext()) {
XSSFSheet sheet = (XSSFSheet) sheetIterator.next();
Map<Integer, PicturePosition> floatingPics = getFloatingPicturesWithRow(sheet);
pictureMap.putAll(floatingPics);
}
} catch (IOException e) {
// 处理异常
}
return pictureMap;
}
public static Map<Integer, PicturePosition> getFloatingPicturesWithRow(XSSFSheet xssfSheet) {
Map<Integer, PicturePosition> map = new HashMap<>();
XSSFDrawing drawingPatriarch = xssfSheet.getDrawingPatriarch();
if (drawingPatriarch != null) {
List<XSSFShape> shapes = drawingPatriarch.getShapes();
for (XSSFShape shape : shapes) {
if (shape instanceof XSSFPicture) {
XSSFPicture picture = (XSSFPicture) shape;
XSSFClientAnchor anchor = (XSSFClientAnchor) picture.getAnchor();
int row = anchor.getRow1();
int col = anchor.getCol1();
map.put(row, new PicturePosition(picture.getPictureData(), row, col));
}
}
}
return map;
}
/**
* 处理 Zip 文件中的条目,更新图片配置信息。
*
* @param stream Zip 输入流
* @return 配置信息的 map
* @throws IOException
*/
private Map<String, String> processZipEntries(ByteArrayInputStream stream) throws IOException {
Map<String, String> mapConfig = new HashedMap<>();
ZipInputStream zipInputStream = new ZipInputStream(stream);
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
try {
final String fileName = zipEntry.getName();
if ("xl/cellimages.xml".equals(fileName)) {
processCellImages(zipInputStream, mapConfig);
} else if ("xl/_rels/cellimages.xml.rels".equals(fileName)) {
return processCellImagesRels(zipInputStream, mapConfig);
}
} finally {
zipInputStream.closeEntry();
}
}
return new HashedMap<>();
}
/**
* 处理 Zip 文件中的 cellimages.xml 文件,更新图片配置信息。
*
* @param zipInputStream Zip 输入流
* @param mapConfig 配置信息的 map
* @throws IOException
*/
private void processCellImages(ZipInputStream zipInputStream, Map<String, String> mapConfig) throws IOException {
String content = IOUtils.toString(zipInputStream, StandardCharsets.UTF_8);
JSONObject jsonObject = XML.toJSONObject(content);
if (jsonObject != null) {
JSONObject cellImages = jsonObject.getJSONObject("etc:cellImages");
if (cellImages != null) {
JSONArray cellImageArray = null;
Object cellImage = cellImages.get("etc:cellImage");
if (cellImage != null && cellImage instanceof JSONArray) {
cellImageArray = (JSONArray) cellImage;
} else if (cellImage != null && cellImage instanceof JSONObject) {
JSONObject cellImageObj = (JSONObject) cellImage; // 显式类型转换
if (cellImageObj != null) {
cellImageArray = new JSONArray();
cellImageArray.add(cellImageObj);
}
}
if (cellImageArray != null) {
processImageItems(cellImageArray, mapConfig);
}
}
}
}
/**
* 处理 cellImageArray 中的图片项,更新图片配置信息。
*
* @param cellImageArray 图片项的 JSONArray
* @param mapConfig 配置信息的 map
*/
private void processImageItems(JSONArray cellImageArray, Map<String, String> mapConfig) {
for (int i = 0; i < cellImageArray.size(); i++) {
JSONObject imageItem = cellImageArray.getJSONObject(i);
if (imageItem != null) {
JSONObject pic = imageItem.getJSONObject("xdr:pic");
if (pic != null) {
processPic(pic, mapConfig);
}
}
}
}
/**
* 处理 pic 中的图片信息,更新图片配置信息。
*
* @param pic 图片的 JSONObject
* @param mapConfig 配置信息的 map
*/
private void processPic(JSONObject pic, Map<String, String> mapConfig) {
JSONObject nvPicPr = pic.getJSONObject("xdr:nvPicPr");
if (nvPicPr != null) {
JSONObject cNvPr = nvPicPr.getJSONObject("xdr:cNvPr");
if (cNvPr != null) {
String name = cNvPr.getStr("name");
if (StringUtils.isNotEmpty(name)) {
String strImageEmbed = updateImageEmbed(pic);
if (strImageEmbed != null) {
mapConfig.put(strImageEmbed, name);
}
}
}
}
}
/**
* 获取嵌入式图片的 embed 信息。
*
* @param pic 图片的 JSONObject
* @return embed 信息
*/
private String updateImageEmbed(JSONObject pic) {
JSONObject blipFill = pic.getJSONObject("xdr:blipFill");
if (blipFill != null) {
JSONObject blip = blipFill.getJSONObject("a:blip");
if (blip != null) {
return blip.getStr("r:embed");
}
}
return null;
}
/**
* 处理 Zip 文件中的 relationship 条目,更新配置信息。
*
* @param zipInputStream Zip 输入流
* @param mapConfig 配置信息的 map
* @return 配置信息的 map
* @throws IOException
*/
private Map<String, String> processCellImagesRels(ZipInputStream zipInputStream, Map<String, String> mapConfig) throws IOException {
String content = IOUtils.toString(zipInputStream, StandardCharsets.UTF_8);
JSONObject jsonObject = XML.toJSONObject(content);
JSONObject relationships = jsonObject.getJSONObject("Relationships");
if (relationships != null) {
JSONArray relationshipArray = null;
Object relationship = relationships.get("Relationship");
if (relationship != null && relationship instanceof JSONArray) {
relationshipArray = (JSONArray) relationship;
} else if (relationship != null && relationship instanceof JSONObject) {
JSONObject relationshipObj = (JSONObject) relationship; // Java 8 显式类型转换
if (relationshipObj != null) {
relationshipArray = new JSONArray();
relationshipArray.add(relationshipObj);
}
}
if (relationshipArray != null) {
return processRelationships(relationshipArray, mapConfig);
}
}
return null;
}
/**
* 处理 relationshipArray 中的关系项,更新配置信息。
*
* @param relationshipArray 关系项的 JSONArray
* @param mapConfig 配置信息的 map
* @return 配置信息的 map
*/
private Map<String, String> processRelationships(JSONArray relationshipArray, Map<String, String> mapConfig) {
Map<String, String> mapRelationships = new HashedMap<>();
for (int i = 0; i < relationshipArray.size(); i++) {
JSONObject relaItem = relationshipArray.getJSONObject(i);
if (relaItem != null) {
String id = relaItem.getStr("Id");
String value = "/xl/" + relaItem.getStr("Target");
if (mapConfig.containsKey(id)) {
String strImageId = mapConfig.get(id);
mapRelationships.put(value, strImageId);
}
}
}
return mapRelationships;
}
/**
* @param file 数据文件
* @return {@link byte[]}
* @description
* @author bianhl
* @date 2024/4/26 13:52
*/
public byte[] getFileStream(File file) {
try (InputStream inputStream = new FileInputStream(file)) {
// 创建 ByteArrayOutputStream 来暂存流数据
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 将 inputStream 读取到 byteArrayOutputStream 中
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, length);
}
// 将 byteArrayOutputStream 的内容获取为字节数组
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
return null;
}
}
}
@@ -1,15 +1,12 @@
FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER xxx@163.com
ENV PROFILE_NAME dev
ENV SERVER_PORT 7010
ENV NACOS_SERVER_ADDR nacos250:8848
ENV NACOS_USERNAME xjuser
ENV NACOS_PASSWORD Aa135790!123
ENV NACOS_NAMESPACE 3af98a54-4a44-4576-8e28-bf5781c0dccf
ENV NACOS_GROUP dev
ENV PROFILE_NAME=dev \
SERVER_PORT=7010 \
NACOS_SERVER_ADDR=nacos250:8848 \
NACOS_USERNAME=xjuser \
NACOS_PASSWORD=Aa135790!123 \
NACOS_NAMESPACE=3af98a54-4a44-4576-8e28-bf5781c0dccf \
NACOS_GROUP=dev
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
@@ -20,6 +17,6 @@ WORKDIR /health-consultation-start
EXPOSE 7010
ADD ./target/health-consultation-start.jar ./
COPY ./target/health-consultation-start-xj.jar ./
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-consultation-start.jar
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-consultation-start-xj.jar
@@ -9,6 +9,11 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>health-consultation-start</artifactId>
<properties>
<maven.install.skip>true</maven.install.skip>
</properties>
<dependencies>
<!--微服务启动 starter-->
<dependency>
@@ -24,6 +29,7 @@
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-consultation-biz</artifactId>
<classifier>${biz-classifier}</classifier>
</dependency>
</dependencies>
-4
View File
@@ -13,10 +13,6 @@
<version>2.0.0</version>
<packaging>pom</packaging>
<properties>
<maven.install.skip>true</maven.install.skip>
</properties>
<!--项目子模块-->
<modules>
<module>health-consultation-api</module>
@@ -13,6 +13,7 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
</dependency>
<!-- feign -->
@@ -28,18 +28,9 @@ public class EmergencySocket {
private List<TblBaseHospitalVo> hospitalList;
private String type;
private String centerId;
@Schema(title = "0:120 1:紧急求助 2:云坐席 3:终端报警")
@Schema(title = "1:紧急求助 2:云坐席 3:终端报警")
private Integer popType;
private String queue;
private String noticeId;
@Schema(title = "关爱联络员姓名")
private String careLiaisonName;
@Schema(title = "关爱联络员电话")
private String careLiaisonPhone;
@Schema(title = "急救人员姓名")
private String lifeguardName;
@Schema(title = "急救人员电话")
private String lifeguardPhone;
}
@@ -3,20 +3,15 @@ package com.renkang.emergency.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@TableName("emergency_health_room")
@Schema(title="新疆健康小屋", description="新疆健康小屋表")
public class EmergencyHealthRoom {
/**
@@ -31,7 +31,4 @@ public class EmergencySchedulesItem {
@Schema(title = "人员姓名")
private String userName;
@Schema(title = "排序")
private Integer sort;
}
@@ -1,99 +0,0 @@
package com.renkang.emergency.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("large_screen_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "large_screen_data对象", description = "large_screen_data")
public class LargeScreenData implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private String id;
private String centerId;
/**
* 开关类型
* 最新呼入电话gross 最新受理电话alerdyreceive 突发重大伤病应急jqqz 重大伤病应急就医dbjy 累计受理totaldeal 累计处置totalacceptance
*
* 120oneTwenty 应急就医hospital
*
* 体检人数medical
*
* 减重今日打卡weightLossCountDay 减重本月打卡weightLossCountMonth 减重今日异常weightLossAbnormalCountDay 减重本月异常weightLossAbnormalCountMonth
* 血糖今日打卡bloodSugarCountDay 血糖本月打卡bloodSugarCountMonth 血糖今日异常bloodSugarAbnormalCountDay 血糖本月异常bloodSugarAbnormalCountMonth
* 血压今日打卡bloodPressureCountDay 血压本月打卡bloodPressureCountMonth 血压今日异常bloodPressureAbnormalCountDay 血压本月异常bloodPressureAbnormalCountMonth
*
* 体检总totalCount 心血管异常cardiovaAbCount 脑血管异常cerebrovAbCount 冠状CT异常cctaAbCount
*/
@Schema(title = "开关类型")
private String type;
/**
* 开启状态(0:未开启 1:开启)
*/
@Schema(title = "开启状态(0:未开启 1:开启)")
private String status;
@Schema(title = "名称(体检机构才有值)")
private String name;
@Schema(title = "")
private String value;
/**
* 创建人
*/
@Schema(title = "创建人")
private String createBy;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建时间")
private Date createTime;
/**
* 更新人
*/
@Schema(title = "更新人")
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新时间")
private Date updateTime;
public LargeScreenData() {}
public LargeScreenData(LargeScreenDataValueDTO dto){
this.id = dto.getId();
this.centerId = dto.getCenterId();
this.type = dto.getType();
this.status = dto.getStatus();
this.name = dto.getName();
this.value = dto.getValue();
}
}
@@ -246,34 +246,6 @@ public class Order implements Serializable {
@Excel(name = "专业人头像", width = 15)
@Schema(title = "专业人头像")
private java.lang.String majorUserAvatar;
/**
* 第二位参与的专业人员id
* PS: 新疆项目的临时解决方案 ,为满足四方通话的需求 ,可能会在发起应急的时候拉第二位专业人员加入对话
*/
@Schema(title = "第二位参与的专业人员id")
private java.lang.String majorUserTwoId;
/**
* 第二位参与的专业人员姓名
*/
@Schema(title = "第二位参与的专业人员姓名")
private java.lang.String majorUserTwoName;
/**
* 第二位参与的专业人员性别
*/
@Schema(title = "第二位参与的专业人员性别")
private java.lang.String majorUserTwoSex;
/**
* 第二位参与的专业人员电话
*/
@Schema(title = "第二位参与的专业人员电话")
private java.lang.String majorUserTwoMobile;
/**
* 第二位参与的专业人头像
*/
@Schema(title = "第二位参与的专业人头像")
private java.lang.String majorUserTwoAvatar;
/**
* 驻场人员id
*/
@@ -1,63 +0,0 @@
package com.renkang.emergency.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: emergency_order_operator 应急工单操作人员表,记录工单所有参与或协助应急的人员信息
* @Author: feng
* @Date: 2025-10-24
* @Version: V1.0
*/
@Data
@TableName("emergency_order_operator")
@Schema(title = "应急工单操作人员表", description = "应急工单操作人员表")
public class OrderOperator implements Serializable {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "id")
private String id;
/**
* 应急工单ID
*/
@Schema(title = "应急工单ID")
private String orderId;
/**
* 人员类型(人员类型0:操作人员 1:专业人员)
*/
@Schema(title = "人员类型(人员类型0:操作人员 1:专业人员)")
private Integer operatorType;
/**
* 人员ID
*/
@Schema(title = "人员ID")
private String userId;
/**
* 参与类型(0:处理应急,1:协助应急)
*/
@Schema(title = "参与类型(0:处理应急,1:协助应急)")
private Integer joinType;
/**
* 参与应急时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "参与应急时间")
private Date joinDate;
}
@@ -68,24 +68,11 @@ public class Resource implements Serializable {
@Schema(title = "纬度")
private BigDecimal latitude;
/**
* 资源类型(1:油田医院 3:健康小屋 5:救护车) 202508xj 项目字典发生变化 , 使用字典resource_type ,
* 资源类型(1:油田医院 2:合作医院 3:医疗点 4: )
*/
@Excel(name = "资源类型(1:油田医院 3:健康小屋 4:AED 5:救护车)", width = 15)
@Schema(title = "资源类型(1:油田医院 3:健康小屋 4:AED 5:救护车 )")
@Excel(name = "资源类型(1:油田医院 2:合作医院 3:医疗点 4: )", width = 15)
@Schema(title = "资源类型(1:油田医院 2:合作医院 3:医疗点 4: )")
private String type;
/**
* 在岗人数
*/
@Schema(title = "在岗人数")
private Integer jobNum;
/**
* 运转时间(分钟)
*/
@Schema(title = "运转时间(分钟)")
private Integer runTime;
/**
* 救治范围
*/
@@ -23,36 +23,10 @@ public class TblBaseHospitalVo {
private String type;
@Schema(title = "中心医疗点标识")
private boolean centerResource=false;
@Schema(title = "管理员/联系人姓名")
private String manageName;
@Schema(title = "管理员/联系人电话")
private String managePhone;
@Schema(title = "地址")
private String address;
private String ambulance;
private String docNum;
private String nurseNum;
private String expertNum;
private String distance;
public TblBaseHospitalVo() {}
public TblBaseHospitalVo(Resource resource){
this.id = resource.getId();
this.name = resource.getName();
this.lat = resource.getLatitude();
this.lon = resource.getLongitude();
this.type = resource.getType();
this.address = resource.getAddress();
}
public TblBaseHospitalVo(XjAed xjAed){
this.id = xjAed.getId();
this.name = xjAed.getName();
this.lat = xjAed.getLatitude();
this.lon = xjAed.getLongitude();
this.type = "4";
this.address = xjAed.getAddress();
}
}
@@ -1,71 +0,0 @@
package com.renkang.emergency.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("xj_aed")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class XjAed implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private String id;
@Excel(name = "aed名称", width = 15)
@Schema(title = "aed名称")
private String name;
@Excel(name = "设置地点", width = 15)
@Schema(title = "设置地点")
private String address;
@Excel(name = "经度", width = 15)
@Schema(title = "经度(火星坐标系)")
private BigDecimal longitude;
@Excel(name = "纬度", width = 15)
@Schema(title = "纬度(火星坐标系)")
private BigDecimal latitude;
@Excel(name = "管理员姓名", width = 15)
@Schema(title = "管理员姓名")
private String manageName;
@Excel(name = "管理员电话", width = 15)
@Schema(title = "管理员电话")
private String managePhone;
@Schema(title = "orgCode")
private String orgCode;
@Schema(title = "orgName")
@TableField(exist = false)
private String orgName;
private Integer delFlag;
private String createBy;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
private String updateBy;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
@@ -1,43 +0,0 @@
package com.renkang.emergency.entity.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author Huawei
* @version 1.0
* @description: 添加其他成员DTO
* @date 2025/11/3 10:41
*/
@NoArgsConstructor
@Data
public class AddOtherMemberDTO {
/**
* 群组id
*/
@NotBlank(message = "群组id不能为空")
@Schema(title = "群组id")
private String groupId;
/**
* 应急单id
*/
@NotBlank(message = "应急单id不能为空")
@Schema(title = "应急单id")
private String orderId;
/**
* 邀请成员id集合
*/
@NotEmpty(message = "邀请成员id集合不能为空")
@Size(min = 1, max = 100, message = "邀请成员数量必须在1-100个之间")
@Schema(title = "邀请成员id集合")
private List<String> memberList;
}
@@ -1,13 +0,0 @@
package com.renkang.emergency.entity.dto;
import lombok.Data;
@Data
public class LargeScreenDataValueDTO {
private String id;
private String centerId;
private String value;
private String name;
private String type;
private String status;
}
@@ -1,51 +0,0 @@
package com.renkang.emergency.entity.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Huawei
* @version 1.0
* @description: 创建群聊VO
* @date 2025/11/3 10:41
*/
@NoArgsConstructor
@Data
public class CreateGroupMagVO {
/**
* 群组id
*/
@JsonProperty("groupId")
private String groupId;
/**
* 用户id
*/
@JsonProperty("userId")
private String userId;
/**
* 成员集合(当前加入成员)
*/
@JsonProperty("member")
private List<String> member;
/**
* 应急单id
*/
@JsonProperty("id")
private String id;
@JsonProperty("tfNew")
private String tfNew;
/**
* 成员集合(待加入成员)
*/
@JsonProperty("otherMember")
private List<String> otherMember;
}
@@ -1,157 +0,0 @@
package com.renkang.emergency.entity.vo;
import lombok.Data;
@Data
public class DataDetailVO {
private String centerId;
private String module;
/**
* 服务详情
*/
/**
* 应急就医
*/
private String emergencyNum;
private String emergencyNumStatus;
/**
* 重大伤病
*/
private String illNum;
private String illNumStatus;
/**
* 受理电话
*/
private String latestAcceptCall;
private String latestAcceptCallStatus;
/**
* 呼入电话
*/
private String latestCall;
private String latestCallStatus;
/**
* 累计受理
*/
private String totalAccept;
private String totalAcceptStatus;
/**
* 累计处置
*/
private String totalDisposal;
private String totalDisposalStatus;
/**
* 主诉分类
*/
/**
* 应急就医
*/
private String emergencyCount;
private String emergencyCountStatus;
/**
* 120
*/
private String hospitalCount;
private String hospitalCountStatus;
/**
* 健康打卡人数
*/
/**
* 减重今日打卡人数
*/
private String weightLossCountDay;
private String weightLossCountDayStatus;
/**
* 减重本月打卡人数
*/
private String weightLossCountMonth;
private String weightLossCountMonthStatus;
/**
* 减重今日异常人数
*/
private String weightLossAbnormalCountDay;
private String weightLossAbnormalCountDayStatus;
/**
* 减重本月异常人数
*/
private String weightLossAbnormalCountMonth;
private String weightLossAbnormalCountMonthStatus;
/**
* 血糖今日打卡人数
*/
private String bloodSugarCountDay;
private String bloodSugarCountDayStatus;
/**
* 血糖本月打卡人数
*/
private String bloodSugarCountMonth;
private String bloodSugarCountMonthStatus;
/**
* 血糖今日异常人数
*/
private String bloodSugarAbnormalCountDay;
private String bloodSugarAbnormalCountDayStatus;
/**
* 血糖本月异常人数
*/
private String bloodSugarAbnormalCountMonth;
private String bloodSugarAbnormalCountMonthStatus;
/**
* 血压今日打卡人数
*/
private String bloodPressureCountDay;
private String bloodPressureCountDayStatus;
/**
* 血压本月打卡人数
*/
private String bloodPressureCountMonth;
private String bloodPressureCountMonthStatus;
/**
* 血压今日异常人数
*/
private String bloodPressureAbnormalCountDay;
private String bloodPressureAbnormalCountDayStatus;
/**
* 血压本月异常人数
*/
private String bloodPressureAbnormalCountMonth;
private String bloodPressureAbnormalCountMonthStatus;
/**
* 体检数据
*/
/**
* 体检总人数
*/
private String totalCount;
private String totalCountStatus;
/**
* 心血管异常人数
*/
private String cardiovaAbCount;
private String cardiovaAbCountStatus;
/**
* 脑血管异常人数
*/
private String cerebrovAbCount;
private String cerebrovAbCountStatus;
/**
* 冠状ct异常人数
*/
private String cctaAbCount;
private String cctaAbCountStatus;
}
@@ -1,45 +0,0 @@
package com.renkang.emergency.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @author Huawei
* @version 1.0
* @description: 群组成员VO
* @date 2025/11/5 13:17
*/
@Data
public class GroupMemberVO {
/**
* 应急单id
*/
@Schema(title = "应急单id")
private String orderId;
/**
* 用户ID
*/
@Schema(title = "用户ID")
private String userId;
/**
* 用户名称
*/
@Schema(title = "用户名称")
private String userName;
/**
* 头像
*/
@Schema(title = "头像")
private String avatar;
/**
* 是否是群组成员, 0:不是群组成员, 1:是群组成员
*/
@Schema(title = "是否是群组成员, 0:不是群组成员, 1:是群组成员")
private Integer isGroupMember;
}
@@ -1,22 +0,0 @@
package com.renkang.emergency.entity.vo;
import com.renkang.emergency.entity.LargeScreenData;
import lombok.Data;
@Data
public class MedicalDataVO {
private String id;
private String centerId;
private String name;
private String status;
private String count;
public MedicalDataVO() {}
public MedicalDataVO(LargeScreenData data) {
id = data.getId();
centerId = data.getCenterId();
name = data.getName();
count = data.getValue();
status = data.getStatus();
}
}
@@ -7,7 +7,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -29,23 +28,11 @@ public class WeekDataVO {
@Schema(title ="专业人员集合")
private List<EmergencySchedulesItem> professionalUserList;
@Schema(title ="操作人员id集合")
private List<String> operationUserListIds;
@Schema(title ="专业人员id集合")
private List<String> professionalUserListIds;
public List<EmergencySchedulesItem> getOperationUserList(List<EmergencySchedulesItem> itemList) {
return itemList.stream()
.filter(item -> "0".equals(item.getUserType()))
.sorted(Comparator.comparing(EmergencySchedulesItem::getSort)) // 根据 sort 字段升序排序
.collect(Collectors.toList());
return itemList.stream().filter(item -> "0".equals(item.getUserType())).collect(Collectors.toList());
}
public List<EmergencySchedulesItem> getProfessionalUserList(List<EmergencySchedulesItem> itemList) {
return itemList.stream()
.filter(item -> "1".equals(item.getUserType()))
.sorted(Comparator.comparing(EmergencySchedulesItem::getSort)) // 根据 sort 字段升序排序
.collect(Collectors.toList());
return itemList.stream().filter(item -> "1".equals(item.getUserType())).collect(Collectors.toList());
}
}
+22 -8
View File
@@ -9,6 +9,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>health-emergency-biz</artifactId>
<dependencies>
<!--定时任务-->
<dependency>
@@ -18,24 +19,20 @@
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-emergency-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-system-cloud-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-im-api</artifactId>
<classifier>xj</classifier>
</dependency>
<dependency>
<groupId>com.renkang</groupId>
<artifactId>xj-anyan-api</artifactId>
</dependency>
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-watch-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
@@ -54,4 +51,21 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>biz-obf</id>
<build>
<plugins>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
@@ -0,0 +1,38 @@
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod, Exceptions, MethodParameters
-keep @org.springframework.stereotype.Service class *
-keep @org.springframework.web.bind.annotation.RestController class *
-keep @org.springframework.context.annotation.Configuration class * { *; }
-keep @org.springframework.stereotype.Component class *
-keep class lombok.** { *; }
-keepclassmembers enum * { # 保留枚举结构
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements java.io.Serializable { *; }
-keepclassmembers class * {
@org.springframework.web.bind.annotation.*Mapping *;
}
-keepclassmembers class * {
private static synthetic java.lang.Object $deserializeLambda$(java.lang.invoke.SerializedLambda);
}
-keepclassmembers class * {
@lombok.Getter *;
@lombok.Setter *;
}
# MyBatis 专用保留规则
-keep interface com.renkang.**.mapper.** { *; }
-keep class com.renkang.**.entity.** { *; }
-keep class com.renkang.**.bean.** { *; }
-keep class com.renkang.**.model.** { *; }
-keep class com.renkang.**.vo.** { *; }
-keepparameternames
# 关闭优化和压缩(避免框架兼容性问题)
-dontshrink # 不删除未使用代码
-dontoptimize # 不优化字节码[5,6](@ref)
-keepdirectories
-dontusemixedcaseclassnames
-adaptclassstrings
# 混淆选项
-useuniqueclassmembernames # 成员名称唯一化
-ignorewarnings
@@ -8,8 +8,6 @@ import com.renkang.emergency.bean.request.SingleParam;
import com.renkang.emergency.bean.response.Call;
import com.renkang.emergency.bean.response.Stat;
import com.renkang.emergency.bean.response.StatSimple;
import com.renkang.emergency.entity.dto.AddOtherMemberDTO;
import com.renkang.emergency.entity.vo.CreateGroupMagVO;
import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.api.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
@@ -97,10 +95,10 @@ public class EmergencyApiController {
@Operation(summary = "创建群聊-应急")
@GetMapping(value = "/createGroupMag")
public Result<CreateGroupMagVO> createGroupMag(@RequestParam("name") String name, @RequestParam("longitude") String longitude,
public Result<Map<String, Object>> createGroupMag(@RequestParam("name") String name, @RequestParam("longitude") String longitude,
@RequestParam("latitude") String latitude,
@RequestParam(required = false) String type) {
return Result.OK(emergencyApiService.createGroupMag(name, longitude, latitude, type));
return emergencyApiService.createGroupMag(name, longitude, latitude, type);
}
@@ -117,10 +115,7 @@ public class EmergencyApiController {
return Result.ok(emergencyApiService.fixOrderStatus());
}
@Operation(summary = "邀请用户加入群聊-应急")
@PostMapping(value = "/addGroupUser")
public Result<Boolean> addGroupUser(@RequestBody @Validated AddOtherMemberDTO dto) {
return Result.OK(emergencyApiService.addGroupUser(dto));
}
}
@@ -15,8 +15,6 @@ import com.renkang.emergency.bean.response.SessionOrderUser;
import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.OrderDetail;
import com.renkang.emergency.entity.OrderSendRecord;
import com.renkang.emergency.entity.vo.GroupMemberVO;
import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.api.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -285,16 +283,5 @@ public class EmergencyOrderApiController {
}
/**
* @description: 获取群组成员和其他专业人员
* @author PengJ
* @date 2025/11/5 13:14
*/
@Operation(summary = "获取群组成员和其他专业人员")
@GetMapping("/getGroupMemberList")
public Result<List<GroupMemberVO>> getGroupMemberList(@RequestParam("orderId") String orderId) {
return Result.OK(emergencyOrderApiService.getGroupMemberList(orderId));
}
}
@@ -4,7 +4,6 @@ import com.renkang.emergency.api.RequestPrefix;
import com.renkang.emergency.api.service.EmergencyResourceApiService;
import com.renkang.emergency.bean.response.ResourceHome;
import com.renkang.emergency.entity.EmergencyResourceDO;
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
import org.jeecg.common.api.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -34,7 +33,7 @@ public class EmergencyResourceApiController {
* @return result
*/
@GetMapping("/home")
public Result<List<LargeScreenMap>> home(@RequestParam(required = false) String type,
public Result<ResourceHome> home(@RequestParam(required = false) String type,
@RequestParam(required = false) Double longitude,
@RequestParam(required = false) Double latitude) {
return Result.ok(emergencyResourceApiService.listResourceByType(type, longitude, latitude));
@@ -6,8 +6,6 @@ import com.renkang.emergency.bean.request.SingleParam;
import com.renkang.emergency.bean.response.Call;
import com.renkang.emergency.bean.response.Stat;
import com.renkang.emergency.bean.response.StatSimple;
import com.renkang.emergency.entity.dto.AddOtherMemberDTO;
import com.renkang.emergency.entity.vo.CreateGroupMagVO;
import org.jeecg.common.api.vo.Result;
import java.util.List;
@@ -30,11 +28,10 @@ public interface EmergencyApiService {
StatSimple statSimple();
CreateGroupMagVO createGroupMag(String name, String longitude, String latitude, String type);
Result<Map<String, Object>> createGroupMag(String name, String longitude, String latitude, String type);
Result<Map<String, Object>> createGroupMagIntervene(String name, String longitude, String latitude, String type);
List<String> fixOrderStatus();
boolean addGroupUser(AddOtherMemberDTO dto);
}
@@ -13,7 +13,6 @@ import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.OrderDetail;
import com.renkang.emergency.entity.OrderSendRecord;
import com.renkang.emergency.entity.TblHelpCentorVo;
import com.renkang.emergency.entity.vo.GroupMemberVO;
import java.util.List;
@@ -71,7 +70,4 @@ public interface EmergencyOrderApiService {
Order getOrderById(String id);
List<TblHelpCentorVo> getSicknessTypeStatistic(String sex, String depart);
List<GroupMemberVO> getGroupMemberList(String orderId);
}
@@ -2,7 +2,6 @@ package com.renkang.emergency.api.service;
import com.renkang.emergency.bean.response.ResourceHome;
import com.renkang.emergency.entity.EmergencyResourceDO;
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
import org.jeecg.common.api.vo.Result;
import java.util.List;
@@ -12,7 +11,7 @@ import java.util.List;
* @date 2023-04-25 13:07
*/
public interface EmergencyResourceApiService {
List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude);
ResourceHome listResourceByType(String type, Double longitude, Double latitude);
String sessionNow(String userId);
@@ -16,39 +16,38 @@ import com.renkang.emergency.bean.request.SingleParam;
import com.renkang.emergency.bean.response.*;
import com.renkang.emergency.constant.EmergencyConstants;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.entity.dto.AddOtherMemberDTO;
import com.renkang.emergency.entity.vo.CreateGroupMagVO;
import com.renkang.emergency.manager.EmergencyCloudManager;
import com.renkang.emergency.mapper.*;
import com.renkang.emergency.service.IEmergencyCenterService;
import com.renkang.emergency.service.ISysNotifySmsPhoneService;
import com.renkang.emergency.service.ITblAmbulanceGpsService;
import com.renkang.emergency.util.CodeConstant;
import com.renkang.emergency.util.DateUtils;
import com.renkang.emergency.websocket.WebSocket;
import com.renkang.im.api.IMHelloApi;
import com.renkang.im.dto.AddGroupMemberDTO;
import com.renkang.im.entity.ConSessionRequestDO;
import com.renkang.im.entity.ImGroupMsgTextReqDO;
import com.renkang.im.vo.AddGroupMemberVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.bean.request.ListUser;
import org.jeecg.common.api.dto.message.BusTemplateMessageDTO;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.ExceptionAssertsUtil;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.system.vo.LoginUserNew;
import org.jeecg.common.system.vo.SysDepartModel;
import org.jeecg.global.GlobalUtils;
import org.jeecg.modules.manager.ISysCache;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser;
import org.parboiled.common.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -110,10 +109,6 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
private EmergencySchedulesNewItemMapper emergencySchedulesNewItemMapper;
@Autowired
private LargeScreenImpl largeScreen;
@Autowired
private OrderOperatorMapper orderOperatorMapper;
@Autowired
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
@Override
@@ -219,8 +214,7 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
Stat stat = new Stat();
stat.setCompletionRate(getCompletionRate(userId, personType));
stat.setTotalNum(getTotalNum(userId, personType));
// stat.setDutyTeamNum(getDutyTeamNum());
stat.setDutyTeamNum(getDutyTeamNumV2(userId));
stat.setDutyTeamNum(getDutyTeamNum());
stat.setTimelinessRate(getTimelinessRate(userId));
return stat;
}
@@ -238,11 +232,6 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
return onDutyPerson;
}
private Integer getDutyTeamNumV2(String userId) {
Integer num = emergencySeriousDiseaseMapper.dutyTeam(userId);
return num == null ? 0 : num;
}
private CenterUser findOnDutyUser(boolean isDefaultCenter) {
EmergencyCenter emergencyCenter = getEmergencyCenter(isDefaultCenter);
CenterUser centerUser = new CenterUser();
@@ -668,10 +657,6 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
});
}
/**
* @description: 保存应急订单信息
* @date 2025/10/31 10:57
*/
private String insertOrder(EmergencyCall emergencyCall) {
LoginUser loginUser = GlobalUtils.getLoginUser();
@@ -702,17 +687,14 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
order.setSalvageUserIdCard(loginUser.getIdCard());
order.setSalvageUserDepart(loginUser.getOrgCode());
order.setSalvageUserAvatar(loginUser.getAvatar());
// 大屏推送及发送短信
EmergencySocket socket = new EmergencySocket();
// 如果是120 插入应急中心
if (StrUtil.isBlank(emergencyCall.getCenterId()) && EmergencyConstants.CALL_TYPE_0.equals(emergencyCall.getCallType())) {
Call call = officerOnDuty();
order.setCenterId(call.getCenterId());
socket.setPopType(0);
} else {
socket.setPopType(1);
}
orderMapper.insert(order);
// 大屏推送及发送短信
EmergencySocket socket = new EmergencySocket();
socket.setType(emergencyCall.getCallType());
socket.setCenterId(emergencyCall.getCenterId());
socket.setOrgCode(loginUser.getOrgCode());
@@ -720,42 +702,6 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
return order.getId();
}
/**
* @description: 保存应急工单人员信息
* @author PengJ
* @date 2025/10/31 10:58
*/
private void saveOrderOperator(Order order) {
OrderOperator orderOperator;
if (order.getOperationUserId() != null) {
orderOperator = new OrderOperator();
orderOperator.setOrderId(order.getId());
orderOperator.setOperatorType(0);
orderOperator.setUserId(order.getOperationUserId());
orderOperator.setJoinType(0);
orderOperator.setJoinDate(order.getOperationResponseTime());
orderOperatorMapper.insert(orderOperator);
}
if (order.getMajorUserId() != null) {
orderOperator = new OrderOperator();
orderOperator.setOrderId(order.getId());
orderOperator.setOperatorType(1);
orderOperator.setUserId(order.getMajorUserId());
orderOperator.setJoinType(0);
orderOperator.setJoinDate(order.getMajorResponseTime());
orderOperatorMapper.insert(orderOperator);
}
if (order.getMajorUserTwoId() != null) {
orderOperator = new OrderOperator();
orderOperator.setOrderId(order.getId());
orderOperator.setOperatorType(1);
orderOperator.setUserId(order.getMajorUserTwoId());
orderOperator.setJoinType(0);
orderOperator.setJoinDate(new Date());
orderOperatorMapper.insert(orderOperator);
}
}
private String insertOrderIntervene(String callType, String resourceId, Double longitude, Double latitude, String type) {
LoginUser loginUser = GlobalUtils.getLoginUser();
@@ -792,137 +738,72 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
return order.getId();
}
@Transactional(rollbackFor = Exception.class)
@Override
public CreateGroupMagVO createGroupMag(String name, String longitude, String latitude, String type) {
CreateGroupMagVO createGroupMagVO = new CreateGroupMagVO();
public Result<Map<String, Object>> createGroupMag(String name, String longitude, String latitude, String type) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//查是否有已经存在的应急工单,有则直接返回相关信息
Order order = emergencyResourceApiServiceImpl.sessionNowSession(sysUser.getId());
List<String> userList = new ArrayList<>();
List<String> userList = new ArrayList<>(2);
if (order != null) {
createGroupMagVO.setUserId(sysUser.getId());
createGroupMagVO.setGroupId(order.getSessionId());
createGroupMagVO.setTfNew("0");
Map res = new HashMap<>();
res.put("userId", sysUser.getId());
res.put("groupId", order.getSessionId());
res.put("tfNew", "0");
userList.add(order.getOperationUserId());
userList.add(order.getMajorUserId());
if (null != order.getMajorUserTwoId()) {
userList.add(order.getMajorUserTwoId());
}
createGroupMagVO.setMember(userList);
createGroupMagVO.setId(order.getId());
//查询其他专业人员(先注释)
// List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
// .notIn(EmergencyProfessionUser::getUserId, userList)
// .eq(EmergencyProfessionUser::getType, "6")
// );
// List<String> otherMember = emergencyProfessionUsers.stream().map(EmergencyProfessionUser::getUserId).collect(Collectors.toList());
// createGroupMagVO.setOtherMember(otherMember);
return createGroupMagVO;
res.put("member", userList);
res.put("id", order.getId());
return Result.OK(res);
}
// 查询当前应急中心值班人员
// 当前值班人员
Call rs = this.officerOnDuty();
if (rs == null || CollectionUtils.isEmpty(rs.getMajors()) || CollectionUtils.isEmpty(rs.getOperators())) {
ExceptionAssertsUtil.fail("没有接受方人员!");
return Result.error("没有接受方人员!");
}
List<String> yesIds = new ArrayList<>();
String majorsId = rs.getMajors().get(0).getUserId();
String operatorsId = rs.getOperators().get(0).getUserId();
String majorsTwoId = null;
// 20251015改为默认仅排班的三方通话(取排班的第一个),第四方(及多方)仅在添加入群组时才能接入多方通话
// if (rs.getMajors().size() > 1) {
// //20250926前是 多个值班人员随机取第一个 , 后改成取两个专业人员 , 将两个专业人员都拉入群聊
// majorsTwoId = rs.getMajors().get(1).getUserId();
// yesIds.add(majorsTwoId);
// userList.add(majorsTwoId);
// }
//查询其他专业人员(先注释)
// List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
// .ne(EmergencyProfessionUser::getUserId, majorsId)
// .eq(EmergencyProfessionUser::getType, "6")
// );
// List<String> otherMember = emergencyProfessionUsers.stream().map(EmergencyProfessionUser::getUserId).collect(Collectors.toList());
// createGroupMagVO.setOtherMember(otherMember);
userList.add(operatorsId);
userList.add(majorsId);
List<String> yesIds = new ArrayList<>();
yesIds.add(sysUser.getId());
yesIds.add(majorsId);
yesIds.add(operatorsId);
//添加其他专业人员
// yesIds.addAll(otherMember);
//获取参与应急的人员信息
ConSessionRequestDO conSessionRequestDO = selectConSessionRequestDO(yesIds, "", name);
conSessionRequestDO.setUserId(sysUser.getId());
//调用IM创建群组
Result<Map<String, Object>> imrs = iMHelloApi.creatGroupMagNew(conSessionRequestDO);
boolean isSuccess = imrs.isSuccess();
if (!isSuccess) {
ExceptionAssertsUtil.fail("应急单创建失败");
return Result.error("应急单创建失败");
}
String sessionId = (String) imrs.getResult().get("groupId");
createGroupMagVO.setGroupId(sessionId);
String callType = StrUtil.isNotBlank(type) ? "2" : "1";
//发送IM 提醒消息
sendInitMsg(sessionId, callType, sysUser.getId());
EmergencyCall emergencyCall = new EmergencyCall();
emergencyCall.setCallType(callType);
emergencyCall.setLongitude(Double.valueOf(longitude));
emergencyCall.setLatitude(Double.valueOf(latitude));
emergencyCall.setCenterId(rs.getCenterId());
//保存应急工单
String orderId = this.call(emergencyCall);
//保存参与应急的人员信息 PS: 不想大改之前的代码逻辑此处 没有将同一条记录的赋值逻辑合并
saveOderOperationInfo(orderId, sessionId, majorsId, operatorsId, majorsTwoId, rs.getCenterId(), conSessionRequestDO.getAccountList());
CallBack callBack = new CallBack();
callBack.setOrderId(orderId);
callBack.setMajorUserId(majorsId);
callBack.setOperationUserId(operatorsId);
callBack.setSessionId(sessionId);
callBack.setCenterId(rs.getCenterId());
this.callBack(callBack);
userList.add(operatorsId);
userList.add(majorsId);
imrs.getResult().put("member", userList);
imrs.getResult().put("tfNew", "1");
imrs.getResult().put("id", orderId);
createGroupMagVO.setMember(userList);
createGroupMagVO.setTfNew("1");
createGroupMagVO.setId(orderId);
return createGroupMagVO;
}
public void saveOderOperationInfo(String orderId, String sessionId, String majorsId, String operatorsId, String majorsTwoId,
String centerId, List<LoginUserNew> accountList) {
Map<String, LoginUserNew> userMap = accountList.stream().collect(Collectors.toMap(LoginUserNew::getId, user -> user));
Date now = new Date();
Order order = new Order();
order.setId(orderId);
order.setSessionId(sessionId);
order.setSessionNow(true);
order.setOrderStatus(EmergencyConstants.ORDER_STATUS_1_NEW);
order.setIsDispatch(EmergencyConstants.ORDER_SEND_STATUS_1);
order.setCenterId(centerId);
if (null != operatorsId && null != userMap.get(operatorsId)) {
LoginUserNew operationUser = userMap.get(operatorsId);
order.setOperationUserId(operatorsId);
order.setOperationUserName(handleNull(operationUser).getRealname());
order.setOperationUserSex(ifNullReturnEmpty(handleNull(operationUser).getSex()));
order.setOperationUserMobile(handleNull(operationUser).getPhone());
order.setOperationUserAvatar(handleNull(operationUser).getAvatar());
order.setOperationResponseTime(now);
}
if (null != majorsId && null != userMap.get(majorsId)) {
LoginUserNew majorUser = userMap.get(majorsId);
order.setMajorUserId(majorsId);
order.setMajorUserName(handleNull(majorUser).getRealname());
order.setMajorUserSex(ifNullReturnEmpty(handleNull(majorUser).getSex()));
order.setMajorUserMobile(handleNull(majorUser).getPhone());
order.setMajorUserAvatar(handleNull(majorUser).getAvatar());
order.setMajorResponseTime(now);
}
if (null != majorsTwoId && null != userMap.get(majorsTwoId)) {
LoginUserNew majorUserTwo = userMap.get(majorsTwoId);
order.setMajorUserTwoId(majorsTwoId);
order.setMajorUserTwoName(handleNull(majorUserTwo).getRealname());
order.setMajorUserTwoSex(ifNullReturnEmpty(handleNull(majorUserTwo).getSex()));
order.setMajorUserTwoMobile(handleNull(majorUserTwo).getPhone());
order.setMajorUserTwoAvatar(handleNull(majorUserTwo).getAvatar());
}
orderMapper.updateById(order);
//保存工单人员信息
saveOrderOperator(order);
return imrs;
}
@Override
@@ -1061,44 +942,4 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
}
}).map(Order::getId).collect(Collectors.toList());
}
/**
* @description: 添加参与应急其他专业人员
* @author PengJ
* @date 2025/11/3 16:41
*/
@Transactional(rollbackFor = Exception.class)
@Override
public boolean addGroupUser(AddOtherMemberDTO dto) {
dto.getMemberList().forEach(userId -> {
OrderOperator orderOperator = orderOperatorMapper.selectOne(new LambdaQueryWrapper<OrderOperator>()
.eq(OrderOperator::getOrderId, dto.getOrderId())
.eq(OrderOperator::getUserId, userId)
);
if (orderOperator != null) {
return;
}
orderOperator = new OrderOperator();
orderOperator.setOrderId(dto.getOrderId());
orderOperator.setOperatorType(1);
orderOperator.setUserId(userId);
orderOperator.setJoinType(1);
orderOperator.setJoinDate(new Date());
orderOperatorMapper.insert(orderOperator);
});
AddGroupMemberDTO addGroupMemberDTO = new AddGroupMemberDTO();
addGroupMemberDTO.setGroupId(dto.getGroupId());
addGroupMemberDTO.setMemberList(dto.getMemberList().stream().map(userId -> {
AddGroupMemberDTO.MemberListDTO memberListDTO = new AddGroupMemberDTO.MemberListDTO();
memberListDTO.setMemberAccount(userId);
return memberListDTO;
}).collect(Collectors.toList()));
//添加群成员
Result<AddGroupMemberVO> addGroupMemberVoResult = iMHelloApi.addGroupMember(addGroupMemberDTO);
String actionStatus = addGroupMemberVoResult.getResult().getActionStatus();
if (!"OK".equals(actionStatus)) {
ExceptionAssertsUtil.fail(addGroupMemberVoResult.getResult().getErrorInfo());
}
return true;
}
}
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.renkang.emergency.api.service.EmergencyOrderApiService;
import com.renkang.emergency.bean.request.ListSession;
import com.renkang.emergency.bean.request.OrderEvaluation;
@@ -16,10 +15,14 @@ import com.renkang.emergency.bean.request.SingleParam;
import com.renkang.emergency.bean.request.StationUpdateOrder;
import com.renkang.emergency.bean.response.*;
import com.renkang.emergency.constant.EmergencyConstants;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.entity.vo.GroupMemberVO;
import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.OrderDetail;
import com.renkang.emergency.entity.OrderSendRecord;
import com.renkang.emergency.entity.TblHelpCentorVo;
import com.renkang.emergency.manager.EmergencyCacheManager;
import com.renkang.emergency.mapper.*;
import com.renkang.emergency.mapper.OrderDetailMapper;
import com.renkang.emergency.mapper.OrderMapper;
import com.renkang.emergency.mapper.OrderSendRecordMapper;
import com.renkang.emergency.service.IOrderDetailService;
import com.renkang.emergency.service.IOrderService;
import com.renkang.im.api.IMHelloApi;
@@ -27,7 +30,6 @@ import com.renkang.im.entity.ImGroupMsgTextReqDO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.ExceptionAssertsUtil;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.global.GlobalUtils;
import org.jeecg.modules.manager.ISysCache;
@@ -37,7 +39,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author Junqiang Zhu
@@ -63,10 +64,6 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
private IMHelloApi imHelloApi;
@Autowired
private ISysCache sysCache;
@Autowired
private OrderOperatorMapper orderOperatorMapper;
@Autowired
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
@Override
public IPage<InitUserOrder> initUserOrderPage(Page<Order> page) {
@@ -581,83 +578,6 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
return voList;
}
/**
* 获取群组成员和其他专业人员
*
* @param orderId
* @return
*/
@Override
public List<GroupMemberVO> getGroupMemberList(String orderId) {
List<GroupMemberVO> groupMemberVos = new ArrayList<>();
// 校验订单是否存在
Order order = orderMapper.selectById(orderId);
if (order == null) {
ExceptionAssertsUtil.fail("应急单不存在");
}
// 添加发起人信息
handleGroupMember(groupMemberVos, orderId,
order.getInitiatorUserId(),
order.getInitiatorUserName(),
order.getInitiatorUserAvatar(),
1);
// 已加入应急单人员
List<OrderOperator> orderOperators = orderOperatorMapper.selectList(
new LambdaQueryWrapper<OrderOperator>()
.eq(OrderOperator::getOrderId, orderId)
);
List<String> userIds = orderOperators.stream()
.map(OrderOperator::getUserId)
.collect(Collectors.toList());
// 查询已加入人员的专业信息
if (!userIds.isEmpty()) {
List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(
new LambdaQueryWrapper<EmergencyProfessionUser>()
.in(EmergencyProfessionUser::getUserId, userIds)
);
emergencyProfessionUsers.forEach(emergencyProfessionUser ->
handleGroupMember(groupMemberVos, orderId,
emergencyProfessionUser.getUserId(),
emergencyProfessionUser.getRealname(),
emergencyProfessionUser.getAvatar(),
1)
);
}
// 其他专业人员(排除已在应急单中的用户)
LambdaQueryWrapper<EmergencyProfessionUser> otherMajorQuery = new LambdaQueryWrapper<>();
otherMajorQuery.eq(EmergencyProfessionUser::getType, "6");
if (!userIds.isEmpty()) {
otherMajorQuery.notIn(EmergencyProfessionUser::getUserId, userIds);
}
List<EmergencyProfessionUser> otherMajorMemberList = emergencyProfessionUserMapper.selectList(otherMajorQuery);
otherMajorMemberList.forEach(otherMajorMember ->
handleGroupMember(groupMemberVos, orderId,
otherMajorMember.getUserId(),
otherMajorMember.getRealname(),
otherMajorMember.getAvatar(),
0)
);
return groupMemberVos;
}
public void handleGroupMember(List<GroupMemberVO> groupMemberVos, String orderId, String userId, String userName, String avatar, Integer isGroupMember) {
GroupMemberVO groupMemberVO = new GroupMemberVO();
groupMemberVO.setOrderId(orderId);
groupMemberVO.setUserId(userId);
groupMemberVO.setUserName(userName);
groupMemberVO.setAvatar(avatar);
groupMemberVO.setIsGroupMember(isGroupMember);
groupMemberVos.add(groupMemberVO);
}
private List<SessionOrderUser> convertOrder(List<Order> orders) {
if (CollectionUtils.isEmpty(orders)) {
return Collections.emptyList();
@@ -703,25 +623,16 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
private List<Order> getSessionOrder(List<String> sessions, String type) {
String userId = GlobalUtils.getLoginUser().getId();
//应急单参与人员同步至子表,故修改查询方法
MPJLambdaWrapper<Order> wrapper = new MPJLambdaWrapper<>();
wrapper.leftJoin(OrderOperator.class, OrderOperator::getOrderId, Order::getId);
wrapper.eq(OrderOperator::getUserId, userId);
wrapper.eq(OrderOperator::getOperatorType, type);
wrapper.ne(Order::getOrderStatus, EmergencyConstants.ORDER_STATUS_5_NEW);
wrapper.eq(Order::getStatus, 1);
wrapper.in(Order::getSessionId, sessions);
// LambdaQueryWrapper<Order> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
// if (EmergencyConstants.MAJOR.equals(type)) {
// queryWrapper.and(orWrapper -> orWrapper.eq(Order::getMajorUserId, userId).or().eq(Order::getMajorUserTwoId, userId));
// }
// if (EmergencyConstants.OPERATION.equals(type)) {
// queryWrapper.eq(Order::getOperationUserId, userId);
// }
// queryWrapper.ne(Order::getOrderStatus, EmergencyConstants.ORDER_STATUS_5_NEW);
// queryWrapper.apply("FIND_IN_SET(session_id, {0})", String.join(",", sessions));
// queryWrapper.in(Order::getSessionId, sessions);
return orderMapper.selectList(wrapper);
LambdaQueryWrapper<Order> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
if (EmergencyConstants.MAJOR.equals(type)) {
queryWrapper.eq(Order::getMajorUserId, userId);
}
if (EmergencyConstants.OPERATION.equals(type)) {
queryWrapper.eq(Order::getOperationUserId, userId);
}
queryWrapper.ne(Order::getOrderStatus, EmergencyConstants.ORDER_STATUS_5_NEW);
queryWrapper.apply("FIND_IN_SET(session_id, {0})", String.join(",", sessions));
return orderMapper.selectList(queryWrapper);
}
private void handleUserDepart(Order order) {
@@ -1,21 +1,21 @@
package com.renkang.emergency.api.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.renkang.emergency.api.service.EmergencyResourceApiService;
import com.renkang.emergency.bean.common.ResourceExt;
import com.renkang.emergency.bean.response.ResourceHome;
import com.renkang.emergency.constant.EmergencyConstants;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
import com.renkang.emergency.entity.EmergencyHealthRoom;
import com.renkang.emergency.entity.EmergencyResourceDO;
import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.Resource;
import com.renkang.emergency.manager.EmergencyCloudManager;
import com.renkang.emergency.manager.ResourceManager;
import com.renkang.emergency.mapper.OrderMapper;
import com.renkang.emergency.mapper.ResourceMapper;
import com.renkang.emergency.service.IEmergencyHealthRoomService;
import com.renkang.emergency.service.IXjAedService;
import com.renkang.emergency.util.ResourceUtils;;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -23,7 +23,6 @@ import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.global.GlobalUtils;
import org.jeecg.util.TypeConversionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.geo.Point;
import org.springframework.stereotype.Service;
@@ -41,52 +40,83 @@ import java.util.stream.Collectors;
*/
@Service("emergencyResourceApiService")
public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiService {
@Autowired
private EmergencyCloudManager emergencyCloudManager;
@Autowired
private ResourceManager resourceManager;
@Autowired
private OrderMapper orderMapper;
@Autowired
private ResourceMapper resourceMapper;
@Autowired
private IXjAedService xjAedService;
private IEmergencyHealthRoomService roomService;
@Autowired
private ISysBaseAPI sysBaseAPI;
@Override
public List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude) {
public ResourceHome listResourceByType(String type, Double longitude, Double latitude) {
if (StrUtil.isBlank(type)) {
type = EmergencyConstants.RESOURCE_ALL;
}
List<LargeScreenMap> maps = new ArrayList<>();
if (StrUtil.isEmpty(type) || type.equals("1")) {
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
.eq(StrUtil.isEmpty(type), Resource::getType, "1"));
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
ResourceHome home = new ResourceHome();
// 是否有正在进行的会话
String sessionId = sessionNow(null);
if (StrUtil.isNotBlank(sessionId)) {
home.setSessionId(sessionId);
// 前端页面返回需要数据 继续查数据
//return home;
}
if (StrUtil.isEmpty(type) || type.equals("3")) {
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
.eq(StrUtil.isEmpty(type), Resource::getType, "3"));
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
// 字典数据
List<DictModel> dictItems = emergencyCloudManager.getDictItems(EmergencyConstants.EMERGENCY_RESOURCE_TYPE_DICT);
if (ObjectUtils.isEmpty(longitude) || ObjectUtils.isEmpty(latitude)) {
if (!"3".equals(type)) {
home.setDicts(dictItems);
List<ResourceExt> list = this.listResource(type);
List<ResourceExt> resources = new ArrayList<>();
if ("0".equals(type)) {
resources = this.selectResourceByLongitudeLatitude(null, null, null);
}
if (StrUtil.isEmpty(type) || type.equals("4")){
List<XjAed> list = xjAedService.list(new LambdaQueryWrapper<XjAed>().isNotNull(XjAed::getLatitude));
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
list.addAll(resources);
home.setResources(list);
return home;
}
if (StrUtil.isEmpty(type) || type.equals("5")) {
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
.eq(StrUtil.isEmpty(type), Resource::getType, "5"));
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
}
for (LargeScreenMap map : maps) {
if (StrUtil.isNotEmpty(map.getLongitude()) && StrUtil.isNotEmpty(map.getLatitude())) {
}else {
if (!"3".equals(type)) {
// 资源数据
Point point = new Point(longitude, latitude);
Point geoPoint = new Point(TypeConversionUtil.toDoubleOfNull(
map.getLongitude()), TypeConversionUtil.toDoubleOfNull(map.getLatitude()));
map.setDistance(ResourceUtils.geoDistance(point, geoPoint));
List<ResourceExt> resources = resourceManager.geoSearch(point, 100000, type);
List<ResourceExt> resourcesLL = new ArrayList<>();
if ("0".equals(type)) {
resourcesLL = this.selectResourceByLongitudeLatitude(100000D, longitude, latitude);
}
resources.addAll(resourcesLL);
home.setDicts(dictItems);
home.setResources(resources);
return home;
}
}
List<EmergencyHealthRoom> list = roomService.list();
List<ResourceExt> resources = new ArrayList<>();
for (EmergencyHealthRoom emergencyHealthRoom : list) {
ResourceExt ext = new ResourceExt();
ext.setId(emergencyHealthRoom.getId());
ext.setName(emergencyHealthRoom.getName());
ext.setAddress(emergencyHealthRoom.getOrgName());
ext.setLatitude(new BigDecimal(emergencyHealthRoom.getLatitude()));
ext.setLongitude(new BigDecimal(emergencyHealthRoom.getLongitude()));
ext.setType("3");
resources.add(ext);
}
return maps;
home.setDicts(dictItems);
home.setResources(resources);
return home;
}
@Override
@@ -137,4 +167,60 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
}
return orders.get(0);
}
private List<ResourceExt> listResource(String type) {
if ("3".equals(type)) {
return Collections.emptyList();
}
LambdaQueryWrapper<Resource> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
if (!EmergencyConstants.RESOURCE_ALL.equals(type)) {
queryWrapper.eq(Resource::getType, type);
queryWrapper.ne(Resource::getType, "3");
}
List<Resource> resources = resourceMapper.selectList(queryWrapper);
List<ResourceExt> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(resources)) {
for (Resource resource : resources) {
ResourceExt resourceExt = new ResourceExt();
BeanUtil.copyProperties(resource, resourceExt);
result.add(resourceExt);
}
}
return result;
}
public List<ResourceExt> selectResourceByLongitudeLatitude(Double distance, Double longitude, Double latitude) {
List<ResourceExt> resourceExtList = new ArrayList<>();
/* Point point = new Point(longitude, latitude);
List<MedicalResource> list = medicalCenterApi.selectResourceByLongitudeLatitude(distance, longitude, latitude).getResult();
for (MedicalResource medicalResource : list) {
ResourceExt resourceExt = convertToResourcesExt(medicalResource);
Point geoPoint = new Point(medicalResource.getLongitude().doubleValue(), medicalResource.getLatitude().doubleValue());
resourceExt.setType("3");
resourceExt.setDistance(ResourceUtils.geoDistance(point, geoPoint));
resourceExtList.add(resourceExt);
}*/
return resourceExtList;
}
/* private static ResourceExt convertToResourcesExt(MedicalResource resource) {
if (Objects.isNull(resource)) {
return null;
}
ResourceExt resourceExt = new ResourceExt();
BeanUtil.copyProperties(resource, resourceExt);
return resourceExt;
}*/
}
@@ -29,7 +29,6 @@ import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.system.vo.LoginUserNew;
import org.jeecg.global.GlobalUtils;
import org.jeecg.modules.manager.ISysCache;
import org.jeecg.modules.system.entity.HealthUserEmployeeEx;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser;
import org.springframework.stereotype.Service;
@@ -227,21 +226,12 @@ public class LargeScreenImpl {
*/
private void setPushMsg(EmergencySocket socket, EmergencyCenter center, Double longitude, Double latitude) {
LoginUser sysUser = GlobalUtils.getLoginUser();
ListUser listUser = new ListUser();
listUser.setUserIds(Collections.singletonList(sysUser.getId()));
List<HealthUserEmployeeEx> exList = sysBaseAPI.listEmployeeUserByIds(listUser);
socket.setPopType(1);
socket.setUserId(sysUser.getId());
socket.setRealName(sysUser.getRealname());
socket.setAge(sysUser.getAge());
socket.setSex(sysUser.getSex());
socket.setPhone(sysUser.getPhone());
if (CollUtil.isNotEmpty(exList) && !exList.isEmpty()) {
HealthUserEmployeeEx ex = exList.get(0);
socket.setCareLiaisonName(ex.getCareLiaisonName());
socket.setCareLiaisonPhone(ex.getCareLiaisonPhone());
socket.setLifeguardName(ex.getLifeguardName());
socket.setLifeguardPhone(ex.getLifeguardPhone());
}
this.setDepartmentInfo(socket, sysUser.getOrgCode());
// 获取所有资源
List<TblBaseHospitalVo> allList = tblAmbulanceGpsService.getAllList(String.valueOf(center.getLatitude()), String.valueOf(center.getLongitude()), null, null);
@@ -2,18 +2,17 @@ package com.renkang.emergency.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.OrderDetail;
import com.renkang.emergency.entity.Resource;
import com.renkang.emergency.manager.EmergencyCacheManager;
import com.renkang.emergency.manager.EmergencyCloudManager;
import com.renkang.emergency.mapper.EmergencyProfessionUserMapper;
import com.renkang.emergency.mapper.OrderOperatorMapper;
import com.renkang.emergency.service.IOrderDetailService;
import com.renkang.emergency.service.IOrderService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
@@ -29,9 +28,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: emergency_order
@@ -52,11 +49,6 @@ public class OrderController extends JeecgController<Order, IOrderService> {
private IOrderDetailService orderDetailService;
@Autowired
private EmergencyCloudManager emergencyCloudManager;
@Autowired
private OrderOperatorMapper orderOperatorMapper;
@Autowired
private EmergencyProfessionUserMapper emergencyProfessionUserMapper;
/**
* 分页列表查询
@@ -194,13 +186,6 @@ public class OrderController extends JeecgController<Order, IOrderService> {
Order order = orderService.getById(id);
if (ObjectUtil.isNotNull(order)) {
List<OrderOperator> orderOperators = orderOperatorMapper.selectList(new LambdaQueryWrapper<OrderOperator>()
.eq(OrderOperator::getOrderId, order.getId())
);
List<String> userIds = orderOperators.stream().map(OrderOperator::getUserId).collect(Collectors.toList());
List<EmergencyProfessionUser> emergencyProfessionUsers = emergencyProfessionUserMapper.selectList(new LambdaQueryWrapper<EmergencyProfessionUser>()
.in(EmergencyProfessionUser::getUserId, userIds)
);
OrderDetail detail = orderDetailService.getById(order.getId());
order.setOrderDetail(detail);
@@ -218,22 +203,6 @@ public class OrderController extends JeecgController<Order, IOrderService> {
order.setResourceName(resource.getName());
}
}
//操作人员信息
List<String> operatorsUserIds = orderOperators.stream().filter(orderOperator ->
orderOperator.getOrderId().equals(order.getId())
&& orderOperator.getOperatorType().equals(0)
).map(OrderOperator::getUserId).collect(Collectors.toList());
String operatorsName = emergencyProfessionUsers.stream().filter(u -> operatorsUserIds.contains(u.getUserId())).map(EmergencyProfessionUser::getRealname).collect(Collectors.joining(","));
order.setOperationUserName(operatorsName);
//专业人员信息
List<String> majorUserIds = orderOperators.stream().filter(orderOperator ->
orderOperator.getOrderId().equals(order.getId())
&& orderOperator.getOperatorType().equals(1)
).map(OrderOperator::getUserId).collect(Collectors.toList());
String majorName = emergencyProfessionUsers.stream().filter(u -> majorUserIds.contains(u.getUserId())).map(EmergencyProfessionUser::getRealname).collect(Collectors.joining(","));
order.setMajorUserName(majorName);
}
return Result.OK(order);
@@ -3,7 +3,6 @@ package com.renkang.emergency.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.renkang.emergency.api.service.impl.LargeScreenImpl;
import com.renkang.emergency.async.AsyncImportService;
@@ -94,9 +93,6 @@ public class TblQimoNoticeController {
if (!checkCallBackType(qimoVo)) {
return "200";
}
// if(!"8027,8028,8029,8030".contains(qimoVo.getAgentName()) || !"8027,8028,8029,8030".contains(qimoVo.getExten()) ){//新疆使用的工号排除
// return "200";
// }
GlobalUtils.setHttpFeignToken();
// 七陌重复推送处理,3分钟内同ID去重
if (redisUtil.get(qimoVo.getCallSheetID()) != null) {
@@ -104,9 +100,6 @@ public class TblQimoNoticeController {
}
redisUtil.set(qimoVo.getCallSheetID(), qimoVo.getCalledNo(), 60 * 3);
if(StrUtil.isNotBlank(qimoVo.getCallNo()) && qimoVo.getCallNo().startsWith("0086")){
qimoVo.setCallNo(qimoVo.getCallNo().substring(4));
}
TblQimoNotice notice = QimoVoUtil.copyToEntity(qimoVo);
if (!"1".equals(qimoNotice)) {
return "200"; // 不推送
@@ -1,25 +0,0 @@
package com.renkang.emergency.controller;
import com.renkang.emergency.entity.XjAed;
import com.renkang.emergency.service.IXjAedService;
import lombok.RequiredArgsConstructor;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@RequestMapping("/emergency/xjAed")
public class XjAedController extends JeecgController<XjAed, IXjAedService> {
private final IXjAedService xjAedService;
/**
* 初始化新疆aed数据
*/
@GetMapping("dataInit")
public void aedDataInit() {
xjAedService.aedDataUtil();
}
}
@@ -1,18 +1,9 @@
package com.renkang.emergency.largeScreen.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.renkang.anyan.model.dto.HealthRoomDTO;
import com.renkang.anyan.model.dto.HealthSignListParam;
import com.renkang.anyan.model.dto.MedicalAbnormalDTO;
import com.renkang.anyan.model.vo.*;
import com.renkang.emergency.entity.TblBaseHospitalVo;
import com.renkang.emergency.entity.dto.*;
import com.renkang.emergency.entity.vo.DataDetailVO;
import com.renkang.emergency.entity.vo.MedicalDataVO;
import com.renkang.emergency.largeScreen.entity.dto.*;
import com.renkang.emergency.largeScreen.entity.vo.*;
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
import com.renkang.emergency.service.ITbUserHelpMacService;
import com.renkang.emergency.service.ITblAmbulanceGpsService;
@@ -34,16 +25,15 @@ import java.util.List;
@RequiredArgsConstructor
@Slf4j
public class LargeScreenNewController {
private final ITbUserHelpMacService tbUserHelpMacService;
private final YcLargeScreenService ycLargeScreenService;
private final ITblAmbulanceGpsService tblAmbulanceGpsService;
private final ILargeScreenService largeScreenService;
private final ILargeScreenDataService largeScreenDataService;
/**
* 获取地图
*
* @param type 1:油田医院 3:健康小屋 4:aed 5:救护车 不传则全部
* @param type 1:油田医院 2:健康小屋 5:救护车 不传则全部
* @return
*/
@GetMapping("/map")
@@ -52,7 +42,7 @@ public class LargeScreenNewController {
}
/**
* 服务详情数据-24.09.19 新版大屏接口 25-07-28 修改假数据逻辑
* 服务详情数据-24.09.19 新版大屏接口
*/
@PostMapping("/statisticsNew")
@Operation(summary = "服务详情数据", description = "服务详情数据")
@@ -116,19 +106,19 @@ public class LargeScreenNewController {
@PostMapping("/healthWeightLoss")
@Operation(summary = "健康打卡减重详情列表", description = "健康打卡减重详情列表")
public Result<IPage<WeightPressureList>> healthWeightLoss(@RequestBody HealthSignListParam dto) {
public Result<IPage<HealthWeightLossVO>> healthWeightLoss(@RequestBody HealthWeightLossDTO dto){
return Result.ok(largeScreenService.healthWeightLoss(dto));
}
@PostMapping("/healthBloodSugar")
@Operation(summary = "健康打卡血糖详情列表", description = "健康打卡血糖详情列表")
public Result<IPage<BloodSugarClockSList>> healthBloodSugar(@RequestBody HealthSignListParam dto) {
public Result<IPage<HealthBloodSugarVO>> healthBloodSugar(@RequestBody HealthBloodSugarDTO dto){
return Result.ok(largeScreenService.healthBloodSugar(dto));
}
@PostMapping("/healthBloodPressure")
@Operation(summary = "健康打卡血压详情列表", description = "健康打卡血压详情列表")
public Result<IPage<BloodPressureList>> healthBloodPressure(@RequestBody HealthSignListParam dto) {
public Result<IPage<HealthBloodPressureVO>> healthBloodPressure(@RequestBody HealthBloodPressureDTO dto){
return Result.ok(largeScreenService.healthBloodPressure(dto));
}
@@ -157,133 +147,9 @@ public class LargeScreenNewController {
}
@GetMapping("runTest")
@Operation(summary = "初始化假数据", description = "初始化假数据")
@Operation(summary = "假数据", description = "假数据")
public void runTest(){
largeScreenService.runJob();
largeScreenService.runTest();
}
/**
* 编辑或新增
*
* @param dto
* @return
*/
@PostMapping("editValue")
public Result<Boolean> editValue(@RequestBody LargeScreenDataValueDTO dto) {
return Result.ok(largeScreenDataService.editValue(dto));
}
/**
* 编辑整个tab
*
* @param dto
* @return
*/
@PostMapping("editData")
public Result<Boolean> editData(@RequestBody DataDetailVO dto) {
return Result.ok(largeScreenDataService.editData(dto));
}
/**
* 删除
*
* @param dto
* @return
*/
@DeleteMapping("deleteValue")
public Result<Boolean> deleteValue(@RequestBody LargeScreenDataValueDTO dto) {
return Result.ok(largeScreenDataService.deleteValue(dto));
}
/**
* 体检医院编辑新增删除
*
* @param dtoList
* @return
*/
@PostMapping("editMedicalValue")
public Result<Boolean> editMedicalValue(@RequestBody List<LargeScreenDataValueDTO> dtoList) {
return Result.ok(largeScreenDataService.editMedicalValue(dtoList));
}
/**
* 假数据查询
*/
@GetMapping("dataDetail")
public Result<DataDetailVO> dataDetail(@RequestParam(name = "centerId") String centerId, @RequestParam(name = "module") String module) {
return Result.ok(largeScreenDataService.dataDetail(centerId, module));
}
/**
* 假数据查询(体检人数)
*/
@GetMapping("medicalDataDetail")
public Result<List<MedicalDataVO>> medicalDataDetail(@RequestParam(name = "centerId") String centerId) {
return Result.ok(largeScreenDataService.medicalDataDetail(centerId));
}
/**
* 假数据查询(关爱趋势)
*/
@GetMapping("loveTrend")
public Result<IPage<CareUserListVo>> loveTrend(@RequestParam(name = "centerId") String centerId,
@RequestParam(name = "name", required = false) String name,
@RequestParam(name = "orgName", required = false) String orgName,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
return Result.ok(largeScreenDataService.loveTrend(centerId, name,orgName,pageNo,pageSize));
}
/**
* 获取最近的6个资源
* @param longitude
* @param latitude
* @return
*/
@GetMapping("nearResources")
public Result<List<TblBaseHospitalVo>> nearResources(@RequestParam(name = "longitude") String longitude,
@RequestParam(name = "latitude") String latitude){
return Result.ok(largeScreenDataService.nearResources(longitude,latitude));
}
/**
* 今日应急
* @param dto 参数
* @return vo
*/
@PostMapping("todayEmergencyList")
public Result<IPage<TodayEmergencyVO>> todayEmergencyList(@RequestBody TodayEmergencyDTO dto){
return Result.ok(largeScreenDataService.todayEmergencyList(dto));
}
/**
* 健康档案
* @param userId 用户id
* @return vo
*/
@GetMapping("healthArchives")
public Result<HealthArchivesVO> healthArchives(@RequestParam(name = "userId") String userId){
return Result.ok(largeScreenDataService.healthArchives(userId));
}
/**
* 获取应急及关爱人员
* @param userId
* @return
*/
@GetMapping("careUser")
public Result<CareUserVO> careUser(@RequestParam(name = "userId") String userId){
return Result.ok(largeScreenDataService.careUser(userId));
}
/**
* 或者安眼平台访问token
* @return
*/
@GetMapping("queryAnYanToken")
public Result<AuthResult> queryAnYanToken(){
return Result.ok(largeScreenService.queryAnYanToken());
}
}
@@ -0,0 +1,58 @@
package com.renkang.emergency.largeScreen.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class HealthBloodPressureDTO {
/**
* 单位名称
*/
@Schema(title = "单位名称")
private String departName;
/**
* 员工姓名
*/
@Schema(title = "员工姓名")
private String name;
/**
* 填报开始时间起
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "填报开始时间起")
private Date inputDateBegin;
/**
* 填报开始时间止
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "填报开始时间止")
private Date inputDateEnd;
/**
* 异常标记 0:正常/1:异常/2:全部
*/
@Schema(title = "异常标记 0:正常/1:异常/2:全部")
private String abFlag;
/**
* 页码 从1开始
*/
@Schema(title = "页码 从1开始")
private Integer pageNo;
/**
* 每页数量
*/
@Schema(title = "每页数量")
private Integer pageSize;
public HealthBloodPressureDTO() {
this.pageNo = 1;
this.pageSize = 10;
}
}
@@ -0,0 +1,58 @@
package com.renkang.emergency.largeScreen.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class HealthBloodSugarDTO {
/**
* 单位名称
*/
@Schema(title = "单位名称")
private String departName;
/**
* 员工姓名
*/
@Schema(title = "员工姓名")
private String name;
/**
* 填报开始时间起
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "填报开始时间起")
private Date inputDateBegin;
/**
* 填报开始时间止
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "填报开始时间止")
private Date inputDateEnd;
/**
* 异常标记 0:正常/1:异常/2:全部
*/
@Schema(title = "异常标记 0:正常/1:异常/2:全部")
private String abFlag;
/**
* 页码 从1开始
*/
@Schema(title = "页码 从1开始")
private Integer pageNo;
/**
* 每页数量
*/
@Schema(title = "每页数量")
private Integer pageSize;
public HealthBloodSugarDTO() {
this.pageNo = 1;
this.pageSize = 10;
}
}
@@ -1,4 +1,4 @@
package com.renkang.anyan.model.dto;
package com.renkang.emergency.largeScreen.entity.dto;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -1,4 +1,4 @@
package com.renkang.anyan.model.dto;
package com.renkang.emergency.largeScreen.entity.dto;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -19,14 +19,6 @@ public class MedicalAbnormalDTO {
* 员工姓名
*/
private String name;
/**
* 体检年份
*/
private String medicalYear;
/**
* 体检医院
*/
private String hospitalName;
/**
* 检查日期起期 参数为空时默认为今年第一天2025-01-01
*/
@@ -11,10 +11,6 @@ import java.util.Date;
@Data
public class MedicalAbnormalStatisticsDTO {
private String centerId;
/**
* 体检年份
*/
private String medicalYear;
/**
* 检查日期起期 参数为空时,默认为今年第一天
*/

Some files were not shown because too many files have changed in this diff Show More