Approve.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\service\ApproveService;
  4. use hg\apidoc\annotation as Apidoc;
  5. /**
  6. * @Apidoc\Title("审批")
  7. * @Apidoc\Group("api")
  8. * @Apidoc\Sort("12")
  9. */
  10. class Approve extends Base
  11. {
  12. public function initialize()
  13. {
  14. parent::initialize();
  15. parent::checkLogin();
  16. }
  17. /**
  18. * 审批待处理统计
  19. *
  20. * @Apidoc\Method("POST")
  21. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  22. * @Apidoc\Returned("module_text", type="string", desc="模块类型描述")
  23. * @Apidoc\Returned("number", type="integer", desc="待处理数量")
  24. **/
  25. public function get_count()
  26. {
  27. $user = $this->user;
  28. $data = ApproveService::get_count($user);
  29. $this->success('审批待处理统计', $data);
  30. }
  31. /**
  32. * 审批列表
  33. *
  34. * @Apidoc\Method("POST")
  35. * @Apidoc\Param("page", type="integer",require=true, desc="页数")
  36. * @Apidoc\Param("page_num", type="integer", require=true, desc="每页数量")
  37. * @Apidoc\Param("status", type="integer", require=true, desc="处理状态:1=待处理,2=已处理,3=我收到的")
  38. * @Apidoc\Param("module", type="integer", require=false, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件 不传默认全部")
  39. * @Apidoc\Param("start_time", type="string", require=false, desc="申请开始时间")
  40. * @Apidoc\Param("end_time", type="string", require=false, desc="申请结束时间")
  41. * @Apidoc\Param("search", type="string", require=false, desc="搜索 姓名 事由 编号")
  42. * @Apidoc\Returned("approve_id", type="integer", desc="审批ID")
  43. * @Apidoc\Returned("status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批同意,4=审批驳回")
  44. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  45. * @Apidoc\Returned("module", type="integer", desc="模块类型")
  46. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  47. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  48. * @Apidoc\Returned("reason", type="string", desc="module=1申购事由,module=2申请标题,module=4物品用途,module=5出差事由,module=6请假原因,module=7出发地点,module=8维修地点,module=9合同编号,module=10文件名称,module=11文件名称")
  49. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  50. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  51. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  52. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  53. * @Apidoc\Returned("approve_one", type="object", desc="审批人信息 status=1",
  54. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  55. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  56. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  57. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  58. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  59. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  60. * ),
  61. * )
  62. * @Apidoc\Returned("approve_info_user", type="object", desc="创建人信息",
  63. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  64. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  65. * )
  66. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  67. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  68. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  69. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  70. * )
  71. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  72. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  73. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  74. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  75. * )
  76. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  77. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  78. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  79. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  80. * )
  81. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  82. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  83. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  84. * @Apidoc\Returned("name", type="string", desc="姓名"),
  85. * )
  86. */
  87. public function get_list()
  88. {
  89. $status = input('status') ?: 0;
  90. $module = input('module') ?: 0;
  91. $start_time = input('start_time') ?: '';
  92. $end_time = input('end_time') ?: '';
  93. $search = input('search') ?: '';
  94. $offset = $this->off_set;
  95. $length = $this->page_num;
  96. $user = $this->user;
  97. $data = ApproveService::get_list($status, $module, $start_time, $end_time, $search, $offset, $length, $user);
  98. $this->success('审批列表', $data);
  99. }
  100. /**
  101. * 详情
  102. *
  103. * @Apidoc\Method("POST")
  104. * @Apidoc\Param("approve_id", type="integer",require=true, desc="审批ID")
  105. * @Apidoc\Param("group", type="string",require=true, desc="类别:approve=审批,approve_copy=审批抄送")
  106. * @Apidoc\Returned("approve_id", type="integer", desc="审批ID")
  107. * @Apidoc\Returned("approve_status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批同意,4=审批驳回")
  108. * @Apidoc\Returned("is_maintain", type="bool", desc="是否显示维修人员:false=不显示,true=显示 module=8 && approve_status=2判断此字段")
  109. * @Apidoc\Returned("is_feedback", type="bool", desc="是否显示上传反馈结果:false=不显示,true=显示 module=8 && approve_status=3判断此字段")
  110. */
  111. public function get_detail()
  112. {
  113. $id = input('approve_id') ?: 0;
  114. $group = input('group') ?: 'approve';
  115. $user = $this->user;
  116. $info = ApproveService::get_detail($id, $user, $group,'detail');
  117. $this->success('详情', $info);
  118. }
  119. /**
  120. * 信息
  121. *
  122. * @Apidoc\Desc("修改信息")
  123. * @Apidoc\Method("POST")
  124. * @Apidoc\Param("approve_id", type="integer",require=true, desc="审批ID")
  125. * @Apidoc\Returned("approve_id", type="integer", desc="审批ID")
  126. * @Apidoc\Returned("approve_status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批同意,4=审批驳回")
  127. */
  128. public function get_info()
  129. {
  130. $id = input('approve_id') ?: 0;
  131. $user = $this->user;
  132. $info = ApproveService::get_detail($id, $user, 'approve','info');
  133. $this->success('信息', $info);
  134. }
  135. /**
  136. * 审批
  137. *
  138. * @Apidoc\Method("POST")
  139. * @Apidoc\Param("approve_id", type="integer",require=true, desc="审批ID")
  140. * @Apidoc\Param("status", type="integer",require=true, desc="审批状态:3=审批同意,4=审批驳回")
  141. * @Apidoc\Param("remark", type="sting",require=false, desc="审批意见")
  142. * @Apidoc\Param("maintain_user_id", type="sting",require=false, desc="维修人员ID status=3必传")
  143. **/
  144. public function audit()
  145. {
  146. $id = input('approve_id') ?: 0;
  147. $status = input('status') ?: 0;
  148. $remark = input('remark') ?: '';
  149. $maintain_user_id = input('maintain_user_id') ?: 0;
  150. $params = compact("status", "remark", "maintain_user_id");
  151. $user = $this->user;
  152. ApproveService::make($id, $params, $user, 'audit');
  153. $this->success('确认成功');
  154. }
  155. /**
  156. * 上传反馈结果
  157. *
  158. * @Apidoc\Desc("维修模块")
  159. * @Apidoc\Method("POST")
  160. * @Apidoc\Param("approve_id", type="integer",require=true, desc="审批ID")
  161. * @Apidoc\Param("feedback", type="sting",require=true, desc="反馈结果")
  162. * @Apidoc\Param("feedback_images", type="sting",require=false, desc="反馈图片(多个用英文逗号隔开)")
  163. **/
  164. public function feedback()
  165. {
  166. $id = input('approve_id') ?: 0;
  167. $feedback = input('feedback') ?: '';
  168. $feedback_images = input('feedback_images') ?: '';
  169. $params = compact("feedback", "feedback_images");
  170. $user = $this->user;
  171. ApproveService::make($id, $params, $user, 'feedback');
  172. $this->success('提交成功');
  173. }
  174. }