MachineProductionReport.php 41 KB

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