Headcheck.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sicilon_IT
  5. * Date: 2020/1/14
  6. * Time: 14:45
  7. */
  8. namespace app\index\controller;
  9. use app\index\logic\checkmanger;
  10. use app\index\logic\workercheck;
  11. use think\Controller;
  12. class Headcheck extends Controller{
  13. /*
  14. * 20200304
  15. * edit
  16. * 返回cprojectid,作为pid
  17. */
  18. public function getgid(){
  19. $userinfo = request() -> param();
  20. $logicworker=new workercheck();
  21. $res=$logicworker->isheaderbytel($userinfo['tel']);
  22. if ($res['r_code']===0){
  23. $res['errmsg']='非员工';
  24. }
  25. if ($res['r_code']===9902){
  26. $res['errmsg']='非班组长';
  27. }
  28. $res_r['code']=200;
  29. $res_r['resultData']=$res;
  30. return json_encode($res_r,320);
  31. }
  32. public function getgidV2(){
  33. $userinfo = request() -> param();
  34. $logicworker=new workercheck();
  35. $res=$logicworker->isheaderbytelV2($userinfo);
  36. if ($res['r_code']===0){
  37. $res['errmsg']='非员工';
  38. }
  39. if ($res['r_code']===9902){
  40. $res['errmsg']='非班组长';
  41. }
  42. $res_r['code']=200;
  43. $res_r['resultData']=$res;
  44. return json_encode($res_r,320);
  45. }
  46. public function getgidforapp(){
  47. $userinfo = request() -> param();
  48. $logicworker=new workercheck();
  49. $res=$logicworker->isheaderbytel($userinfo['tel']);
  50. $res_r['msg']="班组长";
  51. if ($res['r_code']===0){
  52. $res_r['msg']='非员工';
  53. }
  54. if ($res['r_code']===9902){
  55. $res_r['msg']='非班组长';
  56. }
  57. $res_r['code']=200;
  58. $res_r['data']=$res;
  59. return json_encode($res_r,320);
  60. }
  61. public function getgidforappV2(){
  62. $userinfo = request() -> param();
  63. $logicworker=new workercheck();
  64. $res=$logicworker->isheaderbytelV2($userinfo);
  65. $res_r['msg']="班组长";
  66. if ($res['r_code']===0){
  67. $res_r['msg']='非员工';
  68. }
  69. if ($res['r_code']===9902){
  70. $res_r['msg']='非班组长';
  71. }
  72. $res_r['code']=200;
  73. $res_r['data']=$res;
  74. return json_encode($res_r,320);
  75. }
  76. public function getshift(){
  77. $userinfo = request() -> param();
  78. $logicworker=new workercheck();
  79. $res=$logicworker->getshiftbywid($userinfo['wid']);
  80. $res_r['code']=200;
  81. $res_r['resultData']=$res;
  82. return json_encode($res_r);
  83. }
  84. /*
  85. * 20200729
  86. */
  87. public function getshiftwithcount(){
  88. $userinfo = request() -> param();
  89. $logicworker=new workercheck();
  90. $res=$logicworker->getshiftandcountbywid($userinfo['wid'],$userinfo['gid']);
  91. $res_r['code']=200;
  92. $res_r['resultData']=$res;
  93. return json_encode($res_r);
  94. }
  95. /*
  96. * 20230218
  97. */
  98. public function getshiftwithcountforapp(){
  99. $userinfo = request() -> param();
  100. $logicworker=new workercheck();
  101. $res=$logicworker->getshiftandcountbywid($userinfo['wid'],$userinfo['gid']);
  102. $res_r['code']=200;
  103. $res_r['msg']='查询成功';
  104. $res_r['data']=$res;
  105. return json_encode($res_r);
  106. }
  107. /*
  108. * 获取七天的日期
  109. */
  110. public function getshiftdate(){
  111. //$userinfo = request() -> param();
  112. $logicworker=new workercheck();
  113. $res=$logicworker->getcheckdate();
  114. // $res=$logicworker->getshiftbywid($userinfo['wid']);
  115. $res_r['code']=200;
  116. $res_r['resultData']=$res;
  117. return json_encode($res_r);
  118. }
  119. /*20210504
  120. * 获取七天的日期,以及相应的数据
  121. */
  122. public function getshiftdatecheckinfo(){
  123. $userinfo = request() -> param();
  124. $logicworker=new workercheck();
  125. $res=$logicworker->getcheckdate();
  126. // $res=$logicworker->getshiftbywid($userinfo['wid']);
  127. $l_opr=new checkmanger();
  128. foreach($res as &$date){
  129. $recordinfo=$l_opr->getheadcheckoprwithdate($userinfo['wid'],$date['date']);
  130. if(!empty($recordinfo)){
  131. $date['checkoprlist']=$recordinfo;
  132. }else{
  133. $date['checkoprlist']=array();
  134. }
  135. }
  136. $res_r['code']=200;
  137. $res_r['resultData']=$res;
  138. return json_encode($res_r,320);
  139. }
  140. /*
  141. * 20230222
  142. */
  143. public function getshiftdatecheckinfoforapp(){
  144. $userinfo = request() -> param();
  145. $logicworker=new workercheck();
  146. $res=$logicworker->getcheckdate();
  147. // $res=$logicworker->getshiftbywid($userinfo['wid']);
  148. $l_opr=new checkmanger();
  149. foreach($res as &$date){
  150. $recordinfo=$l_opr->getheadcheckoprwithdate($userinfo['wid'],$date['date']);
  151. if(!empty($recordinfo)){
  152. $date['checkoprlist']=$recordinfo;
  153. }else{
  154. $date['checkoprlist']=array();
  155. }
  156. }
  157. $res_r['code']=200;
  158. $res_r['msg']="请求成功";
  159. $res_r['data']=$res;
  160. return json_encode($res_r,320);
  161. }
  162. /*
  163. * 20200304
  164. * 增加了一个wid参数,
  165. * @todo 因为前端未上线,所以后端的新参数先进行判断,并给默认值,待前端上线后再修改
  166. */
  167. public function getworkerlist(){
  168. $userinfo = request() -> param();
  169. $logicworker=new workercheck();
  170. $shift=$userinfo['shift'];
  171. $checkdate=$userinfo['checkdate'];
  172. $gid=$userinfo['gid'];
  173. //todo 前端上线后取消判断和默认值
  174. if (array_key_exists('wid',$userinfo)){
  175. $wid=$userinfo['wid'];
  176. }else{
  177. $wid=0;
  178. }
  179. $res=$logicworker->getworkerlistbyhead($gid,$checkdate,$shift,$wid);
  180. $res_r['code']=200;
  181. $res_r['resultData']=$res;
  182. return json_encode($res_r,320);
  183. }
  184. /*
  185. * 20230218
  186. * 考勤
  187. */
  188. public function getworkerlistforapp(){
  189. $userinfo = request() -> param();
  190. $logicworker=new workercheck();
  191. $shift=$userinfo['shift'];
  192. $checkdate=$userinfo['checkdate'];
  193. $gid=$userinfo['gid'];
  194. //todo 前端上线后取消判断和默认值
  195. if (array_key_exists('wid',$userinfo)){
  196. $wid=$userinfo['wid'];
  197. }else{
  198. $wid=0;
  199. }
  200. $res=$logicworker->getworkerlistbyhead($gid,$checkdate,$shift,$wid);
  201. $res_r['code']=200;
  202. $res_r['msg']="查询成功";
  203. $res_r['data']=$res;
  204. return json_encode($res_r,320);
  205. }
  206. public function savechecklist(){
  207. //
  208. $userinfo = request() -> param();
  209. // var_dump($userinfo);
  210. // $checklist=json_decode($userinfo['checklist'],true);
  211. // $checklist=json_decode($userinfo['checklist']);
  212. // $checklist=array();
  213. $userinfo['checklist']=htmlspecialchars_decode($userinfo['checklist']);
  214. $checklist=json_decode($userinfo['checklist'],true);
  215. // var_dump($checklist1);
  216. // $checklist=$userinfo['checklist'];
  217. // var_dump($checklist);
  218. $checkoprinfo['checkdate']=$userinfo['checkdate'];
  219. $checkoprinfo['checkorder']=$userinfo['checkorder'];
  220. $checkoprinfo['headid']=$userinfo['headid'];
  221. if (array_key_exists('gid',$userinfo)){
  222. $checkoprinfo['gid']=$userinfo['gid'];
  223. }else{
  224. $checkoprinfo['gid']=0;
  225. }
  226. $checkoprinfo['isopr']=1;
  227. for($i=0;$i<count($checklist);$i++){
  228. $checklist[$i]['oprtime']=date('Y:m:d H:i:s');
  229. }
  230. $logicworker=new workercheck();
  231. // $scount=$logicworker->oprcheckinfo($checklist,$checkoprinfo);
  232. // $res_r['code']=200;
  233. // $res_r['resultData']=$scount;
  234. $scount=$logicworker->savedaycheckinfo($checklist,$checkoprinfo);
  235. $res_r['code']=200;
  236. $res_r['resultData']=$scount;
  237. return json_encode($res_r);
  238. }
  239. /*
  240. * 20230218
  241. * forapp
  242. */
  243. public function savechecklistforapp(){
  244. //
  245. $userinfo = request() -> param();
  246. // var_dump($userinfo);
  247. // $checklist=json_decode($userinfo['checklist'],true);
  248. // $checklist=json_decode($userinfo['checklist']);
  249. // $checklist=array();
  250. $userinfo['checklist']=htmlspecialchars_decode($userinfo['checklist']);
  251. $checklist=json_decode($userinfo['checklist'],true);
  252. // var_dump($checklist1);
  253. // $checklist=$userinfo['checklist'];
  254. // var_dump($checklist);
  255. $checkoprinfo['checkdate']=$userinfo['checkdate'];
  256. $checkoprinfo['checkorder']=$userinfo['checkorder'];
  257. $checkoprinfo['headid']=$userinfo['headid'];
  258. if (array_key_exists('gid',$userinfo)){
  259. $checkoprinfo['gid']=$userinfo['gid'];
  260. }else{
  261. $checkoprinfo['gid']=0;
  262. }
  263. $checkoprinfo['isopr']=1;
  264. for($i=0;$i<count($checklist);$i++){
  265. $checklist[$i]['oprtime']=date('Y:m:d H:i:s');
  266. }
  267. $logicworker=new workercheck();
  268. // $scount=$logicworker->oprcheckinfo($checklist,$checkoprinfo);
  269. // $res_r['code']=200;
  270. // $res_r['resultData']=$scount;
  271. $scount=$logicworker->savedaycheckinfo($checklist,$checkoprinfo);
  272. $res_r['code']=200;
  273. $res_r['msg']="提交成功";
  274. $res_r['data']=$scount;
  275. return json_encode($res_r);
  276. }
  277. /*
  278. * 2020215 此方法待修改,增加月参数,按月获取,不改此接口,但增加一个,封闭开放原则
  279. */
  280. public function getusercheckrecord(){
  281. $userinfo = request() -> param();
  282. $logicworker=new workercheck();
  283. $wid=$userinfo['wid'];
  284. $r_list=$logicworker->getworkercheckinfobyid($wid);
  285. $res_r['code']=200;
  286. $res_r['resultData']=$r_list;
  287. return json_encode($res_r,320);
  288. }
  289. /*
  290. * 2020215 按封闭开放原则,增加一个按月获取工人记工详情的控制,原控制逻辑暂停
  291. */
  292. public function getusercheckrecordwihtmonth(){
  293. $userinfo = request() -> param();
  294. $logicworker=new workercheck();
  295. $wid=$userinfo['wid'];
  296. $strmonth=$userinfo['strmonth'];
  297. $r_list=$logicworker->getworkercheckinfobyidwithmonth($wid,$strmonth);
  298. $res_r['code']=200;
  299. $res_r['resultData']=$r_list;
  300. return json_encode($res_r,320);
  301. }
  302. /*
  303. * 20230222
  304. */
  305. public function getusercheckrecordwihtmonthforapp(){
  306. $userinfo = request() -> param();
  307. $logicworker=new workercheck();
  308. $wid=$userinfo['wid'];
  309. $strmonth=$userinfo['strmonth'];
  310. $r_list=$logicworker->getworkercheckinfobyidwithmonth($wid,$strmonth);
  311. $res_r['code']=200;
  312. $res_r['msg']="请求成功";
  313. $res_r['data']=$r_list;
  314. return json_encode($res_r,320);
  315. }
  316. /*
  317. * 20200208
  318. * steelxu
  319. * 取消考勤记录
  320. */
  321. public function revokecheck(){
  322. $userinfo = request() -> param();
  323. $logiccheck=new checkmanger();
  324. $result=$logiccheck->invokecheckbywid($userinfo);
  325. if (!$result){
  326. $res_r['code']=0;
  327. $res_r['resultData']=$result;
  328. }else{
  329. $res_r['code']=200;
  330. $res_r['resultData']=$result;
  331. }
  332. return json_encode($res_r,320);
  333. }
  334. /*
  335. * 20230218
  336. */
  337. public function revokecheckforapp(){
  338. $userinfo = request() -> param();
  339. $logiccheck=new checkmanger();
  340. $result=$logiccheck->invokecheckbywid($userinfo);
  341. if (!$result){
  342. $res_r['code']=0;
  343. $res_r['msg']="撤销失败";
  344. $res_r['data']=$result;
  345. }else{
  346. $res_r['code']=200;
  347. $res_r['msg']="撤销成功";
  348. $res_r['data']=$result;
  349. }
  350. return json_encode($res_r,320);
  351. }
  352. /*
  353. * 20200208
  354. * steelxu
  355. * 获取某班工长记工的记录
  356. */
  357. public function getlistbyheadwithshift(){
  358. $userinfo = request() -> param();
  359. $logiccheck=new checkmanger();
  360. $result=$logiccheck->getheadoprwithshift($userinfo);
  361. if (!$result){
  362. $res_r['code']=0;
  363. $res_r['resultData']=$result;
  364. }else{
  365. $res_r['code']=200;
  366. $res_r['resultData']=$result;
  367. }
  368. return json_encode($res_r,320);
  369. }
  370. /*
  371. * 20230218
  372. */
  373. public function getlistbyheadwithshiftforapp(){
  374. $userinfo = request() -> param();
  375. $logiccheck=new checkmanger();
  376. $result=$logiccheck->getheadoprwithshift($userinfo);
  377. if (!$result){
  378. $res_r['code']=0;
  379. $res_r['msg']="本班次未记工";
  380. $res_r['data']=$result;
  381. }else{
  382. $res_r['code']=200;
  383. $res_r['msg']="已记工人员";
  384. $res_r['data']=$result;
  385. }
  386. return json_encode($res_r,320);
  387. }
  388. /*
  389. * 20200215
  390. * steelxu
  391. * 获取按月汇总的记录,应用于工人用APP查看自己的记录
  392. */
  393. public function getchecktotallistbymonth(){
  394. $queryinfo=request()->param();
  395. $logicworker=new workercheck();
  396. $wid=$queryinfo['wid'];
  397. $r_list=$logicworker->gettotallistbywid($wid);
  398. $res_r['code']=200;
  399. $res_r['resultData']=$r_list;
  400. return json_encode($res_r,320);
  401. }
  402. /*
  403. * 20230222
  404. */
  405. public function getchecktotallistbymonthforapp(){
  406. $queryinfo=request()->param();
  407. $logicworker=new workercheck();
  408. $wid=$queryinfo['wid'];
  409. $r_list=$logicworker->gettotallistbywid($wid);
  410. $res_r['code']=200;
  411. $res_r['msg']="请求成功";
  412. $res_r['data']=$r_list;
  413. return json_encode($res_r,320);
  414. }
  415. /*
  416. * 20200317
  417. * 响应分班组数据
  418. */
  419. public function queryscoredetailbyidwithmonth(){
  420. $queryinfo=request()->param();
  421. $l_wcheck=new workercheck();
  422. $rlist=$l_wcheck->getScoreGroupbyWidWithMonth($queryinfo);
  423. if (!$rlist){
  424. $res_r['code']=0;
  425. $res_r['resultData']=$rlist;
  426. }else{
  427. $res_r['code']=200;
  428. $res_r['resultData']=$rlist;
  429. }
  430. return json_encode($res_r,320);
  431. }
  432. /*
  433. * 20230222
  434. */
  435. public function queryscoredetailbyidwithmonthforapp(){
  436. $queryinfo=request()->param();
  437. $l_wcheck=new workercheck();
  438. $rlist=$l_wcheck->getScoreGroupbyWidWithMonth($queryinfo);
  439. if (!$rlist){
  440. $res_r['code']=0;
  441. $res_r['msg']="请求失败";
  442. $res_r['data']=$rlist;
  443. }else{
  444. $res_r['code']=200;
  445. $res_r['msg']="请求成功";
  446. $res_r['data']=$rlist;
  447. }
  448. return json_encode($res_r,320);
  449. }
  450. /*
  451. * 20200531
  452. * WEB端根据项目,请求员工
  453. */
  454. public function queryuncheckworklist(){
  455. $queryinfo=request()->param();
  456. $logicworker=new workercheck();
  457. $wlist=$logicworker->getunchecklist($queryinfo);
  458. if (!$wlist){
  459. $res_r['code']=0;
  460. $res_r['resultData']='';
  461. }else{
  462. $res_r['code']=200;
  463. $res_r['resultData']=$wlist;
  464. }
  465. return json_encode($res_r,320);
  466. }
  467. /*
  468. * 20210421
  469. * 提交投诉
  470. */
  471. public function subcomplain(){
  472. $queryinfo=request()->param();
  473. $l_wcheck=new workercheck();
  474. $rid=$l_wcheck->savecomplaininf($queryinfo);
  475. if (!$rid){
  476. $res_r['code']=0;
  477. $res_r['resultData']='提交失败';
  478. }else{
  479. $res_r['code']=200;
  480. $res_r['resultData']=$rid;
  481. }
  482. return json_encode($res_r,320);
  483. }
  484. /*
  485. * 20230222
  486. */
  487. public function subcomplainforapp(){
  488. $queryinfo=request()->param();
  489. $l_wcheck=new workercheck();
  490. $rid=$l_wcheck->savecomplaininf($queryinfo);
  491. if (!$rid){
  492. $res_r['code']=0;
  493. $res_r['msg']="提交投诉失败";
  494. $res_r['data']=array();
  495. }else{
  496. $res_r['code']=200;
  497. $res_r['msg']="提交投诉成功";
  498. $res_r['data']=$rid;
  499. }
  500. return json_encode($res_r,320);
  501. }
  502. /*
  503. * 20210421
  504. */
  505. public function querycomplainlist(){
  506. $l_wcheck=new workercheck();
  507. $list=$l_wcheck->getcomplainlist();
  508. if (!$list){
  509. $res_r['code']=0;
  510. $res_r['resultData']='提交失败';
  511. }else{
  512. $res_r['code']=200;
  513. $res_r['resultData']=$list;
  514. }
  515. return json_encode($res_r,320);
  516. }
  517. /*
  518. * 20230215
  519. * 只能获取本公司的投诉
  520. * getcomplainlistbycid
  521. */
  522. public function querycomplainlistbycid(){
  523. $queryinfo=request()->param();
  524. $l_wcheck=new workercheck();
  525. $list=$l_wcheck->getcomplainlistbycid($queryinfo);
  526. if (!$list){
  527. $res_r['code']=0;
  528. $res_r['resultData']='无数据';
  529. }else{
  530. $res_r['code']=200;
  531. $res_r['resultData']=$list;
  532. }
  533. return json_encode($res_r,320);
  534. }
  535. }