ApiService.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: qiuzijian
  5. * Date: 6/22/24
  6. * Time: 12:34 PM
  7. */
  8. namespace Modules\Admin\Services;
  9. use App\Enum\ApiEnum;
  10. use Illuminate\Support\Facades\Cache;
  11. use Illuminate\Support\Facades\DB;
  12. use Illuminate\Support\Facades\Log;
  13. use Modules\Admin\Entities\Menu;
  14. class ApiService{
  15. public function __construct()
  16. {
  17. }
  18. //网格化整改
  19. public static function editConition($params)
  20. {
  21. $result['status'] = true;
  22. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  23. $result['data'] = [];
  24. $update = [
  25. 'zgzp' => $params['zgpz'],
  26. 'jcwt' => '无'
  27. ];
  28. DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('id',$params['id'])->update($update);
  29. DB::connection('mysql_fwe10')->table('uf_zhxx_qlctzgg')->where('gglx_obj',$params['id'])->update(['IS_DELETE'=>1]);
  30. return $result;
  31. }
  32. //网格化录入
  33. public static function addConition($params)
  34. {
  35. $result['status'] = true;
  36. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  37. $result['data'] = [];
  38. //区域字典录入
  39. $area = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->where('szxmc',$params['xjdw'])->where('IS_DELETE',0)->orderBy('areaid','desc')->get();
  40. $is_insert = true;
  41. if(count($area) > 0){
  42. for($i=0;$i<count($area);$i++){
  43. if($params['jcqy'] == $area[$i]->qymc){
  44. $is_insert = false;
  45. }
  46. }
  47. }
  48. if($is_insert){
  49. $data['ID'] = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
  50. $data['FORM_DATA_ID'] = $data['ID'];
  51. $data['DATA_INDEX'] = 0.0;
  52. $data['CREATE_TIME'] = date('Y-m-d H:i:s');
  53. $data['TENANT_KEY'] = 't1zz9w8165';
  54. $data['IS_DELETE'] = 0;
  55. $data['DELETE_TYPE'] = 0;
  56. $data['FT_STATUS'] = 0;
  57. if(count($area) > 0){
  58. preg_match_all('/[0-9]+/', $area[0]->areaid, $matches);
  59. if(isset($matches[0][0])){
  60. $data['areaid'] = $params['xjdw'].($matches[0][0] + 1);
  61. }
  62. }else{
  63. $data['areaid'] = $params['xjdw'].'1';
  64. }
  65. $data['qymc'] = $params['jcqy'];
  66. $data['szxmc'] = $params['xjdw'];
  67. DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->insert($data);
  68. }
  69. //巡检记录录入
  70. $id = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
  71. $insert = [
  72. 'ID' => $id,
  73. 'FORM_DATA_ID' => $id,
  74. 'DATA_INDEX' => 0.0,
  75. 'CREATE_TIME' => date('Y-m-d H:i:s'),
  76. 'TENANT_KEY' => 't1zz9w8165',
  77. 'IS_DELETE' => 0,
  78. 'DELETE_TYPE' => 0,
  79. 'FT_STATUS' => 0
  80. ];
  81. if (isset($params['jcqy'])) {
  82. $insert['xjqy'] = $params['jcqy'];
  83. }
  84. if (isset($params['dkpz'])) {
  85. $insert['dkpz'] = $params['dkpz'];
  86. }
  87. if (isset($params['lrmc']) && isset($params['lrr'])) {
  88. $insert['lrr'] = $params['lrmc'] . '|' . $params['lrr'];
  89. }
  90. if (isset($params['jclx'])) {
  91. $insert['jclx'] = $params['jclx'];
  92. }
  93. if (isset($params['lrsj'])) {
  94. $insert['lrsj'] = $params['lrsj'];
  95. }
  96. if (isset($params['dwmc'])) {
  97. $insert['dwmc'] = $params['dwmc'];
  98. }
  99. if (isset($params['jcwt'])) {
  100. $insert['jcwt'] = $params['jcwt'];
  101. }
  102. if (isset($params['xjdw'])) {
  103. $insert['xjdw'] = $params['xjdw'];
  104. }
  105. if (isset($params['wtms'])) {
  106. $insert['wtms'] = $params['wtms'];
  107. }
  108. if (isset($params['sjr'])) {
  109. $insert['sjr'] = $params['sjr'];
  110. }
  111. if (isset($params['lat'])) {
  112. $insert['lat'] = $params['lat'];
  113. }
  114. if (isset($params['lng'])) {
  115. $insert['lng'] = $params['lng'];
  116. }
  117. if (isset($params['dkwz'])) {
  118. $insert['dkwz'] = $params['dkwz'];
  119. }
  120. if($params['jcwt'] == '有'){
  121. $insert['zgr'] = $params['zgr'];
  122. }
  123. DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->insert($insert);
  124. //发通知
  125. if($params['jcwt'] == '有'){
  126. $tzgg_first = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->orderBy('CREATE_TIME','desc')->limit(1)->get();
  127. $id = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
  128. $zgr_name = explode('|',$params['zgr'])[0];
  129. $tzgg = [
  130. 'ID' => $id,
  131. 'FORM_DATA_ID' => $id,
  132. 'DATA_INDEX' => 0.0,
  133. 'CREATE_TIME' => date('Y-m-d H:i:s'),
  134. 'TENANT_KEY' => 't1zz9w8165',
  135. 'IS_DELETE' => 0,
  136. 'DELETE_TYPE' => 0,
  137. 'FT_STATUS' => 0,
  138. 'gglx' => 3,
  139. 'gglx_obj' => $tzgg_first[0]->ID,
  140. 'ggrq' => date('Y-m-d H:i:s'),
  141. 'ggnr' => $zgr_name.',你有一条巡检记录需要整改,请及时'
  142. ];
  143. DB::connection('mysql_fwe10')->table('uf_zhxx_qlctzgg')->insert($tzgg);
  144. }
  145. return $result;
  146. }
  147. //网格化人员轨迹查询条件
  148. public static function getQueryConitions($date = '')
  149. {
  150. $result['status'] = true;
  151. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  152. $result['data'] = [];
  153. if (!$date) {
  154. $date = date('Y-m-d', time());
  155. }
  156. // $depart = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->pluck('szxmc')->toArray();
  157. // $depart = array_unique($depart);
  158. // $depart = array_values($depart);
  159. // $data = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'))->pluck('xjdw')->toArray();
  160. $data = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('lrsj', '>=', DB::raw("DATE_SUB(NOW(), INTERVAL 6 MONTH)"))->pluck('xjdw')->toArray();
  161. $counts = array_count_values($data);// 1. 统计每个值的出现次数
  162. arsort($counts);// 2. 按出现次数降序排序
  163. $depart = array_keys($counts);// 3. 只保留键(去重),并按频率排序
  164. $depart_arr = [];
  165. foreach ($depart as $key => $val) {
  166. $depart_arr[$key] = [
  167. 'name' => $val
  168. ];
  169. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
  170. ->where('xjdw', $val)
  171. ->where('lrsj', 'like', '%' . $date . '%')
  172. ->groupBy('lrr')->select(
  173. [
  174. 'lrr'
  175. ]
  176. )->get();
  177. if(count($query) > 0){
  178. for($i=0;$i<count($query);$i++){
  179. $lrr = explode('|',$query[$i]->lrr);
  180. $query[$i]->person_name = $lrr[0];
  181. $query[$i]->person_id = $lrr[1];
  182. }
  183. }
  184. $query = json_decode($query);
  185. $depart_arr[$key]['person_list'] = $query;
  186. }
  187. $result['data'] = $depart_arr;
  188. return $result;
  189. }
  190. //网格化人员轨迹
  191. public static function getPersonTravel($person_id, $depart, $date = '')
  192. {
  193. $result['status'] = true;
  194. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  195. $result['data'] = [];
  196. if (!$date) {
  197. $date = date('Y-m-d', time());
  198. }
  199. $res = [];
  200. $area_arr = [];
  201. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
  202. ->where('lrr', $person_id)
  203. ->where('lrsj', 'like', '%' . $date . '%')
  204. ->where('xjdw', $depart)
  205. ->orderBy('create_time', 'asc')->get();
  206. $query = json_decode($query);
  207. $result['list2'] = [];
  208. if ($query) {
  209. foreach ($query as $key => $val) {
  210. // dd($val);
  211. if (!in_array($val->xjqy, $area_arr)) {
  212. $res[] = [
  213. 'area' => $val->xjqy,
  214. 'date' => $val->lrsj,
  215. 'data_id' => $val->ID,
  216. 'url' => 'http://anstatic.nxmy.com:8011/assets/html/xixuan/pages/detail.html?id='.$val->ID,
  217. ];
  218. $area_arr[] = $val->xjqy;
  219. }
  220. $result['list2'][$key]['area'] = $val->xjqy;
  221. $result['list2'][$key]['time'] = $val->CREATE_TIME;
  222. $result['list2'][$key]['data_id'] = $val->ID;
  223. }
  224. $area_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')
  225. ->whereNotIn('qymc', $area_arr)
  226. ->where('szxmc', $depart)->where('IS_DELETE',0)->orderBy('areaid', 'asc')->get();
  227. foreach ($area_list as $area) {
  228. $res[] = [
  229. 'area' => $area->qymc,
  230. 'date' => '',
  231. 'data_id' => '',
  232. 'url' => '',
  233. ];
  234. }
  235. $result['list1'] = $res;
  236. }
  237. return $result;
  238. }
  239. //网格化巡检记录查询条件
  240. public static function getResultConition()
  241. {
  242. $result['status'] = true;
  243. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  244. $result['data'] = [];
  245. // $area_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->pluck('szxmc')->toArray();
  246. // $area_list = array_unique($area_list);
  247. // $area_list = array_values($area_list);
  248. $area_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->pluck('szxmc')->toArray();
  249. $area_list = array_unique($area_list);
  250. $area_list = array_values($area_list);
  251. // $data = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'))->pluck('xjdw')->toArray();
  252. $data = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('lrsj', '>=', DB::raw("DATE_SUB(NOW(), INTERVAL 6 MONTH)"))->pluck('xjdw')->toArray();
  253. $counts = array_count_values($data);// 1. 统计每个值的出现次数
  254. arsort($counts);// 2. 按出现次数降序排序
  255. $area_list = array_keys($counts);// 3. 只保留键(去重),并按频率排序
  256. $result['data'] = $area_list;
  257. return $result;
  258. }
  259. //网格化巡检记录查询
  260. public static function getResultRecord($depart = 'all', $date_type = 'week')
  261. {
  262. $result['status'] = true;
  263. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  264. $result['data'] = [];
  265. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl');
  266. if ($depart != 'all') {
  267. $query = $query->where('xjdw', $depart);
  268. }
  269. if ($date_type == 'month') {
  270. $query = $query->where(DB::raw('MONTH(lrsj)'), DB::raw('MONTH(CURDATE())'));
  271. } else if ($date_type == 'quarter') {
  272. $query = $query->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'));
  273. } else {
  274. $query = $query->where(DB::raw('WEEK(lrsj)'), DB::raw('WEEK(CURDATE())'));
  275. }
  276. $query = $query->get();
  277. $people_list = [];
  278. if(count($query) > 0){
  279. for($i=0;$i<count($query);$i++){
  280. if(!in_array($query[$i]->lrr,$people_list)){
  281. $people_list[] = $query[$i]->lrr;
  282. }
  283. }
  284. }
  285. $list = [];
  286. $pie = [];
  287. if(count($people_list) > 0){
  288. for($i=0;$i<count($people_list);$i++){
  289. $area_list = [];
  290. for($j=0;$j<count($query);$j++){
  291. if($people_list[$i] == $query[$j]->lrr){
  292. $list[$i]['department'] = str_replace("洗选中心", "", $query[$j]->xjdw);
  293. $area_list[] = $query[$j]->xjqy;
  294. }
  295. }
  296. $unit_zd = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->where('szxmc',$list[$i]['department'])->where('IS_DELETE',0)->pluck('qymc');
  297. $minCount = PHP_INT_MAX;
  298. foreach ($unit_zd as $itemB) {
  299. // 如果数组A中不包含数组B中的某个项,则直接退出
  300. if (!in_array($itemB, $area_list)) {
  301. $minCount = 0;
  302. }
  303. // 计算该项在数组A中出现的次数
  304. $count = 0;
  305. foreach ($area_list as $itemA) {
  306. if ($itemA == $itemB) {
  307. $count++;
  308. }
  309. }
  310. // 更新最少的数量
  311. $minCount = min($minCount, $count);
  312. }
  313. $lrr = explode('|',$people_list[$i]);
  314. $list[$i]['lastname'] = $lrr[0];
  315. $list[$i]['person_id'] = $lrr[1];
  316. $list[$i]['count'] = $minCount;
  317. $pie[$i]['name'] = $lrr[0];
  318. $pie[$i]['value'] = $minCount;
  319. }
  320. }
  321. usort($list, function($a, $b) {
  322. return $b['count'] <=> $a['count']; // 降序
  323. });
  324. $result['data']['list'] = $list;
  325. $result['data']['pie'] = $pie;
  326. return $result;
  327. }
  328. //全流程巡检记录排名
  329. public static function getRecordSort($depart,$start_date,$end_date)
  330. {
  331. // $result['status'] = true;
  332. // $result['msg'] = ApiEnum::RETURN_SUCCESS;
  333. // $result['data'] = [];
  334. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl');
  335. if ($depart != 'all') {
  336. $query = $query->where('xjdw', $depart);
  337. }
  338. $query = $query->whereBetween('lrsj',[$start_date,$end_date]);
  339. $query = $query->get();
  340. $people_list = [];
  341. if(count($query) > 0){
  342. for($i=0;$i<count($query);$i++){
  343. if(!in_array($query[$i]->lrr,$people_list)){
  344. $people_list[] = $query[$i]->lrr;
  345. }
  346. }
  347. }
  348. $list = [];
  349. // $pie = [];
  350. if(count($people_list) > 0){
  351. for($i=0;$i<count($people_list);$i++){
  352. $area_list = [];
  353. for($j=0;$j<count($query);$j++){
  354. if($people_list[$i] == $query[$j]->lrr){
  355. $list[$i]['department'] = str_replace("洗选中心", "", $query[$j]->xjdw);
  356. $area_list[] = $query[$j]->xjqy;
  357. }
  358. }
  359. $unit_zd = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->where('szxmc',$list[$i]['department'])->where('IS_DELETE',0)->pluck('qymc');
  360. $minCount = PHP_INT_MAX;
  361. foreach ($unit_zd as $itemB) {
  362. // 如果数组A中不包含数组B中的某个项,则直接退出
  363. if (!in_array($itemB, $area_list)) {
  364. $minCount = 0;
  365. }
  366. // 计算该项在数组A中出现的次数
  367. $count = 0;
  368. foreach ($area_list as $itemA) {
  369. if ($itemA == $itemB) {
  370. $count++;
  371. }
  372. }
  373. // 更新最少的数量
  374. $minCount = min($minCount, $count);
  375. }
  376. $lrr = explode('|',$people_list[$i]);
  377. $list[$i]['lastname'] = $lrr[0];
  378. $list[$i]['person_id'] = $lrr[1];
  379. $list[$i]['count'] = $minCount;
  380. // $pie[$i]['name'] = $lrr[0];
  381. // $pie[$i]['value'] = $minCount;
  382. }
  383. }
  384. usort($list, function($a, $b) {
  385. return $b['count'] <=> $a['count']; // 降序
  386. });
  387. if(count($list) > 0){
  388. for($i=0;$i<count($list);$i++){
  389. $list[$i]['sort'] = $i+1;
  390. }
  391. }
  392. $result['list'] = $list;
  393. // $result['data']['pie'] = $pie;
  394. return $result;
  395. }
  396. //网格化巡检记录列表
  397. public static function getResultList($person_id, $depart = 'all', $date_type = 'week')
  398. {
  399. $result['status'] = true;
  400. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  401. $result['data'] = [];
  402. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('lrr', 'like' ,'%'.$person_id.'%');
  403. if ($depart != 'all') {
  404. $query = $query->where('xjdw', $depart);
  405. }
  406. if ($date_type == 'month') {
  407. $query = $query->where(DB::raw('MONTH(lrsj)'), DB::raw('MONTH(CURDATE())'));
  408. } else if ($date_type == 'quarter') {
  409. $query = $query->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'));
  410. } else {
  411. $query = $query->where(DB::raw('WEEK(lrsj)'), DB::raw('WEEK(CURDATE())'));
  412. }
  413. $query = $query->select(
  414. [
  415. 'xjqy',
  416. DB::raw('DATE(lrsj) as lrdate'),
  417. 'lrr',
  418. 'xjdw',
  419. 'ID'
  420. ]
  421. )->get();
  422. $data = [];
  423. foreach ($query as $key => $val) {
  424. $lrr = explode('|',$val->lrr);
  425. $data[] = [
  426. 'lastname' => $lrr[0],
  427. 'person_id' => $val->lrr,
  428. 'depart' => $val->xjdw,
  429. 'date' => $val->lrdate,
  430. 'xjqy' => $val->xjqy,
  431. 'data_id' => $val->ID
  432. ];
  433. }
  434. $data_arr = array_column($data, 'date');
  435. array_multisort($data_arr, SORT_DESC, $data);
  436. $result['data']['list'] = $data;
  437. return $result;
  438. }
  439. //网格化巡检记录列表明细
  440. public static function getResultDlist($person_id, $depart, $date)
  441. {
  442. $result['status'] = true;
  443. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  444. $result['data'] = [];
  445. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
  446. ->where('lrr', $person_id)
  447. ->where('xjdw', $depart)
  448. ->where('lrsj', 'like', $date . '%')
  449. ->orderBy('lrsj', 'desc')
  450. ->select([
  451. 'ID',
  452. 'lrr',
  453. 'xjqy',
  454. 'lrsj',
  455. ])->get();
  456. if(count($query) > 0){
  457. for($i=0;$i<count($query);$i++){
  458. $lrr = explode('|',$query[$i]->lrr);
  459. $query[$i]->lrr_name = $lrr[0];
  460. }
  461. }
  462. $query = json_decode($query);
  463. $result['data'] = $query;
  464. return $result;
  465. }
  466. //网格化巡检记录明细
  467. public static function getResultDetails($id)
  468. {
  469. $result['status'] = true;
  470. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  471. $result['data'] = [];
  472. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
  473. ->where('id', $id)
  474. ->select(
  475. [
  476. 'lrr',
  477. 'dwmc',
  478. 'xjdw',
  479. 'xjqy',
  480. 'jclx',
  481. 'lrsj',
  482. 'jcwt',
  483. 'wtms',
  484. 'dkpz',
  485. 'zgzp',
  486. 'zgr',
  487. 'dkwz',
  488. 'CREATE_TIME'
  489. ]
  490. )->get();
  491. if(count($query) > 0){
  492. for($i=0;$i<count($query);$i++){
  493. $lrr = explode('|',$query[$i]->lrr);
  494. $query[$i]->lrr_name = $lrr[0];
  495. }
  496. }
  497. $query = json_decode($query);
  498. $result['data'] = $query;
  499. return $result;
  500. }
  501. //网格化巡检记录
  502. public static function getFinalList($start_date, $end_date, $depart = '', $person = '')
  503. {
  504. $result['status'] = true;
  505. $result['msg'] = ApiEnum::RETURN_SUCCESS;
  506. $result['data'] = [];
  507. $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl');
  508. if ($start_date == $end_date) {
  509. $query = $query->where('lrsj', 'like', $start_date . '%');
  510. } else {
  511. $query = $query->where('lrsj', '>=', $start_date . ' 00:00:00')->where('lrsj', '<=', $end_date . ' 23:59:59');
  512. }
  513. if ($depart) {
  514. $query = $query->where('xjdw', $depart);
  515. }
  516. if ($person) {
  517. // $person_id = DB::connection('mysql_fwview')->table('hrmresource')
  518. // ->where('lastname', 'like', '%' . $person . '%')->pluck('id')->all();1
  519. $query = $query->where('lrr', 'like','%'.$person.'%');
  520. }
  521. $query = $query->orderBy('lrdate', 'desc')->groupBy('lrsj', 'xjdw', 'lrr','jcwt','id','zgr')
  522. ->select(
  523. [
  524. DB::raw('DATE(lrsj) as lrdate'),
  525. 'xjdw',
  526. 'lrr',
  527. 'jcwt',
  528. 'id',
  529. 'zgr'
  530. ]
  531. )
  532. ->get();
  533. $data = [];
  534. foreach ($query as $key => $val) {
  535. $lastname = explode('|',$val->lrr)[0];
  536. if($val->jcwt == '有'){
  537. $is_complete = 0;
  538. }else{
  539. $is_complete = 1;
  540. }
  541. $zgr = explode('|',$val->zgr);
  542. $zgr_id = '';
  543. if(count($zgr) > 1){
  544. $zgr_id = $zgr[1];
  545. }
  546. $data[] = [
  547. 'depart' => $val->xjdw,
  548. 'lastname' => $lastname,
  549. 'person_id' => $val->lrr,
  550. 'date' => $val->lrdate,
  551. 'is_complete' => $is_complete,
  552. 'id' => $val->id,
  553. 'zgr_id' => $zgr_id
  554. ];
  555. }
  556. $result['data'] = $data;
  557. return $result;
  558. }
  559. }