Kaynağa Gözat

日志状态修正、审核流程小改、发现的小bug修改

sugangqiang 2 yıl önce
ebeveyn
işleme
092c946f0c

+ 17 - 10
app/admin/controller/Talent.php

@@ -337,9 +337,11 @@ class Talent extends AdminController {
             $log_checkState = $checkState = TalentState::FST_VERIFY_PASS; //初审成功
             $data["pass_dept_check"] = 0;
         } else if ($params["checkState"] == 4) {
-            //审核成功,并设置越过部门并审。附加条件:最高进度曾经超过初审2(包含初审,因为再次初审也就证明从上面驳回过,这步是防止前端改checkState=4进来)
+            if ($talent_info["highProcess"] < 3)
+                return json(["msg" => "只有曾经通过部门并审,初审时才可以选择直接跳过部门并审阶段"]);
+            //审核成功,并设置越过部门并审。附加条件:最高进度曾经通过部门并审3(包含部门并审)
             $log_checkState = $checkState = TalentState::FST_VERIFY_PASS; //初审成功
-            $data["pass_dept_check"] = $talent_info["highProcess"] >= 2 ? 1 : 0;
+            $data["pass_dept_check"] = $talent_info["highProcess"] >= 3 ? 1 : 0;
         } else {
             //审核驳回并记录需要修改的字段和上传文件
             $checkState = TalentState::SCND_SAVE; //退回材料编辑状态
@@ -369,7 +371,7 @@ class Talent extends AdminController {
         $nowProcess = 2;
         $log = TalentLogApi::getLastLog($talent_info["id"], 1);
         if (!$log || $log["active"] == 1)
-            return json(["msg" => "日志数据异常,审核失败"]);
+            return json(["msg" => "请先保存审核状态,再提交审核"]);
         if (in_array($log["new_state"], [TalentState::BASE_VERIFY_PASS, TalentState::FST_VERIFY_PASS, TalentState::REVERIFY_PASS])) {
             $data["highProcess"] = $nowProcess > $talent_info["highProcess"] ? $nowProcess : $talent_info["highProcess"];
         }
@@ -380,6 +382,7 @@ class Talent extends AdminController {
             //这边去除已经审核通过的单位,主要通过日志是否存在记录。
             $pass_companyIds = TalentLogApi::getPassDepts($talent_info["id"]); //已经通过的单位
             $unpass_companyIds = array_diff($companyIds, (array) $pass_companyIds); //排除已经通过的单位
+            sort($unpass_companyIds);
             TalentLogApi::writeDeptLogs($talent_info["id"], $unpass_companyIds, TalentState::FST_VERIFY_PASS);
         }
         $data["id"] = $talent_info["id"];
@@ -413,6 +416,8 @@ class Talent extends AdminController {
             //审核驳回并记录需要修改的字段和上传文件
             $checkState = TalentState::SCND_SUBMIT; //退回待初审
             $log_checkState = TalentState::FST_VERIFY_PASS; //当前状态不变
+            $data["modify_files"] = $params["files"];
+            $data["modify_fields"] = $params["fields"];
         }
 
         $fst_dept_check_time = $talent_info["first_dept_check_time"];
@@ -422,8 +427,6 @@ class Talent extends AdminController {
         if ($dept_log["active"] == 1)
             return json(["msg" => "您的部门已经审核过了"]);
         $data["id"] = $talent_info["id"];
-        $data["modify_files"] = $params["files"];
-        $data["modify_fields"] = $params["fields"];
         TalentModel::update($data);
         //修改日志
         TalentLogApi::rewrite($dept_log["id"], [$log_checkState, $checkState], $params["checkMsg"]);
@@ -451,6 +454,8 @@ class Talent extends AdminController {
         $nowProcess = 3;
         if (!$dept_log)
             return json(["msg" => "未匹配日志,审核失败"]);
+        if ($dept_log["state"] == $dept_log["new_state"])
+            return json(["msg" => "请先保存审核状态,再提交审核"]);
         if ($dept_log["active"] == 1)
             return json(["msg" => "您的部门已经审核过了"]);
 
@@ -460,9 +465,11 @@ class Talent extends AdminController {
         }
         $logs = TalentLogApi::getListLogByTime($talent_info["id"], $talent_info["first_dept_check_time"]);
         for ($i = 0; $i < count($logs); $i++) {
-            $over += $logs[$i]["active"] == 1 ? 1 : 0;
-            if ($logs[$i]["new_state"] == TalentState::SCND_SUBMIT) {
-                $error++;
+            if (!in_array($logs[$i]["companyId"], $pass_companyIds)) {
+                $over += $logs[$i]["active"] == 1 ? 1 : 0;
+                if ($logs[$i]["new_state"] == TalentState::SCND_SUBMIT) {
+                    $error++;
+                }
             }
         }
         if ($over == count($companys)) {
@@ -528,7 +535,7 @@ class Talent extends AdminController {
     private function commonSubmitCheck($talent_info, $nowProcess) {
         $log = TalentLogApi::getLastLog($talent_info["id"], 1);
         if (!$log || $log["active"] == 1)
-            return json(["msg" => "日志数据异常,审核失败"]);
+            return json(["msg" => "请先保存审核状态,再提交审核"]);
         if (in_array($log["new_state"], [TalentState::BASE_VERIFY_PASS, TalentState::FST_VERIFY_PASS, TalentState::REVERIFY_PASS])) {
             $data["highProcess"] = $nowProcess > $talent_info["highProcess"] ? $nowProcess : $talent_info["highProcess"];
         }
@@ -639,7 +646,7 @@ class Talent extends AdminController {
                         break;
                     case 7:
                         $tc = TalentConditionApi::getOne($talent_info["talent_condition"]);
-                        if ($tc["companyId"] && $talent_info["pass_dept_check"] != 1) {
+                        if ($tc["companyIds"] && $talent_info["pass_dept_check"] != 1) {
                             $process = 3;
                         } else {
                             $process = 4;

+ 41 - 13
app/common/api/DictApi.php

@@ -195,18 +195,22 @@ class DictApi {
     }
 
     // 1保存未提交 2已提交未审核 3已审核 4驳回 5保存补充材料未提交 6提交补充材料进入初审 7初审通过 8初审驳回 9部门审核通过 10部门审核驳回 11复核通过 12复核驳回 13复核失败
-    public static function getTalentInfoStepByState($state) {
+    public static function getCheckLogStepName($state, $step) {
         $stepName = "";
         switch ($state) {
             case -1:
             case 3:
             case 4:
-                $stepName = '<span class="label">基本条件申报</span>';
+                $stepName = '<span class="label label-primary">基础条件审核</span>';
                 break;
             case -2:
             case 7:
             case 8:
-                $stepName = '<span class="label label-primary">初级审核</span>';
+                if ($step == 3) {
+                    $stepName = '<span class="label label-primary">部门审核</span>';
+                } else {
+                    $stepName = '<span class="label label-primary">初级审核</span>';
+                }
                 break;
             case 9:
             case 10:
@@ -214,7 +218,7 @@ class DictApi {
                 break;
             case 11:
             case 12:
-                $stepName = '<span class="label label-danger">复核</span>';
+                $stepName = '<span class="label label-warning">复核</span>';
                 break;
             case 13:
                 $stepName = '<span class="label label-danger">审核不通过</span>';
@@ -226,7 +230,7 @@ class DictApi {
         return $stepName;
     }
 
-    public static function getTalentInfoStateName($state, $step = 0, $needDeptVerify = false) {
+    public static function getTalentInfoStateName($state, $step = 0, $last_state = 0) {
         $str = "";
         switch ($state) {
             case -2:
@@ -236,32 +240,56 @@ class DictApi {
                 $str = '<span class="label label-danger">基础信息审核失败</span>';
                 break;
             case 1:
-                $str = '<span class="label">待提交基本资料</span>';
+                if ($last_state > $state) {
+                    $str = '<span class="label label-danger">基审驳回</span>';
+                } else {
+                    $str = '<span class="label">待提交基础信息</span>';
+                }
                 break;
             case 2:
-                $str = '<span class="label label-success">待审核</span>';
+                if ($last_state > $state) {
+                    $str = '<span class="label label-success">待重审</span>';
+                } else {
+                    $str = '<span class="label label-success">待审核</span>';
+                }
                 break;
             case 3:
-                $str = '<span class="label">待提交认定资料</span>';
+                $str = '<span class="label">待提交认定料</span>';
                 break;
             case 4:
-                $str = '<span class="label label-danger">初审驳回</span>';
+                $str = '<span class="label">再提交基础信息</span>';
                 break;
             case 5:
-                $str = '<span class="label">待提交</span>';
+                if ($last_state > $state) {
+                    $str = '<span class="label label-danger">初审驳回</span>';
+                } else {
+                    $str = '<span class="label">待提交认定材料</span>';
+                }
                 break;
             case 6:
-                $str = '<span class="label label-success">待初审</span>';
+                if ($step == 3) {
+                    $str = '<span class="label label-danger">部门驳回</span>';
+                } else {
+                    if ($last_state == 8) {
+                        $str = '<span class="label label-success">待重审</span>';
+                    } else if ($last_state == 7) {
+                        $str = '<span class="label label-danger">部门驳回</span>';
+                    } else if ($last_state == 9) {
+                        $str = '<span class="label label-danger">复核驳回</span>';
+                    } else {
+                        $str = '<span class="label label-success">待初审</span>';
+                    }
+                }
                 break;
             case 7:
-                if ($needDeptVerify) {
+                if ($step == 3) {
                     $str = '<span class="label label-success">待部门审核</span>';
                 } else {
                     $str = '<span class="label label-success">待复核</span>';
                 }
                 break;
             case 8:
-                $str = '<span class="label label-success">待初审</span>';
+                $str = '<span class="label">再提交认定材料</span>';
                 break;
             case 9:
                 if ($step == 3) {

+ 4 - 1
app/common/api/TalentLogApi.php

@@ -30,7 +30,7 @@ class TalentLogApi {
         return TalentLog::where($where)->column("companyId");
     }
 
-    public static function getLastLog($mainId, $type, $companyId = 0) {
+    public static function getLastLog($mainId, $type, $companyId = 0, $extra_where = []) {
         $where = [];
         $where[] = ["mainId", "=", $mainId];
         $where[] = ["type", "=", $type];
@@ -38,6 +38,9 @@ class TalentLogApi {
         if ($companyId) {
             $where[] = ["companyId", "=", $companyId];
         }
+        if ($extra_where) {
+            $where[] = $extra_where;
+        }
         $last_log = TalentLog::where($where)->order("createTime desc")->findOrEmpty()->toArray();
         return $last_log;
     }

+ 3 - 0
app/common/api/VerifyApi.php

@@ -216,6 +216,9 @@ class VerifyApi {
             $item["enterprise_tag"] = $enterprise_tag_kvs[$item["enterpriseTag"]];
             $item["talentArrangeName"] = $talent_arrange_kvs[$item["talent_arrange"]];
             $item["talentConditionName"] = TalentCondition::findOrEmpty($item["talent_condition"])["name"];
+            $last_log = TalentLogApi::getLastLog($item["id"], 1, 0, ["step", "=", null]);
+            $item["lastState"] = $last_log["last_state"];
+            $item["realState"] = $last_log["state"];
         }unset($item);
         return ["total" => $count, "rows" => $list];
     }

+ 24 - 13
app/common/controller/Api.php

@@ -17,6 +17,7 @@ use app\common\model\TalentCommonFile;
 use app\common\api\UploadApi;
 use app\common\api\TalentConditionApi;
 use app\common\api\CompanyApi;
+use app\common\api\TalentState;
 
 /**
  * 需要权限的公共方法放这
@@ -82,14 +83,14 @@ class Api extends BaseController {
         $params = $this->request->param();
         $mainId = $params["mainId"];
         $type = $params["type"];
-        $talentInfo = TalentApi::getOne($mainId);
-        $condition = TalentConditionApi::getOne($talentInfo["talent_condition"]);
-        $needDeptVerify = false;
-        if ($condition["companyIds"] && $talentInfo["pass_dept_check"] != 1)
-            $needDeptVerify = true;
+        /* $talentInfo = TalentApi::getOne($mainId);
+          $condition = TalentConditionApi::getOne($talentInfo["talent_condition"]);
+          $needDeptVerify = false;
+          if ($condition["companyIds"] && $talentInfo["pass_dept_check"] != 1)
+          $needDeptVerify = true; */
         $list = TalentLogApi::getList($type, $mainId);
         $new_list = [];
-        foreach ($list as $item) {
+        foreach ($list as $key => $item) {
             switch ($item['category']) {
                 case 'enterprise_change':
                     switch ($item['step']) {
@@ -126,11 +127,21 @@ class Api extends BaseController {
                     $new_item["stateChange"] = $item['stateChange'];
                     break;
                 default:
-                    $new_item["stepName"] = DictApi::getTalentInfoStepByState($item["new_state"]);
-                    if ($item["state"] == 13) {
+                    $new_item["stepName"] = DictApi::getCheckLogStepName($item["state"], $item["step"]);
+                    if ($item["state"] == TalentState::REVERIFY_FAIL) {
                         $new_item["stateName"] = '<span class="label label-success">审核不通过</span>';
-                    } else if (in_array($item["state"], [3, 7, 9, 11])) {
-                        $new_item["stateName"] = '<span class="label label-primary">审核通过</span>';
+                    } else if (in_array($item["state"], [TalentState::BASE_VERIFY_PASS, TalentState::FST_VERIFY_PASS, TalentState::DEPT_VERIFY_PASS, TalentState::REVERIFY_PASS])) {
+                        if ($item["step"] == 3) {
+                            if ($item["new_state"] == TalentState::SCND_SUBMIT) {
+                                $new_item["stateName"] = '<span class="label label-danger">审核驳回</span>';
+                            } else if ($item["new_state"] == TalentState::DEPT_VERIFY_PASS) {
+                                $new_item["stateName"] = '<span class="label label-primary">审核通过</span>';
+                            } else {
+                                $new_item["stateName"] = '<span class="label label-success">待审核</span>';
+                            }
+                        } else {
+                            $new_item["stateName"] = '<span class="label label-primary">审核通过</span>';
+                        }
                     } else if (in_array($item["state"], [4, 8, 10, 12])) {
                         $new_item["stateName"] = '<span class="label label-danger">审核驳回</span>';
                     } else {
@@ -139,13 +150,13 @@ class Api extends BaseController {
                     if ($item["step"] == 3) {
                         $company = CompanyApi::getOne($item["companyId"]);
                         if ($item["active"] == 0) {
-                            $new_item["stateChange"] = str_replace("部门", '"' . $company["name"] . '"', DictApi::getTalentInfoStateName($item["last_state"], $item["step"], $needDeptVerify));
+                            $new_item["stateChange"] = str_replace("部门", '"' . $company["name"] . '"', DictApi::getTalentInfoStateName($item["state"], $item["step"]));
                         } else {
-                            $new_item["stateChange"] = sprintf("%s -> %s", str_replace("部门", '"' . $company["name"] . '"', DictApi::getTalentInfoStateName($item["last_state"], $item["step"], $needDeptVerify)), DictApi::getTalentInfoStateName($item["new_state"], $item["step"], $needDeptVerify));
+                            $new_item["stateChange"] = sprintf("%s -> %s", str_replace("部门", '"' . $company["name"] . '"', DictApi::getTalentInfoStateName($item["state"], $item["step"])), DictApi::getTalentInfoStateName($item["new_state"], $item["step"]));
                         }
                     } else {
                         if ($item["last_state"] && $item["new_state"]) {
-                            $new_item["stateChange"] = sprintf("%s -> %s", DictApi::getTalentInfoStateName($item["last_state"], $item["step"], $needDeptVerify), DictApi::getTalentInfoStateName($item["new_state"], $item["step"], $needDeptVerify));
+                            $new_item["stateChange"] = sprintf("%s -> %s", DictApi::getTalentInfoStateName($item["last_state"], $list[$key + 1]["step"]), DictApi::getTalentInfoStateName($item["new_state"], $list[$key - 1]["step"], $item["last_state"]));
                         } else {
                             $new_item["stateChange"] = "";
                         }

+ 2 - 2
public/static/modular/gate/talentBase/talentBase.js

@@ -56,7 +56,7 @@ TalentInfo.initColumn = function () {
                             return "<span class='label label-danger'>部门驳回</span>";
                             break;
                         case 12:
-                            return "<span class='label label-danger'>复驳回</span>";
+                            return "<span class='label label-danger'>复驳回</span>";
                             break;
 
                     }
@@ -66,7 +66,7 @@ TalentInfo.initColumn = function () {
                             return "<span class='label label-danger'>初审失败</span>";
                             break;
                         case - 1:
-                            return "<span class='label label-danger'>基础条件审核失败</span>";
+                            return "<span class='label label-danger'>基础信息审核失败</span>";
                             break;
                         case 1:
                             return "<span class='label'>保存未提交</span>";

+ 3 - 2
public/static/modular/gate/talentBase/talentInfo_info.js

@@ -485,7 +485,7 @@ TalentInfoInfoDlg._initFileTypeColumn = function () {
                 if (row.must == 2) {
                     str = str + '<i class="fa fa-paste"></i>' + value;
                 }
-                str = str + '<br /><span id="desc_'+row.rel+'">' + row.description + '</span></div>'
+                str = str + '<br /><span id="desc_' + row.rel + '">' + row.description + '</span></div>'
                 return str;
             }
         },
@@ -715,9 +715,10 @@ TalentInfoInfoDlg.validateIsEdit = function () {
  */
 TalentInfoInfoDlg.validUploadButton = function (type, fileTypeId, fileId, tableIndex, trIndex) {
     var files = $("#files").val();
+    files = files.split(",");
     var checkState = $("#checkState").val();
     var realState = $("#realState").val();
-    if (Feng.isEmptyStr(checkState) || checkState == 0 || (checkState == 1 && realState != 4) || checkState == 3 || checkState == 5 || (realState == 4 && files.indexOf(fileTypeId) != -1)) {
+    if (Feng.isEmptyStr(checkState) || checkState == 0 || (checkState == 1 && realState != 4) || checkState == 3 || checkState == 5 || (realState == 4 && files.indexOf(fileTypeId.toString()) != -1)) {
         if ((checkState == 3 || checkState == 5))
             return "";
         if (type == 1) {          //上传

+ 2 - 2
public/static/modular/gate/talentInfo/talentInfo.js

@@ -57,7 +57,7 @@ TalentInfo.initColumn = function () {
                             return "<span class='label label-danger'>部门驳回</span>";
                             break;
                         case 12:
-                            return "<span class='label label-danger'>复驳回</span>";
+                            return "<span class='label label-danger'>复驳回</span>";
                             break;
 
                     }
@@ -67,7 +67,7 @@ TalentInfo.initColumn = function () {
                             return "<span class='label label-danger'>初审失败</span>";
                             break;
                         case -1:
-                            return "<span class='label label-danger'>基础条件审核失败</span>";
+                            return "<span class='label label-danger'>基础信息审核失败</span>";
                             break;
                         case 1:
                             return "<span class='label'>保存未提交</span>";

+ 2 - 1
public/static/modular/gate/talentInfo/talentInfo_info.js

@@ -694,9 +694,10 @@ TalentInfoInfoDlg.validateIsEdit = function () {
  */
 TalentInfoInfoDlg.validUploadButton = function (type, fileTypeId, fileId, tableIndex, trIndex) {
     var files = $("#files").val();
+    files = files.split(",");
     var checkState = $("#checkState").val();
     var realState = $("#realState").val();
-    if (Feng.isEmptyStr(checkState) || checkState == 0 || checkState == 1 || checkState == 3 || (checkState == 5 && realState != 8) || (realState == 8 && files.indexOf(fileTypeId) != -1)) {
+    if (Feng.isEmptyStr(checkState) || checkState == 0 || checkState == 1 || checkState == 3 || (checkState == 5 && realState != 8) || (realState == 8 && files.indexOf(fileTypeId.toString()) != -1)) {
         if (type == 1) {          //上传
             return "<button type='button' onclick=\"TalentInfoInfoDlg.checkFile(this," + fileTypeId + "," + null + "," + tableIndex + "," + trIndex + ")\" style='margin-right: 10px' class=\"btn btn-xs btn-info\">" +
                     "<i class=\"fa fa-upload\"></i>上传" +

+ 11 - 9
public/static/modular/talentIdentify/talentInfo/talentInfo_base.js

@@ -42,8 +42,10 @@ TalentInfo.initColumn = function () {
                     return "<span class='label label-success'>待审核</span>"
                 }
                 if (value == 6) {
-                    if (row.highProcess != null && row.highProcess != '' && row.highProcess >= 1) {
-                        return "<span class='label label-success'>重新提交</span>"
+                    if (row.realState == 10) {
+                        return "<span class='label label-danger'>部门驳回</span>"
+                    } else if (row.realState == 12) {
+                        return "<span class='label label-danger'>复核驳回</span>"
                     } else {
                         return "<span class='label label-success'>待审核</span>"
                     }
@@ -65,13 +67,19 @@ TalentInfo.initColumn = function () {
                         return "<span class='label label-success'>待审核</span>"
                     }
                 }
+                if (value == 9) {
+                    return "<span class='label label-success'>待复审</span>"
+                }
                 if (value == 10) {
                     if (row.highProcess != null && row.highProcess != '' && row.highProcess >= 3) {
-                        return "<span class='label label-success'>上级驳回</span>"
+                        return "<span class='label label-danger'>上级驳回</span>"
                     } else {
                         return "<span class='label label-success'>待审核</span>"
                     }
                 }
+                if (value == 11) {
+                    return "<span class='label label-primary'>已通过</span>"
+                }
                 if (value == 12) {
                     if (row.highProcess != null && row.highProcess != '' && row.highProcess >= 4) {
                         return "<span class='label label-success'>上级驳回</span>"
@@ -79,12 +87,6 @@ TalentInfo.initColumn = function () {
                         return "<span class='label label-success'>待审核</span>"
                     }
                 }
-                if (value == 10) {
-                    return "<span class='label label-danger'>已驳回</span>"
-                }
-                if (value == 11) {
-                    return "<span class='label label-primary'>已通过</span>"
-                }
             }
         },
         {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle', width: "80px",

+ 1 - 7
public/static/modular/talentIdentify/talentInfo/talentInfo_common_check.js

@@ -53,7 +53,6 @@ TalentInfoInfoDlg.initFileTable = function () {
         for (var i = 0; i < $(".fileTable").length; i++) {
             datas.push([]);//创建空的多维数组,等下用来存每个附件表的各自的列
         }
-        console.log(data)
         for (var k in data["rows"]) {
             var rel = data["rows"][k].rel;
             if ($("#" + rel).length > 0) {
@@ -62,10 +61,6 @@ TalentInfoInfoDlg.initFileTable = function () {
                 }else{
                     var tableIndex = $("#" + rel).parents(".row").next(".row").find("table.fileTable").index(".fileTable");
                 }
-
-                console.log($("#" + rel).parents(".table").find("table.fileTable"),rel,tableIndex)
-
-
                 data["rows"][k].tableIndex = tableIndex;
                 data["rows"][k].trIndex = datas[tableIndex].length;
                 datas[tableIndex].push(data["rows"][k]);
@@ -284,10 +279,9 @@ TalentInfoInfoDlg.showFirstCheckModal = function () {
                     if (process <= 3) {
                         optionHtml = '<option value="">请选择</option>\n' +
                                 '                            <option value="3">审核通过</option>\n' +
-                                (obj.highProcess >= 2 && process == 2 ? '<option value="4">审核通过(跳过部门并审)</option>\n' : "") +
+                                (obj.highProcess >= 3 && process == 2 ? '<option value="4">审核通过(跳过部门并审)</option>\n' : "") +
                                 '                            <option value="2">审核驳回</option>\n';
                     }
-                    console.log(process);
                     if (process == 4) {
                         optionHtml = '<option value="">请选择</option>\n' +
                                 '                            <option value="3">审核通过</option>\n' +