Recovery.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace app\job;
  3. use think\queue\Job;
  4. use think\facade\Log;
  5. use think\facade\Db;
  6. use app\common\api\ChuanglanSmsApi;
  7. use app\common\model\MessageRecord;
  8. use app\common\api\TalentLogApi;
  9. use app\common\api\TalentConditionApi;
  10. use app\common\api\TalentState;
  11. use app\enterprise\model\Talent as TalentModel;
  12. use app\common\state\ProjectState;
  13. use app\common\state\CommonConst;
  14. use app\common\state\MainState;
  15. /**
  16. * Description of Recovery
  17. *
  18. * @author sgq
  19. */
  20. class Recovery {
  21. public function fire(Job $job, $data) {
  22. if ($this->deal($data)) {
  23. $job->delete();
  24. return true;
  25. }
  26. if ($job->attempts() >= 3) {
  27. $job->delete();
  28. return false;
  29. }
  30. $job->release(10); //10秒后重试
  31. }
  32. /**
  33. * 处理业务逻辑
  34. * @param type $data
  35. * @return bool
  36. */
  37. public function deal($data): bool {
  38. switch ($data["type"]) {
  39. case 1:
  40. //撤销工作单位变更审核通过
  41. $talentId = $data["id"];
  42. $where = [];
  43. $where[] = ["talentId", "=", $talentId];
  44. $where[] = ["checkState", "=", 3]; //通过状态才可以撤销
  45. $changeRecord = Db::table("un_talent_workunit_change")->where($where)->find();
  46. if ($changeRecord) {
  47. Db::startTrans();
  48. try {
  49. unset($where);
  50. $where[] = ["type", "=", ProjectState::WORKCHANGE];
  51. $where[] = ["mainId", "=", $changeRecord["id"]];
  52. $where[] = ["state", "=", 2];
  53. $rejectLog = Db::table("new_talent_checklog")->where($where)->find();
  54. $oldCheckState = $rejectLog ? 9 : 1; //推算之前的状态
  55. $checkMsg = "因审核有误,退回至待审核";
  56. $updWorkChange["id"] = $changeRecord["id"];
  57. $updWorkChange["checkState"] = $oldCheckState;
  58. $updWorkChange["checkMsg"] = $checkMsg;
  59. $updWorkChange["passTime"] = null;
  60. Db::table("un_talent_workunit_change")->save($updWorkChange);
  61. $log["id"] = getStringId();
  62. $log["active"] = 1;
  63. $log["state"] = 1;
  64. $log["step"] = 11;
  65. $log["stateChange"] = MainState::getStateName($changeRecord["checkState"]) . "->" . MainState::getStateName($oldCheckState);
  66. $log["type"] = ProjectState::WORKCHANGE;
  67. $log["mainId"] = $changeRecord["id"];
  68. $log["description"] = $checkMsg;
  69. $log["createUser"] = "系统";
  70. $log["createTime"] = date("Y-m-d H:i:s");
  71. Db::table("new_talent_checklog")->insert($log);
  72. //修改人才库信息
  73. $upd["id"] = $talentId;
  74. $upd["enterprise_id"] = $changeRecord["oldEnterpriseId"];
  75. $upd["labor_contract_rangetime"] = $changeRecord["oldStartTime"] . " - " . $changeRecord["oldEndTime"];
  76. $upd["cur_entry_time"] = $changeRecord["oldAnyTime"];
  77. $upd["active"] = 2;
  78. $upd["cur_quit_time"] = $changeRecord["quitTime"];
  79. $upd["position"] = $changeRecord["oldPost"];
  80. Db::table("new_talent_info")->save($upd);
  81. $talentLog["id"] = getStringId();
  82. $talentLog["active"] = 1;
  83. $talentLog["step"] = 21;
  84. $talentLog["type"] = ProjectState::TALENT;
  85. $talentLog["mainId"] = $talentId;
  86. $talentLog["description"] = "因审核有误,该工作单位变更退回至待审核。";
  87. $talentLog["createUser"] = "系统";
  88. $talentLog["createTime"] = date("Y-m-d H:i:s");
  89. Db::table("new_talent_checklog")->insert($talentLog);
  90. Db::commit();
  91. return true;
  92. } catch (\Exception $e) {
  93. Db::rollback();
  94. Log::write($e->getMessage(), "error");
  95. }
  96. }
  97. break;
  98. }
  99. return false;
  100. }
  101. }