Comjobsreport.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. <?php
  2. namespace app\worker\controller;
  3. use app\worker\BaseController;
  4. use app\common\model\ComjobsReport as ComjobsReportModel;
  5. use app\common\model\ReportLog as ReportLogModel;
  6. use app\common\model\Comjobs as ComjobsModel;
  7. use app\common\model\Agent as AgentModel;
  8. use app\common\validate\Report as ReportValidate;
  9. use think\exception\ValidateException;
  10. use think\facade\Db;
  11. class Comjobsreport extends BaseController
  12. {
  13. // 报备记录
  14. public function reportList()
  15. {
  16. $workerid = $this->access_worker['id'];
  17. $comjobslist = ComjobsModel::where('workerid',$workerid)->select();
  18. $agentlist = Db::name('agent')
  19. ->alias('a')
  20. ->field('a.id,a.title')
  21. ->join('worker b','b.id = a.workerid','LEFT')
  22. ->where('a.workerid',$workerid)
  23. ->select()
  24. ->toArray();
  25. $statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');
  26. return view('comjobsreport/reportlist',[
  27. 'comjobslist' => $comjobslist,
  28. 'agentlist' => $agentlist,
  29. 'statusarr' => $statusarr
  30. ]);
  31. }
  32. // 报备记录(待审核)
  33. public function reportExamine()
  34. {
  35. $workerid = $this->access_worker['id'];
  36. $comjobslist = ComjobsModel::where('workerid',$workerid)->select();
  37. $agentlist = Db::name('agent')
  38. ->alias('a')
  39. ->field('a.id,a.title')
  40. ->join('worker b','b.id = a.workerid','LEFT')
  41. ->where('a.workerid',$workerid)
  42. ->select()
  43. ->toArray();
  44. $statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');
  45. return view('comjobsreport/reportexamine',[
  46. 'comjobslist' => $comjobslist,
  47. 'agentlist' => $agentlist,
  48. 'statusarr' => $statusarr
  49. ]);
  50. }
  51. public function listReport()
  52. {
  53. $limit = input('limit/d',20);
  54. $page = input('page/d',1);
  55. $workerid = $this->access_worker['id'];
  56. $map = array();
  57. $map[] = ['a.workerid', '=', $workerid];
  58. $date6 = input('date6');
  59. if(!empty($date6))
  60. {
  61. $date6 =explode('~',$date6);
  62. $startTime = strtotime($date6[0]);
  63. $endTime = strtotime($date6[1]);
  64. $map[] = ['a.createtime', 'between', [$startTime,$endTime]];
  65. }
  66. $comjobsid = input('comjobsid/d', 0);
  67. if (!empty($comjobsid)){
  68. $map[] = ['a.comjobsid', '=', $comjobsid];
  69. }
  70. $agentid = input('agentid/s', "");
  71. if ($agentid!=""){
  72. $map[] = ['a.agentid', '=', intval($agentid)];
  73. }
  74. $status = input('status/d', 0);
  75. if (!empty($status)){
  76. $map[] = ['a.status', '=', $status];
  77. }
  78. $list = Db::name('comjobs_report')
  79. ->alias('a')
  80. ->field('a.id,a.status,a.realname,a.mobile,a.idcard,a.arrivetime,from_unixtime(a.createtime) createtime,b.title comjobs_title,c.title agent_title,d.title broker_title')
  81. ->join('comjobs b','b.id = a.comjobsid','LEFT')
  82. ->join('agent c','c.id = a.agentid','LEFT')
  83. ->join('broker d','d.agentid = c.id','LEFT')
  84. ->where($map)
  85. ->order('id','DESC')
  86. ->limit($limit)
  87. ->page($page)
  88. ->select()
  89. ->toArray();
  90. $count = Db::name('comjobs_report')
  91. ->alias('a')
  92. ->join('comjobs b','b.id = a.comjobsid','LEFT')
  93. ->join('agent c','c.id = a.agentid','LEFT')
  94. ->join('broker d','d.agentid = c.id','LEFT')
  95. ->where($map)
  96. ->count();
  97. foreach($list as $k=>$v)
  98. {
  99. if($v['status'] == 1){
  100. $list[$k]['status_text'] = '待审核';
  101. }elseif($v['status'] == 2){
  102. $list[$k]['status_text'] = '待面试';
  103. }elseif($v['status'] == 3){
  104. $list[$k]['status_text'] = '已入职';
  105. }elseif($v['status'] == 4){
  106. $list[$k]['status_text'] = '无效报备';
  107. }
  108. }
  109. if ($count==0){
  110. exit(json_encode(array(
  111. 'code' => 1,
  112. 'msg' => "未查询到数据"
  113. )));
  114. }
  115. exit(json_encode(array(
  116. 'code' => 0,
  117. 'msg' => "",
  118. 'count' => $count,
  119. 'data' => $list
  120. )));
  121. }
  122. public function exportReport()
  123. {
  124. $map = array();
  125. $comjobsid = input('comjobsid/d', 0);
  126. if (!empty($comjobsid)){
  127. $map[] = ['comjobsid', '=', $comjobsid];
  128. }
  129. $agentid = input('agentid/d', 0);
  130. if (!empty($agentid)){
  131. $map[] = ['agentid', '=', $agentid];
  132. }
  133. $status = input('status/d', 0);
  134. if (!empty($status)){
  135. $map[] = ['status', '=', $status];
  136. }
  137. $xlsData = ComjobsReportModel::with(['comjobs','agent','broker'])->where($map)->order('id','DESC')->append(['status_text'])->select()->toArray();
  138. $xlsCell = array(
  139. array('id','表ID'),
  140. array('comjobs.title','招聘标题'),
  141. array('agent.title','代理门店'),
  142. array('broker.title','经纪人'),
  143. array('realname','姓名'),
  144. array('mobile','手机号'),
  145. array('idcard','身份证号'),
  146. array('arrivetime','预计到达时间'),
  147. array('remark','报名备注'),
  148. array('status_text','状态'),
  149. array('createtime','接单时间')
  150. );
  151. export_excel("报备记录",$xlsCell,$xlsData);
  152. }
  153. public function setComtype()
  154. {
  155. $idarr = input('idarr/a');
  156. $comjobsid = input('comjobsid/d', 0);
  157. $comjobs = ComjobsModel::with(['company'])->findOrEmpty($comjobsid);
  158. if ($comjobs->isEmpty()){
  159. exit(json_encode(array(
  160. 'code' => 1,
  161. 'msg' => "请选择招聘信息和代理门店"
  162. )));
  163. }
  164. $data = [
  165. 'comjobsid' => $comjobs->id,
  166. 'comtype' => input('comtype/s', ""),
  167. 'comprice' => input('comprice/s', ""),
  168. 'comremark' => input('comremark/s', ""),
  169. 'updatetime' => input('updatetime/s', date("Y-m-d H:i"))
  170. ];
  171. ComjobsReportModel::whereIn('id',$idarr)->update($data);
  172. $reportall = ComjobsReportModel::whereIn('id',$idarr)->select()->toArray();
  173. $logdata = array();
  174. $statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');
  175. $agentall = AgentModel::column('realname', 'id');
  176. foreach($reportall as $key=>$item){
  177. $logdata[] = array(
  178. 'reportid' => $item['id'],
  179. 'logstatus' => $statusarr[$item['status']],
  180. 'editrealname' => "管理员",
  181. 'comjobstil' => $comjobs->isEmpty() ? "" : $comjobs->title,
  182. 'agenttil' => empty($agentall[$item['agentid']]) ? "未报备" : $agentall[$item['agentid']],
  183. 'realname' => $item['realname'],
  184. 'mobile' => $item['mobile'],
  185. 'idcard' => $item['idcard'],
  186. 'comtype' => input('comtype/s', ""),
  187. 'comprice' => input('comprice/s', ""),
  188. 'comremark' => input('comremark/s', ""),
  189. 'arrivetime' => $item['arrivetime'],
  190. 'remark' => $item['remark'],
  191. 'createtime' => date("Y-m-d H:i")
  192. );
  193. }
  194. $reportlog = new ReportLogModel;
  195. $reportlog->saveAll($logdata);
  196. exit(json_encode(array(
  197. 'code' => 0,
  198. 'msg' => ""
  199. )));
  200. }
  201. public function setStatus()
  202. {
  203. $idarr = input('idarr/a');
  204. $status = input('status/d', 1);
  205. ComjobsReportModel::whereIn('id',$idarr)->update(['status'=>$status]);
  206. exit(json_encode(array(
  207. 'code' => 0,
  208. 'msg' => ""
  209. )));
  210. }
  211. public function delReport()
  212. {
  213. $idarr = input('idarr/a');
  214. $ComjobsReport = ComjobsReportModel::whereIn('id',$idarr)->select();
  215. $result = $ComjobsReport->delete();
  216. if ($result){
  217. exit(json_encode(array(
  218. 'code' => 0,
  219. 'msg' => ""
  220. )));
  221. }
  222. exit(json_encode(array(
  223. 'code' => 1,
  224. 'msg' => "删除失败,请稍后重试"
  225. )));
  226. }
  227. public function reportImport()
  228. {
  229. $id = input('id/d, 0');
  230. $comjobslist = ComjobsModel::with(['comjobsRefund.agentGroups'])->order(['id'=>'desc'])->select();
  231. $agentlist = AgentModel::order(['id'=>'asc'])->select();
  232. return view('comjobsreport/reportimport',[
  233. 'comjobslist' => $comjobslist,
  234. 'agentlist' => $agentlist
  235. ]);
  236. }
  237. public function importReport()
  238. {
  239. $execlfile = input('execlfile/s', "");
  240. if (empty($execlfile)){
  241. exit(json_encode(array(
  242. 'code' => 1,
  243. 'msg' => "请上传导入文件"
  244. )));
  245. }
  246. $comjobsid = input('comjobsid/d', 0);
  247. $comjobs = ComjobsModel::findOrEmpty($comjobsid);
  248. $agentid = input('agentid/d', 0);
  249. $agent = AgentModel::findOrEmpty($agentid);
  250. $filedata = read_excel( $execlfile );
  251. $sucnumber = 0;
  252. $errnumber = 0;
  253. $errarr = "";
  254. $statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');
  255. foreach( $filedata as $k=>$v ){
  256. $tabcomjobsid = intval($v[1]);
  257. if (empty($tabcomjobsid)){
  258. $tabcomjobs = $comjobs;
  259. }else{
  260. $tabcomjobs = ComjobsModel::findOrEmpty($tabcomjobsid);
  261. }
  262. $tabagentid = intval($v[2]);
  263. if (empty($tabagentid)){
  264. $tabagent = $agent;
  265. }else{
  266. $tabagent = AgentModel::findOrEmpty($tabagentid);
  267. }
  268. if( $tabcomjobs->isEmpty() ){
  269. $errarr .= $v[0] . ",";
  270. $errnumber++;
  271. continue;
  272. }else{
  273. $data = array(
  274. 'comjobsid' => $tabcomjobs->id,
  275. 'agentid' => $tabagent->isEmpty() ? 0 : $tabagent->id,
  276. 'brokerid' => 0,
  277. 'realname' => trim($v[3]),
  278. 'mobile' => trim($v[4]),
  279. 'idcard' => trim($v[5]),
  280. 'gender' => trim($v[6])=='男' ? 1 : 2,
  281. 'comtype' => empty(trim($v[7])) ? trim($v[7]) : input('comtype/s', ""),
  282. 'comprice' => empty(trim($v[8])) ? trim($v[8]) : input('comprice/s', ""),
  283. 'comremark' => empty(trim($v[9])) ? trim($v[9]) : input('comremark/s', ""),
  284. 'arrivetime' => trim($v[10]),
  285. 'remark' => trim($v[11]),
  286. 'status' => intval($v[12]),
  287. 'updatetime' => date("Y-m-d H:i"),
  288. 'createtime' => date("Y-m-d H:i")
  289. );
  290. try {
  291. validate(ReportValidate::class)->check($data);
  292. } catch (ValidateException $e) {
  293. $errarr .= $v[0] . ",";
  294. $errnumber++;
  295. continue;
  296. }
  297. $report = new ComjobsReportModel;
  298. $report->save($data);
  299. $logdata = array(
  300. 'reportid' => $report->id,
  301. 'logstatus' => $statusarr[$report->status],
  302. 'editrealname' => "管理员",
  303. 'comjobstil' => $tabcomjobs->title,
  304. 'agenttil' => $tabagent->isEmpty() ? "未报备" : $tabagent->title,
  305. 'realname' => trim($v[3]),
  306. 'mobile' => trim($v[4]),
  307. 'idcard' => trim($v[5]),
  308. 'comtype' => empty(trim($v[7])) ? trim($v[7]) : input('comtype/s', ""),
  309. 'comprice' => empty(trim($v[8])) ? trim($v[8]) : input('comprice/s', ""),
  310. 'comremark' => empty(trim($v[9])) ? trim($v[9]) : input('comremark/s', ""),
  311. 'arrivetime' => trim($v[10]),
  312. 'remark' => trim($v[11]),
  313. 'createtime' => date("Y-m-d H:i")
  314. );
  315. ReportLogModel::create($logdata);
  316. $sucnumber++;
  317. }
  318. }
  319. exit(json_encode(array(
  320. 'code' => 0,
  321. 'sucnumber' => $sucnumber,
  322. 'errnumber' => $errnumber,
  323. 'errarr' => $errarr
  324. )));
  325. }
  326. public function reportForm()
  327. {
  328. $id = input('id/d, 0');
  329. $report = Db::name('comjobs_report')
  330. ->alias('a')
  331. ->field('a.id,a.realname,a.mobile,a.idcard,a.status,a.remark,a.retremark,b.title')
  332. ->join('comjobs b','b.id = a.comjobsid','LEFT')
  333. ->where('a.id',$id)
  334. ->find();
  335. $statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');
  336. return view('comjobsreport/reportform',[
  337. 'report' => $report,
  338. 'title' => $this->access_worker['title'],
  339. 'statusarr' => $statusarr
  340. ]);
  341. }
  342. public function editReport()
  343. {
  344. $id = input('id/d', 0);
  345. $workerid = $this->access_worker['id'];
  346. $data = array(
  347. 'retremark' => input('retremark/s', ""),
  348. 'status' => input('status/d', 1),
  349. 'updatetime' => time()
  350. );
  351. if (empty($id)){
  352. $report = new ComjobsReportModel;
  353. $report->save($data);
  354. }else{
  355. $report = ComjobsReportModel::find($id);
  356. $report->save($data);
  357. }
  358. exit(json_encode(array(
  359. 'code' => 0
  360. )));
  361. }
  362. // 记录
  363. public function logList()
  364. {
  365. $reportid = input('reportid/d',0);
  366. $report = ComjobsReportModel::findOrEmpty($reportid);
  367. return view('comjobsreport/loglist',[
  368. 'reportid' => $reportid,
  369. 'report' => $report
  370. ]);
  371. }
  372. public function listLog()
  373. {
  374. $limit = input('limit/d',50);
  375. $page = input('page/d',1);
  376. $map = array();
  377. $map[] = ['reportid', '=', input('reportid/d',0)];
  378. $map[] = ['delstatus', '<>', 2];
  379. $list = ReportLogModel::with(['report'])->where($map)->order(['id'=>'desc'])->limit($limit)->page($page)->select();
  380. $count = ReportLogModel::where($map)->count();
  381. if ($count==0){
  382. exit(json_encode(array(
  383. 'code' => 1,
  384. 'msg' => "未查询到数据"
  385. )));
  386. }
  387. exit(json_encode(array(
  388. 'code' => 0,
  389. 'msg' => "",
  390. 'count' => $count,
  391. 'data' => $list
  392. )));
  393. }
  394. }