Product.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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 Product 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. *@param string custom_code
  26. *@param string limit
  27. *@param string page
  28. */
  29. public function getProduct(){
  30. if (Request::instance()->isGet() == false){
  31. $this->error('非法请求');
  32. }
  33. $params = Request::instance()->param();
  34. $limit = $params['limit'];
  35. if (!isset($limit) == false){
  36. $limit = 15;
  37. }
  38. if (!isset($pages) == false){
  39. $pages = 0;
  40. }else{
  41. $pages = ($params['page']-1) * $limit;
  42. }
  43. $total = 0;
  44. if (isset($params['custom_code'])){
  45. $customCode = $params['custom_code'];
  46. $sql = "SELECT rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称,客户料号,rtrim(产品编号) as 产品编号,rtrim(产品名称) as 产品名称,版本号,成品规格,
  47. rtrim(计量单位) as 计量单位,rtrim(产品类别) as 产品类别,生产类别,产品备注,投产日期,状态,U8UID,rtrim(Sys_id) as Sys_id,Sys_rq,Mod_rq,UniqID
  48. FROM `产品_基本资料` WHERE `客户编号` = '{$customCode}' ORDER BY CASE WHEN `状态` IS NULL THEN 0 ELSE 1 END,
  49. `客户编号`ASC,`状态` ASC,`产品编号` DESC LIMIT {$limit} OFFSET {$pages}";
  50. $total = Db::name('产品_基本资料')->where('客户编号',$customCode)->count();
  51. }else{
  52. $sql = "SELECT rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称,客户料号,rtrim(产品编号) as 产品编号,rtrim(产品名称) as 产品名称,版本号,成品规格,
  53. rtrim(计量单位) as 计量单位,rtrim(产品类别) as 产品类别,生产类别,产品备注,投产日期,状态,U8UID,rtrim(Sys_id) as Sys_id,Sys_rq,Mod_rq,UniqID
  54. FROM `产品_基本资料` ORDER BY CASE WHEN `状态` IS NULL THEN 0 ELSE 1 END,
  55. `客户编号`ASC,`状态` ASC,`产品编号` DESC LIMIT {$limit} OFFSET {$pages}";
  56. $total = Db::name('产品_基本资料')->count();
  57. }
  58. $list = Db::query($sql);
  59. foreach ($list as $key=>$value){
  60. $code = trim($value['产品编号']);
  61. $gd_sql = "SELECT `接单日期` FROM `工单_基本资料` WHERE `成品代号` = '{$code}' ORDER BY Uniqid DESC";
  62. $gdRes = Db::query($gd_sql);
  63. $list[$key]['receiveDate'] = '';
  64. if (!empty($gdRes)){
  65. $list[$key]['receiveDate'] = $gdRes[0]['接单日期'];
  66. }
  67. $gy_sql = "SELECT * FROM `产品_工艺资料` WHERE Gy0_cpdh = '{$code}'";
  68. $gyRes = Db::query($gy_sql);
  69. $list[$key]['gyData'] = '';
  70. if (empty($gyRes)){
  71. $list[$key]['gyData'] = '缺';
  72. }
  73. $yj_sql = "SELECT COUNT(*) as total FROM `产品_印件资料` WHERE `yj_cpdh` = '{$code}'";
  74. $yjRes = Db::query($yj_sql);
  75. $list[$key]['yjData'] = '无';
  76. if ($yjRes[0]['total'] > 0){
  77. $list[$key]['yjData'] = $yjRes[0]['total'];
  78. }
  79. }
  80. $data['data'] = $list;
  81. $data['total'] = $total;
  82. $this->success('请求成功',$data);
  83. }
  84. /**
  85. * 获取产品基础数据
  86. *
  87. * @ApiMethod POST
  88. *@param string product_code
  89. */
  90. public function getProductData(){
  91. if (Request::instance()->isGet() == false){
  92. $this->error('非法请求');
  93. }
  94. $params = Request::instance()->param();
  95. $code = $params['product_code'];
  96. if (!isset($code)){
  97. $this->error('参数不能为空');
  98. }
  99. //工艺资料
  100. $option['a.Gy0_cpdh'] = $code;
  101. $gy_field = 'rtrim(a.Gy0_方案) as 方案,a.Gy0_yjno,a.Gy0_gxh,rtrim(a.gy0_gxmc) as gy0_gxmc,rtrim(a.Add_gxmc) as add_gxmc,a.Gy0_Ks,a.Gy0_ls,rtrim(a.工序备注) as 备注,
  102. a.工价系数,a.损耗系数,a.Gy0_Ms,a.人工检_正品板,a.人工检_次品板,a.人工检_废检,a.机检_正品板,a.机检_次品板,a.机检_废检,rtrim(a.Gy0_sbmc) as Gy0_sbmc,rtrim(a.Sys_id) as Sys_id,
  103. a.Sys_rq,a.Mod_rq,b.sys_rate0 as 基础损耗,b.sys_rate1 as 损耗率';
  104. $gyRes = Db::name('产品_工艺资料')->alias('a')
  105. ->join('dic_lzsh b','a.Gy0_shdh = b.sys_bh','left')
  106. ->where($option)->field($gy_field)->order('a.Gy0_yjno asc,a.Gy0_gxh asc')->select();
  107. //印件资料
  108. $where['yj_cpdh'] = $code;
  109. $field = 'yj_yjno,rtrim(yj_yjdh) as yj_yjdh,yj_yjmc,rtrim(yj_zzdh) as yj_zzdh,rtrim(yj_zzmc) as yj_zzmc,rtrim(yj_tlgg) as yj_tlgg,
  110. rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,rtrim(yj_desc) as yj_desc,rtrim(sys_id) as sys_id,sys_rq,mod_rq';
  111. $yjRes = Db::name('产品_印件资料')->where($where)->field($field)->select();
  112. //印版资料
  113. $filter['a.YB_Cpdh'] = $code;
  114. $yb_field = 'rtrim(a.YB_方案) as YB_方案,a.YB_Yjno,rtrim(a.存货编码) as 存货编码,a.考核印数,rtrim(a.Sys_id) as Sys_id,a.Mod_rq,rtrim(b.物料名称) as 印版名称';
  115. $ybRes = Db::name('产品_印版资料')->alias('a')
  116. ->join('物料_存货编码 b','a.存货编码 = b.物料代码')
  117. ->where($filter)->field($yb_field)->select();
  118. $list = [];
  119. $list['yjData'] = $yjRes;
  120. $list['gyData'] = $gyRes;
  121. $list['ybData'] = $ybRes;
  122. $list['jsData'] = [];
  123. $this->success('请求成功',$list);
  124. }
  125. }