Approveinfo.php 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  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="string", 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("images", type="string", require=false, desc="module=1,module=3,module=5,module=6,module=7,module=8 图片(多个用英文逗号隔开)")
  35. * @Apidoc\Param("remark", type="string", require=false, desc="module=2申请内容,module=3其它补充说明,module=4其它补充说明,module=5备注,module=6是否离深,module=9备注说明,module=10内容摘要,module=11上会情况")
  36. * @Apidoc\Param("total_amount", type="string", require=false, desc="module=1总金额")
  37. * @Apidoc\Param("pay_type", type="integer", require=false, desc="module=1支付方式")
  38. * @Apidoc\Param("word_size", type="integer", require=false, desc="module=2发文字号")
  39. * @Apidoc\Param("number", type="integer", require=false, desc="module=2印制份数,module=9印制份数")
  40. * @Apidoc\Param("apply_id", type="integer", require=false, desc="module=3采购审批单ID,module=9采购申请ID 没有传0")
  41. * @Apidoc\Param("is_who", type="integer", require=false, desc="module=5是否跨关内关外:0=否,1=是 type=1")
  42. * @Apidoc\Param("start_am", type="string", require=false, desc="module=6开始时间段(上午或下午)")
  43. * @Apidoc\Param("end_am", type="string", require=false, desc="module=6结束时间段(上午或下午)")
  44. * @Apidoc\Param("time", type="string", require=false, desc="module=6请假时长")
  45. * @Apidoc\Param("reach_address", type="string", require=false, desc="module=7到达地点")
  46. * @Apidoc\Param("end_address", type="string", require=false, desc="module=7返回地点")
  47. * @Apidoc\Param("scope", type="string", require=false, desc="module=9发放范围")
  48. * @Apidoc\Param("legal_opinion", type="string", require=false, desc="module=9法务意见")
  49. * @Apidoc\Param("founder", type="string", require=false, desc="module=10创建人")
  50. * @Apidoc\Param("serial_number", type="string", require=false, desc="module=10收文序号,module=11文件号")
  51. * @Apidoc\Param("degree", type="string", require=false, desc="module=10缓急程度")
  52. * @Apidoc\Param("department", type="string", require=false, desc="module=11拟稿部门")
  53. * @Apidoc\Param("department_sign", type="string", require=false, desc="module=11落款")
  54. * @Apidoc\Param("approve_user", type="string", require=true, desc="审批人id(多个用英文逗号隔开)")
  55. * @Apidoc\Param("copy_user", type="string", require=false, desc="抄送人id(多个用英文逗号隔开)")
  56. * @Apidoc\Param("apply_goods", type="array", require=false, desc="module=1 && type=1 必传申购物品数据",
  57. * @Apidoc\Param("flag", type="integer", require=true, desc="标识:1=添加新商品,2=批量导入,3=商品库选择"),
  58. * @Apidoc\Param("goods_id", type="integer", require=false, desc="商品ID flag=3传值"),
  59. * @Apidoc\Param("goods_category_first", type="integer", require=false, desc="商品分类一级ID"),
  60. * @Apidoc\Param("goods_category_id", type="integer", require=false, desc="商品分类ID"),
  61. * @Apidoc\Param("goods_no", type="string", require=false, desc="商品编号"),
  62. * @Apidoc\Param("goods_name", type="string", require=true, desc="商品名称"),
  63. * @Apidoc\Param("goods_brand", type="string", require=false, desc="商品品牌"),
  64. * @Apidoc\Param("goods_stock", type="array", require=true, desc="规格列表",
  65. * @Apidoc\Param("id", type="integer", require=false,desc="规格ID flag=3传值"),
  66. * @Apidoc\Param("name", type="string", require=true,desc="规格名称"),
  67. * @Apidoc\Param("price", type="integer", require=true,desc="单价"),
  68. * @Apidoc\Param("stock", type="integer", require=true,desc="数量"),
  69. * ),
  70. * )
  71. * @Apidoc\Param("stock_goods", type="array", require=false, desc="module=3 必传入库物品数据",
  72. * @Apidoc\Param("flag", type="integer", require=true, desc="标识:1=添加新商品,2=批量导入,3=商品库选择"),
  73. * @Apidoc\Param("goods_id", type="integer", require=false, desc="商品ID flag=3传值"),
  74. * @Apidoc\Param("goods_category_first", type="integer", require=false, desc="商品分类一级ID"),
  75. * @Apidoc\Param("goods_category_id", type="integer", require=false, desc="商品分类ID"),
  76. * @Apidoc\Param("goods_no", type="string", require=false, desc="商品编号"),
  77. * @Apidoc\Param("goods_name", type="string", require=true, desc="商品名称"),
  78. * @Apidoc\Param("goods_brand", type="string", require=false, desc="商品品牌"),
  79. * @Apidoc\Param("goods_stock", type="array", require=true, desc="规格列表",
  80. * @Apidoc\Param("id", type="integer", require=false,desc="规格ID flag=3传值"),
  81. * @Apidoc\Param("name", type="string", require=true,desc="规格名称"),
  82. * @Apidoc\Param("price", type="integer", require=true,desc="单价"),
  83. * @Apidoc\Param("stock", type="integer", require=true,desc="数量"),
  84. * ),
  85. * )
  86. * @Apidoc\Param("use_goods", type="array", require=false, desc="module=4 必传领用物品数据",
  87. * @Apidoc\Param("flag", type="integer", require=true, desc="标识:2=批量导入,3=商品库选择"),
  88. * @Apidoc\Param("goods_id", type="integer", require=false, desc="商品ID flag=3传值"),
  89. * @Apidoc\Param("goods_category_first", type="integer", require=false, desc="商品分类一级ID"),
  90. * @Apidoc\Param("goods_category_id", type="integer", require=false, desc="商品分类ID"),
  91. * @Apidoc\Param("goods_no", type="string", require=false, desc="商品编号"),
  92. * @Apidoc\Param("goods_name", type="string", require=true, desc="商品名称"),
  93. * @Apidoc\Param("goods_stock", type="array", require=true, desc="规格列表",
  94. * @Apidoc\Param("id", type="integer", require=false,desc="规格ID flag=3传值"),
  95. * @Apidoc\Param("name", type="string", require=true,desc="规格名称"),
  96. * @Apidoc\Param("stock", type="integer", require=true,desc="数量"),
  97. * ),
  98. * )
  99. * @Apidoc\Param("peer_user", type="array", require=false, desc="module=5 传同行员工数据",
  100. * @Apidoc\Param("is_who", type="integer", require=true, desc="是否外部人员:0=否,1=是"),
  101. * @Apidoc\Param("user_id", type="string", require=false, desc="用户userid"),
  102. * @Apidoc\Param("name", type="string", require=true, desc="姓名"),
  103. * @Apidoc\Param("desc", type="string", require=false, desc="备注"),
  104. * )
  105. */
  106. public function create()
  107. {
  108. // {"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":""}]}
  109. // {"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":""}]}
  110. $way = input('way') ?: '';
  111. $id = input('id') ?: 0;
  112. $module = input('module') ?: 0;
  113. $apply_user_id = input('apply_user_id') ?: '';
  114. $reason = input('reason') ?: '';
  115. $type = input('type') ?: 0;
  116. $desc = input('desc') ?: '';
  117. $start_time = input('start_time');
  118. $end_time = input('end_time');
  119. $document = input('document') ?: '';
  120. $images = input('images') ?: '';
  121. $remark = input('remark') ?: '';
  122. $total_amount = input('total_amount') ?: 0;
  123. $pay_type = input('pay_type') ?: 0;
  124. $word_size = input('word_size') ?: 0;
  125. $apply_id = input('apply_id') ?: 0;
  126. $number = input('number') ?: 0;
  127. $is_who = input('is_who') ?: 0;
  128. $start_am = input('start_am') ?: '';
  129. $end_am = input('end_am') ?: '';
  130. $time = input('time') ?: 0;
  131. $reach_address = input('reach_address') ?: '';
  132. $end_address = input('end_address') ?: '';
  133. $scope = input('scope') ?: '';
  134. $legal_opinion = input('legal_opinion') ?: '';
  135. $founder = input('founder') ?: '';
  136. $serial_number = input('serial_number') ?: '';
  137. $degree = input('degree') ?: 0;
  138. $department = input('department') ?: '';
  139. $department_sign = input('department_sign') ?: '';
  140. $approve_user = input('approve_user') ?: '';
  141. $copy_user = input('copy_user') ?: '';
  142. $apply_goods = input('apply_goods') ?: [];
  143. $stock_goods = input('stock_goods') ?: [];
  144. $use_goods = input('use_goods') ?: [];
  145. $peer_user = input('peer_user') ?: [];
  146. $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");
  147. $user = $this->user;
  148. if ($way == CommonConstant::edit) {
  149. ApproveService::make($id, $params, $user, $way);
  150. $this->success('修改成功');
  151. } else {
  152. ApproveInfoService::create($id, $module, $params, $user, $way);
  153. $this->success('申请已提交,请等待审批');
  154. }
  155. }
  156. /**
  157. * 列表
  158. *
  159. * @Apidoc\Method("POST")
  160. * @Apidoc\Param("page", type="integer",require=true, desc="页数")
  161. * @Apidoc\Param("page_num", type="integer", require=true, desc="每页数量")
  162. * @Apidoc\Param("group", type="integer", require=true, desc="类别:list=我的申请记录,form=采购审批单 默认list")
  163. * @Apidoc\Param("module", type="integer", require=false, desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  164. * @Apidoc\Param("status", type="integer", require=false, desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  165. * @Apidoc\Param("search", type="string", require=false, desc="搜索 事由 编号")
  166. * @Apidoc\Param("start_time", type="string", require=false, desc="申请开始时间")
  167. * @Apidoc\Param("end_time", type="string", require=false, desc="申请结束时间")
  168. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  169. * @Apidoc\Returned("module", type="integer", desc="模块类型")
  170. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  171. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  172. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  173. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  174. * @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文件名称")
  175. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  176. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  177. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  178. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  179. * @Apidoc\Returned("approve_one", type="object", desc="审批人信息 status=2,4",
  180. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  181. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  182. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  183. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  184. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  185. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  186. * ),
  187. * )
  188. * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
  189. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  190. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  191. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  192. * )
  193. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  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("use_goods", type="array", desc="领用商品列表 module=4",
  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("peer_user", type="array", desc="同行人员列表 module=5",
  204. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  205. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  206. * @Apidoc\Returned("name", type="string", desc="姓名"),
  207. * )
  208. */
  209. public function get_list()
  210. {
  211. $group = input('group') ?: 'list';
  212. $module = input('module') ?: 0;
  213. $status = input('status') ?: 0;
  214. $search = input('search') ?: '';
  215. $start_time = input('start_time') ?: '';
  216. $end_time = input('end_time') ?: '';
  217. $offset = $this->off_set;
  218. $length = $this->page_num;
  219. $user = $this->user;
  220. $list = ApproveInfoService::get_list($group, $module, $status, $search, $start_time, $end_time,$offset, $length, $user);
  221. $this->success($group == 'form' ? '采购审批单' : '我的申请记录', $list);
  222. }
  223. /**
  224. * 详情
  225. *
  226. * @Apidoc\Method("POST")
  227. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  228. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  229. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  230. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  231. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  232. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  233. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  234. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  235. * @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文件名称")
  236. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  237. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  238. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  239. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  240. * @Apidoc\Returned("module_info1", type="object", desc="申购申请",
  241. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  242. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  243. * @Apidoc\Returned("reason", type="string", desc="申购事由"),
  244. * @Apidoc\Returned("type", type="integer", desc="采购类型:1=货物采购,2=工程采购,3=服务采购"),
  245. * @Apidoc\Returned("total_amount", type="integer", desc="总金额"),
  246. * @Apidoc\Returned("start_time", type="string", desc="预计申购完成日期(日期)"),
  247. * @Apidoc\Returned("pay_type", type="integer", desc="支付方式:1=自行采购,2=学校采购"),
  248. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  249. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  250. * )
  251. * @Apidoc\Returned("module_info2", type="object", desc="呈批申请",
  252. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  253. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  254. * @Apidoc\Returned("type", type="integer", desc="呈批类型:1=采购类呈批,2=非采购类呈批"),
  255. * @Apidoc\Returned("word_size", type="integer", desc="发文字号"),
  256. * @Apidoc\Returned("desc", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  257. * @Apidoc\Returned("number", type="integer", desc="印制份数"),
  258. * @Apidoc\Returned("reason", type="string", desc="申请标题"),
  259. * @Apidoc\Returned("remark", type="string", desc="申请内容"),
  260. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  261. * )
  262. * @Apidoc\Returned("module_info3", type="object", desc="入库申请",
  263. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  264. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  265. * @Apidoc\Returned("total_amount", type="integer", desc="总金额"),
  266. * @Apidoc\Returned("remark", type="string", desc="申请内容"),
  267. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  268. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  269. * )
  270. * @Apidoc\Returned("module_info4", type="object", desc="领用申请",
  271. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  272. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  273. * @Apidoc\Returned("reason", type="string", desc="物品用途"),
  274. * @Apidoc\Returned("remark", type="string", desc="申请内容"),
  275. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  276. * )
  277. * @Apidoc\Returned("module_info5", type="object", desc="出差申请",
  278. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  279. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  280. * @Apidoc\Returned("reason", type="string", desc="事由"),
  281. * @Apidoc\Returned("start_time", type="string", desc="出差开始时间(年月日时分)"),
  282. * @Apidoc\Returned("end_time", type="string", desc="出差结束时间(年月日时分)"),
  283. * @Apidoc\Returned("type", type="integer", desc="出差类型:1=市内出差,2=市外出差,3=市内出差(需要报销)"),
  284. * @Apidoc\Returned("is_who", type="integer", desc="是否跨关内关外:0=否,1=是"),
  285. * @Apidoc\Returned("remark", type="string", desc="备注"),
  286. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  287. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  288. * )
  289. * @Apidoc\Returned("module_info6", type="object", desc="请假申请",
  290. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  291. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  292. * @Apidoc\Returned("type", type="integer", desc="请假类型:1=事假,2=病假,3=产假,4=婚假,5=陪产假,6=丧假,7=离深报批报备"),
  293. * @Apidoc\Returned("start_time", type="string", desc="请假开始时间(日期)"),
  294. * @Apidoc\Returned("end_time", type="string", desc="请假结束时间(日期)"),
  295. * @Apidoc\Returned("start_am", type="string", desc="开始时间段(上午或下午)"),
  296. * @Apidoc\Returned("end_am", type="string", desc="结束时间段(上午或下午)"),
  297. * @Apidoc\Returned("time", type="integer", desc="请假时长(天数)"),
  298. * @Apidoc\Returned("reason", type="string", desc="请假原因"),
  299. * @Apidoc\Returned("remark", type="string", desc="是否离深"),
  300. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  301. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  302. * )
  303. * @Apidoc\Returned("module_info7", type="object", desc="用车申请",
  304. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  305. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  306. * @Apidoc\Returned("reason", type="string", desc="出发地点"),
  307. * @Apidoc\Returned("start_time", type="string", desc="出发时间(年月日时分)"),
  308. * @Apidoc\Returned("reach_address", type="string", desc="到达地点"),
  309. * @Apidoc\Returned("end_time", type="string", desc="返回时间(年月日时分)"),
  310. * @Apidoc\Returned("end_address", type="string", desc="返回地点"),
  311. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  312. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  313. * )
  314. * @Apidoc\Returned("module_info8", type="object", desc="维修申请",
  315. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  316. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  317. * @Apidoc\Returned("type", type="integer", desc="维修类型:1=物业维修,2=电教网络维修"),
  318. * @Apidoc\Returned("reason", type="string", desc="维修地点"),
  319. * @Apidoc\Returned("desc", type="string", desc="具体内容"),
  320. * @Apidoc\Returned("maintain_user_id", type="integer", desc="维修人员ID"),
  321. * @Apidoc\Returned("feedback_status", type="integer", desc="反馈状态:0=未反馈,1=已反馈"),
  322. * @Apidoc\Returned("feedback", type="string", desc="反馈结果"),
  323. * @Apidoc\Returned("comment_status", type="integer", desc="评价状态:0=未评价,1=已评价"),
  324. * @Apidoc\Returned("comment_score", type="integer", desc="满意程度"),
  325. * @Apidoc\Returned("comment", type="string", desc="评价内容"),
  326. * @Apidoc\Returned("images_text", type="array", desc="图片列表"),
  327. * @Apidoc\Returned("feedback_images_text", type="array", desc="反馈图片列表"),
  328. * )
  329. * @Apidoc\Returned("module_info9", type="object", desc="合同呈批",
  330. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  331. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  332. * @Apidoc\Returned("type", type="integer", desc="合同类型:1=采购类01,2=收款类02,3=非经济类03"),
  333. * @Apidoc\Returned("reason", type="string", desc="合同编号"),
  334. * @Apidoc\Returned("desc", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  335. * @Apidoc\Returned("number", type="integer", desc="印制份数"),
  336. * @Apidoc\Returned("scope", type="string", desc="发放范围"),
  337. * @Apidoc\Returned("legal_opinion", type="string", desc="法务意见"),
  338. * @Apidoc\Returned("remark", type="string", desc="备注说明"),
  339. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  340. * )
  341. * @Apidoc\Returned("module_info10", type="object", desc="收文批阅",
  342. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  343. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  344. * @Apidoc\Returned("founder", type="string", desc="创建人"),
  345. * @Apidoc\Returned("desc", type="string", desc="来文单位名称"),
  346. * @Apidoc\Returned("serial_number", type="string", desc="收文序号"),
  347. * @Apidoc\Returned("reason", type="string", desc="文件名称"),
  348. * @Apidoc\Returned("start_time", type="string", desc="收文日期(日期)"),
  349. * @Apidoc\Returned("remark", type="string", desc="内容摘要"),
  350. * @Apidoc\Returned("degree", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  351. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  352. * )
  353. * @Apidoc\Returned("module_info11", type="object", desc="学校文件",
  354. * @Apidoc\Returned("id", type="integer", desc="模块ID"),
  355. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  356. * @Apidoc\Returned("department", type="string", desc="拟稿部门"),
  357. * @Apidoc\Returned("reason", type="string", desc="文件名称"),
  358. * @Apidoc\Returned("department_sign", type="string", desc="落款"),
  359. * @Apidoc\Returned("remark", type="string", desc="上会情况"),
  360. * @Apidoc\Returned("desc", type="integer", desc="缓急程度:1=普通,2=紧急,3=特急"),
  361. * @Apidoc\Returned("start_time", type="string", desc="拟发文时间(日期)"),
  362. * @Apidoc\Returned("serial_number", type="string", desc="文件号"),
  363. * @Apidoc\Returned("document_text", type="array", desc="附件列表"),
  364. * )
  365. * @Apidoc\Returned("approve", type="array", desc="审批信息",
  366. * @Apidoc\Returned("id", type="integer", desc="审批ID"),
  367. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  368. * @Apidoc\Returned("status", type="integer", desc="审批状态:1=待审批,2=审批中,3=审批通过,4=审批拒绝"),
  369. * @Apidoc\Returned("group", type="integer", desc="类别:0=审批人,1=发起人"),
  370. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  371. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  372. * @Apidoc\Returned("approve_time", type="string", desc="审批时间"),
  373. * @Apidoc\Returned("remark", type="string", desc="审批备注"),
  374. * @Apidoc\Returned("time", type="string", desc="审批时长(上一次审批完成到本次审批的时间,单位秒)"),
  375. * @Apidoc\Returned("time_text", type="string", desc="审批时长文本"),
  376. * @Apidoc\Returned("user", type="object", desc="审批人信息",
  377. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  378. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  379. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  380. * ),
  381. * )
  382. * @Apidoc\Returned("approve_copy", type="array", desc="抄送信息",
  383. * @Apidoc\Returned("id", type="integer", desc="抄送ID"),
  384. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  385. * @Apidoc\Returned("approve_flow", type="integer", desc="流程批次"),
  386. * @Apidoc\Returned("approve_user", type="string", desc="审批人userid"),
  387. * @Apidoc\Returned("user", type="object", desc="抄送人信息",
  388. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  389. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  390. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  391. * ),
  392. * )
  393. * @Apidoc\Returned("department_data", type="array", desc="申请人所在部门列表",
  394. * @Apidoc\Returned("dept_id", type="string", desc="部门ID"),
  395. * @Apidoc\Returned("name", type="string", desc="部门名称"),
  396. * )
  397. * @Apidoc\Returned("create_user", type="object", desc="提交人信息",
  398. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  399. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  400. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  401. * )
  402. * @Apidoc\Returned("apply_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_goods", type="array", desc="申购商品列表 module=1 && type=1",
  408. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  409. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  410. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  411. * @Apidoc\Returned("total_amount", type="string", desc="总金额"),
  412. * )
  413. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  414. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  415. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  416. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  417. * )
  418. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  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("peer_user", type="array", desc="同行人员列表 module=5",
  424. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  425. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  426. * @Apidoc\Returned("name", type="string", desc="姓名"),
  427. * )
  428. * @Apidoc\Returned("contract", type="array", desc="关联的合同呈批申请 module=1",
  429. * @Apidoc\Returned("id", type="integer", desc="ID"),
  430. * @Apidoc\Returned("reason", type="string", desc="合同编号"),
  431. * )
  432. * @Apidoc\Returned("apply", type="array", desc="关联的申购申请单 module=3,9 && apply_id > 0",
  433. * @Apidoc\Returned("id", type="integer", desc="ID"),
  434. * @Apidoc\Returned("order_no", type="string", desc="审批编号"),
  435. * )
  436. */
  437. public function get_detail()
  438. {
  439. $id = input('id') ?: 0;
  440. $user = $this->user;
  441. $info = ApproveInfoService::get_detail($id, $user, CommonConstant::IS_WHO_1, 'detail');
  442. $this->success('详情', $info);
  443. }
  444. /**
  445. * 信息
  446. *
  447. * @Apidoc\Desc("重新发起信息")
  448. * @Apidoc\Method("POST")
  449. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  450. * @Apidoc\Returned("id", type="integer", desc="申请ID")
  451. * @Apidoc\Returned("module", type="integer", desc="模块类型:1=申购申请,2=呈批申请,3=入库申请,4=领用申请,5=出差申请,6=请假申请,7=用车申请,8=维修申请,9=合同呈批,10=收文批阅,11=学校文件")
  452. * @Apidoc\Returned("module_id", type="integer", desc="对应模块ID")
  453. * @Apidoc\Returned("status", type="integer", desc="审批状态:2=审批中,3=审批通过,4=审批驳回,5=审批撤销")
  454. * @Apidoc\Returned("create_at", type="string", desc="创建时间")
  455. * @Apidoc\Returned("order_no", type="string", desc="审批编号")
  456. * @Apidoc\Returned("apply_date", type="string", desc="申请日期")
  457. * @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文件名称")
  458. * @Apidoc\Returned("type", type="string", desc="module=1采购类型,module=2呈批类型,module=5出差类型,module=6请假类型,module=8维修类型,module=9合同类型")
  459. * @Apidoc\Returned("desc", type="string", desc="module=2缓急程度,module=8具体内容,module=9缓急程度,module=10来文单位名称,module=11缓急程度")
  460. * @Apidoc\Returned("start_time", type="string", desc="module=5出差开始时间,module=6请假开始时间,module=7出发时间,module=1预计申购完成日期(日期),module=10收文日期(日期),module=11拟发文时间(日期)")
  461. * @Apidoc\Returned("end_time", type="string", desc="module=5出差结束时间,module=6请假结束时间,module=7返回时间")
  462. * @Apidoc\Returned("create_user", type="object", desc="提交人信息",
  463. * @Apidoc\Returned("userid", type="string", desc="用户userid"),
  464. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  465. * @Apidoc\Returned("avatar", type="string", desc="头像地址"),
  466. * )
  467. * @Apidoc\Returned("apply_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_goods", type="array", desc="申购商品列表 module=1 && type=1",
  473. * @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
  474. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  475. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  476. * @Apidoc\Returned("total_amount", type="string", desc="总金额"),
  477. * )
  478. * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
  479. * @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
  480. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  481. * @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
  482. * )
  483. * @Apidoc\Returned("use_goods", type="array", desc="领用商品列表 module=4",
  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("peer_user", type="array", desc="同行人员列表 module=5",
  489. * @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
  490. * @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
  491. * @Apidoc\Returned("is_who", type="integer", desc="是否外部人员:0=否,1=是"),
  492. * @Apidoc\Returned("user_id", type="string", desc="用户userid"),
  493. * @Apidoc\Returned("name", type="string", desc="用户姓名"),
  494. * @Apidoc\Returned("desc", type="string", desc="备注"),
  495. * )
  496. * @Apidoc\Returned("apply", type="array", desc="关联的申购申请单 module=3,9 && apply_id > 0",
  497. * @Apidoc\Returned("id", type="integer", desc="ID"),
  498. * @Apidoc\Returned("order_no", type="string", desc="审批编号"),
  499. * )
  500. **/
  501. public function get_info()
  502. {
  503. $id = input('id') ?: 0;
  504. $user = $this->user;
  505. $info = ApproveInfoService::get_detail($id, $user, CommonConstant::IS_WHO_1, 'info');
  506. $this->success('信息', $info);
  507. }
  508. /**
  509. * 催办
  510. *
  511. * @Apidoc\Method("POST")
  512. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  513. */
  514. public function urging()
  515. {
  516. $id = input('id') ?: 0;
  517. $user = $this->user;
  518. ApproveInfoService::make($id, [], $user, 'urging');
  519. $this->success('催办成功');
  520. }
  521. /**
  522. * 撤销
  523. *
  524. * @Apidoc\Method("POST")
  525. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  526. */
  527. public function cancel()
  528. {
  529. $id = input('id') ?: 0;
  530. $user = $this->user;
  531. ApproveInfoService::make($id, [], $user, 'cancel');
  532. $this->success('撤销成功');
  533. }
  534. /**
  535. * 评分
  536. *
  537. * @Apidoc\Desc("维修模块")
  538. * @Apidoc\Method("POST")
  539. * @Apidoc\Param("id", type="integer",require=true, desc="申请ID")
  540. * @Apidoc\Param("comment_score", type="sting",require=true, desc="满意程度 评分1-5")
  541. * @Apidoc\Param("comment", type="sting",require=false, desc="评价内容")
  542. **/
  543. public function comment()
  544. {
  545. $id = input('id') ?: 0;
  546. $comment_score = input('comment_score') ?: 0;
  547. $comment = input('comment') ?: '';
  548. $params = compact("comment_score", "comment");
  549. $user = $this->user;
  550. ApproveInfoService::make($id, $params, $user, 'comment');
  551. $this->success('评价成功');
  552. }
  553. }