MachineProductionReport.php 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. /**
  5. * 机台生产日报表维护接口
  6. */
  7. class MachineProductionReport extends Api
  8. {
  9. protected $noNeedLogin = ['*'];
  10. protected $noNeedRight = ['*'];
  11. /**
  12. * 首页
  13. *
  14. */
  15. public function index()
  16. {
  17. $this->success('请求成功');
  18. }
  19. /**
  20. * 获取机台生产日报表侧边栏
  21. * @ApiMethod (GET)
  22. */
  23. public function getTab()
  24. {
  25. //get请求
  26. if(!$this->request->isGet()){
  27. $this->error('请求方式错误');
  28. }
  29. $rows = db()->table('设备_产量计酬')
  30. ->field('LEFT(sys_rq, 10) as date, COUNT(*) as counts')
  31. ->group('date')
  32. ->order('UniqId desc')
  33. ->limit(30)
  34. ->select();
  35. $rows1 = db()->table('db_sczl')
  36. ->group('date')
  37. ->order('UniqId desc')
  38. ->limit(40)
  39. ->column('LEFT(sys_rq, 10) as date, COUNT(*) as counts');
  40. $arr2 = db()->table('设备_产量计酬')
  41. ->field('LEFT(sys_rq, 10) as date, rtrim(sys_id) as sys_id, COUNT(sys_id) as count')
  42. ->where('sys_rq','>=',$rows[29]['date'])
  43. ->group('date, sys_id')
  44. ->select();
  45. $arr1 = db()->table('db_sczl')
  46. ->field('LEFT(sys_rq, 10) as date, rtrim(sys_id) as sys_id, COUNT(sys_id) as count')
  47. ->where('sys_rq','>=',$rows[29]['date'])
  48. ->group('date, sys_id')
  49. ->select();
  50. $result = [];
  51. // 遍历第一个数组
  52. foreach ($arr1 as $item) {
  53. $date = $item['date'];
  54. $sysId = $item['sys_id'];
  55. $count = $item['count'];
  56. // 如果结果数组中不存在该日期和系统ID的记录,则创建新记录
  57. if (!isset($result[$date][$sysId])) {
  58. $result[$date][$sysId] = 0;
  59. }
  60. // 将count累加到对应的记录中
  61. $result[$date][$sysId] += $count;
  62. }
  63. // 遍历第二个数组
  64. foreach ($arr2 as $item) {
  65. $date = $item['date'];
  66. $sysId = $item['sys_id'];
  67. $count = $item['count'];
  68. // 如果结果数组中不存在该日期和系统ID的记录,则创建新记录
  69. if (!isset($result[$date][$sysId])) {
  70. if (substr($sysId,1,3)=='00-'){
  71. if (isset($result[$date])){
  72. $result[$date] = array_merge([$sysId=>0],$result[$date]);
  73. }else{
  74. $result[$date][$sysId] = 0;
  75. }
  76. // }else if (substr($sysId,5,1)=='/'){
  77. // $num = substr($sysId,1,4);
  78. // $i = $flag = 0;
  79. // foreach ($result[$date] as $k => $v) {
  80. // if (substr($k, 4, 1) === "/") {
  81. // dump(substr($k, 1, 4));
  82. // dump($k);
  83. // dump($result[$date][$i+1]);
  84. // if (substr($k, 1, 4)<$num && substr($result[$date][$i+1], 1, 4)>$num){
  85. // $flag = $i;
  86. // break;
  87. // }
  88. // }
  89. // $i++;
  90. // }
  91. // dump($flag);
  92. // if (isset($result[$date])){
  93. // $result[$date] = array_merge([$sysId=>0],$result[$date]);
  94. // }else{
  95. // $result[$date][$sysId] = 0;
  96. // }
  97. }else{
  98. $result[$date][$sysId] = 0;
  99. }
  100. }
  101. // 将count累加到对应的记录中
  102. $result[$date][$sysId] += $count;
  103. }
  104. foreach($rows as $key=>$value){
  105. if(array_key_exists($value['date'],$rows1)){
  106. $rows[$key]['counts'] = $value['counts']+$rows1[$value['date']];
  107. }else{
  108. $rows[$key]['counts'] = $value['counts'];
  109. }
  110. $rows[$key]['sys'] = $result[$value['date']];
  111. $rows[$key]['date'] = str_replace('-', '.', $rows[$key]['date']);
  112. }
  113. $this->success('成功',$rows);
  114. }
  115. /**
  116. * 通过工单获取机台生产日报表侧边栏
  117. * @ApiMethod (GET)
  118. */
  119. public function getTabByGdbh()
  120. {
  121. //get请求
  122. if(!$this->request->isGet()){
  123. $this->error('请求方式错误');
  124. }
  125. $sql = 'SELECT t1.`sczl_gdbh`,t2.`yj_yjmc`
  126. FROM (
  127. SELECT `sczl_gdbh`, sczl_yjno FROM `db_sczl`
  128. UNION
  129. SELECT `sczl_gdbh`, sczl_yjno FROM `设备_产量计酬`
  130. GROUP BY `sczl_gdbh`
  131. ) AS t1
  132. JOIN `工单_印件资料` AS t2 ON t1.`sczl_gdbh` = t2.`Yj_Gdbh`
  133. WHERE t1.sczl_yjno = t2.yj_Yjno
  134. ORDER BY t1.`sczl_gdbh` DESC
  135. LIMIT 65';
  136. $rows = db()->query($sql);
  137. $arr1 = db()->table('设备_产量计酬')
  138. ->field('sczl_gdbh,rtrim(sys_id) as sys_id')
  139. ->where('sczl_gdbh','>=',$rows[64]['sczl_gdbh'])
  140. ->select();
  141. $arr2 = db()->table('db_sczl')
  142. ->field('sczl_gdbh,rtrim(sys_id) as sys_id')
  143. ->where('sczl_gdbh','>=',$rows[64]['sczl_gdbh'])
  144. ->select();
  145. $arr = array_merge($arr1,$arr2);
  146. $brr = [];
  147. foreach($arr as $k=>$v){
  148. if(array_key_exists($v['sczl_gdbh'],$brr)){
  149. if(array_key_exists($v['sys_id'],$brr[$v['sczl_gdbh']])){
  150. $brr[$v['sczl_gdbh']][$v['sys_id']] += 1;
  151. }else{
  152. $brr[$v['sczl_gdbh']][$v['sys_id']] = 1;
  153. }
  154. }else{
  155. $brr[$v['sczl_gdbh']][$v['sys_id']] = 1;
  156. }
  157. }
  158. foreach($rows as $key=>$value){
  159. $rows[$key]['sys'] = $brr[$value['sczl_gdbh']];
  160. $rows[$key]['yj_yjmc'] = trim($value['yj_yjmc']);
  161. }
  162. $this->success('成功',$rows);
  163. }
  164. /**
  165. * 获取机台生产日报表列表
  166. * @ApiMethod (GET)
  167. * @param string $date 时间
  168. * @param string $sys_id 用户
  169. */
  170. public function getList()
  171. {
  172. //get请求
  173. if(!$this->request->isGet()){
  174. $this->error('请求方式错误');
  175. }
  176. $req = $this->request->param();
  177. if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
  178. $page = 1;
  179. $limit = 15;
  180. if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
  181. if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
  182. if(strpos($req['date'],'-')){
  183. $where = ['a.sys_rq'=>['like','%'.$req['date'].'%']];
  184. $option = ['sys_rq'=>['like','%'.$req['date'].'%']];
  185. }else{
  186. $where = ['a.sczl_gdbh'=>$req['date']];
  187. $option = ['sczl_gdbh'=>$req['date']];
  188. }
  189. if (isset($req['sys_id']) && !empty($req['sys_id'])){
  190. $where['a.sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
  191. $option['sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
  192. }
  193. //拆片联拼系数 拆片条小盒系数
  194. $rows1 = db()->table('设备_产量计酬')->alias('a')
  195. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  196. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_zcfp, a.sczl_zccp, a.sczl_来料少数,
  197. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  198. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数,
  199. d.日定额, d.千件工价, d.补产标准,
  200. rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId')
  201. ->where($where)
  202. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  203. ->order('a.sys_id asc, a.sczl_num asc')
  204. ->page($page,$limit)
  205. ->select();
  206. $total1 = db()->table('设备_产量计酬')->where($option)->count();
  207. //来料异常
  208. $rows2 = db()->table('db_sczl')->alias('a')
  209. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  210. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_fp as sczl_zcfp, a.sczl_cp as sczl_zccp,
  211. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  212. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  213. a.拆片联拼系数, a.拆片条小盒系数, a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准,
  214. rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId')
  215. ->where($where)
  216. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  217. ->order('a.sys_id asc, a.sczl_num asc')
  218. ->page($page,$limit)
  219. ->select();
  220. $total2 = db()->table('db_sczl')->where($option)->count();
  221. $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
  222. $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
  223. foreach ($rows2 as $key=>$value){
  224. $rows[$key]['mod_rq'] = $value['mod_rq']=='1900-01-01 00:00:00' ? '' :$value['mod_rq'];
  225. $rows2[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
  226. $rows2[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  227. for ($i=2;$i<=6;$i++){
  228. if ($value['sczl_bh'.$i]){
  229. if ($value['sczl_bh'.$i]==$value['sczl_bh1']){
  230. $rows2[$key]['name'.$i] = $rows2[$key]['name1'];
  231. }else{
  232. $rows2[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  233. }
  234. }else{
  235. $rows2[$key]['name'.$i] = '';
  236. }
  237. }
  238. $rows2[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  239. $rows2[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num'];
  240. $rows2[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : floatval($value['sczl_cl']);
  241. $rows2[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : floatval($value['sczl_ms']);
  242. $rows2[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : floatval($value['sczl_zcfp']);
  243. $rows2[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : floatval($value['sczl_zccp']);
  244. $rows2[$key]['sczl_装版工时'] = $value['sczl_装版工时'] == 0 ? '' : floatval($value['sczl_装版工时']);
  245. $rows2[$key]['sczl_保养工时'] = $value['sczl_保养工时'] == 0 ? '' : floatval($value['sczl_保养工时']);
  246. $rows2[$key]['sczl_打样工时'] = $value['sczl_打样工时'] == 0 ? '' : floatval($value['sczl_打样工时']);
  247. $rows2[$key]['sczl_异常停机工时'] = $value['sczl_异常停机工时'] == 0 ? '' : floatval($value['sczl_异常停机工时']);
  248. $rows2[$key]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : floatval($value['sczl_设备运行工时']);
  249. $rows2[$key]['拆片联拼系数'] = $value['拆片联拼系数'] == 0 ? '' : floatval($value['拆片联拼系数']);
  250. $rows2[$key]['拆片条小盒系数'] = $value['拆片条小盒系数'] == 0 ? '' : floatval($value['拆片条小盒系数']);
  251. $rows2[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : floatval($value['sczl_工价系数']);
  252. $rows2[$key]['千件工价'] = $value['千件工价'] == 0 ? '' : floatval($value['千件工价']);
  253. $rows2[$key]['table_type']='db_sczl';
  254. unset($rows2[$key]['sczl_yjno']);
  255. unset($rows2[$key]['sczl_gxh']);
  256. unset($rows2[$key]['sczl_type']);
  257. }
  258. foreach ($rows1 as $key=>$value){
  259. $rows[$key]['mod_rq'] = $value['mod_rq']=='1900-01-01 00:00:00' ? '' :$value['mod_rq'];
  260. $rows1[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
  261. $rows1[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  262. for ($i=2;$i<=6;$i++){
  263. if ($value['sczl_bh'.$i]){
  264. if ($value['sczl_bh'.$i]==$value['sczl_bh1']){
  265. $rows1[$key]['name'.$i] = $rows1[$key]['name1'];
  266. }else{
  267. $rows1[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  268. }
  269. }else{
  270. $rows1[$key]['name'.$i] = '';
  271. }
  272. }
  273. $rows1[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  274. $rows1[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num'];
  275. $rows1[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : floatval($value['sczl_cl']);
  276. $rows1[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : floatval($value['sczl_ms']);
  277. $rows1[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : floatval($value['sczl_zcfp']);
  278. $rows1[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : floatval($value['sczl_zccp']);
  279. $rows1[$key]['sczl_来料少数'] = $value['sczl_来料少数'] == 0 ? '' : floatval($value['sczl_来料少数']);
  280. $rows1[$key]['sczl_装版工时'] = $value['sczl_装版工时'] == 0 ? '' : floatval($value['sczl_装版工时']);
  281. $rows1[$key]['sczl_保养工时'] = $value['sczl_保养工时'] == 0 ? '' : floatval($value['sczl_保养工时']);
  282. $rows1[$key]['sczl_打样工时'] = $value['sczl_打样工时'] == 0 ? '' : floatval($value['sczl_打样工时']);
  283. $rows1[$key]['sczl_异常停机工时'] = $value['sczl_异常停机工时'] == 0 ? '' : floatval($value['sczl_异常停机工时']);
  284. $rows1[$key]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : floatval($value['sczl_设备运行工时']);
  285. $rows1[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : floatval($value['sczl_工价系数']);
  286. $rows1[$key]['千件工价'] = $value['千件工价'] == 0 ? '' : floatval($value['千件工价']);
  287. $rows1[$key]['table_type']='设备_产量计酬';
  288. unset($rows1[$key]['sczl_yjno']);
  289. unset($rows1[$key]['sczl_gxh']);
  290. unset($rows1[$key]['sczl_type']);
  291. }
  292. $rows = array_merge($rows2,$rows1);
  293. $data = [
  294. 'total' => $total1+$total2,
  295. 'rows' => $rows,
  296. ];
  297. $this->success('成功',$data);
  298. }
  299. /**
  300. * 定位
  301. * @ApiMethod (GET)
  302. * @param string $gdbh 工单编号
  303. * @param string $cpmc 产品名称
  304. * @param string $page 页码
  305. * @param string $limit 数量
  306. */
  307. public function locate()
  308. {
  309. //get请求
  310. if(!$this->request->isGet()){
  311. $this->error('请求方式错误');
  312. }
  313. $req = $this->request->param();
  314. $page = 1;
  315. $limit = 15;
  316. if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
  317. if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
  318. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  319. $where = [
  320. 'a.sczl_gdbh'=>[ 'like', '%' . $req['gdbh'] . '%']
  321. ];
  322. $option = [
  323. 'sczl_gdbh'=>[ 'like', '%' . $req['gdbh'] . '%']
  324. ];
  325. //拆片联拼系数 拆片条小盒系数
  326. $rows1 = db()->table('设备_产量计酬')->alias('a')
  327. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  328. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_zcfp, a.sczl_zccp, a.sczl_来料少数,
  329. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  330. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数,
  331. d.日定额, d.千件工价, d.补产标准,
  332. rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId')
  333. ->where($where)
  334. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  335. ->order('a.sczl_yjno asc, a.sczl_gxh asc, a.sczl_type asc, a.sczl_rq asc')
  336. ->page($page,$limit)
  337. ->select();
  338. $total1 = db()->table('设备_产量计酬')->where($option)->count();
  339. //来料异常
  340. $rows2 = db()->table('db_sczl')->alias('a')
  341. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  342. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_fp as sczl_zcfp, a.sczl_cp as sczl_zccp,
  343. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  344. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  345. a.拆片联拼系数, a.拆片条小盒系数, a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准,
  346. rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId')
  347. ->where($where)
  348. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  349. ->order('a.sczl_yjno asc, a.sczl_gxh asc, a.sczl_type asc, a.sczl_rq asc')
  350. ->page($page,$limit)
  351. ->select();
  352. $total2 = db()->table('db_sczl')->where($option)->count();
  353. }else{
  354. if (isset($req['cpmc']) && !empty($req['cpmc'])){
  355. //查询工单表
  356. $gd = db()->table('工单_基本资料')
  357. ->where('Gd_cpmc', 'LIKE', '%'.$req['cpmc'].'%')
  358. ->column('Gd_gdbh');
  359. $where = [
  360. 'a.sczl_gdbh'=>['in', $gd]
  361. ];
  362. $option = [
  363. 'sczl_gdbh'=>['in', $gd]
  364. ];
  365. //拆片联拼系数 拆片条小盒系数
  366. $rows1 = db()->table('设备_产量计酬')->alias('a')
  367. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  368. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_zcfp, a.sczl_zccp, a.sczl_来料少数,
  369. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  370. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6, a.sczl_工价系数,
  371. d.日定额, d.千件工价, d.补产标准,
  372. rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId')
  373. ->where($where)
  374. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  375. ->order('a.sczl_yjno asc, a.sczl_gxh asc, a.sczl_type asc, a.sczl_rq asc')
  376. ->page($page,$limit)
  377. ->select();
  378. $total1 = db()->table('设备_产量计酬')->where($option)->count();
  379. //来料异常
  380. $rows2 = db()->table('db_sczl')->alias('a')
  381. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  382. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_fp as sczl_zcfp, a.sczl_cp as sczl_zccp,
  383. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  384. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  385. a.拆片联拼系数, a.拆片条小盒系数, a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准,
  386. rtrim(a.sys_id) as sys_id, a.sys_rq, a.mod_rq, a.UniqId')
  387. ->where($where)
  388. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  389. ->order('a.sczl_yjno asc, a.sczl_gxh asc, a.sczl_type asc, a.sczl_rq asc')
  390. ->page($page,$limit)
  391. ->select();
  392. $total2 = db()->table('db_sczl')->where($option)->count();
  393. }else{
  394. $this->error('参数错误');
  395. }
  396. }
  397. $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
  398. $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
  399. foreach ($rows2 as $key=>$value){
  400. $rows[$key]['mod_rq'] = $value['mod_rq']=='1900-01-01 00:00:00' ? '' :$value['mod_rq'];
  401. $rows2[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
  402. $rows2[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  403. for ($i=2;$i<=6;$i++){
  404. if ($value['sczl_bh'.$i]){
  405. if ($value['sczl_bh'.$i]==$value['sczl_bh1']){
  406. $rows2[$key]['name'.$i] = $rows2[$key]['name1'];
  407. }else{
  408. $rows2[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  409. }
  410. }else{
  411. $rows2[$key]['name'.$i] = '';
  412. }
  413. }
  414. $rows2[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  415. $rows2[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num'];
  416. $rows2[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : floatval($value['sczl_cl']);
  417. $rows2[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : floatval($value['sczl_ms']);
  418. $rows2[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : floatval($value['sczl_zcfp']);
  419. $rows2[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : floatval($value['sczl_zccp']);
  420. $rows2[$key]['sczl_装版工时'] = $value['sczl_装版工时'] == 0 ? '' : floatval($value['sczl_装版工时']);
  421. $rows2[$key]['sczl_保养工时'] = $value['sczl_保养工时'] == 0 ? '' : floatval($value['sczl_保养工时']);
  422. $rows2[$key]['sczl_打样工时'] = $value['sczl_打样工时'] == 0 ? '' : floatval($value['sczl_打样工时']);
  423. $rows2[$key]['sczl_异常停机工时'] = $value['sczl_异常停机工时'] == 0 ? '' : floatval($value['sczl_异常停机工时']);
  424. $rows2[$key]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : floatval($value['sczl_设备运行工时']);
  425. $rows2[$key]['拆片联拼系数'] = $value['拆片联拼系数'] == 0 ? '' : floatval($value['拆片联拼系数']);
  426. $rows2[$key]['拆片条小盒系数'] = $value['拆片条小盒系数'] == 0 ? '' : floatval($value['拆片条小盒系数']);
  427. $rows2[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : floatval($value['sczl_工价系数']);
  428. $rows2[$key]['千件工价'] = $value['千件工价'] == 0 ? '' : floatval($value['千件工价']);
  429. $rows2[$key]['table_type']='db_sczl';
  430. unset($rows2[$key]['sczl_yjno']);
  431. unset($rows2[$key]['sczl_gxh']);
  432. unset($rows2[$key]['sczl_type']);
  433. }
  434. foreach ($rows1 as $key=>$value){
  435. $rows[$key]['mod_rq'] = $value['mod_rq']=='1900-01-01 00:00:00' ? '' :$value['mod_rq'];
  436. $rows1[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
  437. $rows1[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  438. for ($i=2;$i<=6;$i++){
  439. if ($value['sczl_bh'.$i]){
  440. if ($value['sczl_bh'.$i]==$value['sczl_bh1']){
  441. $rows1[$key]['name'.$i] = $rows1[$key]['name1'];
  442. }else{
  443. $rows1[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  444. }
  445. }else{
  446. $rows1[$key]['name'.$i] = '';
  447. }
  448. }
  449. $rows1[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  450. $rows1[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num'];
  451. $rows1[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : floatval($value['sczl_cl']);
  452. $rows1[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : floatval($value['sczl_ms']);
  453. $rows1[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : floatval($value['sczl_zcfp']);
  454. $rows1[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : floatval($value['sczl_zccp']);
  455. $rows1[$key]['sczl_来料少数'] = $value['sczl_来料少数'] == 0 ? '' : floatval($value['sczl_来料少数']);
  456. $rows1[$key]['sczl_装版工时'] = $value['sczl_装版工时'] == 0 ? '' : floatval($value['sczl_装版工时']);
  457. $rows1[$key]['sczl_保养工时'] = $value['sczl_保养工时'] == 0 ? '' : floatval($value['sczl_保养工时']);
  458. $rows1[$key]['sczl_打样工时'] = $value['sczl_打样工时'] == 0 ? '' : floatval($value['sczl_打样工时']);
  459. $rows1[$key]['sczl_异常停机工时'] = $value['sczl_异常停机工时'] == 0 ? '' : floatval($value['sczl_异常停机工时']);
  460. $rows1[$key]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : floatval($value['sczl_设备运行工时']);
  461. $rows1[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : floatval($value['sczl_工价系数']);
  462. $rows1[$key]['千件工价'] = $value['千件工价'] == 0 ? '' : floatval($value['千件工价']);
  463. $rows1[$key]['table_type']='设备_产量计酬';
  464. unset($rows1[$key]['sczl_yjno']);
  465. unset($rows1[$key]['sczl_gxh']);
  466. unset($rows1[$key]['sczl_type']);
  467. }
  468. $rows = array_merge($rows1,$rows2);
  469. $data = [
  470. 'total' => $total1+$total2,
  471. 'rows' => $rows,
  472. ];
  473. $this->success('成功',$data);
  474. }
  475. /**
  476. * 获取机台生产日报表信息
  477. * @ApiMethod (GET)
  478. * @param string $UniqId UniqId
  479. */
  480. public function getInfo()
  481. {
  482. //get请求
  483. if(!$this->request->isGet()){
  484. $this->error('请求方式错误');
  485. }
  486. $req = $this->request->param();
  487. if (isset($req['UniqId']) && !empty($req['UniqId'])){
  488. $UniqId = $req['UniqId'];
  489. }else{
  490. $this->error('参数错误');
  491. }
  492. $rows = db()->table('db_sczl')->alias('a')
  493. ->field('a.sczl_gdbh, rtrim(j.Gd_cpmc) as Gd_cpmc,
  494. a.sczl_yjno, rtrim(y.yj_yjmc) as yj_yjmc,
  495. rtrim(a.sczl_gxmc) as sczl_gxmc, a.sczl_gxh, rtrim(a.sczl_type) as sczl_type,
  496. LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh, a.sczl_bzdh,
  497. a.sczl_ms, a.sczl_ls, a.sczl_cl, a.sczl_fp as sczl_zcfp,
  498. a.sczl_装版总工时, a.sczl_装版工时, a.sczl_保养工时, a.sczl_异常停机工时,
  499. a.sczl_打样总工时, a.sczl_打样工时, a.sczl_设备运行工时,
  500. a.拆片联拼系数, a.拆片条小盒系数,
  501. a.sczl_dedh, a.sczl_工价系数, a.sczl_计产系数,
  502. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5,
  503. a.sczl_bh6, a.sczl_bh7, a.sczl_bh8, a.sczl_bh9, a.sczl_bh10,
  504. a.sczl_rate1, a.sczl_rate2, a.sczl_rate3, a.sczl_rate4, a.sczl_rate5,
  505. a.sczl_rate6, a.sczl_rate7, a.sczl_rate8, a.sczl_rate9, a.sczl_rate10
  506. ')
  507. ->where('a.UniqId', $UniqId)
  508. ->where('a.sczl_yjno = y.yj_Yjno')
  509. ->join(['工单_基本资料'=>'j'],'a.sczl_gdbh = j.Gd_gdbh')
  510. ->join(['工单_印件资料'=>'y'],'a.sczl_gdbh = y.Yj_Gdbh')
  511. ->find();
  512. $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
  513. for($i=1;$i<=10;$i++){
  514. if(trim($rows['sczl_bh'.$i])!=''){
  515. $rows['sczl_bh'.$i.'_name'] = array_key_exists($rows['sczl_bh'.$i],$rs) ? trim($rs[$rows['sczl_bh'.$i]]) : '';
  516. }else{
  517. $rows['sczl_bh'.$i.'_name'] = '';
  518. }
  519. }
  520. $this->success('成功',$rows);
  521. }
  522. /**
  523. * 获取工单名称
  524. * @ApiMethod (GET)
  525. * @param string $gdbh 工单编号
  526. */
  527. public function getGdmc()
  528. {
  529. //get请求
  530. if(!$this->request->isGet()){
  531. $this->error('请求方式错误');
  532. }
  533. $req = $this->request->param();
  534. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  535. $gdbh = $req['gdbh'];
  536. }else{
  537. $this->error('参数错误');
  538. }
  539. $row = db()->table('工单_基本资料')
  540. ->field('rtrim(Gd_cpmc) as Gd_cpmc')
  541. ->where('Gd_gdbh',$gdbh)
  542. ->find();
  543. if (!$row) $this->error('失败');
  544. $this->success('成功',$row);
  545. }
  546. /**
  547. * 获取印件名称
  548. * @ApiMethod (GET)
  549. * @param string $gdbh 工单编号
  550. * @param string $yjno 印件号
  551. */
  552. public function getYjmc()
  553. {
  554. //get请求
  555. if(!$this->request->isGet()){
  556. $this->error('请求方式错误');
  557. }
  558. $req = $this->request->param();
  559. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  560. $gdbh = $req['gdbh'];
  561. }else{
  562. $this->error('参数错误');
  563. }
  564. if (isset($req['yjno']) && !empty($req['yjno'])){
  565. $yjno = $req['yjno'];
  566. }else{
  567. $this->error('参数错误');
  568. }
  569. $row = db()->table('工单_印件资料')
  570. ->field('rtrim(yj_yjmc) as yj_yjmc')
  571. ->where(['Yj_Gdbh'=>$gdbh,'yj_Yjno'=>$yjno])
  572. ->find();
  573. if (!$row) $this->error('失败');
  574. $this->success('成功',$row);
  575. }
  576. /**
  577. * 获取工序
  578. * @ApiMethod (GET)
  579. * @param string $gdbh 工单编号
  580. * @param string $yjno 印件号
  581. * @param string $keyword 关键词
  582. */
  583. public function getGx()
  584. {
  585. //get请求
  586. if(!$this->request->isGet()){
  587. $this->error('请求方式错误');
  588. }
  589. $req = $this->request->param();
  590. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  591. $gdbh = $req['gdbh'];
  592. }else{
  593. $this->error('参数错误');
  594. }
  595. if (isset($req['yjno']) && !empty($req['yjno'])){
  596. $yjno = $req['yjno'];
  597. }else{
  598. $this->error('参数错误');
  599. }
  600. if (isset($req['keyword']) && !empty($req['keyword'])){
  601. $keyword = $req['keyword'];
  602. }else{
  603. $keyword = '';
  604. }
  605. $rows = db()->table('工单_工艺资料')
  606. ->field('Gy0_gxh as sczl_gxh, rtrim(Gy0_gxmc) as sczl_type, rtrim(Add_gxmc) as Add_gxmc,Gy0_ls as sczl_ls, Gy0_ms as sczl_ms')
  607. ->where(['Gy0_gdbh'=>$gdbh,'Gy0_yjno'=>$yjno])
  608. ->where('Gy0_gxh|Gy0_gxmc|Add_gxmc','like','%'.$keyword.'%')
  609. ->select();
  610. foreach ($rows as $key=>$value) {
  611. if($value['Add_gxmc'] != ''){
  612. $rows[$key]['sczl_gxmc'] = sprintf("%02d", $value['sczl_gxh']).'-'.$value['Add_gxmc'];
  613. }else{
  614. $rows[$key]['sczl_gxmc'] = sprintf("%02d", $value['sczl_gxh']).'-'.$value['sczl_type'];
  615. }
  616. unset($rows[$key]['Add_gxmc']);
  617. }
  618. if (!$rows) $this->error('失败');
  619. $this->success('成功',$rows);
  620. }
  621. /**
  622. * 查询定额代号
  623. * @ApiMethod (GET)
  624. */
  625. public function getDedh()
  626. {
  627. //get请求
  628. if(!$this->request->isGet()){
  629. $this->error('请求方式错误');
  630. }
  631. $row = db()->table('dic_lzde')
  632. ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  633. ->where('sys_mc','人工作业计件定额')
  634. ->find();
  635. $rows = db()->table('dic_lzde')
  636. ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  637. ->where('Parent',$row['Key_'])
  638. ->order('sys_bh asc')
  639. ->select();
  640. foreach ($rows as $key=>$value){
  641. $bool = db()->table('dic_lzde')
  642. ->field('Key_,sys_bh, rtrim(sys_mc) as sys_mc')
  643. ->where('Parent',$value['Key_'])
  644. ->order('sys_bh asc')
  645. ->select();
  646. if ($bool){
  647. foreach ($bool as $k=>$v){
  648. $bool1 = db()->table('dic_lzde')
  649. ->field('sys_bh, rtrim(sys_mc) as sys_mc')
  650. ->where('Parent',$v['Key_'])
  651. ->order('sys_bh asc')
  652. ->select();
  653. if ($bool1){
  654. $bool[$k]['bh_mc'] = $bool1;
  655. }
  656. }
  657. $rows[$key]['bh_mc'] = $bool;
  658. }
  659. }
  660. $row['bh_mc'] = $rows;
  661. $this->success('成功',$row);
  662. }
  663. /**
  664. * 新增
  665. * @ApiMethod (POST)
  666. * @param string
  667. */
  668. public function add()
  669. {
  670. if(!$this->request->isPost()){
  671. $this->error('请求方式错误');
  672. }
  673. $req = $this->request->param();
  674. $arr = [
  675. 'sys_id','sczl_gdbh','sczl_yjno',
  676. 'sczl_gxmc','sczl_gxh','sczl_type',
  677. 'sczl_rq','sczl_jtbh','sczl_bzdh',
  678. 'sczl_ms','sczl_ls','sczl_cl','sczl_fp',
  679. 'sczl_装版总工时','sczl_装版工时','sczl_保养工时','sczl_异常停机工时',
  680. 'sczl_打样总工时','sczl_打样工时','sczl_设备运行工时',
  681. '拆片联拼系数','拆片条小盒系数','sczl_dedh','sczl_工价系数','sczl_计产系数',
  682. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5',
  683. 'sczl_bh6','sczl_bh7','sczl_bh8','sczl_bh9','sczl_bh10',
  684. 'sczl_rate1','sczl_rate2','sczl_rate3','sczl_rate4','sczl_rate5',
  685. 'sczl_rate6','sczl_rate7','sczl_rate8','sczl_rate9','sczl_rate10'
  686. ];
  687. $data = [];
  688. foreach ($arr as $key => $value){
  689. if (!(isset($req[$value]))){
  690. $this->error('参数错误',$value,$key+1);
  691. }
  692. $data[$value] = $req[$value];
  693. }
  694. $data['sys_rq'] = date('Y-m-d H:i:s');
  695. //开启事务
  696. db()->startTrans();
  697. try{
  698. $sql = db()->table('db_sczl')->fetchSql(true)->insert($data);
  699. $bool = db()->query($sql);
  700. // 提交事务
  701. db()->commit();
  702. } catch (\Exception $e) {
  703. // 回滚事务
  704. db()->rollback();
  705. $this->error($e->getMessage());
  706. }
  707. if($bool===false) $this->error('失败');
  708. $this->success('成功');
  709. }
  710. /**
  711. * 新增
  712. * @ApiMethod (POST)
  713. * @param string
  714. */
  715. public function edit()
  716. {
  717. if(!$this->request->isPost()){
  718. $this->error('请求方式错误');
  719. }
  720. $req = $this->request->param();
  721. $arr = [
  722. 'UniqId','sczl_gdbh','sczl_yjno',
  723. 'sczl_gxmc','sczl_gxh','sczl_type',
  724. 'sczl_rq','sczl_jtbh','sczl_bzdh',
  725. 'sczl_ms','sczl_ls','sczl_cl','sczl_fp',
  726. 'sczl_装版总工时','sczl_装版工时','sczl_保养工时','sczl_异常停机工时',
  727. 'sczl_打样总工时','sczl_打样工时','sczl_设备运行工时',
  728. '拆片联拼系数','拆片条小盒系数','sczl_dedh','sczl_工价系数','sczl_计产系数',
  729. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5',
  730. 'sczl_bh6','sczl_bh7','sczl_bh8','sczl_bh9','sczl_bh10',
  731. 'sczl_rate1','sczl_rate2','sczl_rate3','sczl_rate4','sczl_rate5',
  732. 'sczl_rate6','sczl_rate7','sczl_rate8','sczl_rate9','sczl_rate10'
  733. ];
  734. $data = [];
  735. foreach ($arr as $key => $value){
  736. if (!(isset($req[$value]))){
  737. continue;
  738. }
  739. $data[$value] = $req[$value];
  740. }
  741. $data['mod_rq'] = date('Y-m-d H:i:s');
  742. //开启事务
  743. db()->startTrans();
  744. try{
  745. $sql = db()->table('db_sczl')->where('UniqId',$req['UniqId'])->fetchSql(true)->update($data);
  746. $bool = db()->query($sql);
  747. // 提交事务
  748. db()->commit();
  749. } catch (\Exception $e) {
  750. // 回滚事务
  751. db()->rollback();
  752. $this->error($e->getMessage());
  753. }
  754. if($bool===false) $this->error('失败');
  755. $this->success('成功');
  756. }
  757. /**
  758. * 修改
  759. * @ApiMethod (POST)
  760. * @param string 'UniqId'
  761. */
  762. public function del()
  763. {
  764. if(!$this->request->isPost()){
  765. $this->error('请求方式错误');
  766. }
  767. $req = $this->request->param();
  768. if (!(isset($req['UniqId']) && trim($req['UniqId'])!='')){
  769. $this->error('参数错误','UniqId',100);
  770. }
  771. //开启事务
  772. db()->startTrans();
  773. try{
  774. $bool = db()->table('db_sczl')->where('UniqId',$req['UniqId'])->delete();
  775. // 提交事务
  776. db()->commit();
  777. } catch (\Exception $e) {
  778. // 回滚事务
  779. db()->rollback();
  780. $this->error($e->getMessage());
  781. }
  782. if($bool===false) $this->error('失败');
  783. $this->success('成功');
  784. }
  785. /**
  786. * 工序汇总导出
  787. * @ApiMethod (GET)
  788. * @param string date
  789. * @param string sys_id
  790. * @param array fields
  791. */
  792. public function export(){
  793. if(!$this->request->isGet()){
  794. $this->error('请求方式错误');
  795. }
  796. $req = $this->request->param();
  797. $where = [];
  798. if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
  799. if (!(isset($req['fields']) && count($req['fields'])!=0)){
  800. $this->error('参数错误','fields',100);
  801. }
  802. if(strpos($req['date'],'-')){
  803. $where = ['a.sys_rq'=>['like','%'.$req['date'].'%']];
  804. }else{
  805. $where = ['a.sczl_gdbh'=>$req['date']];
  806. }
  807. if (isset($req['sys_id']) && !empty($req['sys_id'])){
  808. $where['a.sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
  809. }
  810. $arr = [
  811. 'sczl_gdbh' =>['工单编号'],
  812. 'Gd_cpmc' =>['产品名称'],
  813. 'jyno_gxmc' =>['印件及工序'],
  814. 'sczl_rq' =>['生产日期'],
  815. 'sczl_jtbh' =>['机台'],
  816. 'sczl_bzdh' =>['班组'],
  817. 'sczl_num' =>['流程单'],
  818. 'sczl_cl' =>['车头产量'],
  819. 'sczl_ms' =>['色度数'],
  820. 'sczl_zcfp' =>['制程废'],
  821. 'sczl_zccp' =>['次品'],
  822. 'sczl_来料异常' =>['来料异常'],
  823. 'sczl_装版工时' =>['装版工时'],
  824. 'sczl_保养工时' =>['保养工时'],
  825. 'sczl_打样工时' =>['打样工时'],
  826. 'sczl_异常停机工时' =>['异常停机工时'],
  827. 'sczl_设备运行工时' =>['设备运行工时'],
  828. 'sczl_bh1' =>['组员编号1'],
  829. 'sczl_bh1_name' =>['组员姓名1'],
  830. 'sczl_bh2' =>['组员编号2'],
  831. 'sczl_bh2_name' =>['组员姓名2'],
  832. 'sczl_bh3' =>['组员编号3'],
  833. 'sczl_bh3_name' =>['组员姓名3'],
  834. 'sczl_bh4' =>['组员编号4'],
  835. 'sczl_bh4_name' =>['组员姓名4'],
  836. 'sczl_bh5' =>['组员编号5'],
  837. 'sczl_bh5_name' =>['组员姓名5'],
  838. 'sczl_bh6' =>['组员编号6'],
  839. 'sczl_bh6_name' =>['组员姓名6'],
  840. '拆片联拼系数' =>['拆片联拼系数'],
  841. '拆片条小盒系数' =>['拆片条小盒系数'],
  842. 'sczl_工价系数' =>['工价系数'],
  843. '日定额' =>['日定额'],
  844. '千件工价' =>['千件工价'],
  845. '补产标准' =>['补产标准'],
  846. ];
  847. $data[0] = [];
  848. foreach ($req['fields'] as $k=>$v){
  849. if(array_key_exists($v,$arr)){
  850. array_push($data[0],$arr[$v][0]);
  851. }
  852. }
  853. //拆片联拼系数 拆片条小盒系数
  854. $rows1 = db()->table('设备_产量计酬')->alias('a')
  855. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  856. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_zcfp, a.sczl_zccp, a.sczl_来料少数 as sczl_来料异常,
  857. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  858. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  859. a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准
  860. ')
  861. ->where($where)
  862. ->join(['dic_lzde'=>'d'],'a.sczl_dedh = d.sys_bh')
  863. ->order('a.sys_id asc, a.sczl_num asc')
  864. ->select();
  865. $rows2 = db()->table('db_sczl')->alias('a')
  866. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  867. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_fp as sczl_zcfp, a.sczl_cp as sczl_zccp,
  868. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  869. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  870. a.拆片联拼系数, a.拆片条小盒系数, a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准
  871. ')
  872. ->where($where)
  873. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  874. ->order('a.sys_id asc, a.sczl_num asc')
  875. ->select();
  876. $gd = db()->table('工单_基本资料')->column('Gd_gdbh, Gd_cpmc');
  877. $rs = db()->table('人事_基本资料')->column('员工编号, 员工姓名');
  878. foreach ($rows2 as $key=>$value){
  879. $subArray = [];
  880. foreach ($arr as $k=>$v){
  881. if($k=='sczl_来料异常'){
  882. $subArray[$k] = '';
  883. }else if($k=='Gd_cpmc'){
  884. if(trim($value['sczl_gdbh']) != '' && array_key_exists($value['sczl_gdbh'],$gd)){
  885. $subArray[$k] = trim($gd[$value['sczl_gdbh']]);
  886. }else{
  887. $subArray[$k] = '';
  888. }
  889. }else if($k=='sczl_bh1_name' || $k=='sczl_bh2_name' || $k=='sczl_bh3_name' || $k=='sczl_bh4_name' || $k=='sczl_bh5_name' || $k=='sczl_bh6_name'){
  890. if(trim($value[substr($k,0,8)]) != '' && array_key_exists($value[substr($k,0,8)],$rs)){
  891. $subArray[$k] = trim($rs[$value[substr($k,0,8)]]);
  892. }else{
  893. $subArray[$k] = '';
  894. }
  895. }else if($k=='sczl_num' || $k=='sczl_cl' || $k=='sczl_zcfp' || $k=='sczl_zccp' || $k=='sczl_装版工时' || $k=='sczl_保养工时' || $k=='sczl_打样工时' ||
  896. $k=='sczl_异常停机工时' || $k=='sczl_设备运行工时' || $k=='拆片联拼系数' || $k=='拆片条小盒系数' || $k=='sczl_工价系数' || $k=='千件工价'){
  897. $subArray[$k] = $value[$k] == 0 ? '' : floatval($value[$k]);
  898. }else if($k=='sczl_ms'){
  899. $subArray[$k] = $value[$k] == 0 ? 1 : floatval($value[$k]);
  900. }else if($k=='jyno_gxmc'){
  901. $subArray['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  902. }else{
  903. $subArray[$k] = $rows2[$key][$k];
  904. }
  905. }
  906. array_push($data,$subArray);
  907. }
  908. foreach ($rows1 as $key=>$value){
  909. $subArray = [];
  910. foreach ($arr as $k=>$v){
  911. if($k=='拆片联拼系数' || $k=='拆片条小盒系数'){
  912. $subArray[$k] = '';
  913. }else if($k=='Gd_cpmc'){
  914. if(trim($value['sczl_gdbh']) != '' && array_key_exists($value['sczl_gdbh'],$gd)){
  915. $subArray[$k] = trim($gd[$value['sczl_gdbh']]);
  916. }else{
  917. $subArray[$k] = '';
  918. }
  919. }else if($k=='sczl_bh1_name' || $k=='sczl_bh2_name' || $k=='sczl_bh3_name' || $k=='sczl_bh4_name' || $k=='sczl_bh5_name' || $k=='sczl_bh6_name'){
  920. if(trim($value[substr($k,0,8)]) != '' && array_key_exists($value[substr($k,0,8)],$rs)){
  921. $subArray[$k] = trim($rs[$value[substr($k,0,8)]]);
  922. }else{
  923. $subArray[$k] = '';
  924. }
  925. }else if($k=='sczl_num' || $k=='sczl_cl' || $k=='sczl_zcfp' || $k=='sczl_zccp' || $k=='sczl_来料异常' || $k=='sczl_装版工时' ||
  926. $k=='sczl_保养工时' || $k=='sczl_打样工时' || $k=='sczl_异常停机工时' || $k=='sczl_设备运行工时' || $k=='sczl_工价系数' || $k=='千件工价'){
  927. $subArray[$k] = $value[$k] == 0 ? '' : floatval($value[$k]);
  928. }else if($k=='sczl_ms'){
  929. $subArray[$k] = $value[$k] == 0 ? 1 : floatval($value[$k]);
  930. }else if($k=='jyno_gxmc'){
  931. $subArray['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  932. }else{
  933. $subArray[$k] = $rows1[$key][$k];
  934. }
  935. }
  936. array_push($data,$subArray);
  937. }
  938. $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
  939. }
  940. }