MachineProductionReport.php 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947
  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('设备_产量计酬')->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('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('设备_产量计酬')->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('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()->query($sql);
  116. $arr1 = db('设备_产量计酬')->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('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('设备_产量计酬')->where($option)->count();
  173. $total2 = db('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('工单_基本资料')->column('Gd_gdbh, 成品名称 as Gd_cpmc');
  215. $rs = db('人事_基本资料')->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['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['page'].'-'.$req['limit'],$rows,3600);
  302. }else{
  303. $rows = cache('ReportGetList-'.$req['gdbh'].'-'.$req['page'].'-'.$req['limit']);
  304. }
  305. $total1 = db('设备_产量计酬')->where($option)->count();
  306. $total2 = db('db_sczl')->where($option)->count();
  307. }else{
  308. if (isset($req['cpmc']) && !empty($req['cpmc'])){
  309. //查询工单表
  310. $gd = db('工单_基本资料')
  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('ReportGetList-'.$req['gdbh'].'-'.$req['cpmc'].'-'.$req['limit'])){
  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. cache('ReportGetList-'.$req['cpmc'].'-'.$req['page'].'-'.$req['limit'],$rows,3600);
  338. }else{
  339. $rows = cache('ReportGetList-'.$req['cpmc'].'-'.$req['page'].'-'.$req['limit']);
  340. }
  341. $total1 = db('设备_产量计酬')->where($option)->count();
  342. $total2 = db('db_sczl')->where($option)->count();
  343. }else{
  344. $this->error('参数错误');
  345. }
  346. }
  347. $gd = db('工单_基本资料')->column('Gd_gdbh, 成品名称 as Gd_cpmc');
  348. $rs = db('人事_基本资料')->column('员工编号, 员工姓名');
  349. foreach ($rows as $key=>$value){
  350. $rows[$key]['mod_rq'] = $value['mod_rq']=='1900-01-01 00:00:00' ? '' :$value['mod_rq'];
  351. $rows[$key]['Gd_cpmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? trim($gd[$value['sczl_gdbh']]) : '';
  352. $rows[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  353. for ($i=2;$i<=6;$i++){
  354. if ($value['sczl_bh'.$i]){
  355. if ($value['sczl_bh'.$i]==$value['sczl_bh1']){
  356. $rows[$key]['name'.$i] = $rows[$key]['name1'];
  357. }else{
  358. $rows[$key]['name1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
  359. }
  360. }else{
  361. $rows[$key]['name'.$i] = '';
  362. }
  363. }
  364. $rows[$key]['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  365. $rows[$key]['sczl_num'] = $value['sczl_num'] == 0 ? '' : $value['sczl_num'];
  366. $rows[$key]['sczl_cl'] = $value['sczl_cl'] == 0 ? '' : floatval($value['sczl_cl']);
  367. $rows[$key]['sczl_ms'] = $value['sczl_ms'] == 0 ? 1 : floatval($value['sczl_ms']);
  368. $rows[$key]['sczl_zcfp'] = $value['sczl_zcfp'] == 0 ? '' : floatval($value['sczl_zcfp']);
  369. $rows[$key]['sczl_zccp'] = $value['sczl_zccp'] == 0 ? '' : floatval($value['sczl_zccp']);
  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]['sczl_设备运行工时'] = $value['sczl_设备运行工时'] == 0 ? '' : floatval($value['sczl_设备运行工时']);
  375. $rows[$key]['sczl_工价系数'] = $value['sczl_工价系数'] == 0 ? '' : floatval($value['sczl_工价系数']);
  376. $rows[$key]['千件工价'] = $value['千件工价'] == 0 ? '' : floatval($value['千件工价']);
  377. $rows[$key]['sczl_来料少数'] = $value['sczl_来料少数'] == 0 ? '' : floatval($value['sczl_来料少数']);
  378. $rows[$key]['拆片联拼系数'] = $value['拆片联拼系数'] == 0 ? '' : floatval($value['拆片联拼系数']);
  379. $rows[$key]['拆片条小盒系数'] = $value['拆片条小盒系数'] == 0 ? '' : floatval($value['拆片条小盒系数']);
  380. unset($rows[$key]['sczl_yjno']);
  381. unset($rows[$key]['sczl_gxh']);
  382. unset($rows[$key]['sczl_type']);
  383. }
  384. $data = [
  385. 'total' => $total1+$total2,
  386. 'rows' => $rows,
  387. ];
  388. $this->success('成功',$data);
  389. }
  390. /**
  391. * 获取机台生产日报表信息
  392. * @ApiMethod (GET)
  393. * @param string $UniqId UniqId
  394. */
  395. public function getInfo()
  396. {
  397. //get请求
  398. if(!$this->request->isGet()){
  399. $this->error('请求方式错误');
  400. }
  401. $req = $this->request->param();
  402. if (isset($req['UniqId']) && !empty($req['UniqId'])){
  403. $UniqId = $req['UniqId'];
  404. }else{
  405. $this->error('参数错误');
  406. }
  407. $rows = db('db_sczl')->alias('a')
  408. ->field('a.sczl_gdbh, rtrim(j.成品名称) as Gd_cpmc,
  409. a.sczl_yjno, rtrim(y.yj_yjmc) as yj_yjmc,
  410. rtrim(a.sczl_gxmc) as sczl_gxmc, a.sczl_gxh, rtrim(a.sczl_type) as sczl_type,
  411. LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh, a.sczl_bzdh,
  412. a.sczl_ms, a.sczl_ls, a.sczl_cl, a.sczl_fp as sczl_zcfp,
  413. a.sczl_装版总工时, a.sczl_装版工时, a.sczl_保养工时, a.sczl_异常停机工时,
  414. a.sczl_打样总工时, a.sczl_打样工时, a.sczl_设备运行工时,
  415. a.拆片联拼系数, a.拆片条小盒系数,
  416. a.sczl_dedh, a.sczl_工价系数, a.sczl_计产系数,
  417. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5,
  418. a.sczl_bh6, a.sczl_bh7, a.sczl_bh8, a.sczl_bh9, a.sczl_bh10,
  419. a.sczl_rate1, a.sczl_rate2, a.sczl_rate3, a.sczl_rate4, a.sczl_rate5,
  420. a.sczl_rate6, a.sczl_rate7, a.sczl_rate8, a.sczl_rate9, a.sczl_rate10
  421. ')
  422. ->where('a.UniqId', $UniqId)
  423. ->where('a.sczl_yjno = y.yj_Yjno')
  424. ->join(['工单_基本资料'=>'j'],'a.sczl_gdbh = j.Gd_gdbh')
  425. ->join(['工单_印件资料'=>'y'],'a.sczl_gdbh = y.Yj_Gdbh')
  426. ->find();
  427. $rs = db('人事_基本资料')->column('员工编号, 员工姓名');
  428. for($i=1;$i<=10;$i++){
  429. if(trim($rows['sczl_bh'.$i])!=''){
  430. $rows['sczl_bh'.$i.'_name'] = array_key_exists($rows['sczl_bh'.$i],$rs) ? trim($rs[$rows['sczl_bh'.$i]]) : '';
  431. }else{
  432. $rows['sczl_bh'.$i.'_name'] = '';
  433. }
  434. }
  435. $this->success('成功',$rows);
  436. }
  437. /**
  438. * 获取工单名称
  439. * @ApiMethod (GET)
  440. * @param string $gdbh 工单编号
  441. */
  442. public function getGdmc()
  443. {
  444. //get请求
  445. if(!$this->request->isGet()){
  446. $this->error('请求方式错误');
  447. }
  448. $req = $this->request->param();
  449. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  450. $gdbh = $req['gdbh'];
  451. }else{
  452. $this->error('参数错误');
  453. }
  454. $row = db('工单_基本资料')
  455. ->field('rtrim(Gd_cpmc) as Gd_cpmc')
  456. ->where('Gd_gdbh',$gdbh)
  457. ->find();
  458. if (!$row) $this->error('失败');
  459. $this->success('成功',$row);
  460. }
  461. /**
  462. * 获取印件名称
  463. * @ApiMethod (GET)
  464. * @param string $gdbh 工单编号
  465. * @param string $yjno 印件号
  466. */
  467. public function getYjmc()
  468. {
  469. //get请求
  470. if(!$this->request->isGet()){
  471. $this->error('请求方式错误');
  472. }
  473. $req = $this->request->param();
  474. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  475. $gdbh = $req['gdbh'];
  476. }else{
  477. $this->error('参数错误');
  478. }
  479. if (isset($req['yjno']) && !empty($req['yjno'])){
  480. $yjno = $req['yjno'];
  481. }else{
  482. $this->error('参数错误');
  483. }
  484. $row = db('工单_印件资料')
  485. ->field('rtrim(yj_yjmc) as yj_yjmc')
  486. ->where(['Yj_Gdbh'=>$gdbh,'yj_Yjno'=>$yjno])
  487. ->find();
  488. if (!$row) $this->error('失败');
  489. $this->success('成功',$row);
  490. }
  491. /**
  492. * 获取工序
  493. * @ApiMethod (GET)
  494. * @param string $gdbh 工单编号
  495. * @param string $yjno 印件号
  496. * @param string $keyword 关键词
  497. */
  498. public function getGx()
  499. {
  500. //get请求
  501. if(!$this->request->isGet()){
  502. $this->error('请求方式错误');
  503. }
  504. $req = $this->request->param();
  505. if (isset($req['gdbh']) && !empty($req['gdbh'])){
  506. $gdbh = $req['gdbh'];
  507. }else{
  508. $this->error('参数错误');
  509. }
  510. if (isset($req['yjno']) && !empty($req['yjno'])){
  511. $yjno = $req['yjno'];
  512. }else{
  513. $this->error('参数错误');
  514. }
  515. if (isset($req['keyword']) && !empty($req['keyword'])){
  516. $keyword = $req['keyword'];
  517. }else{
  518. $keyword = '';
  519. }
  520. $rows = db('工单_工艺资料')
  521. ->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')
  522. ->where(['Gy0_gdbh'=>$gdbh,'Gy0_yjno'=>$yjno])
  523. ->where('Gy0_gxh|Gy0_gxmc|Add_gxmc','like','%'.$keyword.'%')
  524. ->select();
  525. foreach ($rows as $key=>$value) {
  526. if($value['Add_gxmc'] != ''){
  527. $rows[$key]['sczl_gxmc'] = sprintf("%02d", $value['sczl_gxh']).'-'.$value['Add_gxmc'];
  528. }else{
  529. $rows[$key]['sczl_gxmc'] = sprintf("%02d", $value['sczl_gxh']).'-'.$value['sczl_type'];
  530. }
  531. unset($rows[$key]['Add_gxmc']);
  532. }
  533. if (!$rows) $this->error('失败');
  534. $this->success('成功',$rows);
  535. }
  536. /**
  537. * 查询定额代号
  538. * @ApiMethod (GET)
  539. */
  540. public function getDedh()
  541. {
  542. //get请求
  543. if(!$this->request->isGet()){
  544. $this->error('请求方式错误');
  545. }
  546. $row = db('dic_lzde')
  547. ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  548. ->where('sys_mc','人工作业计件定额')
  549. ->find();
  550. $rows = db('dic_lzde')
  551. ->field('Key_, sys_bh, rtrim(sys_mc) as sys_mc')
  552. ->where('Parent',$row['Key_'])
  553. ->order('sys_bh asc')
  554. ->select();
  555. foreach ($rows as $key=>$value){
  556. $bool = db('dic_lzde')
  557. ->field('Key_,sys_bh, rtrim(sys_mc) as sys_mc')
  558. ->where('Parent',$value['Key_'])
  559. ->order('sys_bh asc')
  560. ->select();
  561. if ($bool){
  562. foreach ($bool as $k=>$v){
  563. $bool1 = db('dic_lzde')
  564. ->field('sys_bh, rtrim(sys_mc) as sys_mc')
  565. ->where('Parent',$v['Key_'])
  566. ->order('sys_bh asc')
  567. ->select();
  568. if ($bool1){
  569. $bool[$k]['bh_mc'] = $bool1;
  570. }
  571. }
  572. $rows[$key]['bh_mc'] = $bool;
  573. }
  574. }
  575. $row['bh_mc'] = $rows;
  576. $this->success('成功',$row);
  577. }
  578. /**
  579. * 新增
  580. * @ApiMethod (POST)
  581. * @param string
  582. */
  583. public function add()
  584. {
  585. if(!$this->request->isPost()){
  586. $this->error('请求方式错误');
  587. }
  588. $req = $this->request->param();
  589. $arr = [
  590. 'sys_id','sczl_gdbh','sczl_yjno',
  591. 'sczl_gxmc','sczl_gxh','sczl_type',
  592. 'sczl_rq','sczl_jtbh','sczl_bzdh',
  593. 'sczl_ms','sczl_ls','sczl_cl','sczl_fp',
  594. 'sczl_装版总工时','sczl_装版工时','sczl_保养工时','sczl_异常停机工时',
  595. 'sczl_打样总工时','sczl_打样工时','sczl_设备运行工时',
  596. '拆片联拼系数','拆片条小盒系数','sczl_dedh','sczl_工价系数','sczl_计产系数',
  597. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5',
  598. 'sczl_bh6','sczl_bh7','sczl_bh8','sczl_bh9','sczl_bh10',
  599. 'sczl_rate1','sczl_rate2','sczl_rate3','sczl_rate4','sczl_rate5',
  600. 'sczl_rate6','sczl_rate7','sczl_rate8','sczl_rate9','sczl_rate10'
  601. ];
  602. $data = [];
  603. foreach ($arr as $key => $value){
  604. if (!(isset($req[$value]))){
  605. $this->error('参数错误',$value,$key+1);
  606. }
  607. $data[$value] = $req[$value];
  608. }
  609. $data['sys_rq'] = date('Y-m-d H:i:s');
  610. //查询UniqId
  611. $UniqId = db('db_sczl')->max('UniqId');
  612. $data['UniqId'] = $UniqId+1;
  613. //开启事务
  614. db()->startTrans();
  615. try{
  616. $sql = db('db_sczl')->fetchSql(true)->insert($data);
  617. $bool = db()->query($sql);
  618. // 提交事务
  619. db()->commit();
  620. } catch (\Exception $e) {
  621. // 回滚事务
  622. db()->rollback();
  623. $this->error($e->getMessage());
  624. }
  625. if($bool===false) $this->error('失败');
  626. $this->success('成功');
  627. }
  628. /**
  629. * 新增
  630. * @ApiMethod (POST)
  631. * @param string
  632. */
  633. public function edit()
  634. {
  635. if(!$this->request->isPost()){
  636. $this->error('请求方式错误');
  637. }
  638. $req = $this->request->param();
  639. $arr = [
  640. 'UniqId','sczl_gdbh','sczl_yjno',
  641. 'sczl_gxmc','sczl_gxh','sczl_type',
  642. 'sczl_rq','sczl_jtbh','sczl_bzdh',
  643. 'sczl_ms','sczl_ls','sczl_cl','sczl_fp',
  644. 'sczl_装版总工时','sczl_装版工时','sczl_保养工时','sczl_异常停机工时',
  645. 'sczl_打样总工时','sczl_打样工时','sczl_设备运行工时',
  646. '拆片联拼系数','拆片条小盒系数','sczl_dedh','sczl_工价系数','sczl_计产系数',
  647. 'sczl_bh1','sczl_bh2','sczl_bh3','sczl_bh4','sczl_bh5',
  648. 'sczl_bh6','sczl_bh7','sczl_bh8','sczl_bh9','sczl_bh10',
  649. 'sczl_rate1','sczl_rate2','sczl_rate3','sczl_rate4','sczl_rate5',
  650. 'sczl_rate6','sczl_rate7','sczl_rate8','sczl_rate9','sczl_rate10'
  651. ];
  652. $data = [];
  653. foreach ($arr as $key => $value){
  654. if (!(isset($req[$value]))){
  655. continue;
  656. }
  657. $data[$value] = $req[$value];
  658. }
  659. $data['mod_rq'] = date('Y-m-d H:i:s');
  660. //开启事务
  661. db()->startTrans();
  662. try{
  663. $sql = db('db_sczl')->where('UniqId',$req['UniqId'])->fetchSql(true)->update($data);
  664. $bool = db()->query($sql);
  665. // 提交事务
  666. db()->commit();
  667. } catch (\Exception $e) {
  668. // 回滚事务
  669. db()->rollback();
  670. $this->error($e->getMessage());
  671. }
  672. if($bool===false) $this->error('失败');
  673. $this->success('成功');
  674. }
  675. /**
  676. * 修改
  677. * @ApiMethod (POST)
  678. * @param string 'UniqId'
  679. */
  680. public function del()
  681. {
  682. if(!$this->request->isPost()){
  683. $this->error('请求方式错误');
  684. }
  685. $req = $this->request->param();
  686. if (!(isset($req['UniqId']) && trim($req['UniqId'])!='')){
  687. $this->error('参数错误','UniqId',100);
  688. }
  689. //开启事务
  690. db()->startTrans();
  691. try{
  692. $bool = db('db_sczl')->where('UniqId',$req['UniqId'])->delete();
  693. // 提交事务
  694. db()->commit();
  695. } catch (\Exception $e) {
  696. // 回滚事务
  697. db()->rollback();
  698. $this->error($e->getMessage());
  699. }
  700. if($bool===false) $this->error('失败');
  701. $this->success('成功');
  702. }
  703. /**
  704. * 工序汇总导出
  705. * @ApiMethod (GET)
  706. * @param string date
  707. * @param string sys_id
  708. * @param array fields
  709. */
  710. public function export(){
  711. if(!$this->request->isGet()){
  712. $this->error('请求方式错误');
  713. }
  714. $req = $this->request->param();
  715. $where = [];
  716. if (!isset($req['date']) || empty($req['date'])) $this->error('参数缺失');
  717. if (!(isset($req['fields']) && count($req['fields'])!=0)){
  718. $this->error('参数错误','fields',100);
  719. }
  720. if(strpos($req['date'],'-')){
  721. $where = ['a.sys_rq'=>['like','%'.$req['date'].'%']];
  722. }else{
  723. $where = ['a.sczl_gdbh'=>$req['date']];
  724. }
  725. if (isset($req['sys_id']) && !empty($req['sys_id'])){
  726. $where['a.sys_id'] = ['LIKE','%'.$req['sys_id'].'%'];
  727. }
  728. $arr = [
  729. 'sczl_gdbh' =>['工单编号'],
  730. 'Gd_cpmc' =>['产品名称'],
  731. 'jyno_gxmc' =>['印件及工序'],
  732. 'sczl_rq' =>['生产日期'],
  733. 'sczl_jtbh' =>['机台'],
  734. 'sczl_bzdh' =>['班组'],
  735. 'sczl_num' =>['流程单'],
  736. 'sczl_cl' =>['车头产量'],
  737. 'sczl_ms' =>['色度数'],
  738. 'sczl_zcfp' =>['制程废'],
  739. 'sczl_zccp' =>['次品'],
  740. 'sczl_来料异常' =>['来料异常'],
  741. 'sczl_装版工时' =>['装版工时'],
  742. 'sczl_保养工时' =>['保养工时'],
  743. 'sczl_打样工时' =>['打样工时'],
  744. 'sczl_异常停机工时' =>['异常停机工时'],
  745. 'sczl_设备运行工时' =>['设备运行工时'],
  746. 'sczl_bh1' =>['组员编号1'],
  747. 'sczl_bh1_name' =>['组员姓名1'],
  748. 'sczl_bh2' =>['组员编号2'],
  749. 'sczl_bh2_name' =>['组员姓名2'],
  750. 'sczl_bh3' =>['组员编号3'],
  751. 'sczl_bh3_name' =>['组员姓名3'],
  752. 'sczl_bh4' =>['组员编号4'],
  753. 'sczl_bh4_name' =>['组员姓名4'],
  754. 'sczl_bh5' =>['组员编号5'],
  755. 'sczl_bh5_name' =>['组员姓名5'],
  756. 'sczl_bh6' =>['组员编号6'],
  757. 'sczl_bh6_name' =>['组员姓名6'],
  758. '拆片联拼系数' =>['拆片联拼系数'],
  759. '拆片条小盒系数' =>['拆片条小盒系数'],
  760. 'sczl_工价系数' =>['工价系数'],
  761. '日定额' =>['日定额'],
  762. '千件工价' =>['千件工价'],
  763. '补产标准' =>['补产标准'],
  764. ];
  765. $data[0] = [];
  766. foreach ($req['fields'] as $k=>$v){
  767. if(array_key_exists($v,$arr)){
  768. array_push($data[0],$arr[$v][0]);
  769. }
  770. }
  771. //拆片联拼系数 拆片条小盒系数
  772. $rows1 = db('设备_产量计酬')->alias('a')->cache(true)
  773. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  774. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_zcfp, a.sczl_zccp, a.sczl_来料少数 as sczl_来料异常,
  775. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  776. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  777. a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准
  778. ')
  779. ->where($where)
  780. ->join(['dic_lzde'=>'d'],'a.sczl_dedh = d.sys_bh')
  781. ->order('a.sys_id asc, a.sczl_num asc')
  782. ->select();
  783. $rows2 = db('db_sczl')->alias('a')
  784. ->field('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh, a.sczl_type, LEFT(a.sczl_rq, 10) as sczl_rq, a.sczl_jtbh,
  785. a.sczl_bzdh, a.sczl_num, a.sczl_cl, a.sczl_ms, a.sczl_fp as sczl_zcfp, a.sczl_cp as sczl_zccp,
  786. a.sczl_装版工时, a.sczl_保养工时, a.sczl_打样工时, a.sczl_异常停机工时, a.sczl_设备运行工时,
  787. a.sczl_bh1, a.sczl_bh2, a.sczl_bh3, a.sczl_bh4, a.sczl_bh5, a.sczl_bh6,
  788. a.拆片联拼系数, a.拆片条小盒系数, a.sczl_工价系数, d.日定额, d.千件工价, d.补产标准
  789. ')
  790. ->where($where)
  791. ->join(['dic_lzde'=>'d'],'a.sczl_dedh=d.sys_bh')
  792. ->order('a.sys_id asc, a.sczl_num asc')
  793. ->select();
  794. $gd = db('工单_基本资料')->column('Gd_gdbh, 成品名称 as Gd_cpmc');
  795. $rs = db('人事_基本资料')->column('员工编号, 员工姓名');
  796. foreach ($rows2 as $key=>$value){
  797. $subArray = [];
  798. foreach ($arr as $k=>$v){
  799. if($k=='sczl_来料异常'){
  800. $subArray[$k] = '';
  801. }else if($k=='Gd_cpmc'){
  802. if(trim($value['sczl_gdbh']) != '' && array_key_exists($value['sczl_gdbh'],$gd)){
  803. $subArray[$k] = trim($gd[$value['sczl_gdbh']]);
  804. }else{
  805. $subArray[$k] = '';
  806. }
  807. }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'){
  808. if(trim($value[substr($k,0,8)]) != '' && array_key_exists($value[substr($k,0,8)],$rs)){
  809. $subArray[$k] = trim($rs[$value[substr($k,0,8)]]);
  810. }else{
  811. $subArray[$k] = '';
  812. }
  813. }else if($k=='sczl_num' || $k=='sczl_cl' || $k=='sczl_zcfp' || $k=='sczl_zccp' || $k=='sczl_装版工时' || $k=='sczl_保养工时' || $k=='sczl_打样工时' ||
  814. $k=='sczl_异常停机工时' || $k=='sczl_设备运行工时' || $k=='拆片联拼系数' || $k=='拆片条小盒系数' || $k=='sczl_工价系数' || $k=='千件工价'){
  815. $subArray[$k] = $value[$k] == 0 ? '' : floatval($value[$k]);
  816. }else if($k=='sczl_ms'){
  817. $subArray[$k] = $value[$k] == 0 ? 1 : floatval($value[$k]);
  818. }else if($k=='jyno_gxmc'){
  819. $subArray['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  820. }else{
  821. $subArray[$k] = $rows2[$key][$k];
  822. }
  823. }
  824. array_push($data,$subArray);
  825. }
  826. foreach ($rows1 as $key=>$value){
  827. $subArray = [];
  828. foreach ($arr as $k=>$v){
  829. if($k=='拆片联拼系数' || $k=='拆片条小盒系数'){
  830. $subArray[$k] = '';
  831. }else if($k=='Gd_cpmc'){
  832. if(trim($value['sczl_gdbh']) != '' && array_key_exists($value['sczl_gdbh'],$gd)){
  833. $subArray[$k] = trim($gd[$value['sczl_gdbh']]);
  834. }else{
  835. $subArray[$k] = '';
  836. }
  837. }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'){
  838. if(trim($value[substr($k,0,8)]) != '' && array_key_exists($value[substr($k,0,8)],$rs)){
  839. $subArray[$k] = trim($rs[$value[substr($k,0,8)]]);
  840. }else{
  841. $subArray[$k] = '';
  842. }
  843. }else if($k=='sczl_num' || $k=='sczl_cl' || $k=='sczl_zcfp' || $k=='sczl_zccp' || $k=='sczl_来料异常' || $k=='sczl_装版工时' ||
  844. $k=='sczl_保养工时' || $k=='sczl_打样工时' || $k=='sczl_异常停机工时' || $k=='sczl_设备运行工时' || $k=='sczl_工价系数' || $k=='千件工价'){
  845. $subArray[$k] = $value[$k] == 0 ? '' : floatval($value[$k]);
  846. }else if($k=='sczl_ms'){
  847. $subArray[$k] = $value[$k] == 0 ? 1 : floatval($value[$k]);
  848. }else if($k=='jyno_gxmc'){
  849. $subArray['jyno_gxmc'] = sprintf("%02d", $value['sczl_yjno']).'-'.sprintf("%02d", $value['sczl_gxh']).'-->'.trim($value['sczl_type']);
  850. }else{
  851. $subArray[$k] = $rows1[$key][$k];
  852. }
  853. }
  854. array_push($data,$subArray);
  855. }
  856. $this->success('成功',['file_name'=>$req['file_name'],'data'=>$data]);
  857. }
  858. }