Forráskód Böngészése

考勤-修复4535

zhonghuizhen 11 hónapja
szülő
commit
692174f948

+ 7 - 2
src/views/business/attendance/attendanceDetails.vue

@@ -190,17 +190,22 @@ export default {
             const searchParam = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
             searchParam['Q^di_dian_^S'] = second || first
             searchParam['Q^ri_qi_^DGT'] = this.$common.getDateNow()
+            if (this.daterRange.length > 0) {
+                searchParam['Q^ri_qi_^DL'] = this.daterRange[0]
+                searchParam['Q^ri_qi_^DG'] = this.daterRange[1]
+            }
             return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
         },
         getSearchSql () {
             const params = this.getSearchFormData()
             const { first, second } = this.$store.getters.level || {}
-            let sql = `select t.*, (select COUNT(*) FROM t_attendance_detail WHERE di_dian_ = '${second || first}' and ri_qi_ < '${this.$common.getDateNow()}') AS total_count FROM t_attendance_detail t`
+            let sql = `select t.*, (select COUNT(*) FROM t_attendance_detail WHERE di_dian_ = '${second || first}' and ri_qi_ < '${this.$common.getDateNow()}') AS total_count FROM t_attendance_detail t  ORDER BY ri_qi_ DESC `
             // 定义操作符映射
             const operatorMap = {
                 'S': '=',
                 'SL': 'LIKE',
                 'DG': '<=',
+                'DLS': '>',
                 'DGT': '<',
                 'DL': '>='
             }
@@ -228,7 +233,7 @@ export default {
 
                 if (conditions.length > 0) {
                     const wherestr = ' WHERE ' + conditions.join(' AND ')
-                    sql = `select t.*, (select COUNT(*) FROM t_attendance_detail ${wherestr} ) AS total_count FROM t_attendance_detail t ${wherestr} `
+                    sql = `select t.*, (select COUNT(*) FROM t_attendance_detail ${wherestr} ) AS total_count FROM t_attendance_detail t ${wherestr}  ORDER BY ri_qi_ DESC `
                 }
             }
             // 添加分页

+ 3 - 3
src/views/business/attendance/attendanceOverview.vue

@@ -94,7 +94,7 @@ export default {
             listData: [],
             pagination: {
                 totalCount: 0,
-                currentPage: 1,
+                page: 1,
                 limit: 15
             },
             sorts: {},
@@ -252,8 +252,8 @@ export default {
                             GROUP BY 
                                 USER_ID_, ri_qi_
                             ORDER BY 
-                                USER_ID_, ri_qi_
-                            LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.currentPage - 1) * this.pagination.limit}
+                                ri_qi_ DESC
+                            LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.page - 1) * this.pagination.limit}
                         ) t `
                 }
             }

+ 1 - 1
src/views/business/attendance/attendanceStatistics.vue

@@ -263,7 +263,7 @@ export default {
                     FROM 
                         v_attendance_statistics 
                     ${wherestr}
-                    GROUP BY USER_ID_,ri_qi_ ORDER BY USER_ID_
+                    GROUP BY USER_ID_ ORDER BY USER_ID_
                     LIMIT ${this.pagination.limit} OFFSET ${(this.pagination.page - 1) * this.pagination.limit}
                     `
                 }

+ 2 - 3
src/views/business/attendance/makeUPVerify.vue

@@ -256,13 +256,12 @@ export default {
             const self = this
             getAttendanceDetail({ id: submitData.kaoQinId }).then((res) => { // 获取考勤明细
                 const updateData = res.data
-                debugger
                 if (submitData.buKaBanCi.includes('上班')) { // 更新上班数据
                     updateData.zhuangTai1 = '正常'
-                    updateData.daKaShiJian1 = submitData.buKaRiQi + submitData.buKaShiJian
+                    updateData.daKaShiJian1 = submitData.buKaRiQi + ' ' + submitData.buKaShiJian
                 } else { // 更新下班数据
                     updateData.zhuangTai2 = '正常'
-                    updateData.daKaShiJian2 = submitData.buKaRiQi + submitData.buKaShiJian
+                    updateData.daKaShiJian2 = submitData.buKaRiQi + ' ' + submitData.buKaShiJian
                 }
                 if (updateData.zhuangTai1 === '正常' && updateData.zhuangTai2 === '正常') {
                     updateData.kaoQinZhuangTa = '正常'

+ 47 - 18
src/views/business/attendance/makeUpEdit.vue

@@ -10,6 +10,7 @@
         top="5vh"
         width="600px"
         :title="title"
+        @opened="handleOpened"
         @close="closeDialog"
     >
         <el-form
@@ -41,6 +42,7 @@
                     :placeholder="readonly? '' : '请选择班次'"
                     :disabled="readonly"
                     @focus="loadBuKaBanCiOptions"
+                    @change="handleBanCiChange"
                 >
                     <el-option
                         v-for="buKaBanCi in buKaBanCiOptions"
@@ -182,6 +184,12 @@ export default {
                 }
             }
         },
+        handleOpened () {
+            this.init()
+            if (this.params.bu_ka_ri_qi_) {
+                this.handleBuKaRiQiChange(this.params.bu_ka_ri_qi_)
+            }
+        },
         /**
          * 异常考勤查询参数
          */
@@ -199,27 +207,38 @@ export default {
         },
         // 查询补卡日期下的异常数据
         handleBuKaRiQiChange (buKaRiQi) {
-            queryAttendanceDetail(this.getSearchFormData()).then(res => {
+            const self = this
+            queryAttendanceDetail(this.getSearchFormData()).then(async (res) => {
                 // ActionUtils.handleListData(this, res.data)
-                this.yichangdata = res.data.dataResult.filter(item => item.kaoQinZhuangTa === '异常' || item.kaoQinZhuangTa === '')
-                if (this.yichangdata.length === 0) {
-                    this.$message.warning('该日期没有异常班次!')
+                self.yichangdata = res.data.dataResult.filter(item => item.kaoQinZhuangTa === '异常' || item.kaoQinZhuangTa === '')
+                if (self.yichangdata.length === 0) {
+                    self.$message.warning('该日期没有异常班次!')
                     return
-                } else {
-                    const buKaBanCiArr = []
-                    this.yichangdata.forEach(element => {
-                        if (element.zhuangTai1 !== '正常') { // 上班异常
-                            buKaBanCiArr.push({ label: element.banCiBieMing + '-' + '上班', value: element.banCiBieMing + '-' + '上班', id: element.id })
-                        }
-                        if (element.zhuangTai2 !== '正常') {
-                            buKaBanCiArr.push({ label: element.banCiBieMing + '-' + '下班', value: element.banCiBieMing + '-' + '下班', id: element.id })
-                        }
-                    })
-                    this.buKaBanCiOptions = buKaBanCiArr
-                    if (this.buKaBanCiOptions.length === 1) { // 只有一个异常班次时自动带出
-                        this.formData.buKaBanCi = this.buKaBanCiOptions[0].value
-                        this.formData.buKaShiJian = this.buKaBanCiOptions[0].value.includes('上班') ? (this.yichangdata[0].banCiKaiShi.split(' ')[1]) : (this.yichangdata[0].banCiJieShu.split(' ')[1])
+                }
+                let buKaBanCiArr = []
+                self.yichangdata.forEach(element => {
+                    if (element.zhuangTai1 !== '正常') { // 上班异常
+                        buKaBanCiArr.push({ label: element.banCiBieMing + '-' + '上班', value: element.banCiBieMing + '-' + '上班', id: element.id })
                     }
+                    if (element.zhuangTai2 !== '正常') {
+                        buKaBanCiArr.push({ label: element.banCiBieMing + '-' + '下班', value: element.banCiBieMing + '-' + '下班', id: element.id })
+                    }
+                })
+                const { first, second } = self.$store.getters.level || {}
+                const sql = `select * from t_attendance_reissue where bu_ka_ri_qi_ = '${buKaRiQi}' and zhuang_tai_ = '待审核' and bian_zhi_ren_ = '${self.$store.getters.userId}' and di_dian_ = '${(second || first)}'`
+                const response = await self.$common.request('sql', sql)
+                // 过滤掉正在申请状态的班次
+                buKaBanCiArr = response.variables.data.filter(item => {
+                    return !buKaBanCiArr.some(banCi => banCi.value === item.bu_ka_ban_ci_)
+                })
+                if (buKaBanCiArr.length === 0) {
+                    self.$message.warning('该日期异常班次已申请!')
+                    return
+                }
+                self.buKaBanCiOptions = buKaBanCiArr
+                if (self.buKaBanCiOptions.length === 1) { // 只有一个异常班次时自动带出
+                    self.formData.buKaBanCi = self.buKaBanCiOptions[0].value
+                    self.formData.buKaShiJian = self.buKaBanCiOptions[0].value.includes('上班') ? (self.yichangdata[0].banCiKaiShi.split(' ')[1]) + ':00' : (self.yichangdata[0].banCiJieShu.split(' ')[1]) + ':00'
                 }
             }).catch(() => {
             })
@@ -230,6 +249,16 @@ export default {
                 return
             }
         },
+        handleBanCiChange (banci) {
+            const bieming = banci.split('-')[0]
+            const type = banci.split('-')[1]
+            const obj = this.yichangdata.filter(item => item.banCiBieMing === bieming)[0]
+            if (type === '上班') {
+                this.formData.buKaShiJian = obj.banCiKaiShi
+            } else {
+                this.formData.buKaShiJian = obj.banCiJieShu
+            }
+        },
         handleFormAction ({ key }) {
             switch (key) {
                 case 'save':

+ 6 - 1
src/views/business/attendance/personAttendanceDetails.vue

@@ -187,6 +187,10 @@ export default {
             const searchParam = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
             searchParam['Q^di_dian_^S'] = second || first
             searchParam['Q^ri_qi_^DGT'] = this.$common.getDateNow()
+            if (this.daterRange.length > 0) {
+                searchParam['Q^ri_qi_^DL'] = this.daterRange[0]
+                searchParam['Q^ri_qi_^DG'] = this.daterRange[1]
+            }
             // 筛选当前用户数据
             searchParam['Q^yong_hu_id_^S'] = this.$store.getters.userId
             return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
@@ -200,6 +204,7 @@ export default {
                 'S': '=',
                 'SL': 'LIKE',
                 'DG': '<=',
+                'DLS': '>',
                 'DGT': '<',
                 'DL': '>='
             }
@@ -226,7 +231,7 @@ export default {
                 })
                 if (conditions.length > 0) {
                     const wherestr = ' WHERE ' + conditions.join(' AND ')
-                    sql = `select t.*, (select COUNT(*) FROM t_attendance_detail ${wherestr} ) AS total_count FROM t_attendance_detail t ${wherestr} `
+                    sql = `select t.*, (select COUNT(*) FROM t_attendance_detail ${wherestr} ) AS total_count FROM t_attendance_detail t ${wherestr} ORDER BY ri_qi_ DESC `
                 }
             }
             // 添加分页

+ 39 - 4
src/views/system/homepage/components/banciDialog.vue

@@ -53,10 +53,10 @@
                     <div class="dakaBox">
                         <div>
                             <span>上班:</span> <span v-html="getAttendanceInfo(banci.attendance, 1)" />
-                            <button v-if="banci && banci.attendance && banci.attendance.zhuang_tai_1_!= '正常' && compareTime() " class="clock-btn" @click="bukaFun"> 补卡 </button>
+                            <button v-if="banci && banci.attendance && banci.attendance.zhuang_tai_1_!= '正常' && compareTime() " class="clock-btn" @click="bukaFun('in')"> 补卡 </button>
                         </div>
                         <div><span>下班:</span> <span v-html="getAttendanceInfo(banci.attendance, 2)" />
-                            <button v-if="banci && banci.attendance && banci.attendance.zhuang_tai_2_!= '正常' && compareTime() " class="clock-btn" @click="bukaFun"> 补卡 </button>
+                            <button v-if="banci && banci.attendance && banci.attendance.zhuang_tai_2_!= '正常' && compareTime() " class="clock-btn" @click="bukaFun('out')"> 补卡 </button>
                         </div>
                     </div>
                 </div>
@@ -124,8 +124,43 @@ export default {
         closeDialog () {
             this.$emit('closeBanciDialog', 'banci')
         },
-        bukaFun () {
-            this.$emit('open', 'buka')
+        bukaFun (type) {
+            const attendanceInfo = this.banciInfo?.attendance || {}
+            let params = {}
+            if (attendanceInfo) {
+                const str = type === 'in' ? '上班' : '下班'
+                const buKaShiJian = type === 'in' ? attendanceInfo.ban_ci_kai_shi_.split(' ')[1] + ':00' : attendanceInfo.ban_ci_jie_shu_.split(' ')[1] + ':00'
+                params = {
+                    // "id_": "1375164563657326592",
+                    // "tenant_id_": "-999",
+                    // "ip_": "192.168.2.49",
+                    // "create_by_": "1169304256906264576",
+                    // "create_time_": 1747906381000,
+                    // "update_by_": "",
+                    // "di_dian_": "1166372664529387520",
+                    // "kuai_zhao_": "",
+                    // "bian_zhi_ren_": "1169304256906264576",
+                    // "bian_zhi_shi_jian": "2025-05-22 17:33:00",
+                    'bu_ka_ri_qi_': attendanceInfo.ri_qi_,
+                    'bu_ka_ban_ci_': attendanceInfo.ban_ci_bie_ming_ + '-' + str,
+                    // 'ban_ci_zhuang_tai': "",
+                    'bu_ka_shi_jian_': buKaShiJian,
+                    'pai_ban_id_': attendanceInfo.pai_ban_id_,
+                    'pai_ban_ji_lu_id_': attendanceInfo.pai_ban_ji_lu_id_
+                    //'bu_ka_shi_you_': "",
+                    //'fu_jian_': '',
+                    //"zhuang_tai_": "待审核",
+                    //"shen_he_ren_": "1116011959821533184",
+                    //"shen_he_shi_jian_": "",
+                    //"type_": "",
+                    //"kao_qin_id_": "1374051414149431297",
+                    //"shen_he_yi_jian_": "",
+                    //"total_count": 11,
+                    //"userName": "",
+                    //"deptName": ""
+                }
+            }
+            this.$emit('open', 'buka', params)
         }
     }
 }