Api.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. <?php
  2. namespace app\enterprise\controller;
  3. use app\admin\model\Enterprise;
  4. use app\common\api\DictApi;
  5. use app\common\api\EnterpriseApi;
  6. use app\common\model\CurrentcyFileType;
  7. use app\common\model\TalentChecklog;
  8. use app\common\model\TalentCommonFile;
  9. use app\enterprise\model\EnterpriseRecord;
  10. use app\enterprise\common\EnterpriseController;
  11. use app\Request;
  12. use think\exception\ValidateException;
  13. class Api extends EnterpriseController {
  14. public function findEnterpriseChangeByPage()
  15. {
  16. $order = trim($this->request->param("order")) ?: "desc";
  17. $offset = trim($this->request->param("offset")) ?: 0;
  18. $limit = trim($this->request->param("limit")) ?: 10;
  19. $list = EnterpriseRecord::where('mainId',session("user")["uid"])->limit($offset, $limit)->order('createTime ' . $order)->select()->toArray();
  20. $count = count($list);
  21. if($count > 0){
  22. $streetList = DictApi::selectByParentCode('street');
  23. $typeList = DictApi::selectByParentCode('enterprise_type');
  24. $industryFieldNew = DictApi::selectByParentCode('industry_field');
  25. foreach ($list as $k => &$v){
  26. $v['newIndustryFieldNewName'] = $industryFieldNew[$v['newIndustryFieldNew']];
  27. $v['newEnterpriseType'] = $typeList[$v['newEnterpriseType']];
  28. $v['newStreetName'] = $streetList[$v['newStreet']];
  29. }
  30. }
  31. return json(["total" => $count, "rows" => $list]);
  32. }
  33. public function findUnfinishedChangeRecord(){
  34. return EnterpriseRecord::where('mainId',session("user")["uid"])->where('checkState','<>', 4)->select()->toArray();
  35. }
  36. public function toAdd()
  37. {
  38. $ep = Enterprise::where('id',session("user")["uid"])->find();
  39. $ecr = [
  40. 'enterprise_id' => $ep['id'],
  41. 'newName' => $ep['name'],
  42. 'newIdCard' => $ep['idCard'],
  43. 'newStreet' => $ep['street'],
  44. 'newAddress' => $ep['address'],
  45. 'newLegal' => $ep['legal'],
  46. 'newEphone' => $ep['ephone'],
  47. 'newAgentName' => $ep['agentName'],
  48. 'newAgentEmail' => $ep['agentEmail'],
  49. 'newAgentPhone' => $ep['agentPhone'],
  50. 'type' => $ep['type'],
  51. 'newEnterpriseTag' => $ep['enterpriseTag'],
  52. 'newEnterpriseType' => $ep['enterpriseType'],
  53. 'newIndustryFieldNew' => $ep['industryFieldNew'],
  54. 'newIndustryFieldOld' => $ep['industryFieldOld'],
  55. 'newBankCard' => $ep['bankCard'],
  56. 'newBank' => $ep['bank'],
  57. 'newBankNetwork' => $ep['bankNetwork']
  58. ];
  59. switch ($ep['checkState']){
  60. case 1:
  61. $ecr['checkStateName'] = '保存未提交审核';
  62. break;
  63. case 2:
  64. $ecr['checkStateName'] = '待审核';
  65. break;
  66. case 3:
  67. $ecr['checkStateName'] = '审核驳回';
  68. break;
  69. case 4:
  70. $ecr['checkStateName'] = '审核通过';
  71. break;
  72. case 5:
  73. $ecr['checkStateName'] = '重新提交';
  74. break;
  75. default:
  76. $ecr['checkStateName'] = '';
  77. }
  78. //20220918增加根据不同的企业类型显示不同的信息变更界面
  79. switch ($ep->special){
  80. case 0:
  81. return view("", ['ecr' => $ecr]);
  82. break;
  83. case 1:
  84. return view("to_add1", ['ecr' => $ecr]);
  85. break;
  86. default:
  87. break;
  88. }
  89. }
  90. public function upsert(){
  91. $data = [
  92. 'id' => \StrUtil::getRequestDecodeParam($this->request,'enterprise_id'),
  93. 'name' => \StrUtil::getRequestDecodeParam($this->request,'newName'),//单位名称
  94. 'idCard' => \StrUtil::getRequestDecodeParam($this->request,'newIdCard'),//统一社会信用代码
  95. 'agentName' => \StrUtil::getRequestDecodeParam($this->request,'newAgentName'),//人才联络员
  96. 'agentPhone' => \StrUtil::getRequestDecodeParam($this->request,'newAgentPhone'),//人才联络员电话
  97. 'legal' => \StrUtil::getRequestDecodeParam($this->request,'newLegal'),//法人
  98. 'street' => \StrUtil::getRequestDecodeParam($this->request,'newStreet'),//镇街
  99. 'address' => \StrUtil::getRequestDecodeParam($this->request,'newAddress'),//地址
  100. 'type' => intval($this->request['type']),
  101. 'enterpriseTag' => \StrUtil::getRequestDecodeParam($this->request,'newEnterpriseTag'),//单位标签
  102. 'enterpriseType' => \StrUtil::getRequestDecodeParam($this->request,'newEnterpriseType'),//单位类型
  103. 'agentEmail' => \StrUtil::getRequestDecodeParam($this->request,'newAgentEmail'),//邮箱
  104. 'ephone' => \StrUtil::getRequestDecodeParam($this->request,'newEphone'),//单位电话
  105. 'industryFieldNew' => \StrUtil::getRequestDecodeParam($this->request,'newIndustryFieldNew'),//产业领域
  106. 'industryFieldOld' => \StrUtil::getRequestDecodeParam($this->request,'newIndustryFieldOld'),//行业领域
  107. 'bankCard' => \StrUtil::getRequestDecodeParam($this->request,'newBankCard'),//银行
  108. 'bank' => \StrUtil::getRequestDecodeParam($this->request,'newBank'),//开户行
  109. 'bankNetwork' => \StrUtil::getRequestDecodeParam($this->request,'newBankNetwork')//网点
  110. ];
  111. try {
  112. if(stripos($data['name'],"(")){
  113. $data['name'] = str_replace('(','(',$data['name']);
  114. }
  115. if(stripos($data['name'],")")){
  116. $data['name'] = str_replace(')',')',$data['name']);
  117. }
  118. $ep = Enterprise::where('id',session("user")["uid"])->find();
  119. switch ($ep->special){
  120. case 0:
  121. validate(\app\common\validate\Enterprise::class)->batch(true)->scene('change')->check($data);
  122. break;
  123. case 1:
  124. validate(\app\common\validate\Enterprise::class)->batch(true)->scene('sy_change')->check($data);
  125. break;
  126. default:
  127. break;
  128. }
  129. $record_id = \StrUtil::getRequestDecodeParam($this->request,'id');
  130. if(!$record_id){
  131. $record_data = [
  132. 'id' => getStringId(),
  133. 'mainId' => $data['id'],
  134. 'type' => $data['type'],
  135. 'oldName' => $ep['name'],
  136. 'oldIdCard' => $ep['idCard'],
  137. 'oldIndustryFieldNew' => $ep['industryFieldNew'],
  138. 'oldIndustryFieldOld' => $ep['industryFieldOld'],
  139. 'oldStreet' => $ep['street'],
  140. 'oldAddress' => $ep['address'],
  141. 'oldLegal' => $ep['legal'],
  142. 'oldEphone' => $ep['ephone'],
  143. 'oldAgentName' => $ep['agentName'],
  144. 'oldAgentEmail' => $ep['agentEmail'],
  145. 'oldAgentPhone' => $ep['agentPhone'],
  146. 'oldEnterpriseTag' => $ep['enterpriseTag'],
  147. 'oldEnterpriseType' => $ep['enterpriseType'],
  148. 'oldBankCard' => $ep['bankCard'],
  149. 'oldBank' => $ep['bank'],
  150. 'oldBankNetwork' => $ep['bankNetwork'],
  151. 'newName' => htmlspecialchars($data['name']),
  152. 'newIdCard' => htmlspecialchars($data['idCard']),
  153. 'newIndustryFieldNew' => $data['industryFieldNew'],
  154. 'newIndustryFieldOld' => $data['industryFieldOld'],
  155. 'newStreet' => $data['street'],
  156. 'newAddress' => $data['address'],
  157. 'newLegal' => $data['legal'],
  158. 'newEphone' => $data['ephone'],
  159. 'newAgentName' => $data['agentName'],
  160. 'newAgentEmail' => $data['agentEmail'],
  161. 'newAgentPhone' => $data['agentPhone'],
  162. 'newEnterpriseTag' => $data['enterpriseTag'],
  163. 'newEnterpriseType' => $data['enterpriseType'],
  164. 'newBankCard' => $data['bankCard'],
  165. 'newBank' => $data['bank'],
  166. 'newBankNetwork' => $data['bankNetwork'],
  167. 'checkState' => 1,
  168. 'createTime' => date("Y-m-d H:i:s",time()),
  169. 'createUser' => session("user")["uid"]
  170. ];
  171. EnterpriseRecord::create($record_data);
  172. $log = [
  173. 'id' => getStringId(),
  174. 'mainId' => $record_data['id'],
  175. 'category' => 'enterprise_change',
  176. 'type' => 10,
  177. 'active' => 1,
  178. 'state' => 1,
  179. 'step' => 100,
  180. 'stateChange' => '保存未提交',
  181. 'description' => '机构信息变更记录添加成功',
  182. 'createTime' => date("Y-m-d H:i:s",time()),
  183. 'createUser' => '用户'
  184. ];
  185. $res = ['msg' => '添加成功', 'code' => 200, 'obj' => $record_data];
  186. } else {
  187. $record = EnterpriseRecord::find($record_id);
  188. $ep = Enterprise::where('id',session("user")["uid"])->find();
  189. $record->oldName = $ep['name'];
  190. $record->oldIdCard = $ep['idCard'];
  191. $record->oldIndustryFieldNew = $ep['industryFieldNew'];
  192. $record->oldIndustryFieldOld = $ep['industryFieldOld'];
  193. $record->oldStreet = $ep['street'];
  194. $record->oldAddress = $ep['address'];
  195. $record->oldLegal = $ep['legal'];
  196. $record->oldEphone = $ep['ephone'];
  197. $record->oldAgentName = $ep['agentName'];
  198. $record->oldAgentEmail = $ep['agentEmail'];
  199. $record->oldAgentPhone = $ep['agentPhone'];
  200. $record->oldEnterpriseTag = $ep['enterpriseTag'];
  201. $record->oldEnterpriseType = $ep['enterpriseType'];
  202. $record->oldBankCard = $ep['bankCard'];
  203. $record->oldBank = $ep['bank'];
  204. $record->oldBankNetwork = $ep['bankNetwork'];
  205. $record->newName = htmlspecialchars($data['name']);
  206. $record->newIdCard = htmlspecialchars($data['idCard']);
  207. $record->newIndustryFieldNew = $data['industryFieldNew'];
  208. $record->newIndustryFieldOld = $data['industryFieldOld'];
  209. $record->newStreet = $data['street'];
  210. $record->newAddress = $data['address'];
  211. $record->newLegal = $data['legal'];
  212. $record->newEphone = $data['ephone'];
  213. $record->newAgentName = $data['agentName'];
  214. $record->newAgentEmail = $data['agentEmail'];
  215. $record->newAgentPhone = $data['agentPhone'];
  216. $record->newEnterpriseTag = $data['enterpriseTag'];
  217. $record->newEnterpriseType = $data['enterpriseType'];
  218. $record->newBankCard = $data['bankCard'];
  219. $record->newBank = $data['bank'];
  220. $record->newBankNetwork = $data['bankNetwork'];
  221. $record->updateTime = date("Y-m-d H:i:s");
  222. $record->updateUser = session("user")["uid"];
  223. $record->save();
  224. $log = [
  225. 'id' => getStringId(),
  226. 'category' => 'enterprise_change',
  227. 'mainId' => '',
  228. 'type' => 10,
  229. 'active' => 1,
  230. 'state' => 1,
  231. 'step' => 100,
  232. 'stateChange' => '保存未提交',
  233. 'description' => '机构信息变更记录修改成功',
  234. 'createTime' => date("Y-m-d H:i:s",time()),
  235. 'createUser' => '用户'
  236. ];
  237. $res = ['msg' => '修改成功', 'code' => 200, 'obj' => $record];
  238. }
  239. TalentChecklog::create($log);
  240. return json($res);
  241. } catch (ValidateException $e){
  242. $error = $e->getError();
  243. return json(["msg" => array_pop($error),'code' => 500]);
  244. }
  245. }
  246. public function toUpdate(){
  247. $id = trim($this->request['id']);
  248. $ecr = EnterpriseRecord::findOrEmpty($id);
  249. $ep = Enterprise::where('id',$ecr->mainId)->find();
  250. switch ($ep->special){
  251. case 0:
  252. return view("", ['ecr' => $ecr]);
  253. break;
  254. case 1:
  255. return view("to_update1", ['ecr' => $ecr]);
  256. break;
  257. default:
  258. break;
  259. }
  260. }
  261. public function submitToCheck(){
  262. $id = trim($this->request->post('id'));
  263. if(!$id){
  264. return json(['msg' => '记录为空', 'code' => 500]);
  265. }
  266. $obj = EnterpriseRecord::find($id);
  267. if(!$obj){
  268. return json(['msg' => '提交审核失败,请先填写基础信息', 'code' => 500]);
  269. }
  270. if($obj['checkState'] != 1 && $obj['checkState'] != 3){
  271. return json(['msg' => '不能重复提交审核', 'code' => 500]);
  272. }
  273. $ep = EnterpriseApi::getOne($obj->mainId);
  274. //20220918增加根据不同的企业类型显示不同的信息变更界面
  275. switch ($ep->special){
  276. case 0:
  277. $org_type = 'enterpriseChange';
  278. break;
  279. case 1:
  280. $org_type = 'governmentChange';
  281. break;
  282. default:
  283. break;
  284. }
  285. $list = CurrentcyFileType::where('type',$org_type)->where('active',1)->select();
  286. if(!$list || count($list) <= 0){
  287. return json(['msg' => '缺少附件', 'code' => 500]);
  288. }
  289. $error_msg = "";
  290. foreach ($list as $k => $v){
  291. if($v['must'] == 1){
  292. $count = TalentCommonFile::where('mainId',$id)->where('typeId',$v['id'])->count();
  293. if($count == 0){
  294. if(strlen($error_msg) == 0){
  295. $error_msg = "以下为必传附件:";
  296. }
  297. $error_msg .= $v['name'] . ";";
  298. }
  299. }
  300. }
  301. if(strlen($error_msg) > 0){
  302. return json(['msg' => $error_msg, 'code' => 500]);
  303. }
  304. if($obj['checkState'] == 3){
  305. $obj['checkState'] = 5;
  306. $state = 5;
  307. }else{
  308. $obj['checkState'] = 2;
  309. $state = 2;
  310. }
  311. $obj->save();
  312. $log = [
  313. 'id' => getStringId(),
  314. 'category' => 'enterprise_change',
  315. 'mainId' => $id,
  316. 'type' => 10,
  317. 'active' => 1,
  318. 'state' => $state,
  319. 'step' => 100,
  320. 'stateChange' => "<span class='label'>待提交</span>-><span class='label label-success'>待审核</span>" ,
  321. 'description' => '提交审核',
  322. 'createTime' => date("Y-m-d H:i:s",time()),
  323. 'createUser' => '用户'
  324. ];
  325. TalentChecklog::create($log);
  326. return json(['msg' => '提交审核成功', 'code' => 200, 'obj' => 1]);
  327. }
  328. public function toDetail(){
  329. $id = trim($this->request['id']);
  330. if(!$id){
  331. return json(['msg' => '记录为空', 'code' => 500]);
  332. }
  333. $ecr = EnterpriseRecord::find($id);
  334. $ep = EnterpriseApi::getOne($ecr['mainId']);
  335. $streetList = DictApi::selectByParentCode('street');
  336. $ecr['oldStreetName'] = $streetList[$ecr['oldStreet']];
  337. $ecr['newStreetName'] = $streetList[$ecr['newStreet']];
  338. //20220918增加根据不同的企业类型显示不同的信息变更界面
  339. switch ($ep->special){
  340. case 0:
  341. $tagList = DictApi::selectByParentCode('enterprise_tag');
  342. $typeList = DictApi::selectByParentCode('enterprise_type');
  343. $industryFieldNew = DictApi::selectByParentCode('industry_field');
  344. $industry = DictApi::findDictByCode($ecr['oldIndustryFieldOld']);
  345. $ecr['oldIndustryFieldOldName'] = $industry['name'];
  346. $industry = DictApi::findDictByCode($ecr['newIndustryFieldOld']);
  347. $ecr['newIndustryFieldOldName'] = $industry['name'];
  348. $ecr['oldEnterpriseTagName'] = $tagList[$ecr['oldEnterpriseTag']];
  349. $ecr['newEnterpriseTagName'] = $tagList[$ecr['newEnterpriseTag']];
  350. $ecr['oldEnterpriseTypeName'] = $typeList[$ecr['oldEnterpriseType']];
  351. $ecr['newEnterpriseTypeName'] = $typeList[$ecr['newEnterpriseType']];
  352. $ecr['oldIndustryFieldNewName'] = $industryFieldNew[$ecr['oldIndustryFieldNew']];
  353. $ecr['newIndustryFieldNewName'] = $industryFieldNew[$ecr['newIndustryFieldNew']];
  354. return view("",['ecr' => $ecr]);
  355. break;
  356. case 1:
  357. return view("to_detail1",['ecr' => $ecr]);
  358. break;
  359. default:
  360. break;
  361. }
  362. }
  363. }