Bläddra i källkod

Merge branch 'master' of https://git.7in6.com/Minong/mes-server-api

曹鹤洋 1 år sedan
förälder
incheckning
4b631931f1

+ 57 - 44
application/api/controller/Facility.php

@@ -270,19 +270,7 @@ class Facility extends Api
             $code = \db('工单_基本资料')->where('Gd_Gdbh',$data['工单编号'])->value('成品代号');
             $list['产品名称'] = rtrim($name);
             $list['产品代号'] = rtrim($code);
-            $where['Gy0_gdbh'] = $data['工单编号'];
-            $where['Gy0_yjno'] = $data['印件号'];
-            $where['Gy0_gxh'] = $data['工序号'];
-            $gxmc = \db('工单_工艺资料')->where($where)->find();
-            if ((int)$gxmc['Gy0_gxh']<10){
-                $gxmc['Gy0_gxh'] = '0'.rtrim($gxmc['Gy0_gxh']);
-            }
-            if ($gxmc['Add_gxmc'] !== ''){
-                $printName = rtrim($gxmc['Gy0_gxh']).'-'.rtrim($gxmc['Gy0_gxmc']).'【'.rtrim($gxmc['Add_gxmc']).'】';
-            }else{
-                $printName = rtrim($gxmc['Gy0_gxh']).'-'.rtrim($gxmc['Gy0_gxmc']);
-            }
-            $list['工序名称'] = $printName;
+            $list['工序名称'] = $data['工序名称'];
         }else{
             $list['工单编号'] = '';
             $list['印件号'] = 0;
@@ -335,40 +323,40 @@ class Facility extends Api
             $this->error('参数错误');
         }
         $sql = "SELECT
-                rtrim( b.Gy0_gdbh ) AS gdbh,
-                rtrim(b.质量要求) AS 质量信息,
-                rtrim( b.Gy0_yjno ) AS yjno,
-                rtrim( b.Gy0_gxh ) AS gxh,
-                rtrim( b.Gy0_gxmc ) AS gxmc,
-                rtrim( b.Add_gxmc ) AS add_gxmc,
-                rtrim( b.Gy0_辅助工时 ) AS 装版时数,
-                rtrim( b.Gy0_小时产能 ) AS 工序产能,
-                rtrim( b.Gy0_生产工时 ) AS 计划工时,
-                rtrim( b.Gy0_sj1 ) AS sj1,
-                rtrim( b.Gy0_sj2 ) AS sj2,
-                rtrim(b.工序备注) AS 排产备注,
+                rtrim( a.Gy0_gdbh ) AS gdbh,
+                rtrim(a.质量要求) AS 质量信息,
+                rtrim( a.Gy0_yjno ) AS yjno,
+                rtrim( a.Gy0_gxh ) AS gxh,
+                rtrim( a.Gy0_gxmc ) AS gxmc,
+                rtrim( a.Add_gxmc ) AS add_gxmc,
+                rtrim( a.Gy0_辅助工时 ) AS 装版时数,
+                rtrim( a.Gy0_小时产能 ) AS 工序产能,
+                rtrim( a.Gy0_生产工时 ) AS 计划工时,
+                rtrim( a.Gy0_sj1 ) AS sj1,
+                rtrim( a.Gy0_sj2 ) AS sj2,
+                rtrim(a.工序备注) AS 排产备注,
                 RTRIM(d.yj_yjmc) AS 印件名称,
-                RTRIM(a.Gd_cpmc) AS 产品名称,
-                RTRIM(a.成品代号) AS 产品代号,
+                RTRIM(b.Gd_cpmc) AS 产品名称,
+                RTRIM(b.成品代号) AS 产品代号,
                 SUM(E.sczl_cl) AS 已完成,
-                rtrim(b.Gy0_计划接货数) AS 计划接货数,
-                RTRIM(b.Gy0_ls) AS ls ,
-                rtrim(b.Gy0_班次安排) AS 班组,
-                rtrim(b.UniqId) AS UniqId,
-                rtrim(b.Gy0_最早开工时间) AS 最早开工时间
+                rtrim(a.Gy0_计划接货数) AS 计划接货数,
+                RTRIM(a.Gy0_ls) AS ls ,
+                rtrim(a.Gy0_班次安排) AS 班组,
+                rtrim(a.UniqId) AS UniqId,
+                rtrim(a.Gy0_最早开工时间) AS 最早开工时间
             FROM
-                `工单_基本资料` AS a
-                JOIN `工单_工艺资料` AS b ON a.Gd_gdbh = b.Gy0_gdbh 
-                JOIN `工单_印件资料` AS d ON a.Gd_gdbh = d.Yj_Gdbh
-                LEFT JOIN `设备_产量计酬` AS e ON e.sczl_gdbh = a.Gd_gdbh AND e.sczl_jtbh = b.Gy0_sbbh
+                `工单_工艺资料` AS a
+                JOIN `工单_印件资料` AS d ON a.Gy0_gdbh = d.Yj_Gdbh AND d.yj_Yjno = a.Gy0_yjno
+                JOIN `工单_基本资料` AS b ON b.Gd_gdbh = a.Gy0_gdbh AND b.Gd_cpdh = d.yj_Yjdh
+                LEFT JOIN `设备_产量计酬` AS e ON e.sczl_gdbh = a.Gy0_gdbh AND e.sczl_yjno = a.Gy0_yjno AND e.sczl_gxh = a.Gy0_gxh
             WHERE
-                a.gd_statu = '2-生产中' 
-                AND b.Gy0_sbbh = '{$machine}' 
-                AND b.PD_WG = '1900-01-01 00:00:00' 
-                AND b.Gy0_sj1 <> '1900-01-01 00:00:00'
-                AND b.Gy0_sj1 < '2099-01-01 00:00:00' 
-            GROUP BY a.Gd_gdbh,b.Gy0_yjno, b.Gy0_gxh
-            ORDER BY b.Gy0_sj1";
+                b.gd_statu = '2-生产中' 
+                AND a.Gy0_sbbh LIKE '%{$machine}%' 
+                AND a.PD_WG = '1900-01-01 00:00:00' 
+                AND a.Gy0_sj1 <> '1900-01-01 00:00:00'
+                AND a.Gy0_sj1 < '2099-01-01 00:00:00' 
+            GROUP BY a.Gy0_gdbh,a.Gy0_yjno,a.Gy0_gxh
+            ORDER BY a.UniqId desc";
         $orderList = Db::query($sql);
         if (empty($orderList)){
             $this->success('未找到排产工单');
@@ -480,7 +468,12 @@ class Facility extends Api
             for ($i=1;$i<11;$i++){
                 if ($v['bh'.$i] != '' && $v['bh'.$i] != '000000'){
                     $name = \db('人事_基本资料')->where('员工编号',$v['bh'.$i])->field('rtrim(员工姓名) as 姓名')->find();
-                    $data[$k][$i-1] = $v['bh'.$i].' '.$name['姓名'].' ('.number_format($v['rate'.$i]*100,2).'%'.')';
+                    if ($v['rate'.$i] > 0){
+                        $data[$k][$i-1] = $v['bh'.$i].' '.$name['姓名'].' ('.number_format($v['rate'.$i]*100,2).'%'.')';
+                    }else{
+                        $data[$k][$i-1] = $v['bh'.$i].' '.$name['姓名'].' (0.00%'.')';
+                    }
+
                 }
             }
         }
@@ -510,11 +503,18 @@ class Facility extends Api
         if (empty($machine) || empty($workOrder) || empty($team)){
             $this->success('');
         }
+        $newTime = date('Y-m-d H:i:s',time());
+        if ($newTime < date('Y-m-d 08:30:00')) {
+            $sczlTime = date('Y-m-d 00:00:00', time() - 86400);
+        }else{
+            $sczlTime = date('Y-m-d 00:00:00');
+        }
         $name = \db('工单_基本资料')->where('Gd_gdbh',$workOrder)->field('rtrim(Gd_cpmc) as productName')->find();
         $where = [
             'sczl_gdbh' => $workOrder,
             'sczl_jtbh' => $machine,
             'sczl_bzdh' => $team,
+            'sczl_rq' => $sczlTime,
         ];
         $field = 'rtrim(sczl_gdbh) as 工单编号,rtrim(sczl_yjno) as yjno,rtrim(sczl_num) as 流程单号,rtrim(sczl_dedh) as dedh,rtrim(sczl_gxmc) as gxmc,rtrim(sczl_num) as 标牌号,rtrim(sczl_cl) as 产量,
         rtrim(sczl_zcfp) as 制程废品,rtrim(sczl_zccp) as 制程次品,rtrim(sczl_前工序废) as 前工序废,rtrim(sczl_来料少数) as 来料异常,rtrim(sczl_装版工时) as 装版工时,
@@ -2144,6 +2144,18 @@ class Facility extends Api
         if (empty($list)){
             $this->success('未获取工序');
         }
+        $time = \db('设备_产量计酬')
+            ->where('sczl_gdbh',$param['gdbh'])
+            ->where('sczl_yjno',$param['yjno'])
+            ->where('sczl_jtbh','like','%'.$param['machine'].'%')
+            ->order('UniqId desc')
+            ->value('sczl_sj2');
+        $newTime = date('Y-m-d H:i:s');
+        if ($newTime > date('Y-m-d 08:30:00') && $newTime < date('Y-m-d 20:30:00') && $time < date('Y-m-d 08:30:00')){
+            $time = date('Y-m-d 08:30:00');
+        }elseif ($newTime > date('Y-m-d 20:30:00') && $time < date('Y-m-d 20:30:00')){
+            $time = date('Y-m-d 20:30:00');
+        }
         foreach ($list as $key=>$value){
             if ((int)$value['gxh'] < 10){
                 $value['gxh'] = '0'.$value['gxh'];
@@ -2154,6 +2166,7 @@ class Facility extends Api
                 $list[$key]['name'] = $value['gxh'].'-'.$value['gxmc'].'【'.$value['add_gxmc'].'】';
             }
             unset($list[$key]['gxmc'],$list[$key]['add_gxmc']);
+            $list[$key]['time'] = $time;
         }
         $this->success('成功',$list);
     }

+ 39 - 40
application/api/controller/Manufacture.php

@@ -763,55 +763,54 @@ class Manufacture extends Api
         $where = '';
         if (isset($param['search'])){
             $where = "
-                        a.Gd_gdbh LIKE '%{$param['search']}%' 
-                        OR a.`成品名称` LIKE '%{$param['search']}%' 
+                        b.Gd_gdbh LIKE '%{$param['search']}%' 
+                        OR b.`成品名称` LIKE '%{$param['search']}%' 
                     ";
         }
-        $list = \db('工单_基本资料')
+        $list = \db('工单_工艺资料')
             ->alias('a')
             ->field([
-                'RTRIM( a.Gd_gdbh )' => '工单编号',
-                'RTRIM( a.`销售订单号` )' => '销售订单号',
+                'RTRIM( a.Gy0_yjno )' =>'yjno',
+                'RTRIM( a.Gy0_gxh )' => 'gxh',
+                'RTRIM( a.Gy0_gxmc )' => 'gxmc',
+                'RTRIM( a.Add_gxmc )' => 'Add_gxmc',
                 'RTRIM( c.yj_yjmc )' => '印件名称',
-                'RTRIM( b.Gy0_yjno )' =>'yjno',
-                'RTRIM( b.Gy0_gxh )' => 'gxh',
-                'RTRIM( b.Gy0_gxmc )' => 'gxmc',
-                'RTRIM( b.Add_gxmc )' => 'Add_gxmc',
-                'RTRIM( b.`Gy0_计划接货数` )' => '计划接货数',
-                'RTRIM( b.`Gy0_小时产能` )' => '小时产能',
-                'RTRIM( b.`工价系数` )' => '产能系数',
-                'RTRIM( b.`Gy0_生产工时` )' => '生产工时',
-                'RTRIM( b.Gy0_ls )' => 'ls',
-                'RTRIM( b.`Gy0_辅助工时` )' => '辅助工时',
-                'RTRIM( b.`Gy0_最早开工时间` )' => '最早开工时间',
-                'RTRIM( b.Gy0_sj1 )' => '计划开工时间',
-                'RTRIM( b.Gy0_sj2 )' => '计划完工时间',
-                'RTRIM( b.`Gy0_班次安排` )' => '班次安排',
-                'RTRIM( b.`工序备注` )' => '排单备注',
-                'RTRIM( a.Gd_cpmc )' => '产品名称',
-                'RTRIM( a.`成品名称` )' => '成品名称',
-                'RTRIM( a.`订单数量` )' => '订单数量',
-                'RTRIM( a.`计量单位` )' => '计量单位',
-                'RTRIM( a.`交货日期` )' => '交货日期',
-                'RTRIM( a.Gd_cpdh )' => '产品代号',
-                'RTRIM( a.`成品代号` )' => '成品代号',
-                'RTRIM( b.Gy0_sbbh )' => '设备编号',
-                'RTRIM( b.Gy0_SITE )' => '车间名称',
-                'RTRIM( b.UniqId )' => 'GYUID',
-                'RTRIM( a.Uniqid )' => 'UNIQID',
-                'SUM( d.sczl_cl )' => '已完成产量'
+                'RTRIM( a.`Gy0_计划接货数` )' => '计划接货数',
+                'RTRIM( a.`Gy0_小时产能` )' => '小时产能',
+                'RTRIM( a.`工价系数` )' => '产能系数',
+                'RTRIM( a.`Gy0_生产工时` )' => '生产工时',
+                'RTRIM( a.Gy0_ls )' => 'ls',
+                'RTRIM( a.`Gy0_辅助工时` )' => '辅助工时',
+                'RTRIM( a.`Gy0_最早开工时间` )' => '最早开工时间',
+                'RTRIM( a.Gy0_sj1 )' => '计划开工时间',
+                'RTRIM( a.Gy0_sj2 )' => '计划完工时间',
+                'RTRIM( a.`Gy0_班次安排` )' => '班次安排',
+                'RTRIM( a.`工序备注` )' => '排单备注',
+                'RTRIM( b.Gd_cpmc )' => '产品名称',
+                'RTRIM( b.`成品名称` )' => '成品名称',
+                'RTRIM( b.`订单数量` )' => '订单数量',
+                'RTRIM( b.`计量单位` )' => '计量单位',
+                'RTRIM( b.`交货日期` )' => '交货日期',
+                'RTRIM( b.Gd_cpdh )' => '产品代号',
+                'RTRIM( b.`成品代号` )' => '成品代号',
+                'RTRIM( a.Gy0_sbbh )' => '设备编号',
+                'RTRIM( a.Gy0_SITE )' => '车间名称',
+                'RTRIM( a.UniqId )' => 'GYUID',
+                'RTRIM( b.Uniqid )' => 'UNIQID',
+                'SUM( d.sczl_cl )' => '已完成产量',
+                'RTRIM( b.Gd_gdbh )' => '工单编号',
+                'RTRIM( b.`销售订单号` )' => '销售订单号',
             ])
-            ->join('工单_工艺资料 b','a.Gd_gdbh = b.Gy0_gdbh')
-            ->join('工单_印件资料 c','c.Yj_Gdbh = a.Gd_gdbh')
-            ->join('设备_产量计酬 d','a.Gd_gdbh = d.sczl_gdbh AND b.Gy0_sbbh = d.sczl_jtbh','LEFT')
+            ->join('工单_印件资料 c','c.Yj_Gdbh = a.Gy0_gdbh AND c.yj_Yjno = a.Gy0_yjno')
+            ->join('工单_基本资料 b','b.Gd_gdbh = a.Gy0_gdbh AND b.Gd_cpdh = c.yj_Yjdh')
+            ->join('设备_产量计酬 d','a.Gy0_gdbh = d.sczl_gdbh AND a.Gy0_sbbh = d.sczl_jtbh','LEFT')
             ->where([
-                'a.gd_statu' => '2-生产中',
-                'a.行号'=> '1',
-                'b.Gy0_sbbh' => ['LIKE','%'.$param['machine'].'%'],
-                'b.PD_WG' => '1900-01-01 00:00:00',
+                'b.gd_statu' => '2-生产中',
+                'a.Gy0_sbbh' => ['LIKE','%'.$param['machine'].'%'],
+                'a.PD_WG' => '1900-01-01 00:00:00',
             ])
             ->where($where)
-            ->group('a.Gd_gdbh,b.Gy0_yjno,b.Gy0_gxh')
+            ->group('a.Gy0_gdbh,a.Gy0_yjno,a.Gy0_gxh')
             ->order('Gy0_sj1')
             ->select();
         if (empty($list)){

+ 22 - 0
application/api/controller/ReportingWork.php

@@ -179,6 +179,28 @@ class ReportingWork extends Api
         }
         $this->success('请求成功',rtrim($data));
     }
+    /**
+     * 根据员工编号获取姓名-优化
+     * @ApiMethod GET
+     * @params string code
+     */
+    public function getStaffNameTwo(){
+        if (Request::instance()->isGet() == false) {
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->param();
+        if (!isset($params['code']) || empty($params['code'])) {
+            $this->error('参数错误');
+        }
+        $data = \db('人事_基本资料')->where('员工编号',$params['code'])->field('员工姓名')->select();
+        if (empty($data)){
+            $data = \db('人事_基本资料')->where('pycode',$params['code'])->field('rtrim(员工姓名) as 员工姓名')->select();
+        }
+        $num = count($data);
+        $res['total'] = $num;
+        $res['data'] = $data;
+        $this->success('请求成功',$res);
+    }
     /**
      * 提交巡查记录
      * @ApiMethod POST

+ 44 - 24
application/api/controller/Synchronization.php

@@ -33,32 +33,23 @@ class Synchronization extends Api
         }
         $j = $m = $n =0;
         foreach ($workOrderList as $key=>$value){
-            //插入产品资料
-            $productData = \db('产品_基本资料')
-                ->where('产品编号',$value['成品编号'])
+            //插入产品印件资料
+            $PrintData = \db('产品_印件资料')
+                ->where('yj_cpdh',$value['成品编号'])
+                ->where('yj_yjdh',$value['产品编号'])
                 ->count();
-            if ($productData === 0){
-                $clientCode = substr($value['成品编号'],0,5);
-                $product = [
-                    '客户编号' => $clientCode,
-                    '客户名称' => $value['客户名称'],
-                    '产品编号' => $value['成品编号'],
-                    '产品名称' => $value['成品名称'],
-                    '计量单位' => '万张',
-                    '状态' => '',
-                    'Mod_rq' => date('Y-m-d H:i:s',time()),
-                    'UniqID' => \db('产品_基本资料')->order('UniqID desc')->value('UniqID')+1,
+            if ($PrintData === 0){
+                $print = [
+                    'yj_cpdh' => $value['成品编号'],
+                    'yj_yjno' => $value['行号'],
+                    'yj_yjdh' => $value['产品编号'],
+                    'yj_yjmc' => $value['产品名称'],
+                    'sys_id' => '[1012/开单员]',
+                    'sys_rq' => date('Y-m-d H:i:s',time()),
+                    'UniqId' =>\db('产品_印件资料')->order('UniqID desc')->value('UniqID')+1,
                 ];
-                if (strpos($value['成品名称'],'小盒') === false){
-                    $product['产品类别'] = '条盒';
-                }else{
-                    $product['产品类别'] = '小盒';
-                }
-                $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
-                $productRes = \db()->query($productSql);
-                if ($productRes === false){
-                    $n++;
-                }
+                $printSql = \db('产品_印件资料')->fetchSql(true)->insert($print);
+                \db()->query($printSql);
             }
             //插入工单资料
             if (preg_match("/[A-Za-z]/",$value['工单编号'])){
@@ -565,6 +556,35 @@ class Synchronization extends Api
         }
         $i = 0;
         foreach ($OrganizationalDataList as $key=>$value){
+            $code = substr($value['物料代码'],0,3);
+            if ($code === 'Y10' || $code === 'Y14' || $code === 'Y12'){
+                //插入产品资料
+                $productData = \db('产品_基本资料')
+                    ->where('产品编号',$value['物料代码'])
+                    ->count();
+                $clientCode = substr($value['物料代码'],0,5);
+                $clientName = \db('物料_存货结构')->where('编号',$clientCode)->value('rtrim(名称)');
+                $product = [
+                    '客户编号' => $clientCode,
+                    '客户名称' => $clientName,
+                    '产品编号' => $value['物料代码'],
+                    '产品名称' => $value['物料名称'],
+                    '计量单位' => $value['领用单位'],
+                    '状态' => '',
+                    'U8UID' => $value['U8_UID'],
+                    '产品类别' => $value['规格'],
+                    'Sys_id' => '[272/超级用户]',
+                    'Sys_rq' => date('Y-m-d H:i:s',time()),
+                    'Mod_rq' => date('Y-m-d H:i:s',time()),
+                ];
+                if ($productData === 0){
+                    $product['UniqID'] = \db('产品_基本资料')->order('UniqID desc')->value('UniqID')+1;
+                    $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
+                }else{
+                    $productSql = \db('产品_基本资料')->where('产品编号',$value['物料代码'])->fetchSql(true)->update($product);
+                }
+                $productRes = \db()->query($productSql);
+            }
             $data = [
                 '物料代码'=>$value['物料代码'],
                 '物料名称'=>$value['物料名称'],

+ 8 - 0
application/api/controller/WorkOrder.php

@@ -2143,6 +2143,8 @@ class WorkOrder extends Api
           $PrintList[$key]['Yj_Gdbh'] = $param['workorder'];
           $PrintList[$key]['yj_Yjno'] = $value['yj_yjno'];
           $PrintList[$key]['yj_Yjdh'] = $value['yj_yjdh'];
+          $PrintList[$key]['yj_ks'] = $value['yj_ks'];
+          $PrintList[$key]['yj_ls'] = $value['yj_ls'];
           $PrintList[$key]['yj_平张投料'] = $number;
           $PrintList[$key]['Sys_id'] = $value['sys_id'];
           $PrintList[$key]['Uniqid'] = $PrintLastId + $key + 1;
@@ -2267,6 +2269,9 @@ class WorkOrder extends Api
             }else{
                 $number = $production[$key];
             }
+            if ($key>=1 && (int)$processList[$key-1]['Gy0_ls'] === 1 &&  (int)$value['Gy0_ls'] > 1){
+                $number = $number/(int)$value['Gy0_ls'];
+            }
             array_push($production,ceil($number-$wastage));
             $processSql = \db('工单_工艺资料')
                 ->where('UniqId',$value['UniqId'])
@@ -2315,6 +2320,9 @@ class WorkOrder extends Api
                 if (!empty(\db('工单_印件资料')->where('Yj_Gdbh',$workorder)->find())){
                     \db('工单_印件资料')->where('Yj_Gdbh',$workorder)->delete();
                 }
+                if (!empty(\db('工单_bom资料')->where('BOM_工单编号',$workorder)->find())){
+                    \db('工单_bom资料')->where('BOM_工单编号',$workorder)->delete();
+                }
                 \db()->commit();
             }catch (\Exception $e){
                 \db()->rollback();