闫增涛
2025-04-14 729e47e5aa77d73914de4353e95f56350611f820
Merge branch 'main' of http://182.92.203.7:2001/r/OAManage
2个文件已修改
97 ■■■■ 已修改文件
app/user/controller/Attendance.php 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/user/view/attendance/index.html 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/user/controller/Attendance.php
@@ -93,20 +93,38 @@
                // 启动事务
                Db::startTrans();
                try {
                    Db::name('AttendanceGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($param);
                    // Db::name('PositionGroup')->where(['pid' => $param['id']])->delete();
                    // foreach ($param['group_id'] as $k => $v) {
                    //     $data[$k] = [
                    //         'pid' => $param['id'],
                    //         'group_id' => $v,
                    //         'create_time' => time(),
                    //     ];
                    // }
                    // Db::name('PositionGroup')->strict(false)->field(true)->insertAll($data);
                    $setData = [
                        'name' => $param['name'],
                        'type' => $param['type'],
                        'is_del' => 0,
                        'create_time' => time(),
                        'mon_work_plan_id' => isset($param['work1']) && $param['work1'] == "on" && isset($param['mon_work_plan_id']) ? intval($param['mon_work_plan_id']) : 0,
                        'tue_work_plan_id' => isset($param['work2']) && $param['work2'] == "on" && isset($param['tue_work_plan_id']) ? intval($param['tue_work_plan_id']) : 0,
                        'wed_work_plan_id' => isset($param['work3']) && $param['work3'] == "on" && isset($param['wed_work_plan_id']) ? intval($param['wed_work_plan_id']) : 0,
                        'thur_work_plan_id' => isset($param['work4']) && $param['work4'] == "on" && isset($param['thur_work_plan_id']) ? intval($param['thur_work_plan_id']) : 0,
                        'fri_work_plan_id' => isset($param['work5']) && $param['work5'] == "on" && isset($param['fri_work_plan_id']) ? intval($param['fri_work_plan_id']) : 0,
                        'sat_work_plan_id' => isset($param['work6']) && $param['work6'] == "on" && isset($param['sat_work_plan_id']) ? intval($param['sat_work_plan_id']) : 0,
                        'sun_work_plan_id' => isset($param['work7']) && $param['work7'] == "on" && isset($param['sun_work_plan_id']) ? intval($param['sun_work_plan_id']) : 0,
                    ];
                    Db::name('AttendanceGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($setData);
                    // 删除用户关联
                    Db::name('AttendanceUserLink')->where(['group_id' => $param['id']])->delete();
                    // 删除时间
                    $specialDateIds = Db::name('AttendanceGroupSpecialDateLink')->where(['group_id' => $param['id']])->column('special_date_id');
                    Db::name('AttendanceSpecialDate')->where('id', 'in', $specialDateIds)->delete();
                    Db::name('AttendanceGroupSpecialDateLink')->where(['group_id' => $param['id']])->delete();
                    // 插入用户关联表
                    $this->model->insertUserLinks(intval($param['id']), $param['attendance_participants_id'], 1);
                    $this->model->insertUserLinks(intval($param['id']), $param['attendance_not_participants_id'], 2);
                    // 插入时间表
                    if (isset($param['necessaryTime'])) {
                        $this->model->insertSpecialDates(intval($param['id']), $param['necessaryTime'], 1);
                    }
                    if (isset($param['unNecessaryTime'])) {
                        $this->model->insertSpecialDates(intval($param['id']), $param['unNecessaryTime'], 2);
                    }
                    add_log('edit', $param['id'], $param);
                    //清除菜单\权限缓存
                    // clear_cache('adminMenu');
                    // clear_cache('adminRules');
                    // 提交事务
                    Db::commit();
                } catch (\Exception $e) {
@@ -255,4 +273,16 @@
            return view();
        }
    }
    // 删除
    public function delete()
    {
        $id = get_params("id");
        if (Db::name('AttendanceGroup')->where('id', $id)->update(['is_del' => 1]) !== false) {
            add_log('delete', $id, [], '考勤组');
            return to_assign(0, "删除成功");
        } else {
            return to_assign(1, "删除失败");
        }
    }
}
app/user/view/attendance/index.html
@@ -75,51 +75,74 @@
              Object.keys(d.work_plan).forEach((key) => {
                var item = d.work_plan[key];
                var showTxt = "";
                var index = 0;
                if (key.indexOf("mon_") > -1) {
                  showTxt = "周一";
                  index = 1;
                }
                if (key.indexOf("tue_") > -1) {
                  showTxt = "周二";
                  index = 2;
                }
                if (key.indexOf("wed_") > -1) {
                  showTxt = "周三";
                  index = 3;
                }
                if (key.indexOf("thur_") > -1) {
                  showTxt = "周四";
                  index = 4;
                }
                if (key.indexOf("fri_") > -1) {
                  showTxt = "周五";
                  index = 5;
                }
                if (key.indexOf("sat_") > -1) {
                  showTxt = "周六";
                  index = 6;
                }
                if (key.indexOf("sun_") > -1) {
                  showTxt = "周日";
                  index = 7;
                }
                if (item.id) {
                  if (!planMap[item.id]) planMap[item.id] = { showTxt: [] };
                  if (!planMap[item.id])
                    planMap[item.id] = { showTxt: [], index: null };
                  planMap[item.id].times = item.times;
                  planMap[item.id].showTxt.push(showTxt);
                  if (planMap[item.id].index) {
                    if (planMap[item.id].index > index)
                      planMap[item.id].index = index;
                } else {
                  if (!planMap["null"]) planMap["null"] = { showTxt: [] };
                    planMap[item.id].index = index;
                  }
                } else {
                  if (!planMap["null"]) planMap["null"] = { showTxt: [], index: 999 };
                  planMap.null.showTxt.push(showTxt);
                }
              });
              console.log(planMap, "planMap");
              // 根据班次分类显示时间
              var html_ = "";
              // 根据班次分类显示时间,并且根据周一到周日排序,休息放在最后
              var infoList = [];
              Object.keys(planMap).forEach((key) => {
                infoList.push(planMap[key])
              });
              infoList.sort((a, b) => a.index - b.index);
              console.log(infoList, "infoList");
              var html_ = "";
              for (let i = 0; i < infoList.length; i++) {
                const infoItem = infoList[i];
                html_ +=
                  "<p>" +
                  planMap[key].showTxt.join("、") +
                    infoItem.showTxt.join("、") +
                  ":" +
                  (planMap[key].times && planMap[key].times.length > 0
                    ? planMap[key].times.map(
                  (infoItem.times && infoItem.times.length > 0
                    ? infoItem.times.map(
                        (item) => item.begin_time + " - " + item.end_time
                      )
                    : "休息") +
                  "</p>";
              });
              }
              console.log(html_);
              
              return html_;