Просмотр исходного кода

人员档案人员看板sql注入修改

cyy 9 месяцев назад
Родитель
Сommit
57bbeba26e

+ 1 - 1
src/views/component/personnelFile/components/modulesTag.vue

@@ -255,7 +255,7 @@ export default {
                     }, 200)
                 }
             })
-            this.$common.request('sql', correlationSql(val.name, this.type === 'dialog' ? this.personID : this.userId)).then((result) => {
+            this.$common.request('query', correlationSql(val.name, this.type === 'dialog' ? this.personID : this.userId)).then((result) => {
                 this.$set(this.tagData[val.name], 'data', result.variables.data || [])
                 this.$set(this.tagData[val.name], 'config', correlationConfig[val.name])
             }).catch((err) => {

+ 1 - 1
src/views/component/personnelFile/components/publicList.vue

@@ -12,7 +12,7 @@
                 :data="nowData.filter((e,m) => Math.floor(m/10)===currentPage-1 )"
 
                 stripe
-                height="92%"
+                height="48vh"
                 highlight-current-row
                 style="width: 99.5%"
                 class="review-table blue-header tableCol"

+ 25 - 8
src/views/component/personnelFile/constants/simulated.js

@@ -420,7 +420,8 @@ export const data = '{"id":"","diDian":"1257660949100232704","shiFouGuoShen":"
 //     bmsm: 'bmsm'
 // }
 export function correlationSql (type, val) {
-    let sql = ``
+    const sql = ``
+    const parm = { key: '', params: [] }
     const col = {
         jyrykhjlb: 'bei_kao_he_ren_yu',
         lhrynlqr: 'bei_shou_quan_ren',
@@ -429,16 +430,32 @@ export function correlationSql (type, val) {
         kaoshijilu: 'examinee',
         tjbgb: 'xing_ming_'
     }
+    const colKey = {
+        jyrykhjlb: 'blrydakhtabcx',
+        lhrynlqr: 'blrydasqtabcx',
+        lhrypxjlb: 'blrydapxtabcx',
+        lhpxsqb: 'blrydwbpxtabcx',
+        kaoshijilu: 'blrydakstabcx',
+        tjbgb: 'blrydasjcx'
+    }
     if (type === 'jyrykhjlb' || type === 'lhrynlqr' || type === 'lhpxsqb') {
-        sql = `select * from t_${type} where FIND_IN_SET('${val}',${col[type]}) and shi_fou_guo_shen_ = '已完成' `
+        // sql = `select * from t_${type} where FIND_IN_SET('${val}',${col[type]}) and shi_fou_guo_shen_ = '已完成' `
+        parm.key = colKey[type]
+        parm.params = [val]
     } else if (type === 'kaoshijilu') {
-        sql = `select * from v_examination where FIND_IN_SET('${val}',${col[type]}) and paperState = '已完成' and examType!='自主考核' ORDER BY createTime asc`
+        parm.key = colKey[type]
+        parm.params = [val]
+        // sql = `select * from v_examination where FIND_IN_SET('${val}',${col[type]}) and paperState = '已完成' and examType!='自主考核' ORDER BY createTime asc`
     } else if (type === 'lhrypxjlb') {
-        sql = `select * from v_wodepeixun where FIND_IN_SET('${val}',${col[type]}) and shi_fou_guo_shen_ = '已结束' `
+        parm.key = colKey[type]
+        parm.params = [val]
+        // sql = `select * from v_wodepeixun where FIND_IN_SET('${val}',${col[type]}) and shi_fou_guo_shen_ = '已结束' `
     } else if (type === 'tjbgb') {
-        sql = `select * from t_${type} where FIND_IN_SET('${val}',${col[type]})`
+        // sql = `select * from t_${type} where FIND_IN_SET('${val}',${col[type]})`
+        parm.key = colKey[type]
+        parm.params = [val]
     }
-    return sql
+    return parm
 }
 export const correlationConfig = {
     jyrykhjlb: {
@@ -463,7 +480,7 @@ export const correlationConfig = {
     lhrynlqr: {
         config: [
             { label: '授权使用设备', width: '20%', type: 'dialog', field: 'shou_quan_shi_yon', dialogKey: 'sbwxdhk' },
-            { label: '授权岗位', width: '16%', type: 'dialog', field: 'shou_quan_gang_we', dialogKey: 'gwzzdhkrysqy' },
+            { label: '授权岗位', width: '16%', type: 'dialog', field: 'shou_quan_gang_we', dialogKey: 'gwxzdhk' },
             { label: '审核人', width: '10%', type: 'user', field: 'shen_he_ren_' },
             { label: '检验专业', width: '10%', type: 'text', field: 'jian_yan_zhuan_ye' },
             { label: '能力评估结果', width: '10%', type: 'text', field: 'kao_he_jie_guo_' },
@@ -473,7 +490,7 @@ export const correlationConfig = {
         ],
         dialog: [
             [{ name: '授权使用设备', field: 'shou_quan_shi_yon', type: 'dialog', dialogKey: 'sbwxdhk' }, { name: '能力评估结果', field: 'kao_he_jie_guo_', type: 'text' }],
-            [{ name: '授权岗位', field: 'shou_quan_gang_we', type: 'dialog', dialogKey: 'gwzzdhkrysqy' }, { name: '考核日期', field: 'kao_he_shi_jian_', type: 'text' }],
+            [{ name: '授权岗位', field: 'shou_quan_gang_we', type: 'dialog', dialogKey: 'gwxzdhk' }, { name: '考核日期', field: 'kao_he_shi_jian_', type: 'text' }],
             [{ name: '审核人', field: 'shen_he_ren_', type: 'user' }, { name: '检验专业', field: 'jian_yan_zhuan_ye', type: 'text' }],
             [{ name: '考核记录', field: 'xuan_ze_kao_he_ji', type: 'dialog', dialogKey: 'jyrykhdhkrysqy' }, { name: '是否合格', field: 'shi_fou_he_ge_', type: 'text' }],
             [{ name: '附件', field: 'shang_chuan_fu_ji', type: 'file' }],

+ 40 - 149
src/views/component/selectPositions.vue

@@ -1,7 +1,7 @@
 <template>
     <el-cascader
         ref="cascader"
-        v-model="selectDatas"
+        v-model="selection"
         :options="options"
         :props="props"
         collapse-tags
@@ -11,176 +11,67 @@
 </template>
 
 <script>
-import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
 import TreeUtils from '@/utils/tree'
 
 export default {
-    props:{
+    props: {
         filterGroup: {
             type: Boolean,
             default: false
         }
     },
     data () {
-        const { level, userId, userInfo } = this.$store.getters
+        const { level } = this.$store.getters
         return {
             level,
-            userId,
-            userInfo,
             props: {
                 children: 'children',
-                label: 'NAME_',
-                value: 'ID_',
+                label: 'positionName',
+                value: 'positionId',
                 multiple: false,
                 expandTrigger: 'hover',
-                checkStrictly: true
+                checkStrictly: true,
+                emitPath: false
             },
-            sqlDatas: [],
             options: [],
-            selectDatas: [],
-            iniselectDatas: []
+            selection: '',
+            selectionDept: {},
+            filterDept: []
         }
     },
     watch: {
-        selectDatas (v) {
-            if (v.length == 0) {
-                this.selectDatas = this.iniselectDatas
-                this.$emit('handleFunc', this.iniselectDatas)
-            } else {
-                this.$emit('handleFunc', { v, i: this.sqlDatas })
+        selection (val) {
+            if (!val) {
+                return
             }
+            this.$emit('handleFunc', { selection: this.selection, selectionDept: this.selectionDept, filterDept: this.filterDept })
         }
     },
     mounted () {
         this.getPositionList()
     },
     methods: {
-    // 获取本账户所在的部门
+        // 获取本账户所在的部门
         getPositionList () {
-            let positonsSql = ''
-            // 金通账号id
-            //   if (this.userId == "702117247933480960") {
-            //     positonsSql = `select * FROM ibps_party_entity WHERE party_type_ = 'position'
-            //             AND (
-            //             DEPTH_ IN (1,2) OR (
-            //             (DEPTH_=3 AND NAME_ = '检验科') OR  parent_id_ IN (SELECT id_ FROM ibps_party_entity WHERE DEPTH_=3 AND NAME_ = '检验科'  )  )
-            //             )`;
-            //   } else {
-            //     // 所属医院的系统管理员
-            //     let isAdmin = this.userInfo.role.some((so) => {
-            //       return so.name == "系统管理角色";
-            //     });
-            //     if (isAdmin) {
-            //       positonsSql = `select * from ibps_party_entity where party_type_ = 'position' and PATH_ like '%${this.level.first}%'
-            //       AND (
-            //             DEPTH_ IN (1,2) OR (
-            //             (DEPTH_=3 AND NAME_ = '检验科') OR  parent_id_ IN (SELECT id_ FROM ibps_party_entity WHERE DEPTH_=3 AND NAME_ = '检验科'  )  )
-            //             )`;
-            //     } else {
-            //       let allPositions = [];
-            //       for (var i of this.userInfo.positions) {
-            //         for (var item of i.path.split(".")) {
-            //           if (item !== "") {
-            //             allPositions.push(`id_ like '%${item}%'`);
-            //           }
-            //         }
-            //       }
-            //       allPositions = [...new Set(allPositions)];
-            //       // 如果是单纯的是普通账户登录,就只显示所属部门的信息
-            //       positonsSql = `select * from ibps_party_entity where ${allPositions.join(
-            //         " or "
-            //       )}`;
-            //     }
-            //   }
-            // 所属医院的系统管理员
-            const isAdmin = this.userInfo.role.some((so) => {
-                return so.name == '系统管理角色'
-            })
-            //   if (isAdmin) {
-            //     positonsSql = `select * from ibps_party_entity where party_type_ = 'position' and PATH_ like '%${this.level.first}%'
-            //       AND (
-            //             DEPTH_ not  IN (1,2) OR (
-            //             (DEPTH_=3 AND NAME_ = '检验科') OR  parent_id_ IN (SELECT id_ FROM ibps_party_entity WHERE DEPTH_=3 AND NAME_ = '检验科'  )  )
-            //             )`;
-            //   } else {
-            //     let allPositions = [];
-            //     for (var i of this.userInfo.positions) {
-            //       for (var item of i.path.split(".")) {
-            //         if (item !== "") {
-            //           allPositions.push(`id_ like '%${item}%'`);
-            //         }
-            //       }
-            //     }
-            //     allPositions = [...new Set(allPositions)];
-            //     // 如果是单纯的是普通账户登录,就只显示所属部门的信息
-            //     positonsSql = `select * from ibps_party_entity where (${allPositions.join(
-            //       " or "
-            //     )}) and DEPTH_ not  IN (1,2)`;
-            //   }
-            positonsSql = `select * from ibps_party_entity where party_type_ = 'position' and PATH_ like '%${this.level.first}%' 
-          AND (
-                DEPTH_ not  IN (1,2) OR (
-                (DEPTH_=3 AND NAME_ = '检验科') OR  parent_id_ IN (SELECT id_ FROM ibps_party_entity WHERE DEPTH_=3 AND NAME_ = '检验科'  )  )
-                )`
-            curdPost('sql', positonsSql).then((res) => {
-                if (res.state === 200) {
-                    let datas = res.variables.data
-                    this.sqlDatas = datas
-                    const positionsValue = []
-                    if (datas.length > 0) {
-                        if(this.filterGroup){
-                            datas = datas.filter(fil => {
-                                console.log(datas)
-                                return fil.ID_!=="1166373874003083264" && fil.NAME_.indexOf('综合')==-1
-                            })
-                        }
-                        
-                        this.options = this.toTree(datas)
-                        // for (var i of this.options) {
-                        //   //   if (i.children !== undefined) {
-                        //   //   }
-                        //   const getTail = (item) =>
-                        //     item.children && item.children.length > 0
-                        //       ? item.children.map((m) => getTail(m))
-                        //       : [item];
-                        //   let result = _.flattenDeep(i.children.map((m) => getTail(m)));
-                        //   console.log('result', result)
-
-                        //   for (var item of result) {
-                        //     let itemArr = item.PATH_.split(".");
-                        //     // console.log('itemArr', itemArr)
-
-                        //     itemArr.splice(itemArr.length - 1, 1);
-                        //     positionsValue.push(itemArr);
-                        //   }
-                        // }
-                        for (var i of datas) {
-                            console.log(i,datas)
-                            
-                            const itemArr = i.PATH_.split('.')
-                            // 先删除前面部门的数据,比如:"xxx医院/院本部/检验科.....",只保留"检验科....."
-                            itemArr.splice(0, 2)
-                            itemArr.splice(itemArr.length - 1, 1)
-                            if(this.filterGroup&&(i.ID_==="1166373874003083264"||i.NAME_.indexOf('综合')!=-1)){
-                                
-                            }else{
-                                positionsValue.push(itemArr)
-                            }
-                            
-                        }
-                        // this.selectDatas = positionsValue;
-                        this.selectDatas = positionsValue.slice(0, 2).map(item => item[item.length - 1])
-                        if (this.iniselectDatas.length == 0) {
-                            this.iniselectDatas = positionsValue
-                        }
-                    }
-                }
-            })
+            // 直接获取store部门数据,无需调用接口
+            // this.$common.request('query', {
+            //     key: 'empManageBoard0',
+            //     params: [this.level.first]
+            // }).then(({ state, variables: { data } }) => {
+            const { deptList = [], mainPosition, position } = this.$store.getters || {}
+            const mainPos = mainPosition ? mainPosition.id : position.split(',')[0]
+            this.selection = mainPos
+            this.selectionDept = deptList.find(i => i.positionId === mainPos)
+            const deptEntity = deptList.filter(i => i.depth >= 3)
+            const filterLetter = ['综合', '质量', '科研', '教学', '医疗', '样品', '助理', '急诊']
+            this.filterDept = this.filterGroup ? deptEntity.filter(d => !filterLetter.some(i => d.positionName.includes(i))) : deptEntity
+            this.options = this.toTree(this.filterDept)
+            console.log(mainPosition, position, 'this.optionsthis.options')
         },
         toTree (data) {
             return TreeUtils.transformToTreeFormat(data, {
-                idKey: 'ID_',
-                pIdKey: 'PARENT_ID_',
+                idKey: 'positionId',
+                pIdKey: 'parentId',
                 childrenKey: 'children'
             })
         }
@@ -188,13 +79,13 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-/deep/ .el-tag--info {
-  color: #fcfcfc;
-  background-color: #00083e;
-}
-/deep/.el-input__inner {
-  background-color: #00083e;
-  border: 1px solid #4ea5d6;
-  color: #fff;
-}
+    /deep/ .el-tag--info {
+    color: #fcfcfc;
+    background-color: #00083e;
+    }
+    /deep/.el-input__inner {
+    background-color: #00083e;
+    border: 1px solid #4ea5d6;
+    color: #fff;
+    }
 </style>

Разница между файлами не показана из-за своего большого размера
+ 512 - 449
src/views/peopleManages/taskStatistics/index copy.vue


+ 139 - 211
src/views/peopleManages/taskStatistics/index.vue

@@ -900,33 +900,6 @@ export default {
     },
     methods: {
         changeDate (value) {
-            // const year = value[1].getFullYear()
-            // const month = value[1].getMonth() + 1
-            // // 这里传入的是整数时间,返回的是下个月的第一天,因为月份是0-11
-            // const nextMonthFirthDay = new Date(year, month, 1) // 下个月的第一天
-            // const oneDay = 1000 * 60 * 60 * 24 // 一天的时间毫秒数
-            // const endDay = new Date(nextMonthFirthDay - oneDay)
-            // const day = endDay.getDate() // 本月最后一天
-            // this.endDate =
-            //     value[1].getFullYear() +
-            //     '-' +
-            //     (value[1].getMonth() + 1 > 9
-            //         ? value[1].getMonth() + 1
-            //         : '0' + (value[1].getMonth() + 1)) +
-            //     '-' +
-            //     (day > 9 ? day : '0' + day) +
-            //     ' 23:59:59'
-            // this.startDate =
-            //     value[0].getFullYear() +
-            //     '-' +
-            //     (value[0].getMonth() + 1 > 9
-            //         ? value[0].getMonth() + 1
-            //         : '0' + (value[0].getMonth() + 1)) +
-            //     '-' +
-            //     (value[0].getDate() > 9
-            //         ? value[0].getDate()
-            //         : '0' + value[0].getDate()) +
-            //     ' 00:00:00'
             if (value && value.length) {
                 this.startDate = value[0]
                 this.endDate = value[1]
@@ -945,20 +918,12 @@ export default {
                 this.otherPositions.length !== 0
                     ? `(${this.otherPositions.join(' or ')} )`
                     : `ee.positions_ = '没有选择部门'`
-            //         const sql = `select a.id_,a.parent_id_,ee.name_,a.zui_gao_xue_li_x_,a.zhi_cheng_deng_ji,ee.jian_ding_zi_ge_z,a.ren_zhi_shi_jian_,
-            //   a.ru_zhi_shi_jian_ from  t_ryjbqk as a join  ibps_party_employee as ee on a.parent_id_= ee.id_ where a.id_ !='861622496187645952' and ee.positions_ like '%${first}%'`
+
             // const sql = `select
-            //                 a.id_,
-            //                 a.parent_id_,
             //                 ee.name_,
-            //                 a.zui_gao_xue_li_x_,
-            //                 a.zhi_cheng_deng_ji,
-            //                 ee.jian_ding_zi_ge_z,
-            //                 a.ren_zhi_shi_jian_,
-            //                 a.ru_zhi_shi_jian_
+            //                 ee.jian_ding_zi_ge_z
             //             FROM
-            //                 t_ryjbqk AS a
-            //                 JOIN (
+            //             (
             //                 SELECT
             //                     e.*
             //                 FROM
@@ -968,35 +933,14 @@ export default {
             //                     en.PATH_ LIKE '%${this.depth3}%'
             //                 GROUP BY
             //                     e.id_
-            //                 ) AS ee ON a.parent_id_ = ee.id_
+            //                 ) ee
             //             WHERE
-            //                 a.id_ != '861622496187645952'
-            //                 AND ee.name_ NOT LIKE '%系统%'
+            //             ee.name_ NOT LIKE '%系统%'
+            //                 AND ee.STATUS_ = 'actived'
             //                 AND ee.name_ NOT LIKE '%金通%'
             //                 AND ee.name_ NOT LIKE '%管理%'
-            //                 AND ee.id_ != '702117247933480960' `
-            const sql = `select
-                            ee.name_,
-                            ee.jian_ding_zi_ge_z
-                        FROM
-                        (
-                            SELECT
-                                e.* 
-                            FROM
-                                ibps_party_employee e
-                                JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0 
-                            WHERE
-                                en.PATH_ LIKE '%${this.depth3}%' 
-                            GROUP BY
-                                e.id_ 
-                            ) ee
-                        WHERE
-                        ee.name_ NOT LIKE '%系统%' 
-                            AND ee.STATUS_ = 'actived'
-                            AND ee.name_ NOT LIKE '%金通%' 
-                            AND ee.name_ NOT LIKE '%管理%' 
-                            AND ee.id_ != '702117247933480960'`
-            await curdPost('sql', sql).then((res) => {
+            //                 AND ee.id_ != '702117247933480960'`
+            await curdPost('query', { key: 'ryglkbrscx', params: [this.depth3] }).then((res) => {
                 data = res.variables.data
             })
             console.log(data, 'aaaaaa')
@@ -1025,69 +969,47 @@ export default {
                 this.otherPositions.length !== 0
                     ? `(${this.otherPositions.join(' or ')} )`
                     : `ee.positions_ = '没有选择部门'`
-            // const sql = `select
-            //     sum(a.zui_gao_xue_li_x_ like '%博士%') as boShi,
-            //     sum(a.zui_gao_xue_li_x_ like '%硕士%') as shuoShi,
-            //     sum(a.zui_gao_xue_li_x_ = '本科') as benKe,
-            //     sum(a.zui_gao_xue_li_x_ = '大专') as daZhuan,
-            //     sum(a.zhi_cheng_deng_ji = '初级') as chuJi,
-            //     sum(a.zhi_cheng_deng_ji = '中级') as zhongJi,
-            //     sum(a.zhi_cheng_deng_ji = '高级') as gaoJi,
-            //     sum(a.zhi_cheng_deng_ji = '副高') as fuGao,
-            //     sum(a.zhi_cheng_deng_ji = '' || a.zhi_cheng_deng_ji is null) as other
-            //     from t_ryjbqk as a join  ibps_party_employee as ee on a.parent_id_= ee.id_ where  ${positionsWhere}`
-            // const sql = `select
-            //     sum(a.zui_gao_xue_li_x_ like '%博士%') as boShi,
-            //     sum(a.zui_gao_xue_li_x_ like '%硕士%') as shuoShi,
-            //     sum(a.zui_gao_xue_li_x_ = '本科') as benKe,
-            //     sum(a.zui_gao_xue_li_x_ = '大专') as daZhuan,
-            //     sum(a.zhi_cheng_deng_ji = '初级') as chuJi,
-            //     sum(a.zhi_cheng_deng_ji = '中级') as zhongJi,
-            //     sum(a.zhi_cheng_deng_ji = '高级') as gaoJi,
-            //     sum(a.zhi_cheng_deng_ji = '副高') as fuGao,
-            //     sum(a.zhi_cheng_deng_ji = '' || a.zhi_cheng_deng_ji is null) as other
-            //     from t_ryjbqk as a join  ibps_party_employee as ee on a.parent_id_= ee.id_ join ibps_party_entity en on FIND_IN_SET(en.id_, ee.POSITIONS_) > 0  where en.PATH_ like '%${this.depth3}%'`
+
             const a = 'SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7'
             let sqlparty = `SELECT 1 AS n`
             this.$store.getters.deptList.forEach((it, i) => {
                 sqlparty += ` UNION ALL SELECT ${i + 2} `
             })
-            const sql = `select
-                            ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
-                            IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao 
-                        FROM
-                            t_ryjbqk 
-                        WHERE
-                            parent_id_ IN (
-                        select
-                            ee.id_ as bid
-                        FROM
-                        (
-                            SELECT
-                                e.*
-                            FROM
-                                ibps_party_employee e
-                                JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0 
-                            WHERE
-                                en.PATH_ LIKE '%${this.depth3}%' 
-                            GROUP BY
-                                e.id_ 
-                            ) ee
-                        WHERE
-                        ee.name_ NOT LIKE '%系统%' 
-                            AND ee.STATUS_ = 'actived'
-                            AND ee.name_ NOT LIKE '%金通%' 
-                            AND ee.name_ NOT LIKE '%管理%' 
-                            AND ee.id_ != '702117247933480960')`
-
-            await curdPost('sql', sql).then((res) => {
+            // const sql = `select
+            //                 ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao
+            //             FROM
+            //                 t_ryjbqk
+            //             WHERE
+            //                 parent_id_ IN (
+            //             select
+            //                 ee.id_ as bid
+            //             FROM
+            //             (
+            //                 SELECT
+            //                     e.*
+            //                 FROM
+            //                     ibps_party_employee e
+            //                     JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0
+            //                 WHERE
+            //                     en.PATH_ LIKE '%${this.depth3}%'
+            //                 GROUP BY
+            //                     e.id_
+            //                 ) ee
+            //             WHERE
+            //             ee.name_ NOT LIKE '%系统%'
+            //                 AND ee.STATUS_ = 'actived'
+            //                 AND ee.name_ NOT LIKE '%金通%'
+            //                 AND ee.name_ NOT LIKE '%管理%'
+            //                 AND ee.id_ != '702117247933480960')`
+            await curdPost('query', { key: 'ryglkbbtsjcx', params: [this.depth3] }).then((res) => {
                 data = res.variables.data
             })
             if (data.length === 0 || data[0] == null) {
@@ -1136,87 +1058,86 @@ export default {
                 sqlparty += ` UNION ALL SELECT ${i + 2} `
             })
 
-            const sql = `select
-                            jh.enName,
-                            IFNULL( jh.boShi, 0 ) AS boShi,
-                            IFNULL( jh.shuoShi, 0 ) AS shuoShi,
-                            IFNULL( jh.benKe, 0 ) AS benKe,
-                            IFNULL( jh.daZhuan, 0 ) AS daZhuan,
-                            IFNULL( jh.chuJi, 0 ) AS chuJi,
-                            IFNULL( jh.zhongJi, 0 ) AS zhongJi,
-                            IFNULL( jh.gaoJi, 0 ) AS gaoJi,
-                            IFNULL( jh.fuGao, 0 ) AS fuGao 
-                        FROM
-                            (
-                            SELECT
-                                en.id_,
-                                en.name_ AS enName,
-                                sum( gy.zui_gao_xue_li_x_ LIKE '%博士%' ) AS boShi,
-                                sum( gy.zui_gao_xue_li_x_ LIKE '%硕士%' ) AS shuoShi,
-                                sum( gy.zui_gao_xue_li_x_ = '本科' ) AS benKe,
-                                sum( gy.zui_gao_xue_li_x_ = '大专' ) AS daZhuan,
-                                sum( gy.zhi_cheng_deng_ji = '初级' ) AS chuJi,
-                                sum( gy.zhi_cheng_deng_ji = '中级' ) AS zhongJi,
-                                sum( gy.zhi_cheng_deng_ji = '高级' ) AS gaoJi,
-                                sum( gy.zhi_cheng_deng_ji = '副高' ) AS fuGao 
-                            FROM
-                                (
-                                SELECT
-                                    ee.id_ AS eeID,
-                                    ee.name_ AS eeName,
-                                    ee.positions_,
-                                    ry.zui_gao_xue_li_x_,
-                                    ry.zhi_cheng_deng_ji 
-                                FROM
-                                    t_ryjbqk AS ry
-                                    JOIN ibps_party_employee AS ee ON ry.parent_id_ = ee.id_ where ee.name_ not like '%系统%' AND ee.STATUS_ = 'actived' and ee.name_ not like '%金通%' and ee.name_ not like '%管理%' and ee.id_ != '702117247933480960'
-                                ) gy
-                                RIGHT JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, gy.positions_ ) 
-                            WHERE
-                                en.DEPTH_ LIKE '%4%' 
-                                AND en.PARENT_ID_ LIKE '%${this.depth3}%' 
-                                AND en.id_ != '1166373874003083264' 
-                                AND en.name_ NOT LIKE '%综合%' 
-                            GROUP BY
-                                en.id_ 
-                            ) jh UNION
-                        SELECT
-                            ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
-                            IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao 
-                        FROM
-                            t_ryjbqk 
-                        WHERE
-                            parent_id_ IN (
-						select
-                            ee.id_ as bid
-                        FROM
-                        (
-                            SELECT
-                                e.*
-                            FROM
-                                ibps_party_employee e
-                                JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0 
-                            WHERE
-                                en.PATH_ LIKE '%${this.depth3}%' 
-                            GROUP BY
-                                e.id_ 
-                            ) ee
-                        WHERE
-                            ee.name_ NOT LIKE '%系统%' 
-                            AND ee.STATUS_ = 'actived'
-                            AND ee.name_ NOT LIKE '%金通%' 
-                            AND ee.name_ NOT LIKE '%管理%' 
-                            AND ee.id_ != '702117247933480960'
-														)`
-
-            await curdPost('sql', sql).then((res) => {
+            // const sql = `select
+            //                 jh.enName,
+            //                 IFNULL( jh.boShi, 0 ) AS boShi,
+            //                 IFNULL( jh.shuoShi, 0 ) AS shuoShi,
+            //                 IFNULL( jh.benKe, 0 ) AS benKe,
+            //                 IFNULL( jh.daZhuan, 0 ) AS daZhuan,
+            //                 IFNULL( jh.chuJi, 0 ) AS chuJi,
+            //                 IFNULL( jh.zhongJi, 0 ) AS zhongJi,
+            //                 IFNULL( jh.gaoJi, 0 ) AS gaoJi,
+            //                 IFNULL( jh.fuGao, 0 ) AS fuGao
+            //             FROM
+            //                 (
+            //                 SELECT
+            //                     en.id_,
+            //                     en.name_ AS enName,
+            //                     sum( gy.zui_gao_xue_li_x_ LIKE '%博士%' ) AS boShi,
+            //                     sum( gy.zui_gao_xue_li_x_ LIKE '%硕士%' ) AS shuoShi,
+            //                     sum( gy.zui_gao_xue_li_x_ = '本科' ) AS benKe,
+            //                     sum( gy.zui_gao_xue_li_x_ = '大专' ) AS daZhuan,
+            //                     sum( gy.zhi_cheng_deng_ji = '初级' ) AS chuJi,
+            //                     sum( gy.zhi_cheng_deng_ji = '中级' ) AS zhongJi,
+            //                     sum( gy.zhi_cheng_deng_ji = '高级' ) AS gaoJi,
+            //                     sum( gy.zhi_cheng_deng_ji = '副高' ) AS fuGao
+            //                 FROM
+            //                     (
+            //                     SELECT
+            //                         ee.id_ AS eeID,
+            //                         ee.name_ AS eeName,
+            //                         ee.positions_,
+            //                         ry.zui_gao_xue_li_x_,
+            //                         ry.zhi_cheng_deng_ji
+            //                     FROM
+            //                         t_ryjbqk AS ry
+            //                         JOIN ibps_party_employee AS ee ON ry.parent_id_ = ee.id_ where ee.name_ not like '%系统%' AND ee.STATUS_ = 'actived' and ee.name_ not like '%金通%' and ee.name_ not like '%管理%' and ee.id_ != '702117247933480960'
+            //                     ) gy
+            //                     RIGHT JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, gy.positions_ )
+            //                 WHERE
+            //                     en.DEPTH_ LIKE '%4%'
+            //                     AND en.PARENT_ID_ LIKE '%${this.depth3}%'
+            //                     AND en.id_ != '1166373874003083264'
+            //                     AND en.name_ NOT LIKE '%综合%'
+            //                 GROUP BY
+            //                     en.id_
+            //                 ) jh UNION
+            //             SELECT
+            //                 ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao
+            //             FROM
+            //                 t_ryjbqk
+            //             WHERE
+            //                 parent_id_ IN (
+            // 			select
+            //                 ee.id_ as bid
+            //             FROM
+            //             (
+            //                 SELECT
+            //                     e.*
+            //                 FROM
+            //                     ibps_party_employee e
+            //                     JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0
+            //                 WHERE
+            //                     en.PATH_ LIKE '%${this.depth3}%'
+            //                 GROUP BY
+            //                     e.id_
+            //                 ) ee
+            //             WHERE
+            //                 ee.name_ NOT LIKE '%系统%'
+            //                 AND ee.STATUS_ = 'actived'
+            //                 AND ee.name_ NOT LIKE '%金通%'
+            //                 AND ee.name_ NOT LIKE '%管理%'
+            //                 AND ee.id_ != '702117247933480960'
+            // 											)`
+            await curdPost('query', { key: 'ryglkbfzzztsjcx', params: [this.depth3] }).then((res) => {
                 const data = res.variables.data
                 // 组装数据集,以学历职称为列,以部门为行:{" 大专":['1','2','3']}
                 const degreeSeriesDatas = this.PositionsDegreeOption.series
@@ -1322,9 +1243,12 @@ export default {
             if (this.positionsIdArr.length) {
                 const users = this.getPositionPeopleIds(this.positionsIdArr[0])
                 const userIds = users.map(user => user.userId)
-                const renyuan = userIds.map(i => `'${i}'`).join(',') !== '' ? `and examinee in (${userIds.map(i => `'${i}'`).join(',')})` : ''
+                const renyuan = userIds.map(i => `'${i}'`).join(',') !== '' ? `and examinee in (${userIds.map(i => `${i}`).join(',')})` : ''
                 const sql = `select * from v_examination where paperState = '已完成' and examType!='自主考核' ${renyuan} GROUP BY examinee,examId ORDER BY createTime asc `
-                let { variables: { data }} = await this.$common.request('sql', sql)
+                const parm1 = { key: 'ryglkbkswrytjsjcx', params: [null] }
+                const parm2 = { key: 'ryglkbksyrytjsjcx', params: [userIds.map(i => `${i}`).join(',')] }
+                const parm = userIds.map(i => `'${i}'`).join(',') !== '' ? parm2 : parm1
+                let { variables: { data }} = await this.$common.request('query', parm)
                 if (this.startDate && this.endDate) {
                     data = data.filter(item => {
                         return new Date(item.startDate).getTime() >= new Date(this.startDate).getTime() && new Date(item.startDate).getTime() <= new Date(this.endDate).getTime()
@@ -1380,15 +1304,19 @@ export default {
             this.optionTrainingStatisticsConfig.series[2].data = dArr.map(item => item.participationRate)
         },
         handleFunc (e) {
-            this.depth3 = e.v[0]
-            this.sqlPositionsDatasIni = e.i
-            this.positionIni = e.v
-            this.simplifyPosition(e.v)
+            // console.log(e, 'eeeeeeeeee')
+            const { selection, selectionDept, filterDept } = e
+            this.depth3 = filterDept.filter(i => i.depth === 3)[0].positionId
+            this.sqlPositionsDatasIni = filterDept
+            const arr = selectionDept.path.split('.')
+            const selArr = selectionDept.depth === 4 ? [arr[arr.length - 2], arr[arr.length - 1]] : [arr[arr.length - 1]]
+            this.positionIni = selArr
+            this.simplifyPosition(selArr)
             this.handleAllGetFunc()
             // clearInterval(this.interval)
             // this.intervalHandle()
-            if (e.v.length >= 2) {
-                this.positionsIdArr = [e.v[1]]
+            if (selArr.length >= 2) {
+                this.positionsIdArr = selection
             }
             this.getTrainingStatisticsData()
             this.getExamStatisticsData()

+ 214 - 218
src/views/peopleManages/taskStatistics/indexDaFang.vue

@@ -1016,6 +1016,14 @@ export default {
             },
             deep: true,
             immediate: true
+        },
+        optionZSB: {
+            handler (newVal, oldVal) {
+                this.zsInfoData()
+                this.zsInfoDataPos()
+            },
+            deep: true,
+            immediate: true
         }
     },
     created () {
@@ -1183,28 +1191,28 @@ export default {
             //                 AND ee.name_ NOT LIKE '%金通%'
             //                 AND ee.name_ NOT LIKE '%管理%'
             //                 AND ee.id_ != '702117247933480960' `
-            const sql = `select
-                            ee.name_,
-                            ee.jian_ding_zi_ge_z
-                        FROM
-                        (
-                            SELECT
-                                e.* 
-                            FROM
-                                ibps_party_employee e
-                                JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0 
-                            WHERE
-                                en.PATH_ LIKE '%${this.depth3}%' 
-                            GROUP BY
-                                e.id_ 
-                            ) ee
-                        WHERE
-                        ee.name_ NOT LIKE '%系统%' 
-                            AND ee.STATUS_ = 'actived'
-                            AND ee.name_ NOT LIKE '%金通%' 
-                            AND ee.name_ NOT LIKE '%管理%'
-                            AND ee.id_ != '702117247933480960'`
-            await curdPost('sql', sql).then((res) => {
+            // const sql = `select
+            //                 ee.name_,
+            //                 ee.jian_ding_zi_ge_z
+            //             FROM
+            //             (
+            //                 SELECT
+            //                     e.*
+            //                 FROM
+            //                     ibps_party_employee e
+            //                     JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0
+            //                 WHERE
+            //                     en.PATH_ LIKE '%${this.depth3}%'
+            //                 GROUP BY
+            //                     e.id_
+            //                 ) ee
+            //             WHERE
+            //             ee.name_ NOT LIKE '%系统%'
+            //                 AND ee.STATUS_ = 'actived'
+            //                 AND ee.name_ NOT LIKE '%金通%'
+            //                 AND ee.name_ NOT LIKE '%管理%'
+            //                 AND ee.id_ != '702117247933480960'`
+            await curdPost('query', { key: 'ryglkbrscx', params: [this.depth3] }).then((res) => {
                 data = res.variables.data
             })
             this.employeeNum = data.length
@@ -1259,52 +1267,52 @@ export default {
             this.$store.getters.deptList.forEach((it, i) => {
                 sqlparty += ` UNION ALL SELECT ${i + 2} `
             })
-            const sql = `select
-                            ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
-                            IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao 
-                        FROM
-                            t_ryjbqk 
-                        WHERE
-                            parent_id_ IN (
-                            SELECT
-                                b.id_ AS bid 
-                            FROM
-                                (
-                                SELECT
-                                    a.* 
-                                FROM
-                                    (
-                                    SELECT
-                                        id_,
-                                        name_,
-                                        TRIM(
-                                        SUBSTRING_INDEX( SUBSTRING_INDEX( positions_, ',', n ), ',', - 1 )) AS positions_ 
-                                    FROM
-                                        ibps_party_employee
-                                        JOIN (${this.$store.getters.deptList.length > 2 ? sqlparty : a}) AS numbers 
-                                    WHERE
-                                        LENGTH( positions_ ) - LENGTH(
-                                        REPLACE ( positions_, ',', '' )) >= n - 1 
-                                        and name_ not like '%系统%'
-                                        and name_ not like '%金通%'
-                                        and name_ not like '%管理%'
-                                        AND STATUS_ = 'actived'
-                                        and id_ != '702117247933480960'
-                                    ) a 
-                                GROUP BY
-                                    name_ 
-                                ) b 
-                        WHERE
-                            b.positions_ IN ( SELECT id_ FROM ibps_party_entity WHERE path_ LIKE '%${this.first}%' AND party_type_ = 'position' ))`
+            // const sql = `select
+            //                 ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao
+            //             FROM
+            //                 t_ryjbqk
+            //             WHERE
+            //                 parent_id_ IN (
+            //                 SELECT
+            //                     b.id_ AS bid
+            //                 FROM
+            //                     (
+            //                     SELECT
+            //                         a.*
+            //                     FROM
+            //                         (
+            //                         SELECT
+            //                             id_,
+            //                             name_,
+            //                             TRIM(
+            //                             SUBSTRING_INDEX( SUBSTRING_INDEX( positions_, ',', n ), ',', - 1 )) AS positions_
+            //                         FROM
+            //                             ibps_party_employee
+            //                             JOIN (${this.$store.getters.deptList.length > 2 ? sqlparty : a}) AS numbers
+            //                         WHERE
+            //                             LENGTH( positions_ ) - LENGTH(
+            //                             REPLACE ( positions_, ',', '' )) >= n - 1
+            //                             and name_ not like '%系统%'
+            //                             and name_ not like '%金通%'
+            //                             and name_ not like '%管理%'
+            //                             AND STATUS_ = 'actived'
+            //                             and id_ != '702117247933480960'
+            //                         ) a
+            //                     GROUP BY
+            //                         name_
+            //                     ) b
+            //             WHERE
+            //                 b.positions_ IN ( SELECT id_ FROM ibps_party_entity WHERE path_ LIKE '%${this.first}%' AND party_type_ = 'position' ))`
 
-            await curdPost('sql', sql).then((res) => {
+            await curdPost('query', { key: 'ryglkbbtsjcx', params: [this.depth3] }).then((res) => {
                 data = res.variables.data
             })
             if (data.length === 0 || data[0] == null) {
@@ -1353,96 +1361,96 @@ export default {
                 sqlparty += ` UNION ALL SELECT ${i + 2} `
             })
 
-            const sql = `select
-                            jh.enName,
-                            IFNULL( jh.boShi, 0 ) AS boShi,
-                            IFNULL( jh.shuoShi, 0 ) AS shuoShi,
-                            IFNULL( jh.benKe, 0 ) AS benKe,
-                            IFNULL( jh.daZhuan, 0 ) AS daZhuan,
-                            IFNULL( jh.chuJi, 0 ) AS chuJi,
-                            IFNULL( jh.zhongJi, 0 ) AS zhongJi,
-                            IFNULL( jh.gaoJi, 0 ) AS gaoJi,
-                            IFNULL( jh.fuGao, 0 ) AS fuGao 
-                        FROM
-                            (
-                            SELECT
-                                en.id_,
-                                en.name_ AS enName,
-                                sum( gy.zui_gao_xue_li_x_ LIKE '%博士%' ) AS boShi,
-                                sum( gy.zui_gao_xue_li_x_ LIKE '%硕士%' ) AS shuoShi,
-                                sum( gy.zui_gao_xue_li_x_ = '本科' ) AS benKe,
-                                sum( gy.zui_gao_xue_li_x_ = '大专' ) AS daZhuan,
-                                sum( gy.zhi_cheng_deng_ji = '初级' ) AS chuJi,
-                                sum( gy.zhi_cheng_deng_ji = '中级' ) AS zhongJi,
-                                sum( gy.zhi_cheng_deng_ji = '高级' ) AS gaoJi,
-                                sum( gy.zhi_cheng_deng_ji = '副高' ) AS fuGao 
-                            FROM
-                                (
-                                SELECT
-                                    ee.id_ AS eeID,
-                                    ee.name_ AS eeName,
-                                    ee.positions_,
-                                    ry.zui_gao_xue_li_x_,
-                                    ry.zhi_cheng_deng_ji 
-                                FROM
-                                    t_ryjbqk AS ry
-                                    JOIN ibps_party_employee AS ee ON ry.parent_id_ = ee.id_ where ee.name_ not like '%系统%' AND ee.STATUS_ = 'actived' and ee.name_ not like '%金通%' and ee.name_ not like '%管理%' and ee.id_ != '702117247933480960'
-                                ) gy
-                                RIGHT JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, gy.positions_ ) 
-                            WHERE
-                                en.DEPTH_ LIKE '%4%' 
-                                AND en.PARENT_ID_ LIKE '%${this.depth3}%' 
-                                AND en.id_ != '1166373874003083264' 
-                                AND en.name_ NOT LIKE '%综合%' 
-                            GROUP BY
-                                en.id_ 
-                            ) jh UNION
-                        SELECT
-                            ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
-                            IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
-                            IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
-                            IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao 
-                        FROM
-                            t_ryjbqk 
-                        WHERE
-                            parent_id_ IN (
-                            SELECT
-                                b.id_ AS bid 
-                            FROM
-                                (
-                                SELECT
-                                    a.* 
-                                FROM
-                                    (
-                                    SELECT
-                                        id_,
-                                        name_,
-                                        TRIM(
-                                        SUBSTRING_INDEX( SUBSTRING_INDEX( positions_, ',', n ), ',', - 1 )) AS positions_ 
-                                    FROM
-                                        ibps_party_employee
-                                        JOIN (${this.$store.getters.deptList.length > 2 ? sqlparty : a}) AS numbers 
-                                    WHERE
-                                        LENGTH( positions_ ) - LENGTH(
-                                        REPLACE ( positions_, ',', '' )) >= n - 1 
-                                        and name_ not like '%系统%'
-                                        and name_ not like '%金通%'
-                                        and name_ not like '%管理%'
-                                        AND STATUS_ = 'actived'
-                                        and id_ != '702117247933480960'
-                                    ) a 
-                                GROUP BY
-                                    name_ 
-                                ) b 
-                        WHERE
-                            b.positions_ IN ( SELECT id_ FROM ibps_party_entity WHERE path_ LIKE '%${this.depth3}%' AND party_type_ = 'position' ))`
+            // const sql = `select
+            //                 jh.enName,
+            //                 IFNULL( jh.boShi, 0 ) AS boShi,
+            //                 IFNULL( jh.shuoShi, 0 ) AS shuoShi,
+            //                 IFNULL( jh.benKe, 0 ) AS benKe,
+            //                 IFNULL( jh.daZhuan, 0 ) AS daZhuan,
+            //                 IFNULL( jh.chuJi, 0 ) AS chuJi,
+            //                 IFNULL( jh.zhongJi, 0 ) AS zhongJi,
+            //                 IFNULL( jh.gaoJi, 0 ) AS gaoJi,
+            //                 IFNULL( jh.fuGao, 0 ) AS fuGao
+            //             FROM
+            //                 (
+            //                 SELECT
+            //                     en.id_,
+            //                     en.name_ AS enName,
+            //                     sum( gy.zui_gao_xue_li_x_ LIKE '%博士%' ) AS boShi,
+            //                     sum( gy.zui_gao_xue_li_x_ LIKE '%硕士%' ) AS shuoShi,
+            //                     sum( gy.zui_gao_xue_li_x_ = '本科' ) AS benKe,
+            //                     sum( gy.zui_gao_xue_li_x_ = '大专' ) AS daZhuan,
+            //                     sum( gy.zhi_cheng_deng_ji = '初级' ) AS chuJi,
+            //                     sum( gy.zhi_cheng_deng_ji = '中级' ) AS zhongJi,
+            //                     sum( gy.zhi_cheng_deng_ji = '高级' ) AS gaoJi,
+            //                     sum( gy.zhi_cheng_deng_ji = '副高' ) AS fuGao
+            //                 FROM
+            //                     (
+            //                     SELECT
+            //                         ee.id_ AS eeID,
+            //                         ee.name_ AS eeName,
+            //                         ee.positions_,
+            //                         ry.zui_gao_xue_li_x_,
+            //                         ry.zhi_cheng_deng_ji
+            //                     FROM
+            //                         t_ryjbqk AS ry
+            //                         JOIN ibps_party_employee AS ee ON ry.parent_id_ = ee.id_ where ee.name_ not like '%系统%' AND ee.STATUS_ = 'actived' and ee.name_ not like '%金通%' and ee.name_ not like '%管理%' and ee.id_ != '702117247933480960'
+            //                     ) gy
+            //                     RIGHT JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, gy.positions_ )
+            //                 WHERE
+            //                     en.DEPTH_ LIKE '%4%'
+            //                     AND en.PARENT_ID_ LIKE '%${this.depth3}%'
+            //                     AND en.id_ != '1166373874003083264'
+            //                     AND en.name_ NOT LIKE '%综合%'
+            //                 GROUP BY
+            //                     en.id_
+            //                 ) jh UNION
+            //             SELECT
+            //                 ( SELECT name_ FROM ibps_party_entity WHERE id_ = '${this.depth3}' ) AS enName,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%博士%' ), 0 ) AS boShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ LIKE '%硕士%' ), 0 ) AS shuoShi,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '本科' ), 0 ) AS benKe,
+            //                 IFNULL( sum( zui_gao_xue_li_x_ = '大专' ), 0 ) AS daZhuan,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '初级' ), 0 ) AS chuJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '中级' ), 0 ) AS zhongJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '高级' ), 0 ) AS gaoJi,
+            //                 IFNULL( sum( zhi_cheng_deng_ji = '副高' ), 0 ) AS fuGao
+            //             FROM
+            //                 t_ryjbqk
+            //             WHERE
+            //                 parent_id_ IN (
+            //                 SELECT
+            //                     b.id_ AS bid
+            //                 FROM
+            //                     (
+            //                     SELECT
+            //                         a.*
+            //                     FROM
+            //                         (
+            //                         SELECT
+            //                             id_,
+            //                             name_,
+            //                             TRIM(
+            //                             SUBSTRING_INDEX( SUBSTRING_INDEX( positions_, ',', n ), ',', - 1 )) AS positions_
+            //                         FROM
+            //                             ibps_party_employee
+            //                             JOIN (${this.$store.getters.deptList.length > 2 ? sqlparty : a}) AS numbers
+            //                         WHERE
+            //                             LENGTH( positions_ ) - LENGTH(
+            //                             REPLACE ( positions_, ',', '' )) >= n - 1
+            //                             and name_ not like '%系统%'
+            //                             and name_ not like '%金通%'
+            //                             and name_ not like '%管理%'
+            //                             AND STATUS_ = 'actived'
+            //                             and id_ != '702117247933480960'
+            //                         ) a
+            //                     GROUP BY
+            //                         name_
+            //                     ) b
+            //             WHERE
+            //                 b.positions_ IN ( SELECT id_ FROM ibps_party_entity WHERE path_ LIKE '%${this.depth3}%' AND party_type_ = 'position' ))`
 
-            await curdPost('sql', sql).then((res) => {
+            await curdPost('query', { key: 'ryglkbfzzztsjcx', params: [this.depth3] }).then((res) => {
                 const data = res.variables.data
                 // 组装数据集,以学历职称为列,以部门为行:{" 大专":['1','2','3']}
                 const degreeSeriesDatas = this.PositionsDegreeOption.series
@@ -1512,36 +1520,26 @@ export default {
                             t_ryzsb 
                         WHERE
                             parent_id_ IN (
+                        select
+                            ee.id_ as bid
+                        FROM
+                        (
                             SELECT
-                                b.id_ AS bid 
+                                e.*
                             FROM
-                                (
-                                SELECT
-                                    a.* 
-                                FROM
-                                    (
-                                    SELECT
-                                        id_,
-                                        name_,
-                                        TRIM(
-                                        SUBSTRING_INDEX( SUBSTRING_INDEX( positions_, ',', n ), ',', - 1 )) AS positions_ 
-                                    FROM
-                                        ibps_party_employee
-                                        JOIN (${this.$store.getters.deptList.length > 2 ? sqlparty : a}) AS numbers 
-                                    WHERE
-                                        LENGTH( positions_ ) - LENGTH(
-                                        REPLACE ( positions_, ',', '' )) >= n - 1 
-                                        and name_ not like '%系统%'
-                                        and name_ not like '%金通%'
-                                        and name_ not like '%管理%'
-                                        AND STATUS_ = 'actived'
-                                        and id_ != '702117247933480960'
-                                    ) a 
-                                GROUP BY
-                                    name_ 
-                                ) b 
+                                ibps_party_employee e
+                                JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0
+                            WHERE
+                                en.PATH_ LIKE '%${this.depth3}%'
+                            GROUP BY
+                                e.id_
+                            ) ee
                         WHERE
-                            b.positions_ IN ( SELECT id_ FROM ibps_party_entity WHERE path_ LIKE '%${this.first}%' AND party_type_ = 'position' ))`
+                        ee.name_ NOT LIKE '%系统%'
+                            AND ee.STATUS_ = 'actived'
+                            AND ee.name_ NOT LIKE '%金通%'
+                            AND ee.name_ NOT LIKE '%管理%'
+                            AND ee.id_ != '702117247933480960')`
 
             await curdPost('sql', sql).then((res) => {
                 data = res.variables.data
@@ -1607,36 +1605,26 @@ export default {
                             t_ryzsb
                         WHERE
                             parent_id_ IN (
+												select
+                            ee.id_ as bid
+                        FROM
+                        (
                             SELECT
-                                b.id_ AS bid 
+                                e.*
                             FROM
-                                (
-                                SELECT
-                                    a.* 
-                                FROM
-                                    (
-                                    SELECT
-                                        id_,
-                                        name_,
-                                        TRIM(
-                                        SUBSTRING_INDEX( SUBSTRING_INDEX( positions_, ',', n ), ',', - 1 )) AS positions_ 
-                                    FROM
-                                        ibps_party_employee
-                                        JOIN (${this.$store.getters.deptList.length > 2 ? sqlparty : a}) AS numbers 
-                                    WHERE
-                                        LENGTH( positions_ ) - LENGTH(
-                                        REPLACE ( positions_, ',', '' )) >= n - 1 
-                                        and name_ not like '%系统%'
-                                        and name_ not like '%金通%'
-                                        and name_ not like '%管理%'
-                                        AND STATUS_ = 'actived'
-                                        and id_ != '702117247933480960'
-                                    ) a 
-                                GROUP BY
-                                    name_ 
-                                ) b 
+                                ibps_party_employee e
+                                JOIN ibps_party_entity en ON FIND_IN_SET( en.id_, e.POSITIONS_ ) > 0
+                            WHERE
+                                en.PATH_ LIKE '%${this.depth3}%'
+                            GROUP BY
+                                e.id_
+                            ) ee
                         WHERE
-                            b.positions_ IN ( SELECT id_ FROM ibps_party_entity WHERE path_ LIKE '%${this.depth3}%' AND party_type_ = 'position' ))`
+                            ee.name_ NOT LIKE '%系统%'
+                            AND ee.STATUS_ = 'actived'
+                            AND ee.name_ NOT LIKE '%金通%'
+                            AND ee.name_ NOT LIKE '%管理%'
+                            AND ee.id_ != '702117247933480960')`
 
             await curdPost('sql', sql).then((res) => {
                 const data = res.variables.data
@@ -1725,12 +1713,16 @@ export default {
         },
         // 根据部门和时间获取考试统计数据
         async getExamStatisticsData () {
+            console.log('111111111')
             if (this.positionsIdArr.length) {
                 const users = this.getPositionPeopleIds(this.positionsIdArr[0])
                 const userIds = users.map(user => user.userId)
                 const renyuan = userIds.map(i => `'${i}'`).join(',') !== '' ? `and examinee in (${userIds.map(i => `'${i}'`).join(',')})` : ''
                 const sql = `select * from v_examination where paperState = '已完成' and examType!='自主考核' ${renyuan} GROUP BY examinee,examId ORDER BY createTime asc `
-                let { variables: { data }} = await this.$common.request('sql', sql)
+                const parm1 = { key: 'ryglkbkswrytjsjcx', params: [null] }
+                const parm2 = { key: 'ryglkbksyrytjsjcx', params: [userIds.map(i => `${i}`).join(',')] }
+                const parm = userIds.map(i => `'${i}'`).join(',') !== '' ? parm2 : parm1
+                let { variables: { data }} = await this.$common.request('query', parm)
                 if (this.startDate && this.endDate) {
                     data = data.filter(item => {
                         return new Date(item.startDate).getTime() >= new Date(this.startDate).getTime() && new Date(item.startDate).getTime() <= new Date(this.endDate).getTime()
@@ -1786,16 +1778,20 @@ export default {
             this.optionTrainingStatisticsConfig.series[2].data = dArr.map(item => item.participationRate)
         },
         handleFunc (e) {
-            this.depth3 = e.v[0]
-            this.sqlPositionsDatasIni = e.i
-            this.positionIni = e.v
-            this.simplifyPosition(e.v)
+            // console.log(e, 'eeeeeeeeee')
+            const { selection, selectionDept, filterDept } = e
+            this.depth3 = filterDept.filter(i => i.depth === 3)[0].positionId
+            this.sqlPositionsDatasIni = filterDept
+            const arr = selectionDept.path.split('.')
+            const selArr = selectionDept.depth === 4 ? [arr[arr.length - 2], arr[arr.length - 1]] : [arr[arr.length - 1]]
+            this.positionIni = selArr
+            this.simplifyPosition(selArr)
             this.handleAllGetFunc()
             // clearInterval(this.interval)
             // this.intervalHandle()
-            if (e.v.length >= 2) {
-                this.positionsIdArr = [e.v[1]]
-            }
+            // if (selArr.length >= 2) {
+            this.positionsIdArr = selection
+            // }
             this.getTrainingStatisticsData()
             this.getExamStatisticsData()
         },

Некоторые файлы не были показаны из-за большого количества измененных файлов