Exec.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\Db;
  4. use think\App;
  5. use think\facade\Validate;
  6. class Exec extends \app\admin\BaseController{
  7. public function __construct(App $app) {parent::__construct($app);}
  8. public function list(){
  9. $param=$this->request->param(["name"=>"","type"=>"","status"=>"","companyNo"=>"",'relaComNo'=>'',"page"=>1,"size"=>15],"post","trim");
  10. $conditon =[["is_del","=",0]];
  11. if($param['name']!='')$conditon[]=["name","like","%{$param['name']}%"];
  12. if($param['type']!='')$conditon[]=["type","=",$param['type']];
  13. if($param['companyNo']!='')$conditon[]=["companyNo","=",$param['companyNo']];
  14. if($param['relaComNo']!='')$conditon[]=["companyNo","=",$param['relaComNo']];
  15. if($param['status']!=='')$conditon[]=["status","=",$param['status']];
  16. $count=Db::name("exec")->where($conditon)->count();
  17. $total = ceil($count/$param['szie']);
  18. $page =$param['page']>=$total ? intval($param['page']):intval($total);
  19. $list=Db::name("exec")->where($conditon)->page($page,intval($param['size']))->select()->toArray();
  20. return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
  21. }
  22. public function query(){
  23. $param=$this->request->param(["name"=>"","status"=>"","companyNo"=>"",'relaComNo'=>'',"type"=>""],"post","trim");
  24. $conditon =[["is_del","=",0]];
  25. if($param['name']!='')$conditon[]=["name","like","%{$param['name']}%"];
  26. if($param['type']!='')$conditon[]=["type","=",$param['type']];
  27. if($param['status']!=='')$conditon[]=["status","=",$param['status']];
  28. if($param['companyNo']!='')$conditon[]=["companyNo","=",$param['companyNo']];
  29. if($param['relaComNo']!='')$conditon[]=["companyNo","=",$param['relaComNo']];
  30. $list=Db::name("exec")->where($conditon)->select()->toArray();
  31. return app_show(0,"获取成功",$list);
  32. }
  33. public function add(){
  34. $param=$this->request->param(["name"=>"","companyNo"=>"",'relaComNo'=>'',"action"=>'',"type"=>""],"post","trim");
  35. $valid=Validate::rule([
  36. "name|脚本名称"=>'require|max:255',
  37. "type|脚本类型"=>'require|number|in:1,2',
  38. "companyNo|业务公司"=>'requireWithout:relaComNo|max:255',
  39. "relaComNo|业务公司"=>'requireWithout:companyNo|max:255',
  40. ]);
  41. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  42. $companyNo = $param['companyNo']??($param['relaComNo']??"");
  43. $ist =Db::name("exec")->where(["name"=>$param['name'],"comapnyNo"=>$companyNo,"type"=>$param['type'],
  44. "is_del"=>0])->findOrEmpty();
  45. if(!empty($ist))return error_show(1004,"同类型脚本名称已存在");
  46. $data=[
  47. "name"=>$param['name'],
  48. "apply_name"=>$this->uname,
  49. "apply_id"=>$this->uid,
  50. "companyNo"=>$companyNo,
  51. "action"=>$param["action"]??"",
  52. "status"=>0,
  53. "addtime"=>date("Y-m-d H:i:s"),
  54. "updatetime"=>date("Y-m-d H:i:s")
  55. ];
  56. $insert=Db::name("exec")->insert($data);
  57. return $insert? app_show("0","新建成功"):app_show("1004","新建失败");
  58. }
  59. public function status(){
  60. $param=$this->request->param(["id"=>"","status"=>""],"post","trim");
  61. if($param['id']=='')return error_show(1004,"参数id 不能为空");
  62. $log=Db::name("exec")->where(["id",$param['id']])->findOrEmpty();
  63. if(empty($log))return error_show(1004,"脚本不存在");
  64. if($log['is_del']==1) return error_show(1004,"脚本已删除");
  65. if($log['status']==$param['status']) return error_show(1004,"脚本状态已更新");
  66. if($log['action']==''&&$param['status']==1 ) return error_show(1004,'后端脚本还未上线');
  67. $del=Db::name("exec")->where(["id",$param['id']])->update(["status"=>$param['status'],"updatetime"=>date("Y-m-d H:i:s")]);
  68. return $del? app_show("0","更新成功"):app_show("1004","更新失败");
  69. }
  70. //新建脚本数据
  71. public function addlog(){
  72. $param=$this->request->param(["id"=>"","start"=>"","end"=>"","companyNo"=>"",'relaComNo'=>''],"post","trim");
  73. $valid=Validate::rule([
  74. "id|脚本ID"=>'require|number|gt:0',
  75. "start|起始时间"=>'require|dateFormat:y-m-d',
  76. "end|结束时间"=>'require|dateFormat:y-m-d|gt:start',
  77. "companyNo|业务公司"=>'requireWithout:relaComNo|max:255',
  78. "relaComNo|业务公司"=>'requireWithout:companyNo|max:255',
  79. ]);
  80. if($valid->check($param)==false) return error_show(1004,$valid->getError());
  81. $exec =Db::name("exec")->where("id",$param['id'])->findOrEmpty();
  82. if(empty($exec)) return error_show(1004,'未找到脚本数据');
  83. if($exec['action']=='') return error_show(1004,'后端脚本还未上线');
  84. $data=[
  85. "name"=>$exec['name'],
  86. "companyNo"=>$param['companyNo']??($param['relaComNo']??""),
  87. "start"=>date("Y-m-d 00:00:00",strtotime($param['start'])),
  88. "end"=>date("Y-m-d 23:59:59",strtotime($param['end'])),
  89. "apply_id"=>$this->uid,
  90. "apply_name"=>$this->uname,
  91. "action"=>$exec['action'],
  92. "down_url"=>'',
  93. "status"=>1,
  94. "remark"=>'',
  95. "type"=>$exec["type"],
  96. "expiretime"=>$exec["type"]==1? date("Y-m-d H:i:s"):date("Y-m-d 22:00:00"),
  97. "addtime"=> date("Y-m-d H:i:s"),
  98. "updatetime"=> date("Y-m-d H:i:s")
  99. ];
  100. $in=Db::name("exec_log")->insert($data);
  101. return $in? app_show("0","新建成功"):app_show("1004","新建失败");
  102. }
  103. public function loglist(){
  104. $param=$this->request->param(["name"=>"","apply_name"=>"","status"=>"","action"=>"","type"=>"","companyNo"=>"",'relaComNo'=>''],"post","trim");
  105. $where=[["is_del","=",0]];
  106. if($param['name']!='')$where[]=["name","like","%{$param['name']}%"];
  107. if($param['apply_name']!='')$where[]=["apply_name","like","%{$param['apply_name']}%"];
  108. if($param['type']!='')$where[]=["type","=",$param['type']];
  109. if($param['status']!='')$where[]=["status","=",$param['status']];
  110. if($param['action']!='')$where[]=["action","=",$param['action']];
  111. if($param['companyNo']!='')$where[]=["companyNo","=",$param['companyNo']];
  112. if($param['relaComNo']!='')$where[]=["companyNo","=",$param['relaComNo']];
  113. $count=Db::name("exec_log")->where($where)->count();
  114. $total = ceil($count/$param['szie']);
  115. $page =$param['page']>=$total ? intval($param['page']):intval($total);
  116. $list=Db::name("exec_log")->where($where)->page($page,intval($param['size']))->order("id desc")->select()
  117. ->toArray();
  118. return app_show(0,"获取成功",["list"=>$list,"count"=>$count]);
  119. }
  120. public function logdel(){
  121. $param=$this->request->param(["logid"=>""],"post","trim");
  122. if($param['logid']=='')return error_show(1004,"参数logid 不能为空");
  123. $log=Db::name("exec_log")->where(["id",$param['logid']])->findOrEmpty();
  124. if(empty($log))return error_show(1004,"脚本记录不存在");
  125. if($log['is_del']==1) return error_show(1004,"脚本记录已删除");
  126. if($log['status']==2) return error_show(1004,"脚本已执行完成");
  127. $del=Db::name("exec_log")->where(["id",$param['logid']])->update(["is_del"=>1,"updatetime"=>date("Y-m-d H:i:s")]);
  128. return $del? app_show("0","删除成功"):app_show("1004","删除失败");
  129. }
  130. public function actionList(){
  131. $ation=[
  132. ["action"=>"A","name"=>'销售发票申请信息导出'],
  133. ["action"=>"B","name"=>'进项发票等级导出'],
  134. ["action"=>"C","name"=>'资金认领导出'],
  135. ["action"=>"D","name"=>'回款核销明细表'],
  136. ["action"=>"E","name"=>'回票明细表'],
  137. ["action"=>"F","name"=>'经营分析报表'],
  138. ["action"=>"G","name"=>'收入成本明细表'],
  139. ["action"=>"I","name"=>'应收台账表'],
  140. ["action"=>"J","name"=>'用友销票表'],
  141. ["action"=>"K","name"=>'采购单明细表'],
  142. ["action"=>"M","name"=>'对账单汇总表']
  143. ];
  144. return app_show(0,"获取成功",$ation);
  145. }
  146. }