General.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\model\CarApprove;
  4. use app\common\model\ContractApprove;
  5. use app\common\model\DocumentApprove;
  6. use app\common\model\EvectionApprove;
  7. use app\common\model\LeaveApprove;
  8. use app\common\model\MaintainApprove;
  9. use app\common\model\OfferApprove;
  10. use hg\apidoc\annotation as Apidoc;
  11. use think\Db;
  12. /**
  13. * @Apidoc\Title("我的审批")
  14. */
  15. class General extends Base
  16. {
  17. public function initialize()
  18. {
  19. parent::initialize();
  20. parent::checkLogin();
  21. }
  22. /**
  23. * @Apidoc\Title("我的审批")
  24. * @Apidoc\Desc("我的审批")
  25. * @Apidoc\Method("GET")
  26. * @Apidoc\Author("HG")
  27. * @Apidoc\Tag("")
  28. * @Apidoc\Query("page", type="int",desc="页数")
  29. * @Apidoc\Query("page_num", type="string", desc="每页数量")
  30. * @Apidoc\Returned("id", type="int", desc="审批记录id")
  31. * @Apidoc\Returned("create_at", type="string", desc="申请时间")
  32. * @Apidoc\Returned("module", type="string", desc="所属模块")
  33. * @Apidoc\Returned("approve_info", type="array", desc="申请记录详情")
  34. * @Apidoc\Returned("approve_info.id", type="int", desc="申请记录详情id")
  35. */
  36. public function getAllApprove()
  37. {
  38. $field = "id,create_at,approve_user,module,status";
  39. $where = ' approve_user = '.$this->user_id . ' AND status > 0 ';
  40. $list= Db::name('offer_approve')
  41. ->field($field)
  42. ->where($where)
  43. ->unionAll("select $field FROM dd_car_approve WHERE $where")
  44. ->unionAll("select $field FROM dd_document_approve WHERE $where")
  45. ->unionAll("select $field FROM dd_evection_approve WHERE $where")
  46. ->unionAll("select $field FROM dd_leave_approve WHERE $where")
  47. ->unionAll("select $field FROM dd_maintain_approve WHERE $where")
  48. ->unionAll("select $field FROM dd_contract_approve WHERE $where")
  49. ->order('create_at desc,id desc')
  50. ->limit($this->off_set,$this->page_num)
  51. ->select();
  52. foreach ($list as &$v) {
  53. switch ($v['module']) {
  54. case "car_approve":
  55. $v['approve_info'] = CarApprove::field('i.*,p.status approve_status,p.approve_time,p.remark')
  56. ->alias('p')
  57. ->where(['p.id'=>$v['id']])
  58. ->where('p.status','>','0')
  59. ->leftJoin('CarInfo i','p.car_id = i.id')
  60. ->find()->toArray();
  61. break;
  62. case "document_approve":
  63. $v['approve_info'] =DocumentApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  64. ->alias('p')
  65. ->where(['p.id'=>$v['id']])
  66. ->where('p.status','>','0')
  67. ->leftJoin('DocumentInfo i','p.info_id = i.id')
  68. ->find()->toArray();
  69. break;
  70. case "evection_approve":
  71. $v['approve_info'] = EvectionApprove::field('i.*,p.status approve_status,p.approve_time,p.remark')
  72. ->alias('p')
  73. ->where(['p.id'=>$v['id']])
  74. ->where('p.status','>','0')
  75. ->leftJoin('EvectionInfo i','p.info_id = i.id')
  76. ->find()->toArray();
  77. break;
  78. case "leave_approve":
  79. $v['approve_info']= LeaveApprove::field('i.*,p.status approve_status,p.approve_time,p.remark')
  80. ->alias('p')
  81. ->where(['p.id'=>$v['id']])
  82. ->where('p.status','>','0')
  83. ->leftJoin('LeaveInfo i','p.info_id = i.id')
  84. ->find()->toArray();
  85. break;
  86. case "maintain_approve":
  87. $v['approve_info'] =MaintainApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  88. ->alias('p')
  89. ->where(['p.id'=>$v['id']])
  90. ->where('p.status','>','0')
  91. ->leftJoin('MaintainInfo i','p.info_id = i.id')
  92. ->find()->toArray();
  93. break;
  94. case "offer_approve":
  95. $v['approve_info'] = OfferApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  96. ->alias('p')
  97. ->where(['p.id'=>$v['id']])
  98. ->where('p.status','>','0')
  99. ->leftJoin('OfferInfo i','p.info_id = i.id')
  100. ->find()->toArray();
  101. break;
  102. case "contract_approve":
  103. $v['approve_info'] = ContractApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  104. ->alias('p')
  105. ->where(['p.id'=>$v['id']])
  106. ->where('p.status','>','0')
  107. ->leftJoin('ContractInfo i','p.info_id = i.id')
  108. ->find()->toArray();
  109. break;
  110. }
  111. }
  112. $this->success('ok',['list'=>$list]);
  113. }
  114. }