Explorar o código

删除教师和学生时,一并删除海康用

dzx hai 8 meses
pai
achega
c251f71810

+ 28 - 1
src/main/java/com/xjrsoft/module/hikvision/util/DataUtil.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.hikvision.util;
 
+import cn.hutool.db.Entity;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
@@ -12,7 +13,6 @@ import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
 import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.personnel.entity.CarMessageApply;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
-import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
 import lombok.extern.slf4j.Slf4j;
 import lombok.var;
 
@@ -574,4 +574,31 @@ public class DataUtil {
 //        }
 //        db.executeBatch(sqls);
 //    };
+
+    /**
+     * 根据用用户id,删除海康人员信息
+     * @param userIds
+     */
+    public void deletePerson(List<Long> userIds){
+        String tableName = "hikvision_data";
+        Entity where = Entity.create(tableName);
+        where.set("source_id", userIds);
+
+        List<Map<String, Object>> maps = SqlRunnerAdapter.db().dynamicSelect(tableName, where);
+        if(maps.isEmpty()){
+            return;
+        }
+        String apiPath = "/api/resource/v1/person/batch/delete";
+        JsonArray personIds = new JsonArray();
+
+        for (Map<String, Object> map : maps) {
+            personIds.add(map.get("hikvision_id").toString());
+        }
+        ApiUtil apiUtil = new ApiUtil();
+
+        JsonObject param = new JsonObject();
+        param.add("personIds", personIds);
+        String result = apiUtil.doPost(apiPath, param.toString(), null);
+        log.info("海康人员删除:param:" + param + ",result:" + result);
+    }
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/organization/controller/UserController.java

@@ -33,6 +33,7 @@ import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseGradeService;
+import com.xjrsoft.module.hikvision.util.DataUtil;
 import com.xjrsoft.module.organization.dto.AddUserDto;
 import com.xjrsoft.module.organization.dto.BindOpenidDto;
 import com.xjrsoft.module.organization.dto.LoginResetPasswordDto;
@@ -596,6 +597,9 @@ public class UserController {
         if (ids.contains(StpUtil.getLoginIdAsLong())) {
             R.error("当前登录账户不能删除!");
         }
+        //删除海康的用户信息
+        DataUtil dataUtil = new DataUtil();
+        dataUtil.deletePerson(ids);
         //删除时需要同时删除用户部门关联表和用户角色关联表和用户岗位关系表数据。
         return R.ok(userService.deleteBatch(ids));
     }

+ 4 - 0
src/main/java/com/xjrsoft/module/student/controller/StudentManagerController.java

@@ -26,6 +26,7 @@ import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseGradeService;
 import com.xjrsoft.module.concat.service.IXjrUserService;
+import com.xjrsoft.module.hikvision.util.DataUtil;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.service.IUserDeptRelationService;
 import com.xjrsoft.module.room.service.IRoomBedService;
@@ -217,6 +218,9 @@ public class StudentManagerController {
     @ApiOperation(value = "删除")
     @SaCheckPermission("studentmanager:delete")
     public R delete(@Valid @RequestBody List<Long> ids) {
+        //删除海康的用户信息
+        DataUtil dataUtil = new DataUtil();
+        dataUtil.deletePerson(ids);
         return R.ok(studentManagerService.delete(ids));
     }
 

+ 4 - 0
src/main/java/com/xjrsoft/module/teacher/controller/TeacherbaseManagerController.java

@@ -14,6 +14,7 @@ import com.xjrsoft.common.model.result.R;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.hikvision.util.DataUtil;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.organization.service.IUserDeptRelationService;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
@@ -140,6 +141,9 @@ public class TeacherbaseManagerController {
     @ApiOperation(value = "删除")
     @SaCheckPermission("teacherbasemanager:delete")
     public R delete(@Valid @RequestBody List<Long> ids){
+        //删除海康的用户信息
+        DataUtil dataUtil = new DataUtil();
+        dataUtil.deletePerson(ids);
         return R.ok(teacherbaseManagerService.delete(ids));
 
     }

+ 16 - 0
src/main/resources/sqlScript/20240531_sql.sql

@@ -0,0 +1,16 @@
+-- ----------------------------------------------
+-- 节假日
+-- ----------------------------------------------
+DROP TABLE IF EXISTS holiday_date;
+CREATE TABLE `holiday_date` (
+  `id` BIGINT NOT NULL COMMENT '主键编号',
+  `date` VARCHAR(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '日期yyyy-MM-dd',
+  `year` INT NOT NULL,
+  `month` INT NOT NULL,
+  `day` INT NOT NULL,
+  `status` INT DEFAULT '0' COMMENT '0=普通工作日 1=周末 2=需要补班的工作日 3=法定节假日',
+  `way` INT NOT NULL DEFAULT '1' COMMENT '方式 1=系统数据 2=用户数据',
+  `delete_status` INT NOT NULL DEFAULT '0' COMMENT '删除状态 0=正常 1=删除',
+  PRIMARY KEY (`id`) USING BTREE,
+  UNIQUE KEY `only` (`date`) USING BTREE
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb3;

+ 123 - 0
src/main/resources/sqlScript/20240604_sql.sql

@@ -0,0 +1,123 @@
+-- ------------------------------------------------
+-- 班级课程
+-- ------------------------------------------------
+DROP TABLE IF EXISTS base_class_course;
+CREATE TABLE `base_class_course` (
+  `id` BIGINT NOT NULL,
+  `create_user_id` BIGINT DEFAULT NULL,
+  `create_date` DATETIME(3) DEFAULT NULL,
+  `modify_user_id` BIGINT DEFAULT NULL,
+  `modify_date` DATETIME(3) DEFAULT NULL,
+  `delete_mark` INT DEFAULT NULL,
+  `enabled_mark` INT DEFAULT NULL,
+  `sort_code` INT DEFAULT NULL,
+  `class_id` BIGINT DEFAULT NULL COMMENT '班级id(base_class)',
+  `course_id` BIGINT DEFAULT NULL COMMENT '课程id(base_course_subject)',
+  `textbook_id` BIGINT DEFAULT NULL COMMENT '教材id(textbook)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班级课程';
+
+-- ------------------------------------------------
+-- 教师奖项
+-- ------------------------------------------------
+DROP TABLE IF EXISTS teacher_award_item;
+CREATE TABLE `teacher_award_item` (
+  `id` BIGINT NOT NULL,
+  `create_user_id` BIGINT DEFAULT NULL,
+  `create_date` DATETIME(3) DEFAULT NULL,
+  `modify_user_id` BIGINT DEFAULT NULL,
+  `modify_date` DATETIME(3) DEFAULT NULL,
+  `delete_mark` INT DEFAULT NULL,
+  `enabled_mark` INT DEFAULT NULL,
+  `sort_code` INT DEFAULT NULL,
+  `name` VARCHAR(200) DEFAULT NULL COMMENT '奖项名称',
+  `is_thesis` INT DEFAULT NULL COMMENT '是否论文(1:是 0:否)',
+  `is_standard` INT DEFAULT NULL COMMENT '是否频分标准(1:是 0:否)',
+  `score` DECIMAL(6,2) DEFAULT NULL COMMENT '分数',
+  `parent_id` BIGINT DEFAULT NULL COMMENT '父级id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='教师奖项';
+
+
+ALTER TABLE `teacher_award`   
+  ADD COLUMN `teacher_award_item_id` BIGINT NULL   COMMENT '奖项id(teacher_award_item)' AFTER `status`;
+  
+ALTER TABLE `xjr_user`   
+  CHANGE `avatar` `avatar` MEDIUMBLOB NULL   COMMENT '头像';
+  
+ALTER TABLE textbook
+    ADD use_type INT NULL COMMENT '使用类型(单位:学期)';
+
+ALTER TABLE `base_student_school_roll`   
+  ADD INDEX (`learn_status`);
+ALTER TABLE `xjr_dictionary_detail`   
+  ADD INDEX (`name`, `code`);
+
+DROP TABLE IF EXISTS `base_system_config`;
+CREATE TABLE `base_system_config`  (
+  `id` BIGINT NOT NULL,
+  `code` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '编号',
+  `value` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '值',
+  `remark` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '说明',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = INNODB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统参数配置' ROW_FORMAT = DYNAMIC;
+
+DROP TABLE IF EXISTS `base_user_student`;
+CREATE TABLE `base_user_student` (
+  `id` BIGINT NOT NULL COMMENT '主键',
+  `create_date` DATE DEFAULT NULL COMMENT '创建时间',
+  `modify_date` DATE DEFAULT NULL COMMENT '修改时间',
+  `user_id` BIGINT NOT NULL COMMENT '家长ID(xjr_user)',
+  `user_phone` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '家长手机号',
+  `student_id` BIGINT NOT NULL COMMENT '学生ID(xjr_user)',
+  `student_nane` VARCHAR(255) DEFAULT NULL COMMENT '学生姓名',
+  `student_identity` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '学生身份证号',
+  `class_id` BIGINT DEFAULT NULL COMMENT '学生班级id(base_class)',
+  `teacher_id` BIGINT DEFAULT NULL COMMENT '学生班主任id(xjr_user)',
+  `status` INT DEFAULT NULL COMMENT '流程状态(0:审核中,1:通过,2:拒绝)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='家长学生关联表';
+
+ALTER TABLE wf_textbook_subscription_item
+    ADD textbook_id BIGINT NULL COMMENT '教材id';
+ALTER TABLE wf_textbook_subscription
+    ADD subscription_method INT NULL COMMENT '征订方式(1:按班级征订 2:按教材征订)';
+
+ALTER TABLE `jianyue_data`   
+  CHANGE `source_id` `source_id` VARCHAR(100) NULL COMMENT '数据id';
+
+
+DROP TABLE IF EXISTS `teacher_award`;
+CREATE TABLE `teacher_award` (
+  `id` BIGINT NOT NULL COMMENT '主键编号',
+  `create_user_id` BIGINT DEFAULT NULL COMMENT '创建人',
+  `create_date` DATETIME DEFAULT NULL COMMENT '创建时间',
+  `modify_user_id` BIGINT DEFAULT NULL COMMENT '修改人',
+  `modify_date` DATETIME DEFAULT NULL COMMENT '修改时间',
+  `delete_mark` INT NOT NULL COMMENT '删除标记',
+  `enabled_mark` INT NOT NULL COMMENT '有效标志',
+  `sort_code` INT DEFAULT NULL COMMENT '序号',
+  `applicant_user_id` BIGINT DEFAULT NULL COMMENT '申请人',
+  `award_type` VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '获奖类型',
+  `award_level` VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '奖项级别',
+  `competition_name` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '奖项名称',
+  `award_grade` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '获奖等级',
+  `award_score` DECIMAL(6,2) DEFAULT NULL COMMENT '奖项分数',
+  `paper_name` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '作品名称',
+  `issn` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '国际标准刊号字',
+  `media_type` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '媒体类型(期刊、图书、报纸、音像、论文集)',
+  `journal_name` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '媒体名称',
+  `journal_number` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '国内统一刊号CN',
+  `journal_level` VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '期刊级别(核心期刊、一般期刊、(校级、内部论文))',
+  `issue_date` DATE DEFAULT NULL COMMENT '发表时间',
+  `approval_user_id` BIGINT DEFAULT NULL COMMENT '审核人',
+  `remark` VARCHAR(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
+  `file_id` BIGINT DEFAULT NULL COMMENT '附件文件id',
+  `status` INT NOT NULL DEFAULT '0' COMMENT '状态(1:结束 0:未结束)',
+  `teacher_award_item_id` BIGINT DEFAULT NULL COMMENT '奖项id(teacher_award_item)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='教师获奖登记';
+
+
+ALTER TABLE teacher_award
+    ADD whole_competition_name VARCHAR(256) NULL COMMENT '奖项名称全称';

+ 16 - 0
src/main/resources/sqlScript/20240618_sql.sql

@@ -0,0 +1,16 @@
+-- 给每个绑定考勤规则的用户增加考勤相关状态
+ALTER TABLE `attendance_user_relation`   
+  ADD COLUMN `attendance_status` VARCHAR(20) DEFAULT 0  NULL COMMENT '考勤状态' AFTER `attendance_rule_category_id`,
+  ADD COLUMN `attendance_time` DATETIME NULL   COMMENT '最新考勤时间' AFTER `attendance_status`;
+
+ALTER TABLE `attendance_user_relation`   
+  ADD COLUMN `attendance_mode` VARCHAR(20) DEFAULT 0  NULL COMMENT '考勤方式',
+  ADD COLUMN `car_number` VARCHAR(20) NULL COMMENT '车牌号' AFTER `attendance_mode`;
+
+
+ALTER TABLE wf_textbook_subscription_item
+    ADD instockroom_num INT DEFAULT 0 NULL COMMENT '当前征订任务征订项已经入库数量';
+ALTER TABLE wf_textbook_subscription_item
+    ADD alteration_type INT DEFAULT 0 NULL COMMENT '变更类型(0:未变更,1:变更征订数量,2:变更课程)';
+ALTER TABLE wf_textbook_subscription_item
+    CHANGE instockroom_num in_stockroom_num INT DEFAULT 0 NULL COMMENT '当前征订任务征订项已经入库数量';