QianTouBus.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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\Arr;
  15. use app\common\lib\auth\JwtAuth;
  16. class QianTouBus
  17. {
  18. private $uid;
  19. public function __construct()
  20. {
  21. $jwtAuth=JwtAuth::getInstance(); //实例化jwtAuth
  22. $this->uid = $jwtAuth->getUid(); //setRybh是在middleware/jwtAuth中完成的
  23. }
  24. //获取机构与地域信息
  25. public function getUndertakeList($data)
  26. {
  27. $result = (new Undertake())->getItemByTaskId($data['task_id'],$data['pageNum'],$data['pageSize']);
  28. $total = (new Undertake())->countItemByTaskId($data['task_id']);
  29. return ['rows' => $result, 'total' => $total];
  30. }
  31. //查询任务列表数据
  32. public function selectTaskList($data)
  33. {
  34. $where=[
  35. ['unit_id','=',$this->uid],
  36. ['task_class', '=', $data['task_class']],
  37. ['ispublic','>',0]//获取到的任务状态必须大于0,是已经发布过的任务
  38. ];
  39. if ($data['task_name'] != '' ) $where[] = ['task_name', 'LIKE', '%' . $data['task_name'] . '%'];
  40. if ($data['ispublic'] != '') $where[] = ['ispublic', '=', $data['ispublic']];
  41. if ($data['year']!='') $where[] = ['year', '=', $data['year']];
  42. if ($data['starttime'] != '') $where[] = ['starttime', '>=', $data['starttime']];
  43. if ($data['endtime'] != '') $where[] = ['endtime', '<=', $data['endtime']];
  44. $data = (new Orgs())->selectCcjcData($where,$data['pageNum'],$data['pageSize']);
  45. $count =(new Orgs())->countCcjcData($where);
  46. return ['rows'=>$data,'total'=>$count];
  47. }
  48. //牵头单位发布任务
  49. public function releaseTask($task_id)
  50. {
  51. //发布任务之前检查一下任务是否绑定模型,没绑定模型禁止发布
  52. $test_model_id = (new Ccjc())->getTaskInfoByTaskID($task_id)['test_model_id'];
  53. if ($test_model_id == '') {
  54. throw new ApiException(config('status.none_model_info'));
  55. }
  56. //已经绑定模型,允许发布任务
  57. $data=['ispublic' => 5];//发布任务
  58. $result = (new Ccjc())->updateInfoByTaskID($task_id, $data);
  59. return $result;
  60. }
  61. //获取任务基本信息
  62. public function getTaskInfo($tmp_data)
  63. {
  64. $task_id = $tmp_data['task_id'];
  65. $pageNum = $tmp_data['pageNum'];
  66. $pageSize = $tmp_data['pageSize'];
  67. $uid=$this->uid;
  68. // //判断 在orgs表中的当前任务的id所对应的unit_id是否等于uid
  69. // $unit_id = (new Orgs())->getUnitIdByTaskID($task_id)['unit_id'];
  70. // if ($unit_id != $uid) {
  71. // throw new ApiException(config('status.err_task_auth'));
  72. // }
  73. //任务信息
  74. $task_info = (new Ccjc())->getTaskInfoByTaskID($task_id);
  75. $task_releaser_info = (new Jgry())->getJgryInfoByRymc($task_info['releaser']);
  76. //获取uid下创建的所有模型信息
  77. if (isset($task_info['test_model_id'])) {
  78. $task_product_info = (new TestModel())->getProductInfo($task_info['test_model_id']);
  79. $task_pesticides_info = (new TestModel())->getPesticidesInfo($task_info['test_model_id']);
  80. $task_model_info=(new TestModel())->getModelInfoByModelID($task_info['test_model_id']);
  81. }else{
  82. $task_product_info ='';
  83. $task_pesticides_info='';
  84. $task_model_info='';
  85. }
  86. //牵头的任务列表的信息(抽样)
  87. $unitTaskList_info=(new Undertake())->selectTaskListByTaskIdAndUid($task_id,$uid,'','',$pageNum,$pageSize);
  88. $unitTaskList_total = (new Undertake())->countTaskListByTaskIdAndUid($task_id, $uid);
  89. //承担的任务列表的信息(检测)
  90. $underTaskList_info=(new Undertake())->selectTaskListByTaskIdAndUid($task_id,'',$uid,'',$pageNum,$pageSize);
  91. $underTaskList_total = (new Undertake())->countTaskListByTaskIdAndUid($task_id, '',$uid);
  92. //报告上传的任务列表信息(报告上传)
  93. $reportTaskList_info=(new Undertake())->selectTaskListByTaskIdAndUid($task_id,'','',$uid,$pageNum,$pageSize);
  94. $reportTaskList_total = (new Undertake())->countTaskListByTaskIdAndUid($task_id, '','',$uid);
  95. $data=[
  96. 'taskInfo'=>$task_info,
  97. 'releaserInfo'=>$task_releaser_info,
  98. 'product'=>$task_product_info,
  99. 'pesticides'=>$task_pesticides_info,
  100. 'unitTaskList'=>['rows'=>$unitTaskList_info,'total'=>$unitTaskList_total],
  101. 'underTaskList'=>['rows'=>$underTaskList_info,'total'=>$underTaskList_total],
  102. 'reportTaskList'=>['rows'=>$reportTaskList_info,'total'=>$reportTaskList_total],
  103. 'modelInfo'=>$task_model_info,
  104. ];
  105. return $data;
  106. }
  107. //获取任务基本信息
  108. public function getTaskBaseInfo($data)
  109. {
  110. $task_info = (new Ccjc())->getTaskInfoByTaskID($data['task_id'])->toArray();
  111. return $task_info;
  112. }
  113. }