| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\Db;
- /**
- * 中间表数据同步
- */
- class Synchronization extends Api
- {
- protected $noNeedLogin = ['*'];
- protected $noNeedRight = ['*'];
- /**
- * 工单资料数据同步
- */
- public function WorkOrderData()
- {
- 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);
- $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['警语版面'],
- '码源数量' => substr(str_replace('.','',$value['投料数量']),0,-2),
- '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['警语版面'],
- '码源数量' => substr(str_replace('.','',$value['投料数量']),0,-2),
- '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('请求错误');
- // }
- // }
- }
|