美文网首页
人事系统时间交集问题的调优解决

人事系统时间交集问题的调优解决

作者: 江江简书 | 来源:发表于2020-07-01 12:49 被阅读0次
前言:最近项目使用人员反馈,在加班申请的过程中,有些人员有意或者无意中把加班时间调成了相同的或者时间存在交集,这给老板无意中增加了支出,怎么办?能否控制相同人员制单时间校验是否存在相同时间的单据和交集的单据的校验咧?答案肯定是能的

引用网友的函数实现

https://www.cnblogs.com/yudis/p/5609077.html

代码实现

$time_arr 是一个二维数组格式如下
[
   1 => [
            start_time=>xxxx,
            end_time=>xxxx,
            ]
]
/**
     * 控制提交单价时是否存在交集校验时间是否存在交集
     * 1.明细的层面本身存在重复的时间
     * 2.数据库层面的存在重复时间
     */
//1.控制数据库层面的唯一
foreach ($time_arr as $rows) {
        foreach ($rows as $val1) {
            $sql = <<<SQL
SELECT
    t1.id_ot_detailed
FROM
    t_hr_ot_detailed t1
    inner join t_hr_overtime_head t2 on t1.t_hr_overtim_head=t2.id_hr_overtime_head
    where '{$val1}' between  t1.overtime_start and t1.overtime_end and t2.id_person = '{$id_person}' and t2.delete_flag='0' and t2.invalid_flag='0' ;
SQL;
            $t_res = \pdo_mysql_fls::sql_query($conn, $sql);
            if ($t_res) {
                $err_msg = "操作失败!原因:制单重复,请勿重新提交";
                throw new Exception($err_msg);
            }
        }
    }
//2.控制当前单据的唯一
    if (count($time_arr) > 1) {
        for ($i = 1; $i <= count($time_arr); $i++) {
            for ($j = $i + 1; $j <= count($time_arr); $j++) {
                $inn_res = timemerg($time_arr[$i]['overtime_start' . $i], $time_arr[$i]['overtime_end' . $i], $time_arr[$j]['overtime_start' . $j], $time_arr[$j]['overtime_end' . $j]);
                if ($inn_res) {
                    $err_msg = "操作失败!原因:当前单据存在交集的加班时间请检查。";
                    throw new Exception($err_msg);
                }
            }
        }
    }

相关文章

  • 人事系统时间交集问题的调优解决

    前言:最近项目使用人员反馈,在加班申请的过程中,有些人员有意或者无意中把加班时间调成了相同的或者时间存在交集,这给...

  • Performance Tuning (TBD)

    性能调优是个大而复杂的系统性问题,涉及Linux系统(进程管理,文件系统,磁盘系统,网络IO处理等),内核参数调优...

  • JVM调优

    1 调优层次 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代...

  • MqSQL - 调优手段

    SQL调优 SQL 调优往往是解决数据库问题的第一步,往往投入少部分精力就能获得较大的收益。SQL 调优主要目的是...

  • 系统调优

    reference1: 邹sir的rh442系统调优课程 系统调优 [TOC] reference1: 邹sir的...

  • JVM解读-性能调优实例

    JVM性能调优 1 堆设置调优 年轻代大小选择 响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根...

  • 系统调优

    如何知道系统吞吐量?什么样的配置机器,最简单的测试,最大吞吐是多大呢? 定位系统瓶颈,程序哪里慢了,io呢,还是系...

  • 2016.12.22

    今天完成的工作是Bug调优;解决了返回问题、播放时长不显示问题、均长不准确的问题。 {�w�

  • netty的性能调优和总结

    性能调优 Netty 应用程序性能调优 能不能增加线程的数量 单机百万连接调优解决思路 如何模拟百万连接 突破局部...

  • 阅读APUE需要考虑的问题

    在io部分,每一章都提到了效率问题,用户cpu时间,系统cpu时间始终时间,这些都将称为程序性能调优的一些关键点 ...

网友评论

      本文标题:人事系统时间交集问题的调优解决

      本文链接:https://www.haomeiwen.com/subject/jsrcqktx.html