| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701 | <?phpnamespace app\common\api;use app\common\model\Dict;use think\Facade\Db;use app\common\state\CommonConst;/** * Description of DictApi * * @author sgq */class DictApi {    public static function create($params) {        $data["code"] = $params["dictCode"];        $data["name"] = $params["dictName"];        $data["tips"] = $params["dictTips"];        $data["pid"] = 0;        $values = $params["dictValues"];        if (self::isExistByCode($data["code"]))            return ["msg" => sprintf("编码[%s]已经存在", $data["code"])];        $items = array_filter(explode(";", $values));        $id = Dict::insertGetId($data);        $childs = [];        for ($i = 0; $i < count($items); $i++) {            $fields = array_filter(explode(":", $items[$i]));            $childs[] = ["pid" => $id, "code" => $fields[0], "name" => $fields[1], "num" => $fields[2]];        }        Dict::insertAll($childs);        return ["code" => 200, "msg" => "成功"];    }    public static function update($params) {        $data["id"] = $params["dictId"];        $data["code"] = $params["dictCode"];        $data["name"] = $params["dictName"];        $data["tips"] = $params["dictTips"];        $data["pid"] = 0;        $values = $params["dictValues"];        if (self::isExistByCode($data["code"], $params["dictId"]))            return ["msg" => sprintf("编码[%s]已经存在", $data["code"])];        $items = array_filter(explode(";", $values));        Dict::update($data);        //删除原来的子项        Dict::where(["pid" => $params["dictId"]])->delete();        $childs = [];        for ($i = 0; $i < count($items); $i++) {            $fields = array_filter(explode(":", $items[$i]));            $childs[] = ["pid" => $params["dictId"], "code" => $fields[0], "name" => $fields[1], "num" => $fields[2]];        }        Dict::insertAll($childs);        return ["code" => 200, "msg" => "成功"];    }    public static function delete($id) {        Dict::where(["id" => $id])->delete();        Dict::where(["pid" => $id])->delete();        return ["code" => 200, "msg" => "成功"];    }    public static function isExistByCode($code, $id = 0) {        $where = [];        if ($id > 0) {            $where[] = ["id", "<>", $id];        }        $where[] = ["code", "=", $code];        $dict = Dict::where($where)->findOrEmpty()->toArray();        return $dict;    }    /**     * 获取一条     * @param type $id     * @return type     */    public static function getOne($id) {        $info = Dict::where("id", $id)->findOrEmpty()->toArray();        if ($info) {            $items = Dict::where("pid", "=", $id)->order("num asc")->select()->toArray();            $info["children"] = $items;        }        return $info;    }    /**     * 获取列表     * @param type $request     * @return type     */    public static function getList($request) {        $order = trim($request->param("order")) ?: "desc";        $offset = trim($request->param("offset")) ?: 0;        $limit = trim($request->param("limit")) ?: 10;        $name = trim($request->param("condition"));        $item = trim($request->param("item"));        $where = [];        $where[] = ["pid", "=", "0"];        if ($name) {            $where[] = ["name", "like", "%" . $name . "%"];        }        if ($item) {            $_where[] = ["pid", "<>", "0"];            $_where[] = ["name", "like", "%" . $item . "%"];            $ids = Dict::where($_where)->column("pid");            $ids = array_unique($ids);            $where[] = ["id", "in", $ids];        }        $count = Dict::where($where)->count();        $list = Dict::where($where)->limit($offset, $limit)->order("id " . $order)->select()->toArray();        foreach ($list as &$item) {            $items = Dict::where("pid", "=", $item["id"])->column("name");            $item["detail"] = implode(",", $items);        }        return ["total" => $count, "rows" => $list];    }    /**     *      * @param type $code     * @return type     */    public static function selectByParentCode($code) {        $parent = Dict::where("code", $code)->findOrEmpty()->toArray();        $dictList = Dict::where("pid", $parent["id"])->select()->toArray();        $tmp = [];        foreach ($dictList as $dict) {            $tmp[$dict["code"]] = $dict["name"];        }        return $tmp;    }    /**     *      * @param type $code     * @return type     */    public static function findChildDictByCode($code) {        $parent = Dict::where("code", $code)->findOrEmpty()->toArray();        $dictList = Dict::where("pid", $parent["id"])->select()->toArray();        return $dictList;    }    public static function findDictByCode($code) {        $dict = Dict::where("code", $code)->findOrEmpty();        return $dict;    }    public static function getIntegralFields() {        return [            "name" => "姓名",            "card_type" => "证件类型",            "card_number" => "证件号码",            "phone" => "手机号码",            "email" => "电子邮箱",            "shareholder" => "是否股东"        ];    }    public static function getTalentFields($step, $isImport = 0) {        $dict1 = [            "name" => "姓名",            "nation" => "民族",            "headimgurl" => "头像",            "card_type" => "证件类型",            "card_number" => "证件号码",            "sex" => "性别",            "birthday" => "出生日期",            "politics" => "政治面貌",            "nationality" => "国籍/地区",            "province" => "籍贯省",            "city" => "籍贯市",            "county" => "籍贯县",            "talent_type" => "人才类型",            "fst_work_time" => "来晋工作时间",            "tax_insurance_month" => "在我市缴交社会保险或个人所得税月份",            "labor_contract_rangetime" => "劳动合同起止时间",            "salary_pay_way" => "工资发放渠道",            "salary_pay_month" => "工资发放月份",            "pre_import_type" => "预引进类型",            "return" => "流出晋江满3年后又返回晋江的",            "import_way" => "引进方式",            "cur_entry_time" => "本单位入职时间",            "position" => "本单位现任职务",            "experience" => "工作简历",            "education" => "教育背景",        ];        $dict2 = [            "apply_year" => "申报年度",            "phone" => "手机号码",            "email" => "电子邮箱",            "highest_degree" => "最高学历",            "graduate_school" => "毕业院校",            "major" => "专业",            "study_abroad" => "是否有留学经历",            "abroad_school" => "留学毕业院校",            "abroad_major" => "留学专业",            "pro_qua" => "职业资格",            "professional" => "专业技术职称",        ];        if ($isImport) {            $dict2["isMatchZhiren"] = "是否符合直认条件";        }        $dict2_ = [            "source" => "申报来源",            "source_city" => "入选来源地级市",            "source_county" => "入选来源县市区",            "talent_arrange" => "人才层次",            "talent_arrange_category" => "人才条款",            "talent_condition" => "认定条件",            "identifyGetTime" => "认定条件取得时间",            "annual_salary" => "上一年度年薪(元)",            "bank" => "开户银行",            "bank_number" => "银行行号",            "bank_branch_name" => "开户银行网点",            "bank_account" => "个人银行账号"                //"source_batch" => "入选名单的文件号及批次",                //"fujian_highcert_pubtime" => "福建省高层次人才证书发证日期",                //"fujian_highcert_exptime" => "福建省高层次人才证书有效期",                //"quanzhou_highcert_pubtime" => "泉州高层次人才证书发证日期",                //"quanzhou_highcert_exptime" => "泉州高层次人才证书有效期",        ];        $dict2 = array_merge($dict2, $dict2_);        if ($step == 1) {            return $dict1;        }        if ($step == 2) {            return $dict2;        }        if ($step == 3) {            return null;        }        return array_merge($dict1, $dict2);    }    public static function getTalentFields_IC() {        $dict = [            "name" => "姓名",            "card_type" => "证件类型",            "card_number" => "证件号码",            "sex" => "性别",            "birthday" => "出生日期",            "nationality" => "国籍/地区",            "province" => "籍贯省",            "city" => "籍贯市",            "county" => "籍贯县",            "nation" => "民族",            "politics" => "政治面貌",            "break_faith" => "是否曾被相关主管部门列为失信个人",            "phone" => "手机号码",            "email" => "电子邮箱",            "highest_degree" => "最高学历",            "graduate_school" => "毕业院校",            "major" => "专业",            "study_abroad" => "是否有留学经历",            "position" => "职务",            "cur_entry_time" => "入职时间",            "labor_contract_rangetime" => "工作合同起止时间",            "talent_arrange" => "人才层次",            "talent_condition" => "认定条件",            "identifyConditionName" => "认定条件名称",            "identifyGetTime" => "认定条件取得时间",            "title" => "职称",            "pro_qua" => "国家职业资格",            "bank" => "开户银行",            "bank_branch_name" => "开户银行网点",            "bank_account" => "银行账号",            "education" => "教育背景及工作简历",            "experience" => "主要业绩及取得的荣誉",            "description" => "备注",            "headimgurl" => "头像"        ];        return $dict;    }    public static function getTalentFields_WJ() {        $dict = [            "name" => "姓名",            "sex" => "性别",            "nation" => "民族",            "politics" => "政治面貌",            "card_type" => "证件类型",            "card_number" => "证件号码",            "birthday" => "出生日期",            "talent_type" => "人才类型",            "highest_degree" => "最高学历",            "graduate_school" => "毕业院校",            "major" => "专业",            "study_abroad" => "是否有留学经历",            "abroad_school" => "留学毕业院校",            "abroad_major" => "留学专业",            "position" => "职务",            "cur_entry_time" => "入职时间",            "labor_contract_rangetime" => "工作合同起止时间",            "title" => "职称",            "fst_city_work_time" => "来泉工作时间",            "is_fujian_talent" => "是否认定福建省或泉州市高层次人才",            "is_jinjiang_talent" => "是否符合晋江人才认定标准",            "talent_arrange" => "人才层次",            "talent_condition" => "认定条件",            "phone" => "手机号码",            "email" => "电子邮箱",            "bank" => "开户银行",            "bank_account" => "银行账号",            "bank_number" => "银行行号",            "bank_branch_name" => "开户银行网点",            "education" => "教育背景及工作简历",            "experience" => "主要业绩及取得的荣誉",            "headimgurl" => "头像"        ];        return $dict;    }    public static function getTalentFields_GJ() {        $dict = [            "name" => "姓名",            "nation" => "民族",            "card_type" => "证件类型",            "card_number" => "证件号码",            "sex" => "性别",            "birthday" => "出生日期",            "politics" => "政治面貌",            "nationality" => "国籍/地区",            "province" => "籍贯省",            "city" => "籍贯市",            "county" => "籍贯县",            "talent_type" => "人才类型",            "position" => "职务",            "cur_entry_time" => "入职时间",            "labor_contract_rangetime" => "工作合同起止时间",            "highest_degree" => "最高学历",            "graduate_school" => "毕业院校",            "major" => "专业",            "study_abroad" => "是否有留学经历",            "abroad_school" => "留学院校",            "abroad_major" => "留学专业",            "title" => "职称",            "pro_qua" => "职业资格",            "phone" => "手机号码",            "email" => "电子邮箱",            "is_fujian_talent" => "是否经我市认定福建省或泉州市高层次人才",            "is_jinjiang_talent" => "与申请认定我市高教人才的条款是否一样",            "parent_talent_level" => "福建省或泉州认定人才层次",            "parent_talent_condition" => "福建省或泉州市认定人才条件",            "talent_arrange" => "人才层次",            "talent_arrange_category" => "人才条款",            "talent_condition" => "认定条件",            "identifyGetTime" => "认定条件取得时间",            "bank" => "开户银行",            "bank_account" => "银行账号",            "bank_number" => "银行行号",            "bank_branch_name" => "开户银行网点",            "education" => "教育背景及工作简历",            "experience" => "主要业绩及取得的荣誉",            "headimgurl" => "头像"        ];        return $dict;    }    public static function getTalentTypeChangeFields($type) {        $fields = [];        switch ($type) {            case CommonConst::ENTERPRISE_NORMAL:                $fields = [                    "newSource" => "新申报来源",                    "newSourceCity" => "新入选来源地级市",                    "newSourceCounty" => "新入选来源县市区",                    "newTalentArrange" => "新人才层次",                    "newIdentifyConditionCategory" => "新人才条款",                    "newIdentifyCondition" => "新认定条件",                    "newIdentifyGetTime" => "新认定条件证书取得时间",                    "newAnnualSalary" => "新年薪",                    "newIntroductionMode" => "新引进方式"                ];                break;            case CommonConst::ENTERPRISE_JC:                $fields = [                    "newTalentArrange" => "新人才层次",                    "newIdentifyCondition" => "新认定条件",                    "newIdentifyConditionName" => "新认定条件名称",                    "newIdentifyGetTime" => "新认定条件证书取得时间",                ];                break;            case CommonConst::ENTERPRISE_WJ:                $fields = [                    "newTalentArrange" => "新人才层次",                    "newIdentifyCondition" => "新认定条件",                    "newIdentifyGetTime" => "新认定条件证书取得时间",                    "newAnnualSalary" => "新年薪",                ];                break;            case CommonConst::ENTERPRISE_GJ:                $fields = [                    "newTalentArrange" => "新人才层次",                    "newIdentifyConditionCategory" => "新人才条款",                    "newIdentifyCondition" => "新认定条件",                    "newIdentifyGetTime" => "新认定条件证书取得时间",                    "newAnnualSalary" => "新年薪",                ];                break;        }        return $fields;    }    // 1保存未提交 2已提交未审核 3已审核 4驳回 5保存补充材料未提交 6提交补充材料进入初审 7初审通过 8初审驳回 9部门审核通过 10部门审核驳回 11复核通过 12复核驳回 13复核失败    public static function getCheckLogStepName($state, $step) {        $stepName = "";        switch ($state) {            case -1:            case 3:            case 4:                $stepName = '<span class="label label-primary">总院审核</span>';                break;            case 5:            case 6:            case 7:                $stepName = '<span class="label label-primary">基础信息复审</span>';                break;            case -2:            case 10:            case 11:                if ($step == 3) {                    $stepName = '<span class="label label-primary">部门审核</span>';                } else {                    $stepName = '<span class="label label-primary">初级审核</span>';                }                break;            case 12:            case 13:                $stepName = '<span class="label label-primary">部门审核</span>';                break;            case -14:            case 14:            case 15:                $stepName = '<span class="label label-info">复核</span>';                break;            case 16:                $stepName = '<span class="label label-danger">审核不通过</span>';                break;            case 21:            case 22:                $stepName = '<span class="label label-info">核查征信</span>';                break;            case 23:            case 24:            case 25:                $stepName = '<span class="label label-info">公示</span>';                break;            case 26:            case 27:                $stepName = '<span class="label label-info">公布</span>';                break;            case 28:                $stepName = '<span class="label label-inverse">发放人才码</span>';                break;            default:                switch ($step) {                    case 60:                        $stepName = '<span class="label">取消优秀人才</span>';                        break;                    case 65:                        $stepName = '<span class="label">恢复优秀人才</span>';                        break;                    default:                        $stepName = '<span class="label">用户操作</span>';                        break;                }                break;        }        return $stepName;    }    public static function getTalentInfoStateName($state, $step = 0, $last_state = 0) {        $str = "";        switch ($state) {            case -14:                $str = '<span class="label label-success">待复审</span>';                break;            case -2:                $str = '<span class="label label-danger">初审失败</span>';                break;            case -1:                $str = '<span class="label label-danger">基础信息审核失败</span>';                break;            case 1:                if ($last_state > $state) {                    $str = '<span class="label label-danger">驳回到分院</span>';                } else {                    $str = '<span class="label">待提交总院</span>';                }                break;            case 2:                /* if ($last_state > $state) {                  $str = '<span class="label label-success">待重审</span>';                  } else */                if ($last_state == 3) {                    $str = '<span class="label label-danger">基础信息复审驳回</span>';                } else {                    $str = '<span class="label label-success">待总院审核</span>';                }                break;            case 3:                $str = '<span class="label label-primary">总院审核通过</span>';                break;            case 4:                $str = '<span class="label">再提交总院</span>';                break;            case 5:                $str = '<span class="label label-primary">基础信息复审通过</span>';                break;            case 6:                $str = '<span class="label label-danger">基础信息复审驳回</span>';                break;            case 7:                $str = '<span class="label label-danger">基础信息复审失败</span>';                break;            case 8:                if ($last_state > $state) {                    $str = '<span class="label label-danger">初审驳回</span>';                } else {                    $str = '<span class="label">待提交认定材料</span>';                }                break;            case 9:                if ($step == 3) {                    $str = '<span class="label label-danger">部门驳回</span>';                } else {                    if ($last_state == TalentState::FST_VERIFY_REJECT) {                        $str = '<span class="label label-success">待重审</span>';                    } else if ($last_state == TalentState::DEPT_VERIFY_REJECT) {                        $str = '<span class="label label-danger">部门驳回</span>';                    } else if ($last_state == TalentState::REVERIFY_REJECT) {                        $str = '<span class="label label-danger">复核驳回</span>';                    } else {                        $str = '<span class="label label-success">待初审</span>';                    }                }                break;            case 10:                if ($step == 3) {                    $str = '<span class="label label-success">待部门审核</span>';                } else {                    $str = '<span class="label label-success">待复审</span>';                }                break;            case 11:                $str = '<span class="label">再提交认定材料</span>';                break;            case 12:                if ($step == 3) {                    $str = '<span class="label label-primary">部门通过</span>';                } else {                    $str = '<span class="label label-success">待复审</span>';                }                break;            case 13:                if ($step == 3) {                    $str = '<span class="label label-danger">部门驳回</span>';                } else {                    $str = '<span class="label label-success">待初审</span>';                }                break;            case 14:                $str = '<span class="label label-success">待核查征信</span>';                break;            case 15:                $str = '<span class="label label-danger">待重新审核</span>';                break;            case 16:                $str = '<span class="label label-danger">复核不通过</span>';                break;            case 22:                $str = '<span class="label label-danger">征信不通过</span>';                break;            case 25:                $str = '<span class="label label-danger">公示审核不通过</span>';                break;            case 27:                $str = '<span class="label label-danger">公布不通过</span>';                break;            case 21:                $str = '<span class="label label-success">待公示</span>';                break;            case 23:                $str = '<span class="label label-success">待公示审核</span>';                break;            case 24:                $str = '<span class="label label-success">待公布</span>';                break;            case 26:                $str = '<span class="label label-success">待发放人才码</span>';                break;            case 28:                $str = '<span class="label label-primary">已发放人才码</span>';                break;        }        return $str;    }    public static function getOldStateNameByState($state) {        switch ($state) {            case -2:                return "<span class='label label-success'>待提交</span>";            case -1:                return "<span class='label label-success'>审核不通过</span>";            case 1:                return "<span class='label label-success'>待审核</span>";            case 2:                return "<span class='label label-danger'>审核驳回</span>";            case 3:                return "<span class='label label-primary'>审核通过</span>";            case 4:                return "<span class='label label-warm'>上级驳回</span>";            case 10:                return "<span class='label label-default'>冻结</span>";            case 8:                return "<span class='label label-primary'>提交审核</span>";            case 11:                return "<span class='label label-primary'>撤销审核</span>";            case 9:                return "<span class='label label-primary'>重新提交</span>";            default:                return "";        }    }    public static function getOldStepNameByStep($step) {        switch ($step) {            case -1:                return "<span class='label label-primary'>部门初审</span>";            case 0:                return "<span class='label'>用户操作</span>";            case 1:                return "<span class='label label-primary'>初级审核</span>";            case 2:                return "<span class='label label-success'>部门审核</span>";            case 3:                return "<span class='label label-danger'>复核</span>";            case 4:                return "<span class='label label-warning'>核查征信</span>";            case 5:                return "<span class='label label-warning'>公示</span>";            case 6:                return "<span class='label label-success'>公示再审核</span>";            case 7:                return "<span class='label label-warning'>公布</span>";            case 8:                return "<span class='label label-info'>发证</span>";            case 11:                return "<span class='label label-danger'>审核</span>";            case 12:                return "<span class='label label-primary'>撤回审核</span>";            case 20:                return "<span class='label label-success'>人才层次变更</span>";            case 21:                return "<span class='label label-success'>工作单位变更</span>";            case 22:                return "<span class='label label-success'>离职变更</span>";            case 23:                return "<span class='label label-success'>银行账号变更</span>";            case 24:                return "<span class='label label-success'>基础信息变更</span>";            case 50:                return "<span class='label label-primary'>兑现</span>";            case 55:                return "<span class='label label-primary'>撤销公布</span>";            case 60:                return "<span class='label label-primary'>取消优秀人才</span>";            case 65:                return "<span class='label label-primary'>恢复优秀人才</span>";            case 70:                return "<span class='label label-danger'>设置审核不通过</span>";            default:                return "";        }    }    public static function findByParentCodeAndCode($parentCode, $code) {        $parent_info = Dict::where('code', $parentCode)->findOrEmpty();        if ($parent_info) {            return Dict::where('pid', $parent_info['id'])->where('code', $code)->find();        }        return false;    }    public static function getLayerCatsByLayer($lv) {        $kv = [1 => "A", 2 => "B", 3 => "C", 4 => "D", 5 => "E", 6 => "F", 7 => "G"];        $chr = $kv[$lv];        if ($chr) {            $parent_info = Dict::where('code', "talent_condition_cats")->findOrEmpty();            $where[] = ["pid", "=", $parent_info["id"]];            if ($parent_info) {                $where[] = ["code", "like", $chr . "%"];                return Dict::where($where)->select()->toArray();            }        }        return false;    }}
 |