52 Commits
Author SHA1 Message Date
pengjie 0810aa1370 【登录】安眼统一认证 2025-10-30 13:34:26 +08:00
pengjie 137b4efa38 【登录】安眼统一认证 2025-10-30 10:57:18 +08:00
pengjie 051905a6f2 【登录】安眼统一认证 2025-10-30 10:14:51 +08:00
lianlonggang 4356433ee0 健康咨询大屏接口 2025-10-28 10:47:23 +08:00
lianlonggang e9774bc270 健康咨询大屏接口 2025-10-28 10:47:04 +08:00
feng 9f7882497b 应急工单新建表 2025-10-24 16:34:39 +08:00
feng 2a67051beb 修改跳转至安眼大屏鉴权参数 2025-10-14 13:38:15 +08:00
feng c808470275 去掉拿接口的缓存逻辑 2025-09-29 10:18:14 +08:00
feng 2b6e5d2736 安眼大屏公网访问获取token接口对接 2025-09-28 17:25:07 +08:00
lianlonggang 19e46db6a1 健康咨询大屏接口 2025-09-26 18:06:15 +08:00
feng b678b33734 咨询大屏医院过滤删除状态 2025-09-26 17:28:57 +08:00
feng 6d498f3b74 应急支持第二个专业人员加入的四方通话 2025-09-26 15:51:34 +08:00
wanghao f2503fdd52 修正移动端应急地图数据 2025-09-26 13:07:58 +08:00
wanghao eba9ee928f 修正今日应急的单位部门数据 2025-09-25 17:32:24 +08:00
wanghao 9d68bcd2ff 修正今日应急的应急数据 2025-09-25 16:27:43 +08:00
wanghao ff6e83f1c8 0919新需求开发 2025-09-25 13:58:00 +08:00
lianlonggang 273d1377b9 健康咨询大屏接口 2025-09-25 11:33:30 +08:00
lianlonggang 106863d986 健康咨询大屏接口 2025-09-25 11:21:40 +08:00
lianlonggang 688abc5703 健康咨询大屏接口 2025-09-24 17:40:11 +08:00
wanghao e9fada7bbd 新需求开发 2025-09-19 16:26:25 +08:00
wanghao 853eefb48c 新需求开发 2025-09-17 15:33:44 +08:00
wanghao 34c4e9accc 新需求开发 2025-09-17 15:16:37 +08:00
wanghao 8f73f46fcf 新需求开发 2025-09-17 14:37:07 +08:00
wanghao cd6b8e49e5 新需求开发 2025-09-17 14:30:53 +08:00
feng 3e4f5ebe3e 新加员工扩展信息 2025-09-17 14:16:18 +08:00
feng 2a7dde25ea 关爱人员预警 2025-09-17 10:42:25 +08:00
wanghao 59ade8db2b 修复大屏体检异常统计bug 2025-08-20 13:33:06 +08:00
stan a035d3f47e update:应急小组数量修改 2025-08-15 14:07:15 +08:00
wanghao 4e4cce85e8 配置安眼定时任务 2025-08-13 13:26:31 +08:00
wanghao 3a45a45f99 小屋数据迁移sql 2025-08-13 13:19:18 +08:00
wanghao 747c881b74 大屏改动 2025-08-13 11:20:53 +08:00
wanghao 23c53a782c 大屏改动 2025-08-13 10:34:55 +08:00
feng b327524823 Merge branch 'develop' of https://gitea.rk-health.com/renkang/xj-platform into develop 2025-08-08 11:05:39 +08:00
feng 63ce497551 同步油田医院数据 2025-08-08 11:05:36 +08:00
wanghao 49dd2287ad 大屏处理冲突 2025-08-08 10:41:01 +08:00
feng eeeaf9166b 替换部分vo的引用 2025-08-08 10:35:48 +08:00
feng 64b6c78b92 新增变量 2025-08-08 10:01:47 +08:00
feng a68409917e 冲突合并 2025-08-08 09:46:33 +08:00
feng 17a693f768 安眼接口对接 2025-08-08 09:45:42 +08:00
wanghao 2b2b070979 大屏修改 2025-08-08 09:34:18 +08:00
feng afa6942d77 安眼平台接口对接 2025-08-06 17:10:30 +08:00
lianlonggang e4d815ae54 应急数据调整 2025-08-03 23:16:24 +08:00
lianlonggang 476b3a00d5 应急数据调整 2025-08-03 23:10:38 +08:00
lianlonggang 7ea6dd3411 应急数据调整 2025-08-03 23:02:36 +08:00
wanghao dce89d699a 去除只接受新疆工号限制 2025-08-01 17:11:10 +08:00
wanghao 84e9334a20 修改qimo推送只接受新疆工号 2025-08-01 13:30:42 +08:00
wanghao 73aeba99b3 修改新疆大屏 2025-07-28 18:03:04 +08:00
wanghao 6372acdf2d 修改大屏异常信息经纬度 2025-07-28 17:09:03 +08:00
wanghao 180734119a 修改大屏异常信息经纬度 2025-07-28 17:04:03 +08:00
wanghao 6139c70e97 修改首页压力不显示bug 2025-07-28 15:22:41 +08:00
wanghao b182e6e59e 大屏假数据修改开发 2025-07-28 15:03:14 +08:00
wanghao 76cba3c817 大屏假数据修改开发 2025-07-25 17:18:25 +08:00
165 changed files with 7664 additions and 1675 deletions
@@ -0,0 +1,6 @@
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
@@ -0,0 +1,18 @@
-------------------------
------------ 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
@@ -0,0 +1,263 @@
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);
@@ -0,0 +1,10 @@
-- ----------------------------
-- 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 '急救人员电话';
@@ -0,0 +1,10 @@
-- ----------------------------
-- 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 '第二位参与的专业人头像';
@@ -0,0 +1,14 @@
-- ----------------------------
-- 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,7 +38,6 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
<scope>provided</scope>
</dependency>
</dependencies>
+1
View File
@@ -20,6 +20,7 @@
<module>font-resources</module>
<module>monitoring-sync</module>
<module>renkang-test</module>
<module>xj-anyan-api</module>
</modules>
<properties>
-1
View File
@@ -33,7 +33,6 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
<scope>provided</scope>
</dependency>
</dependencies>
+46
View File
@@ -0,0 +1,46 @@
<?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>
@@ -0,0 +1,138 @@
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);
}
@@ -0,0 +1,286 @@
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 {
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", password);
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) {
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);
}
}
@@ -0,0 +1,53 @@
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;
}
@@ -0,0 +1,85 @@
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;
};
}
}
@@ -0,0 +1,125 @@
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);
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调用失败");
}
}
}
@@ -0,0 +1,24 @@
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:";
}
@@ -0,0 +1,98 @@
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;
}
}
@@ -0,0 +1,32 @@
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;
}
@@ -0,0 +1,19 @@
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,4 +1,4 @@
package com.renkang.emergency.largeScreen.entity.dto;
package com.renkang.anyan.model.dto;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -0,0 +1,49 @@
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,4 +1,4 @@
package com.renkang.emergency.largeScreen.entity.dto;
package com.renkang.anyan.model.dto;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -19,6 +19,14 @@ public class MedicalAbnormalDTO {
* 员工姓名
*/
private String name;
/**
* 体检年份
*/
private String medicalYear;
/**
* 体检医院
*/
private String hospitalName;
/**
* 检查日期起期 参数为空时默认为今年第一天2025-01-01
*/
@@ -0,0 +1,170 @@
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;
}
}
@@ -0,0 +1,149 @@
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;
/**
* 性别
*/
@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;
}
}
@@ -0,0 +1,39 @@
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;
}
@@ -0,0 +1,36 @@
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;
}
@@ -0,0 +1,26 @@
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;
}
@@ -0,0 +1,143 @@
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;
}
@@ -0,0 +1,20 @@
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;
}
@@ -0,0 +1,56 @@
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;
}
@@ -0,0 +1,39 @@
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;
}
@@ -0,0 +1,50 @@
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;
}
@@ -0,0 +1,40 @@
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;
}
@@ -0,0 +1,45 @@
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;
}
@@ -0,0 +1,14 @@
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,4 +1,4 @@
package com.renkang.emergency.largeScreen.entity.vo;
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -16,6 +16,11 @@ public class MedicalAbnormalVO {
*/
@Schema(title = "姓名")
private String name;
/**
* 身份证号
*/
@Schema(title = "身份证号")
private String idCard;
/**
* 性别
*/
@@ -1,4 +1,4 @@
package com.renkang.emergency.largeScreen.entity.vo;
package com.renkang.anyan.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -10,14 +10,14 @@ public class MedicalPeopleNumStatisticsVO {
*/
@Schema(title = "医院名称")
private String hospitalName;
/**
* 别名 为了显示或别的目的医院名称过长导致不好显示最好增加短的别名如果没有则和hospitalName保持一致
*/
@Schema(title = "别名")
private String alias;
/**
* 已参检人数
*/
@Schema(title = "已参检人数")
private Integer checkedCount;
/**
* 应检人数 (可能无法提供 先冗余)
*/
@Schema(title = "应检人数 (可能无法提供 先冗余)")
private Integer totalCount;
}
@@ -0,0 +1,41 @@
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;
}
@@ -0,0 +1,36 @@
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;
}
@@ -0,0 +1,25 @@
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;
}
}
@@ -0,0 +1,47 @@
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);
}
}
@@ -0,0 +1,115 @@
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,7 +13,6 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
</dependency>
<!-- feign -->
@@ -76,6 +76,9 @@ public class ConDoctorVO {
@Schema(title = "执业经历")
private String experience;
@Schema(title = "擅长")
private String goodAt;
@Schema(title = "排序")
private Integer sort;
@@ -13,22 +13,18 @@
<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>
@@ -54,21 +50,4 @@
</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>
@@ -1,38 +0,0 @@
-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,5 +58,7 @@ public interface RequestPrefix {
String sessionReservationDate = BASE + "/sessionReservationDate";
String screen = BASE + "/screen";
}
@@ -0,0 +1,133 @@
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.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
@Component
@Repository
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.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
@Component
@Repository
public class ConKnowledgeCategoryRedisTunnel {
@@ -214,4 +214,89 @@ 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,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* @Description: con_doctor
@@ -154,4 +155,12 @@ 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,4 +1089,24 @@ 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,12 +1,15 @@
FROM anapsix/alpine-java:8_server-jre_unlimited
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
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
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
@@ -17,6 +20,6 @@ WORKDIR /health-consultation-start
EXPOSE 7010
COPY ./target/health-consultation-start-xj.jar ./
ADD ./target/health-consultation-start.jar ./
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-consultation-start-xj.jar
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar health-consultation-start.jar
@@ -9,11 +9,6 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>health-consultation-start</artifactId>
<properties>
<maven.install.skip>true</maven.install.skip>
</properties>
<dependencies>
<!--微服务启动 starter-->
<dependency>
@@ -29,7 +24,6 @@
<dependency>
<groupId>com.renkang</groupId>
<artifactId>health-consultation-biz</artifactId>
<classifier>${biz-classifier}</classifier>
</dependency>
</dependencies>
+4
View File
@@ -13,6 +13,10 @@
<version>2.0.0</version>
<packaging>pom</packaging>
<properties>
<maven.install.skip>true</maven.install.skip>
</properties>
<!--项目子模块-->
<modules>
<module>health-consultation-api</module>
@@ -13,7 +13,6 @@
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
<classifier>xj</classifier>
</dependency>
<!-- feign -->
@@ -28,9 +28,18 @@ public class EmergencySocket {
private List<TblBaseHospitalVo> hospitalList;
private String type;
private String centerId;
@Schema(title = "1:紧急求助 2:云坐席 3:终端报警")
@Schema(title = "0:120 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,15 +3,20 @@ 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 {
/**
@@ -0,0 +1,99 @@
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,6 +246,34 @@ 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
*/
@@ -0,0 +1,63 @@
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,11 +68,24 @@ public class Resource implements Serializable {
@Schema(title = "纬度")
private BigDecimal latitude;
/**
* 资源类型(1:油田医院 2:合作医院 3:医疗点 4: )
* 资源类型(1:油田医院 3:健康小屋 5:救护车) 202508xj 项目字典发生变化 , 使用字典resource_type ,
*/
@Excel(name = "资源类型(1:油田医院 2:合作医院 3:医疗点 4: )", width = 15)
@Schema(title = "资源类型(1:油田医院 2:合作医院 3:医疗点 4: )")
@Excel(name = "资源类型(1:油田医院 3:健康小屋 4:AED 5:救护车)", width = 15)
@Schema(title = "资源类型(1:油田医院 3:健康小屋 4:AED 5:救护车 )")
private String type;
/**
* 在岗人数
*/
@Schema(title = "在岗人数")
private Integer jobNum;
/**
* 运转时间(分钟)
*/
@Schema(title = "运转时间(分钟)")
private Integer runTime;
/**
* 救治范围
*/
@@ -23,10 +23,36 @@ 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();
}
}
@@ -0,0 +1,71 @@
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;
}
@@ -0,0 +1,13 @@
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;
}
@@ -0,0 +1,157 @@
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;
}
@@ -0,0 +1,22 @@
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();
}
}
+8 -22
View File
@@ -9,7 +9,6 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>health-emergency-biz</artifactId>
<dependencies>
<!--定时任务-->
<dependency>
@@ -19,20 +18,24 @@
<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>
@@ -51,21 +54,4 @@
</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>
@@ -1,38 +0,0 @@
-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
@@ -4,6 +4,7 @@ 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;
@@ -33,7 +34,7 @@ public class EmergencyResourceApiController {
* @return result
*/
@GetMapping("/home")
public Result<ResourceHome> home(@RequestParam(required = false) String type,
public Result<List<LargeScreenMap>> home(@RequestParam(required = false) String type,
@RequestParam(required = false) Double longitude,
@RequestParam(required = false) Double latitude) {
return Result.ok(emergencyResourceApiService.listResourceByType(type, longitude, latitude));
@@ -2,6 +2,7 @@ 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;
@@ -11,7 +12,7 @@ import java.util.List;
* @date 2023-04-25 13:07
*/
public interface EmergencyResourceApiService {
ResourceHome listResourceByType(String type, Double longitude, Double latitude);
List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude);
String sessionNow(String userId);
@@ -21,7 +21,6 @@ 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;
@@ -31,17 +30,13 @@ 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.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;
@@ -214,7 +209,8 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
Stat stat = new Stat();
stat.setCompletionRate(getCompletionRate(userId, personType));
stat.setTotalNum(getTotalNum(userId, personType));
stat.setDutyTeamNum(getDutyTeamNum());
// stat.setDutyTeamNum(getDutyTeamNum());
stat.setDutyTeamNum(getDutyTeamNumV2(userId));
stat.setTimelinessRate(getTimelinessRate(userId));
return stat;
}
@@ -232,6 +228,11 @@ 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();
@@ -687,14 +688,17 @@ 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());
@@ -740,12 +744,10 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
@Override
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<>(2);
List<String> userList = new ArrayList<>();
if (order != null) {
Map res = new HashMap<>();
res.put("userId", sysUser.getId());
@@ -753,30 +755,38 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
res.put("tfNew", "0");
userList.add(order.getOperationUserId());
userList.add(order.getMajorUserId());
if(null != order.getMajorUserTwoId()){
userList.add(order.getMajorUserTwoId());
}
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())) {
return Result.error("没有接受方人员!");
}
List<String> yesIds = new ArrayList<>();
String majorsId = rs.getMajors().get(0).getUserId();
String operatorsId = rs.getOperators().get(0).getUserId();
List<String> yesIds = new ArrayList<>();
String majorsTwoId = null;
if(rs.getMajors().size() > 1){
//20250926前是 多个值班人员随机取第一个 , 后改成取两个专业人员 , 将两个专业人员都拉入群聊
majorsTwoId = rs.getMajors().get(1).getUserId();
yesIds.add(majorsTwoId);
userList.add(majorsTwoId);
}
userList.add(operatorsId);
userList.add(majorsId);
yesIds.add(sysUser.getId());
yesIds.add(majorsId);
yesIds.add(operatorsId);
//获取参与应急的人员信息
ConSessionRequestDO conSessionRequestDO = selectConSessionRequestDO(yesIds, "", name);
conSessionRequestDO.setUserId(sysUser.getId());
//调用IM创建群组
Result<Map<String, Object>> imrs = iMHelloApi.creatGroupMagNew(conSessionRequestDO);
boolean isSuccess = imrs.isSuccess();
if (!isSuccess) {
@@ -784,28 +794,63 @@ public class EmergencyApiServiceImpl implements EmergencyApiService {
}
String sessionId = (String) imrs.getResult().get("groupId");
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);
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);
//保存参与应急的人员信息 PS: 不想大改之前的代码逻辑此处 没有将同一条记录的赋值逻辑合并
saveOderOperationInfo(orderId,sessionId,majorsId,operatorsId,majorsTwoId,rs.getCenterId(),conSessionRequestDO.getAccountList());
imrs.getResult().put("member", userList);
imrs.getResult().put("tfNew", "1");
imrs.getResult().put("id", orderId);
return imrs;
}
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);
}
@Override
public Result<Map<String, Object>> createGroupMagIntervene(String name, String longitude, String latitude, String type) {
// 干预每次发起都是创建新的应急单
@@ -625,7 +625,7 @@ public class EmergencyOrderApiServiceImpl implements EmergencyOrderApiService {
String userId = GlobalUtils.getLoginUser().getId();
LambdaQueryWrapper<Order> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
if (EmergencyConstants.MAJOR.equals(type)) {
queryWrapper.eq(Order::getMajorUserId, userId);
queryWrapper.and(orWrapper -> orWrapper.eq(Order::getMajorUserId, userId).or().eq(Order::getMajorUserTwoId, userId));
}
if (EmergencyConstants.OPERATION.equals(type)) {
queryWrapper.eq(Order::getOperationUserId, userId);
@@ -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.EmergencyHealthRoom;
import com.renkang.emergency.entity.EmergencyResourceDO;
import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.Resource;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
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,6 +23,7 @@ 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;
@@ -40,83 +41,52 @@ 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 IEmergencyHealthRoomService roomService;
private IXjAedService xjAedService;
@Autowired
private ISysBaseAPI sysBaseAPI;
@Override
public ResourceHome listResourceByType(String type, Double longitude, Double latitude) {
if (StrUtil.isBlank(type)) {
type = EmergencyConstants.RESOURCE_ALL;
public List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude) {
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()));
}
}else {
if (!"3".equals(type)) {
// 资源数据
for (LargeScreenMap map : maps) {
if (StrUtil.isNotEmpty(map.getLongitude()) && StrUtil.isNotEmpty(map.getLatitude())) {
Point point = new Point(longitude, latitude);
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;
}
Point geoPoint = new Point(TypeConversionUtil.toDoubleOfNull(
map.getLongitude()), TypeConversionUtil.toDoubleOfNull(map.getLatitude()));
map.setDistance(ResourceUtils.geoDistance(point, geoPoint));
}
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);
}
home.setDicts(dictItems);
home.setResources(resources);
return home;
return maps;
}
@Override
@@ -167,60 +137,4 @@ 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,6 +29,7 @@ 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;
@@ -226,12 +227,21 @@ public class LargeScreenImpl {
*/
private void setPushMsg(EmergencySocket socket, EmergencyCenter center, Double longitude, Double latitude) {
LoginUser sysUser = GlobalUtils.getLoginUser();
socket.setPopType(1);
ListUser listUser = new ListUser();
listUser.setUserIds(Collections.singletonList(sysUser.getId()));
List<HealthUserEmployeeEx> exList = sysBaseAPI.listEmployeeUserByIds(listUser);
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);
@@ -3,6 +3,7 @@ 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;
@@ -93,6 +94,9 @@ 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) {
@@ -100,6 +104,9 @@ 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"; // 不推送
@@ -0,0 +1,25 @@
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,9 +1,18 @@
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;
@@ -25,24 +34,25 @@ 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:油田医院 2:健康小屋 5:救护车 不传则全部
*
* @param type 1:油田医院 3:健康小屋 4:aed 5:救护车 不传则全部
* @return
*/
@GetMapping("/map")
public Result<List<LargeScreenMap>> map(@RequestParam(name = "type",required = false) String type) {
public Result<List<LargeScreenMap>> map(@RequestParam(name = "type", required = false) String type) {
return Result.ok(largeScreenService.map(type));
}
/**
* 服务详情数据-24.09.19 新版大屏接口
* 服务详情数据-24.09.19 新版大屏接口 25-07-28 修改假数据逻辑
*/
@PostMapping("/statisticsNew")
@Operation(summary = "服务详情数据", description = "服务详情数据")
@@ -88,68 +98,192 @@ public class LargeScreenNewController {
@PostMapping("/healthRoomBase")
@Operation(summary = "健康小屋基础数据", description = "健康小屋基础数据")
public Result<List<HealthRoomBaseVO>> healthRoomBase(@RequestBody HealthRoomBaseDTO dto){
public Result<List<HealthRoomBaseVO>> healthRoomBase(@RequestBody HealthRoomBaseDTO dto) {
return Result.ok(largeScreenService.healthRoomBase(dto));
}
@PostMapping("/healthRoomDetail")
@Operation(summary = "健康小屋详情", description = "健康小屋详情")
public Result<IPage<HealthRoomVO>> healthRoomDetail(@RequestBody HealthRoomDTO dto){
public Result<IPage<HealthRoomVO>> healthRoomDetail(@RequestBody HealthRoomDTO dto) {
return Result.ok(largeScreenService.healthRoomDetail(dto));
}
@PostMapping("/medicalAbnormal")
@Operation(summary = "体检异常数据详情列表", description = "体检异常数据详情列表")
public Result<IPage<MedicalAbnormalVO>> medicalAbnormal(@RequestBody MedicalAbnormalDTO dto){
public Result<IPage<MedicalAbnormalVO>> medicalAbnormal(@RequestBody MedicalAbnormalDTO dto) {
return Result.ok(largeScreenService.medicalAbnormal(dto));
}
@PostMapping("/healthWeightLoss")
@Operation(summary = "健康打卡减重详情列表", description = "健康打卡减重详情列表")
public Result<IPage<HealthWeightLossVO>> healthWeightLoss(@RequestBody HealthWeightLossDTO dto){
public Result<IPage<WeightPressureList>> healthWeightLoss(@RequestBody HealthSignListParam dto) {
return Result.ok(largeScreenService.healthWeightLoss(dto));
}
@PostMapping("/healthBloodSugar")
@Operation(summary = "健康打卡血糖详情列表", description = "健康打卡血糖详情列表")
public Result<IPage<HealthBloodSugarVO>> healthBloodSugar(@RequestBody HealthBloodSugarDTO dto){
public Result<IPage<BloodSugarClockSList>> healthBloodSugar(@RequestBody HealthSignListParam dto) {
return Result.ok(largeScreenService.healthBloodSugar(dto));
}
@PostMapping("/healthBloodPressure")
@Operation(summary = "健康打卡血压详情列表", description = "健康打卡血压详情列表")
public Result<IPage<HealthBloodPressureVO>> healthBloodPressure(@RequestBody HealthBloodPressureDTO dto){
public Result<IPage<BloodPressureList>> healthBloodPressure(@RequestBody HealthSignListParam dto) {
return Result.ok(largeScreenService.healthBloodPressure(dto));
}
@PostMapping("/medicalPeopleNumStatistics")
@Operation(summary = "体检人数统计", description = "体检人数统计")
public Result<List<MedicalPeopleNumStatisticsVO>> medicalPeopleNumStatistics(@RequestBody MedicalPeopleNumStatisticsDTO dto){
public Result<List<MedicalPeopleNumStatisticsVO>> medicalPeopleNumStatistics(@RequestBody MedicalPeopleNumStatisticsDTO dto) {
return Result.ok(largeScreenService.medicalPeopleNumStatistics(dto));
}
@PostMapping("/medicalAbnormalStatistics")
@Operation(summary = "体检异常数据统计", description = "体检异常数据统计")
public Result<MedicalAbnormalStatisticsVO> medicalAbnormalStatistics(@RequestBody MedicalAbnormalStatisticsDTO dto){
public Result<MedicalAbnormalStatisticsVO> medicalAbnormalStatistics(@RequestBody MedicalAbnormalStatisticsDTO dto) {
return Result.ok(largeScreenService.medicalAbnormalStatistics(dto));
}
@PostMapping("/healthSign")
@Operation(summary = "健康打卡数据", description = "健康打卡数据")
public Result<HealthSignVO> healthSign(@RequestBody HealthSignDTO dto){
public Result<HealthSignVO> healthSign(@RequestBody HealthSignDTO dto) {
return Result.ok(largeScreenService.healthSign(dto));
}
@GetMapping("/hospital")
@Operation(summary = "医院数据", description = "医院数据")
public Result<List<HospitalVO>> hospital(){
public Result<List<HospitalVO>> hospital() {
return Result.ok(largeScreenService.hospital());
}
@GetMapping("runTest")
@Operation(summary = "假数据", description = "假数据")
public void runTest(){
largeScreenService.runTest();
@Operation(summary = "初始化假数据", description = "初始化假数据")
public void runTest() {
largeScreenService.runJob();
}
/**
* 编辑或新增
*
* @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());
}
}
@@ -1,58 +0,0 @@
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;
}
}
@@ -1,58 +0,0 @@
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;
}
}
@@ -11,6 +11,10 @@ import java.util.Date;
@Data
public class MedicalAbnormalStatisticsDTO {
private String centerId;
/**
* 体检年份
*/
private String medicalYear;
/**
* 检查日期起期 参数为空时,默认为今年第一天
*/
@@ -0,0 +1,36 @@
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 TodayEmergencyDTO {
/**
* 开始时间
*/
@Schema(title = "开始时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startDate;
/**
*结束时间
*/
@Schema(title = "结束时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;
/**
* pageNo
*/
@Schema(title = "pageNo")
private Integer pageNo = 1;
/**
* pageSize
*/
@Schema(title = "pageSize")
private Integer pageSize = 10;
}
@@ -0,0 +1,32 @@
package com.renkang.emergency.largeScreen.entity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class HealthArchivesVO {
@Schema(title = "BMI")
private String bmi;
@Schema(title = "尿酸")
private String ua;
@Schema(title = "血同型半胱氨酸")
private String hcy;
@Schema(title = "空腹葡萄糖")
private String glu;
@Schema(title = "目测收缩压监测值")
private String sbp;
@Schema(title = "目测舒张压监测值")
private String dbp;
@Schema(title = "总胆固醇")
private String tc;
@Schema(title = "甘油三酯")
private String tg;
@Schema(title = "低密度脂蛋白")
private String ldl;
@Schema(title = "既往史")
private String pastHistory;
@Schema(title = "手术史")
private String surgicalHistory;
@Schema(title = "用药史")
private String medicationHistory;
}
@@ -1,24 +0,0 @@
package com.renkang.emergency.largeScreen.entity.vo;
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 HealthRoomBaseVO {
private String id;
private String departName;
private String address;
private String lon;
private String lat;
/**
* 建设时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "建设时间")
private Date buildDate;
}
@@ -1,5 +1,6 @@
package com.renkang.emergency.largeScreen.entity.vo;
import com.renkang.anyan.model.vo.HealthPlaceHomDetailsVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
@@ -52,4 +53,19 @@ public class HealthRoomVO {
*/
@Schema(title = "是否成功空降,1:是/0.否")
private String successFlag;
public HealthRoomVO() {}
public HealthRoomVO(HealthPlaceHomDetailsVO detailsVO){
departName = detailsVO.getDepartName();
name = detailsVO.getName();
checkInDate = detailsVO.getCheckInDate();
checkType = detailsVO.getCheckType();
lastVal = detailsVO.getLastVal();
goalVal = detailsVO.getGoalVal();
currentVal = detailsVO.getCurrentVal();
compareVal = detailsVO.getCompareVal();
successFlag = detailsVO.getSuccessFlag();
}
}
@@ -1,6 +1,7 @@
package com.renkang.emergency.largeScreen.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.emergency.entity.Resource;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -9,6 +10,10 @@ import java.util.Date;
@Data
public class HospitalVO {
/**
* id
*/
private String id;
/**
* 医院名字
*/
@@ -41,4 +46,16 @@ public class HospitalVO {
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "签约时间")
private Date contractDate;
public HospitalVO() {}
public HospitalVO(Resource resource){
id = resource.getId();
hospitalName = resource.getName();
alias = resource.getName();
address = resource.getAddress();
lon = resource.getLongitude().toString();
lat = resource.getLatitude().toString();
contractDate = resource.getCreateTime();
}
}
@@ -2,6 +2,7 @@ package com.renkang.emergency.largeScreen.entity.vo;
import com.renkang.emergency.entity.EmergencyHealthRoom;
import com.renkang.emergency.entity.Resource;
import com.renkang.emergency.entity.XjAed;
import lombok.Data;
@Data
@@ -12,6 +13,8 @@ public class LargeScreenMap {
private String orgName;
private String address;
private String type;
private String loveNum;
@@ -20,6 +23,16 @@ public class LargeScreenMap {
private String latitude;
private Integer jobNum;
private Integer runTime;
private String manageName;
private String managePhone;
private double distance;
public LargeScreenMap() {}
public LargeScreenMap(Resource resource) {
@@ -29,6 +42,9 @@ public class LargeScreenMap {
this.type = resource.getType();
this.latitude = String.valueOf(resource.getLatitude());
this.longitude = String.valueOf(resource.getLongitude());
this.jobNum = resource.getJobNum();
this.runTime = resource.getRunTime();
this.address = resource.getAddress();
}
public LargeScreenMap(EmergencyHealthRoom room) {
@@ -39,4 +55,16 @@ public class LargeScreenMap {
this.latitude = room.getLatitude();
this.longitude = room.getLongitude();
}
public LargeScreenMap(XjAed xjAed) {
this.id = xjAed.getId();
this.name = xjAed.getName();
this.orgName = xjAed.getOrgCode();
this.type = "4";
this.address = xjAed.getAddress();
this.latitude = String.valueOf(xjAed.getLatitude());
this.longitude = String.valueOf(xjAed.getLongitude());
this.manageName = xjAed.getManageName();
this.managePhone = xjAed.getManagePhone();
}
}
@@ -1,20 +0,0 @@
package com.renkang.emergency.largeScreen.entity.vo;
import cn.hutool.core.date.DateUtil;
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 MedicalAbnormalStatisticsVO {
private Integer totalCount;
// 心血管异常人数
private Integer cardiovaAbCount;
// 脑血管异常人数
private Integer cerebrovAbCount;
// 冠脉ct异常人数
private Integer cctaAbCount;
}
@@ -0,0 +1,52 @@
package com.renkang.emergency.largeScreen.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.emergency.entity.TblQimoNotice;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class TodayEmergencyVO {
@Schema(title = "userId")
private String userId;
@Schema(title = "姓名")
private String realName;
@Schema(title = "0:120 1:紧急求助 2:云坐席 3:终端报警")
private String emergencyType;
@Schema(title = "事件类型(emergencyType=3 才有值)")
@Dict(dicCode = "watch_event_type")
private String eventType;
@Schema(title = "性别")
@Dict(dicCode = "sex2")
private Integer sex;
@Schema(title = "年龄")
private Integer age;
@Schema(title = "手机号码")
private String phone;
@Schema(title = "二级单位code")
private String departCode;
@Schema(title = "二级单位名称")
private String departName;
@Schema(title = "三级部门code")
private String orgCode;
@Schema(title = "三级部门名称")
private String orgName;
@Schema(title = "位置")
private String address;
@Schema(title = "经度")
private BigDecimal longitude;
@Schema(title = "纬度")
private BigDecimal latitude;
@Schema(title = "描述")
private String memo;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(title = "时间")
private Date time;
}
@@ -0,0 +1,14 @@
package com.renkang.emergency.largeScreen.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.renkang.emergency.entity.LargeScreenData;
/**
* @Description: large_screen
* @Author: wang hao
* @Date: 2025-07-04
* @Version: V1.0
*/
public interface LargeScreenDataMapper extends MPJBaseMapper<LargeScreenData> {
}
@@ -0,0 +1,47 @@
package com.renkang.emergency.largeScreen.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.renkang.anyan.model.vo.CareUserListVo;
import com.renkang.anyan.model.vo.CareUserVO;
import com.renkang.emergency.entity.LargeScreenData;
import com.renkang.emergency.entity.TblBaseHospitalVo;
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
import com.renkang.emergency.entity.vo.DataDetailVO;
import com.renkang.emergency.entity.vo.MedicalDataVO;
import com.renkang.emergency.largeScreen.entity.dto.TodayEmergencyDTO;
import com.renkang.emergency.largeScreen.entity.vo.HealthArchivesVO;
import com.renkang.emergency.largeScreen.entity.vo.TodayEmergencyVO;
import java.util.List;
/**
* @Description: LargeScreenData
* @Author: wang hao
* @Date: 2025-07-25
* @Version: V1.0
*/
public interface ILargeScreenDataService extends IService<LargeScreenData> {
Boolean editValue(LargeScreenDataValueDTO dto);
Boolean editData(DataDetailVO dto);
Boolean deleteValue(LargeScreenDataValueDTO dto);
Boolean editMedicalValue(List<LargeScreenDataValueDTO> dtoList);
DataDetailVO dataDetail(String centerId, String module);
List<MedicalDataVO> medicalDataDetail(String centerId);
IPage<CareUserListVo> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize);
List<TblBaseHospitalVo> nearResources(String longitude, String latitude);
IPage<TodayEmergencyVO> todayEmergencyList(TodayEmergencyDTO dto);
HealthArchivesVO healthArchives(String userId);
CareUserVO careUser(String userId);
}
@@ -2,8 +2,19 @@ package com.renkang.emergency.largeScreen.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.renkang.emergency.largeScreen.entity.dto.*;
import com.renkang.emergency.largeScreen.entity.vo.*;
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.model.vo.MedicalAbnormalVO;
import com.renkang.emergency.largeScreen.entity.dto.HealthRoomBaseDTO;
import com.renkang.emergency.largeScreen.entity.dto.HealthSignDTO;
import com.renkang.emergency.largeScreen.entity.dto.MedicalAbnormalStatisticsDTO;
import com.renkang.emergency.largeScreen.entity.dto.MedicalPeopleNumStatisticsDTO;
import com.renkang.emergency.largeScreen.entity.vo.HealthRoomVO;
import com.renkang.emergency.largeScreen.entity.vo.HealthSignVO;
import com.renkang.emergency.largeScreen.entity.vo.HospitalVO;
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
import java.util.List;
@@ -23,11 +34,11 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
IPage<MedicalAbnormalVO> medicalAbnormal(MedicalAbnormalDTO dto);
IPage<HealthWeightLossVO> healthWeightLoss(HealthWeightLossDTO dto);
IPage<WeightPressureList> healthWeightLoss(HealthSignListParam dto);
IPage<HealthBloodSugarVO> healthBloodSugar(HealthBloodSugarDTO dto);
IPage<BloodSugarClockSList> healthBloodSugar(HealthSignListParam dto);
IPage<HealthBloodPressureVO> healthBloodPressure(HealthBloodPressureDTO dto);
IPage<BloodPressureList> healthBloodPressure(HealthSignListParam dto);
List<MedicalPeopleNumStatisticsVO> medicalPeopleNumStatistics(MedicalPeopleNumStatisticsDTO dto);
@@ -39,5 +50,10 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
void runJob();
void runTest();
/**
* 同步安眼系统中的油田医院数据和监控小屋数据定时任务
*/
void syncAnYanHospital();
AuthResult queryAnYanToken();
}
@@ -0,0 +1,865 @@
package com.renkang.emergency.largeScreen.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.renkang.anyan.model.vo.CareUserListVo;
import com.renkang.anyan.model.vo.CareUserVO;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
import com.renkang.emergency.entity.vo.DataDetailVO;
import com.renkang.emergency.entity.vo.MedicalDataVO;
import com.renkang.emergency.largeScreen.entity.dto.TodayEmergencyDTO;
import com.renkang.emergency.largeScreen.entity.vo.HealthArchivesVO;
import com.renkang.emergency.largeScreen.entity.vo.TodayEmergencyVO;
import com.renkang.emergency.largeScreen.mapper.LargeScreenDataMapper;
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
import com.renkang.emergency.mapper.OrderMapper;
import com.renkang.emergency.mapper.TblUserHelpMapper;
import com.renkang.emergency.service.IResourceService;
import com.renkang.emergency.service.ITbQimoNoticeService;
import com.renkang.emergency.service.ITbUserHelpMacService;
import com.renkang.emergency.service.IXjAedService;
import com.renkang.emergency.util.HealthArchivesGenerator;
import com.renkang.watch.api.WatchApi;
import com.renkang.watch.vo.WatchMonitorDataVo;
import lombok.RequiredArgsConstructor;
import org.jeecg.bean.request.ListUser;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.LoginUser;
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.jeecg.util.TypeConversionUtil;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StreamUtils;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: large_screen_data
* @Author: wang hao
* @Date: 2025-07-25
* @Version: V1.0
*/
@Service
@RequiredArgsConstructor
public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMapper, LargeScreenData> implements ILargeScreenDataService {
private final IResourceService resourceService;
private final IXjAedService xjAedService;
private final ITbQimoNoticeService noticeService;
private final TblUserHelpMapper userHelpMapper;
private final OrderMapper orderMapper;
private final WatchApi watchApi;
private final ISysBaseAPI sysBaseAPI;
private final ISysCache sysCache;
public Boolean editValue(LargeScreenDataValueDTO dto) {
if (StrUtil.isEmpty(dto.getCenterId())) {
return false;
}
LambdaQueryWrapper<LargeScreenData> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LargeScreenData::getType, dto.getType());
queryWrapper.eq(LargeScreenData::getCenterId, dto.getCenterId());
queryWrapper.eq(ObjUtil.isNotEmpty(dto.getId()), LargeScreenData::getId, dto.getId());
if (CollUtil.isNotEmpty(list())) {
LambdaUpdateWrapper<LargeScreenData> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(LargeScreenData::getType, dto.getType());
updateWrapper.eq(ObjUtil.isNotEmpty(dto.getId()), LargeScreenData::getId, dto.getId());
updateWrapper.set(LargeScreenData::getValue, dto.getValue());
updateWrapper.set(LargeScreenData::getStatus, dto.getStatus());
return update(updateWrapper);
}
return save(new LargeScreenData(dto));
}
@Transactional()
public Boolean editData(DataDetailVO dto) {
List<LargeScreenData> list = new ArrayList<>();
switch (dto.getModule()) {
case "9":
// 服务详情
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance")));
LargeScreenData service1 = new LargeScreenData();
service1.setType("gross");
service1.setStatus(dto.getLatestCallStatus());
service1.setValue(dto.getLatestCall());
service1.setCenterId(dto.getCenterId());
list.add(service1);
LargeScreenData service2 = new LargeScreenData();
service2.setType("alerdyreceive");
service2.setStatus(dto.getLatestAcceptCallStatus());
service2.setValue(dto.getLatestAcceptCall());
service2.setCenterId(dto.getCenterId());
list.add(service2);
LargeScreenData service3 = new LargeScreenData();
service3.setType("jqqz");
service3.setStatus(dto.getIllNumStatus());
service3.setValue(dto.getIllNum());
service3.setCenterId(dto.getCenterId());
list.add(service3);
LargeScreenData service4 = new LargeScreenData();
service4.setType("dbjy");
service4.setStatus(dto.getEmergencyNumStatus());
service4.setValue(dto.getEmergencyNum());
service4.setCenterId(dto.getCenterId());
list.add(service4);
LargeScreenData service5 = new LargeScreenData();
service5.setType("totaldeal");
service5.setStatus(dto.getTotalAcceptStatus());
service5.setValue(dto.getTotalAccept());
service5.setCenterId(dto.getCenterId());
list.add(service5);
LargeScreenData service6 = new LargeScreenData();
service6.setType("totalacceptance");
service6.setStatus(dto.getTotalDisposalStatus());
service6.setValue(dto.getTotalDisposal());
service6.setCenterId(dto.getCenterId());
list.add(service6);
break;
case "31":
// 主诉分类
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
Arrays.asList("oneTwenty", "hospital")));
LargeScreenData type1 = new LargeScreenData();
type1.setType("oneTwenty");
type1.setStatus(dto.getHospitalCountStatus());
type1.setValue(dto.getHospitalCount());
type1.setCenterId(dto.getCenterId());
list.add(type1);
LargeScreenData type2 = new LargeScreenData();
type2.setType("hospital");
type2.setStatus(dto.getEmergencyCountStatus());
type2.setValue(dto.getEmergencyCount());
type2.setCenterId(dto.getCenterId());
list.add(type2);
break;
case "33":
// 健康打卡
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
Arrays.asList("weightLossCountDay", "weightLossCountMonth", "weightLossAbnormalCountDay", "weightLossAbnormalCountMonth",
"bloodSugarCountDay", "bloodSugarCountMonth", "bloodSugarAbnormalCountDay", "bloodSugarAbnormalCountMonth",
"bloodPressureCountDay", "bloodPressureCountMonth", "bloodPressureAbnormalCountDay", "bloodPressureAbnormalCountMonth",
"totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
LargeScreenData sign1 = new LargeScreenData();
sign1.setType("weightLossCountDay");
sign1.setStatus(dto.getWeightLossCountDayStatus());
sign1.setValue(dto.getWeightLossCountDay());
sign1.setCenterId(dto.getCenterId());
list.add(sign1);
LargeScreenData sign2 = new LargeScreenData();
sign2.setType("weightLossCountMonth");
sign2.setStatus(dto.getWeightLossCountMonthStatus());
sign2.setValue(dto.getWeightLossCountMonth());
sign2.setCenterId(dto.getCenterId());
list.add(sign2);
LargeScreenData sign3 = new LargeScreenData();
sign3.setType("weightLossAbnormalCountDay");
sign3.setStatus(dto.getWeightLossAbnormalCountDayStatus());
sign3.setValue(dto.getWeightLossAbnormalCountDay());
sign3.setCenterId(dto.getCenterId());
list.add(sign3);
LargeScreenData sign4 = new LargeScreenData();
sign4.setType("weightLossAbnormalCountMonth");
sign4.setStatus(dto.getWeightLossAbnormalCountMonthStatus());
sign4.setValue(dto.getWeightLossAbnormalCountMonth());
sign4.setCenterId(dto.getCenterId());
list.add(sign4);
LargeScreenData sign5 = new LargeScreenData();
sign5.setType("bloodSugarCountDay");
sign5.setStatus(dto.getBloodSugarCountDayStatus());
sign5.setValue(dto.getBloodSugarCountDay());
sign5.setCenterId(dto.getCenterId());
list.add(sign5);
LargeScreenData sign6 = new LargeScreenData();
sign6.setType("bloodSugarCountMonth");
sign6.setStatus(dto.getBloodSugarCountMonthStatus());
sign6.setValue(dto.getBloodSugarCountMonth());
sign6.setCenterId(dto.getCenterId());
list.add(sign6);
LargeScreenData sign7 = new LargeScreenData();
sign7.setType("bloodSugarAbnormalCountDay");
sign7.setStatus(dto.getBloodSugarAbnormalCountDayStatus());
sign7.setValue(dto.getBloodSugarAbnormalCountDay());
sign7.setCenterId(dto.getCenterId());
list.add(sign7);
LargeScreenData sign8 = new LargeScreenData();
sign8.setType("bloodSugarAbnormalCountMonth");
sign8.setStatus(dto.getBloodSugarAbnormalCountMonthStatus());
sign8.setValue(dto.getBloodSugarAbnormalCountMonth());
sign8.setCenterId(dto.getCenterId());
list.add(sign8);
LargeScreenData sign9 = new LargeScreenData();
sign9.setType("bloodPressureCountDay");
sign9.setStatus(dto.getBloodPressureCountDayStatus());
sign9.setValue(dto.getBloodPressureCountDay());
sign9.setCenterId(dto.getCenterId());
list.add(sign9);
LargeScreenData sign10 = new LargeScreenData();
sign10.setType("bloodPressureCountMonth");
sign10.setStatus(dto.getBloodPressureCountMonthStatus());
sign10.setValue(dto.getBloodPressureCountMonth());
sign10.setCenterId(dto.getCenterId());
list.add(sign10);
LargeScreenData sign11 = new LargeScreenData();
sign11.setType("bloodPressureAbnormalCountDay");
sign11.setStatus(dto.getBloodPressureAbnormalCountDayStatus());
sign11.setValue(dto.getBloodPressureAbnormalCountDay());
sign11.setCenterId(dto.getCenterId());
list.add(sign11);
LargeScreenData sign12 = new LargeScreenData();
sign12.setType("bloodPressureAbnormalCountMonth");
sign12.setStatus(dto.getBloodPressureAbnormalCountMonthStatus());
sign12.setValue(dto.getBloodPressureAbnormalCountMonth());
sign12.setCenterId(dto.getCenterId());
list.add(sign12);
break;
case "34":
// 体检数据
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType,
Arrays.asList("totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
LargeScreenData medicalData1 = new LargeScreenData();
medicalData1.setType("totalCount");
medicalData1.setStatus(dto.getTotalCountStatus());
medicalData1.setValue(dto.getTotalCount());
medicalData1.setCenterId(dto.getCenterId());
list.add(medicalData1);
LargeScreenData medicalData2 = new LargeScreenData();
medicalData2.setType("cardiovaAbCount");
medicalData2.setStatus(dto.getCardiovaAbCountStatus());
medicalData2.setValue(dto.getCardiovaAbCount());
medicalData2.setCenterId(dto.getCenterId());
list.add(medicalData2);
LargeScreenData medicalData3 = new LargeScreenData();
medicalData3.setType("cerebrovAbCount");
medicalData3.setStatus(dto.getCerebrovAbCountStatus());
medicalData3.setValue(dto.getCerebrovAbCount());
medicalData3.setCenterId(dto.getCenterId());
list.add(medicalData3);
LargeScreenData medicalData4 = new LargeScreenData();
medicalData4.setType("cctaAbCount");
medicalData4.setStatus(dto.getCctaAbCountStatus());
medicalData4.setValue(dto.getCctaAbCount());
medicalData4.setCenterId(dto.getCenterId());
list.add(medicalData4);
break;
default:
break;
}
return saveBatch(list);
}
public Boolean deleteValue(LargeScreenDataValueDTO dto) {
return remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getId, dto.getId()));
}
@Transactional(rollbackFor = Exception.class)
public Boolean editMedicalValue(List<LargeScreenDataValueDTO> dtoList) {
remove(new LambdaQueryWrapper<LargeScreenData>().in(LargeScreenData::getType, "medical", "32"));
if (CollUtil.isNotEmpty(dtoList)) {
saveBatch(dtoList.stream().map(LargeScreenData::new).collect(Collectors.toList()));
}
return true;
}
public DataDetailVO dataDetail(String centerId, String module) {
DataDetailVO vo = new DataDetailVO();
List<LargeScreenData> list = new ArrayList<>();
switch (module) {
case "9":
// 查询服务详情相关数据
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance")));
break;
case "31":
// 查询主诉分类相关数据
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
Arrays.asList("oneTwenty", "hospital")));
break;
case "33":
// 查询健康打卡相关数据
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
Arrays.asList("weightLossCountDay", "weightLossCountMonth", "weightLossAbnormalCountDay", "weightLossAbnormalCountMonth",
"bloodSugarCountDay", "bloodSugarCountMonth", "bloodSugarAbnormalCountDay", "bloodSugarAbnormalCountMonth",
"bloodPressureCountDay", "bloodPressureCountMonth", "bloodPressureAbnormalCountDay", "bloodPressureAbnormalCountMonth",
"totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
break;
case "34":
// 查询体检数据相关
list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
Arrays.asList("totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount")));
break;
default:
break;
}
if (CollUtil.isEmpty(list)) {
return vo;
}
for (LargeScreenData largeScreenData : list) {
switch (largeScreenData.getType()) {
case "gross":
vo.setLatestCall(String.valueOf(largeScreenData.getValue()));
vo.setLatestCallStatus(largeScreenData.getStatus());
break;
case "alerdyreceive":
vo.setLatestAcceptCall(String.valueOf(largeScreenData.getValue()));
vo.setLatestAcceptCallStatus(largeScreenData.getStatus());
break;
case "jqqz":
vo.setIllNum(String.valueOf(largeScreenData.getValue()));
vo.setIllNumStatus(largeScreenData.getStatus());
break;
case "dbjy":
vo.setEmergencyNum(String.valueOf(largeScreenData.getValue()));
vo.setEmergencyNumStatus(largeScreenData.getStatus());
break;
case "totaldeal":
vo.setTotalAccept(String.valueOf(largeScreenData.getValue()));
vo.setTotalAcceptStatus(largeScreenData.getStatus());
break;
case "totalacceptance":
vo.setTotalDisposal(String.valueOf(largeScreenData.getValue()));
vo.setTotalDisposalStatus(largeScreenData.getStatus());
break;
case "oneTwenty":
vo.setHospitalCount(String.valueOf(largeScreenData.getValue()));
vo.setHospitalCountStatus(largeScreenData.getStatus());
break;
case "hospital":
vo.setEmergencyCount(String.valueOf(largeScreenData.getValue()));
vo.setEmergencyCountStatus(largeScreenData.getStatus());
break;
case "weightLossCountDay":
vo.setWeightLossCountDay(String.valueOf(largeScreenData.getValue()));
vo.setWeightLossCountDayStatus(largeScreenData.getStatus());
break;
case "weightLossCountMonth":
vo.setWeightLossCountMonth(String.valueOf(largeScreenData.getValue()));
vo.setWeightLossCountMonthStatus(largeScreenData.getStatus());
break;
case "weightLossAbnormalCountDay":
vo.setWeightLossAbnormalCountDay(String.valueOf(largeScreenData.getValue()));
vo.setWeightLossAbnormalCountDayStatus(largeScreenData.getStatus());
break;
case "weightLossAbnormalCountMonth":
vo.setWeightLossAbnormalCountMonth(String.valueOf(largeScreenData.getValue()));
vo.setWeightLossAbnormalCountMonthStatus(largeScreenData.getStatus());
break;
case "bloodSugarCountDay":
vo.setBloodSugarCountDay(String.valueOf(largeScreenData.getValue()));
vo.setBloodSugarCountDayStatus(largeScreenData.getStatus());
break;
case "bloodSugarCountMonth":
vo.setBloodSugarCountMonth(String.valueOf(largeScreenData.getValue()));
vo.setBloodSugarCountMonthStatus(largeScreenData.getStatus());
break;
case "bloodSugarAbnormalCountDay":
vo.setBloodSugarAbnormalCountDay(String.valueOf(largeScreenData.getValue()));
vo.setBloodSugarAbnormalCountDayStatus(largeScreenData.getStatus());
break;
case "bloodSugarAbnormalCountMonth":
vo.setBloodSugarAbnormalCountMonth(String.valueOf(largeScreenData.getValue()));
vo.setBloodSugarAbnormalCountMonthStatus(largeScreenData.getStatus());
break;
case "bloodPressureCountDay":
vo.setBloodPressureCountDay(String.valueOf(largeScreenData.getValue()));
vo.setBloodPressureCountDayStatus(largeScreenData.getStatus());
break;
case "bloodPressureCountMonth":
vo.setBloodPressureCountMonth(String.valueOf(largeScreenData.getValue()));
vo.setBloodPressureCountMonthStatus(largeScreenData.getStatus());
break;
case "bloodPressureAbnormalCountDay":
vo.setBloodPressureAbnormalCountDay(String.valueOf(largeScreenData.getValue()));
vo.setBloodPressureAbnormalCountDayStatus(largeScreenData.getStatus());
break;
case "bloodPressureAbnormalCountMonth":
vo.setBloodPressureAbnormalCountMonth(String.valueOf(largeScreenData.getValue()));
vo.setBloodPressureAbnormalCountMonthStatus(largeScreenData.getStatus());
break;
case "totalCount":
vo.setTotalCount(String.valueOf(largeScreenData.getValue()));
vo.setTotalCountStatus(largeScreenData.getStatus());
break;
case "cardiovaAbCount":
vo.setCardiovaAbCount(String.valueOf(largeScreenData.getValue()));
vo.setCardiovaAbCountStatus(largeScreenData.getStatus());
break;
case "cerebrovAbCount":
vo.setCerebrovAbCount(String.valueOf(largeScreenData.getValue()));
vo.setCerebrovAbCountStatus(largeScreenData.getStatus());
break;
case "cctaAbCount":
vo.setCctaAbCount(String.valueOf(largeScreenData.getValue()));
vo.setCctaAbCountStatus(largeScreenData.getStatus());
break;
default:
break;
}
}
return vo;
}
public List<MedicalDataVO> medicalDataDetail(String centerId) {
List<LargeScreenData> list = list(new LambdaQueryWrapper<LargeScreenData>()
.in(LargeScreenData::getType, "medical", "32").eq(LargeScreenData::getCenterId, centerId));
if (CollUtil.isEmpty(list)) {
return new ArrayList<>();
}
return list.stream().map(MedicalDataVO::new).collect(Collectors.toList());
}
@Override
public IPage<CareUserListVo> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize) {
try {
ClassPathResource resource = new ClassPathResource("tempData/guanaiList.json");
String jsonContent = StreamUtils.copyToString(resource.getInputStream(), StandardCharsets.UTF_8);
List<CareUserListVo> careUserListVoList = JSONUtil.toList(jsonContent, CareUserListVo.class);
if (CollUtil.isEmpty(careUserListVoList)) {
return new Page<>();
}
// 根据 name 过滤
if (StrUtil.isNotBlank(name)) {
careUserListVoList = careUserListVoList.stream()
.filter(vo -> vo.getName() != null && vo.getName().contains(name))
.collect(Collectors.toList());
}
// 根据 name 过滤
if (StrUtil.isNotBlank(orgName)) {
careUserListVoList = careUserListVoList.stream()
.filter(vo -> vo.getWorkUnit() != null && vo.getWorkUnit().contains(orgName))
.collect(Collectors.toList());
}
int total = careUserListVoList.size();
int[] startEnd = PageUtil.transToStartEnd(pageNo - 1, pageSize);
// 确保不越界
int start = Math.min(startEnd[0], total);
int end = Math.min(startEnd[1], total);
List<CareUserListVo> pageList = careUserListVoList.subList(start, end);
Page<CareUserListVo> page = new Page<>(pageNo, pageSize, total);
page.setRecords(pageList);
return page;
} catch (Exception e) {
e.printStackTrace();
return new Page<>();
}
}
@Override
public List<TblBaseHospitalVo> nearResources(String longitude, String latitude) {
// 总资源 (6个最近点 2个医院 2个小屋 2个AED)
List<TblBaseHospitalVo> list = new ArrayList<>();
// 医院
List<TblBaseHospitalVo> hospitalList = new ArrayList<>();
// 小屋
List<TblBaseHospitalVo> roomList = new ArrayList<>();
// AED
List<TblBaseHospitalVo> xjAedList = new ArrayList<>();
List<Resource> resourceList = resourceService.list(new LambdaQueryWrapper<Resource>()
.in(Resource::getType, Arrays.asList("1", "3"))
.isNotNull(Resource::getLongitude)
.isNotNull(Resource::getLatitude));
if (CollUtil.isNotEmpty(resourceList)) {
// 分组
Map<String, List<Resource>> groupedResources = resourceList.stream()
.collect(Collectors.groupingBy(Resource::getType));
List<Resource> type1Resources = groupedResources.getOrDefault("1", new ArrayList<>());
hospitalList = type1Resources.stream()
.map(TblBaseHospitalVo::new)
.collect(Collectors.toList());
List<Resource> type3Resources = groupedResources.getOrDefault("3", new ArrayList<>());
roomList = type3Resources.stream()
.map(TblBaseHospitalVo::new)
.collect(Collectors.toList());
}
List<XjAed> aedList = xjAedService.list(new LambdaQueryWrapper<XjAed>()
.isNotNull(XjAed::getLatitude)
.isNotNull(XjAed::getLongitude));
if (CollUtil.isNotEmpty(aedList)) {
xjAedList = aedList.stream().map(TblBaseHospitalVo::new).collect(Collectors.toList());
}
// 找出最近的两个点
hospitalList = findThreeNearestHospitals(2, hospitalList, TypeConversionUtil.toDoubleOfNull(longitude), TypeConversionUtil.toDoubleOfNull(latitude));
roomList = findThreeNearestHospitals(2, roomList, TypeConversionUtil.toDoubleOfNull(longitude), TypeConversionUtil.toDoubleOfNull(latitude));
xjAedList = findThreeNearestHospitals(2, xjAedList, TypeConversionUtil.toDoubleOfNull(longitude), TypeConversionUtil.toDoubleOfNull(latitude));
list.addAll(hospitalList);
list.addAll(roomList);
list.addAll(xjAedList);
// 赋值距离
for (TblBaseHospitalVo vo : list) {
if (vo.getLat() != null && Double.parseDouble(vo.getLat().toString()) != 0.0 && vo.getLon() != null && Double.parseDouble(vo.getLon().toString()) != 0.0) {
double lat2 = Double.parseDouble(vo.getLat().toString());
double lng2 = Double.parseDouble(vo.getLon().toString());
double distance = getDistance(TypeConversionUtil.toDoubleOfNull(latitude), TypeConversionUtil.toDoubleOfNull(longitude), lat2, lng2);
if (distance > 1000d) {
vo.setDistance(Math.round((distance / 1000d) * 100) / 100 + "km");
} else {
vo.setDistance(Math.round(distance * 100) / 100 + "m");
}
}
}
return list;
}
/**
* 获取最近的点
*
* @param allList 所有资源
* @param lon 经纬度
* @param lat 经纬度
* @return 最近的医院列表
*/
public List<TblBaseHospitalVo> findThreeNearestHospitals(int num, List<TblBaseHospitalVo> allList, final Double lon, final Double lat) {
if (allList == null || allList.size() < num) {
return allList; // 如果列表中没有足够的点,则返回全部点
}
// 先对整个列表进行排序
allList.sort(new Comparator<TblBaseHospitalVo>() {
@Override
public int compare(TblBaseHospitalVo h1, TblBaseHospitalVo h2) {
double dist1 = distance(lat, lon, h1.getLat().doubleValue(), h1.getLon().doubleValue());
double dist2 = distance(lat, lon, h2.getLat().doubleValue(), h2.getLon().doubleValue());
return Double.compare(dist1, dist2);
}
});
// 选择最近的点
return new ArrayList<>(allList.subList(0, num));
}
/**
* 计算两点之间的距离
*
* @param lat1 经纬度1
* @param lon1 经纬度1
* @param lat2 经纬度2
* @param lon2 经纬度2
* @return 距离
*/
private static double distance(double lat1, double lon1, double lat2, double lon2) {
// 地球半径(单位:千米)
final int R = 6371;
double latDistance = Math.toRadians(lat2 - lat1);
double lonDistance = Math.toRadians(lon2 - lon1);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
// 将距离转化为米
return R * c * 1000;
}
private static double EARTH_RADIUS = 6378.137;
/**
* 根据经纬度计算两点之间的距离 GetDistance:(). <br/>
*
* @param lat1 1点的纬度
* @param lng1 1点的经度
* @param lat2 2点的纬度
* @param lng2 2点的经度
* @return 距离 单位 米
* @author chiwei
*/
public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
double radLat1 = getRadian(lat1);
double radLat2 = getRadian(lat2);
double a = radLat1 - radLat2;// 两点纬度差
double b = getRadian(lng1) - getRadian(lng2);// 两点的经度差
double s = 2 * Math.asin(Math.sqrt(
Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
return s * 1000;
}
/**
* 角度弧度计算公式 rad:(). <br/>
* <p>
* 360度=2π π=Math.PI
* <p>
* x度 = x*π/360 弧度
*
* @param degree
* @return
* @author chiwei
* @since JDK 1.6
*/
private static double getRadian(double degree) {
return degree * Math.PI / 180.0;
}
@Override
public IPage<TodayEmergencyVO> todayEmergencyList(TodayEmergencyDTO dto) {
List<TodayEmergencyVO> list = new ArrayList<>();
Date date = new Date();
Date startDate = ObjUtil.isNotEmpty(dto.getStartDate()) ?
DateUtil.beginOfDay(dto.getStartDate()) : DateUtil.beginOfDay(date);
Date endDate = ObjUtil.isNotEmpty(dto.getEndDate()) ?
DateUtil.endOfDay(dto.getEndDate()).offset(DateField.MILLISECOND, -999) :
DateUtil.endOfDay(date).offset(DateField.MILLISECOND, -999);
// 获取数据
emergencyData(startDate, endDate, list);
noticeData(startDate, endDate, list);
watchData(startDate, endDate, list);
if (CollUtil.isEmpty(list)) {
return new Page<>();
}
// 使用HuTool工具类排序和分页
return processWithHuTool(list, dto);
}
/**
* 使用HuTool工具类处理排序和分页
*/
private IPage<TodayEmergencyVO> processWithHuTool(List<TodayEmergencyVO> list, TodayEmergencyDTO dto) {
// 按时间字段倒序排序
ListUtil.sort(list, (o1, o2) -> {
Date time1 = o1.getTime();
Date time2 = o2.getTime();
if (time1 == null && time2 == null) return 0;
if (time1 == null) return 1;
if (time2 == null) return -1;
return time2.compareTo(time1);
});
// 分页参数处理
int pageNo = ObjectUtil.defaultIfNull(dto.getPageNo(), 1);
int pageSize = ObjectUtil.defaultIfNull(dto.getPageSize(), 10);
int total = list.size();
// 计算分页范围
int startIndex = (pageNo - 1) * pageSize;
if (startIndex > total) {
startIndex = total;
}
int endIndex = Math.min(startIndex + pageSize, total);
List<TodayEmergencyVO> pageList = ListUtil.sub(list, startIndex, endIndex);
// 创建分页结果
IPage<TodayEmergencyVO> page = new Page<>(pageNo, pageSize, total);
page.setRecords(pageList);
return page;
}
/**
* 获取云坐席数据
*
* @param startDate 开始时间
* @param endDate 结束时间
* @param list 列表
*/
private void noticeData(Date startDate, Date endDate, List<TodayEmergencyVO> list) {
List<TblQimoNotice> noticeList = noticeService.list(
new LambdaQueryWrapper<TblQimoNotice>().between(TblQimoNotice::getCreateDate, startDate, endDate));
if (noticeList != null && !noticeList.isEmpty()) {
List<String> phoneList = noticeList.stream().map(TblQimoNotice::getCallNo).distinct().collect(Collectors.toList());
List<SysUser> userList = sysBaseAPI.getUserByPhoneList(phoneList).getResult();
// 根据手机号分组
Map<String, List<SysUser>> userMap = userList.stream().collect(Collectors.groupingBy(SysUser::getPhone));
for (TblQimoNotice notice : noticeList) {
TodayEmergencyVO vo = new TodayEmergencyVO();
vo.setEmergencyType("2");
vo.setPhone(notice.getCallNo());
List<SysUser> users = userMap.get(notice.getCallNo());
if (users != null) {
SysUser sysUser = users.get(0);
vo.setUserId(sysUser.getId());
vo.setRealName(sysUser.getRealname());
vo.setSex(sysUser.getSex());
vo.setAge(sysUser.getAge());
if (ObjUtil.isNotEmpty(sysUser.getOrgCode())) {
SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(sysUser.getOrgCode()));
if (secondDepart != null) {
vo.setDepartCode(secondDepart.getOrgCode());
vo.setDepartName(secondDepart.getDepartName());
}
SysDepart thirdDepart = sysCache.getDepartByOrgCode(GlobalUtils.getThirdDepartOrgCode(sysUser.getOrgCode()));
if (thirdDepart != null) {
vo.setOrgCode(thirdDepart.getOrgCode());
vo.setOrgName(thirdDepart.getDepartName());
}
}
} else {
vo.setRealName("未知");
vo.setDepartName("未知");
vo.setOrgName("未知");
}
vo.setTime(notice.getCreateDate());
list.add(vo);
}
}
}
/**
* 获取应急数据
* @param startDate 开始时间
* @param endDate 结束时间
* @param list 列表
*/
private void emergencyData(Date startDate, Date endDate, List<TodayEmergencyVO> list){
List<Order> orderList = orderMapper.selectList(
new LambdaQueryWrapper<Order>().between(Order::getCreateTime, startDate, endDate).in(Order::getInitiatorType,Arrays.asList("0","1")));
if (orderList != null && !orderList.isEmpty()) {
List<String> userIdList = orderList.stream().map(Order::getInitiatorUserId).distinct().collect(Collectors.toList());
List<LoginUser> userList = sysBaseAPI.listUserByIdsNew(userIdList);
// 根据用户id分组
Map<String, LoginUser> userMap = userList.stream()
.collect(Collectors.toMap(LoginUser::getId, a -> a, (k1, k2) -> k1));
for (Order order : orderList) {
TodayEmergencyVO vo = new TodayEmergencyVO();
vo.setUserId(order.getInitiatorUserId());
if (order.getInitiatorType().equals("0")){
vo.setEmergencyType("0");
}
if (order.getInitiatorType().equals("1")){
vo.setEmergencyType("1");
}
vo.setPhone(order.getInitiatorUserMobile());
LoginUser user = userMap.get(order.getInitiatorUserId());
if (user != null) {
vo.setRealName(user.getRealname());
vo.setSex(user.getSex());
vo.setAge(user.getAge());
if (ObjUtil.isNotEmpty(user.getOrgCode())) {
SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(user.getOrgCode()));
if (secondDepart != null) {
vo.setDepartCode(secondDepart.getOrgCode());
vo.setDepartName(secondDepart.getDepartName());
}
SysDepart thirdDepart = sysCache.getDepartByOrgCode(GlobalUtils.getThirdDepartOrgCode(user.getOrgCode()));
if (thirdDepart != null) {
vo.setOrgCode(thirdDepart.getOrgCode());
vo.setOrgName(thirdDepart.getDepartName());
}
}
vo.setLongitude(order.getInitiatorLongitude());
vo.setLatitude(order.getInitiatorLatitude());
} else {
vo.setRealName("未知");
vo.setDepartName("未知");
vo.setOrgName("未知");
}
vo.setTime(order.getCreateTime());
list.add(vo);
}
}
}
/**
* 获取预警数据
* @param startDate 开始时间
* @param endDate 结束时间
* @param list 列表
*/
private void watchData(Date startDate, Date endDate, List<TodayEmergencyVO> list){
IPage<WatchMonitorDataVo> watchListResult = GlobalUtils.getCloudResultData(
watchApi.getMonitorList(null, null, DateUtil.formatDate(startDate), DateUtil.formatDate(endDate),
1, -1));
if (watchListResult != null) {
List<WatchMonitorDataVo> watchList = watchListResult.getRecords();
if (watchList != null && !watchList.isEmpty()) {
List<String> userIdList = watchList.stream().map(WatchMonitorDataVo::getUserId).distinct().collect(Collectors.toList());
List<LoginUser> loginUsers = sysBaseAPI.listUserByIdsNew(userIdList);
for (WatchMonitorDataVo watch : watchList) {
TodayEmergencyVO vo = new TodayEmergencyVO();
loginUsers.stream().filter(item->item.getId().equals(watch.getUserId())).findFirst().ifPresent(item->{
if (ObjUtil.isNotEmpty(item.getOrgCode())) {
SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(item.getOrgCode()));
if (secondDepart != null) {
vo.setDepartCode(secondDepart.getOrgCode());
vo.setDepartName(secondDepart.getDepartName());
}
SysDepart thirdDepart = sysCache.getDepartByOrgCode(GlobalUtils.getThirdDepartOrgCode(item.getOrgCode()));
if (thirdDepart != null) {
vo.setOrgCode(thirdDepart.getOrgCode());
vo.setOrgName(thirdDepart.getDepartName());
}
}
});
vo.setUserId(watch.getUserId());
vo.setRealName(watch.getRealName());
vo.setEmergencyType("3");
vo.setSex(watch.getSex());
vo.setAge(watch.getAge());
vo.setPhone(watch.getPhone());
vo.setAddress(watch.getAddress());
vo.setLongitude(watch.getLon());
vo.setLatitude(watch.getLat());
vo.setEventType(watch.getEventType());
vo.setTime(watch.getWarnTime());
list.add(vo);
}
}
}
}
@Override
public HealthArchivesVO healthArchives(String userId) {
return HealthArchivesGenerator.generateRandomHealthArchives();
}
@Override
public CareUserVO careUser(String userId) {
ListUser user = new ListUser();
user.setUserIds(Collections.singletonList(userId));
List<HealthUserEmployeeEx> healthUserEmployeeExes = sysBaseAPI.listEmployeeUserByIds(user);
CareUserVO careUserVO = new CareUserVO();
careUserVO.setUserId(userId);
if (healthUserEmployeeExes != null && !healthUserEmployeeExes.isEmpty()) {
careUserVO.setCareLiaisonName(healthUserEmployeeExes.get(0).getCareLiaisonName());
careUserVO.setCareLiaisonPhone(healthUserEmployeeExes.get(0).getCareLiaisonPhone());
careUserVO.setCareLiaisonJob(healthUserEmployeeExes.get(0).getCareLiaisonJob());
careUserVO.setLifeguardName(healthUserEmployeeExes.get(0).getLifeguardName());
careUserVO.setLifeguardPhone(healthUserEmployeeExes.get(0).getLifeguardPhone());
}
return careUserVO;
}
}

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