request->isGet() === false){ $this->error('请求错误'); } $db3 = Db::connect(config('database.db3')); $nowTime = date('Y-m-d H:i:s',time()); $oldTime = date('Y-m-d 00:00:00',time()-259200); $workOrderList = $db3->name('U8_06工单资料') ->where("U8传递时间",'between',[$oldTime,$nowTime]) ->where('工单编号','<>','') ->order('U8传递时间 desc') ->limit(10) ->select(); if (empty($workOrderList)){ $this->success('未获取新工单'); } $data = []; $i = $j = $m = $n =0; foreach ($workOrderList as $key=>$value){ $productData = \db('产品_基本资料') ->where('产品编号',$value['成品编号']) ->count(); if ($productData === 0){ $clientCode = substr($value['成品编号'],0,4); $product = [ '客户编号' => $clientCode, '客户名称' => $value['客户名称'], '产品编号' => $value['成品编号'], '产品名称' => $value['成品名称'], '计量单位' => '万张', '状态' => '', 'Mod_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++; } } $res = \db('工单_基本资料') ->where('Uniqid',$value['UniqId']) ->count(); $client = \db('产品_基本资料')->where('产品编号',$value['成品编号'])->field('rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称')->find(); if ($res === 0){ $data['add'][$i] = [ 'Gd_gdbh' => $value['工单编号'], '行号' => $value['行号'], 'Gd_客户代号' => $client['客户编号'], 'Gd_客户名称' => $client['客户名称'], 'Gd_khdh' => $value['客户编号'], 'Gd_khmc' => $value['客户名称'], '客户料号' => $value['客户料号'], '成品代号' => $value['成品编号'], '成品名称' => $value['成品名称'], 'Gd_cpdh' => $value['产品编号'], 'Gd_cpmc' => $value['产品名称'], '产品版本号' => $value['版本号'], '销售订单号' => $value['销售订单号'], '警语版面' => $value['警语版面'], 'Gd_desc' => $value['备注'], '接单日期' => $value['接单日期'], '开单日期' => $value['开单日期'], '交货日期' => $value['交货日期'], '订单数量' => $value['订单数量'], '实际投料' => $value['投料数量'], '产品单价' => $value['产品单价'], '计量单位' => '万张', '成本考核_胶印' => 1, '成本考核_凹印' => 1, '成本考核_丝印' => 1, '成本考核_模切' => 1, '成本考核_检验' => 1, 'gd_statu' => '3-计划中', 'Sys_id' => '[1012/开单员]', 'Sys_rq' => date('Y-m-d H:i:s',time()), 'Mod_rq' => date('Y-m-d H:i:s',time()), 'U8UID' => $value['U8_UID'], 'Uniqid' => $value['UniqId'] ]; $i++; }else{ $data['update'] = [ 'Gd_gdbh' => $value['工单编号'], '行号' => $value['行号'], 'Gd_客户代号' => $client['客户编号'], 'Gd_客户名称' => $client['客户名称'], 'Gd_khdh' => $value['客户编号'], 'Gd_khmc' => $value['客户名称'], '客户料号' => $value['客户料号'], '成品代号' => $value['成品编号'], '成品名称' => $value['成品名称'], 'Gd_cpdh' => $value['产品编号'], 'Gd_cpmc' => $value['产品名称'], '产品版本号' => $value['版本号'], '销售订单号' => $value['销售订单号'], '警语版面' => $value['警语版面'], 'Gd_desc' => $value['备注'], '接单日期' => $value['接单日期'], '开单日期' => $value['开单日期'], '交货日期' => $value['交货日期'], '订单数量' => $value['订单数量'], '实际投料' => $value['投料数量'], '产品单价' => $value['产品单价'], '计量单位' => '万张', '成本考核_胶印' => 1, '成本考核_凹印' => 1, '成本考核_丝印' => 1, '成本考核_模切' => 1, '成本考核_检验' => 1, 'gd_statu' => '3-计划中', 'Sys_id' => '[1012/开单员]', 'Sys_rq' => date('Y-m-d H:i:s',time()), 'Mod_rq' => date('Y-m-d H:i:s',time()), 'U8UID' => $value['U8_UID'] ]; $updateSql = \db('工单_基本资料')->where('Uniqid',$value['UniqId'])->fetchSql(true)->update($data['update']); $updateRes = \db()->query($updateSql); if ($updateRes === false){ $j++; } } } if ($i !== 0){ $addSql = \db('工单_基本资料')->fetchSql(true)->insertAll($data['add']); $result = \db()->query($addSql); if ($result === false){ $m++; } } if ($j !== 0 || $m !==0 || $n !== 0){ $this->error('工单资料同步失败'); }else{ $this->success('工单资料同步成功'); } } /** * 工单bom资料同步 */ public function WorkOrderBomData() { if ($this->request->isGet() === false){ $this->error('请求错误'); } $db3 = Db::connect(config('database.db3')); $nowTime = date('Y-m-d H:i:s',time()); $oldTime = date('Y-m-d 00:00:00',time()-259200); $BomDataList = $db3->name('U8_09工单bom') ->where('U8传递时间','between',[$oldTime,$nowTime]) ->where('BOM_工单编号','<>','') ->order('U8传递时间 desc') ->select(); if (empty($BomDataList)){ $this->success('未找到新工单BOM'); } $data = []; $i = $j = $m = 0; foreach ($BomDataList as $key=>$value){ $res = \db('工单_bom资料')->where('UNIQID',$value['UNIQID'])->count(); if ($res === 0){ $data['add'][$i] = [ 'BOM_方案' => '工单评审定案', 'BOM_工单编号' => $value['BOM_工单编号'], 'BOM_版本' => $value['BOM_版本'], 'BOM_工单行号' => $value['BOM_工单行号'], 'BOM_行号' => $value['BOM_行号'], 'BOM_产品编号' => $value['BOM_产品编号'], 'BOM_物料编码' => $value['BOM_物料编码'], 'BOM_物料名称' => $value['BOM_物料名称'], 'BOM_投料单位' => $value['BOM_投料单位'], 'BOM_投入数' => $value['BOM_投入数'], 'BOM_产出数' => $value['BOM_产出数'], 'BOM_产出单位' => $value['BOM_产出单位'], 'BOM_标准用量' => $value['BOM_标准用量'], 'BOM_实际用量' => $value['BOM_实际用量'], 'BOM_计划用量' => $value['BOM_计划用量'], 'BOM_核算价格' => 0, 'Bom_领用工序' => '01-01', 'BOM_备注' => $value['BOM_备注'], 'Mod_rq' => date('Y-m-d H:i:s',time()), 'U8UID' => $value['U8_UID'], 'UNIQID' => $value['UNIQID'] ]; $i++; }else{ $data['update'] = [ 'BOM_方案' => '工单评审定案', 'BOM_工单编号' => $value['BOM_工单编号'], 'BOM_版本' => $value['BOM_版本'], 'BOM_工单行号' => $value['BOM_工单行号'], 'BOM_行号' => $value['BOM_行号'], 'BOM_产品编号' => $value['BOM_产品编号'], 'BOM_物料编码' => $value['BOM_物料编码'], 'BOM_物料名称' => $value['BOM_物料名称'], 'BOM_投料单位' => $value['BOM_投料单位'], 'BOM_投入数' => $value['BOM_投入数'], 'BOM_产出数' => $value['BOM_产出数'], 'BOM_产出单位' => $value['BOM_产出单位'], 'BOM_标准用量' => $value['BOM_标准用量'], 'BOM_实际用量' => $value['BOM_实际用量'], 'BOM_计划用量' => $value['BOM_计划用量'], 'BOM_核算价格' => 0, 'Bom_领用工序' => '01-01', 'BOM_备注' => $value['BOM_备注'], 'Mod_rq' => date('Y-m-d H:i:s',time()), 'U8UID' => $value['U8_UID'] ]; $updateSql = \db('工单_bom资料') ->where('UNIQID',$value['UNIQID']) ->fetchSql(true) ->update($data['update']); $updateRes = \db()->query($updateSql); if ($updateRes === false){ $j++; } } } if ($i !== 0){ $addSql = \db('工单_bom资料')->fetchSql(true)->insertAll($data['add']); $addRes = \db()->query($addSql); if ($addRes === false){ $m++; } } if ($j !== 0 || $m !== 0){ $this->error('工单BOM资料同步失败'); }else{ $this->success('工单BOM资料同步成功'); } } // /** // * 物料领用数据同步 // */ // // public function MaterialRequisitionData() // { // if ($this->request->isGet() === false){ // $this->error('请求错误'); // } // $db3 = Db::connect(config('database.db3')); // $nowTime = date('Y-m-d H:i:s',time()); // $oldTime = date('Y-m-d 00:00:00',time()-259200); // $MaterialDataList = $db3->name('U8_07物料领用') // ->where('U8传递时间','between',[$oldTime,$nowTime]) // ->where('工单编号','<>','') // ->order('U8传递时间 desc') // ->select(); // if (empty($MaterialDataList)){ // $this->success('未找到新的物料领用记录'); // } // $data = []; // $i = $j = $m = 0; // foreach ($MaterialDataList as $key=>$value){ // $res = \db('物料_收发记录')->where('Uniqid',$value['UniqId'])->count(); // if ($res === 0){ //// $data['add'] // } // } // } // // //产品资料同步 // // public function ProductData() // { // if ($this->request->isGet() === false){ // $this->error('请求错误'); // } // } }