MachineProductionReport.php 45 KB

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