ReportingWork.php 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use think\db\exception\BindParamException;
  5. use think\exception\PDOException;
  6. use \think\Request;
  7. use \think\Db;
  8. /**
  9. * 车间报工接口
  10. */
  11. class ReportingWork extends Api
  12. {
  13. protected $noNeedLogin = ['*'];
  14. protected $noNeedRight = ['*'];
  15. /**
  16. * 首页
  17. *
  18. */
  19. public function index()
  20. {
  21. $this->success('请求成功');
  22. }
  23. /**
  24. * 设置机台状态
  25. * @ApiMethod POST
  26. * @params
  27. */
  28. public function setMachineStatus(){
  29. if (Request::instance()->isPost() == false){
  30. $this->error('非法请求');
  31. }
  32. $params = Request::instance()->post();
  33. if (!isset($params['machine']) || empty($params['machine'])){
  34. $this->error('参数不能为空');
  35. }
  36. $machine = $params['machine'].'#';
  37. $data = [];
  38. // $lastData = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
  39. $lastData = \db('设备_产量采集')
  40. // ->where('设备编号',$machine)
  41. ->order('UniqId desc')
  42. ->find();
  43. $id = $lastData['UniqId'] + 1;
  44. if (empty($params['order'])){
  45. unset($lastData['UniqId']);
  46. $data = $lastData;
  47. $data['当前状态'] = $params['status'];
  48. }else{
  49. $data['当前状态'] = $params['status'];
  50. $data['时间'] = date('Y-m-d H:i:s');
  51. $data['设备编号'] = $machine;
  52. $data['工单编号'] = $params['order'];
  53. $data['印件号'] = $params['yjno'];
  54. $data['工序号'] = (int)substr($params['gy_name'],0,2);
  55. $data['工序名称'] = $params['gy_name'];
  56. $data['当班产量'] = $params['production_now'];
  57. $data['累计产量'] = $params['production_all'];
  58. $class = explode(',',$params['class']);
  59. $where = [];
  60. $where['sczl_jtbh'] = $machine;
  61. for ($i=1;$i<=count($class);$i++){
  62. $where['sczl_bh'.$i] = $class[$i-1];
  63. }
  64. // $classData = \db('设备_班组资料')->where($where)->field('sczl_bzdh,UniqId')->find();
  65. $classData = \db('设备_班组资料')->where($where)->field('sczl_bzdh,UniqId')->find();
  66. $data['班组编号'] = $classData['sczl_bzdh'];
  67. $data['班组ID'] = $classData['UniqId'];
  68. // 获取当前时间
  69. $current_time = time();
  70. // 设置时间范围
  71. $start_time1 = strtotime(date('Y-m-d') . ' 08:30:00');
  72. $end_time1 = strtotime(date('Y-m-d') . ' 20:30:00');
  73. $end_time2 = strtotime(date('Y-m-d') . ' 24:00:00');
  74. $start_time3 = strtotime(date('Y-m-d', strtotime('+1 day')) . ' 08:30:00');
  75. // 判断当前时间属于哪个时间范围
  76. if ($current_time >= $start_time1 && $current_time <= $end_time1) {
  77. $data['开工时间'] = date('Y-m-d') . ' 08:30:00';
  78. } elseif ($current_time > $end_time1 && $current_time <= $end_time2) {
  79. $data['开工时间'] = date('Y-m-d') . ' 20:30:00';
  80. } elseif ($current_time > $end_time1 && $current_time <= $start_time3) {
  81. $data['开工时间'] = date('Y-m-d',strtotime('+1 day')) . ' 08:30:00';
  82. }
  83. $option['Gy0_gdbh'] = $params['order'];
  84. $option['Gy0_yjno'] = $params['yjno'];
  85. $option['Gy0_gxh'] = $data['工序号'];
  86. $data['任务ID'] = \db('工单_工艺资料')->where($option)->value('UniqId');
  87. }
  88. $data['UniqId'] = $id;
  89. // $sql = \db('设备_产量采集')->fetchSql(true)->insert($data);
  90. $sql = \db('设备_产量采集')->fetchSql(true)->insert($data);
  91. $res = Db::query($sql);
  92. if ($res === false){
  93. $this->error('设置失败');
  94. }else{
  95. $this->success('设置成功');
  96. }
  97. }
  98. /**
  99. * 设置工单工序完工
  100. * @ApiMethod POST
  101. * @params string order
  102. * @params string yjno
  103. * @params string gxh
  104. */
  105. public function setProcessStatus(){
  106. if (Request::instance()->isPost() == false){
  107. $this->error('非法请求');
  108. }
  109. $params = Request::instance()->post();
  110. if (!isset($params['order']) || empty($params['order'])){
  111. $this->error('参数不能为空');
  112. }
  113. if (!isset($params['yjno']) || empty($params['yjno'])){
  114. $this->error('参数不能为空');
  115. }
  116. if (!isset($params['gxh']) || empty($params['gxh'])){
  117. $this->error('参数不能为空');
  118. }
  119. $where['Gy0_gdbh'] = $params['order'];
  120. $where['Gy0_yjno'] = $params['yjno'];
  121. $where['Gy0_gxh'] = $params['gxh'];
  122. $date = date('Y-m-d H:i:s');
  123. $res = \db('工单_工艺资料')->where($where)->setField('PD_WG',$date);
  124. if ($res === false){
  125. $this->error('设置失败');
  126. }else{
  127. $this->success('设置成功');
  128. }
  129. }
  130. /**
  131. * 根据机台获取生产信息
  132. * @ApiMethod GET
  133. * @params string machine
  134. */
  135. public function getProduceInfo(){
  136. if (Request::instance()->isGet() == false) {
  137. $this->error('非法请求');
  138. }
  139. $params = Request::instance()->param();
  140. if (!isset($params['machine']) || empty($params['machine'])) {
  141. $this->error('参数错误');
  142. }
  143. $machine = $params['machine'].'#';
  144. $data = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
  145. $list = [];
  146. $list['order'] = $data['工单编号'];
  147. $list['yjno'] = $data['印件号'];
  148. $name = \db('工单_基本资料')->where('Gd_Gdbh',$data['工单编号'])->value('成品名称');
  149. $list['product_name'] = rtrim($name);
  150. $where['Gy0_gdbh'] = $data['工单编号'];
  151. $where['Gy0_yjno'] = $data['印件号'];
  152. $where['Gy0_gxh'] = $data['工序号'];
  153. $gxmc = \db('工单_工艺资料')->where($where)->value('Gy0_gxmc');
  154. $list['gxmc'] = rtrim($gxmc);
  155. $this->success('请求成功',$list);
  156. }
  157. /**
  158. * 根据员工编号获取姓名
  159. * @ApiMethod GET
  160. * @params string code
  161. */
  162. public function getStaffName(){
  163. if (Request::instance()->isGet() == false) {
  164. $this->error('非法请求');
  165. }
  166. $params = Request::instance()->param();
  167. if (!isset($params['code']) || empty($params['code'])) {
  168. $this->error('参数错误');
  169. }
  170. $data = \db('人事_基本资料')->where('员工编号',$params['code'])->value('员工姓名');
  171. if (empty($data)){
  172. $data = \db('人事_基本资料')->where('pycode',$params['code'])->value('员工姓名');
  173. }
  174. $this->success('请求成功',rtrim($data));
  175. }
  176. /**
  177. * 根据员工编号获取姓名-优化
  178. * @ApiMethod GET
  179. * @params string code
  180. */
  181. public function getStaffNameTwo(){
  182. if (Request::instance()->isGet() == false) {
  183. $this->error('非法请求');
  184. }
  185. $params = Request::instance()->param();
  186. if (!isset($params['code']) || empty($params['code'])) {
  187. $this->error('参数错误');
  188. }
  189. $data = \db('人事_基本资料')->where('员工编号',$params['code'])->field('员工姓名')->select();
  190. if (empty($data)){
  191. $data = \db('人事_基本资料')->where('pycode',$params['code'])->field('rtrim(员工姓名) as 员工姓名')->select();
  192. }
  193. $num = count($data);
  194. $res['total'] = $num;
  195. $res['data'] = $data;
  196. $this->success('请求成功',$res);
  197. }
  198. /**
  199. * 提交巡查记录
  200. * @ApiMethod POST
  201. * @params
  202. */
  203. public function submitPatrolRecord(){
  204. if (Request::instance()->isPost() == false){
  205. $this->error('非法请求');
  206. }
  207. $params = Request::instance()->post();
  208. if (empty($params['machine']) || empty($params['type']) || empty($params['order'])) {
  209. $this->error('参数错误');
  210. }
  211. if (empty($params['yjno']) || empty($params['process']) || empty($params['no'])) {
  212. $this->error('参数错误');
  213. }
  214. $data = [];
  215. $data['类别'] = $params['type'];
  216. $data['工单编号'] = $params['order'];
  217. $data['印件号'] = $params['yjno'];
  218. $data['工序名称'] = '';
  219. $data['班组编号'] = '';
  220. $data['开工时间'] = '';
  221. $data['流程单号'] = $params['process'];
  222. $data['设备编号'] = $params['machine'].'#';
  223. $data['检验项目'] = '['.$params['no'].'/'.$params['name'].']';
  224. $data['检验备注'] = $params['remark'];
  225. $data['提交时间'] = date('Y-m-d H:i:s');
  226. $data['sys_rq'] = date('Y-m-d H:i:s');
  227. $produce = \db('设备_产量采集')->where('设备编号',$params['machine'].'#')->where('工单编号',$params['order'])->order('UniqId desc')->find();
  228. // $produce = \db('设备_产量采集')->where('设备编号',$params['machine'].'#')->where('工单编号',$params['order'])->order('UniqId desc')->find();
  229. if (!empty($produce)){
  230. $data['工序名称'] = $produce['工序名称'];
  231. $data['班组编号'] = rtrim($produce['班组编号']);
  232. $data['开工时间'] = $produce['开工时间'];
  233. }
  234. // $res = \db('制程检验_记录')->field('UniqId')->order('UniqId desc')->find();
  235. $res = \db('制程检验_记录')->field('UniqId')->order('UniqId desc')->find();
  236. if (empty($res['UniqId'])){
  237. $data['UniqId'] = 1;
  238. }else{
  239. $data['UniqId'] = $res['UniqId'] + 1;
  240. }
  241. // $sql = \db('制程检验_记录')->fetchSql(true)->insert($data);
  242. $sql = \db('制程检验_记录')->fetchSql(true)->insert($data);
  243. $result = Db::query($sql);
  244. if ($result === false){
  245. $this->error('提交失败');
  246. }else{
  247. $this->success('提交成功');
  248. }
  249. }
  250. /**
  251. * 获取报工单其他信息
  252. * @ApiMethod Get
  253. * @params string machine
  254. */
  255. public function getMachineReportInfo(){
  256. if (Request::instance()->isGet() == false) {
  257. $this->error('非法请求');
  258. }
  259. $params = Request::instance()->param();
  260. if (!isset($params['machine']) || empty($params['machine'])) {
  261. $this->error('参数错误');
  262. }
  263. $machine = $params['machine'].'#';
  264. $data = [];
  265. $produce = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
  266. if (empty($produce)){
  267. $this->error('无此设备数据');
  268. }
  269. $data['order_info']['order'] = $produce['工单编号'];
  270. $data['order_info']['yjno'] = $produce['印件号'];
  271. $data['order_info']['gxh'] = $produce['工序号'];
  272. $data['order_info']['gxmc'] = $produce['工序名称'];
  273. // $data['order_info']['dedh'] = \db('dic_lzde')->where('适用机型',$machine)->value('sys_bh');
  274. $product = \db('工单_基本资料')->alias('a')
  275. ->join('工单_工艺资料 b','a.Gd_Gdbh = b.Gy0_gdbh','left')
  276. ->join('工单_印件资料 c','a.Gd_Gdbh = c.Yj_gdbh','left')
  277. ->field('a.成品名称,b.Gy0_gxmc,b.Gy0_ms,b.Gy0_ls,c.yj_yjmc')
  278. ->where('a.Gd_Gdbh',$produce['工单编号'])
  279. ->where('b.Gy0_yjno',$produce['印件号'])
  280. ->where('b.Gy0_gxh',$produce['工序号'])
  281. ->where('c.Yj_yjno',$produce['印件号'])
  282. ->select();
  283. if (empty($product)){
  284. $this->error('无此工单数据');
  285. }
  286. $data['order_info']['product_name'] = '';
  287. $data['order_info']['yj_name'] = '';
  288. $data['order_info']['gy_name'] = '';
  289. if (!empty($product)){
  290. $data['order_info']['product_name'] = rtrim($product[0]['成品名称']);
  291. $data['order_info']['yj_name'] = rtrim($product[0]['yj_yjmc']);
  292. $data['order_info']['gy_name'] = rtrim($product[0]['Gy0_gxmc']);
  293. $data['order_info']['Gy0_ms'] = rtrim($product[0]['Gy0_ms']);
  294. $data['order_info']['Gy0_ls'] = rtrim($product[0]['Gy0_ls']);
  295. }
  296. $dedh = \db('dic_lzde')->where('适用机型',$machine)->value('sys_bh');
  297. if (strpos($params['machine'],'JP') !== false){
  298. if (strpos($data['order_info']['product_name'],'小盒') !== false){
  299. $data['order_info']['dedh'] = $dedh.'001';
  300. }else{
  301. $data['order_info']['dedh'] = $dedh.'002';
  302. }
  303. }else{
  304. $data['order_info']['dedh'] = $dedh;
  305. }
  306. $class = \db('设备_班组资料')->where('UniqId',$produce['班组ID'])->find();
  307. for ($i=1;$i<11;$i++){
  308. $name = '';
  309. if (!empty($class['sczl_bh'.$i])){
  310. $name = \db('人事_基本资料')->where('员工编号',$class['sczl_bh'.$i])->value('员工姓名');
  311. }
  312. $class['sczl_name'.$i] = rtrim($name);
  313. }
  314. $data['class'] = $class;
  315. $where['st_gdbh'] = $produce['工单编号'];
  316. $machine = substr($machine,0,2);
  317. if ($machine == 'JY' || $machine == 'QZ'){
  318. $where['st_dpt'] = '胶印车间';
  319. }elseif ($machine == 'WY' || $machine == 'DW'){
  320. $where['st_dpt'] = '凹印车间';
  321. }elseif ($machine == 'SY' || $machine == 'PM'){
  322. $where['st_dpt'] = '丝印车间';
  323. }elseif ($machine == 'MQ' || $machine == 'TJ'){
  324. $where['st_dpt'] = '烫模车间';
  325. }elseif ($machine == 'JP'){
  326. $where['st_dpt'] = '检验车间';
  327. }
  328. $material = \db('物料_收发记录')
  329. ->alias('a')
  330. ->join('工单_bom资料 b', 'a.st_gdbh = b.BOM_工单编号 AND a.st_wlbh = b.BOM_物料编码','left')
  331. ->where($where)
  332. ->field('RTRIM(a.供方批次) as batch, rtrim(采购单号) as 采购单号, st_wlbh, MIN(a.Uniqid) AS Uniqid, rtrim(b.BOM_物料名称) as BOM_物料名称')
  333. ->group('batch')
  334. ->order('a.st_wlbh')
  335. ->select();
  336. $data['bom'] = $material;
  337. $this->success('请求成功',$data);
  338. }
  339. /**
  340. * 日产量上报
  341. * @ApiMethod POST
  342. * @params array data
  343. */
  344. // public function submitDailyProduction(){
  345. // if (Request::instance()->isPost() == false){
  346. // $this->error('非法请求');
  347. // }
  348. // $params = Request::instance()->post();
  349. // $time = date('Y-m-d 00:00:00',time()-86400);
  350. // if ($params['sczl_sj2']<date('Y-m-d 08:30:00',time()) && $params['sczl_sj2']>date('Y-m-d 00:00:00')){
  351. // $params['sczl_rq'] = $time;
  352. // }
  353. // $machine = $params['sczl_jtbh'].'#';
  354. // $batchData = []; //批次追踪数据
  355. // $batch = $params['bom'];
  356. // $data = $params;//产量数据
  357. // $data['sczl_type'] = $params['sczl_gxmc'];
  358. // $data['sczl_前工序废'] = $params['last_fp'];
  359. // $data['sczl_来料少数'] = $params['less_sl'];
  360. // $data['sczl_装版总工时'] = $params['zb_time'];
  361. // $data['sczl_打样总工时'] = $params['dy_time'];
  362. // $data['sczl_设备运行工时'] = $params['run_time'];
  363. // $data['sczl_jtbh'] = $machine;
  364. // $data['码包'] = $params['code'];
  365. // $data['主电表'] = $params['main_meter'];
  366. // $data['辅电表'] = $params['auxiliary_meter'];
  367. // unset($data['last_fp']);
  368. // unset($data['less_sl']);
  369. // unset($data['zb_time']);
  370. // unset($data['dy_time']);
  371. // unset($data['run_time']);
  372. // unset($data['code']);
  373. // unset($data['main_meter']);
  374. // unset($data['auxiliary_meter']);
  375. // unset($data['bom']);
  376. // $start_time = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
  377. // if (!empty($start_time)){
  378. // $data['开工时间'] = $start_time['开工时间'];
  379. // }else{
  380. // $data['开工时间'] = '';
  381. // }
  382. // $sys_id = \db('设备_基本资料')->where('设备编号',$machine)->value('sys_sbID');
  383. // $data['sys_id'] = '['.$sys_id.'/'.$machine.']';
  384. // $UniqId = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId');
  385. // if ($UniqId < 10000000){
  386. // $data['UniqId'] = 10000000;
  387. // }else{
  388. // $data['UniqId'] = $UniqId + 1;
  389. // }
  390. // $data['sczl_Pgcl'] = 0;
  391. // $data['sczl_oil'] = 0;
  392. // $data['sczl_计产系数'] = 0;
  393. // $data['sczl_工价系数'] = 0;
  394. // $data['sczl_装版工时'] = 0;
  395. // $data['sczl_保养工时'] = 0;
  396. // $data['sczl_打样工时'] = 0;
  397. // $data['sczl_异常停机工时'] = 0;
  398. // $data['sczl_异常工时1'] = 0;
  399. // $data['sczl_异常类型1'] = '';
  400. // $data['sczl_废品率系数'] = '';
  401. // $data['sczl_desc'] = '';
  402. // $data['sczl_wgsj'] = '1900-01-01 00:00:00';
  403. // $data['码开始行'] = $params['ma_start'];
  404. // $data['码结束行'] = $params['ma_end'];
  405. // $data['mod_rq'] = '1900-01-01 00:00:00';
  406. // $data['sys_rq'] = date('Y-m-d H:i:s');
  407. // unset($data['ma_start']);
  408. // unset($data['ma_end']);
  409. // if (!empty($batch)){
  410. // $batchData = explode(',',$batch);
  411. // $newData = [];
  412. // $batchUniqId = \db('物料_批次跟踪')->order('UniqId desc')->value('UniqId');
  413. // if ($batchUniqId < 10000000){
  414. // $batchUniqId = 10000000;
  415. // }
  416. // foreach ($batchData as $key=>$item){
  417. // $batchUniqId++;
  418. // $val = explode('-',$item);
  419. // $newData[$key]['wlbh'] = $val[0];
  420. // $newData[$key]['wlBatch'] = $val[1];
  421. // $newData[$key]['sczl_gdbh'] = $data['sczl_gdbh'];
  422. // $newData[$key]['sczl_yjno'] = $data['sczl_yjno'];
  423. // $newData[$key]['sczl_gxh'] = $data['sczl_gxh'];
  424. // $newData[$key]['sczl_gxmc'] = $data['sczl_gxmc'];
  425. // $newData[$key]['sczl_num'] = $data['sczl_num'];
  426. // $newData[$key]['sys_id'] = $data['sys_id'];
  427. // $newData[$key]['sys_rq'] = $data['sys_rq'];
  428. // $newData[$key]['UniqID'] = $batchUniqId;
  429. // }
  430. // }
  431. // if (!empty($data['sczl_装版总工时']) && $data['sczl_装版总工时'] !== 0){
  432. // $priData = [
  433. // 'gdbh' => $data['sczl_gdbh'] ?? '',
  434. // 'yjno' => $data['sczl_yjno'] ?? '',
  435. // 'gxh' => $data['sczl_gxh'] ?? '',
  436. // 'jtbh' => $data['sczl_jtbh'] ?? '',
  437. // 'startTime' => $data['sczl_sj1'] ?? '',
  438. // 'endTime' => $data['sczl_sj2'] ?? '',
  439. // '换版总工时' => $data['sczl_装版总工时'],
  440. // '换版联拼数' => $data['sczl_换版联拼数'] ?? 0,
  441. // '换版类型' => $data['换版类型'] ?? ''
  442. // ];
  443. // $priSql = \db('设备_装版工时')->fetchSql(true)->insert($priData);
  444. // $priRes = \db()->query($priSql);
  445. // }
  446. // unset($data['sczl_换版联拼数']);
  447. // unset($data['换版类型']);
  448. // $res = false;
  449. // $batch_res = false;
  450. // Db::startTrans();
  451. // try {
  452. // $sql = \db('设备_产量计酬')->fetchSql(true)->insert($data);
  453. // $res = Db::query($sql);
  454. // if (!empty($batch)){
  455. // $batch_sql = \db('物料_批次跟踪')->fetchSql(true)->insertAll($newData);
  456. // $batch_res = Db::query($batch_sql);
  457. // }else{
  458. // $batch_res = true;
  459. // }
  460. //
  461. // Db::commit();
  462. // cache('MachineProductReport-getList',null);
  463. // }catch (\Exception $e){
  464. // Db::rollback();
  465. // }
  466. // if ($res === false || $batch_res === false){
  467. // $this->error('报工失败');
  468. // }else{
  469. // $this->success('报工成功');
  470. // }
  471. //
  472. // }// public function submitDailyProduction(){
  473. // if (Request::instance()->isPost() == false){
  474. // $this->error('非法请求');
  475. // }
  476. // $params = Request::instance()->post();
  477. // $time = date('Y-m-d 00:00:00',time()-86400);
  478. // if ($params['sczl_sj2']<date('Y-m-d 08:30:00',time()) && $params['sczl_sj2']>date('Y-m-d 00:00:00')){
  479. // $params['sczl_rq'] = $time;
  480. // }
  481. // $machine = $params['sczl_jtbh'].'#';
  482. // $batchData = []; //批次追踪数据
  483. // $batch = $params['bom'];
  484. // $data = $params;//产量数据
  485. // $data['sczl_type'] = $params['sczl_gxmc'];
  486. // $data['sczl_前工序废'] = $params['last_fp'];
  487. // $data['sczl_来料少数'] = $params['less_sl'];
  488. // $data['sczl_装版总工时'] = $params['zb_time'];
  489. // $data['sczl_打样总工时'] = $params['dy_time'];
  490. // $data['sczl_设备运行工时'] = $params['run_time'];
  491. // $data['sczl_jtbh'] = $machine;
  492. // $data['码包'] = $params['code'];
  493. // $data['主电表'] = $params['main_meter'];
  494. // $data['辅电表'] = $params['auxiliary_meter'];
  495. // unset($data['last_fp']);
  496. // unset($data['less_sl']);
  497. // unset($data['zb_time']);
  498. // unset($data['dy_time']);
  499. // unset($data['run_time']);
  500. // unset($data['code']);
  501. // unset($data['main_meter']);
  502. // unset($data['auxiliary_meter']);
  503. // unset($data['bom']);
  504. // $start_time = \db('设备_产量采集')->where('设备编号',$machine)->order('UniqId desc')->find();
  505. // if (!empty($start_time)){
  506. // $data['开工时间'] = $start_time['开工时间'];
  507. // }else{
  508. // $data['开工时间'] = '';
  509. // }
  510. // $sys_id = \db('设备_基本资料')->where('设备编号',$machine)->value('sys_sbID');
  511. // $data['sys_id'] = '['.$sys_id.'/'.$machine.']';
  512. // $UniqId = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId');
  513. // if ($UniqId < 10000000){
  514. // $data['UniqId'] = 10000000;
  515. // }else{
  516. // $data['UniqId'] = $UniqId + 1;
  517. // }
  518. // $data['sczl_Pgcl'] = 0;
  519. // $data['sczl_oil'] = 0;
  520. // $data['sczl_计产系数'] = 0;
  521. // $data['sczl_工价系数'] = 0;
  522. // $data['sczl_装版工时'] = 0;
  523. // $data['sczl_保养工时'] = 0;
  524. // $data['sczl_打样工时'] = 0;
  525. // $data['sczl_异常停机工时'] = 0;
  526. // $data['sczl_异常工时1'] = 0;
  527. // $data['sczl_异常类型1'] = '';
  528. // $data['sczl_废品率系数'] = '';
  529. // $data['sczl_desc'] = '';
  530. // $data['sczl_wgsj'] = '1900-01-01 00:00:00';
  531. // $data['码开始行'] = $params['ma_start'];
  532. // $data['码结束行'] = $params['ma_end'];
  533. // $data['mod_rq'] = '1900-01-01 00:00:00';
  534. // $data['sys_rq'] = date('Y-m-d H:i:s');
  535. // unset($data['ma_start']);
  536. // unset($data['ma_end']);
  537. // if (!empty($batch)){
  538. // $batchData = explode(',',$batch);
  539. // $newData = [];
  540. // $batchUniqId = \db('物料_批次跟踪')->order('UniqId desc')->value('UniqId');
  541. // if ($batchUniqId < 10000000){
  542. // $batchUniqId = 10000000;
  543. // }
  544. // foreach ($batchData as $key=>$item){
  545. // $batchUniqId++;
  546. // $val = explode('-',$item);
  547. // $newData[$key]['wlbh'] = $val[0];
  548. // $newData[$key]['wlBatch'] = $val[1];
  549. // $newData[$key]['sczl_gdbh'] = $data['sczl_gdbh'];
  550. // $newData[$key]['sczl_yjno'] = $data['sczl_yjno'];
  551. // $newData[$key]['sczl_gxh'] = $data['sczl_gxh'];
  552. // $newData[$key]['sczl_gxmc'] = $data['sczl_gxmc'];
  553. // $newData[$key]['sczl_num'] = $data['sczl_num'];
  554. // $newData[$key]['sys_id'] = $data['sys_id'];
  555. // $newData[$key]['sys_rq'] = $data['sys_rq'];
  556. // $newData[$key]['UniqID'] = $batchUniqId;
  557. // }
  558. // }
  559. // if (!empty($data['sczl_装版总工时']) && $data['sczl_装版总工时'] !== 0){
  560. // $priData = [
  561. // 'gdbh' => $data['sczl_gdbh'] ?? '',
  562. // 'yjno' => $data['sczl_yjno'] ?? '',
  563. // 'gxh' => $data['sczl_gxh'] ?? '',
  564. // 'jtbh' => $data['sczl_jtbh'] ?? '',
  565. // 'startTime' => $data['sczl_sj1'] ?? '',
  566. // 'endTime' => $data['sczl_sj2'] ?? '',
  567. // '换版总工时' => $data['sczl_装版总工时'],
  568. // '换版联拼数' => $data['sczl_换版联拼数'] ?? 0,
  569. // '换版类型' => $data['换版类型'] ?? ''
  570. // ];
  571. // $priSql = \db('设备_装版工时')->fetchSql(true)->insert($priData);
  572. // $priRes = \db()->query($priSql);
  573. // }
  574. // unset($data['sczl_换版联拼数']);
  575. // unset($data['换版类型']);
  576. // $res = false;
  577. // $batch_res = false;
  578. // Db::startTrans();
  579. // try {
  580. // $sql = \db('设备_产量计酬')->fetchSql(true)->insert($data);
  581. // $res = Db::query($sql);
  582. // if (!empty($batch)){
  583. // $batch_sql = \db('物料_批次跟踪')->fetchSql(true)->insertAll($newData);
  584. // $batch_res = Db::query($batch_sql);
  585. // }else{
  586. // $batch_res = true;
  587. // }
  588. //
  589. // Db::commit();
  590. // cache('MachineProductReport-getList',null);
  591. // }catch (\Exception $e){
  592. // Db::rollback();
  593. // }
  594. // if ($res === false || $batch_res === false){
  595. // $this->error('报工失败');
  596. // }else{
  597. // $this->success('报工成功');
  598. // }
  599. //
  600. // }
  601. public function submitDailyProduction()
  602. {
  603. // 1. 请求验证优化
  604. if (!Request::instance()->isPost()) {
  605. $this->error('非法请求');
  606. }
  607. $params = Request::instance()->post();
  608. // 2. 数据预处理
  609. $processedData = $this->preprocessData($params);
  610. // 3. 数据验证
  611. if (!$this->validateData($processedData)) {
  612. $this->error('数据验证失败');
  613. }
  614. // 4. 数据库操作
  615. $result = $this->saveProductionData($processedData);
  616. if ($result) {
  617. // 5. 清理缓存
  618. cache('MachineProductReport-getList', null);
  619. $this->success('报工成功');
  620. } else {
  621. $this->error('报工失败');
  622. }
  623. }
  624. /**
  625. * 数据预处理
  626. */
  627. private function preprocessData($params)
  628. {
  629. $currentTime = time();
  630. // 处理日期逻辑
  631. if ($this->isEarlyMorningProduction($params['sczl_sj2'], $currentTime)) {
  632. $params['sczl_rq'] = date('Y-m-d 00:00:00', $currentTime - 86400);
  633. }
  634. $machine = $params['sczl_jtbh'] . '#';
  635. // 构建基础数据
  636. $data = [
  637. // 字段映射
  638. 'sczl_type' => $params['sczl_gxmc'],
  639. 'sczl_前工序废' => $params['last_fp'],
  640. 'sczl_来料少数' => $params['less_sl'],
  641. 'sczl_装版总工时' => $params['zb_time'],
  642. 'sczl_打样总工时' => $params['dy_time'],
  643. 'sczl_设备运行工时' => $params['run_time'],
  644. 'sczl_jtbh' => $machine,
  645. '码包' => $params['code'],
  646. '主电表' => $params['main_meter'],
  647. '辅电表' => $params['auxiliary_meter'],
  648. '码开始行' => $params['ma_start'],
  649. '码结束行' => $params['ma_end'],
  650. // 系统字段
  651. 'sys_rq' => date('Y-m-d H:i:s'),
  652. 'mod_rq' => '1900-01-01 00:00:00',
  653. 'sczl_wgsj' => '1900-01-01 00:00:00',
  654. // 默认值字段
  655. 'sczl_Pgcl' => 0,
  656. 'sczl_oil' => 0,
  657. 'sczl_计产系数' => 0,
  658. 'sczl_工价系数' => 0,
  659. 'sczl_装版工时' => 0,
  660. 'sczl_保养工时' => 0,
  661. 'sczl_打样工时' => 0,
  662. 'sczl_异常停机工时' => 0,
  663. 'sczl_异常工时1' => 0,
  664. 'sczl_异常类型1' => '',
  665. 'sczl_废品率系数' => '',
  666. 'sczl_desc' => '',
  667. ];
  668. // 保留原始参数中的相关字段
  669. $preserveFields = [
  670. 'sczl_gdbh', 'sczl_yjno', 'sczl_gxh', 'sczl_gxmc',
  671. 'sczl_num', 'sczl_sj1', 'sczl_sj2', 'sczl_rq','sczl_ls',
  672. 'sczl_cl', 'sczl_zcfp', 'sczl_zccp', 'sczl_ms', 'sczl_dedh',
  673. 'sczl_bzdh', 'sczl_bh1', 'sczl_bh2', 'sczl_bh3', 'sczl_bh4', 'sczl_bh5',
  674. 'sczl_bh6', 'sczl_bh7', 'sczl_bh8', 'sczl_bh9', 'sczl_bh10',
  675. 'sczl_rate1', 'sczl_rate2', 'sczl_rate3', 'sczl_rate4',
  676. 'sczl_rate5', 'sczl_rate6', 'sczl_rate7', 'sczl_rate8',
  677. 'sczl_rate9', 'sczl_rate10', 'sczl_rate', 'sczl_bh98'
  678. ];
  679. foreach ($preserveFields as $field) {
  680. if (isset($params[$field])) {
  681. $data[$field] = $params[$field];
  682. }
  683. }
  684. // 获取开工时间
  685. $data['开工时间'] = $this->getMachineStartTime($machine);
  686. // 生成唯一ID
  687. $data['UniqId'] = $this->generateUniqId();
  688. // 设置系统ID
  689. $data['sys_id'] = $this->getSystemId($machine);
  690. return [
  691. 'data' => $data,
  692. 'batch' => $params['bom'] ?? '',
  693. 'plateChangeData' => $this->preparePlateChangeData($data, $params)
  694. ];
  695. }
  696. /**
  697. * 判断是否为凌晨生产
  698. */
  699. private function isEarlyMorningProduction($productionTime, $currentTime)
  700. {
  701. $productionTimestamp = strtotime($productionTime);
  702. $startOfDay = strtotime(date('Y-m-d 00:00:00', $currentTime));
  703. $morningTime = strtotime(date('Y-m-d 08:30:00', $currentTime));
  704. return $productionTimestamp < $morningTime && $productionTimestamp > $startOfDay;
  705. }
  706. /**
  707. * 获取设备开工时间
  708. */
  709. private function getMachineStartTime($machine)
  710. {
  711. $startTimeRecord = \db('设备_产量采集')
  712. ->where('设备编号', $machine)
  713. ->order('UniqId desc')
  714. ->find();
  715. return $startTimeRecord['开工时间'] ?? '';
  716. }
  717. /**
  718. * 生成唯一ID
  719. */
  720. private function generateUniqId()
  721. {
  722. $lastUniqId = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId');
  723. return ($lastUniqId < 10000000) ? 10000000 : $lastUniqId + 1;
  724. }
  725. /**
  726. * 获取系统ID
  727. */
  728. private function getSystemId($machine)
  729. {
  730. $sysId = \db('设备_基本资料')->where('设备编号', $machine)->value('sys_sbID');
  731. return '[' . $sysId . '/' . $machine . ']';
  732. }
  733. /**
  734. * 准备装版数据
  735. */
  736. private function preparePlateChangeData($data, $params)
  737. {
  738. if (empty($data['sczl_装版总工时']) || $data['sczl_装版总工时'] == 0) {
  739. return null;
  740. }
  741. return [
  742. 'gdbh' => $data['sczl_gdbh'] ?? '',
  743. 'yjno' => $data['sczl_yjno'] ?? '',
  744. 'gxh' => $data['sczl_gxh'] ?? '',
  745. 'jtbh' => $data['sczl_jtbh'] ?? '',
  746. 'startTime' => $data['sczl_sj1'] ?? '',
  747. 'endTime' => $data['sczl_sj2'] ?? '',
  748. '换版总工时' => $data['sczl_装版总工时'],
  749. '换版联拼数' => $params['sczl_换版联拼数'] ?? 0,
  750. '换版类型' => $params['换版类型'] ?? '',
  751. 'yieldUid' => $this->generateUniqId(),
  752. 'sys_rq' => date('Y-m-d H:i:s'),
  753. 'sys_id' => $this->getSystemId($data['sczl_jtbh'])
  754. ];
  755. }
  756. /**
  757. * 准备批次数据
  758. */
  759. private function prepareBatchData($batch, $baseData)
  760. {
  761. if (empty($batch)) {
  762. return [];
  763. }
  764. $batchData = explode(',', $batch);
  765. $batchUniqId = \db('物料_批次跟踪')->order('UniqId desc')->value('UniqId');
  766. $batchUniqId = ($batchUniqId < 10000000) ? 10000000 : $batchUniqId;
  767. $newData = [];
  768. foreach ($batchData as $item) {
  769. $batchUniqId++;
  770. $val = explode('-', $item);
  771. $newData[] = [
  772. 'wlbh' => $val[0],
  773. 'wlBatch' => $val[1],
  774. 'sczl_gdbh' => $baseData['sczl_gdbh'],
  775. 'sczl_yjno' => $baseData['sczl_yjno'],
  776. 'sczl_gxh' => $baseData['sczl_gxh'],
  777. 'sczl_gxmc' => $baseData['sczl_gxmc'],
  778. 'sczl_num' => $baseData['sczl_num'],
  779. 'sys_id' => $baseData['sys_id'],
  780. 'sys_rq' => $baseData['sys_rq'],
  781. 'UniqID' => $batchUniqId
  782. ];
  783. }
  784. return $newData;
  785. }
  786. /**
  787. * 数据验证
  788. */
  789. private function validateData($data)
  790. {
  791. // 必要的字段验证
  792. $requiredFields = ['sczl_gdbh', 'sczl_jtbh', 'sczl_sj1', 'sczl_sj2'];
  793. foreach ($requiredFields as $field) {
  794. if (empty($data['data'][$field])) {
  795. return false;
  796. }
  797. }
  798. // 时间逻辑验证
  799. if (strtotime($data['data']['sczl_sj1']) > strtotime($data['data']['sczl_sj2'])) {
  800. return false;
  801. }
  802. return true;
  803. }
  804. /**
  805. * 保存生产数据
  806. */
  807. private function saveProductionData($processedData)
  808. {
  809. Db::startTrans();
  810. try {
  811. // 保存主数据
  812. $mainSql = \db('设备_产量计酬')->fetchSql(true)->insert($processedData['data']);
  813. $mainResult = \db()->query($mainSql);
  814. // 保存批次数据
  815. $batchData = $this->prepareBatchData($processedData['batch'], $processedData['data']);
  816. $batchResult = true;
  817. if (!empty($batchData)) {
  818. $batchResult = \db('物料_批次跟踪')->insertAll($batchData);
  819. }
  820. // 保存装版数据
  821. $plateResult = true;
  822. if (!empty($processedData['plateChangeData'])) {
  823. $plateSql = \db('设备_装版工时')->fetchSql(true)->insert($processedData['plateChangeData']);
  824. $plateResult = \db()->query($plateSql);
  825. }
  826. if ($mainResult !== false && $batchResult !== false && $plateResult !== false) {
  827. Db::commit();
  828. return true;
  829. } else {
  830. Db::rollback();
  831. return false;
  832. }
  833. } catch (\Exception $e) {
  834. Db::rollback();
  835. // 记录日志
  836. \think\Log::error('生产数据保存失败: ' . $e->getMessage());
  837. return false;
  838. }
  839. }
  840. /**
  841. * 获取机台编号
  842. * @ApiMethod POST
  843. * @params string addr
  844. */
  845. public function getMachineMac(){
  846. if (Request::instance()->isGet() == false){
  847. $this->error('非法请求');
  848. }
  849. $params = Request::instance()->get();
  850. if (empty($params['addr'])){
  851. $this->error('参数不能为空');
  852. }
  853. $data = \db('设备_基本资料')->where('sys_sbID',$params['addr'])->field('设备编号,rtrim(使用部门) as 使用部门')->find();
  854. $this->success('请求成功',$data);
  855. }
  856. /**
  857. * 6获取拉料人员
  858. * @ApiMethod GET
  859. * @params department
  860. */
  861. public function getMaterialStrippingPeople(){
  862. if (Request::instance()->isGet() == false) {
  863. $this->error('非法请求');
  864. }
  865. $params = Request::instance()->param();
  866. $where = [];
  867. if (!isset($params['department']) || empty($params['department'])) {
  868. $this->error('参数错误');
  869. }if (!isset($params['search']) || !empty($params['search'])) {
  870. $where['员工编号|员工姓名'] = array('like','%'.$params['search'].'%');
  871. }
  872. $where['职称职务'] = '拉纸工';
  873. $where['在职状态'] = '在职';
  874. $where['U8在职'] = '在职';
  875. if ($params['department'] == 1){
  876. $where['所在部门'] = '生产部';
  877. }else{
  878. $where['所在部门'] = '检验车间';
  879. }
  880. $list[0]['员工编号'] = '000000';
  881. $list[0]['员工姓名'] = '自备';
  882. $data = \db('人事_基本资料')->where($where)->field('rtrim(员工编号) as 员工编号,rtrim(员工姓名) as 员工姓名')->order('班组代号 desc')->select();
  883. if (!empty($data)){
  884. foreach ($data as $item){
  885. array_push($list,$item);
  886. }
  887. }
  888. $this->success('请求成功',$list);
  889. }
  890. /**
  891. * 设置当前生产工单
  892. * @return void
  893. * @throws \think\Exception
  894. * @throws \think\db\exception\BindParamException
  895. * @throws \think\db\exception\DataNotFoundException
  896. * @throws \think\db\exception\ModelNotFoundException
  897. * @throws \think\exception\DbException
  898. * @throws \think\exception\PDOException
  899. */
  900. public function MachineWorkOrderEdit()
  901. {
  902. if (Request::instance()->isPost() === false) {
  903. $this->error('非法请求');
  904. }
  905. $params = Request::instance()->post();
  906. $list = \db('工单_基本资料')
  907. ->alias('a')
  908. ->field([
  909. 'RTRIM( b.Gy0_sj1 )' => 'sj1',
  910. 'RTRIM( b.Gy0_sj2 )' => 'sj2',
  911. 'RTRIM( b.UniqId )' => 'id'
  912. ])
  913. ->join('工单_工艺资料 b', 'a.Gd_gdbh = b.Gy0_gdbh')
  914. ->where([
  915. 'a.gd_statu' => '2-生产中',
  916. 'a.行号' => '1',
  917. 'b.Gy0_sbbh' => ['LIKE', '%' . $params['machine'] . '%'],
  918. 'b.PD_WG' => '1900-01-01 00:00:00',
  919. 'b.Gy0_sj1' => ['>', '1900-01-01 00:00:00'],
  920. ])
  921. ->where('b.Gy0_sj1', '<', '2099-01-01 00:00:00')
  922. ->group('a.Gd_gdbh,b.Gy0_yjno,b.Gy0_gxh')
  923. ->order('Gy0_sj1')
  924. ->select();
  925. $start = date('Y-m-d H:i:s', time());
  926. if ($start < date('Y-m-d H:15:00', time())) {
  927. $start = date('Y-m-d H:00:00', time());
  928. } elseif ($start > date('Y-m-d H:45:00', time())) {
  929. $start = date('Y-m-d H:00:00', time());
  930. } else {
  931. $start = date('Y-m-d H:30:00', time());
  932. }
  933. $data = $time = [];
  934. $i = 0;
  935. foreach ($list as $key => $value) {
  936. if ($value['id'] === $params['UniqId']) {
  937. $time = [
  938. 'Gy0_sj1' => $start,
  939. 'Gy0_sj2' => date('Y-m-d H:i:s', strtotime($start) + (strtotime($value['sj1']) - strtotime($value['sj2']))),
  940. 'id' => $value['id']
  941. ];
  942. unset($list[$key]);
  943. }
  944. }
  945. $arr = array_values($list);
  946. $data[0] = $time;
  947. foreach ($arr as $key => $value){
  948. $workTime = [
  949. 'Gy0_sj1' => $data[$key]['Gy0_sj2'],
  950. 'Gy0_sj2' => date('Y-m-d H:i:s', strtotime($data[$key]['Gy0_sj2']) + (strtotime($value['sj1']) - strtotime($value['sj2']))),
  951. 'id' => $value['id']
  952. ];
  953. array_push($data,$workTime);
  954. }
  955. foreach ($data as $key=>$value){
  956. unset($value['id']);
  957. $sql = \db('工单_工艺资料')
  958. ->where('UniqId',$data[$key]['id'])
  959. ->fetchSql(true)
  960. ->update($value);
  961. $res = \db()->query($sql);
  962. if ($res === false){
  963. $i++;
  964. }
  965. }
  966. if ($i !== 0){
  967. $this->error('失败');
  968. }else{
  969. $this->success('成功');
  970. }
  971. }
  972. /**
  973. * 检品机报工
  974. * @return void
  975. * @throws \think\db\exception\BindParamException
  976. * @throws \think\db\exception\DataNotFoundException
  977. * @throws \think\db\exception\ModelNotFoundException
  978. * @throws \think\exception\DbException
  979. * @throws \think\exception\PDOException
  980. */
  981. public function JpUploade()
  982. {
  983. if (Request::instance()->isPost() == false){
  984. $this->error('非法请求');
  985. }
  986. $params = Request::instance()->post();
  987. $time = date('Y-m-d 00:00:00',time()-86400);
  988. $data = $params;
  989. $data['sczl_装版总工时'] = $params['sczl_装版工时'];
  990. $data['sczl_装版工时'] = 0;
  991. $data['sczl_sj1'] = '1900-01-01 00:00:00';
  992. $data['sczl_sj2'] = date('Y-m-d H:i:s',time());
  993. if ($data['sczl_sj2']<date('Y-m-d 08:30:00',time()) && $data['sczl_sj2']>date('Y-m-d 00:00:00')){
  994. $data['sczl_rq'] = $time;
  995. }
  996. $start_time = \db('设备_产量采集')->where('设备编号',$data['sczl_jtbh'])->order('UniqId desc')->find();
  997. if (!empty($start_time)){
  998. $data['开工时间'] = $start_time['开工时间'];
  999. }else{
  1000. $data['开工时间'] = '1900-01-01 00:00:00';
  1001. }
  1002. $sys_id = \db('设备_基本资料')->where('设备编号',$data['sczl_jtbh'])->value('sys_sbID');
  1003. $data['sys_id'] = '['.$sys_id.'/'.$data['sczl_jtbh'].']';
  1004. $UniqId = \db('设备_产量计酬')->order('UniqId desc')->value('UniqId');
  1005. $data['UniqId'] = $UniqId + 1;
  1006. $data['sczl_ls'] = 1;
  1007. $data['sczl_zcfp'] = 0;
  1008. $data['sczl_zccp'] = 0;
  1009. $data['sczl_前工序废'] = 0;
  1010. $data['sczl_来料少数'] = 0;
  1011. $data['sczl_ms'] = 0;
  1012. $data['sczl_oil'] = 0;
  1013. $data['sczl_计产系数'] = 0;
  1014. $data['sczl_工价系数'] = 0;
  1015. $data['sczl_保养工时'] = 0;
  1016. $data['sczl_打样工时'] = 0;
  1017. $data['sczl_异常停机工时'] = 0;
  1018. $data['sczl_异常工时1'] = 0;
  1019. $data['sczl_异常类型1'] = '';
  1020. $data['sczl_desc'] = '';
  1021. $data['sczl_wgsj'] = '1900-01-01 00:00:00';
  1022. $data['码开始行'] = 0;
  1023. $data['码结束行'] = 0;
  1024. $data['码包'] = 0;
  1025. $data['主电表'] = 0;
  1026. $data['辅电表'] = 0;
  1027. $data['mod_rq'] = '1900-01-01 00:00:00';
  1028. $data['sys_rq'] = date('Y-m-d H:i:s');
  1029. $sql = \db('设备_产量计酬')->fetchSql(true)->insert($data);
  1030. $res = \db()->query($sql);
  1031. if ($res === false){
  1032. $this->error('添加失败');
  1033. }else{
  1034. $this->success('成功');
  1035. }
  1036. }
  1037. /**
  1038. * 获取当前日期和时间
  1039. * @return void
  1040. */
  1041. public function getTime()
  1042. {
  1043. $data = [
  1044. 'date' => date('Y-m-d',time()),
  1045. 'hours' => date('Y-m-d H:i:s',time())
  1046. ];
  1047. $this->success('成功',$data);
  1048. }
  1049. /**检品机获取废品率系数
  1050. * @return void
  1051. */
  1052. public function getRejectRate()
  1053. {
  1054. if ($this->request->isGet() === false){
  1055. $this->error('请求错误');
  1056. }
  1057. $param = $this->request->param();
  1058. if (!isset($param['order']) || !isset($param['yjno']) || !isset($param['gxh']) || !isset($param['type'])){
  1059. $this->error('参数错误');
  1060. }
  1061. if (strpos($param['type'],'正品') !== false){
  1062. $param['type'] = '正品板';
  1063. }
  1064. if (strpos($param['type'],'次品') !== false){
  1065. $param['type'] = '次品板';
  1066. }
  1067. if (strpos($param['type'],'废品') !== false){
  1068. $param['type'] = '废检';
  1069. }
  1070. $res = \db('工单_工艺资料')
  1071. ->where('Gy0_gdbh',$param['order'])
  1072. ->where('Gy0_yjno',$param['yjno'])
  1073. ->where('Gy0_gxh',$param['gxh'])
  1074. ->column('机检_'.$param['type'])[0];
  1075. $this->success('成功',$res);
  1076. }
  1077. }