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

关联工资批量删除, 批量附加, 修改关联系数接口优化

曹鹤洋 1 год назад
Родитель
Сommit
1701231da8
1 измененных файлов с 41 добавлено и 18 удалено
  1. 41 18
      application/api/controller/RelatedSalaryAccounting.php

+ 41 - 18
application/api/controller/RelatedSalaryAccounting.php

@@ -390,12 +390,11 @@ class RelatedSalaryAccounting extends Api
         //开启事务
         db()->startTrans();
         try{
-            $sql=db()->table('人事_关联工资设置')
+            $sql = db()->table('人事_关联工资设置')
             ->where(['日期'=>$start_time,'关联员工'=>$req['code']])
             ->fetchSql(true)
-            // ->cache(true,86400)
             ->update($data);
-            $res=Db::query($sql);
+            $res = db()->query($sql);
             // 提交事务
             db()->commit();
         } catch (\Exception $e) {
@@ -553,20 +552,46 @@ class RelatedSalaryAccounting extends Api
         }
         $params = Request::instance()->post();
 
-        if (!isset($params) || !isset($params[0]['UniqID'])){
+        if (!isset($params) || count($params)==0){
             $this->error('参数不能为空');
         }
+        $date = date('Y-m-d H:i:s');
+
+        //查询当前最大id
+        $UniqID = db('人事_关联工资设置')->order('UniqID desc')->limit(1)->value('UniqID');
+        $i = 1;
+        $rows = [];
+        foreach($params as $k=>$v){
+            //查询当天此关联用户是否已经绑定过此被关联用户
+            $bool = db('人事_关联工资设置')
+                ->where(['日期'=>$v['date'].' 00:00:00','关联员工'=>$v['关联员工'],'被关联员工'=>$v['被关联员工']])
+                ->find();
+            if($bool) continue;
+
+            //获取用户信息
+            $sys_id = '[1002/郑小丽]';
+            
+            $rows[$k] = [
+                '日期' => $v['date'].' 00:00:00',
+                '关联员工' => $v['关联员工'],
+                '关联系数' => $v['关联系数'],
+                '被关联员工' => $v['被关联员工'],
+                '权重' => 1.00,
+                'sys_id' => $sys_id,
+                'sys_rq' => $date,
+                'UniqID' => $UniqID+$i,
+            ];
+            $i++;
+        }
+        if(!count($rows)) $this->success('成功');
+
          //开启事务
          db()->startTrans();
          try{
-            foreach($params as $k=>$v){
-                $v['mod_rq']=date('Y-m-d H:i:s');
-                $sql=db()->table('人事_关联工资设置')
-                   ->where(['UniqID'=>$v['UniqID']])
-                   ->fetchSql(true)
-                   ->update($v);
-                $res=Db::query($sql);
-            }  
+            $sql=db()->table('人事_关联工资设置')
+               ->fetchSql(true)
+               ->insertAll($rows);
+            $res=db()->query($sql);
              // 提交事务
              db()->commit();
          } catch (\Exception $e) {
@@ -595,14 +620,12 @@ class RelatedSalaryAccounting extends Api
          db()->startTrans();
          try{
             foreach($params as $k=>$v){
-                $v['mod_rq']=date('Y-m-d H:i:s');
-                $v['关联员工']='';
-                $sql=db()->table('人事_关联工资设置')
+                $sql=db('人事_关联工资设置')
                    ->where(['UniqID'=>$v['UniqID']])
                    ->fetchSql(true)
-                   ->update($v);
-                $res=Db::query($sql);
-            }  
+                   ->delete($v);
+                $res=db()->query($sql);
+            }
              // 提交事务
              db()->commit();
          } catch (\Exception $e) {