| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use app\common\library\token\driver\Redis;
- use think\Db;
- use Overtrue\Pinyin;
- /**
- * 中间表数据同步
- */
- class Synchronization extends Api
- {
- protected $noNeedLogin = ['*'];
- protected $noNeedRight = ['*'];
- /**
- * 工单资料数据同步
- */
- public function WorkOrderData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = Db::connect(config('database.db3'));
- $workOrderList = $db3->name('U8_06工单资料')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->where('U8插入类型', '<>', '关闭')
- ->select();
- if (empty($workOrderList)) {
- $this->success('未获取新工单');
- }
- $j = $m = $n = 0;
- foreach ($workOrderList as $key => $value) {
- $sort = 0;
- if (substr($value['工单编号'], 0, 1) === 'Y') {
- $sort = 1;
- } else if (substr($value['工单编号'], -2) === 'JZ' || substr($value['工单编号'], -2) === 'JS') {
- $sort = 2;
- }
- $code = substr($value['成品编号'], 0, 5);
- $client = \db('物料_存货结构')->where('编号', $code)->value('名称');
- //插入产品资料
- $processData = \db('产品_基本资料')
- ->where('产品编号', $value['成品编号'])
- ->count();
- $detail = \db('物料_存货编码')->where('物料代码', $value['成品编号'])->find();
- if ($processData === 0) {
- $product = [
- '客户编号' => $code,
- '客户名称' => $client,
- '产品编号' => $value['成品编号'],
- '产品名称' => $value['成品名称'],
- '计量单位' => $detail['领用单位'],
- '状态' => '',
- 'U8UID' => $detail['U8UID'],
- '产品类别' => $detail['规格'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => date('Y-m-d H:i:s', time()),
- ];
- $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
- \db()->query($productSql);
- }
- //插入工单资料
- if (substr($value['工单编号'], 0, 1) === 'Y' || substr($value['工单编号'], -2) === 'JZ' || substr($value['工单编号'], -2) === 'JS') {
- $data = [
- 'Gd_gdbh' => $value['工单编号'],
- '行号' => $value['行号'],
- 'Gd_客户代号' => $code,
- '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'],
- '工单分类' => $sort
- ];
- //获取版本号
- $banben = \db('工单_基本资料')
- ->where('Gd_cpdh',$data['Gd_cpdh'])
- ->order('Sys_rq desc')
- ->column('产品版本号');
- if ($banben){
- $data['产品版本号'] = $banben[0];
- }
- //插入数据
- $workOrderdata = \db('工单_基本资料')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($workOrderdata === 0) {
- $addSql = \db('工单_基本资料')->fetchSql(true)->insert($data);
- $result = \db()->query($addSql);
- if ($result === false) {
- $m++;
- } else {
- $sqlString = $db3->name('U8_06工单资料')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- unset($data['Uniqid']);
- unset($data['行号']);
- $updateSql = \db('工单_基本资料')->where('U8UID', $value['U8_UID'])->fetchSql(true)->update($data);
- $updateRes = \db()->query($updateSql);
- if ($updateRes === false) {
- $j++;
- } else {
- $sqlString = $db3->name('U8_06工单资料')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- }
- 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'));
- $BomDataList = $db3->name('U8_09工单bom')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->order('U8传递时间 desc')
- ->select();
- if (empty($BomDataList)) {
- $this->success('未找到新工单BOM');
- }
- $j = $m = 0;
- foreach ($BomDataList as $key => $value) {
- $res = \db('工单_bom资料')->where('U8UID', $value['U8_UID'])->count();
- if (preg_match("/[A-Za-z]/", $value['BOM_工单编号'])) {
- $workcode = $value['BOM_工单编号'];
- } else {
- $workcode = 'Y' . $value['BOM_工单编号'];
- }
- $data = [
- 'BOM_方案' => '工单评审定案',
- 'BOM_工单编号' => $workcode,
- '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'],
- ];
- if ($res === 0) {
- $addSql = \db('工单_bom资料')->fetchSql(true)->insert($data);
- $addRes = \db()->query($addSql);
- if ($addRes === false) {
- $m++;
- } else {
- $sqlString = $db3->name('U8_09工单bom')
- ->where('UNIQID', $value['UNIQID'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- unset($data['UNIQID']);
- $updateSql = \db('工单_bom资料')
- ->where('U8UID', $value['U8_UID'])
- ->fetchSql(true)
- ->update($data);
- $updateRes = \db()->query($updateSql);
- if ($updateRes === false) {
- $j++;
- } else {
- $sqlString = $db3->name('U8_09工单bom')
- ->where('UNIQID', $value['UNIQID'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- 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'));
- $MaterialDataList = $db3->name('U8_11存货结构')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($MaterialDataList)) {
- $this->success('未找到新的物料存货结构');
- }
- $i = 0;
- foreach ($MaterialDataList as $key => $value) {
- $data = [
- '编号' => $value['编号'],
- '名称' => $value['名称'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => date('Y-m-d H:i:s', time()),
- 'U8UID' => $value['U8_UID'],
- ];
- if ($value['U8插入类型'] === '新增') {
- $sql = \db('物料_存货结构')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_11存货结构')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('物料_存货结构')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_11存货结构')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('存货结构同步失败');
- } else {
- $this->success('存货结构同步成功');
- }
- }
- /**
- * 人事基本资料同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function PersonnelData()
- {
- //拼音类
- $pinyin = new Pinyin\Pinyin();
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $PersonnelDataList = $db3->name('U8_02人事资料')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($PersonnelDataList)) {
- $this->success('未找到新的人事资料');
- }
- $i = 0;
- foreach ($PersonnelDataList as $key => $value) {
- //获取姓名首字母
- $pycode = $pinyin->abbr($value['员工姓名']);
- $nameCode = strtoupper($pycode);
- $data = [
- '工卡编号' => '',
- '卡钟设定' => '',
- '打卡设置' => '',
- '员工编号' => $value['员工编号'],
- '员工姓名' => $value['员工姓名'],
- '性别' => $value['性别'],
- '聘用日期' => $value['聘用日期'],
- '转正日期' => $value['转正日期'],
- 'U8离职日期' => $value['离职日期'],
- 'MES离职日期' => $value['离职日期'],
- '扣减司龄' => 0,
- '部门编码' => $value['部门编码'],
- '所在部门' => $value['所在部门'],
- '人员类别' => $value['人员类别'],
- '人员性质' => $value['人员性质'],
- '班次类型' => '',
- '标准工时制' => '',
- '职称职务' => $value['职称职务'],
- '薪资级别' => $value['级别'],
- '工资表类别' => '',
- '基本工资' => '',
- '绩效工资1' => '',
- '绩效工资2' => '',
- '技能工资' => '',
- '岗位津贴' => '',
- '竞业补贴' => '',
- '专业技术津贴' => '',
- '技工技师津贴' => '',
- '特殊工种津贴' => '',
- '各类奖项津贴' => '',
- '职危津贴' => '',
- '夜班津贴' => '',
- '全勤津贴' => '',
- '住房津贴' => '',
- '高温津贴' => '',
- '用餐津贴' => '',
- '司龄津贴' => '',
- '联系电话' => $value['联系电话'],
- '合同类型' => '',
- '合同起始日期' => '1900-01-01 00:00:00',
- '合同终止日期' => '1900-01-01 00:00:00',
- '合同备注' => '',
- '出生日期' => $value['出生日期'],
- 'pycode' => $nameCode,
- '籍贯' => '',
- '民族' => '',
- '身份证号' => $value['身份证号'],
- '证件有效日期' => '1900-01-01 00:00:00',
- '发证机关' => '',
- '家庭住址' => '',
- '学历' => '',
- '婚姻状况' => '',
- '社保开始日期' => '1900-01-01 00:00:00',
- '开户银行' => $value['开户银行'],
- '开户账号' => $value['开户账号'],
- '存折办理日期' => '1900-01-01 00:00:00',
- '紧急电话' => '',
- '照片ID' => '',
- '在职状态' => $value['在职状态'],
- 'U8在职' => $value['在职状态'],
- '薪酬核算分组' => '',
- '考勤类型' => '',
- '班组代号' => '',
- 'sys_id' => '[272/超级用户]',
- 'sys_rq' => date('Y-m-d H:i:s', time()),
- 'mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- ];
- $number = \db('人事_基本资料')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('人事_基本资料')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_02人事资料')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('人事_基本资料')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_02人事资料')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('人事资料同步失败');
- } else {
- $this->success('人事资料同步成功');
- //14906570@qq.com
- }
- }
- /**
- * 人事组织结构
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function OrganizationalStructureData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $OrganizationalDataList = $db3->name('U8_01组织结构')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的组织结构');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $data = [
- '编号' => $value['编号'],
- '名称' => $value['名称'],
- '状态' => $value['状态'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- ];
- $number = \db('人事_组织结构')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('人事_组织结构')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_01组织结构')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('人事_组织结构')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_01组织结构')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('人事组织结构同步失败');
- } else {
- $this->success('人事组织结构同步成功');
- }
- }
- /**
- * 物料存货编码数据同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function InventoryCodeData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $OrganizationalDataList = $db3->name('U8_04物料编码')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的物料编码');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $code = substr($value['物料代码'], 0, 3);
- if ($code === 'Y10' || $code === 'Y14' || $code === 'Y12' || $code === 'J00' || $code === 'J01' || $code === 'J02') {
- //插入产品资料
- $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) {
- $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
- } else {
- $productSql = \db('产品_基本资料')->where('产品编号', $value['物料代码'])->fetchSql(true)->update($product);
- }
- $productRes = \db()->query($productSql);
- }
- $data = [
- '物料代码' => $value['物料代码'],
- '物料名称' => $value['物料名称'],
- '规格' => $value['规格'],
- '采购单位' => $value['采购单位'],
- '领用单位' => $value['领用单位'],
- '单位换算率' => $value['单位换算率'],
- '单价' => $value['单价'],
- '币种' => $value['币种'],
- '物料备注' => $value['物料备注'],
- '状态' => $value['状态'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- ];
- $number = \db('物料_存货编码')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('物料_存货编码')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_04物料编码')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('物料_存货编码')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- //修改产品印件资料
- $yjSql = \db('产品_印件资料')
- ->fetchSql(true)
- ->where('yj_yjdh',$data['物料代码'])
- ->update(['yj_yjmc' => $data['物料名称']]);
- $yjRes = \db()->query($yjSql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_04物料编码')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('物料编码同步失败');
- } else {
- $this->success('物料编码同步成功');
- }
- }
- /**
- * 客户供应商数据同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function CustomerSupplierData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $OrganizationalDataList = $db3->name('U8_03客户供应商')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的客户供应商');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $data = [
- '类型' => $value['类型'],
- '编号' => $value['编号'],
- '名称' => $value['名称'],
- '简称' => $value['简称'],
- '地址' => $value['地址'],
- '对口部门' => $value['对口部门'],
- '联系人' => $value['联系人'],
- '电话' => $value['电话'],
- '业务员' => $value['业务员'],
- '币种' => $value['币种'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- 'UniqId' => $value['UniqId'],
- ];
- $number = \db('erp_客户供应商')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('erp_客户供应商')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_03客户供应商')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('erp_客户供应商')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_03客户供应商')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('客户供应商同步失败');
- } else {
- $this->success('客户供应商同步成功');
- }
- }
- /**
- * 物料领用记录数据同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function ReceiptRecordData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $OrganizationalDataList = $db3->name('U8_07物料领用')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->order('U8传递时间')
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的物料领用记录');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- foreach ($value as $k => $v) {
- $value[$k] = rtrim($v);
- }
- if (preg_match("/[A-Za-z]/", $value['工单编号'])) {
- $workcode = $value['工单编号'];
- } else {
- $workcode = 'Y' . $value['工单编号'];
- }
- $data = [
- 'st_rq' => $value['日期'],
- 'st_jylb' => $value['交易类别'],
- 'st_gdbh' => $workcode,
- '采购单号' => $value['采购单号'],
- '供方批次' => $value['供方批次'],
- 'st_wlbh' => $value['物料编号'],
- 'st_sl' => $value['领用数量'],
- 'st_oldSl' => $value['领用数量'],
- 'st_dw' => $value['领用单位'],
- '领用单价' => $value['领用单价'],
- 'st_desc' => $value['备注'],
- '仓库编号' => $value['仓库编号'],
- 'st_dpt' => $value['采购单号'],
- 'st_jtbh' => $value['机台编号'],
- 'sys_id' => '[272/超级用户]',
- 'sys_rq' => date('Y-m-d H:i:s', time()),
- 'mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- 'cpdh' => $value['产品编码'],
- ];
- // 联表
- $materialInfo = \db('物料_存货编码')
- ->where('物料代码', $data['st_wlbh'])
- ->field('规格 as yj_tlgg, 物料名称 as yj_zzmc')
- ->find();
- // 单位换算
- if ($data['st_dw'] === '吨' && !empty($materialInfo)) {
- $spec = $materialInfo['yj_tlgg'];
- $materialName = $materialInfo['yj_zzmc'];
- if (!empty($spec) && strpos($spec, '×') !== false) {
- $dimensions = explode('×', $spec);
- $number1 = (int)trim($dimensions[0]);
- $number2 = (int)trim($dimensions[1]);
- if (!empty($materialName) && preg_match('/(\d+(\.\d+)?)g/', $materialName, $matches)) {
- if ($number1 > 0 && $number2 > 0 && $matches[1] > 0) {
- $data['st_sl'] = round(($data['st_sl'] * 1000 * 1000) / $matches[1] / ($number1 * $number2) * 1000000);
- $data['st_dw'] = '张';
- }
- }
- }
- }
- $number = \db('物料_收发记录')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('物料_收发记录')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $logData = [
- 'Gd_gdbh' => $data['st_gdbh'], // 使用原始工单编号
- 'ModifyUser' => '系统同步',
- 'ModifyTime' => date('Y-m-d H:i:s'),
- 'FieldName' => $data['U8UID'],
- 'OldValue' => $data['st_sl'],
- 'NewValue' => $data['仓库编号'],
- 'ModifySource' => '物料收发记录同步'
- ];
- $logSql = \db('系统操作日志表')->fetchSql(true)->insert($logData);
- $result = \db()->query($logSql);
- $sqlString = $db3->name('U8_07物料领用')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $oldData = \db('物料_收发记录')
- ->where('U8UID', $value['U8_UID'])
- ->select();
- $changes = [];
- foreach ($data as $field => $newValue) {
- $oldValue = $oldData[$field] ?? null;
- if ($oldValue != $newValue) {
- $changes[] = [
- 'field' => $field,
- 'old' => $oldValue,
- 'new' => $newValue
- ];
- }
- }
- $sql = \db('物料_收发记录')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- if (!empty($changes)) {
- $logData = [];
- foreach ($changes as $change) {
- $logData[] = [
- 'Gd_gdbh' => $data['st_gdbh'], // 使用原始工单编号
- 'ModifyUser' => '系统同步',
- 'ModifyTime' => date('Y-m-d H:i:s'),
- 'FieldName' => $change['field'],
- 'OldValue' => $change['old'],
- 'NewValue' => $change['new'],
- 'ModifySource' => '物料收发记录修改数据同步'
- ];
- }
- $logSql = \db('系统操作日志表')->fetchSql(true)->insertAll($logData);
- $result = \db()->query($logSql);
- }
- $sqlString = $db3->name('U8_07物料领用')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('物料领用记录同步失败');
- } else {
- $this->success('物料领用记录同步成功');
- }
- }
- /**
- * 仓库信息数据同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function WarehouseInformationData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $OrganizationalDataList = $db3->name('U8_12仓库信息')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的仓库信息');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $data = [
- '编号' => $value['编号'],
- '名称' => $value['名称'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- ];
- $number = \db('物料_仓库信息')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('物料_仓库信息')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_12仓库信息')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('物料_仓库信息')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_12仓库信息')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('仓库信息同步失败');
- } else {
- $this->success('仓库信息同步成功');
- }
- }
- /**
- * 职位编码数据同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function PositionData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db3'));
- $OrganizationalDataList = $db3->name('U8_13职位编码')
- ->where('MES接收时间', null)
- ->where('MES接收状态', '0')
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的职位编码');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $data = [
- '职位编码' => $value['职位编码'],
- '职位名称' => $value['职位名称'],
- '定编人数' => 0,
- '备注说明' => '',
- 'sys_id' => '[272/超级用户]',
- 'sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- ];
- $number = \db('人事_职位编码')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('人事_职位编码')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_13职位编码')
- ->where('UniqID', $value['UniqID'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $sql = \db('人事_职位编码')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db3->name('U8_13职位编码')
- ->where('UniqID', $value['UniqID'])
- ->fetchSql(true)
- ->update([
- 'MES接收时间' => date('Y-m-d H:i:s', time()),
- 'MES接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('职位编码同步失败');
- } else {
- $this->success('职位编码同步成功');
- }
- }
- /**
- * 设备产量计酬云中间表数据库同步
- * @return void
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- // public function ProductionData()
- // {
- // if ($this->request->isGet() === false) {
- // $this->error('请求错误');
- // }
- // if (is_dir(ROOT_PATH . 'public/' . date('Y-m-d', time())) == null) {
- // mkdir(ROOT_PATH . 'public/' . date('Y-m-d', time()), 0777, true);
- // }
- // //查询翌星数据库美浓设备编号
- // $machineList = \db('设备_基本资料')
- // ->where('mn_设备编号', '<>', '')
- //// ->where('sys_sbID', '<>', '')
- // ->column('mn_设备编号');
- //// halt($machineList);
- //// $machineList = ['JP17#','MQ02#','PM04#','SY03#','TJ03#','TJ05#','TJ07#'];
- // //链接美浓mes数据库
- // $db5 = \db()->connect(config('database.db5'));
- // //获取缓存中最后的id
- // $lastId = cache('MnLastId');
- // //确定美浓设备计酬的查询范围
- // if ($lastId === false) {
- // $where = [
- // 'sczl_rq' => ['between', ['2024-09-01 00:00:00', '2024-09-30 00:00:00']],
- // 'sczl_jtbh' => ['in', $machineList]
- // ];
- // } else {
- // $where = [
- // 'sczl_rq' => ['between', ['2024-09-01 00:00:00', '2024-09-30 00:00:00']],
- // 'sczl_jtbh' => ['in', $machineList],
- // 'UniqId' => ['>', $lastId]
- // ];
- // }
- // //查询美浓数据库时间范围内的产量上报记录
- // $productData = $db5->name('设备_产量计酬')
- // ->where($where)
- // ->limit(5000)
- // ->order('UniqId')
- // ->select();
- // if (!empty($productData)) {
- // cache('MnLastId', end($productData)['UniqId']);
- // }
- // //获取美浓和翌星设备编号对照表
- // $machineData = \db('设备_基本资料')
- // ->alias('a')
- // ->join('dic_lzde b','a.设备编号 = b.适用机型')
- // ->where('a.mn_设备编号', '<>', '')
- //// ->where('sys_sbID', '<>', '')
- //// ->field('rtrim(a.设备编号) as 设备编号,rtrim(a.mn_设备编号) as 美浓设备编号,b.sys_bh')
- // ->column('rtrim(a.设备编号) as 设备编号,b.sys_bh','a.mn_设备编号');
- //// halt($machineData);
- // //获取员工资料
- // $employee = \db('人事_基本资料')
- // ->where('mn_员工编号', '<>', '')
- // ->column('rtrim(mn_员工编号) as 美浓员工编号');
- // //循环判断机台、员工编号
- // $j = 0;
- // $data = [];
- // foreach ($productData as $key => $value) {
- // //判断机台编号
- //
- // if (array_key_exists($value['sczl_jtbh'],$machineData)) {
- //
- // if (substr($productData[$key]['sczl_jtbh'],0,2) === 'JP'){
- // if (substr((int)$productData[$key]['sczl_dedh'],-1,1) === '1'){
- // $productData[$key]['sczl_dedh'] = $machineData[$productData[$key]['sczl_jtbh']]['sys_bh'].'001';
- // }else{
- // $productData[$key]['sczl_dedh'] = $machineData[$productData[$key]['sczl_jtbh']]['sys_bh'].'002';
- // }
- // }else{
- // $productData[$key]['sczl_dedh'] = $machineData[$productData[$key]['sczl_jtbh']]['sys_bh'];
- // }
- // $productData[$key]['sczl_jtbh'] = $machineData[$productData[$key]['sczl_jtbh']]['设备编号'];
- // }
- // array_push($data, $productData[$key]);
- //
- // }
- // if (empty($data)) {
- // $this->error('未找到新的生产数据');
- // }
- // foreach ($data as $key => $value) {
- // $name = [];
- // //判断员工编号,如果不存在写入日志文件
- // for ($i = 1; $i <= 10; $i++) {
- // if (in_array($data[$key]['sczl_bh' . $i], $employee)) {
- // $data[$key]['sczl_bh' . $i] = \db('人事_基本资料')
- // ->where('mn_员工编号', $data[$key]['sczl_bh' . $i])
- // ->value('员工编号');
- // } else {
- // array_push($name, $value['sczl_bh' . $i]);
- // }
- //
- // }
- // unset($data[$key]['UniqId']);
- // $name = array_unique($name);
- // $filename = ROOT_PATH . 'public/' . date('Y-m-d', time()) . '/' . $value['sczl_jtbh'] . '日志文件.txt';
- // $handle = fopen($filename, 'w');
- // foreach ($name as $v) {
- // fwrite($handle, $v);
- // }
- // fclose($handle);
- // //修改工单编号
- //// if (preg_match("/[A-Za-z]/",$value['sczl_gdbh'])){
- //// $workcode = $value['sczl_gdbh'];
- //// }else{
- //// $workcode = 'Y'.$value['sczl_gdbh'];
- //// }
- //// $data[$key]['sczl_gdbh'] = $workcode;
- // }
- // //插入设备产量计酬数据
- //// $sql = \db('设备_产量计酬')->where('sczl_rq','between',['2024-09-01 00:00:00', '2024-09-30 00:00:00'])->delete();
- // $sql = \db('设备_产量计酬')->fetchSql(true)->insertAll($data);
- // $res = \db()->query($sql);
- // if ($res !== false) {
- // $this->success('同步成功');
- // } else {
- // $this->error('同步失败');
- // }
- // }
- /**
- * 美浓工单数据同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function MNWorkOrderData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db7 = Db::connect(config('database.db7'));
- $workOrderList = $db7->name('U8_06工单资料')
- ->where('YX接收时间', null)
- ->where('YX接收状态', null)
- ->where('U8插入类型', '<>', '关闭')
- ->select();
- if (empty($workOrderList)) {
- $this->success('未获取新工单');
- }
- $j = $m = $n = 0;
- foreach ($workOrderList as $key => $value) {
- $sort = 3;
- $code = substr($value['成品编号'], 0, 4);
- $client = \db('物料_存货结构')->where('编号', $code)->value('名称');
- //插入产品资料
- $processData = \db('产品_基本资料')
- ->where('产品编号', $value['成品编号'])
- ->count();
- $detail = \db('物料_存货编码')->where('物料代码', $value['成品编号'])->find();
- if ($processData === 0) {
- $product = [
- '客户编号' => $code,
- '客户名称' => $client,
- '产品编号' => $value['成品编号'],
- '产品名称' => $value['成品名称'],
- '计量单位' => $detail['领用单位'],
- '状态' => '',
- 'U8UID' => $detail['U8UID'],
- '产品类别' => $detail['规格'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => date('Y-m-d H:i:s', time()),
- ];
- $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
- \db()->query($productSql);
- }
- //插入工单资料
- $data = [
- 'Gd_gdbh' => $value['工单编号'],
- '行号' => $value['行号'],
- 'Gd_客户代号' => $code,
- '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'],
- '工单分类' => $sort
- ];
- //获取版本号
- $banben = \db('工单_基本资料')
- ->where('Gd_cpdh',$data['Gd_cpdh'])
- ->order('Sys_rq desc')
- ->column('产品版本号');
- if ($banben){
- $data['产品版本号'] = $banben[0];
- }
- $workOrderdata = \db('工单_基本资料')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($workOrderdata === 0) {
- $addSql = \db('工单_基本资料')->fetchSql(true)->insert($data);
- $result = \db()->query($addSql);
- if ($result === false) {
- $m++;
- } else {
- $sqlString = $db7->name('U8_06工单资料')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- } else {
- unset($data['行号']);
- $updateSql = \db('工单_基本资料')->where('U8UID', $value['U8_UID'])->fetchSql(true)->update($data);
- $updateRes = \db()->query($updateSql);
- if ($updateRes === false) {
- $j++;
- } else {
- $sqlString = $db7->name('U8_06工单资料')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- }
- }
- if ($j !== 0 || $m !== 0 || $n !== 0) {
- $this->error('工单资料同步失败');
- } else {
- $this->success('工单资料同步成功');
- }
- }
- /**
- * 美浓工单BOM同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function MNWorkOrderBomData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db7 = Db::connect(config('database.db7'));
- $BomDataList = $db7->name('U8_09工单bom')
- ->where('YX接收时间', null)
- ->where('YX接收状态', null)
- ->order('U8传递时间 desc')
- ->select();
- if (empty($BomDataList)) {
- $this->success('未找到新工单BOM');
- }
- $j = $m = 0;
- foreach ($BomDataList as $key => $value) {
- $res = \db('工单_bom资料')->where('U8UID', $value['U8_UID'])->count();
- $data = [
- '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'],
- ];
- if ($res === 0) {
- $addSql = \db('工单_bom资料')->fetchSql(true)->insert($data);
- $addRes = \db()->query($addSql);
- if ($addRes === false) {
- $m++;
- } else {
- $sqlString = $db7->name('U8_09工单bom')
- ->where('UNIQID', $value['UNIQID'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- } else {
- unset($data['UNIQID']);
- $updateSql = \db('工单_bom资料')
- ->where('U8UID', $value['U8_UID'])
- ->fetchSql(true)
- ->update($data);
- $updateRes = \db()->query($updateSql);
- if ($updateRes === false) {
- $j++;
- } else {
- $sqlString = $db7->name('U8_09工单bom')
- ->where('UNIQID', $value['UNIQID'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- }
- }
- if ($j !== 0 || $m !== 0) {
- $this->error('工单BOM资料同步失败');
- } else {
- $this->success('工单BOM资料同步成功');
- }
- }
- /**
- * 美浓物料存货结构同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function MNMaterialRequisitionData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db7 = \db()->connect(config('database.db7'));
- $MaterialDataList = $db7->name('U8_11存货结构')
- ->where('YX接收时间', null)
- ->where('YX接收状态', null)
- ->select();
- if (empty($MaterialDataList)) {
- $this->success('未找到新的物料存货结构');
- }
- $i = 0;
- foreach ($MaterialDataList as $key => $value) {
- $data = [
- '编号' => $value['编号'],
- '名称' => $value['名称'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => date('Y-m-d H:i:s', time()),
- 'U8UID' => $value['U8_UID'],
- ];
- if ($value['U8插入类型'] === '新增') {
- $sql = \db('物料_存货结构')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db7->name('U8_11存货结构')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- } else {
- $sql = \db('物料_存货结构')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db7->name('U8_11存货结构')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('存货结构同步失败');
- } else {
- $this->success('存货结构同步成功');
- }
- }
- /**
- * 美浓物料存货编码同步
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function MNInventoryCodeData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db7 = \db()->connect(config('database.db7'));
- $OrganizationalDataList = $db7->name('U8_04物料编码')
- ->where('YX接收时间', null)
- ->where('YX接收状态', null)
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的物料编码');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $code = substr($value['物料代码'], 0, 2);
- if ($code === '10' || $code === '14' || $code === '12') {
- //插入产品资料
- $productData = \db('产品_基本资料')
- ->where('产品编号', $value['物料代码'])
- ->count();
- $clientCode = substr($value['物料代码'], 0, 4);
- $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) {
- $productSql = \db('产品_基本资料')->fetchSql(true)->insert($product);
- } else {
- $productSql = \db('产品_基本资料')->where('产品编号', $value['物料代码'])->fetchSql(true)->update($product);
- }
- $productRes = \db()->query($productSql);
- }
- $data = [
- '物料代码' => $value['物料代码'],
- '物料名称' => $value['物料名称'],
- '规格' => $value['规格'],
- '采购单位' => $value['采购单位'],
- '领用单位' => $value['领用单位'],
- '单位换算率' => $value['单位换算率'],
- '单价' => $value['单价'],
- '币种' => $value['币种'],
- '物料备注' => $value['物料备注'],
- '状态' => $value['状态'],
- 'Sys_id' => '[272/超级用户]',
- 'Sys_rq' => date('Y-m-d H:i:s', time()),
- 'Mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- ];
- $number = \db('物料_存货编码')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('物料_存货编码')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db7->name('U8_04物料编码')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- } else {
- $sql = \db('物料_存货编码')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- //修改产品印件名称
- $yjSql = \db('产品_印件资料')
- ->fetchSql(true)
- ->where('yj_yjdh',$data['物料代码'])
- ->update(['yj_yjmc' => $data['物料名称']]);
- $yjRes = \db()->query($yjSql);
- if ($res === false) {
- $i++;
- } else {
- $sqlString = $db7->name('U8_04物料编码')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db7->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('物料编码同步失败');
- } else {
- $this->success('物料编码同步成功');
- }
- }
- /**
- * 美浓MES产品资料同步
- * @return void
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- // public function minoMesProductData()
- // {
- // if ($this->request->isGet() === false) {
- // $this->error('请求错误');
- // }
- // $db5 = \db()->connect(config('database.db5'));
- // //工单数据查询
- ////
- //
- // $workOrderList = \db('设备_产量计酬')->where('sczl_rq', 'between', ['2024-09-01 00:00:00', '2024-09-30 00:00:00'])->column('DISTINCT(sczl_gdbh) as gdbh');
- //
- //// $workOrderData = $db5->name('工单_基本资料')->where('Gd_gdbh','in',$workOrderList)->select();
- // $workOrderData = $db5->name('工单_基本资料')->where('Gd_gdbh', 'in', $workOrderList)->column('rtrim(Gd_gdbh) as gdbh');
- //// $print = $process = [];
- //// foreach ($workOrderData as $key=> $value){
- //// unset($workOrderData[$key]['Uniqid']);
- // //删除工单基本资料表中重复工单
- //// $workOrderNum = \db('工单_基本资料')->where('Gd_gdbh',$value['Gd_gdbh'])->count();
- //// if ($workOrderNum !== 0){
- //// \db('工单_基本资料')->where('Gd_gdbh',$value['Gd_gdbh'])->delete();
- //// }
- // //查询工单印件表中印件数据
- //
- //// $printData = $db5->name('工单_印件资料')->where('Yj_Gdbh','in',$workOrderData)->select();
- //// \db('工单_印件资料')->where('Yj_Gdbh','in',$workOrderData)->delete();
- //// foreach ($printData as $kk=>$vv){
- //// unset($printData[$kk]['Uniqid']);
- //// array_push($print,$printData[$kk]);
- // //删除工单印件表中重复数据
- //// $printNum = \db('工单_印件资料')
- //// ->where('Yj_Gdbh',$vv['Yj_Gdbh'])
- //// ->where('yj_Yjno',$vv['yj_Yjno'])
- //// ->count();
- //// if ($printNum !== 0){
- //// \db('工单_印件资料')
- //// ->where('Yj_Gdbh',$vv['Yj_Gdbh'])
- //// ->where('yj_Yjno',$vv['yj_Yjno'])
- //// ->delete();
- //// }
- // //查询工单工艺资料表中数据
- // \db('工单_工艺资料')
- // ->where('Gy0_gdbh', 'in', $workOrderData)
- // ->delete();
- // $processData = $db5->name('工单_工艺资料')
- // ->where('Gy0_gdbh', 'in', $workOrderData)
- // ->select();
- //// \db('工单_工艺资料')
- //// ->where('Gy0_gdbh',$value['Gd_gdbh'])
- //// ->delete();
- // foreach ($processData as $k => $v) {
- // unset($processData[$k]['UniqId']);
- //// array_push($process,$processData[$k]);
- //// }
- //
- //// }
- // }
- //// halt($workOrderData);
- //// $workSql = \db('工单_基本资料')->fetchSql(true)->insertAll($workOrderData);
- //// $workRes = \db()->query($workSql);
- //// die;
- //// halt($printData);
- //// $printSql = \db('工单_印件资料')->fetchSql(true)->insertAll($printData);
- //// $printRes = \db()->query($printSql);
- //// die;
- //// halt($processData);
- // $processSql = \db('工单_工艺资料')->fetchSql(true)->insertAll($processData);
- // $processRes = \db()->query($processSql);
- //// die;
- // if ($workRes !== false && $printRes !== false && $processRes !== false) {
- // $this->success('成功');
- // } else {
- // $this->error('失败');
- // }
- // }
- //工单核检单同步
- // public function hejiandancopy()
- // {
- //// $param = $this->request->param();
- // $db5 = \db()->connect(config('database.db5'));
- // //查询本月工单核检单数据
- // $list = $db5->name('db_qczl')
- // ->where('sys_rq', '>=', '2024-11-21 00:00:00')
- // ->select();
- // $employeeList = \db('人事_基本资料')
- // ->whereNotNull('mn_员工编号')
- // ->column('员工编号', 'mn_员工编号');
- // foreach ($list as $key => $value) {
- // for ($i = 1; $i < 14; $i++) {
- // if ($value['fp_bh' . $i] !== '') {
- // if (array_key_exists($value['fp_bh' . $i], $employeeList)) {
- // $list[$key]['fp_bh' . $i] = $employeeList[$value['fp_bh' . $i]];
- // }
- // }
- // }
- // unset($list[$key]['UniqId']);
- // }
- // $sql = \db('db_qczl')->fetchSql(true)->insertAll($list);
- // $res = \db()->query($sql);
- // if ($res !== false) {
- // $this->success('成功');
- // } else {
- // $this->error('失败');
- // }
- // }
- //拆片工序数据同步
- // public function chaipianCopy()
- // {
- // if ($this->request->isGet() === false) {
- // $this->error('请求错误');
- // }
- // $param = $this->request->param();
- // if (!empty($param['end'])) {
- // $where['sczl_rq'] = ['between', [$param['start'], $param['end']]];
- // } else {
- // $where['sczl_rq'] = ['>=', $param['start']];
- // }
- // $db5 = \db()->connect(config('database.db5'));
- // $list = $db5->name('db_sczl')
- // ->where($where)
- // ->select();
- // $employeeList = \db('人事_基本资料')
- // ->whereNotNull('mn_员工编号')
- // ->column('员工编号', 'mn_员工编号');
- // foreach ($list as $key => $value) {
- // unset($list[$key]['UniqId']);
- // if (array_key_exists($value['sczl_bh1'], $employeeList)) {
- // $list[$key]['sczl_bh1'] = $employeeList[$value['sczl_bh1']];
- // }
- // }
- // $sql = \db('db_sczl')->fetchSql(true)->insertAll($list);
- // $res = \db()->query($sql);
- // if ($res !== false) {
- // $this->success('成功');
- // } else {
- // $this->error('失败');
- // }
- // }
- //手工检验报工数据同步
- // public function shougongCopy()
- // {
- // if ($this->request->isGet() === false) {
- // $this->error('请求错误');
- // }
- // $param = $this->request->param();
- // if (!empty($param['end'])) {
- // $where['sczl_rq'] = ['between', [$param['start'], $param['end']]];
- // } else {
- // $where['sczl_rq'] = ['>=', $param['start']];
- // }
- // $db5 = \db()->connect(config('database.db5'));
- // $list = $db5->name('db_手工检验')
- // ->where($where)
- // ->select();
- // $employeeList = \db('人事_基本资料')
- // ->whereNotNull('mn_员工编号')
- // ->column('员工编号', 'mn_员工编号');
- // foreach ($list as $key => $value) {
- // for ($i = 0; $i < 13; $i++) {
- // if ($value['sczl_bh' . $i] !== '') {
- // if (array_key_exists($value['sczl_bh' . $i], $employeeList)) {
- // $list[$key]['sczl_bh' . $i] = $employeeList[$value['sczl_bh' . $i]];
- // }
- // }
- // }
- // unset($list[$key]['UniqId']);
- // }
- // $sql = \db('db_手工检验')->fetchSql(true)->insertAll($list);
- // $res = \db()->query($sql);
- // if ($res !== false) {
- // $this->success('成功');
- // } else {
- // $this->error('失败');
- // }
- // }
- //包装计件数据同步
- // public function baozhaungCopy()
- // {
- // if ($this->request->isGet() === false) {
- // $this->error('请求错误');
- // }
- // $param = $this->request->param();
- // if (!empty($param['end'])) {
- // $where['sczl_rq'] = ['between', [$param['start'], $param['end']]];
- // } else {
- // $where['sczl_rq'] = ['>=', $param['start']];
- // }
- // $db5 = \db()->connect(config('database.db5'));
- // $list = $db5->name('db_包装计件')
- // ->where($where)
- // ->select();
- // $typeList = $db5->name('物料_存货编码')
- // ->where('物料代码','like','10%')
- // ->whereOr('物料代码','like','12%')
- // ->whereOr('物料代码','like','14%')
- // ->column('rtrim(规格) as 规格','rtrim(物料代码)');
- // $cpdhList = $db5->name('工单_印件资料')
- // ->where('Uniqid', '>', 18000)
- // ->where('yj_cpdh', '<>', '') // 确保 yj_cpdh 不为空
- // ->where('Yj_Gdbh','<>','')
- // ->column('rtrim(yj_cpdh) AS cpdh, rtrim(yj_Yjno) AS yjno', 'CONCAT(rtrim(Yj_Gdbh), "-", rtrim(yj_Yjno))');
- // $employeeList = \db('人事_基本资料')
- // ->whereNotNull('mn_员工编号')
- // ->column('员工编号', 'mn_员工编号');
- // foreach ($list as $key => $value) {
- // for ($i = 1; $i < 7; $i++) {
- // //循环判断工单编号是否为空,不为空判断物料规格是条盒或小盒,条盒核算参数取1000,小盒核算参数取2500,如果工单编号为空,核算参数为空
- // if ($value['sczl_gdbh' . $i] !== '') {
- // $yjno = (int)substr($value['sczl_yjGx'.$i],0,2);
- // $liatKey = $value['sczl_gdbh' . $i].'-'.$yjno;
- // if (array_key_exists($liatKey,$cpdhList) !== false){
- // $cpdh = $cpdhList[$liatKey]['cpdh'];
- // $guige = $typeList[$cpdh];
- // if ($guige == '小盒'){
- // $list[$key]['sczl_type'.$i] = '2500';
- // }else{
- // $list[$key]['sczl_type'.$i] = '1000';
- // }
- // }else{
- // $list[$key]['sczl_type'.$i] = '1000';
- // }
- // }else{
- // $list[$key]['sczl_type'.$i] = '';
- // }
- //
- // }
- // if (array_key_exists($value['sczl_bh'], $employeeList)) {
- // $list[$key]['sczl_bh'] = $employeeList[$value['sczl_bh']];
- // }
- // unset($list[$key]['UniqId']);
- // }
- // $sql = \db('db_包装计件')->fetchSql(true)->insertAll($list);
- // $res = \db()->query($sql);
- // if ($res !== false) {
- // $this->success('成功');
- // } else {
- // $this->error('失败');
- // }
- // }
- //计时工资数据同步
- // public function jishiCopy()
- // {
- // if ($this->request->isGet() === false) {
- // $this->error('请求错误');
- // }
- // $param = $this->request->param();
- // if (!empty($param['end'])) {
- // $where['wgjs_rq'] = ['between', [$param['start'], $param['end']]];
- // } else {
- // $where['wgjs_rq'] = ['>=', $param['start']];
- // }
- // $db5 = \db()->connect(config('database.db5'));
- // $list = $db5->name('db_wgjs')
- // ->where($where)
- // ->select();
- // $employeeList = \db('人事_基本资料')
- // ->whereNotNull('mn_员工编号')
- // ->column('员工编号', 'mn_员工编号');
- // foreach ($list as $key => $value) {
- // for ($i = 1; $i < 7; $i++) {
- // if ($value['wgjs_bh' . $i] !== '') {
- // if (array_key_exists($value['wgjs_bh' . $i], $employeeList)) {
- // $list[$key]['wgjs_bh' . $i] = $employeeList[$value['wgjs_bh' . $i]];
- // }
- // }
- // }
- // unset($list[$key]['UniqId']);
- // }
- // $sql = \db('db_wgjs')->fetchSql(true)->insertAll($list);
- // $res = \db()->query($sql);
- // if ($res !== false) {
- // $this->success('成功');
- // } else {
- // $this->error('失败');
- // }
- // }
- /**
- * 美浓MES物料领用记录
- * @return void
- * @throws \think\Exception
- * @throws \think\db\exception\BindParamException
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- * @throws \think\exception\PDOException
- */
- public function MNReceiptRecordData()
- {
- if ($this->request->isGet() === false) {
- $this->error('请求错误');
- }
- $db3 = \db()->connect(config('database.db7'));
- $OrganizationalDataList = $db3->name('U8_07物料领用')
- ->where('YX接收时间', null)
- ->where('YX接收状态', null)
- ->where('UniqId','>',80838718)
- ->select();
- if (empty($OrganizationalDataList)) {
- $this->success('未找到新的物料领用记录');
- }
- $i = 0;
- foreach ($OrganizationalDataList as $key => $value) {
- $data = [
- 'st_rq' => $value['日期'],
- 'st_jylb' => $value['交易类别'],
- 'st_gdbh' => $value['工单编号'],
- '采购单号' => $value['采购单号'],
- '供方批次' => $value['供方批次'],
- 'st_wlbh' => $value['物料编号'],
- 'st_sl' => $value['领用数量'],
- 'st_oldSl' => $value['领用数量'],
- 'st_dw' => $value['领用单位'],
- '领用单价' => $value['领用单价'],
- 'st_desc' => $value['备注'],
- '仓库编号' => $value['仓库编号'],
- 'st_dpt' => $value['采购单号'],
- 'st_jtbh' => $value['机台编号'],
- 'sys_id' => '[272/超级用户]',
- 'sys_rq' => date('Y-m-d H:i:s', time()),
- 'mod_rq' => '1900-01-01 00:00:00',
- 'U8UID' => $value['U8_UID'],
- 'cpdh' => $value['产品编码']
- ];
- // 联表
- $materialInfo = \db('物料_存货编码')
- ->where('物料代码', $data['st_wlbh'])
- ->field('规格 as yj_tlgg, 物料名称 as yj_zzmc')
- ->find();
- // 单位换算
- if ($data['st_dw'] === '吨' && !empty($materialInfo)) {
- $spec = $materialInfo['yj_tlgg'];
- $materialName = $materialInfo['yj_zzmc'];
- if (!empty($spec) && strpos($spec, '×') !== false) {
- $dimensions = explode('×', $spec);
- $number1 = (int)trim($dimensions[0]);
- $number2 = (int)trim($dimensions[1]);
- if (!empty($materialName) && preg_match('/(\d+(\.\d+)?)g/', $materialName, $matches)) {
- if ($number1 > 0 && $number2 > 0 && $matches[1] > 0) {
- $data['st_sl'] = round(($data['st_sl'] * 1000 * 1000) / $matches[1] / ($number1 * $number2) * 1000000);
- $data['st_dw'] = '张';
- }
- }
- }
- }
- $number = \db('物料_收发记录')
- ->where('U8UID', $value['U8_UID'])
- ->count();
- if ($number === 0) {
- $sql = \db('物料_收发记录')->fetchSql(true)->insert($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- $logData = [
- 'Gd_gdbh' => $data['st_gdbh'], // 使用原始工单编号
- 'ModifyUser' => '系统同步',
- 'ModifyTime' => date('Y-m-d H:i:s'),
- 'FieldName' => $data['U8UID'],
- 'OldValue' => $data['st_sl'],
- 'NewValue' => $data['仓库编号'],
- 'ModifySource' => '物料收发记录同步'
- ];
- $logSql = \db('系统操作日志表')->fetchSql(true)->insert($logData);
- $result = \db()->query($logSql);
- $sqlString = $db3->name('U8_07物料领用')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- } else {
- $oldData = \db('物料_收发记录')
- ->where('U8UID', $value['U8_UID'])
- ->select();
- $changes = [];
- foreach ($data as $field => $newValue) {
- $oldValue = $oldData[$field] ?? null;
- if ($oldValue != $newValue) {
- $changes[] = [
- 'field' => $field,
- 'old' => $oldValue,
- 'new' => $newValue
- ];
- }
- }
- $sql = \db('物料_收发记录')
- ->fetchSql(true)
- ->where('U8UID', $value['U8_UID'])
- ->update($data);
- $res = \db()->query($sql);
- if ($res === false) {
- $i++;
- } else {
- if (!empty($changes)) {
- $logData = [];
- foreach ($changes as $change) {
- $logData[] = [
- 'Gd_gdbh' => $data['st_gdbh'], // 使用原始工单编号
- 'ModifyUser' => '系统同步',
- 'ModifyTime' => date('Y-m-d H:i:s'),
- 'FieldName' => $change['field'],
- 'OldValue' => $change['old'],
- 'NewValue' => $change['new'],
- 'ModifySource' => '物料收发记录修改数据同步'
- ];
- }
- $logSql = \db('系统操作日志表')->fetchSql(true)->insertAll($logData);
- $result = \db()->query($logSql);
- }
- $sqlString = $db3->name('U8_07物料领用')
- ->where('UniqId', $value['UniqId'])
- ->fetchSql(true)
- ->update([
- 'YX接收时间' => date('Y-m-d H:i:s', time()),
- 'YX接收状态' => '1'
- ]);
- $db3->execute($sqlString);
- }
- }
- }
- if ($i !== 0) {
- $this->error('物料领用记录同步失败');
- } else {
- $this->success('物料领用记录同步成功');
- }
- }
- }
|