# KPI综合管理系统 ```Project |—— api └── version1 └── empower |—— apirouter |—— initialization └── database └── nosql └── app └── route |identification |—— config └── configDatabase └── configNosql └── configAapp └── configJson |—— models |—— overall |—— middleware ``` ## Hr 文件结构说明 | 文件夹 | 说明 | 描述| |--------- |------ |-----| | `api` | api相关业务 | api业务实现 | | `--version1` | 业务版本文件夹 | 版本界定 | | `--empower` |OAuth 2.0 授权 |授权Token| | `apirouter` | 路由器 | 业务路由设定 | | `initialization` | 初始化相关业务 | 系统初始化方面的实现 | | `--database` | 数据库业务 | 数据库业务初始化实现 | | `--nosql` | nosql数据库业务 | nosql业务初始化实现(例:Redis) | | `--app` | app数据库业务 | app业务初始化实现 | | `--route` | 路由初始化 | 路由初始化 | | `identification` | 授权验证器 | 授权验证器 | | `config` | 系统配置相关业务 | 系统系统配置方面的实现 | | `--configDatabase` | 数据库业务 | 数据库业务系统配置实现 | | `--configNosql` | nosql数据库业务 | nosql业务系统配置实现(例:Redis) | | `--configAapp` | app系统业务 | app业务系统配置实现 | | `--configJson` | app JSON业务 | app业务系统配置实现 | | `models` | 数据模型 | 数据库方面的配置 | | `overall` | 全局对象 | 全局对象| | `middleware` | 中间件 | 中间件 | ## 加密规则 ``` 1、分解步骤 one = md5(CodeString)+md5(AppKey) two = md5(one)+AppKey therr = md5(two) 2、合并 md5(md5(md5(CodeString)+md5(AppKey))+AppKey) ``` ## 开发日志 ``` Time:2022-08-10 绩效考核数据库添加数据表 CREATE TABLE `depart_dime_post_weight` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `orgid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '行政组织', `postid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '岗位', `dimension` bigint(20) NOT NULL COMMENT '维度', `target` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标', `weight` bigint(6) unsigned NOT NULL DEFAULT '0' COMMENT '权重', `time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '时间', `type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '1:定性考核;2:定量考核', `hierarchy` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '1:维度;2:指标', PRIMARY KEY (`id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=424 DEFAULT CHARSET=utf8mb4 COMMENT='岗位考核指标权重'; 添加 model 文件 路径 models->modelskpi depart_dime_post_weight.go ``` ``` Time:2022-08-10 绩效考核数据库添加<指标、栏目、细则关联部门>数据表 CREATE TABLE `target_department` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `target_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标ID', `target_sun_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '子目标', `target_bylaws` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标细则', `type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '类型(1:指标;2:子目标)', `department_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '部门ID', `post_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '岗位ID', `report_person` longtext COMMENT '上报人', `state` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态(1:启用;2:禁用;3:删除)', `time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '写入时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='指标、栏目、细则关联部门'; 添加 model 文件 路径 models->modelskpi target_department.go ``` ``` Time:2022-08-12 指标部门、岗位上报人对照表 CREATE TABLE `target_report` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `target_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标ID', `target_sun_id` bigint(20) unsigned NOT NULL COMMENT '子目标', `target_bylaws` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标细则', `department_id` bigint(20) unsigned DEFAULT '0' COMMENT '部门ID', `post_id` bigint(20) unsigned DEFAULT '0' COMMENT '岗位ID', `type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '类型(1:公司级;2:部门级)', `state` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态(1:启用;2:禁用;3:删除)', `man_key` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '提报人ID', `time` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='指标、子栏目、细则部门、岗位上报人对照表'; ``` ``` Time:2022-08-16 创建子栏目关联指标视图 son_target_father select `qt`.`q_id` AS `q_id`,`qt`.`q_title` AS `q_title`,`qt`.`q_parent_id` AS `q_parent_id`,`qt`.`q_state` AS `q_state`,`qt`.`q_time` AS `q_time`,`qt`.`q_depart` AS `q_depart`,`et`.`et_title` AS `et_title`,`et`.`et_type` AS `et_type`,`et`.`et_dimension` AS `et_dimension`,`et`.`et_key` AS `et_key`,`et`.`et_unit` AS `et_unit`,`et`.`et_cycle` AS `et_cycle`,`et`.`et_cycleattr` AS `et_cycleattr`,`et`.`et_scoring_method` AS `et_scoring_method` from (`qualitative_target` `qt` left join `evaluationtarget` `et` on((`qt`.`q_parent_id` = `et`.`et_id`))) 创建用户与职务、岗位关联视图 user_post_duties (HR数据库) select `pc`.`mobilephone` AS `mobilephone`,`pc`.`gender` AS `gender`,`ps`.`name` AS `postname`,`ps`.`person_in_charge` AS `leading_cadre`,`ps`.`superior` AS `post_superior`,`ps`.`menu_permit` AS `menu_permit`,`ps`.`button_permit` AS `button_permit`,`pd`.`name` AS `duties_name`,`pa`.`id` AS `id`,`pa`.`number` AS `number`,`pa`.`name` AS `name`,`pa`.`icon` AS `icon`,`pa`.`company` AS `company`,`pa`.`maindeparment` AS `maindeparment`,`pa`.`admin_org` AS `admin_org`,`pa`.`position` AS `position`,`pa`.`job_id` AS `job_id`,`pa`.`job_leve` AS `job_leve`,`pa`.`wechat` AS `wechat`,`pa`.`work_wechat` AS `work_wechat`,`pa`.`is_admin` AS `is_admin`,`pa`.`key` AS `key`,`pa`.`role` AS `role`,`pa`.`password` AS `password`,`pa`.`sun_main_deparment` AS `sun_main_deparment`,`pa`.`teamid` AS `teamid` from (((`person_archives` `pa` join `personnel_content` `pc` on((`pa`.`key` = `pc`.`key`))) join `position` `ps` on((`pa`.`position` = `ps`.`id`))) join `duties` `pd` on((`pa`.`job_id` = `pd`.`id`))) ``` Time:2022-08-16
埋坑(1) 待以后编写相应模块 PS:该问题解决后删除此记录
``` F:\goobject\src\key_performance_indicators\api\version1\departmentseting\departmentpc\qualitativekpi.go 函数 DelSonTarget 文件 第 1138 行 预留判断该指标是否在使用中 ```