瀏覽代碼

更新一些修改

sandm 2 年之前
父節點
當前提交
b3f2ebe88a

+ 48 - 3
app/admin/controller/DirectlyIdentify.php

@@ -62,6 +62,7 @@ class DirectlyIdentify extends AdminController{
         }
 
         $excel = $this->request->file("file");
+        $type = $this->request['type'];
 
 //        if (!isExcelFile($excel->getMime())){
 //            $response_obj->code = 500;
@@ -71,21 +72,65 @@ class DirectlyIdentify extends AdminController{
 
         $savename = \think\facade\Filesystem::disk("public")->putFile("uploadexcel", $excel);
 
+        if($type == 2){
+            //导入省级人才数据
+            $zhiren_data = [
+                'task_name' => date("Y-m-d",time()) . "-导入省级人才数据",
+                'task_file' => $savename,
+                'task_status' => -1,
+                'createTime' => date("Y-m-d H:i:s",time()),
+                'updateTime' => date("Y-m-d H:i:s",time())
+            ];
+            $id = Db::table("new_talent_zhiren")->insertGetId($zhiren_data);
+
+            queue("app\job\Import", ["id" => $id,"type" => 2]);
+
+        }else{
+            //导入泉州人才数据
+            $zhiren_data = [
+                'task_name' => date("Y-m-d",time()) . "-导入泉州人才数据",
+                'task_file' => $savename,
+                'task_status' => -1,
+                'createTime' => date("Y-m-d H:i:s",time()),
+                'updateTime' => date("Y-m-d H:i:s",time())
+            ];
+            $id = Db::table("new_talent_zhiren")->insertGetId($zhiren_data);
+
+            queue("app\job\Import", ["id" => $id,"type" => 3]);
+        }
+
+        $response_obj->code = 200;
+        $response_obj->msg = '导入成功';
+        return \StrUtil::back($response_obj, "DirectlyIdentify.callBack");
+    }
+
+    /**
+     * 泉州人才信息导入
+     */
+    public function qz_talent_import(){
+        $response_obj = new \StdClass();
+        if (!$this->request->file()){
+            $response_obj->code = 500;
+            $response_obj->msg = '没有选择文件';
+            return \StrUtil::back($response_obj, "DirectlyIdentify.callBack");
+        }
+
+        $excel = $this->request->file("file");
+        $savename = \think\facade\Filesystem::disk("public")->putFile("uploadexcel", $excel);
         $zhiren_data = [
-            'task_name' => date("Y-m-d",time()) . "-导入人才数据",
+            'task_name' => date("Y-m-d",time()) . "-导入泉州人才数据",
             'task_file' => $savename,
             'task_status' => -1,
             'createTime' => date("Y-m-d H:i:s",time()),
             'updateTime' => date("Y-m-d H:i:s",time())
         ];
-
         $id = Db::table("new_talent_zhiren")->insertGetId($zhiren_data);
 
         queue("app\job\Import", ["id" => $id,"type" => 2]);
 
-
         $response_obj->code = 200;
         $response_obj->msg = '导入成功';
         return \StrUtil::back($response_obj, "DirectlyIdentify.callBack");
+
     }
 }

+ 17 - 6
app/admin/view/directly_identify/index.html

@@ -23,14 +23,24 @@
                                 <i class="fa fa-plus"></i>&nbsp;导入机构数据
                             </button>
                             {/if}
-                            {if condition="chkCommission('/admin/directly_identify/talent_template','/directly_identify/talent_template')"}
-                            <button type="button" class="btn btn-sm btn-primary " onclick="DirectlyIdentify.download_talent_template()">
-                                <i class="fa fa-plus"></i>&nbsp;人才导入模板下载
+                            {if condition="chkCommission('/admin/directly_identify/fj_talent_template','/directly_identify/fj_talent_template')"}
+                            <button type="button" class="btn btn-sm btn-primary " onclick="DirectlyIdentify.download_fj_talent_template()">
+                                <i class="fa fa-plus"></i>&nbsp;省上人才导入模板下载
                             </button>
                             {/if}
-                            {if condition="chkCommission('/admin/directly_identify/import_talent','/directly_identify/import_talent')"}
-                            <button type="button" class="btn btn-sm btn-primary " onclick="DirectlyIdentify.talent_import()">
-                                <i class="fa fa-plus"></i>&nbsp;导入人才数据
+                            {if condition="chkCommission('/admin/directly_identify/qz_talent_template','/directly_identify/qz_talent_template')"}
+                            <button type="button" class="btn btn-sm btn-primary " onclick="DirectlyIdentify.download_qz_talent_template()">
+                                <i class="fa fa-plus"></i>&nbsp;泉州人才导入模板下载
+                            </button>
+                            {/if}
+                            {if condition="chkCommission('/admin/directly_identify/fj_import_talent','/directly_identify/fj_import_talent')"}
+                            <button type="button" class="btn btn-sm btn-primary " onclick="DirectlyIdentify.fj_talent_import()">
+                                <i class="fa fa-plus"></i>&nbsp;导入省级人才数据
+                            </button>
+                            {/if}
+                            {if condition="chkCommission('/admin/directly_identify/qz_import_talent','/directly_identify/qz_import_talent')"}
+                            <button type="button" class="btn btn-sm btn-primary " onclick="DirectlyIdentify.qz_talent_import()">
+                                <i class="fa fa-plus"></i>&nbsp;导入泉州人才数据
                             </button>
                             {/if}
                         </div>
@@ -87,6 +97,7 @@
             </div>
             <div class="modal-body">
                 <form id="talent-import-form" action="/admin/directly_identify/talent_import" method="post" enctype="multipart/form-data" target="hiddenIframe">
+                    <input type="hidden" name="type" value="" id="import_type"/>
                     <input type="file" id="file1" name="file" onchange="$('#fileName1').val($('#file1').val());" class="hidden">
                     <div class="form-group row">
                         <div class="col-sm-1"></div>

+ 5 - 0
app/common/view/auth/enterprise_edit.html

@@ -208,6 +208,11 @@
                                                     <input style="display: none" autocomplete="off" type="file" class="form-control" id="domainImg" name="domainImg" />
                                                 </td>
                                             </tr>
+                                            <tr class="agencyType1">
+                                                <td colspan="3">
+                                                    <p style="color: #333;width:100%;white-space:normal;word-wrap:break-word;word-break:break-all;">备注:晋江市现代产业体系“434”产业的行业分类,详见<a href="https://rencai.jucai.gov.cn/RXu0fYBPZwdXrgNzq9vIIRjaHXTu3mv3.docx">《国民经济行业分类(GB/T+4754-2017)》</a>,晋江市现代产业体系“1”产业的行业分类详见<a href="https://rencai.jucai.gov.cn/QKmKXmINDNeU1qKslkfaec47LXp7qCUO.docx" >《数字经济及其核心产业统计分类(2021)》</a></p>
+                                                </td>
+                                            </tr>
                                             <tr class='agencyType1 agencyType2'>
                                                 <td>
                                                     <div class="rowGroup">

+ 137 - 37
app/job/Import.php

@@ -33,7 +33,7 @@ class Import {
      * @return bool
      */
     public function deal($data): bool {
-        if ($data['type'] == 1) {
+        if ($data['type'] == 1) {//企业导入
             $id = $data['id'];
             $res = Db::table("new_talent_zhiren")->where('id', $id)->findOrEmpty();
             if ($res) {
@@ -155,7 +155,7 @@ class Import {
             } else {
                 return false;
             }
-        } else {
+        } elseif ($data['type'] == 2) {//省级人才导入
             $id = $data['id'];
             $res = Db::table("new_talent_zhiren")->where('id', $id)->findOrEmpty();
             if ($res) {
@@ -198,14 +198,14 @@ class Import {
                                         }
                                     }
                                     break;
-                                case 2:
+                                case 5:
                                     if (empty($row[$i])) {
                                         array_push($msg, "人才姓名不能为空");
                                     } else {
                                         $item['name'] = $row[$i];
                                     }
                                     break;
-                                case 3:
+                                case 6:
                                     if (in_array($row[$i], ['身份证', '通行证', '护照'])) {
                                         $key = array_search($row[$i], ['身份证', '通行证', '护照']);
                                         $item['card_type'] = $key + 1;
@@ -214,7 +214,7 @@ class Import {
                                     }
 
                                     break;
-                                case 4:
+                                case 7:
                                     if (empty($row[$i])) {
                                         array_push($msg, "证件号码不能为空");
                                     } else {
@@ -228,10 +228,135 @@ class Import {
                                         $item['card_number'] = $row[$i];
                                     }
                                     break;
-                                case 5:
+                                case 8:
                                     $item['nationality'] = array_key_exists($row[$i], $country) ? $country[$row[$i]] : 'other';
                                     break;
+                                case 19:
+                                    $item['talent_condition_text'] = $row[$i];
+                                    break;
+                            }
+                        }
+                        $item["checkState"] = \app\common\api\TalentState::REVERIFY_PASS; //复审通过
+                        $item["highProcess"] = 5; //最高进度
+                        $item["isImport"] = 1;//导入人才的标志
+                        if (count($msg) >= 1) {
+                            $sheet->setCellValue('AL' . ($index + 2), '导入失败,失败原因:' . implode(";", $msg));
+                        } else {
+                            if ($action == 'update') {
+                                $item['updateTime'] = date("Y-m-d H:i:s", time());
+                                Db::table("new_talent_info")->where('id', $talent_info['id'])->update($item);
+                                $sheet->setCellValue('AL' . ($index + 2), '更新成功');
+                            } else {
+                                $item['createTime'] = date("Y-m-d H:i:s", time());
+                                Db::table("new_talent_info")->insert($item);
+                                $sheet->setCellValue('AL' . ($index + 2), '导入成功');
+                            }
+                        }
+                    }
+
+                    $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
+                    $writer->save($path . "/public/storage/" . $res['task_file']);
+                    Db::table("new_talent_zhiren")->where('id', $id)->update(['task_result' => $res['task_file'], 'task_status' => 1, 'updateTime' => date("Y-m-d H:i:s", time())]);
+                    return true;
+                } catch (\Exception $e) {
+                    Db::table("new_talent_zhiren")->where('id', $id)->update(['task_result' => $e->getMessage(), 'task_status' => 0, 'updateTime' => date("Y-m-d H:i:s", time())]);
+                    return false;
+                }
+            } else {
+                return false;
+            }
+        } elseif ($data['type'] == 3){//泉州人才导入
+            $id = $data['id'];
+            $res = Db::table("new_talent_zhiren")->where('id', $id)->findOrEmpty();
+            if ($res) {
+                if ($res['task_status'] != -1) {
+                    return false;
+                }
+                try {
+                    $path = dirname(dirname(dirname(__FILE__)));
+                    $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($path ."/public/storage/" . $res['task_file']);
+                    $sheet = $spreadsheet->getSheet(0);
+                    $datas = $sheet->toArray();
+                    $datas = array_slice($datas, 1); //去标题
+                    $country = Db::table("sys_dict")->where("pid", 35)->column("code", "name");
+
+                    for ($index = 0; $index < count($datas); $index++) {
+                        $row = $datas[$index];
+                        $msg = [];
+                        $item = [];
+                        $enterprise_name = '';
+                        $enterprise_id = '';
+                        $action = 'insert';
+                        for ($i = 0; $i < 28; $i++) {
+                            switch ($i) {
+                                case 0:
+                                    if (empty($row[$i])) {
+                                        array_push($msg, "机构名称不能为空");
+                                    } else {
+                                        $enterprise_name = $row[$i];
+                                    }
+                                    break;
+                                case 1:
+                                    $info = Db::table("un_enterprise")->where('idCard', $row[$i])->findOrEmpty();
+                                    if (!$info) {
+                                        array_push($msg, "机构代码不存在,请检查");
+                                    } else {
+                                        if ($info['name'] != $enterprise_name) {
+                                            array_push($msg, "机构代码与企业名称无法对应,请检查");
+                                        } else {
+                                            $item['enterprise_id'] = $enterprise_id = $info['id'];
+                                        }
+                                    }
+                                    break;
+                                case 2:
+                                    if (empty($row[$i])) {
+                                        array_push($msg, "人才姓名不能为空");
+                                    } else {
+                                        $item['name'] = $row[$i];
+                                    }
+                                    break;
+                                case 3:
+                                    if($row[$i] == '女'){
+                                        $item['sex'] = 2;
+                                    }else{
+                                        $item['sex'] = 1;
+                                    }
+                                    break;
+                                case 4:
+                                    $item['nationality'] = array_key_exists($row[$i], $country) ? $country[$row[$i]] : 'other';
+                                    break;
+                                case 5:
+                                    if (in_array($row[$i], ['身份证', '通行证', '护照'])) {
+                                        $key = array_search($row[$i], ['身份证', '通行证', '护照']);
+                                        $item['card_type'] = $key + 1;
+                                    } else {
+                                        array_push($msg, "人才的证件类型不正确");
+                                    }
+                                    break;
                                 case 6:
+                                    if (empty($row[$i])) {
+                                        array_push($msg, "证件号码不能为空");
+                                    } else {
+                                        if (!isCreditNo($row[$i]) && $item['card_type'] == 1) {
+                                            array_push($msg, "证件号码不正确");
+                                        }
+                                        $talent_info = Db::table("new_talent_info")->where("card_number", $row[$i])->where('enterprise_id', $enterprise_id)->findOrEmpty();
+                                        if ($talent_info) {
+                                            $action = 'update';
+                                        }
+                                        $item['card_number'] = $row[$i];
+                                    }
+                                    break;
+                                case 7:
+                                    $item['birthday'] = $row[$i];
+                                    break;
+                                case 16:
+                                    $item['phone'] = $row[$i];
+                                    break;
+                                case 17:
+                                    $item['email'] = $row[$i];
+                                    break;
+                                case 18:
                                     if (!in_array($row[$i], ['第一层次', '第二层次', '第三层次', '第四层次', '第五层次'])) {
                                         array_push($msg, "人才层次不正确");
                                     } else {
@@ -239,50 +364,25 @@ class Import {
                                         $item['talent_arrange'] = $key + 1;
                                     }
                                     break;
-                                case 7:
-                                    switch ($row[$i]) {
-                                        case '福建省人才':
-                                            $item['source'] = 1;
-                                            break;
-                                        case '泉州市人才':
-                                            $item['source'] = 2;
-                                            break;
-                                        default:
-                                            array_push($msg, "人才来源不正确");
-                                            break;
-                                    }
-                                    break;
-                                case 8:
-                                    switch ($item['source']) {
-                                        case '1':
-                                            $item['fujian_highcert_exptime'] = $row[$i];
-                                            break;
-                                        case '2':
-                                            $item['quanzhou_highcert_exptime'] = $row[$i];
-                                            break;
-                                        default:
-
-                                            break;
-                                    }
+                                case 19:
+                                    $item['talent_condition_text'] = $row[$i];
                                     break;
                             }
                         }
                         $item["checkState"] = \app\common\api\TalentState::REVERIFY_PASS; //复审通过
                         $item["highProcess"] = 5; //最高进度
-                        $item["isImport"] = 1;//导入人才的标志
-                        $item["importCheckState"] = 1;//导入人才的状态,待提交补充
-                        var_dump($item);
+                        $item["isImport"] = 2;//导入人才的标志
                         if (count($msg) >= 1) {
-                            $sheet->setCellValue('J' . ($index + 2), '导入失败,失败原因:' . implode(";", $msg));
+                            $sheet->setCellValue('AC' . ($index + 2), '导入失败,失败原因:' . implode(";", $msg));
                         } else {
                             if ($action == 'update') {
                                 $item['updateTime'] = date("Y-m-d H:i:s", time());
                                 Db::table("new_talent_info")->where('id', $talent_info['id'])->update($item);
-                                $sheet->setCellValue('J' . ($index + 2), '更新成功');
+                                $sheet->setCellValue('AC' . ($index + 2), '更新成功');
                             } else {
                                 $item['createTime'] = date("Y-m-d H:i:s", time());
                                 Db::table("new_talent_info")->insert($item);
-                                $sheet->setCellValue('J' . ($index + 2), '导入成功');
+                                $sheet->setCellValue('AC' . ($index + 2), '导入成功');
                             }
                         }
                     }

二進制
public/static/downloadFile/directly_identify_fj_talent_template.xlsx


二進制
public/static/downloadFile/directly_identify_qz_talent_template.xlsx


+ 14 - 3
public/static/modular/directlyIdentify/index.js

@@ -46,8 +46,12 @@ DirectlyIdentify.download_enterprise_template = function () {
     window.location.href = Feng.ctxPath + "/static/downloadFile/directly_identify_enterprise_template.xlsx";
 }
 
-DirectlyIdentify.download_talent_template = function () {
-    window.location.href = Feng.ctxPath + "/static/downloadFile/directly_identify_talent_template.xlsx";
+DirectlyIdentify.download_fj_talent_template = function () {
+    window.location.href = Feng.ctxPath + "/static/downloadFile/directly_identify_fj_talent_template.xlsx";
+}
+
+DirectlyIdentify.download_qz_talent_template = function () {
+    window.location.href = Feng.ctxPath + "/static/downloadFile/directly_identify_qz_talent_template.xlsx";
 }
 
 DirectlyIdentify.enterprise_import = function () {
@@ -59,7 +63,14 @@ DirectlyIdentify.enterpriseImportSubmit = function () {
     $("#enterprise-import-form")[0].submit();
 }
 
-DirectlyIdentify.talent_import = function () {
+DirectlyIdentify.fj_talent_import = function () {
+    $("#import_type").val("2");
+    $("#talent-import-form")[0].reset();
+    $("#talentImportModal").modal("show");
+}
+
+DirectlyIdentify.qz_talent_import = function () {
+    $("#import_type").val("3");
     $("#talent-import-form")[0].reset();
     $("#talentImportModal").modal("show");
 }