Process.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  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 Process 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. * @ApiMethod GET
  24. * @params string code
  25. */
  26. public function getProcessLoss(){
  27. if (Request::instance()->isGet() == false){
  28. $this->error('非法请求');
  29. }
  30. $params = Request::instance()->param();
  31. $code = $params['code'];
  32. if (!isset($code)){
  33. $this->error('参数不能为空');
  34. }
  35. $where['sys_bh'] = $code;
  36. $field = 'rtrim(sys_bh) as sys_bh,rtrim(sys_mc) as sys_mc,sys_rate0,sys_rate1,rtrim(适用机型) as remark';
  37. $data = db('dic_lzsh')->where($where)->field($field)->select();
  38. $this->success('请求成功',$data);
  39. }
  40. /**
  41. * 获取工序损耗列表接口
  42. * @ApiParams GET
  43. */
  44. public function getProcess(){
  45. if (Request::instance()->isGet() == false){
  46. $this->error('非法请求');
  47. }
  48. $field = 'Key_,Parent,rtrim(sys_bh) as sys_bh,rtrim(sys_mc) as sys_mc';
  49. $list = db('dic_lzsh')->field($field)->select();
  50. $data = [];
  51. $i = 0;
  52. foreach ($list as $value){
  53. if ($value['Parent'] == '0_'){
  54. $data[$i] = $value;
  55. //一级菜单
  56. $data[$i]['child'] = db('dic_lzsh')->where('Parent',$value['Key_'])->field($field)->select();
  57. foreach ($data[$i]['child'] as $k=>$v){
  58. $children = db('dic_lzsh')->where('Parent',$v['Key_'])->field($field)->select();
  59. //二级菜单
  60. $data[$i]['child'][$k]['children'] = $children;
  61. if (!empty($children)){
  62. foreach ($children as $key=>$item){
  63. $childrens = db('dic_lzsh')->where('Parent',$item['Key_'])->field($field)->select();
  64. //三级菜单
  65. $data[$i]['child'][$k]['children'][$key]['childrens'] = $childrens;
  66. if (!empty($childrens)){
  67. foreach ($childrens as $k1=>$v1){
  68. $fiveChild = db('dic_lzsh')->where('Parent',$v1['Key_'])->field($field)->select();
  69. $data[$i]['child'][$k]['children'][$key]['childrens'][$k1]['fiveChild'] = $fiveChild;
  70. }
  71. }else{
  72. $data[$i]['child'][$k]['children'][$key]['childrens'] = [];
  73. }
  74. }
  75. }else{
  76. $data[$i]['child'][$k]['children']= [];
  77. }
  78. }
  79. $i++;
  80. }
  81. }
  82. $this->success('请求成功',$data);
  83. }
  84. /**
  85. * 获取工序损耗编码
  86. * @ApiMethod GET
  87. * @params string code
  88. * @params string same_item
  89. * @params string child_item
  90. */
  91. public function getProcessCode(){
  92. if (Request::instance()->isGet() == false){
  93. $this->error('非法请求');
  94. }
  95. $params = Request::instance()->param();
  96. if (!isset($params['code']) || !isset($params['same_item']) || !isset($params['child_item'])){
  97. $this->error('参数错误');
  98. }
  99. $code = $params['code'];
  100. if (empty($code)){//科目编码为空,表示需要增加一级科目
  101. $res = db('dic_lzsh')->where('Parent','0_')->field('rtrim(sys_bh) as sys_bh')->order('UniqId desc')->find();
  102. $num = (int)$res['sys_bh'] + 1;
  103. $new_code = $num > 10 ? '0'.$num : '00'.$num;
  104. $this->success('请求成功',$new_code);
  105. }else{
  106. if (($params['same_item'] == 0 && $params['child_item'] == 0) || ($params['same_item'] == 1 && $params['child_item'] == 1) ){
  107. $this->error('参数错误');
  108. }
  109. $res = db('dic_lzsh')->where('sys_bh',$code)->find();
  110. if ($params['same_item'] == 1){ //表示增加同级科目
  111. $list = db('dic_lzsh')->where('Parent',$res['Parent'])->field('rtrim(sys_bh) as sys_bh')->order('UniqId desc')->find();
  112. $num = (int)$list['sys_bh'] + 1;
  113. $num = substr($num,-3);
  114. $str = substr($code,0,-3);
  115. $new_code = $str . $num;
  116. }else{
  117. $list = db('dic_lzsh')->where('Parent',$res['Key_'])->field('rtrim(sys_bh) as sys_bh')->order('UniqId desc')->find();
  118. if (!empty($list)){
  119. $num = (int)$list['sys_bh'] + 1;
  120. $num = substr($num,-3);
  121. $new_code = $code . $num;
  122. }else{
  123. $num = '001';
  124. $new_code = $code . $num;
  125. }
  126. }
  127. $this->success('请求成功',$new_code);
  128. }
  129. }
  130. /**
  131. * 增加左侧科目
  132. * @ApiMethod POST
  133. * @params string code
  134. * @params string name
  135. * @params float sys_rate0
  136. * @params float sys_rate1
  137. * @params string remark
  138. */
  139. public function add(){
  140. if (Request::instance()->isPost() == false){
  141. $this->error('非法请求');
  142. }
  143. $params = Request::instance()->post();
  144. if (empty($params) || !isset($params['code']) || !isset($params['name'])){
  145. $this->error('参数不能为空');
  146. }
  147. $parentCode = substr($params['code'],0,-3);
  148. if (empty($parentCode)){
  149. $parentCode = $params['code'];
  150. }
  151. $list = db('dic_lzsh')->where('sys_bh',$parentCode)->field('Key_')->find();
  152. $uniqId = db('dic_lzsh')->order('UniqId desc')->value('UniqId');
  153. $sql = "SELECT MAX(CAST(SUBSTRING(Key_, 1, LENGTH(Key_) - 1) AS UNSIGNED)) AS max_value FROM dic_lzsh";
  154. $key = Db::query($sql);
  155. $data = [];
  156. $data['sys_bh'] = $params['code'];
  157. $data['Parent'] = empty($list)? '0_':$list['Key_'];
  158. $data['sys_mc'] = $params['name'];
  159. $data['sys_rate0'] = $params['sys_rate0'];
  160. $data['sys_rate1'] = $params['sys_rate1'];
  161. $data['启用状态'] = 1;
  162. $data['Key_'] = ($key[0]['max_value']+1).'_';
  163. $data['UniqId'] = $uniqId+1;
  164. if (!empty($params['remark'])){
  165. $data['适用机型'] = $params['remark'];
  166. }
  167. $sql = db('dic_lzsh')->fetchSql(true)->insert($data);
  168. $res = Db::query($sql);
  169. if ($res !== false){
  170. $this->success('新增成功');
  171. }else{
  172. $this->error('新增失败');
  173. }
  174. }
  175. /**
  176. * 修改左侧科目
  177. * @params string code
  178. * @params string name
  179. * @params float sys_rate0
  180. * @params float sys_rate1
  181. * @params string remark
  182. */
  183. public function edit(){
  184. if (Request::instance()->isPost() == false){
  185. $this->error('非法请求');
  186. }
  187. $params = Request::instance()->post();
  188. if (empty($params) || !isset($params['code']) || !isset($params['name'])){
  189. $this->error('参数不能为空');
  190. }
  191. $data = [];
  192. $data['sys_mc'] = $params['name'];
  193. $data['sys_rate0'] = $params['sys_rate0'];
  194. $data['sys_rate1'] = $params['sys_rate1'];
  195. if (!empty($params['remark'])){
  196. $data['适用机型'] = $params['remark'];
  197. }
  198. $sql = db('dic_lzsh')->where('sys_bh',$params['code'])->fetchSql(true)->update($data);
  199. $res = Db::query($sql);
  200. if ($res !== false){
  201. $this->success('更新成功');
  202. }else{
  203. $this->error('更新失败');
  204. }
  205. }
  206. /**
  207. * 删除
  208. * @ApiMethod POST
  209. * @params string code
  210. */
  211. public function delete(){
  212. if (Request::instance()->isPost() == false){
  213. $this->error('非法请求');
  214. }
  215. $params = Request::instance()->post();
  216. if (empty($params) || !isset($params['code'])){
  217. $this->error('参数不能为空');
  218. }
  219. $res = db('dic_lzsh')->where('sys_bh',$params['code'])->delete();
  220. if ($res !== false){
  221. $this->success('删除成功');
  222. }else{
  223. $this->error('删除失败');
  224. }
  225. }
  226. }