Approveinfo.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\constant\CommonConstant;
  4. use app\common\service\ApproveService;
  5. use app\common\service\ApproveInfoService;
  6. use app\common\service\UserService;
  7. use hg\apidoc\annotation as Apidoc;
  8. use think\Db;
  9. use think\Exception;
  10. /**
  11. * @Apidoc\Title("审批申请")
  12. * @Apidoc\Group("api")
  13. * @Apidoc\Sort("11")
  14. */
  15. class Approveinfo extends Base
  16. {
  17. public function initialize()
  18. {
  19. parent::initialize();
  20. parent::checkLogin();
  21. }
  22. /**
  23. * 提交
  24. *
  25. * @Apidoc\Desc("申请/重新发起/审批人修改")
  26. * @Apidoc\Method("POST")
  27. * @Apidoc\Param("way", type="string", require=true, desc="方式:create=申请,update=重新发起,edit=审批人修改")
  28. * @Apidoc\Param("id", type="integer", require=true, desc="ID way=cretae 不传值或传0,way=update 传值申请信息接口的id,way=edit 传值审批详情接口的approve_id")
  29. * @Apidoc\Param("module", type="integer", require=true, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  30. * @Apidoc\Param("apply_user_id", type="string", require=false, desc="申请人 module=5,module=6,module=7")
  31. * @Apidoc\Param("reason", type="string", require=false, desc="module=1申购事由,module=2申请标题,module=4物品用途,module=5出差事由,module=6请假原因,module=7出发地点,module=8维修地点,module=9合同编号,module=10文件名称,module=11文件名称")
  32. * @Apidoc\Param("type", type="integer", require=false, desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  33. * @Apidoc\Param("desc", type="string", require=false, desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  34. * @Apidoc\Param("start_time", type="string", require=false, desc="module=5出差开始时间,module=7出发时间")
  35. * @Apidoc\Param("end_time", type="string", require=false, desc="module=5出差结束时间,module=7返回时间")
  36. * @Apidoc\Param("document", type="string", require=false, desc="module=1,module=2,module=3,module=4,module=5,module=6,module=7,module=9,module=10,module=11 附件(多个用英文逗号隔开)")
  37. * @Apidoc\Param("images", type="string", require=false, desc="module=1,module=3,module=5,module=6,module=7,module=8 图片(多个用英文逗号隔开)")
  38. * @Apidoc\Param("remark", type="string", require=false, desc="module=2申请内容,module=3其它补充说明,module=4其它补充说明,module=5备注,module=6是否离深,module=9备注说明,module=10内容摘要,module=11上会情况")
  39. * @Apidoc\Param("total_amount", type="string", require=false, desc="module=1总金额")
  40. * @Apidoc\Param("pay_type", type="integer", require=false, desc="module=1支付方式")
  41. * @Apidoc\Param("word_size", type="integer", require=false, desc="module=2发文字号")
  42. * @Apidoc\Param("number", type="integer", require=false, desc="module=2印制份数,module=9印制份数")
  43. * @Apidoc\Param("apply_id", type="integer", require=false, desc="module=3采购审批单ID 没有传0")
  44. * @Apidoc\Param("is_who", type="integer", require=false, desc="module=5是否跨关内关外:0=否,1=是 type=1")
  45. * @Apidoc\Param("start_am", type="string", require=false, desc="module=6开始时间段(上午或下午)")
  46. * @Apidoc\Param("end_am", type="string", require=false, desc="module=6结束时间段(上午或下午)")
  47. * @Apidoc\Param("time", type="string", require=false, desc="module=6请假时长")
  48. * @Apidoc\Param("reach_address", type="string", require=false, desc="module=7到达地点")
  49. * @Apidoc\Param("end_address", type="string", require=false, desc="module=7返回地点")
  50. * @Apidoc\Param("scope", type="string", require=false, desc="module=9发放范围")
  51. * @Apidoc\Param("legal_opinion", type="string", require=false, desc="module=9法务意见")
  52. * @Apidoc\Param("founder", type="string", require=false, desc="module=10创建人")
  53. * @Apidoc\Param("serial_number", type="string", require=false, desc="module=10收文序号,module=11文件号")
  54. * @Apidoc\Param("apply_date", type="string", require=false, desc="module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  55. * @Apidoc\Param("degree", type="string", require=false, desc="module=10缓急程度")
  56. * @Apidoc\Param("department", type="string", require=false, desc="module=11拟稿部门")
  57. * @Apidoc\Param("department_sign", type="string", require=false, desc="module=11落款")
  58. * @Apidoc\Param("approve_user", type="string", require=true, desc="审批人id(多个用英文逗号隔开)")
  59. * @Apidoc\Param("copy_user", type="string", require=false, desc="抄送人id(多个用英文逗号隔开)")
  60. * @Apidoc\Param("apply_goods", type="array", require=false, desc="module=1 && type=1 必传申购物品数据",
  61. * @Apidoc\Param("flag", type="integer", require=true, desc="标识:1=添加新商品,2=批量导入,3=商品库选择"),
  62. * @Apidoc\Param("goods_id", type="integer", require=false, desc="商品ID flag=3传值"),
  63. * @Apidoc\Param("goods_category_first", type="integer", require=false, desc="商品分类一级ID"),
  64. * @Apidoc\Param("goods_category_id", type="integer", require=false, desc="商品分类ID"),
  65. * @Apidoc\Param("goods_no", type="string", require=false, desc="商品编号"),
  66. * @Apidoc\Param("goods_name", type="string", require=true, desc="商品名称"),
  67. * @Apidoc\Param("goods_brand", type="string", require=false, desc="商品品牌"),
  68. * @Apidoc\Param("goods_stock", type="array", require=true, desc="规格列表",
  69. * @Apidoc\Param("id", type="integer", require=false,desc="规格ID flag=3传值"),
  70. * @Apidoc\Param("name", type="string", require=true,desc="规格名称"),
  71. * @Apidoc\Param("price", type="integer", require=true,desc="单价"),
  72. * @Apidoc\Param("stock", type="integer", require=true,desc="数量"),
  73. * ),
  74. * )
  75. * @Apidoc\Param("stock_goods", type="array", require=false, desc="module=3 必传入库物品数据",
  76. * @Apidoc\Param("flag", type="integer", require=true, desc="标识:1=添加新商品,2=批量导入,3=商品库选择"),
  77. * @Apidoc\Param("goods_id", type="integer", require=false, desc="商品ID flag=3传值"),
  78. * @Apidoc\Param("goods_category_first", type="integer", require=false, desc="商品分类一级ID"),
  79. * @Apidoc\Param("goods_category_id", type="integer", require=false, desc="商品分类ID"),
  80. * @Apidoc\Param("goods_no", type="string", require=false, desc="商品编号"),
  81. * @Apidoc\Param("goods_name", type="string", require=true, desc="商品名称"),
  82. * @Apidoc\Param("goods_brand", type="string", require=false, desc="商品品牌"),
  83. * @Apidoc\Param("goods_stock", type="array", require=true, desc="规格列表",
  84. * @Apidoc\Param("id", type="integer", require=false,desc="规格ID flag=3传值"),
  85. * @Apidoc\Param("name", type="string", require=true,desc="规格名称"),
  86. * @Apidoc\Param("price", type="integer", require=true,desc="单价"),
  87. * @Apidoc\Param("stock", type="integer", require=true,desc="数量"),
  88. * ),
  89. * )
  90. * @Apidoc\Param("use_goods", type="array", require=false, desc="module=4 必传领用物品数据",
  91. * @Apidoc\Param("flag", type="integer", require=true, desc="标识:2=批量导入,3=商品库选择"),
  92. * @Apidoc\Param("goods_id", type="integer", require=false, desc="商品ID flag=3传值"),
  93. * @Apidoc\Param("goods_category_first", type="integer", require=false, desc="商品分类一级ID"),
  94. * @Apidoc\Param("goods_category_id", type="integer", require=false, desc="商品分类ID"),
  95. * @Apidoc\Param("goods_no", type="string", require=false, desc="商品编号"),
  96. * @Apidoc\Param("goods_name", type="string", require=true, desc="商品名称"),
  97. * @Apidoc\Param("goods_stock", type="array", require=true, desc="规格列表",
  98. * @Apidoc\Param("id", type="integer", require=false,desc="规格ID flag=3传值"),
  99. * @Apidoc\Param("name", type="string", require=true,desc="规格名称"),
  100. * @Apidoc\Param("stock", type="integer", require=true,desc="数量"),
  101. * ),
  102. * )
  103. * @Apidoc\Param("peer_user", type="array", require=false, desc="module=5 传同行员工数据",
  104. * @Apidoc\Param("is_who", type="integer", require=true, desc="是否外部人员:0=否,1=是"),
  105. * @Apidoc\Param("user_id", type="string", require=false, desc="用户userid"),
  106. * @Apidoc\Param("name", type="string", require=true, desc="姓名"),
  107. * @Apidoc\Param("desc", type="string", require=false, desc="备注"),
  108. * )
  109. */
  110. public function create()
  111. {
  112. // {"way":"create","id":"","module":"1","apply_user_id":"","reason":"测试","type":"1","desc":"","start_time":"","end_time":"","document":"","images":"","remark":"","total_amount":"1000","pay_type":"1","word_size":"","apply_id":"0","number":"","is_who":"","start_am":"","end_am":"","time":"","reach_address":"","end_address":"","scope":"","legal_opinion":"","founder":"","serial_number":"","apply_date":"","degree":"","department":"","department_sign":"","approve_user":"1925696723824730358","copy_user":"","apply_goods":[{"goods_id":"1","goods_category_first":"1","goods_category_id":"3","goods_no":"100001","goods_name":"医疗口罩一次性","goods_brand":"一次性口罩","goods_stock":[{"id":"1","name":"均码,白色","price":"1","stock":"110"},{"id":"2","name":"均码,蓝色","price":"1","stock":"100"},{"id":"19","name":"均码,红色","price":"1","stock":"120"}]},{"goods_id":"2","goods_category_first":"1","goods_category_id":"3","goods_no":"100002","goods_name":"84消毒液","goods_brand":"安其生","goods_stock":[{"id":"3","name":"380ml,低浓度","price":"1","stock":"110"},{"id":"4","name":"380ml,高浓度","price":"1","stock":"100"}]},{"goods_id":"","goods_category_first":"1","goods_category_id":"3","goods_no":"100003","goods_name":"一次性手套丁腈橡胶","goods_brand":"万力","goods_stock":[{"name":"白色","price":"0.2","stock":"110"},{"name":"蓝色","price":"0.2","stock":"100"}]}],"peer_user":[{"is_who":"","user_id":"","name":"","desc":""}]}
  113. // {"way":"create","id":"","module":"3","apply_user_id":"","reason":"测试","type":"","desc":"","start_time":"","end_time":"","document":"","images":"","remark":"入库备注","total_amount":"","pay_type":"","word_size":"","apply_id":"0","number":"","is_who":"","start_am":"","end_am":"","time":"","reach_address":"","end_address":"","scope":"","legal_opinion":"","founder":"","serial_number":"","apply_date":"","degree":"","department":"","department_sign":"","approve_user":"1925696723824730358","copy_user":"","stock_goods":[{"goods_id":"1","goods_category_first":"1","goods_category_id":"3","goods_no":"100001","goods_name":"医疗口罩一次性","goods_brand":"一次性口罩","goods_stock":[{"id":"1","name":"均码,白色","price":"1","stock":"110"},{"id":"2","name":"均码,蓝色","price":"1","stock":"100"},{"id":"19","name":"均码,红色","price":"1","stock":"120"}]},{"goods_id":"2","goods_category_first":"1","goods_category_id":"3","goods_no":"100002","goods_name":"84消毒液","goods_brand":"安其生","goods_stock":[{"id":"3","name":"380ml,低浓度","price":"1","stock":"110"},{"id":"4","name":"380ml,高浓度","price":"1","stock":"100"}]},{"goods_id":"","goods_category_first":"1","goods_category_id":"3","goods_no":"100003","goods_name":"一次性手套丁腈橡胶","goods_brand":"万力","goods_stock":[{"name":"白色","price":"0.2","stock":"110"},{"name":"蓝色","price":"0.2","stock":"100"}]}],"peer_user":[{"is_who":"","user_id":"","name":"","desc":""}]}
  114. $way = input('way') ?: '';
  115. $id = input('id') ?: 0;
  116. $module = input('module') ?: 0;
  117. $apply_user_id = input('apply_user_id')?: '';
  118. $reason = input('reason') ?: '';
  119. $type = input('type') ?: 0;
  120. $desc = input('desc') ?: '';
  121. $start_time = input('start_time');
  122. $end_time = input('end_time');
  123. $document = input('document')?: '';
  124. $images = input('images')?: '';
  125. $remark = input('remark')?: '';
  126. $total_amount = input('total_amount')?: 0;
  127. $pay_type = input('pay_type')?: 0;
  128. $word_size = input('word_size');
  129. $apply_id = input('apply_id')?: 0;
  130. $number = input('number')?: 0;
  131. $is_who = input('is_who')?: 0;
  132. $start_am = input('start_am');
  133. $end_am = input('end_am');
  134. $time = input('time');
  135. $reach_address = input('reach_address');
  136. $end_address = input('end_address');
  137. $scope = input('scope');
  138. $legal_opinion = input('legal_opinion');
  139. $founder = input('founder');
  140. $serial_number = input('serial_number');
  141. $apply_date = input('apply_date');
  142. $degree = input('degree');
  143. $department = input('department');
  144. $department_sign = input('department_sign');
  145. $approve_user = input('approve_user');
  146. $copy_user = input('copy_user');
  147. $apply_goods = input('apply_goods');
  148. $stock_goods = input('stock_goods');
  149. $use_goods = input('use_goods');
  150. $peer_user = input('peer_user');
  151. $params = compact("way", "id", "module", "apply_user_id", "reason", "type", "desc", "start_time", "end_time", "document", "images", "remark", "total_amount", "pay_type", "word_size", "apply_id", "number", "is_who", "start_am", "end_am", "time", "reach_address", "end_address", "scope", "legal_opinion", "founder", "serial_number", "apply_date", "degree", "department", "department_sign", "approve_user", "copy_user", "apply_goods", "stock_goods", "use_goods", "peer_user");
  152. $user = $this->user;
  153. if ($way == CommonConstant::edit) {
  154. ApproveService::make($id, $params, $user, CommonConstant::edit);
  155. $this->success('修改成功');
  156. } else {
  157. ApproveInfoService::create($id, $module, $params, $user);
  158. $this->success('申请已提交,请等待审批');
  159. }
  160. }
  161. /**
  162. * 列表
  163. *
  164. * @Apidoc\Method("POST")
  165. * @Apidoc\Param("page", type="integer",require=true, desc="页数")
  166. * @Apidoc\Param("page_num", type="integer", require=true, desc="每页数量")
  167. * @Apidoc\Param("group", type="integer", require=true, desc="类别:list=我的申请记录,form=采购审批单")
  168. * @Apidoc\Param("module", type="integer", require=false, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  169. * @Apidoc\Param("status", type="integer", require=false, desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  170. * @Apidoc\Param("search", type="string", require=false, desc="搜索 事由 编号")
  171. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  172. * @Apidoc\Returned("module", type="integer", desc="模块类型")
  173. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  174. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  175. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  176. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  177. * @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文件名称")
  178. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  179. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  180. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=7出发时间")
  181. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=7返回时间")
  182. * @Apidoc\Returned("approve_one", type="object", desc="审批人信息 status=2,4",
  183. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  184. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  185. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  186. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  187. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  188. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  189. * ),
  190. * )
  191. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  192. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  193. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  194. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  195. * )
  196. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  197. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  198. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  199. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  200. * )
  201. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  202. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  203. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  204. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  205. * )
  206. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  207. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  208. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  209. * @Apidoc\Returned("name", type="string", desc="姓名"),
  210. * )
  211. */
  212. public function get_list()
  213. {
  214. $group = input('group') ?: 'list';
  215. $module = input('module') ?: 0;
  216. $status = input('status') ?: 0;
  217. $search = input('search') ?: '';
  218. $offset = $this->off_set;
  219. $length = $this->page_num;
  220. $user = $this->user;
  221. $list = ApproveInfoService::get_list($group, $module, $status, $search, $offset, $length, $user);
  222. $this->success($group == 'form' ? '采购审批单' : '我的申请记录', $list);
  223. }
  224. /**
  225. * 详情
  226. *
  227. * @Apidoc\Method("POST")
  228. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  229. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  230. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  231. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  232. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  233. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  234. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  235. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  236. * @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文件名称")
  237. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  238. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  239. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=7出发时间")
  240. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=7返回时间")
  241. * @Apidoc\Returned("module_info", type="object", desc="模块信息",
  242. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  243. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  244. * @Apidoc\Returned("create_at", type="string", desc="创建时间"),
  245. * @Apidoc\Returned("reason", type="string", desc="事由"),
  246. * @Apidoc\Returned("start_time", type="string", desc="开始时间"),
  247. * @Apidoc\Returned("end_time", type="string", desc="结束时间"),
  248. * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内,2=市外"),
  249. * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是"),
  250. * @Apidoc\Returned("remark", type="string", desc="备注"),
  251. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  252. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  253. * )
  254. * @Apidoc\Returned("approve", type="array", desc="审批信息",
  255. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  256. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  257. * @Apidoc\Returned("status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批通过,4=审批拒绝"),
  258. * @Apidoc\Returned("group", type="integer", desc="类别:0=审批人,1=发起人"),
  259. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  260. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  261. *
  262. * @Apidoc\Returned("approve_time", type="string", desc="审批时间"),
  263. * @Apidoc\Returned("remark", type="string", desc="审批备注"),
  264. * @Apidoc\Returned("time", type="string", desc="审批时长(上一次审批完成到本次审批的时间,单位秒)"),
  265. * @Apidoc\Returned("time_text", type="string", desc="审批时长文本"),
  266. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  267. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  268. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  269. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  270. * ),
  271. * )
  272. * @Apidoc\Returned("approve_copy", type="array", desc="抄送信息",
  273. * @Apidoc\Returned("id", type="integer", desc="抄送ID"),
  274. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  275. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  276. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  277. * @Apidoc\Returned("user", type="object", desc="抄送人信息",
  278. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  279. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  280. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  281. * ),
  282. * )
  283. * @Apidoc\Returned("create_user", type="object", desc="提交人信息",
  284. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  285. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  286. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  287. * @Apidoc\Returned("approve_time", type="string", desc="日期"),
  288. * )
  289. * @Apidoc\Returned("apply_user", type="object", desc="申请人信息",
  290. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  291. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  292. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  293. * )
  294. * @Apidoc\Returned("department_data", type="array", desc="所在部门列表",
  295. * @Apidoc\Returned("dept_id", type="string", desc="部门ID"),
  296. * @Apidoc\Returned("name", type="string", desc="部门名称"),
  297. * )
  298. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  299. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  300. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  301. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  302. * @Apidoc\Returned("total_amount", type="string", desc="总金额"),
  303. * )
  304. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  305. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  306. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  307. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  308. * )
  309. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  310. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  311. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  312. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  313. * )
  314. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  315. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  316. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  317. * @Apidoc\Returned("name", type="string", desc="姓名"),
  318. * )
  319. */
  320. public function get_detail()
  321. {
  322. $id = input('id') ?: 0;
  323. $user = $this->user;
  324. $info = ApproveInfoService::get_detail($id, $user, CommonConstant::IS_WHO_1, 'detail');
  325. $this->success('详情', $info);
  326. }
  327. /**
  328. * 信息
  329. *
  330. * @Apidoc\Desc("重新发起信息")
  331. * @Apidoc\Method("POST")
  332. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  333. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  334. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  335. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  336. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  337. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  338. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  339. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  340. * @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文件名称")
  341. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  342. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  343. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=7出发时间")
  344. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=7返回时间")
  345. * @Apidoc\Returned("module_info", type="object", desc="模块信息",
  346. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  347. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  348. * @Apidoc\Returned("create_at", type="string", desc="创建时间"),
  349. * @Apidoc\Returned("reason", type="string", desc="事由"),
  350. * @Apidoc\Returned("start_time", type="string", desc="开始时间"),
  351. * @Apidoc\Returned("end_time", type="string", desc="结束时间"),
  352. * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内,2=市外"),
  353. * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是"),
  354. * @Apidoc\Returned("remark", type="string", desc="备注"),
  355. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  356. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  357. * )
  358. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  359. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  360. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  361. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  362. * @Apidoc\Returned("total_amount", type="string", desc="总金额"),
  363. * )
  364. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  365. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  366. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  367. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  368. * )
  369. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  370. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  371. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  372. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  373. * )
  374. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  375. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  376. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  377. * @Apidoc\Returned("is_who", type="integer", desc="是否外部人员:0=否,1=是"),
  378. * @Apidoc\Returned("user_id", type="string", desc="用户userid"),
  379. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  380. * @Apidoc\Returned("desc", type="string", desc="备注"),
  381. * )
  382. **/
  383. public function get_info()
  384. {
  385. $id = input('id') ?: 0;
  386. $user = $this->user;
  387. $info = ApproveInfoService::get_detail($id, $user, CommonConstant::IS_WHO_1, 'info');
  388. $this->success('信息', $info);
  389. }
  390. /**
  391. * 催办
  392. *
  393. * @Apidoc\Method("POST")
  394. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  395. */
  396. public function urging()
  397. {
  398. $id = input('id') ?: 0;
  399. $user = $this->user;
  400. Db::startTrans();
  401. try {
  402. ApproveInfoService::make($id, $user, 'urging');
  403. Db::commit();
  404. } catch (Exception $e) {
  405. Db::rollback();
  406. $this->error($e->getMessage());
  407. }
  408. $this->success('催办成功');
  409. }
  410. /**
  411. * 撤销
  412. *
  413. * @Apidoc\Method("POST")
  414. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  415. */
  416. public function cancel()
  417. {
  418. $id = input('id') ?: 0;
  419. $user = $this->user;
  420. Db::startTrans();
  421. try {
  422. ApproveInfoService::make($id, $user, 'cancel');
  423. Db::commit();
  424. } catch (Exception $e) {
  425. Db::rollback();
  426. $this->error($e->getMessage());
  427. }
  428. $this->success('撤销成功');
  429. }
  430. }