OrganizerTaskBus.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /**
  3. *
  4. *User:Administrator
  5. *Date:2021/10/12
  6. */
  7. namespace app\api\business;
  8. use app\api\exception\ApiException;
  9. use app\api\model\Ccjc;
  10. use app\api\model\Jgry;
  11. use app\api\model\Orgs;
  12. use app\api\model\TestModel;
  13. use app\api\model\Undertake;
  14. use app\common\lib\auth\JwtAuth;
  15. class OrganizerTaskBus
  16. {
  17. private $uid;
  18. public function __construct()
  19. {
  20. $jwtAuth=JwtAuth::getInstance(); //实例化jwtAuth
  21. $this->uid = $jwtAuth->getUid(); //setRybh是在middleware/jwtAuth中完成的
  22. }
  23. //查询任务列表数据
  24. public function selectTask($task_class,$pageNum,$pageSize,$data)
  25. {
  26. $where=[['unit_id','=',$this->uid],['task_class','=',$task_class]];
  27. if ($data['year']!='') array_push($where, ['year', '=', $data['year']]);
  28. //任务状态:0:未发布,1:执行中,2:已结束未完成,3:已结束已完成
  29. if ($data['ispublic'] != '') array_push($where, ['ispublic', '=', $data['ispublic']]);
  30. //任务开始时间
  31. if ($data['starttime'] != '') array_push($where, ['starttime', '>=', $data['starttime']]);
  32. //任务结束时间
  33. if ($data['endtime'] != '') array_push($where, ['endtime', '<=', $data['endtime']]);
  34. //任务名称:模糊查询
  35. if ($data['task_name'] != '' ) array_push($where, ['task_name', 'LIKE', '%'.$data['task_name'].'%']);
  36. $data = (new Orgs())->selectCcjcData($where,$pageNum,$pageSize);
  37. //$data = (new Ccjc())->selectCcjcAndOrgsData($this->uid);
  38. $count =(new Orgs())->countCcjcData($where);
  39. return ['rows'=>$data,'total'=>$count];
  40. }
  41. //牵头单位发布任务
  42. public function releaseTask($task_id)
  43. {
  44. $data=['ispublic' => 5];//发布任务
  45. $result = (new Ccjc())->updateInfoByTaskID($task_id, $data);
  46. return $result;
  47. }
  48. //获取任务基本信息
  49. public function getTaskInfo($task_id,$pageNum=1,$pageSize=null)
  50. {
  51. $uid=$this->uid;
  52. // //判断 在orgs表中的当前任务的id所对应的unit_id是否等于uid
  53. // $unit_id = (new Orgs())->getUnitIdByTaskID($task_id)['unit_id'];
  54. // if ($unit_id != $uid) {
  55. // throw new ApiException(config('status.err_task_auth'));
  56. // }
  57. //任务信息
  58. $task_info = (new Ccjc())->getTaskInfoByTaskID($task_id);
  59. $task_releaser_info = (new Jgry())->getJgryInfoByRymc($task_info['releaser']);
  60. //获取uid下创建的所有模型信息
  61. if (isset($task_info['test_model_id'])) {
  62. $task_product_info = (new TestModel())->getProductInfo($task_info['test_model_id']);
  63. $task_pesticides_info = (new TestModel())->getPesticidesInfo($task_info['test_model_id']);
  64. $task_model_info=(new TestModel())->getModelInfoByModelID($task_info['test_model_id']);
  65. }else{
  66. $task_product_info ='';
  67. $task_pesticides_info='';
  68. $task_model_info='';
  69. }
  70. //牵头的任务列表的信息(抽样)
  71. $unitTaskList_info=(new Undertake())->selectTaskListByTaskIdAndUid($task_id,$uid,'','',$pageNum,$pageSize);
  72. $unitTaskList_total = (new Undertake())->countTaskListByTaskIdAndUid($task_id, $uid);
  73. //承担的任务列表的信息(检测)
  74. $underTaskList_info=(new Undertake())->selectTaskListByTaskIdAndUid($task_id,'',$uid,'',$pageNum,$pageSize);
  75. $underTaskList_total = (new Undertake())->countTaskListByTaskIdAndUid($task_id, '',$uid);
  76. //报告上传的任务列表信息(报告上传)
  77. $reportTaskList_info=(new Undertake())->selectTaskListByTaskIdAndUid($task_id,'','',$uid,$pageNum,$pageSize);
  78. $reportTaskList_total = (new Undertake())->countTaskListByTaskIdAndUid($task_id, '','',$uid);
  79. $data=[
  80. 'taskInfo'=>$task_info,
  81. 'releaserInfo'=>$task_releaser_info,
  82. 'product'=>$task_product_info,
  83. 'pesticides'=>$task_pesticides_info,
  84. 'unitTaskList'=>['rows'=>$unitTaskList_info,'total'=>$unitTaskList_total],
  85. 'underTaskList'=>['rows'=>$underTaskList_info,'total'=>$underTaskList_total],
  86. 'reportTaskList'=>['rows'=>$reportTaskList_info,'total'=>$reportTaskList_total],
  87. 'modelInfo'=>$task_model_info,
  88. ];
  89. return $data;
  90. }
  91. }