TalentBankChange.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. namespace app\enterprise\controller;
  3. use app\enterprise\common\EnterpriseController;
  4. use app\common\model\TalentBankChange as TbcModel;
  5. use app\common\api\TalentLogApi;
  6. use app\common\state\ProjectState;
  7. use app\common\model\TalentLog;
  8. use think\facade\Db;
  9. use app\common\api\EnterpriseApi;
  10. use app\common\api\DictApi;
  11. /**
  12. * Description of TalentBankChange
  13. *
  14. * @author sgq
  15. */
  16. class TalentBankChange extends EnterpriseController {
  17. public function index() {
  18. return view("", ["type" => $this->user["type"]]);
  19. }
  20. public function list() {
  21. $type = $this->user["type"];
  22. $params = \StrUtil::batchGetRequestDecodeParam($this->request);
  23. $order = $params["order"] ?: "desc";
  24. $offset = $params["offset"] ?: 0;
  25. $limit = $params["limit"] ?: 10;
  26. $where = [];
  27. $where[] = ["enterpriseId", "=", $this->user["uid"]];
  28. $where[] = ["delete", "=", 0];
  29. if ($params["talentName"]) {
  30. $where[] = ["talentName", "like", "%" . $params["talentName"] . "%"];
  31. }
  32. if ($params["idCard"]) {
  33. $where[] = ["idCard", "like", "%" . $params["idCard"] . "%"];
  34. }
  35. if ($params["oldBankName"]) {
  36. $where[] = ["oldBankName", "like", "%" . $params["oldBankName"] . "%"];
  37. }
  38. if ($params["newBankName"]) {
  39. $where[] = ["newBankName", "like", "%" . $params["newBankName"] . "%"];
  40. }
  41. if ($params["checkState"]) {
  42. $where[] = ["checkState", "=", $params["checkState"]];
  43. }
  44. $count = TbcModel::where($where)->count();
  45. $list = TbcModel::where($where)->limit($offset, $limit)->order("createTime " . $order)->select()->toArray();
  46. $talentArrangeMap = DictApi::selectByParentCode("talent_arrange");
  47. foreach ($list as &$item) {
  48. $item["talentArrangeName"] = $talentArrangeMap[$item["talentArrange"]];
  49. }unset($item);
  50. return json(["total" => $count, "rows" => $list]);
  51. }
  52. public function apply() {
  53. $request = $this->request;
  54. $id = isset($request["id"]) ? $request["id"] : 0;
  55. $info = TbcModel::where("id", $id)->find();
  56. if ($info) {
  57. $info["talentArrangeName"] = DictApi::selectByParentCode("talent_arrange")[$info["talentArrange"]];
  58. }
  59. if ($this->request->isPost()) {
  60. $response = new \stdClass();
  61. $response->code = 500;
  62. $data = $request->param();
  63. $check = $this->dataCheck($data);
  64. if ($check->code == 500) {
  65. return $check;
  66. }
  67. $talentInfo = \app\common\api\VerifyApi::getTalentInfoById($request["talentId"]);
  68. if ($data["id"]) {
  69. $data["updateUser"] = $this->user["uid"];
  70. $data["updateTime"] = date("Y-m-d H:i:s");
  71. TbcModel::update($data);
  72. $response->code = 200;
  73. $response->msg = "修改成功";
  74. return $response;
  75. } else {
  76. $data["id"] = getStringId();
  77. $data["checkState"] = -1;
  78. $data["createUser"] = $this->user["uid"];
  79. $data["createTime"] = date("Y-m-d H:i:s");
  80. TbcModel::create($data);
  81. $user = $this->user;
  82. $log["id"] = getStringId();
  83. $log["active"] = 1;
  84. $log["state"] = 1;
  85. $log["step"] = 0;
  86. $log["stateChange"] = "";
  87. $log["type"] = ProjectState::BANKCHANGE;
  88. $log["mainId"] = $data["id"];
  89. $log["description"] = "添加银行账号变更申请";
  90. $log["createUser"] = $user ? sprintf("%s(%s)", $user["account"], $user["companyName"] ?: $user["rolename"]) : "系统";
  91. $log["createTime"] = date("Y-m-d H:i:s");
  92. TalentLog::create($log);
  93. $response->code = 200;
  94. $response->msg = "添加成功";
  95. $response->obj = $data;
  96. return $response;
  97. }
  98. }
  99. return view("", ["row" => $info]);
  100. }
  101. public function view() {
  102. $id = $this->request["id"];
  103. $info = TbcModel::where("id", $id)->find();
  104. $info["talentArrangeName"] = DictApi::selectByParentCode("talent_arrange")[$info["talentArrange"]];
  105. return view("", ["row" => $info]);
  106. }
  107. public function submitToCheck() {
  108. $response = new \stdClass();
  109. $response->code = 500;
  110. $id = $this->request["id"];
  111. $info = TbcModel::where("id", $id)->find();
  112. if (!$info) {
  113. $response->msg = "提交审核失败,请先填写基础信息";
  114. return $response;
  115. }
  116. if ($info["checkState"] != -1 && $info["checkState"] != 2) {
  117. $response->msg = "不能重复提交审核";
  118. return $response;
  119. }
  120. $data["id"] = $id;
  121. $data["checkState"] = $info["checkState"] == 2 ? 9 : 1;
  122. TbcModel::update($data);
  123. $user = $this->user;
  124. $log["id"] = getStringId();
  125. $log["active"] = 1;
  126. $log["state"] = 1;
  127. $log["step"] = 0;
  128. $log["stateChange"] = "<span class='label'>待提交</span>-><span class='label label-success'>待初审</span>";
  129. $log["type"] = ProjectState::BANKCHANGE;
  130. $log["mainId"] = $id;
  131. $log["description"] = "确认提交审核";
  132. $log["createUser"] = $user ? sprintf("%s(%s)", $user["account"], $user["companyName"] ?: $user["rolename"]) : "系统";
  133. $log["createTime"] = date("Y-m-d H:i:s");
  134. TalentLog::create($log);
  135. $response->code = 200;
  136. $response->msg = "提交审核成功";
  137. $response->obj = 1;
  138. return $response;
  139. }
  140. public function delete() {
  141. $response = new \stdClass();
  142. $response->code = 500;
  143. $info = TbcModel::where("id", $this->request["id"])->find();
  144. if ($info["checkState"] != -1) {
  145. $response->msg = "已提交审核,无法删除";
  146. return $response;
  147. }
  148. $data["id"] = $info["id"];
  149. $data["delete"] = 1;
  150. $data["deleteTime"] = date("Y-m-d H:i:s");
  151. TbcModel::update($data);
  152. $response->code = 200;
  153. $response->msg = "删除成功";
  154. return $response;
  155. }
  156. private function dataCheck($data) {
  157. $response = new \stdClass();
  158. $response->code = 500;
  159. if (\StrUtil::isEmpOrNull($data["talentId"])) {
  160. $response->msg = "申报对象不能为空";
  161. return $response;
  162. }
  163. if (\StrUtil::isEmpOrNull($data["newBankName"])) {
  164. $response->msg = "新开户银行不能为空";
  165. return $response;
  166. }
  167. if (\StrUtil::isEmpOrNull($data["newBankNerPoint"])) {
  168. $response->msg = "新开户银行网点不能为空";
  169. return $response;
  170. }
  171. if (\StrUtil::isEmpOrNull($data["newBankAccount"])) {
  172. $response->msg = "新开户银行账号不能为空";
  173. return $response;
  174. }
  175. if (!preg_match("/^[\x{4e00}-\x{9fa5}]*银行$/u", $data["newBankName"])) {
  176. $response->msg = "新开户银行格式不正确";
  177. return $response;
  178. }
  179. if (!preg_match("/^[\x{4e00}-\x{9fa5}]*银行[\x{4e00}-\x{9fa5}]*省?[\x{4e00}-\x{9fa5}]+市[\x{4e00}-\x{9fa5}]*$/u", $data["newBankNerPoint"])) {
  180. $response->msg = "新开户银行网点格式不正确";
  181. return $response;
  182. }
  183. if (!preg_match("/^\d+$/", $data["newBankAccount"])) {
  184. $response->msg = "新银行账户格式不合法";
  185. return $response;
  186. }
  187. if ($data["type"] == 1) {
  188. if (\StrUtil::isEmpOrNull($data["newBankNumber"])) {
  189. $response->msg = "新银行行号不能为空";
  190. return $response;
  191. }
  192. if (!preg_match("/^\d+$/", $data["newBankNumber"])) {
  193. $response->msg = "银行行号格式不合法";
  194. return $response;
  195. }
  196. }
  197. $response->code = 200;
  198. return $response;
  199. }
  200. }