Maintain.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\model\ApproveFlow;
  4. use app\common\model\MaintainInfo;
  5. use app\common\model\MaintainApprove;
  6. use app\common\service\ApproveService;
  7. /**
  8. * @title 员工维修管理
  9. * @controller Maintain
  10. * @group base
  11. */
  12. class Maintain extends Base
  13. {
  14. public function initialize()
  15. {
  16. parent::initialize();
  17. parent::checkLogin();
  18. }
  19. /**
  20. * @title 获取维修审核流程
  21. * @desc 获取维修流程
  22. * @author qc
  23. * @url /api/Maintain/getApproveFlow
  24. * @method GET
  25. * @tag
  26. * @header name:Authorization require:1 desc:Token
  27. * @return name:user_name type:string default:-- desc:会员名称
  28. * @return name:headimg type:string default:-- desc:会员头像
  29. */
  30. public function getApproveFlow()
  31. {
  32. $list = ApproveFlow::getApproveUser(5,$this->user_id);
  33. $this->success('ok',['list'=>$list]);
  34. }
  35. /**
  36. * @title 获取抄送人流程
  37. * @desc 获取抄送人流程
  38. * @author qc
  39. * @url /api/Maintain/getCopyFlow
  40. * @method GET
  41. * @tag
  42. * @header name:Authorization require:1 desc:Token
  43. * @return name:user_name type:string default:-- desc:会员名称
  44. * @return name:headimg type:string default:-- desc:会员头像
  45. */
  46. public function getCopyFlow()
  47. {
  48. $list = ApproveFlow::getCopyTo(4,$this->user_id);
  49. $this->success('ok',['list'=>$list]);
  50. }
  51. /**
  52. * @title 维修申请
  53. * @desc 维修申请
  54. * @author qc
  55. * @url /api/Maintain/applyMaintain
  56. * @method POST
  57. * @tag
  58. * @header name:Authorization require:1 desc:Token
  59. * @param name:title type:string default:-- desc:标题
  60. * @param name:content type:string default:-- desc:维修详细内容
  61. * @param name:images type:string default:-- desc:图片(多张|隔开)
  62. * @param name:address type:string default:-- desc:维修地址
  63. * @param name:flow_user type:string default:-- desc:审批人id(多个逗号隔开)
  64. * @param name:copy_user type:string default:-- desc:抄送人id(多个逗号隔开)
  65. */
  66. public function applyMaintain()
  67. {
  68. $request_param = input('post.');
  69. $request_param['user_id'] = $this->user_id;// 申请会员id
  70. $request_param['apply_date'] = date("Y-m-d");
  71. $flow_user = isset($request_param['flow_user']) ? $request_param['flow_user']:'' ;
  72. $copy_user = isset($request_param['copy_user']) ? $request_param['copy_user']:'' ;
  73. if(!$flow_user) $this->error('请选择审批人');
  74. $flow_info = MaintainInfo::create($request_param);//生成维修记录
  75. $approve_res = ApproveFlow::getApproveData($flow_user,$copy_user,$flow_info->id);
  76. $flow_data = $approve_res['flow_data'];// 维修流程
  77. $flow_num = $approve_res['flow_num'];
  78. if(!empty($flow_data)) {
  79. MaintainInfo::where('id',$flow_info->id)->update(['approve_num'=>$flow_num]);
  80. (new MaintainApprove())->saveAll($flow_data);
  81. }else{
  82. MaintainInfo::where('id',$flow_info->id)->update(['status'=>2]);
  83. }
  84. $this->success('维修已提交,请等待审核',['detail'=>$flow_info->toArray()]);
  85. }
  86. /**
  87. * @title 维修记录【列表】
  88. * @desc 维修记录
  89. * @author qc
  90. * @url /api/Maintain/getMaintainList
  91. * @method GET
  92. * @tag
  93. * @header name:Authorization require:1 desc:Token
  94. * @param name:page type:int default:-- desc:页数
  95. * @param name:page_num type:int default:-- desc:每页数量
  96. * @param name:type type:int default:0 desc:维修类型id
  97. * @param name:status type:int default:0 desc:维修状态0全部,1维修中,2维修通过,3维修拒绝,9取消
  98. * @return name:type type:int default:-- desc:维修类型id
  99. * @return name:word_size type:string default:-- desc:发文字号
  100. * @return name:level type:int default:-- desc:缓急程度(1缓,2稍急,3很急)
  101. * @return name:num type:int default:-- desc:申请数量
  102. * @return name:title type:string default:-- desc:标题
  103. * @return name:document type:string default:-- desc:附件(文件路径)
  104. * @return name:content type:string default:-- desc:维修详细内容
  105. * @return name:apply_date type:string default:-- desc:申请日期
  106. */
  107. public function getMaintainList()
  108. {
  109. $sel_where = [];
  110. $sel_where[] = ['user_id','=',$this->user_id];
  111. if(input('get.status') > 0) $sel_where[] = ['status','=',input('get.status')];
  112. if(input('get.type') > 0) $sel_where[] = ['type','=',input('get.type')];
  113. $list = MaintainInfo::where($sel_where)->limit($this->off_set,$this->page_num)->select()->toArray();
  114. $this->success('ok',['list'=>$list]);
  115. }
  116. /**
  117. * @title 维修详情
  118. * @desc 维修详情
  119. * @author qc
  120. * @url /api/Maintain/getMaintainInfo
  121. * @method GET
  122. * @tag
  123. * @header name:Authorization require:1 desc:Token
  124. * @param name:id type:int default:-- desc:维修记录id
  125. * @return name:type type:int default:-- desc:维修类型id
  126. * @return name:word_size type:string default:-- desc:发文字号
  127. * @return name:level type:int default:-- desc:缓急程度(1缓,2稍急,3很急)
  128. * @return name:num type:int default:-- desc:申请数量
  129. * @return name:title type:string default:-- desc:标题
  130. * @return name:headimg type:string default:-- desc:申请人头像
  131. * @return name:user_name type:string default:-- desc:申请人昵称
  132. * @return name:document type:string default:-- desc:附件(文件路径)
  133. * @return name:content type:string default:-- desc:维修详细内容
  134. * @return name:apply_date type:string default:-- desc:申请日期
  135. * @return name:approve_list type:array default:-- desc:维修记录
  136. * @return name:approve_list.status type:int default:-- desc:维修状态:0待维修(未到该维修人维修),1维修中(已到该维修人维修,还未维修)2维修通过3维修拒绝
  137. * @return name:approve_list.approve_time type:string default:-- desc:维修时间
  138. * @return name:approve_list.remark type:string default:-- desc:维修备注
  139. * @return name:approve_list.user_name type:string default:-- desc:维修人
  140. * @return name:approve_list.headimg type:string default:-- desc:维修人头像
  141. * @return name:approve_list.time type:string default:-- desc:维修用时(上一次维修完成到本次维修的时间,单位秒)
  142. *
  143. */
  144. public function getMaintainInfo()
  145. {
  146. $id = input('get.id');
  147. $detail = MaintainInfo::with('approveList')
  148. ->alias('a')
  149. ->field('a.*,u.branch_id,u.headimg,u.name user_name')
  150. ->leftJoin('StoreMember u','a.user_id = u.id')
  151. ->where(['a.id'=>$id])
  152. ->limit($this->off_set,$this->page_num)
  153. ->find()->toArray();
  154. $this->success('ok',['detail'=>$detail]);
  155. }
  156. /**
  157. * @title 需要我审批的
  158. * @desc 需要我审批的
  159. * @author qc
  160. * @url /api/Maintain/getApproveMaintain
  161. * @method GET
  162. * @tag
  163. * @header name:Authorization require:1 desc:Token
  164. * @param name:page type:int default:-- desc:页数
  165. * @param name:page_num type:int default:-- desc:每页数量
  166. * @return name:type type:int default:-- desc:维修类型id
  167. * @return name:word_size type:string default:-- desc:发文字号
  168. * @return name:level type:int default:-- desc:缓急程度(1缓,2稍急,3很急)
  169. * @return name:num type:int default:-- desc:申请数量
  170. * @return name:title type:string default:-- desc:标题
  171. * @return name:document type:string default:-- desc:附件(文件路径)
  172. * @return name:content type:string default:-- desc:维修详细内容
  173. * @return name:apply_date type:string default:-- desc:申请日期
  174. * @return name:approve_status type:int default:-- desc:维修状态(我的维修状态)
  175. * @return name:approve_time type:string default:-- desc:维修时间(1维修中2维修通过3维修拒绝)
  176. * @return name:approve_id type:int default:-- desc:维修记录id
  177. * @return name:remark type:string default:-- desc:维修备注
  178. *
  179. */
  180. public function getApproveMaintain()
  181. {
  182. $list = MaintainApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  183. ->alias('p')
  184. ->where(['p.approve_user'=>$this->user_id])
  185. ->where('p.status','>','0')
  186. ->leftJoin('MaintainInfo i','p.info_id = i.id')
  187. ->limit($this->off_set,$this->page_num)
  188. ->select()->toArray();
  189. $this->success('ok',['list'=>$list]);
  190. }
  191. /**
  192. * @title 维修审批
  193. * @desc 维修审批
  194. * @author qc
  195. * @url /api/Maintain/approveMaintain
  196. * @method POST
  197. * @tag
  198. * @header name:Authorization require:1 desc:Token
  199. * @param name:id type:string default:-- desc:申请记录id
  200. * @param name:status type:string default:-- desc:维修状态(2维修通过3维修拒绝)
  201. * @param name:remark type:string default:-- desc:维修备注
  202. */
  203. public function approveMaintain()
  204. {
  205. $approve_id = input('post.id');
  206. $status = input('post.status');
  207. $remark = input('post.remark');
  208. $res = ApproveService::approveMaintain($approve_id,$this->user_id,$status,$remark);
  209. if(!$res['ret_val']) $this->error($res['msg']);
  210. $this->success('审批完成');
  211. }
  212. /**
  213. * @title 撤销维修申请
  214. * @desc 撤销维修申请
  215. * @author qc
  216. * @url /api/Maintain/cancelApply
  217. * @method POST
  218. * @tag
  219. * @header name:Authorization require:1 desc:Token
  220. * @param name:id type:int default:-- desc:维修记录id
  221. *
  222. */
  223. public function cancelApply()
  224. {
  225. $id = input('post.id');
  226. $apply_info = MaintainInfo::where('id',$id)->where('user_id',$this->user_id)->find();
  227. if(!$apply_info)$this->error('维修记录有误');
  228. $apply_info->status = 9;
  229. $apply_info->save();
  230. $this->success('撤销成功');
  231. }
  232. }