Approveinfo.php 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584
  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 hg\apidoc\annotation as Apidoc;
  7. /**
  8. * @Apidoc\Title("审批申请")
  9. * @Apidoc\Group("api")
  10. * @Apidoc\Sort("11")
  11. */
  12. class Approveinfo extends Base
  13. {
  14. public function initialize()
  15. {
  16. parent::initialize();
  17. parent::checkLogin();
  18. }
  19. /**
  20. * 提交
  21. *
  22. * @Apidoc\Desc("申请/重新发起/审批人修改")
  23. * @Apidoc\Method("POST")
  24. * @Apidoc\Param("way", type="string", require=true, desc="方式:create=申请,update=重新发起,edit=审批人修改")
  25. * @Apidoc\Param("id", type="integer", require=true, desc="ID way=cretae 不传值或传0,way=update 传值申请信息接口的id,way=edit 传值审批详情接口的approve_id")
  26. * @Apidoc\Param("module", type="integer", require=true, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  27. * @Apidoc\Param("apply_user_id", type="string", require=false, desc="申请人 module=5,module=6,module=7")
  28. * @Apidoc\Param("reason", type="string", require=false, desc="module=1申购事由,module=2申请标题,module=4物品用途,module=5出差事由,module=6请假原因,module=7出发地点,module=8维修地点,module=10文件名称,module=11文件名称")
  29. * @Apidoc\Param("type", type="integer", require=false, desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型 如果是重新发起和审批人修改 不能修改")
  30. * @Apidoc\Param("desc", type="string", require=false, desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  31. * @Apidoc\Param("start_time", type="string", require=false, desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  32. * @Apidoc\Param("end_time", type="string", require=false, desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  33. * @Apidoc\Param("document", type="array", require=false, desc="module=1,module=2,module=3,module=4,module=5,module=6,module=7,module=9,module=10,module=11 附件",
  34. * @Apidoc\Param("fullurl", type="string", require=true, desc="文件地址"),
  35. * @Apidoc\Param("name", type="string", require=true, desc="文件名称"),
  36. * @Apidoc\Param("size", type="string", require=true, desc="文件大小"),
  37. * )
  38. * @Apidoc\Param("images", type="string", require=false, desc="module=1,module=3,module=5,module=6,module=7,module=8 图片(多个用英文逗号隔开)")
  39. * @Apidoc\Param("remark", type="string", require=false, desc="module=2申请内容,module=3其它补充说明,module=4其它补充说明,module=5备注,module=6是否离深,module=9备注说明,module=10内容摘要,module=11上会情况")
  40. * @Apidoc\Param("total_amount", type="string", require=false, desc="module=1总金额")
  41. * @Apidoc\Param("pay_type", type="integer", require=false, desc="module=1支付方式")
  42. * @Apidoc\Param("word_size", type="integer", require=false, desc="module=2发文字号")
  43. * @Apidoc\Param("number", type="integer", require=false, desc="module=2印制份数,module=9印制份数")
  44. * @Apidoc\Param("apply_id", type="integer", require=false, desc="module=3采购审批单ID,module=9采购申请ID 没有传0")
  45. * @Apidoc\Param("is_who", type="integer", require=false, desc="module=5是否跨关内关外:0=否,1=是 type=1")
  46. * @Apidoc\Param("start_am", type="string", require=false, desc="module=6开始时间段(上午或下午)")
  47. * @Apidoc\Param("end_am", type="string", require=false, desc="module=6结束时间段(上午或下午)")
  48. * @Apidoc\Param("time", type="string", require=false, desc="module=6请假时长")
  49. * @Apidoc\Param("reach_address", type="string", require=false, desc="module=7到达地点")
  50. * @Apidoc\Param("end_address", type="string", require=false, desc="module=7返回地点")
  51. * @Apidoc\Param("scope", type="string", require=false, desc="module=9发放范围")
  52. * @Apidoc\Param("legal_opinion", type="string", require=false, desc="module=9法务意见")
  53. * @Apidoc\Param("founder", type="string", require=false, desc="module=10创建人")
  54. * @Apidoc\Param("serial_number", type="string", require=false, desc="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":"","degree":"","department":"","department_sign":"","approve_user":"165504226724607116","copy_user":"","apply_goods":[{"flag":"3","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"}]},{"flag":"3","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"}]},{"flag":"1","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":"","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. $document = $document ? json_encode($document,JSON_UNESCAPED_UNICODE) : '';
  125. $images = input('images') ?: '';
  126. $remark = input('remark') ?: '';
  127. $total_amount = input('total_amount') ?: 0;
  128. $pay_type = input('pay_type') ?: 0;
  129. $word_size = input('word_size') ?: 0;
  130. $apply_id = input('apply_id') ?: 0;
  131. $number = input('number') ?: 0;
  132. $is_who = input('is_who') ?: 0;
  133. $start_am = input('start_am') ?: '';
  134. $end_am = input('end_am') ?: '';
  135. $time = input('time') ?: 0;
  136. $reach_address = input('reach_address') ?: '';
  137. $end_address = input('end_address') ?: '';
  138. $scope = input('scope') ?: '';
  139. $legal_opinion = input('legal_opinion') ?: '';
  140. $founder = input('founder') ?: '';
  141. $serial_number = input('serial_number') ?: '';
  142. $degree = input('degree') ?: 0;
  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", "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, $way);
  155. $this->success('修改成功');
  156. } else {
  157. ApproveInfoService::create($id, $module, $params, $user, $way);
  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=采购审批单 默认list")
  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\Param("start_time", type="string", require=false, desc="申请开始时间")
  172. * @Apidoc\Param("end_time", type="string", require=false, desc="申请结束时间")
  173. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  174. * @Apidoc\Returned("module", type="integer", desc="模块类型")
  175. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  176. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  177. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  178. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  179. * @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文件名称")
  180. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  181. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  182. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  183. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  184. * @Apidoc\Returned("approve_one", type="object", desc="审批人信息 status=2,4",
  185. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  186. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  187. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  188. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  189. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  190. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  191. * ),
  192. * )
  193. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  194. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  195. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  196. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  197. * )
  198. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  199. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  200. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  201. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  202. * )
  203. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  204. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  205. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  206. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  207. * )
  208. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  209. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  210. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  211. * @Apidoc\Returned("name", type="string", desc="姓名"),
  212. * )
  213. */
  214. public function get_list()
  215. {
  216. $group = input('group') ?: 'list';
  217. $module = input('module') ?: 0;
  218. $status = input('status') ?: 0;
  219. $search = input('search') ?: '';
  220. $start_time = input('start_time') ?: '';
  221. $end_time = input('end_time') ?: '';
  222. $offset = $this->off_set;
  223. $length = $this->page_num;
  224. $user = $this->user;
  225. $list = ApproveInfoService::get_list($group, $module, $status, $search, $start_time, $end_time,$offset, $length, $user);
  226. $this->success($group == 'form' ? '采购审批单' : '我的申请记录', $list);
  227. }
  228. /**
  229. * 详情
  230. *
  231. * @Apidoc\Method("POST")
  232. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  233. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  234. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  235. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  236. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  237. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  238. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  239. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  240. * @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文件名称")
  241. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  242. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  243. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  244. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  245. * @Apidoc\Returned("module_info1", type="object", desc="申购申请",
  246. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  247. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  248. * @Apidoc\Returned("reason", type="string", desc="申购事由"),
  249. * @Apidoc\Returned("type", type="integer", desc="采购类型:1=货物采购,2=工程采购,3=服务采购"),
  250. * @Apidoc\Returned("total_amount", type="integer", desc="总金额"),
  251. * @Apidoc\Returned("start_time", type="string", desc="预计申购完成日期(日期)"),
  252. * @Apidoc\Returned("pay_type", type="integer", desc="支付方式:1=自行采购,2=学校采购"),
  253. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  254. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  255. * )
  256. * @Apidoc\Returned("module_info2", type="object", desc="呈批申请",
  257. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  258. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  259. * @Apidoc\Returned("type", type="integer", desc="呈批类型:1=采购类呈批,2=非采购类呈批"),
  260. * @Apidoc\Returned("word_size", type="integer", desc="发文字号"),
  261. * @Apidoc\Returned("desc", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  262. * @Apidoc\Returned("number", type="integer", desc="印制份数"),
  263. * @Apidoc\Returned("reason", type="string", desc="申请标题"),
  264. * @Apidoc\Returned("remark", type="string", desc="申请内容"),
  265. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  266. * )
  267. * @Apidoc\Returned("module_info3", type="object", desc="入库申请",
  268. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  269. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  270. * @Apidoc\Returned("total_amount", type="integer", desc="总金额"),
  271. * @Apidoc\Returned("remark", type="string", desc="申请内容"),
  272. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  273. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  274. * )
  275. * @Apidoc\Returned("module_info4", type="object", desc="领用申请",
  276. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  277. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  278. * @Apidoc\Returned("reason", type="string", desc="物品用途"),
  279. * @Apidoc\Returned("remark", type="string", desc="申请内容"),
  280. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  281. * )
  282. * @Apidoc\Returned("module_info5", type="object", desc="出差申请",
  283. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  284. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  285. * @Apidoc\Returned("reason", type="string", desc="事由"),
  286. * @Apidoc\Returned("start_time", type="string", desc="出差开始时间(年月日时分)"),
  287. * @Apidoc\Returned("end_time", type="string", desc="出差结束时间(年月日时分)"),
  288. * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内出差,2=市外出差,3=市内出差(需要报销)"),
  289. * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是"),
  290. * @Apidoc\Returned("remark", type="string", desc="备注"),
  291. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  292. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  293. * )
  294. * @Apidoc\Returned("module_info6", type="object", desc="请假申请",
  295. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  296. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  297. * @Apidoc\Returned("type", type="integer", desc="请假类型:1=事假,2=病假,3=产假,4=婚假,5=陪产假,6=丧假,7=离深报批报备"),
  298. * @Apidoc\Returned("start_time", type="string", desc="请假开始时间(日期)"),
  299. * @Apidoc\Returned("end_time", type="string", desc="请假结束时间(日期)"),
  300. * @Apidoc\Returned("start_am", type="string", desc="开始时间段(上午或下午)"),
  301. * @Apidoc\Returned("end_am", type="string", desc="结束时间段(上午或下午)"),
  302. * @Apidoc\Returned("time", type="integer", desc="请假时长(天数)"),
  303. * @Apidoc\Returned("reason", type="string", desc="请假原因"),
  304. * @Apidoc\Returned("remark", type="string", desc="是否离深"),
  305. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  306. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  307. * )
  308. * @Apidoc\Returned("module_info7", type="object", desc="用车申请",
  309. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  310. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  311. * @Apidoc\Returned("reason", type="string", desc="出发地点"),
  312. * @Apidoc\Returned("start_time", type="string", desc="出发时间(年月日时分)"),
  313. * @Apidoc\Returned("reach_address", type="string", desc="到达地点"),
  314. * @Apidoc\Returned("end_time", type="string", desc="返回时间(年月日时分)"),
  315. * @Apidoc\Returned("end_address", type="string", desc="返回地点"),
  316. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  317. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  318. * )
  319. * @Apidoc\Returned("module_info8", type="object", desc="维修申请",
  320. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  321. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  322. * @Apidoc\Returned("type", type="integer", desc="维修类型:1=物业维修,2=电教网络维修"),
  323. * @Apidoc\Returned("reason", type="string", desc="维修地点"),
  324. * @Apidoc\Returned("desc", type="string", desc="具体内容"),
  325. * @Apidoc\Returned("maintain_user_id", type="integer", desc="维修人员ID"),
  326. * @Apidoc\Returned("feedback_status", type="integer", desc="反馈状态:0=未反馈,1=已反馈"),
  327. * @Apidoc\Returned("feedback", type="string", desc="反馈结果"),
  328. * @Apidoc\Returned("comment_status", type="integer", desc="评价状态:0=未评价,1=已评价"),
  329. * @Apidoc\Returned("comment_score", type="integer", desc="满意程度"),
  330. * @Apidoc\Returned("comment", type="string", desc="评价内容"),
  331. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  332. * @Apidoc\Returned("feedback_images_text", type="array", desc="反馈图片列表"),
  333. * )
  334. * @Apidoc\Returned("module_info9", type="object", desc="合同呈批",
  335. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  336. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  337. * @Apidoc\Returned("type", type="integer", desc="合同类型:1=采购类01,2=收款类02,3=非经济类03"),
  338. * @Apidoc\Returned("reason", type="string", desc="合同编号"),
  339. * @Apidoc\Returned("desc", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  340. * @Apidoc\Returned("number", type="integer", desc="印制份数"),
  341. * @Apidoc\Returned("scope", type="string", desc="发放范围"),
  342. * @Apidoc\Returned("legal_opinion", type="string", desc="法务意见"),
  343. * @Apidoc\Returned("remark", type="string", desc="备注说明"),
  344. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  345. * )
  346. * @Apidoc\Returned("module_info10", type="object", desc="收文批阅",
  347. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  348. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  349. * @Apidoc\Returned("founder", type="string", desc="创建人"),
  350. * @Apidoc\Returned("desc", type="string", desc="来文单位名称"),
  351. * @Apidoc\Returned("serial_number", type="string", desc="收文序号"),
  352. * @Apidoc\Returned("reason", type="string", desc="文件名称"),
  353. * @Apidoc\Returned("start_time", type="string", desc="收文日期(日期)"),
  354. * @Apidoc\Returned("remark", type="string", desc="内容摘要"),
  355. * @Apidoc\Returned("degree", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  356. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  357. * )
  358. * @Apidoc\Returned("module_info11", type="object", desc="学校文件",
  359. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  360. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  361. * @Apidoc\Returned("department", type="string", desc="拟稿部门"),
  362. * @Apidoc\Returned("reason", type="string", desc="文件名称"),
  363. * @Apidoc\Returned("department_sign", type="string", desc="落款"),
  364. * @Apidoc\Returned("remark", type="string", desc="上会情况"),
  365. * @Apidoc\Returned("desc", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  366. * @Apidoc\Returned("start_time", type="string", desc="拟发文时间(日期)"),
  367. * @Apidoc\Returned("serial_number", type="string", desc="文件号"),
  368. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  369. * )
  370. * @Apidoc\Returned("approve", type="array", desc="审批信息",
  371. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  372. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  373. * @Apidoc\Returned("status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批通过,4=审批拒绝"),
  374. * @Apidoc\Returned("group", type="integer", desc="类别:0=审批人,1=发起人"),
  375. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  376. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  377. * @Apidoc\Returned("approve_time", type="string", desc="审批时间"),
  378. * @Apidoc\Returned("remark", type="string", desc="审批备注"),
  379. * @Apidoc\Returned("time", type="string", desc="审批时长(上一次审批完成到本次审批的时间,单位秒)"),
  380. * @Apidoc\Returned("time_text", type="string", desc="审批时长文本"),
  381. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  382. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  383. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  384. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  385. * ),
  386. * )
  387. * @Apidoc\Returned("approve_copy", type="array", desc="抄送信息",
  388. * @Apidoc\Returned("id", type="integer", desc="抄送ID"),
  389. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  390. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  391. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  392. * @Apidoc\Returned("user", type="object", desc="抄送人信息",
  393. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  394. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  395. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  396. * ),
  397. * )
  398. * @Apidoc\Returned("department_data", type="array", desc="申请人所在部门列表",
  399. * @Apidoc\Returned("dept_id", type="string", desc="部门ID"),
  400. * @Apidoc\Returned("name", type="string", desc="部门名称"),
  401. * )
  402. * @Apidoc\Returned("create_user", type="object", desc="提交人信息",
  403. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  404. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  405. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  406. * )
  407. * @Apidoc\Returned("apply_user", type="object", desc="申请人信息",
  408. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  409. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  410. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  411. * )
  412. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  413. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  414. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  415. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  416. * @Apidoc\Returned("total_amount", type="string", desc="总金额"),
  417. * )
  418. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  419. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  420. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  421. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  422. * )
  423. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  424. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  425. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  426. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  427. * )
  428. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  429. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  430. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  431. * @Apidoc\Returned("name", type="string", desc="姓名"),
  432. * )
  433. * @Apidoc\Returned("contract", type="array", desc="关联的合同呈批申请 module=1",
  434. * @Apidoc\Returned("id", type="integer", desc="ID"),
  435. * @Apidoc\Returned("reason", type="string", desc="合同编号"),
  436. * )
  437. * @Apidoc\Returned("apply", type="array", desc="关联的申购申请单 module=3,9 && apply_id > 0",
  438. * @Apidoc\Returned("id", type="integer", desc="ID"),
  439. * @Apidoc\Returned("order_no", type="string", desc="审批编号"),
  440. * )
  441. */
  442. public function get_detail()
  443. {
  444. $id = input('id') ?: 0;
  445. $user = $this->user;
  446. $data = ApproveInfoService::get_detail($id, $user, CommonConstant::IS_WHO_1, 'detail');
  447. $this->success('详情', $data);
  448. }
  449. /**
  450. * 信息
  451. *
  452. * @Apidoc\Desc("重新发起信息")
  453. * @Apidoc\Method("POST")
  454. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  455. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  456. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  457. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  458. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  459. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  460. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  461. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  462. * @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文件名称")
  463. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  464. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  465. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  466. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  467. * @Apidoc\Returned("create_user", type="object", desc="提交人信息",
  468. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  469. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  470. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  471. * )
  472. * @Apidoc\Returned("apply_user", type="object", desc="申请人信息",
  473. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  474. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  475. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  476. * )
  477. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  478. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  479. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  480. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  481. * @Apidoc\Returned("total_amount", type="string", desc="总金额"),
  482. * )
  483. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  484. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  485. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  486. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  487. * )
  488. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  489. * @Apidoc\Returned("id", type="integer", desc="领用商品ID"),
  490. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  491. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  492. * )
  493. * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
  494. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  495. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  496. * @Apidoc\Returned("is_who", type="integer", desc="是否外部人员:0=否,1=是"),
  497. * @Apidoc\Returned("user_id", type="string", desc="用户userid"),
  498. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  499. * @Apidoc\Returned("desc", type="string", desc="备注"),
  500. * )
  501. * @Apidoc\Returned("apply", type="array", desc="关联的申购申请单 module=3,9 && apply_id > 0",
  502. * @Apidoc\Returned("id", type="integer", desc="ID"),
  503. * @Apidoc\Returned("order_no", type="string", desc="审批编号"),
  504. * )
  505. **/
  506. public function get_info()
  507. {
  508. $id = input('id') ?: 0;
  509. $user = $this->user;
  510. $data = ApproveInfoService::get_detail($id, $user, CommonConstant::IS_WHO_1, 'info');
  511. $this->success('信息', $data);
  512. }
  513. /**
  514. * 催办
  515. *
  516. * @Apidoc\Method("POST")
  517. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  518. */
  519. public function urging()
  520. {
  521. $id = input('id') ?: 0;
  522. $user = $this->user;
  523. ApproveInfoService::make($id, [], $user, 'urging');
  524. $this->success('催办成功');
  525. }
  526. /**
  527. * 撤销
  528. *
  529. * @Apidoc\Method("POST")
  530. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  531. */
  532. public function cancel()
  533. {
  534. $id = input('id') ?: 0;
  535. $user = $this->user;
  536. ApproveInfoService::make($id, [], $user, 'cancel');
  537. $this->success('撤销成功');
  538. }
  539. /**
  540. * 评分
  541. *
  542. * @Apidoc\Desc("维修模块")
  543. * @Apidoc\Method("POST")
  544. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  545. * @Apidoc\Param("comment_score", type="sting",require=true, desc="满意程度 评分1-5")
  546. * @Apidoc\Param("comment", type="sting",require=false, desc="评价内容")
  547. **/
  548. public function comment()
  549. {
  550. $id = input('id') ?: 0;
  551. $comment_score = input('comment_score') ?: 0;
  552. $comment = input('comment') ?: '';
  553. $params = compact("comment_score", "comment");
  554. $user = $this->user;
  555. ApproveInfoService::make($id, $params, $user, 'comment');
  556. $this->success('评价成功');
  557. }
  558. /**
  559. * 下载文件pdf
  560. *
  561. * @Apidoc\Method("POST")
  562. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  563. * @Apidoc\Returned("url", type="string", desc="/upload/pdf/20240113/20240113202401131733211705138401.pdf")
  564. * @Apidoc\Returned("fullurl", type="string", desc="http://www.dingding.com/upload/pdf/20240113/20240113202401131733211705138401.pdf")
  565. **/
  566. public function download(){
  567. $id = input('id') ?: 0;
  568. $data = ApproveInfoService::download($id);
  569. $this->success('success',$data);
  570. }
  571. }