sugangqiang 1 ano atrás
pai
commit
ca9f5290f1
1 arquivos alterados com 103 adições e 55 exclusões
  1. 103 55
      app/admin/controller/TalentTypeChange.php

+ 103 - 55
app/admin/controller/TalentTypeChange.php

@@ -3,6 +3,9 @@
 namespace app\admin\controller;
 
 use app\admin\common\AdminController;
+use app\common\state\MainState;
+use think\facade\Db;
+use app\enterprise\model\TalentTypeChange as ttcModel;
 
 class TalentTypeChange extends AdminController {
 
@@ -35,77 +38,71 @@ class TalentTypeChange extends AdminController {
     }
 
     public function list() {
-        $where = $this->setTalentTypeChange($this->request->param());
-        TalentCheckUtil . setTypeChangeCheckStateCondition(wrapper, obj, process);
-        wrapper . orderBy("createTime", false);
-        switch (process) {
+        $params = $this->request->param();
+        $offset = $params["offset"] ?: 0;
+        $order = $params["order"] ?: "desc";
+        $limit = $params["limit"] ?: 10;
+        $process = $params["process"];
+        $where = [];
+        $this->setTalentTypeChange($where, $params);
+        $this->setTypeChangeCheckStateCondition($where, $params, $process);
+        if (in_array($this->user["type"], [1, 2, 5, 6])) {
+            $where[] = ["type", "=", $this->user["type"]];
+        }
+        switch ($process) {
             case -1:
-                Company company1 = (Company) super . getSession() . getAttribute("company");
-                wrapper . isNotNull("beforeCheckCompany");
-                if (!"super" . equals(company1 . getCode())) {
-                    wrapper . eq("beforeCheckCompany", company1 . getId());
-                }
-                page = talentTypeChangeService . selectPage(page, wrapper);
-                Map<String, String> map = this.companyService.selectListForMap(new EntityWrapper<>());
-                for (TalentTypeChange ttc : page.getRecords()) {
-                    ttc . setBeforeCheckCompanyName(map . get(ttc . getBeforeCheckCompany()));
+                $company = \app\common\api\CompanyApi::getOne($this->user["companyId"]);
+                $where[] = ["beforeCheckCompany", "EXP", Db::raw("is not null")];
+                if ($this->user["code"] != $company["code"]) {
+                    $where[] = ["beforeCheckCompany", "=", $company["id"]];
                 }
                 break;
             case 1:
-                if (user . getType() == 1 || user . getType() == 2) {
-                    wrapper . eq("type", user . getType());
-                }
-                wrapper . notIn("checkState", 3, 5);
-                page = talentTypeChangeService . selectPage(page, wrapper);
+                $where[] = ["checkState", "not in", [3, 5]];
                 break;
             case 2:
-                Company company = (Company) super . getSession() . getAttribute("company");
-                page = this . talentDepcheckstateService . selectForTalentTypeChange(obj, page, company, Integer . parseInt(ProjectConst . LEVELCHANGE));
+                //Company company = (Company) super . getSession() . getAttribute("company");
+                //page = this . talentDepcheckstateService . selectForTalentTypeChange(obj, page, company, Integer . parseInt(ProjectConst . LEVELCHANGE));
                 break;
             case 3:
-                if (user . getType() == 1 || user . getType() == 2) {
-                    wrapper . eq("type", user . getType());
-                }
-                wrapper . isNotNull("firstDepPassTime");
-                page = talentTypeChangeService . selectPage(page, wrapper);
+                $where[] = ["firstDepPassTime", "EXP", Db::raw("is not null")];
                 break;
             case 4:
-                if (user . getType() == 1 || user . getType() == 2) {
-                    wrapper . eq("type", user . getType());
-                }
-                wrapper . in("checkState", "-1,35");
-                page = talentTypeChangeService . selectPage(page, wrapper);
+                $where[] = ["checkState", "in", [-1, 35]];
                 break;
             case 5:
-                if (user . getType() == 1 || user . getType() == 2) {
-                    wrapper . eq("type", user . getType());
-                }
-                wrapper . eq("checkState", "35") . eq("isPublic", 6);
-                page = talentTypeChangeService . selectPage(page, wrapper);
+                $where[] = ["checkState", "=", 35];
+                $where[] = ["isPublic", "=", 6];
                 break;
         }
+
+        $count = ttcModel::where($where)->count();
+        $list = ttcModel::where($where)->limit($offset, $limit)->order("createTime {$order}")->select();
+        foreach ($list as $key => $item) {
+            if ($item["beforeCheckCompany"]) {
+                $list[$key]["beforeCheckCompanyName"] = getCacheById("Company", $item["beforeCheckCompany"]);
+            }
+        }
         //获取字典表人才层次
-        List<Dict> levellist = this . dictService . selectByParentCode(DictConst . UN_TALENTLEVEL);
-        List<Dict> typelist = this . dictService . selectByParentCode(DictConst . UN_JBT_TALENTTYPE);
-        Map<String, String> levelMap = FengStringUtil . dictList2Map(levellist);
-        Map<String, String> typeMap = FengStringUtil . dictList2Map(typelist);
-        //将认定条件id转为文本
-        Map<String, String> icmap = this.identifyConditionService.selectListForMap(new EntityWrapper<IdentifyCondition>().eq("type", ShiroKit.getUser().getType()));
-        for (TalentTypeChange info : page.getRecords()) {
-            //将人才层次code转换为中文
-            info . setOldTalentArrangeName(levelMap . get(info . getOldTalentArrange()));
-            info . setNewTalentArrangeName(levelMap . get(info . getNewTalentArrange()));
-            info . setOldIdentifyConditionCH(icmap . get(info . getOldIdentifyCondition()));
-            info . setNewIdentifyConditionCH(icmap . get(info . getNewIdentifyCondition()));
-        }
-        Map<String, Object> res = new HashMap<String, Object>();
-        res . put("rows", page . getRecords());
-        res . put("total", page . getTotal());
-        return res;
+        /* List<Dict> levellist = this . dictService . selectByParentCode(DictConst . UN_TALENTLEVEL);
+          List<Dict> typelist = this . dictService . selectByParentCode(DictConst . UN_JBT_TALENTTYPE);
+          Map<String, String> levelMap = FengStringUtil . dictList2Map(levellist);
+          Map<String, String> typeMap = FengStringUtil . dictList2Map(typelist);
+          //将认定条件id转为文本
+          Map<String, String> icmap = this.identifyConditionService.selectListForMap(new EntityWrapper<IdentifyCondition>().eq("type", ShiroKit.getUser().getType()));
+          for (TalentTypeChange info : page.getRecords()) {
+          //将人才层次code转换为中文
+          info . setOldTalentArrangeName(levelMap . get(info . getOldTalentArrange()));
+          info . setNewTalentArrangeName(levelMap . get(info . getNewTalentArrange()));
+          info . setOldIdentifyConditionCH(icmap . get(info . getOldIdentifyCondition()));
+          info . setNewIdentifyConditionCH(icmap . get(info . getNewIdentifyCondition()));
+          }
+         * 
+         */
+        return json(["rows" => $list, "total" => $count]);
     }
 
-    private function setTalentTypeChange($data) {
-        $where = [];
+    private function setTalentTypeChange(&$where, $data) {
         if (\StrUtil::isNotEmpAndNull($data["talentName"])) {
             $where[] = ["talentName", "like", "%{$data["talentName"]}%"];
         }
@@ -142,7 +139,58 @@ class TalentTypeChange extends AdminController {
         if ($data["newYear"]) {
             $where[] = ["newYear", "=", $data["newYear"]];
         }
-        return $where;
+    }
+
+    private function setTypeChangeCheckStateCondition(&$where, &$data, $process) {
+        $checkState = $data["checkState"];
+        if ($checkState) {
+            switch ($process) {
+                case -1:
+                    if ($checkState == MainState::NEED_FIRST_CHECK) {
+                        $where[] = ["checkState", ">=", $checkState];
+                    } else {
+                        $where[] = ["checkState", "=", $checkState];
+                    }
+                    break;
+                case 1:
+                    if ($checkState == MainState::NEED_DEP_CHECK) {
+                        $where[] = ["checkState", "in", [15, 25, 30, 35]];
+                    } else if ($checkState == MainState::BEFORE_REJECT) {
+                        $where[] = ["checkState", "=", MainState::NEED_FIRST_CHECK];
+                        $where[] = ["highProcess", ">=", 1];
+                    } else if ($checkState == MainState::NEED_FIRST_CHECK) {
+                        $where[] = ["checkState", "=", MainState::NEED_FIRST_CHECK];
+                        $where[] = ["highProcess", "<", 1];
+                    } else {
+                        $where[] = ["checkState", "=", $checkState];
+                    }
+                    break;
+                case 2:
+                    if ($checkState == MainState::BEFORE_REJECT) {
+                        $data["highProcess"] = 2;
+                        $data["checkState"] = 1;
+                    }
+                    break;
+                case 3:
+                    if ($checkState == MainState::THIRD_REJECT) {
+                        $where[] = ["checkState", "in", [7, 10, 15, 20, 30]];
+                    } else if ($checkState == MainState::BEFORE_REJECT) {            //重新提交
+                        $where[] = ["checkState", "=", MainState::NEED_THIRD];
+                        $where[] = ["highProcess", ">=", 3];
+                    } else if ($checkState == MainState::NEED_THIRD) {               //待复核
+                        $where[] = ["checkState", "=", $checkState];
+                        $where[] = ["highProcess", "<", 3];
+                    } else {
+                        $where[] = ["checkState", "=", $checkState];
+                    }
+                    break;
+                case 4:
+                    $where[] = ["checkState", "=", $checkState];
+                    break;
+                case 5:
+                    break;
+            }
+        }
     }
 
 }