Inspect.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use \think\Request;
  5. use \think\Db;
  6. /**
  7. * 检验计件单据维护接口
  8. */
  9. class Inspect extends Api
  10. {
  11. protected $noNeedLogin = ['*'];
  12. protected $noNeedRight = ['*'];
  13. /**
  14. * 首页
  15. *
  16. */
  17. public function index()
  18. {
  19. $this->success('请求成功');
  20. }
  21. /**
  22. * 获取手工检验左侧菜单栏
  23. *
  24. * @ApiMethod GET
  25. */
  26. public function getInspectCount(){
  27. if (Request::instance()->isGet() == false){
  28. $this->error('非法请求');
  29. }
  30. $sql = 'SELECT DISTINCT DATE(sys_rq) AS sys_rq FROM `db_手工检验` ORDER BY sys_rq DESC LIMIT 30 ';
  31. $list = Db::query($sql);
  32. foreach ($list as $key => $value){
  33. $where = [$value['sys_rq'].'00:00:00',$value['sys_rq'].'24:00:00'];
  34. $dataCount = Db::name('db_手工检验')->where('sys_rq','between time',$where)->field('rtrim(sys_id) as sys_id')->order('sys_id asc')->select();
  35. $list[$key]['count'] = count($dataCount);
  36. // 提取 sys_id 列成新数组
  37. $sysIds = array_column($dataCount, 'sys_id');
  38. //统计每个不同的 sys_id 的数量
  39. $counts = array_count_values($sysIds);
  40. $i = 0;
  41. foreach ($counts as $k=>$v){
  42. $list[$key]['sys'][$i]['sys_id'] = $k;
  43. $list[$key]['sys'][$i]['count'] = $v;
  44. $i++;
  45. }
  46. }
  47. $this->success('请求成功',$list);
  48. }
  49. /**
  50. * 获取某个日期手工单据
  51. *
  52. * @ApiMethod GET
  53. * @params string date
  54. */
  55. public function getDateList(){
  56. if (Request::instance()->isGet() == false){
  57. $this->error('非法请求');
  58. }
  59. $params = Request::instance()->param();
  60. $date = $params['date'];
  61. if (!isset($date)){
  62. $this->error('参数不能为空');
  63. }
  64. $limit = $params['limit'];
  65. if (empty($limit)){
  66. $limit = 15;
  67. }
  68. $pages = $params['page'];
  69. if (empty($pages)){
  70. $pages = 1;
  71. }
  72. $field = 'a.sczl_gdbh,a.sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,a.sczl_dedh,a.sczl_废品率系数,a.sczl_检验类别,a.sczl_bh0,
  73. rtrim(a.qczl_NumDesc) as qczl_NumDesc,rtrim(a.sys_id) as sys_id,a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c.员工姓名) as 员工姓名,rtrim(d.yj_yjmc) as yj_yjmc';
  74. $where = [$date.' 00:00:00',$date.'24:00:00'];
  75. $list = Db::name('db_手工检验')->alias('a')
  76. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  77. ->join('人事_基本资料 c','a.sczl_bh0 = c.员工编号','left')
  78. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  79. ->where('a.sys_rq','between time',$where)
  80. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
  81. ->field($field)->limit($limit)->page($pages)->order('a.sczl_rq,a.UniqId asc')->select();
  82. $option['sys_rq'] = array('between time',[$date.' 00:00:00',$date.' 24:00:00']);
  83. $count = Db::name('db_手工检验')->where($option)->count();
  84. $data['data'] = $list;
  85. $data['total'] = $count;
  86. $this->success('请求成功',$data);
  87. }
  88. /**
  89. * 获取机器检验左侧菜单栏
  90. *
  91. * @ApiMethod GET
  92. */
  93. public function getMachineCount(){
  94. if (Request::instance()->isGet() == false){
  95. $this->error('非法请求');
  96. }
  97. $sql = 'SELECT DISTINCT DATE(sys_rq) AS sys_rq FROM `db_机器检验` ORDER BY sys_rq DESC LIMIT 30 ';
  98. $list = Db::query($sql);
  99. foreach ($list as $key => $value){
  100. $where = [$value['sys_rq'].'00:00:00',$value['sys_rq'].'24:00:00'];
  101. $dataCount = Db::name('db_机器检验')->where('sys_rq','between time',$where)->field('rtrim(sys_id) as sys_id')->order('sys_id asc')->select();
  102. $list[$key]['count'] = count($dataCount);
  103. // 提取 sys_id 列成新数组
  104. $sysIds = array_column($dataCount, 'sys_id');
  105. //统计每个不同的 sys_id 的数量
  106. $counts = array_count_values($sysIds);
  107. $i = 0;
  108. foreach ($counts as $k=>$v){
  109. $list[$key]['sys'][$i]['sys_id'] = $k;
  110. $list[$key]['sys'][$i]['count'] = $v;
  111. $i++;
  112. }
  113. }
  114. $this->success('请求成功',$list);
  115. }
  116. /**
  117. * 获取某个日期机器单据
  118. *
  119. * @ApiMethod GET
  120. * @params string date
  121. */
  122. public function getDateMachine(){
  123. if (Request::instance()->isGet() == false){
  124. $this->error('非法请求');
  125. }
  126. $params = Request::instance()->param();
  127. $date = $params['date'];
  128. if (!isset($date)){
  129. $this->error('参数不能为空');
  130. }
  131. $limit = $params['limit'];
  132. if (empty($limit)){
  133. $limit = 15;
  134. }
  135. $pages = $params['page'];
  136. if (empty($pages)){
  137. $pages = 1;
  138. }
  139. $where['a.sczl_单据类型'] = '初检单';
  140. $where['a.sys_rq'] = array('between time',[$date.' 00:00:00',$date.' 24:00:00']);
  141. $field = 'a.sczl_gdbh,trim(a.sczl_yjgx) as sczl_yjgx,rtrim(a.sczl_gxmc) as sczl_gxmc,a.sczl_jtbh,a.sczl_bzdh,DATE(a.sczl_rq) as sczl_rq,a.sczl_cl,rtrim(a.sczl_单据类型) as sczl_单据类型,
  142. a.sczl_设备运行工时,a.sczl_dedh,a.sczl_废品率系数,rtrim(a.sczl_检验类别) as sczl_检验类别,a.sczl_bh1,a.sczl_bh2,a.sczl_bh3,a.sczl_bh4,a.qczl_NumDesc,rtrim(a.sys_id) as sys_id,
  143. a.sys_rq,a.mod_rq,a.UniqId,b.千件工价,b.日定额,rtrim(c1.员工姓名) as sczl_bh1_name,rtrim(c2.员工姓名) as sczl_bh2_name,rtrim(c3.员工姓名) as sczl_bh3_name,
  144. rtrim(c4.员工姓名) as sczl_bh4_name,rtrim(d.yj_yjmc) as yj_yjmc';
  145. $list = Db::name('db_机器检验')->alias('a')
  146. ->join('dic_lzde b','a.sczl_dedh = b.sys_bh','left')
  147. ->join('人事_基本资料 c1','a.sczl_bh1 = c1.员工编号','left')
  148. ->join('人事_基本资料 c2','a.sczl_bh2 = c2.员工编号','left')
  149. ->join('人事_基本资料 c3','a.sczl_bh3 = c3.员工编号','left')
  150. ->join('人事_基本资料 c4','a.sczl_bh4 = c4.员工编号','left')
  151. ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh','left')
  152. ->where($where)
  153. ->where('SUBSTR(a.sczl_yjgx,1,2) = d.yj_yjno')
  154. ->field($field)->limit($limit)->page($pages)->order('a.sczl_rq asc,a.UniqId desc')->select();
  155. $option['sczl_单据类型'] = '初检单';
  156. $option['sys_rq'] = array('between time',[$date.' 00:00:00',$date.' 24:00:00']);
  157. $count = Db::name('db_机器检验')->where($option)->count();
  158. $data['data'] = $list;
  159. $data['total'] = $count;
  160. $this->success('请求成功',$data);
  161. }
  162. }