Comjobsreport.php 11 KB

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