success('请求成功'); } /** * 设置机台状态 * @ApiMethod POST * @params */ public function setMachineStatus(){ if (Request::instance()->isPost() == false){ $this->error('非法请求'); } $params = Request::instance()->request(); if (!isset($params['machine']) || empty($params['machine'])){ $this->error('参数不能为空'); } $machine = $params['machine'].'#'; $data = []; // $lastData = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find(); $lastData = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find(); if ($lastData['UniqId'] < 160000000){ $id = 160000000; }else{ $id = $lastData['UniqId'] + 1; } if (empty($params['order'])){ unset($lastData['UniqId']); $data = $lastData; $data['当前状态'] = $params['status']; }else{ $data['当前状态'] = $params['status']; $data['时间'] = date('Y-m-d H:i:s'); $data['设备编号'] = $machine; $data['工单编号'] = $params['order']; $data['印件号'] = $params['yjno']; $data['工序号'] = (int)substr($params['gy_name'],0,2); $data['工序名称'] = $params['gy_name']; $data['当班产量'] = $params['production_now']; $data['累计产量'] = $params['production_all']; $class = explode(',',$params['class']); $where = []; $where['sczl_jtbh'] = $machine; for ($i=1;$i<=count($class);$i++){ $where['sczl_bh'.$i] = $class[$i-1]; } // $classData = \db('设备_班组资料')->where($where)->field('sczl_bzdh,UniqId')->find(); $classData = \db('设备_班组资料')->where($where)->field('sczl_bzdh,UniqId')->find(); $data['班组编号'] = $classData['sczl_bzdh']; $data['班组ID'] = $classData['UniqId']; // 获取当前时间 $current_time = time(); // 设置时间范围 $start_time1 = strtotime(date('Y-m-d') . ' 08:30:00'); $end_time1 = strtotime(date('Y-m-d') . ' 20:30:00'); $end_time2 = strtotime(date('Y-m-d') . ' 24:00:00'); $start_time3 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 08:30:00'); // 判断当前时间属于哪个时间范围 if ($current_time >= $start_time1 && $current_time <= $end_time1) { $data['开工时间'] = date('Y-m-d') . ' 08:30:00'; } elseif ($current_time > $end_time1 && $current_time <= $end_time2) { $data['开工时间'] = date('Y-m-d') . ' 20:30:00'; } elseif ($current_time > $end_time1 && $current_time <= $start_time3) { $data['开工时间'] = date('Y-m-d',strtotime('+1 day')) . ' 08:30:00'; } $option['Gy0_gdbh'] = $params['order']; $option['Gy0_yjno'] = $params['yjno']; $option['Gy0_gxh'] = $data['工序号']; $data['任务ID'] = \db('工单_工艺资料')->where($option)->value('UniqId'); } $data['UniqId'] = $id; // $sql = \db('设备_产量采集')->fetchSql(true)->insert($data); $sql = \db('设备_产量采集')->fetchSql(true)->insert($data); $res = Db::query($sql); if ($res === false){ $this->error('设置失败'); }else{ $this->success('设置成功'); } } /** * 设置工单工序完工 * @ApiMethod POST * @params string order * @params string yjno * @params string gxh */ public function setProcessStatus(){ if (Request::instance()->isPost() == false){ $this->error('非法请求'); } $params = Request::instance()->request(); if (!isset($params['order']) || empty($params['order'])){ $this->error('参数不能为空'); } if (!isset($params['yjno']) || empty($params['yjno'])){ $this->error('参数不能为空'); } if (!isset($params['gxh']) || empty($params['gxh'])){ $this->error('参数不能为空'); } $where['Gy0_gdbh'] = $params['order']; $where['Gy0_yjno'] = $params['yjno']; $where['Gy0_gxh'] = $params['gxh']; $date = date('Y-m-d H:i:s'); $res = \db('工单_工艺资料')->where($where)->setField('PD_WG',$date); if ($res === false){ $this->error('设置失败'); }else{ $this->success('设置成功'); } } /** * 根据机台获取生产信息 * @ApiMethod GET * @params string machine */ public function getProduceInfo(){ if (Request::instance()->isGet() == false) { $this->error('非法请求'); } $params = Request::instance()->param(); if (!isset($params['machine']) || empty($params['machine'])) { $this->error('参数错误'); } $machine = $params['machine'].'#'; $data = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find(); $list = []; $list['order'] = $data['工单编号']; $list['yjno'] = $data['印件号']; $name = \db('工单_基本资料')->where('Gd_Gdbh',$data['工单编号'])->value('成品名称'); $list['product_name'] = rtrim($name); $where['Gy0_gdbh'] = $data['工单编号']; $where['Gy0_yjno'] = $data['印件号']; $where['Gy0_gxh'] = $data['工序号']; $gxmc = \db('工单_工艺资料')->where($where)->value('Gy0_gxmc'); $list['gxmc'] = rtrim($gxmc); $this->success('请求成功',$list); } /** * 根据员工编号获取姓名 * @ApiMethod GET * @params string code */ public function getStaffName(){ if (Request::instance()->isGet() == false) { $this->error('非法请求'); } $params = Request::instance()->param(); if (!isset($params['code']) || empty($params['code'])) { $this->error('参数错误'); } if (substr($params['code'],0,2) == 'ZM'){ $code = $params['code']; }else{ if (strlen($params['code']) != 5){ $length = strlen($params['code']); $len = 5 -$length; $str = ''; for ($i=0;$i<$len;$i++){ $str .= '0'; } $code = 'ZM'.$str.$params['code']; }else{ $code = 'ZM'.$params['code']; } } $data = \db('人事_基本资料')->where('员工编号',$code)->value('员工姓名'); $this->success('请求成功',rtrim($data)); } /** * 提交巡查记录 * @ApiMethod POST * @params */ public function submitPatrolRecord(){ if (Request::instance()->isPost() == false){ $this->error('非法请求'); } $params = Request::instance()->request(); if (empty($params['machine']) || empty($params['type']) || empty($params['order'])) { $this->error('参数错误'); } if (empty($params['yjno']) || empty($params['process']) || empty($params['no'])) { $this->error('参数错误'); } $data = []; $data['类别'] = $params['type']; $data['工单编号'] = $params['order']; $data['印件号'] = $params['yjno']; $data['工序名称'] = ''; $data['班组编号'] = ''; $data['开工时间'] = ''; $data['流程单号'] = $params['process']; $data['设备编号'] = $params['machine'].'#'; $data['检验项目'] = '['.$params['no'].'/'.$params['name'].']'; $data['检验备注'] = $params['remark']; $data['提交时间'] = date('Y-m-d H:i:s'); $data['sys_rq'] = date('Y-m-d H:i:s'); $produce = \db('设备_产量采集')->where('设备编号',$params['machine'].'#')->where('工单编号',$params['order'])->order('UniqId desc')->find(); // $produce = \db('设备_产量采集')->where('设备编号',$params['machine'].'#')->where('工单编号',$params['order'])->order('UniqId desc')->find(); if (!empty($produce)){ $data['工序名称'] = $produce['工序名称']; $data['班组编号'] = rtrim($produce['班组编号']); $data['开工时间'] = $produce['开工时间']; } // $res = \db('制程检验_记录')->field('UniqId')->order('UniqId desc')->find(); $res = \db('制程检验_记录')->field('UniqId')->order('UniqId desc')->find(); if ($res['UniqId'] < 100000000){ $data['UniqId'] = 100000000; }else{ $data['UniqId'] = $res['UniqId'] + 1; } // $sql = \db('制程检验_记录')->fetchSql(true)->insert($data); $sql = \db('制程检验_记录')->fetchSql(true)->insert($data); $result = Db::query($sql); if ($result === false){ $this->error('提交失败'); }else{ $this->success('提交成功'); } } /** * 获取报工单其他信息 * @ApiMethod Get * @params string machine */ public function getMachineReportInfo(){ if (Request::instance()->isGet() == false) { $this->error('非法请求'); } $params = Request::instance()->param(); if (!isset($params['machine']) || empty($params['machine'])) { $this->error('参数错误'); } $machine = $params['machine'].'#'; $data = []; $produce = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find(); $data['order_info']['order'] = $produce['工单编号']; $data['order_info']['yjno'] = $produce['印件号']; $data['order_info']['gxh'] = $produce['工序号']; $data['order_info']['gxmc'] = $produce['工序名称']; $product = \db('工单_基本资料')->alias('a') ->join('工单_工艺资料 b','a.Gd_Gdbh = b.Gy0_gdbh','left') ->join('工单_印件资料 c','a.Gd_Gdbh = c.Yj_gdbh','left') ->field('a.成品名称,b.Gy0_gxmc,c.yj_yjmc') ->where('a.Gd_Gdbh',$produce['工单编号']) ->where('b.Gy0_yjno',$produce['印件号']) ->where('b.Gy0_gxh',$produce['工序号']) ->where('c.Yj_yjno',$produce['印件号']) ->select(); $data['order_info']['product_name'] = ''; $data['order_info']['yj_name'] = ''; $data['order_info']['gy_name'] = ''; if (!empty($product)){ $data['order_info']['product_name'] = rtrim($product[0]['成品名称']); $data['order_info']['yj_name'] = rtrim($product[0]['yj_yjmc']); $data['order_info']['gy_name'] = rtrim($product[0]['Gy0_gxmc']); } $class = \db('设备_班组资料')->where('UniqId',$produce['班组ID'])->find(); for ($i=1;$i<11;$i++){ $name = ''; if (!empty($class['sczl_bh'.$i])){ $name = \db('人事_基本资料')->where('员工编号',$class['sczl_bh'.$i])->value('员工姓名'); } $class['sczl_name'.$i] = rtrim($name); } $data['class'] = $class; $where['st_gdbh'] = $produce['工单编号']; $machine = substr($machine,0,2); if ($machine == 'JY' || $machine == 'QZ'){ $where['st_dpt'] = '胶印车间'; }elseif ($machine == 'WY' || $machine == 'DW'){ $where['st_dpt'] = '凹印车间'; }elseif ($machine == 'SY' || $machine == 'PM'){ $where['st_dpt'] = '丝印车间'; }elseif ($machine == 'MQ' || $machine == 'TJ'){ $where['st_dpt'] = '烫模车间'; }elseif ($machine == 'JP'){ $where['st_dpt'] = '检验车间'; } $sql = "SELECT RTRIM(a.供方批次) as batch, rtrim(采购单号) as 采购单号,st_wlbh, MIN(a.Uniqid) AS Uniqid,rtrim(b.`BOM_物料名称`) as `BOM_物料名称` FROM `物料_收发记录` a LEFT JOIN `工单_bom资料` b ON a.st_gdbh = b.`BOM_工单编号` AND a.st_wlbh = b.`BOM_物料编码` WHERE a.st_gdbh = '{$where['st_gdbh']}' AND a.st_dpt = '{$where['st_dpt']}' GROUP BY batch ORDER BY a.st_wlbh"; $material = Db::query($sql); $data['bom'] = $material; $this->success('请求成功',$data); } /** * 日产量上报 * @ApiMethod POST * @params array data */ public function submitDailyProduction(){ if (Request::instance()->isPost() == false){ $this->error('非法请求'); } $params = Request::instance()->request(); $machine = $params['sczl_jtbh'].'#'; $batchData = []; //批次追踪数据 $batch = $params['bom']; $data = $params;//产量数据 $data['sczl_type'] = $params['sczl_gxmc']; $data['sczl_前工序废'] = $params['last_fp']; $data['sczl_来料少数'] = $params['less_sl']; $data['sczl_装版总工时'] = $params['zb_time']; $data['sczl_打样总工时'] = $params['dy_time']; $data['sczl_设备运行工时'] = $params['run_time']; $data['sczl_jtbh'] = $machine; $data['码包'] = $params['code']; $data['主电表'] = $params['main_meter']; $data['辅电表'] = $params['auxiliary_meter']; unset($data['last_fp']); unset($data['less_sl']); unset($data['zb_time']); unset($data['dy_time']); unset($data['run_time']); unset($data['code']); unset($data['main_meter']); unset($data['auxiliary_meter']); unset($data['bom']); $start_time = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find(); $data['开工时间'] = $start_time['开工时间']; $sys_id = \db('设备_基本资料')->where('设备编号',$machine)->value('sys_sbID'); $data['sys_id'] = '['.$sys_id.'/'.$machine.']'; $UniqId = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId'); if ($UniqId < 10000000){ $data['UniqId'] = 10000000; }else{ $data['UniqId'] = $UniqId + 1; } $data['sczl_Pgcl'] = 0; $data['sczl_oil'] = 0; $data['sczl_计产系数'] = 0; $data['sczl_工价系数'] = 0; $data['sczl_装版工时'] = 0; $data['sczl_保养工时'] = 0; $data['sczl_打样工时'] = 0; $data['sczl_异常停机工时'] = 0; $data['sczl_异常工时1'] = 0; $data['sczl_异常类型1'] = ''; $data['sczl_废品率系数'] = ''; $data['sczl_desc'] = ''; $data['sczl_wgsj'] = '1900-01-01 00:00:00'; $data['码开始行'] = 0; $data['码结束行'] = 0; $data['mod_rq'] = '1900-01-01 00:00:00'; $data['sys_rq'] = date('Y-m-d H:i:s'); $batchData = explode(',',$batch); $newData = []; $batchUniqId = \db('物料_批次跟踪')->order('UniqId desc')->value('UniqId'); if ($batchUniqId < 10000000){ $batchUniqId = 10000000; } foreach ($batchData as $key=>$item){ $batchUniqId++; $val = explode('-',$item); $newData[$key]['wlbh'] = $val[0]; $newData[$key]['wlBatch'] = $val[1]; $newData[$key]['sczl_gdbh'] = $data['sczl_gdbh']; $newData[$key]['sczl_yjno'] = $data['sczl_yjno']; $newData[$key]['sczl_gxh'] = $data['sczl_gxh']; $newData[$key]['sczl_gxmc'] = $data['sczl_gxmc']; $newData[$key]['sczl_num'] = $data['sczl_num']; $newData[$key]['sys_id'] = $data['sys_id']; $newData[$key]['sys_rq'] = $data['sys_rq']; $newData[$key]['UniqID'] = $batchUniqId; } $sql = \db('设备_产量计酬')->fetchSql(true)->insert($data); $res = Db::query($sql); $batch_sql = \db('物料_批次跟踪')->fetchSql(true)->insertAll($newData); $batch_res = Db::query($batch_sql); // $res = true; // $batch_res = true; // Db::startTrans(); // try { // Db::commit(); // }catch (\Exception $e){ // Db::rollback(); // } if ($res === false || $batch_res === false){ $this->error('报工失败'); }else{ $this->success('报工成功'); } } /** * 获取机台编号 * @ApiMethod POST * @params string addr */ public function getMachineMac(){ if (Request::instance()->isGet() == false){ $this->error('非法请求'); } $params = Request::instance()->get(); $data = \db('设备_基本资料')->where('sys_sbID',$params['addr'])->field('设备编号,rtrim(使用部门) as 使用部门')->find(); $this->success('请求成功',$data); } }