MachineProductionReport.php 41 KB

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