فهرست منبع

‘样品信息,送样人
git commit -m 样品信息,送样人
git commit -m ‘样品信息,送样人

15168162575 2 سال پیش
والد
کامیت
6e3c86a51a

+ 3 - 3
application/admin/controller/Entrust.php

@@ -18,7 +18,7 @@ class Entrust extends Backend
      * @var \app\admin\model\Entrust
      */
     protected $model = null;
-    protected $searchFields = 'no,name,bach,sell_bach,company';
+    protected $searchFields = 'no,sample_no,name,bach,sell_bach,company';
     public function _initialize()
     {
         parent::_initialize();
@@ -86,7 +86,7 @@ class Entrust extends Backend
      * 搜索栏检测项目下拉列表
      */
     public function companyselect(){
-        $company = Db::name('item_judge')->column('name,name');
+        $company = Db::name('item_judge')->where('delete',null)->order('weigh asc')->column('name,name');
         if (empty($company)){
             return $this->error('没有检测项目数据');
         }else{
@@ -331,7 +331,7 @@ class Entrust extends Backend
         $gather_gcms = Db::name('gather_txt_gcms')->where('data_txt_name', ['=',$data_txt],['=',$entrust['sample_no'].'MSR.D'],'or')->order('id desc')->find();
         if (empty($gather_gcms)) {
             $data_txt_gc = $entrust['sample_no'] . '.D';
-            $gather_gc = Db::name('gather_txt_gc')->where('data_txt_name', $data_txt_gc)->order('id desc')->find();
+            $gather_gc = Db::name('gather_txt_gc')->where('data_txt_name', ['=',$data_txt_gc],['=',$entrust['sample_no'].'R.D'],'or')->order('id desc')->find();
             if (empty($gather_gc)) {
                 $this->error('序号为'.$id.'的样品未获取到检测数据,请取消选中');
             }

+ 3 - 2
application/admin/controller/auth/Admin.php

@@ -159,7 +159,7 @@ class Admin extends Backend
             $this->error(__('Parameter %s can not be empty', ''));
         }
         $user_id = Session::get('admin')['id'];
-        $company = Db::name('company')->where('user_id',$user_id)->select();
+        $company = Db::name('company')->where('pid',Session::get('admin')['company'])->select();
         $list = [];
         foreach ($company as $key=>$value){
             $list[$value['id']] = $value['name'];
@@ -239,11 +239,12 @@ class Admin extends Backend
             $groupids[] = $v['id'];
         }
         $user_id = Session::get('admin')['id'];
-        $company = Db::name('company')->where('user_id',$user_id)->select();
+        $company = Db::name('company')->where('pid',Session::get('admin')['company'])->select();
         $list = [];
         foreach ($company as $key=>$value){
             $list[$value['id']] = $value['name'];
         }
+
         $this->view->assign("company", $list);
         $this->view->assign("row", $row);
         $this->view->assign("groupids", $groupids);

+ 2 - 2
application/admin/lang/zh-cn/entrust.php

@@ -9,7 +9,7 @@ return [
     'Company'       => '生产单位',
     'Sample_no'     => '样品编号',
     'Standard_id'   => '选用限量标准id',
-    'Standard_name' => '选用限量标准名称',
+    'Standard_name' => '判定标准',
     'Sample_status' => '样品状态',
     'Create'        => '委托日期',
     'Status'        => '状态',
@@ -23,4 +23,4 @@ return [
     'User_id'       => '用户id',
     'User_name'     => '用户名称',
     'Manufacturer'     => '生产厂家'
-];
+];//

+ 2 - 2
application/admin/lang/zh-cn/res.php

@@ -8,7 +8,7 @@ return [
     'Bach'          => '生产批次号',
     'Sample_no'     => '样品编号',
     'Standard_id'   => '限量标准id',
-    'Standard_name' => '选用限量标准名称',
+    'Standard_name' => '判定标准',
     'Dis'           => '溶剂残留总量',
     'Dis_impurity'  => '溶剂杂质总量',
     'Ben_total'     => '苯系物总量',
@@ -27,4 +27,4 @@ return [
     'Status 1'      => '审核通过',
     'Status 2'      => '审核不通过',
     'Delete_time'   => '删除时间'
-];
+];//

+ 9 - 0
application/api/config.php

@@ -3,4 +3,13 @@
 //配置文件
 return [
     'exception_handle'        => '\\app\\api\\library\\ExceptionHandle',
+
+    'log'                    => [
+        // 日志记录方式,支持 file socket trace sae
+        'type' => 'file',
+        // 日志保存目录
+        'path' => LOG_PATH,
+        // 日志记录级别
+        'level' => ['log'],
+    ]
 ];

+ 107 - 51
application/api/controller/Index.php

@@ -30,11 +30,15 @@ class Index extends Api
     public function vocs()
     {
         $req=$this->request->param();
-        Log::record($req);
 
         $time = date('Y/m/d H:i:s');
         $rows = $req;
-        if($req[0]=='C'){
+        $lx = explode(',',$req[0]);
+        if(count($lx)>1){
+            $res['company'] = $lx[1];
+            $res['machine_no'] = $lx[2];
+        }
+        if($lx[0]=='C'){
             //查询匹配主表数据
             foreach($rows as $k=>$v){
                 preg_match('/数据文件/', $v, $matches);
@@ -44,22 +48,23 @@ class Index extends Api
                     break;
                 }
             }
-            //判断数据是否是ABCD开头
-            preg_match('/^[A,B,C,D]/', $res['data_txt_name'], $matches);
-            if(!count($matches)){
-                Log::init([
-                    // 日志记录方式,支持 file socket
-                    'type'  =>  'File',//type的值为test时临时关闭日志写入
-                    //日志保存目录
-                    'path'  =>  APP_PATH.'../runtime/log/notABCD/',
-                    //单个日志文件的大小限制,超过后会自动记录到第二个文件
-                    'file_size'     =>2097152,
-                    //日志的时间格式,默认是` c `
-                    'time_format'   =>'c'
-                ]);
-                Log::record($req);
-                return $this->success('数据文件不以A、B、C、D开头,已记录日志',$req,0);
-            }
+//            //判断数据是否是ABCD开头
+//            preg_match('/^[A,B,C,D]/', $res['data_txt_name'], $matches);
+//            if(!count($matches)){
+//                Log::init([
+//                    // 日志记录方式,支持 file socket
+//                    'type'  =>  'File',//type的值为test时临时关闭日志写入
+//                    //日志保存目录
+//                    'path'  =>  APP_PATH.'../runtime/log/notABCD/',
+//                    //单个日志文件的大小限制,超过后会自动记录到第二个文件
+//                    'file_size'     =>2097152,
+//                    //日志的时间格式,默认是` c `
+//                    'time_format'   =>'c',
+//                    'level' => ['log'],
+//                ]);
+//                Log::record(['失败'=>'样品编号为'.$res['data_txt_name'].'数据插入失败','原因'=>'该文件编号不以ABCD开头']);
+//                return $this->success('数据文件不以A、B、C、D开头,已记录日志',$req,0);
+//            }
             foreach($rows as $k=>$v){
                 preg_match('/样品名称/', $v, $matches);
                 if(count($matches)){
@@ -343,11 +348,12 @@ class Index extends Api
 
                 //提交事务
                 db()->commit();
+                Log::record(['成功'=>'样品编号为'.$res['data_txt_name'].'数据插入成功']);
                 return json_encode(['code'=>'0','msg'=>'成功','time'=>$time,'data'=>[$res,$row]]);
             } catch (\Exception $e){
                 //失败回滚
                 db()->rollback();
-                Log::record($e->getMessage());
+                Log::record(['失败'=>'样品编号为'.$res['data_txt_name'].'数据插入失败','原因'=>$e->getMessage()]);
                 return $e->getMessage();
             }
 
@@ -511,7 +517,15 @@ class Index extends Api
                         $row[$k]['quantitative_ion'] = $v[3];
                         $row[$k]['response_value'] = $v[4];
                         $row[$k]['potency'] = $v[5];
-                        $row[$k]['unit'] = $v[6];
+                        preg_match('/#/', $v[6], $matches);
+                        if(count($matches)){
+                            $unit = str_replace('#', '', $v[6]);
+                            $row[$k]['unit'] = $unit;
+                            $row[$k]['deviation'] = '#';
+                        }else{
+                            $row[$k]['unit'] = $v[6];
+                            $row[$k]['deviation'] = '';
+                        }
                         $row[$k]['quanlitative_ion'] = $v[7];
                         $row[$k]['create'] = $time;
                     }else{
@@ -522,6 +536,7 @@ class Index extends Api
                         $row[$k]['response_value'] = $v[3];
                         $row[$k]['potency'] = $v[3];
                         $row[$k]['unit'] = $v[3];
+                        $row[$k]['deviation'] = '';
                         $row[$k]['quanlitative_ion'] = $v[3];
                         $row[$k]['create'] = $time;
                     }
@@ -539,12 +554,12 @@ class Index extends Api
 
                 //提交事务
                 db()->commit();
-
+                Log::record(['成功'=>'样品编号为'.$res['data_txt_name'].'数据插入成功']);
                 return json_encode(['code'=>'0','msg'=>'成功','time'=>$time,'data'=>[$res,$row]]);
             } catch (\Exception $e){
                 //失败回滚
                 db()->rollback();
-                Log::record($e->getMessage());
+                Log::record(['失败'=>'样品编号为'.$res['data_txt_name'].'数据插入失败','原因'=>$e->getMessage()]);
                 return $e->getMessage();
             }
 
@@ -558,11 +573,15 @@ class Index extends Api
     public function updateVocs()
     {
         $req=$this->request->param();
-        Log::record($req);
 
         $time = date('Y/m/d H:i:s');
         $rows = $req;
-        if($req[0]=='C'){
+        $lx = explode(',',$req[0]);
+        if(count($lx)>1){
+            $res['company'] = $lx[1];
+            $res['machine_no'] = $lx[2];
+        }
+        if($lx[0]=='C'){
             //查询匹配主表数据
             foreach($rows as $k=>$v){
                 preg_match('/数据文件/', $v, $matches);
@@ -751,20 +770,34 @@ class Index extends Api
                     break;
                 }
             }
+            $res['machine'] = 'GC';
             $res['create'] = $time;
 
-            $id = db()->name('gather_txt_gc')->field('id')->where('data_txt_name',$res['data_txt_name'])->find();
+            //查询gc表
+            $id1 = db()->name('gather_txt_gc')->where('data_txt_name',$res['data_txt_name'])->find();
+            if($id1){
+                //删除gc表
+                db()->name('gather_txt_gc')->where('data_txt_name',$res['data_txt_name'])->delete();
+                //删除子表
+                db()->name('gather_txt_check_gc')->where('pid',$id1['id'])->delete();
+            }
+
+            //查询gcms表
+            $id2 = db()->name('gather_txt_gcms')->where('data_txt_name',$res['data_txt_name'])->find();
+            if($id2){
+                //删除gcms表
+                db()->name('gather_txt_gcms')->where('data_txt_name',$res['data_txt_name'])->delete();
+                //删除子表
+                db()->name('gather_txt_check_gcms')->where('pid',$id2['id'])->delete();
+            }
 
-            if($id){
+            if($id1 || $id2){
                 //开启事务
                 db()->startTrans();
                 try {
-                    //根据id修改主表数据
-                    $bool = db()->name('gather_txt_gc')->where('id',$id['id'])->update($res);
-                    if($bool){
-                        //根据pid删除子表数据
-                        db()->name('gather_txt_check_gc')->where('pid',$id['id'])->delete();
-
+                    //新增
+                    $pid = db()->name('gather_txt_gc')->insertGetId($res);
+                    if($pid){
                         //获取子表开始结束索引
                         $srart = $end = 0;
                         $rows = array_values($rows);
@@ -799,7 +832,7 @@ class Index extends Api
                         $row = [];
                         foreach ($arr as $k=>$v){
                             if (count($v)==6){
-                                $row[$k]['pid'] = $id['id'];
+                                $row[$k]['pid'] = $pid;
                                 $row[$k]['time'] = $v[0];
                                 $row[$k]['type'] = $v[1];
                                 $row[$k]['peak_area'] = $v[2];
@@ -820,7 +853,7 @@ class Index extends Api
                                 }
                                 $row[$k]['create'] = $time;
                             }else{
-                                $row[$k]['pid'] = $id['id'];
+                                $row[$k]['pid'] = $pid;
                                 $row[$k]['time'] = $v[0];
                                 $row[$k]['type'] = '';
                                 ($v[1] == '-')?$row[$k]['peak_area'] = '-':$row[$k]['peak_area'] = floatval($v[1]);
@@ -854,14 +887,13 @@ class Index extends Api
 
                         //提交事务
                         db()->commit();
+                        Log::record(['成功'=>'样品编号为'.$res['data_txt_name'].'数据修改成功']);
                         return json_encode(['code'=>'0','msg'=>'修改成功','time'=>$time,'data'=>[$res,$row]]);
                     }
-
-
                 } catch (\Exception $e){
                     //失败回滚
                     db()->rollback();
-                    Log::record($e->getMessage());
+                    Log::record(['失败'=>'样品编号为'.$res['data_txt_name'].'数据修改失败','原因'=>$e->getMessage()]);
                     return $e->getMessage();
                 }
             }else{
@@ -974,19 +1006,34 @@ class Index extends Api
                     break;
                 }
             }
+            $res['machine'] = 'GCMS';
             $res['create'] = $time;
 
-            $id = db()->name('gather_txt_gcms')->field('id')->where('data_txt_name',$res['data_txt_name'])->find();
-            if($id){
+            //查询gc表
+            $id1 = db()->name('gather_txt_gc')->where('data_txt_name',$res['data_txt_name'])->find();
+            if($id1){
+                //删除gc表
+                db()->name('gather_txt_gc')->where('data_txt_name',$res['data_txt_name'])->delete();
+                //删除子表
+                db()->name('gather_txt_check_gc')->where('pid',$id1['id'])->delete();
+            }
+
+            //查询gcms表
+            $id2 = db()->name('gather_txt_gcms')->where('data_txt_name',$res['data_txt_name'])->find();
+            if($id2){
+                //删除gcms表
+                db()->name('gather_txt_gcms')->where('data_txt_name',$res['data_txt_name'])->delete();
+                //删除子表
+                db()->name('gather_txt_check_gcms')->where('pid',$id2['id'])->delete();
+            }
+
+            if($id1 || $id2){
                 //开启事务
                 db()->startTrans();
                 try {
-                    //根据id修改主表数据
-                    $bool = db()->name('gather_txt_gcms')->where('id',$id['id'])->update($res);
-                    if($bool) {
-                        //根据pid删除子表数据
-                        db()->name('gather_txt_check_gcms')->where('pid', $id['id'])->delete();
-
+                    //新增
+                    $pid = db()->name('gather_txt_gcms')->insertGetId($res);
+                    if($pid) {
                         //获取子表开始结束索引
                         $srart = $end = 0;
                         $rows = array_values($rows);
@@ -1021,23 +1068,32 @@ class Index extends Api
                         $row = [];
                         foreach ($arr as $k=>$v){
                             if (count($v)==8){
-                                $row[$k]['pid'] = $id['id'];
+                                $row[$k]['pid'] = $pid;
                                 $row[$k]['chemical_compound'] = $v[1];
                                 $row[$k]['persist_time'] = $v[2];
                                 $row[$k]['quantitative_ion'] = $v[3];
                                 $row[$k]['response_value'] = $v[4];
                                 $row[$k]['potency'] = $v[5];
-                                $row[$k]['unit'] = $v[6];
+                                preg_match('/#/', $v[6], $matches);
+                                if(count($matches)){
+                                    $unit = str_replace('#', '', $v[6]);
+                                    $row[$k]['unit'] = $unit;
+                                    $row[$k]['deviation'] = '#';
+                                }else{
+                                    $row[$k]['unit'] = $v[6];
+                                    $row[$k]['deviation'] = '';
+                                }
                                 $row[$k]['quanlitative_ion'] = $v[7];
                                 $row[$k]['create'] = $time;
                             }else{
-                                $row[$k]['pid'] = $id['id'];
+                                $row[$k]['pid'] = $pid;
                                 $row[$k]['chemical_compound'] = $v[1];
                                 $row[$k]['persist_time'] = $v[2];
                                 $row[$k]['quantitative_ion'] = $v[3];
                                 $row[$k]['response_value'] = $v[3];
                                 $row[$k]['potency'] = $v[3];
                                 $row[$k]['unit'] = $v[3];
+                                $row[$k]['deviation'] = '';
                                 $row[$k]['quanlitative_ion'] = $v[3];
                                 $row[$k]['create'] = $time;
                             }
@@ -1045,22 +1101,22 @@ class Index extends Api
 
                         //将检测数据插入子表gather_txt_check_gc
                         db()->name('gather_txt_check_gcms')->insertAll($row);
-
                         //去除数据文件名称后面的字母和.
                         $sample_no = preg_replace('/[a-zA-Z\.]+\s*$/', '', $res['data_txt_name']);
                         //查询entrust表中是否存在, 如果存在修改状态
                         if(db()->name('entrust')->where('sample_no',$sample_no)->find()){
                             db()->name('entrust')->where('sample_no',$sample_no)->update(['data_status'=>1]);
                         }
-                        
+
                         //提交事务
                         db()->commit();
+                        Log::record(['成功'=>'样品编号为'.$res['data_txt_name'].'数据修改成功']);
                         return json_encode(['code'=>'0','msg'=>'修改成功','time'=>$time,'data'=>[$res,$row]]);
                     }
                 } catch (\Exception $e){
                     //失败回滚
                     db()->rollback();
-                    Log::record($e->getMessage());
+                    Log::record(['失败'=>'样品编号为'.$res['data_txt_name'].'数据修改失败','原因'=>$e->getMessage()]);
                     return $e->getMessage();
                 }
             }else{

+ 1 - 1
public/assets/js/backend/entrust.js

@@ -126,7 +126,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                 //     }
                                 // }
                                 ],
-                            formatter: Table.api.formatter.operate}
+                            formatter: Table.api.formatter.buttons}
                     ]
                 ]
             });