Project.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sicilon_IT
  5. * Date: 2020/1/27
  6. * Time: 15:38
  7. */
  8. namespace app\index\controller;
  9. use app\index\logic\prjmanger;
  10. use app\index\logic\headmanger;
  11. use app\index\logic\workermanger;
  12. use app\index\logic\contactlogic;
  13. use think\Controller;
  14. class Project extends Controller{
  15. public function queryallprj(){
  16. $prjlogic=new prjmanger();
  17. $p_list=$prjlogic->getallprj();
  18. if ($p_list){
  19. $res_r['code']=200;
  20. $res_r['resultData']['records']=$p_list;
  21. }else{
  22. $res_r['code']=0;
  23. $res_r['errmsg']='查询失败';
  24. }
  25. return json_encode($res_r,320);
  26. }
  27. /*
  28. * 20230214
  29. * 根据web管理员身份获取所有的工地项目
  30. */
  31. public function queryallprjbycid(){
  32. $prjinfo=request() -> param();
  33. $prjlogic=new prjmanger();
  34. $p_list=$prjlogic->getallprjbycid($prjinfo);
  35. if ($p_list){
  36. $res_r['code']=200;
  37. $res_r['resultData']['records']=$p_list;
  38. }else{
  39. $res_r['code']=0;
  40. $res_r['errmsg']='查询失败';
  41. }
  42. return json_encode($res_r,320);
  43. }
  44. public function addprj(){
  45. $prjinfo=request() -> param();
  46. $prjlogic=new prjmanger();
  47. $newid=$prjlogic->addnewprj($prjinfo);
  48. if ($newid>0){
  49. $res_r['code']=200;
  50. $res_r['resultData']=$newid;
  51. }else{
  52. $res_r['code']=0;
  53. $res_r['errmsg']='添加失败';
  54. }
  55. return json_encode($res_r,320);
  56. }
  57. public function getbyid(){
  58. $qryinfo=request() -> param();
  59. $prjlogic=new prjmanger();
  60. $prjinfo=$prjlogic->getbyid($qryinfo['id']);
  61. if ($prjinfo){
  62. $res_r['code']=200;
  63. $res_r['resultData']=$prjinfo;
  64. }else{
  65. $res_r['code']=0;
  66. $res_r['errmsg']='查询失败';
  67. }
  68. return json_encode($res_r,320);
  69. }
  70. /*
  71. * 20200205
  72. * steelxu
  73. * web端提交项目工人数据
  74. */
  75. public function saveprjworkerlist(){
  76. $qryinfo=request() -> param();
  77. $prjlogic=new prjmanger();
  78. $qryinfo['workerlist']=htmlspecialchars_decode($qryinfo['workerlist']);
  79. $wokerlist=json_decode($qryinfo['workerlist'],true);
  80. $prjinfo=$prjlogic->changerelation($qryinfo['pid'],$wokerlist);
  81. if ($prjinfo){
  82. $res_r['code']=200;
  83. $res_r['resultData']=$prjinfo;
  84. }else{
  85. $res_r['code']=0;
  86. $res_r['errmsg']='修改失败';
  87. }
  88. return json_encode($res_r,320);
  89. }
  90. //项目信息导出execl
  91. public function outtoexecle(){
  92. //获取数据
  93. $prjlogic=new prjmanger();
  94. $p_list=$prjlogic->getallprj();
  95. //加载类库
  96. vendor('PHPExcel.PHPExcel');
  97. $objPHPExcel = new \PHPExcel();
  98. //4.激活当前的sheet表
  99. $objPHPExcel->setActiveSheetIndex(0);
  100. //5.设置表格头(即excel表格的第一行)
  101. $objPHPExcel->setActiveSheetIndex(0)
  102. ->setCellValue('A1', 'ID')
  103. ->setCellValue('B1', '项目名称')
  104. ->setCellValue('C1', '项目说明');
  105. //设置A列水平居中
  106. $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
  107. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  108. //设置单元格宽度
  109. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
  110. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(50);
  111. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(100);
  112. //6.循环刚取出来的数组,将数据逐一添加到excel表格。
  113. for($i=0;$i<count($p_list);$i++){
  114. $objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$p_list[$i]['id']);//ID
  115. $objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$p_list[$i]['pname']);//名称
  116. $objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$p_list[$i]['pdisstr']);//说明
  117. }
  118. //7.设置保存的Excel表格名称
  119. $filename = '项目信息表'.date('ymd',time()).'.xls';
  120. //8.设置当前激活的sheet表格名称;
  121. $objPHPExcel->getActiveSheet()->setTitle('项目信息');
  122. //9.设置浏览器窗口下载表格
  123. header("Content-Type: application/force-download");
  124. header("Content-Type: application/octet-stream");
  125. header("Content-Type: application/download");
  126. header('Content-Disposition:inline;filename="'.$filename.'"');
  127. //生成excel文件
  128. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  129. //下载文件在浏览器窗口
  130. $objWriter->save('php://output');
  131. //原代码没有返回
  132. $res_r['code']=200;
  133. $res_r['resultData']=$filename;
  134. return json_encode($res_r,320);
  135. }
  136. //本公司项目信息导出execl
  137. public function outprojecttoexecle(){
  138. $qryinfo=request() -> param();
  139. //获取数据
  140. $prjlogic=new prjmanger();
  141. // $p_list=$prjlogic->getallprj();
  142. $p_list=$prjlogic->getallprjbycid($qryinfo);
  143. //加载类库
  144. vendor('PHPExcel.PHPExcel');
  145. $objPHPExcel = new \PHPExcel();
  146. //4.激活当前的sheet表
  147. $objPHPExcel->setActiveSheetIndex(0);
  148. //5.设置表格头(即excel表格的第一行)
  149. $objPHPExcel->setActiveSheetIndex(0)
  150. ->setCellValue('A1', 'ID')
  151. ->setCellValue('B1', '项目名称')
  152. ->setCellValue('C1', '项目说明');
  153. //设置A列水平居中
  154. $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()
  155. ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  156. //设置单元格宽度
  157. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(10);
  158. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(50);
  159. $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(100);
  160. //6.循环刚取出来的数组,将数据逐一添加到excel表格。
  161. for($i=0;$i<count($p_list);$i++){
  162. $objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$p_list[$i]['id']);//ID
  163. $objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$p_list[$i]['pname']);//名称
  164. $objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$p_list[$i]['pdisstr']);//说明
  165. }
  166. //7.设置保存的Excel表格名称
  167. $filename = '项目信息表'.date('ymd',time()).'.xls';
  168. //8.设置当前激活的sheet表格名称;
  169. $objPHPExcel->getActiveSheet()->setTitle('项目信息');
  170. //9.设置浏览器窗口下载表格
  171. header("Content-Type: application/force-download");
  172. header("Content-Type: application/octet-stream");
  173. header("Content-Type: application/download");
  174. header('Content-Disposition:inline;filename="'.$filename.'"');
  175. //生成excel文件
  176. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  177. //下载文件在浏览器窗口
  178. $objWriter->save('php://output');
  179. //原代码没有返回
  180. $res_r['code']=200;
  181. $res_r['resultData']=$filename;
  182. return json_encode($res_r,320);
  183. }
  184. /*
  185. * 创建班组
  186. */
  187. public function creategroup(){
  188. $groupinfo=request() -> param();
  189. $p_logic=new prjmanger();
  190. $group=$p_logic->creategroup($groupinfo);
  191. if ($group){
  192. $res_r['code']=200;
  193. $res_r['resultData']['code']=200;
  194. $res_r['resultData']['group']=$group;
  195. }else{
  196. $res_r['code']=0;
  197. $res_r['resultData']['code']=0;
  198. $res_r['resultData']['errmsg']='创建失败';
  199. }
  200. return json_encode($res_r,320);
  201. }
  202. /*
  203. * steelxu
  204. * 20200211
  205. * 指定班组长
  206. */
  207. public function setgroupdutyer(){
  208. $dutyerinfo=request() -> param();
  209. $p_logic=new headmanger();
  210. $group=$p_logic->setghead($dutyerinfo);
  211. if ($group){
  212. $res_r['code']=200;
  213. $res_r['resultData']=$group;
  214. }else{
  215. $res_r['code']=0;
  216. $res_r['errmsg']='修改失败';
  217. }
  218. return json_encode($res_r,320);
  219. }
  220. /*
  221. * steelxu
  222. * 20200211
  223. * 获取项目下所有班组信息
  224. */
  225. public function getglist(){
  226. $qureyinfo=request() -> param();
  227. $p_logic=new prjmanger();
  228. $group=$p_logic->getglist($qureyinfo['pid']);
  229. if ($group){
  230. $res_r['code']=200;
  231. $res_r['resultData']=$group;
  232. }else{
  233. $res_r['code']=0;
  234. $res_r['errmsg']='查询失败';
  235. }
  236. return json_encode($res_r,320);
  237. }
  238. /*
  239. * 20200212
  240. * steelxu
  241. * 获取项目下所有工人
  242. */
  243. public function getprjworker(){
  244. $queryinfo=request() -> param();
  245. $pagenum=$queryinfo['pageNum'];
  246. $pagesize=$queryinfo['pageSize'];
  247. $pid=$queryinfo['pid'];
  248. $workerlogic=new workermanger();
  249. $w_list=$workerlogic->getprjworkerlist($pagenum,$pagesize,$pid);
  250. if ($w_list){
  251. $res_r['code']=200;
  252. $res_r['resultData']['list']=$w_list;
  253. }else{
  254. $res_r['code']=0;
  255. $res_r['errmsg']='查询失败';
  256. }
  257. return json_encode($res_r,320);
  258. }
  259. /*
  260. * 20200308
  261. * 提交新合同信息
  262. */
  263. public function submitcontact(){
  264. $queryinfo=request() -> param();
  265. $l_contact=new contactlogic();
  266. $rid=$l_contact->savecontact($queryinfo);
  267. if ($rid>0){
  268. $res_r['code']=200;
  269. $res_r['resultData']['code']=200;
  270. $res_r['resultData']['newid']=$rid;
  271. }else{
  272. $res_r['code']=0;
  273. $res_r['msg']='提交失败';
  274. }
  275. return json_encode($res_r,320);
  276. }
  277. /*
  278. * 20200308
  279. * 获取合同列表
  280. */
  281. public function querycontactbypid(){
  282. $queryinfo=request() -> param();
  283. $l_contact=new contactlogic();
  284. $rlist=$l_contact->getclistbypid($queryinfo);
  285. if ($rlist){
  286. $res_r['code']=200;
  287. $res_r['resultData']['list']=$rlist;
  288. }else{
  289. $res_r['code']=0;
  290. $res_r['errmsg']='查询失败';
  291. }
  292. return json_encode($res_r,320);
  293. }
  294. /*
  295. * 20200309
  296. * 处理提交的班组合同关系
  297. */
  298. public function submitgcrelation(){
  299. $queryinfo=request() -> param();
  300. $l_contact=new contactlogic();
  301. $rid=$l_contact->savegcrelation($queryinfo);
  302. if ($rid>0){
  303. $res_r['code']=200;
  304. $res_r['resultData']['code']=200;
  305. $res_r['resultData']['newid']=$rid;
  306. }else{
  307. $res_r['code']=0;
  308. $res_r['msg']='提交失败';
  309. }
  310. return json_encode($res_r,320);
  311. }
  312. /*
  313. * 20200310
  314. * 请求项目下所有合同及合同总记分
  315. */
  316. public function querycwithscorebypid(){
  317. $queryinfo=request() -> param();
  318. $l_contact=new contactlogic();
  319. $rlist=$l_contact->getctotalbypid($queryinfo);
  320. if ($rlist){
  321. $res_r['code']=200;
  322. $res_r['resultData']['list']=$rlist;
  323. }else{
  324. $res_r['code']=0;
  325. $res_r['errmsg']='查询失败';
  326. }
  327. return json_encode($res_r,320);
  328. }
  329. /*
  330. * 20200331
  331. * 更新班组名称
  332. */
  333. public function subgroupname(){
  334. $groupinfo=request() -> param();
  335. $p_logic=new prjmanger();
  336. $rid=$p_logic->updategroupinfo($groupinfo);
  337. if ($rid){
  338. $res_r['code']=200;
  339. $res_r['resultData']=$rid;
  340. }else{
  341. $res_r['code']=0;
  342. $res_r['msg']='更新失败';
  343. }
  344. return json_encode($res_r,320);
  345. }
  346. /*
  347. * 20210228
  348. * steelxu
  349. * 小程序端提交项目工人数据
  350. */
  351. public function subleavejobworklist(){
  352. $qryinfo=request() -> param();
  353. $prjlogic=new prjmanger();
  354. $qryinfo['workerlist']=htmlspecialchars_decode($qryinfo['workerlist']);
  355. $wokerlist=json_decode($qryinfo['workerlist'],true);
  356. $prjinfo=$prjlogic->leavejob($wokerlist);
  357. if ($prjinfo){
  358. $res_r['code']=200;
  359. $res_r['resultData']=$prjinfo;
  360. }else{
  361. $res_r['code']=0;
  362. $res_r['errmsg']='修改失败';
  363. }
  364. return json_encode($res_r,320);
  365. }
  366. /*
  367. * 20210228
  368. * steelxu
  369. * 小程序端端提交项目调动
  370. */
  371. public function subtransprjworklist(){
  372. $qryinfo=request() -> param();
  373. $prjlogic=new prjmanger();
  374. $qryinfo['workerlist']=htmlspecialchars_decode($qryinfo['workerlist']);
  375. $wokerlist=json_decode($qryinfo['workerlist'],true);
  376. $headid=$qryinfo['headid'];
  377. $prjinfo=$prjlogic->transferprj($headid,$wokerlist);
  378. if ($prjinfo){
  379. $res_r['code']=200;
  380. $res_r['resultData']=$prjinfo;
  381. }else{
  382. $res_r['code']=0;
  383. $res_r['errmsg']='修改失败';
  384. }
  385. return json_encode($res_r,320);
  386. }
  387. /*
  388. * 20210725
  389. */
  390. public function queryprjwcount(){
  391. $p_logic=new prjmanger();
  392. $rid=$p_logic->getworkercountbypid();
  393. if ($rid){
  394. $res_r['code']=200;
  395. $res_r['resultData']=$rid;
  396. }else{
  397. $res_r['code']=0;
  398. $res_r['msg']='查询失败';
  399. }
  400. return json_encode($res_r,320);
  401. }
  402. /*
  403. * 20210807
  404. */
  405. public function autoleavejobwithunscore(){
  406. $l_prj=new prjmanger();
  407. $l_prj->autoleavejobwithweek();
  408. }
  409. /*
  410. * 20230302
  411. */
  412. public function subnewprjlocationforapp(){
  413. $queryinfo=request()->param();
  414. $l_p=new prjmanger();
  415. $rlist=$l_p->subnewprjlocation($queryinfo);
  416. if (!$rlist){
  417. $res_r['code']=0;
  418. $res_r['msg']="项目坐标不重复采集";
  419. $res_r['data']=$rlist;
  420. }else{
  421. $res_r['code']=200;
  422. $res_r['msg']="提交成功";
  423. $res_r['data']=$rlist;
  424. }
  425. return json_encode($res_r,320);
  426. }
  427. /*
  428. * 20230303
  429. * 请求某一工地的记录规则
  430. */
  431. public function queryprjlocationrecrulebypid(){
  432. $queryinfo=request()->param();
  433. $l_p=new prjmanger();
  434. $rlist=$l_p->getprjlocationinfo($queryinfo);
  435. if (!$rlist){
  436. $res_r['code']=0;
  437. $res_r['msg']="请求失败";
  438. $res_r['data']=$rlist;
  439. }else{
  440. $res_r['code']=200;
  441. $res_r['msg']="请求成功";
  442. $res_r['data']=$rlist;
  443. }
  444. return json_encode($res_r,320);
  445. }
  446. }