$talentTypeList, 'industryFieldNew' => $industryFieldNewList, 'street' => $streetList]);
    }
    public function findEnterpriseChangeRecordByPage() {
        $res = EnterpriseApi::getRecordList($this->request);
        return json($res);
    }
    public function gotoEnterpriseChangeDetailPage() {
        $id = trim($this->request['id']);
        if (!$id) {
            return json(["msg" => 'ID不能为空!']);
        }
        $ecr = EnterpriseApi::getOneRecord($id);
        $ep = EnterpriseApi::getOne($ecr['mainId']);
        if (\StrUtil::isNotEmpAndNull($ecr['oldStreet']) || \StrUtil::isNotEmpAndNull($ecr['newStreet'])) {
            $streetList = DictApi::selectByParentCode("street");
            if (\StrUtil::isNotEmpAndNull($ecr['oldStreet'])) {
                $ecr['oldStreetName'] = $streetList[$ecr['oldStreet']];
            }
            if (\StrUtil::isNotEmpAndNull($ecr['newStreet'])) {
                $ecr['newStreetName'] = $streetList[$ecr['newStreet']];
            }
        }
        switch ($ecr['checkState']) {
            case 1:
                $ecr['checkStateName'] = '保存未提交';
                break;
            case 2:
                $ecr['checkStateName'] = '待审核';
                break;
            case 3:
                $ecr['checkStateName'] = '审核驳回';
                break;
            case 4:
                $ecr['checkStateName'] = '审核通过';
                break;
            case 5:
                $ecr['checkStateName'] = '重新提交';
                break;
            default:
                $ecr['checkStateName'] = '';
                break;
        }
        /* $where = [];
          $where[] = ['tcf.mainId', '=', $id];
          $files = TalentCommonFile::alias("tcf")->field("tcf.*,cft.api")->leftJoin("new_currency_filetype cft", "cft.id=tcf.typeId")->where($where)->select();
          $_files = [];
          foreach ($files as $k => $v) {
          $extension = pathinfo($v["url"])["extension"];
          if (in_array($extension, ["jpeg", "jpg", "png", "gif"])) {
          $v["is_img"] = 1;
          } else {
          $v["is_img"] = 0;
          }
          $v['url'] = getStoragePath($v['url']);
          $_files[$v["api"]][] = $v;
          } */
        $time = $this->compatible_time;
        //营业执照
        if (!$ecr["oldImgurl"]) {
            $ecr["oldImgurl"] = $ep["imgurl"];
        }
        if ($ecr["oldImgurl"]) {
            $pathinfo = pathinfo($ecr["oldImgurl"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["oldImgurl_is_img"] = 1;
            }
        }
        if (!$ecr["newImgurl"]) {
            //兼容旧filetype
            if (strtotime($ecr["createTime"]) < strtotime($time)) {
                $where = [];
                $where[] = ["mainId", "=", $id];
                $where[] = ["api", "=", "businessLicense"];
                $where[] = ["active", "=", 1];
                $_uploadFile = TalentCommonFile::alias("tcf")->leftJoin("new_currency_filetype ft", "ft.id=tcf.typeId")->where($where)->order("tcf.createTime desc")->find();
                if ($_uploadFile) {
                    $ecr["newImgurl"] = $_uploadFile["url"];
                } else {
                    $ecr["newImgurl"] = $ep["imgurl"];
                }
            }
        }
        if ($ecr["newImgurl"]) {
            $pathinfo = pathinfo($ecr["newImgurl"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["newImgurl_is_img"] = 1;
            }
        }
        //备案表
        if (!$ecr["oldBeian"]) {
            $ecr["oldBeian"] = $ep["beian"];
        }
        if ($ecr["oldBeian"]) {
            $pathinfo = pathinfo($ecr["oldBeian"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["oldBeian_is_img"] = 1;
            }
        }
        if (!$ecr["newBeian"]) {
            //兼容旧filetype
            if (strtotime($ecr["createTime"]) < strtotime($time)) {
                $where = [];
                $where[] = ["mainId", "=", $id];
                $where[] = ["api", "=", "businessBeian"];
                $where[] = ["active", "=", 1];
                $_uploadFile = TalentCommonFile::alias("tcf")->leftJoin("new_currency_filetype ft", "ft.id=tcf.typeId")->where($where)->order("tcf.createTime desc")->find();
                if ($_uploadFile) {
                    $ecr["newBeian"] = $_uploadFile["url"];
                } else {
                    $ecr["newBeian"] = $ep["beian"];
                }
            }
        }
        if ($ecr["newBeian"]) {
            $pathinfo = pathinfo($ecr["newBeian"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["newBeian_is_img"] = 1;
            }
        }
        //行业领域
        if (!$ecr["oldDomainImg"]) {
            $ecr["oldDomainImg"] = $ep["domainImg"];
        }
        if ($ecr["oldDomainImg"]) {
            $pathinfo = pathinfo($ecr["oldDomainImg"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["oldDomainImg_is_img"] = 1;
            }
        }
        if (!$ecr["newDomainImg"]) {
            //兼容旧filetype
            if (strtotime($ecr["createTime"]) < strtotime($time)) {
                $where = [];
                $where[] = ["mainId", "=", $id];
                $where[] = ["api", "=", "businessDomain"];
                $where[] = ["active", "=", 1];
                $_uploadFile = TalentCommonFile::alias("tcf")->leftJoin("new_currency_filetype ft", "ft.id=tcf.typeId")->where($where)->order("tcf.createTime desc")->find();
                if ($_uploadFile) {
                    $ecr["newDomainImg"] = $_uploadFile["url"];
                } else {
                    $ecr["newDomainImg"] = $ep["domainImg"];
                }
            }
        }
        if ($ecr["newDomainImg"]) {
            $pathinfo = pathinfo($ecr["newDomainImg"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["newDomainImg_is_img"] = 1;
            }
        }
        //个别企业类型需要上传附件
        if ($ecr["oldTypeImg"]) {
            $pathinfo = pathinfo($ecr["oldTypeImg"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["oldTypeImg_is_img"] = 1;
            }
        }
        if ($ecr["newTypeImg"]) {
            $pathinfo = pathinfo($ecr["newTypeImg"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["newTypeImg_is_img"] = 1;
            }
        }
        //开户许可证
        if (!$ecr["oldBankImg"]) {
            $ecr["oldBankImg"] = $ep["bankImg"];
        }
        if ($ecr["oldBankImg"]) {
            $pathinfo = pathinfo($ecr["oldBankImg"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["oldBankImg_is_img"] = 1;
            }
        }
        if (!$ecr["newBankImg"]) {
            //兼容旧filetype
            if (strtotime($ecr["createTime"]) < strtotime($time)) {
                $where = [];
                $where[] = ["mainId", "=", $id];
                $where[] = ["api", "=", "businessBank"];
                $where[] = ["active", "=", 1];
                $_uploadFile = TalentCommonFile::alias("tcf")->leftJoin("new_currency_filetype ft", "ft.id=tcf.typeId")->where($where)->order("tcf.createTime desc")->find();
                if ($_uploadFile) {
                    $ecr["newBankImg"] = $_uploadFile["url"];
                } else {
                    $ecr["newBankImg"] = $ep["bankImg"];
                }
            }
        }
        if ($ecr["newBankImg"]) {
            $pathinfo = pathinfo($ecr["newBankImg"]);
            if (in_array($pathinfo["extension"], ["jpeg", "jpg", "png", "gif"])) {
                $ecr["newBankImg_is_img"] = 1;
            }
        }
        $ecr["special"] = $ep->special;
        switch ($ep->special) {
            case 0:
                if (\StrUtil::isNotEmpAndNull($ecr['oldEnterpriseTag']) || \StrUtil::isNotEmpAndNull($ecr['newEnterpriseTag'])) {
                    $talentTypeList = DictApi::selectByParentCode("enterprise_tag");
                    if (\StrUtil::isNotEmpAndNull($ecr['oldEnterpriseTag'])) {
                        $ecr['oldEnterpriseTagName'] = $talentTypeList[$ecr['oldEnterpriseTag']];
                    }
                    if (\StrUtil::isNotEmpAndNull($ecr['newEnterpriseTag'])) {
                        $ecr['newEnterpriseTagName'] = $talentTypeList[$ecr['newEnterpriseTag']];
                    }
                }
                if (\StrUtil::isNotEmpAndNull($ecr['oldIndustryFieldNew']) || \StrUtil::isNotEmpAndNull($ecr['newIndustryFieldNew'])) {
                    $industryFieldNewList = DictApi::selectByParentCode("industry_field");
                    if (\StrUtil::isNotEmpAndNull($ecr['oldIndustryFieldNew'])) {
                        $ecr['oldIndustryFieldNewName'] = $industryFieldNewList[$ecr['oldIndustryFieldNew']];
                    }
                    if (\StrUtil::isNotEmpAndNull($ecr['newIndustryFieldNew'])) {
                        $ecr['newIndustryFieldNewName'] = $industryFieldNewList[$ecr['newIndustryFieldNew']];
                    }
                }
                if (\StrUtil::isNotEmpAndNull($ecr['oldIndustryFieldOld'])) {
                    $industry = DictApi::findDictByCode($ecr['oldIndustryFieldOld']);
                    $ecr['oldIndustryFieldOldName'] = $industry['name'];
                }
                if (\StrUtil::isNotEmpAndNull($ecr['newIndustryFieldOld'])) {
                    $industry = DictApi::findDictByCode($ecr['newIndustryFieldOld']);
                    $ecr['newIndustryFieldOldName'] = $industry['name'];
                }
                if (\StrUtil::isNotEmpAndNull($ecr['oldEnterpriseType'])) {
                    $industry = DictApi::findDictByCode($ecr['oldEnterpriseType']);
                    $ecr['oldEnterpriseTypeName'] = $industry['name'];
                }
                if (\StrUtil::isNotEmpAndNull($ecr['newEnterpriseType'])) {
                    $industry = DictApi::findDictByCode($ecr['newEnterpriseType']);
                    $ecr['newEnterpriseTypeName'] = $industry['name'];
                }
                return view("", ['ecr' => $ecr]);
                break;
            case 1:
                return view("", ['ecr' => $ecr]);
                break;
            default:
                break;
        }
    }
    public function gotoEnterpriseChangeExaminePage() {
        $id = trim($this->request['id']);
        if (!$id) {
            return json(["msg" => 'ID不能为空!']);
        }
        $ecr = EnterpriseApi::getOneRecord($id);
        $ep = EnterpriseApi::getOne($ecr['mainId']);
        if ($ep->special == 0) {
            if ($ep->type == 1) {
                $fields = ["Name" => "企业名称", "IdCard" => "统一社会信用代码", "Legal" => "法人代表", "Address" => "企业地址", "Street" => "所属街道", "Ephone" => "企业电话", "BankCard" => "企业银行账号", "Bank" => "企业开户银行", "BankNetwork" => "企业开户银行网点",
                    "IndustryFieldNew" => "产业领域", "IndustryFieldOld" => "行业领域", "EnterpriseTag" => "企业标签", "EnterpriseType" => "企业类型",
                    "AgentName" => "人才联络员姓名", "AgentPhone" => "人才联络员电话", "AgentEmail" => "人才联络员邮箱"];
                $files = ["newImgurl" => "企业营业执照", "newBankImg" => "开户许可证", "newDomainImg" => "行业领域佐证材料", "newBeian" => "人才联络员信息备案表", "newTypeImg" => "规上、高新技术、专精特新企业上传材料"];
            } else {
                $fields = ["Name" => "企业名称", "IdCard" => "统一社会信用代码", "Legal" => "法人代表", "Address" => "企业地址", "Street" => "所属街道", "Ephone" => "企业电话", "BankCard" => "企业银行账号", "Bank" => "企业开户银行", "BankNetwork" => "企业开户银行网点",
                    "AgentName" => "人才联络员姓名", "AgentPhone" => "人才联络员电话", "AgentEmail" => "人才联络员邮箱"];
                $files = ["newImgurl" => "企业营业执照", "newBankImg" => "开户许可证", "newBeian" => "人才联络员备案表"];
            }
        } else {
            $fields = ["Name" => "单位名称", "IdCard" => "统一社会信用代码", "Legal" => "法人代表", "Address" => "单位地址", "Street" => "所属街道", "Ephone" => "单位电话", "BankCard" => "单位银行账号", "Bank" => "单位开户银行", "BankNetwork" => "单位开户银行网点",
                "AgentName" => "人才联络员姓名", "AgentPhone" => "人才联络员电话", "AgentEmail" => "人才联络员邮箱"];
            $files = ["newImgurl" => "法人证或批文", "newBankImg" => "开户许可证", "newBeian" => "人才联络员备案表"];
        }
        $modify_fields = [];
        foreach ($fields as $key => $value) {
            $oldFieldName = "old" . $key;
            $newFieldName = "new" . $key;
            //if ($ecr[$oldFieldName] != $ecr[$newFieldName]) {
            $modify_fields[$newFieldName] = ["field" => $newFieldName, "name" => $value, "checked" => false];
            //}
        }
        if ($ecr["modify_fields"]) {
            $_modify_fields = explode(",", $ecr["modify_fields"]);
            foreach ($_modify_fields as $_field) {
                if ($modify_fields[$_field]) {
                    $modify_fields[$_field]["checked"] = true;
                } else {
                    $modify_fields[$_field] = ["field" => $_field, "name" => $fields[substr($_field, 3)], "checked" => true];
                }
            }
        }
        /* $currencyType = $ep["special"] == 0 ? "enterpriseChange" : "governmentChange";
          $where = [];
          $where[] = ["type", "=", $currencyType];
          $where[] = ["active", "=", 1];
          $fileTypes = \app\admin\model\CurrencyFiletype::where($where)->order("sn asc")->column("name", "id");
          $where = [];
          $where[] = ['mainId', '=', $id];
          $uploadTypeIds = TalentCommonFile::distinct(true)->field("typeId")->where($where)->column("typeId"); */
        $oldtypes = ["1161965644164075522" => "newImgurl", "1518753449987148467" => "newImgurl", "1518328155588131269" => "newBankImg", "1518926324960220206" => "newBankImg",
            "1518941016720463523" => "newDomainImg", "1519109971871948101" => "newBeian", "1519185486755815382" => "newBeian"];
        $modify_files = [];
        foreach ($files as $key => $value) {
            $modify_files[$key] = ["field" => $key, "name" => $value, "checked" => false];
        }
        if ($ecr["modify_files"]) {
            $_modify_files = explode(",", $ecr["modify_files"]);
            foreach ($_modify_files as $_file) {
                if ($modify_files[$_file]) {
                    $modify_files[$_file]["checked"] = true;
                } else {
                    if (strtotime($ecr["createTime"]) < strtotime($this->compatible_time)) {
                        //兼容旧的typeid
                        $_file = $oldtypes[$_file];
                    }
                    $modify_files[$_file] = ["field" => $_file, "name" => $files[$_file], "checked" => true];
                }
            }
        }
        return view("", ['ecr' => $ecr, 'fields' => $modify_fields, "files" => $modify_files]);
    }
    public function doExamine() {
        $id = trim($this->request['id']);
        if (!$id) {
            return json(["msg" => 'ID不能为空!', 'code' => 500]);
        }
        $ecr = EnterpriseApi::getOneRecord($id);
        if (!$ecr) {
            return json(["msg" => '原始数据不存在!', 'code' => 500]);
        }
        $checkState = trim($this->request['checkState']);
        $files = $this->request["files"];
        $fields = $this->request["fields"];
        if ($checkState == null || ($checkState != 4 && $checkState != 3)) {
            return json(["msg" => '请选择审核状态!', 'code' => 500]);
        }
        $checkMsg = trim($this->request['checkMsg']);
        //如果审核状态为 审核驳回, 需要填写审核意见
        if ($checkState == 3 && \StrUtil::isEmpOrNull($checkMsg)) {
            return json(["msg" => '审核驳回时,需要填写审核意见!', 'code' => 500]);
        }
        if ($checkState == 3 && !$files && !$fields) {
            return json(["msg" => '审核驳回时,需要选择可修改的字段或者附件!', 'code' => 500]);
        }
        if (\StrUtil::isNotEmpAndNull($checkMsg) && strlen($checkMsg) > 200) {
            return json(["msg" => '审核意见最多200个字符!', 'code' => 500]);
        }
        if ($ecr['checkState'] != 2 && $ecr['checkState'] != 3 && $ecr['checkState'] != 5) {
            return json(["msg" => '不在审核范围内!', 'code' => 500]);
        }
        //如果为审核驳回,更新表中的审核状态 和 审核意见, 直接返回结果
        if ($checkState == 3) {
            $ecr->checkState = 3;
            $ecr->checkMsg = $checkMsg;
            $ecr->updateUser = session('user')['uid'];
            $ecr->updateTime = date("Y-m-d H:i:s");
            $ecr->modify_fields = $fields ? implode(",", $fields) : null;
            $ecr->modify_files = $files ? implode(",", $files) : null;
            $ecr->save();
            //发送短信
            $record_data = [
                'id' => getStringId(),
                'bizId' => getStringId(),
                'userId' => $ecr['mainId'],
                'type' => 2,
                'smsType' => 2,
                'name' => $ecr['newName'],
                'phone' => $ecr['newAgentPhone'],
                'templateCode' => "【晋江市人才服务平台】您好!您提交申请的优秀人才{$checkMsg}因信息填写错误或上传不完整已被退回,请及时登录申报系统查看审核意见并重新提交。",
                'params' => '机构信息变更',
                'state' => 1,
                'sendingDate' => date("Y-m-d H:i:s", time()),
                'createTime' => date("Y-m-d H:i:s", time())
            ];
            $smsapi = new ChuanglanSmsApi();
            $result = $smsapi->sendSMS($ecr['newAgentPhone'], $record_data['templateCode']);
            MessageRecord::create($record_data);
            $company = CompanyApi::getOne(session('user')['companyId']);
            TalentChecklog::create([
                'id' => getStringId(),
                'category' => 'enterprise_change',
                'mainId' => $ecr['id'],
                'type' => 10,
                'typeField' => null,
                'active' => 1,
                'state' => 3,
                'step' => 101,
                'stateChange' => "审核驳回",
                'description' => $checkMsg,
                'createTime' => date("Y-m-d H:i:s", time()),
                'createUser' => session('user')['name'] . "({$company['name']})"
            ]);
            return json(["msg" => '操作成功!', "code" => 200]);
        } else {
            $ecr->checkState = 4;
            $ecr->checkMsg = $checkMsg;
            $ecr->updateUser = session('user')['uid'];
            $ecr->updateTime = date("Y-m-d H:i:s");
            $ecr->modify_fields = null;
            $ecr->modify_files = null;
            $ecr->save();
            $ep = EnterpriseApi::getOne($ecr['mainId']);
            $ep->name = $ecr['newName'];
            $ep->idCard = $ecr['newIdCard'];
            $ep->enterpriseTag = $ecr['newEnterpriseTag'];
            $ep->street = $ecr['newStreet'];
            $ep->address = $ecr['newAddress'];
            $ep->legal = $ecr['newLegal'];
            $ep->ephone = $ecr['newEphone'];
            $ep->agentName = $ecr['newAgentName'];
            $ep->agentEmail = $ecr['newAgentEmail'];
            $ep->agentPhone = $ecr['newAgentPhone'];
            $ep->industryFieldNew = $ecr['newIndustryFieldNew'];
            $ep->industryFieldOld = $ecr['newIndustryFieldOld'];
            $ep->enterpriseType = $ecr['newEnterpriseType'];
            $ep->bankCard = $ecr['newBankCard'];
            $ep->bankNetwork = $ecr['newBankNetwork'];
            $ep->bank = $ecr['newBank'];
            $ep->updateUser = session('user')['uid'];
            $ep->updateTime = date("Y-m-d H:i:s");
            $ep->imgurl = $ecr['newImgurl'] ?: $ep->imgurl;
            $ep->bankImg = $ecr['newBankImg'] ?: $ep->bankImg;
            $ep->domainImg = $ecr['newDomainImg'] ?: $ep->domainImg;
            $ep->typeImg = $ecr['newTypeImg'];
            $ep->beian = $ecr['newBeian'] ?: $ep->beian;
            //查询此次上传的文件
            /* $list = TalentCommonFile::where('mainId', $ecr['id'])->select()->toArray();
              if (count($list) > 0) {
              foreach ($list as $k => $v) {
              $fileInfo = CurrentcyFileType::where('id', $v['typeId'])->select()->toArray();
              if (count($fileInfo) > 0) {
              foreach ($fileInfo as $item) {
              switch ($item['api']) {
              case 'businessLicense':
              $ep->imgurl = $v['url'];
              break;
              case 'businessBank':
              $ep->bankImg = $v['url'];
              break;
              case 'businessDomain':
              $ep->domainImg = $v['url'];
              break;
              case 'businessBeian':
              $ep->beian = $v['url'];
              break;
              }
              }
              }
              }
              } */
            //同步人才库与津贴库  TODO
            $ep->save();
            //发送短信
            $record_data = [
                'id' => getStringId(),
                'bizId' => getStringId(),
                'userId' => $ecr['mainId'],
                'type' => 2,
                'smsType' => 2,
                'name' => $ecr['newName'],
                'phone' => $ecr['newAgentPhone'],
                'templateCode' => "【晋江市人才服务平台】您好!您提交申请的优秀人才{$checkMsg}已审核通过,可登录申报系统做相关事宜申报。",
                'params' => '机构信息变更',
                'state' => 1,
                'sendingDate' => date("Y-m-d H:i:s", time()),
                'createTime' => date("Y-m-d H:i:s", time())
            ];
            $smsapi = new ChuanglanSmsApi();
            $result = $smsapi->sendSMS($ecr['newAgentPhone'], $record_data['templateCode']);
            MessageRecord::create($record_data);
            $company = CompanyApi::getOne(session('user')['companyId']);
            TalentChecklog::create([
                'id' => getStringId(),
                'category' => 'enterprise_change',
                'mainId' => $ecr['id'],
                'type' => 10,
                'typeField' => null,
                'active' => 1,
                'state' => 4,
                'step' => 101,
                'stateChange' => "审核通过",
                'description' => $checkMsg,
                'createTime' => date("Y-m-d H:i:s", time()),
                'createUser' => session('user')['name'] . "({$company['name']})"
            ]);
            return json(["msg" => '操作成功!', "code" => 200]);
        }
    }
}