Product.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. if (isset($params['custom_code'])){
  44. $customCode = $params['custom_code'];
  45. $sql = "SELECT rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称,客户料号,rtrim(产品编号) as 产品编号,rtrim(产品名称) as 产品名称,版本号,成品规格,
  46. rtrim(计量单位) as 计量单位,rtrim(产品类别) as 产品类别,生产类别,产品备注,投产日期,状态,U8UID,rtrim(Sys_id) as Sys_id,Sys_rq,Mod_rq,UniqID
  47. FROM `产品_基本资料` WHERE `客户编号` = '{$customCode}' ORDER BY CASE WHEN `状态` IS NULL THEN 0 ELSE 1 END,
  48. `客户编号`ASC,`状态` ASC,`产品编号` DESC LIMIT {$limit} OFFSET {$pages}";
  49. }else{
  50. $sql = "SELECT rtrim(客户编号) as 客户编号,rtrim(客户名称) as 客户名称,客户料号,rtrim(产品编号) as 产品编号,rtrim(产品名称) as 产品名称,版本号,成品规格,
  51. rtrim(计量单位) as 计量单位,rtrim(产品类别) as 产品类别,生产类别,产品备注,投产日期,状态,U8UID,rtrim(Sys_id) as Sys_id,Sys_rq,Mod_rq,UniqID
  52. FROM `产品_基本资料` ORDER BY CASE WHEN `状态` IS NULL THEN 0 ELSE 1 END,
  53. `客户编号`ASC,`状态` ASC,`产品编号` DESC LIMIT {$limit} OFFSET {$pages}";
  54. }
  55. $list = Db::query($sql);
  56. foreach ($list as $key=>$value){
  57. $code = trim($value['产品编号']);
  58. $gd_sql = "SELECT `接单日期` FROM `工单_基本资料` WHERE `成品代号` = '{$code}' ORDER BY Uniqid DESC";
  59. $gdRes = Db::query($gd_sql);
  60. $list[$key]['receiveDate'] = '';
  61. if (!empty($gdRes)){
  62. $list[$key]['receiveDate'] = $gdRes[0]['接单日期'];
  63. }
  64. $gy_sql = "SELECT * FROM `产品_工艺资料` WHERE Gy0_cpdh = '{$code}'";
  65. $gyRes = Db::query($gy_sql);
  66. $list[$key]['gyData'] = '';
  67. if (empty($gyRes)){
  68. $list[$key]['gyData'] = '缺';
  69. }
  70. $yj_sql = "SELECT COUNT(*) as total FROM `产品_印件资料` WHERE `yj_cpdh` = '{$code}'";
  71. $yjRes = Db::query($yj_sql);
  72. $list[$key]['yjData'] = '无';
  73. if ($yjRes[0]['total'] > 0){
  74. $list[$key]['yjData'] = $yjRes[0]['total'];
  75. }
  76. }
  77. $this->success('请求成功',$list);
  78. }
  79. /**
  80. * 获取产品基础数据
  81. *
  82. * @ApiMethod POST
  83. *@param string product_code
  84. */
  85. public function getProductData(){
  86. if (Request::instance()->isPost() == false){
  87. $this->error('非法请求');
  88. }
  89. $params = Request::instance()->param();
  90. $code = $params['product_code'];
  91. if (!isset($code)){
  92. $this->error('参数不能为空');
  93. }
  94. //工艺资料
  95. $option['a.Gy0_cpdh'] = $code;
  96. $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 备注,
  97. 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,
  98. a.Sys_rq,a.Mod_rq,b.sys_rate0 as 基础损耗,b.sys_rate1 as 损耗率';
  99. $gyRes = Db::name('产品_工艺资料')->alias('a')
  100. ->join('dic_lzsh b','a.Gy0_shdh = b.sys_bh','left')
  101. ->where($option)->field($gy_field)->order('a.Gy0_yjno asc,a.Gy0_gxh asc')->select();
  102. //印件资料
  103. $where['yj_cpdh'] = $code;
  104. $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,
  105. 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';
  106. $yjRes = Db::name('产品_印件资料')->where($where)->field($field)->select();
  107. //印版资料
  108. $filter['a.YB_Cpdh'] = $code;
  109. $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 印版名称';
  110. $ybRes = Db::name('产品_印版资料')->alias('a')
  111. ->join('物料_存货编码 b','a.存货编码 = b.物料代码')
  112. ->where($filter)->field($yb_field)->select();
  113. $list = [];
  114. $list['yjData'] = $yjRes;
  115. $list['gyData'] = $gyRes;
  116. $list['ybData'] = $ybRes;
  117. $list['jsData'] = [];
  118. $this->success('请求成功',$list);
  119. }
  120. }