Approveinfo.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\service\ApproveInfoService;
  4. use hg\apidoc\annotation as Apidoc;
  5. use think\Db;
  6. use think\Exception;
  7. /**
  8. * @Apidoc\Title("审批申请")
  9. * @Apidoc\Group("api")
  10. * @Apidoc\Sort("0")
  11. */
  12. class Approveinfo extends Base
  13. {
  14. public function initialize()
  15. {
  16. parent::initialize();
  17. parent::checkLogin();
  18. }
  19. /**
  20. * 申请/重新发起
  21. *
  22. * @Apidoc\Method("POST")
  23. * @Apidoc\Param("id", type="integer", require=false, desc="申请ID 重新发起必传")
  24. * @Apidoc\Param("module", type="integer", require=true, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  25. * @Apidoc\Param("reason", type="string", require=true, desc="事由")
  26. * @Apidoc\Param("start_time", type="string", require=true, desc="开始时间")
  27. * @Apidoc\Param("end_time", type="string", require=true, desc="结束时间")
  28. * @Apidoc\Param("document", type="string", require=false, desc="附件(多个用英文逗号隔开)")
  29. * @Apidoc\Param("images", type="string", require=false, desc="图片(多个用英文逗号隔开)")
  30. * @Apidoc\Param("type", type="integer", require=true, desc="出差类型:1=市内,2=市外")
  31. * @Apidoc\Param("is_who", type="integer", require=false, desc="是否跨关内关外:0=否,1=是")
  32. * @Apidoc\Param("remark", type="string", require=false, desc="备注")
  33. * @Apidoc\Param("peer_user", type="array", require=false, desc="同行员工数据 module=5",
  34. * @Apidoc\Param("is_who", type="integer", require=true, desc="是否外部人员:0=否,1=是"),
  35. * @Apidoc\Param("user_id", type="string", require=false, desc="用户userid"),
  36. * @Apidoc\Param("name", type="string", require=true, desc="姓名"),
  37. * @Apidoc\Param("desc", type="string", require=false, desc="备注"),
  38. * )
  39. * @Apidoc\Param("approve_user", type="string", require=true, desc="审批人id(多个用英文逗号隔开)")
  40. * @Apidoc\Param("copy_user", type="string", require=false, desc="抄送人id(多个用英文逗号隔开)")
  41. */
  42. public function create()
  43. {
  44. $id = input('id');
  45. $module = input('module');
  46. $reason = input('reason');
  47. $start_time = input('start_time');
  48. $end_time = input('end_time');
  49. $document = input('document');
  50. $images = input('images');
  51. $type = input('type');
  52. $is_who = input('is_who');
  53. $remark = input('remark');
  54. $peer_user = input('peer_user');
  55. $approve_user = input('approve_user');
  56. $copy_user = input('copy_user');
  57. $params = compact("module", "id", "reason", "start_time", "end_time", "document", "images", "type", "is_who", "remark", "peer_user", "approve_user", "copy_user");
  58. Db::startTrans();
  59. try {
  60. ApproveInfoService::create($id, $module, $params, $this->user);
  61. Db::commit();
  62. } catch (Exception $e) {
  63. Db::rollback();
  64. $this->error($e->getMessage());
  65. }
  66. $this->success('申请已提交,请等待审批');
  67. }
  68. /**
  69. * 我的申请记录
  70. *
  71. * @Apidoc\Method("POST")
  72. * @Apidoc\Param("page", type="integer",require=true, desc="页数")
  73. * @Apidoc\Param("page_num", type="integer", require=true, desc="每页数量")
  74. * @Apidoc\Param("module", type="integer", require=true, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  75. * @Apidoc\Param("status", type="integer", require=true, desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  76. * @Apidoc\Param("search", type="string", require=false, desc="搜索 事由 编号")
  77. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  78. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  79. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  80. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  81. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  82. * @Apidoc\Returned("reason", type="string", desc="事由")
  83. * @Apidoc\Returned("start_time", type="string", desc="开始时间")
  84. * @Apidoc\Returned("end_time", type="string", desc="结束时间")
  85. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  86. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  87. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  88. * @Apidoc\Returned("name", type="string", desc="姓名"),
  89. * )
  90. * @Apidoc\Returned("approve_one", type="object", desc="审批人信息 status=2,4",
  91. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  92. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  93. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  94. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  95. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  96. * @Apidoc\Returned("name", type="string", desc="姓名"),
  97. * ),
  98. * )
  99. */
  100. public function get_list()
  101. {
  102. $module = input('module');
  103. $status = input('status');
  104. $search = input('search');
  105. $offset = $this->off_set;
  106. $length = $this->page_num;
  107. $list = ApproveInfoService::get_list($module, $status, $search, $offset, $length, $this->user);
  108. $this->success('我的申请记录', $list);
  109. }
  110. /**
  111. * 详情
  112. *
  113. * @Apidoc\Method("POST")
  114. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  115. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  116. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  117. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  118. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  119. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  120. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  121. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  122. * @Apidoc\Returned("module_info", type="object", desc="模块信息",
  123. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  124. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  125. * @Apidoc\Returned("create_at", type="string", desc="创建时间"),
  126. * @Apidoc\Returned("reason", type="string", desc="事由"),
  127. * @Apidoc\Returned("start_time", type="string", desc="开始时间"),
  128. * @Apidoc\Returned("end_time", type="string", desc="结束时间"),
  129. * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内,2=市外"),
  130. * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是"),
  131. * @Apidoc\Returned("remark", type="string", desc="备注"),
  132. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  133. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  134. * )
  135. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  136. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  137. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  138. * @Apidoc\Returned("name", type="string", desc="姓名"),
  139. * )
  140. * @Apidoc\Returned("approve_info", type="object", desc="审批信息",
  141. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  142. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  143. * @Apidoc\Returned("status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批通过,4=审批拒绝"),
  144. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  145. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  146. * @Apidoc\Returned("approve_time", type="string", desc="审批时间"),
  147. * @Apidoc\Returned("remark", type="string", desc="审批备注"),
  148. * @Apidoc\Returned("time", type="string", desc="审批时长(上一次审批完成到本次审批的时间,单位秒)"),
  149. * @Apidoc\Returned("time_text", type="string", desc="审批时长文本"),
  150. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  151. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  152. * @Apidoc\Returned("name", type="string", desc="姓名"),
  153. * ),
  154. * )
  155. * @Apidoc\Returned("approve_copy", type="object", desc="抄送信息",
  156. * @Apidoc\Returned("id", type="integer", desc="抄送ID"),
  157. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  158. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  159. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  160. * @Apidoc\Returned("user", type="object", desc="抄送人信息",
  161. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  162. * @Apidoc\Returned("name", type="string", desc="姓名"),
  163. * ),
  164. * )
  165. * @Apidoc\Returned("department_data", type="array", desc="所在部门列表",
  166. * @Apidoc\Returned("dept_id", type="string", desc="部门ID"),
  167. * @Apidoc\Returned("name", type="string", desc="部门名称"),
  168. * )
  169. */
  170. public function get_detail()
  171. {
  172. $id = input('id');
  173. $info = ApproveInfoService::get_detail($id, $this->user, 'detail');
  174. $this->success('详情', $info);
  175. }
  176. /**
  177. * 信息
  178. *
  179. * @Apidoc\Desc("重新发起信息")
  180. * @Apidoc\Method("POST")
  181. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  182. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  183. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  184. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  185. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  186. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  187. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  188. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  189. * @Apidoc\Returned("module_info", type="object", desc="模块信息",
  190. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  191. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  192. * @Apidoc\Returned("create_at", type="string", desc="创建时间"),
  193. * @Apidoc\Returned("reason", type="string", desc="事由"),
  194. * @Apidoc\Returned("start_time", type="string", desc="开始时间"),
  195. * @Apidoc\Returned("end_time", type="string", desc="结束时间"),
  196. * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内,2=市外"),
  197. * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是"),
  198. * @Apidoc\Returned("remark", type="string", desc="备注"),
  199. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  200. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  201. * )
  202. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  203. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  204. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  205. * @Apidoc\Returned("is_who", type="integer", desc="是否外部人员:0=否,1=是"),
  206. * @Apidoc\Returned("user_id", type="string", desc="用户userid"),
  207. * @Apidoc\Returned("name", type="string", desc="姓名"),
  208. * @Apidoc\Returned("desc", type="string", desc="备注"),
  209. * )
  210. **/
  211. public function get_info()
  212. {
  213. $id = input('id');
  214. $info = ApproveInfoService::get_detail($id, $this->user, 'info');
  215. $this->success('信息', $info);
  216. }
  217. /**
  218. * 催办
  219. *
  220. * @Apidoc\Method("POST")
  221. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  222. */
  223. public function urging()
  224. {
  225. $id = input('id');
  226. Db::startTrans();
  227. try {
  228. ApproveInfoService::make($id, $this->user, 'urging');
  229. Db::commit();
  230. } catch (Exception $e) {
  231. Db::rollback();
  232. $this->error($e->getMessage());
  233. }
  234. $this->success('催办成功');
  235. }
  236. /**
  237. * 撤销
  238. *
  239. * @Apidoc\Method("POST")
  240. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  241. */
  242. public function cancel()
  243. {
  244. $id = input('id');
  245. Db::startTrans();
  246. try {
  247. ApproveInfoService::make($id, $this->user, 'cancel');
  248. Db::commit();
  249. } catch (Exception $e) {
  250. Db::rollback();
  251. $this->error($e->getMessage());
  252. }
  253. $this->success('撤销成功');
  254. }
  255. }