Browse Source

人才层次变更增加积分记录

sugangqiang 1 year ago
parent
commit
725fdfab35

+ 4 - 0
app/admin/controller/System.php

@@ -41,6 +41,10 @@ class System extends AdminController {
         }
     }
 
+    public function add_talent_type_change_in_queue($id) {
+        queue("app\job\Talent", ["type" => 5, "id" => $id]);
+    }
+
     public function work_unit_change_recovery() {
         $id = $this->request["id"];
         if ($id) {

+ 2 - 2
app/admin/controller/TalentTypeChange.php

@@ -1421,9 +1421,9 @@ class TalentTypeChange extends AdminController {
                 Db::commit();
                 if ($user["type"] == 2) {
                     //办法上只写电路人才,所以暂时只给电路增加基础分
-                    $_ids = array_column($changeList, "talentId");
+                    $_ids = array_column($changeList, "id");
                     for ($i = 0; $i < count($_ids); $i++) {
-                        queue("app\job\Talent", ["type" => 4, "id" => $_ids[$i]]);
+                        queue("app\job\Talent", ["type" => 5, "id" => $_ids[$i]]);
                     }
                 }
                 return json(["code" => 200, "msg" => "发放人才码成功"]);

+ 75 - 0
app/job/Talent.php

@@ -234,6 +234,81 @@ class Talent {
                     Log::write($e->getMessage(), "error");
                 }
                 break;
+            case 5:
+                //人才层次变更变更积分
+                try {
+                    $mainId = $data["id"];
+                    $where = [];
+                    $where[] = ["id", "=", $mainId];
+                    $where[] = ["checkState", "=", \app\common\state\MainState::PASS];
+                    $where[] = ["isPublic", "=", 6];
+                    $talentTypeChange = \app\enterprise\model\TalentTypeChange::where($where)->find();
+                    if (strlen($talentTypeChange["talentId"]) == 19) {
+                        $where = [];
+                        $where[] = ["card_number", "=", $talentTypeChange["idCard"]];
+                        $where[] = ["checkState", "=", TalentState::CERTIFICATED];
+                        $talentInfo = TalentModel::where($where)->find();
+                    } else {
+                        $where = [];
+                        $where[] = ["id", "=", $talentTypeChange["talentId"]];
+                        $where[] = ["checkState", "=", TalentState::CERTIFICATED];
+                        $talentInfo = TalentModel::where($where)->find();
+                    }
+                    $where = [];
+                    $where[] = ["mainId", "=", $mainId];
+                    $where[] = ["mainType", "=", "talentTypeChange"];
+                    $integralLog = Db::table("new_integral_log")->where($where)->find();
+                    if ($talentTypeChange && $talentInfo && !$integralLog) {
+                        $newLevel = $talentTypeChange["newTalentArrange"];
+                        $oldLevel = $talentTypeChange["oldTalentArrange"];
+                        $name = $talentInfo["name"]; //姓名
+                        $cardType = $talentInfo["card_type"]; //身份证类型
+                        $cardNumber = $talentInfo["card_number"]; //身份证
+                        $type = $talentTypeChange["type"]; //企业类型
+                        $lastPoints = 0; //上次积分
+                        //$gainPoints = CommonConst::getLayerPointsByLayer($level); //增加积分
+                        //$desc = sprintf("经人才申报审核通过,认定为集成电路(%s)优秀人才,基础分变更为%d分。", CommonConst::getLayerNameByLayer($level), $gainPoints); //详情
+
+                        /* 查询是否升级 */
+                        if ($newLevel < $oldLevel) {
+                            $beforeLevelName = CommonConst::getLayerNameByLayer($oldLevel); //之前层次
+                            $beforeLevelPoints = CommonConst::getLayerPointsByLayer($oldLevel); //之前基础分
+                            $nowLevelName = CommonConst::getLayerNameByLayer($newLevel); //现在层次
+                            $nowLevelPoints = CommonConst::getLayerPointsByLayer($newLevel); //现在基础分
+                            $gainPoints -= $beforeLevelPoints;
+                            $desc = sprintf("人才层次变更(%s->%s),基础分增加%d(%d->%d)分。", $beforeLevelName, $nowLevelName, $gainPoints, $beforeLevelPoints, $nowLevelPoints);
+
+
+                            /* 查询最后一条积分日志 */
+                            $where = [];
+                            //$where[] = ["name", "=", $name];
+                            $where[] = ["card_type", "=", $cardType];
+                            $where[] = ["card_number", "=", $cardNumber];
+                            $last_log = Db::table("new_integral_log")->where($where)->order("createTime desc")->find();
+                            $lastPoints = $last_log["nowPoints"] ?: 0;
+
+                            $log["id"] = getStringId();
+                            $log["type"] = $type;
+                            $log["mainType"] = "talentTypeChange";
+                            $log["mainId"] = $mainId;
+                            $log["enterprise_id"] = $talentInfo["enterprise_id"];
+                            $log["name"] = $name;
+                            $log["card_type"] = $cardType;
+                            $log["card_number"] = $cardNumber;
+                            $log["talentLevel"] = $newLevel;
+                            $log["lastPoints"] = $lastPoints;
+                            $log["gainPoints"] = $gainPoints;
+                            $log["nowPoints"] = $lastPoints + $gainPoints;
+                            $log["description"] = $desc;
+                            $log["createTime"] = date("Y-m-d H:i:s");
+                            Db::table("new_integral_log")->insert($log);
+                            return true;
+                        }
+                    }
+                } catch (\Exception $e) {
+                    Log::write($e->getMessage(), "error");
+                }
+                break;
         }
         return false;
     }

+ 9 - 4
public/static/modular/talentIdentify/integralMgr/IntegralLog.js

@@ -26,10 +26,15 @@ IntegralVerify.initColumn = function () {
         {field: 'selectItem', radio: true},
         {title: '积分来源', field: 'mainType', visible: true, align: 'center', valign: 'middle', width: '80px',
             formatter: function (value, row, index) {
-                if (value == "integral") {
-                    return "积分申报";
-                } else {
-                    return "人才申报";
+                switch (value) {
+                    case "integral":
+                        return "积分申报";
+                    case "talent":
+                        return "人才申报";
+                    case "talentTypeChange":
+                        return "人才层次变更";
+                    default:
+                        return "未分类";
                 }
             }
         },