common.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. /**
  3. +-----------------------------------------------------------------------------------------------
  4. * GouGuOPEN [ 左手研发,右手开源,未来可期!]
  5. +-----------------------------------------------------------------------------------------------
  6. * @Copyright (c) 2021~2024 http://www.gouguoa.com All rights reserved.
  7. +-----------------------------------------------------------------------------------------------
  8. * @Licensed 勾股OA,开源且可免费使用,但并不是自由软件,未经授权许可不能去除勾股OA的相关版权信息
  9. +-----------------------------------------------------------------------------------------------
  10. * @Author 勾股工作室 <hdm58@qq.com>
  11. +-----------------------------------------------------------------------------------------------
  12. */
  13. use think\facade\Db;
  14. //获取项目状态
  15. function get_status($id=0)
  16. {
  17. $status_array = ['未设置','未开始','进行中','已完成','已关闭'];
  18. if($id==0){
  19. return $status_array;
  20. }
  21. else{
  22. $news_array=[];
  23. foreach($status_array as $key => $value){
  24. if($key>0){
  25. $news_array[]=array(
  26. 'id'=>$key,
  27. 'title'=>$value,
  28. );
  29. }
  30. }
  31. return $news_array;
  32. }
  33. }
  34. //根据状态读取审批状态名称
  35. function status_name($status=0)
  36. {
  37. $status_array = get_status();
  38. return $status_array[$status];
  39. }
  40. //获取任务全部状态
  41. function get_task_status($id=0)
  42. {
  43. $status_task_array = ['未设置','未开始','进行中','已完成','已拒绝','已关闭'];
  44. if($id==0){
  45. return $status_task_array;
  46. }
  47. else{
  48. $news_array=[];
  49. foreach($status_task_array as $key => $value){
  50. if($key>0){
  51. $news_array[]=array(
  52. 'id'=>$key,
  53. 'title'=>$value,
  54. );
  55. }
  56. }
  57. return $news_array;
  58. }
  59. }
  60. //根据任务状态读取审批状态名称
  61. function status_task_name($status=0)
  62. {
  63. $status_task_array = get_task_status();
  64. return $status_task_array[$status];
  65. }
  66. //获取任务紧急程度
  67. function get_priority($id=0)
  68. {
  69. $priority_array = ['未设置','低','中','高','紧急'];
  70. if($id==0){
  71. return $priority_array;
  72. }
  73. else{
  74. $news_array=[];
  75. foreach($priority_array as $key => $value){
  76. if($key>0){
  77. $news_array[]=array(
  78. 'id'=>$key,
  79. 'title'=>$value,
  80. );
  81. }
  82. }
  83. return $news_array;
  84. }
  85. }
  86. //根据任务紧急程度名称
  87. function priority_name($priority=0)
  88. {
  89. $priority_array = get_priority();
  90. return $priority_array[$priority];
  91. }
  92. //是否是项目管理员,count>1即有权限
  93. function isAuthProject($uid)
  94. {
  95. if($uid == 1){
  96. return 1;
  97. }
  98. $map = [];
  99. $map[] = ['name', '=', 'project_admin'];
  100. $map[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',conf_1)")];
  101. $count = Db::name('DataAuth')->where($map)->count();
  102. return $count;
  103. }
  104. //读取项目
  105. function get_project($uid = 0)
  106. {
  107. $map = [];
  108. $map[] = ['delete_time', '=', 0];
  109. if ($uid > 0) {
  110. $project_ids = Db::name('ProjectUser')->where(['uid' => $uid, 'delete_time' => 0])->column('project_id');
  111. $map[] = ['id', 'in', $project_ids];
  112. }
  113. $project = Db::name('Project')->where($map)->select()->toArray();
  114. return $project;
  115. }
  116. //任务分配情况统计
  117. function plan_count($arrData)
  118. {
  119. $documents = array();
  120. foreach ($arrData as $index => $value) {
  121. $planTime = date("Y-m-d", $value['end_time']);
  122. if (empty($documents[$planTime])) {
  123. $documents[$planTime] = 1;
  124. } else {
  125. $documents[$planTime] += 1;
  126. }
  127. }
  128. return $documents;
  129. }
  130. //工时登记情况统计
  131. function hour_count($arrData)
  132. {
  133. $documents = array();
  134. foreach ($arrData as $index => $value) {
  135. $hourTime = date("Y-m-d", $value['start_time']);
  136. if (empty($documents[$hourTime])) {
  137. $documents[$hourTime] = $value['labor_time'] + 0;
  138. } else {
  139. $documents[$hourTime] += $value['labor_time'];
  140. }
  141. $documents[$hourTime] = round($documents[$hourTime], 2);
  142. }
  143. return $documents;
  144. }
  145. //燃尽图统计
  146. function cross_count($arrData)
  147. {
  148. $documents = array();
  149. foreach ($arrData as $index => $value) {
  150. $planTime = date("Y-m-d", $value['end_time']);
  151. if (empty($documents[$planTime])) {
  152. $documents[$planTime] = 1;
  153. } else {
  154. $documents[$planTime] += 1;
  155. }
  156. }
  157. return $documents;
  158. }