Преглед изворни кода

Merge branch 'master' of http://39.98.153.250:9080/bowintek/EmploymentSite

pengjing пре 11 месеци
родитељ
комит
77ca8224bb

+ 12 - 10
src/main/java/com/hz/employmentsite/controller/companyService/CompanyController.java

@@ -5,23 +5,24 @@ import com.hz.employmentsite.filter.exception.BaseErrorEnum;
 import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.filter.exception.BaseResponse;
 import com.hz.employmentsite.filter.exception.RespGenerstor;
-import com.hz.employmentsite.model.PcCompany;
-import com.hz.employmentsite.mapper.PcSiteMapper;
 import com.hz.employmentsite.mapper.PcSiteUserMapper;
+import com.hz.employmentsite.model.PcCompany;
 import com.hz.employmentsite.model.PcSite;
-import com.hz.employmentsite.model.PcSiteExample;
 import com.hz.employmentsite.model.PcSiteUserExample;
+import com.hz.employmentsite.services.service.AccountService;
+import com.hz.employmentsite.services.service.companyService.CompanyService;
 import com.hz.employmentsite.util.DateUtils;
 import com.hz.employmentsite.util.ExcelHelper;
 import com.hz.employmentsite.vo.companyService.AppCompanyPostVo;
+import com.hz.employmentsite.vo.companyService.CompanyVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import com.hz.employmentsite.services.service.companyService.CompanyService;
-import com.hz.employmentsite.services.service.AccountService;
-import com.hz.employmentsite.vo.companyService.CompanyVo;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
 
 @RestController
 @RequestMapping("/api/companyService/company")
@@ -45,9 +46,10 @@ public class CompanyController {
     public BaseResponse<PageInfo<CompanyVo>> getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
                                                      @RequestParam(required = false) List<String> companyIDList, @RequestParam(required = false) String companyName,
                                                      @RequestParam(required = false) String companyCode, @RequestParam(required = false) String recordStatus,
-                                                     @RequestParam(required = false) String regionCode, @RequestParam(required = false) String streetCode) {
+                                                     @RequestParam(required = false) String regionCode, @RequestParam(required = false) String streetCode,
+                                                     @RequestParam(required = false) String createUserId, @RequestParam(required = false) String workTime) {
 
-        PageInfo<CompanyVo> result = companyService.getList(pageIndex, pageSize, companyIDList, companyName, companyCode, recordStatus, regionCode, streetCode);
+        PageInfo<CompanyVo> result = companyService.getList(pageIndex, pageSize, companyIDList, companyName, companyCode, recordStatus, regionCode, streetCode, createUserId, workTime);
 
         return RespGenerstor.success(result);
     }
@@ -107,7 +109,7 @@ public class CompanyController {
                                @RequestParam(required = false) String companyCode, @RequestParam(required = false) String recordStatus,
                                @RequestParam(required = false) String regionCode, @RequestParam(required = false) String streetCode
     ) throws Exception {
-        PageInfo<CompanyVo> result = companyService.getList(pageIndex, pageSize, companyIDList, companyName, companyCode, recordStatus, regionCode, streetCode);
+        PageInfo<CompanyVo> result = companyService.getList(pageIndex, pageSize, companyIDList, companyName, companyCode, recordStatus, regionCode, streetCode, null, null);
         if (isExport == null || !isExport) {
             return RespGenerstor.success(result);
         } else {

+ 4 - 3
src/main/java/com/hz/employmentsite/controller/jobUserManager/JobUserController.java

@@ -44,9 +44,10 @@ public class JobUserController {
                                 @RequestParam(required = false) List<String> jobUserIDList,
                                 @RequestParam(required = false) String name, @RequestParam(required = false) String siteID,
                                 @RequestParam(required = false) String jobStatus, @RequestParam(required = false) Integer sexId,
-                                @RequestParam(required = false) Integer educationTypeId, @RequestParam(required = false) Integer emphasisTypeId) {
+                                @RequestParam(required = false) Integer educationTypeId, @RequestParam(required = false) Integer emphasisTypeId,
+                                @RequestParam(required = false) String createUserId, @RequestParam(required = false) String workTime) {
 
-        PageInfo<JobUserVo> result = jobuserService.getList(pageIndex, pageSize, jobUserIDList, name, siteID, jobStatus, sexId, educationTypeId, emphasisTypeId);
+        PageInfo<JobUserVo> result = jobuserService.getList(pageIndex, pageSize, jobUserIDList, name, siteID, jobStatus, sexId, educationTypeId, emphasisTypeId, createUserId, workTime);
         return RespGenerstor.success(result);
     }
 
@@ -128,7 +129,7 @@ public class JobUserController {
                                @RequestParam(required = false) String name, @RequestParam(required = false) String siteId, @RequestParam(required = false) String jobStatus,
                                @RequestParam(required = false) Integer sexId,@RequestParam(required = false) Integer educationTypeId,
                                @RequestParam(required = false) Integer emphasisTypeId) throws Exception {
-        PageInfo<JobUserVo> result = jobuserService.getList(pageIndex, pageSize, jobUserIDList, name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId);
+        PageInfo<JobUserVo> result = jobuserService.getList(pageIndex, pageSize, jobUserIDList, name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId, null, null);
 
         if(isExport == null || !isExport){
             return RespGenerstor.success(result);

+ 3 - 1
src/main/java/com/hz/employmentsite/mapper/cquery/CompanyCQuery.java

@@ -2,10 +2,12 @@ package com.hz.employmentsite.mapper.cquery;
 
 import com.hz.employmentsite.vo.companyService.CompanyVo;
 import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 
 public interface CompanyCQuery {
     List<CompanyVo> getList(@Param("companyIDList") String companyIDList, @Param("companyName") String companyName,
                             @Param("companyCode") String companyCode, @Param("recordStatus") String recordStatus,
-                            @Param("regionCode") String regionCode, @Param("streetCode") String streetCode);
+                            @Param("regionCode") String regionCode, @Param("streetCode") String streetCode,
+                            @Param("createUserId") String createUserId, @Param("workTime") String workTime);
 }

+ 6 - 1
src/main/java/com/hz/employmentsite/mapper/cquery/JobUserCQuery.java

@@ -2,8 +2,13 @@ package com.hz.employmentsite.mapper.cquery;
 
 import com.hz.employmentsite.vo.jobUserManager.JobUserVo;
 import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 
 public interface JobUserCQuery {
-    List<JobUserVo> selectJobUserList(@Param("jobUserIDList") String jobUserIDList,@Param("name") String name, @Param("siteId")String siteId, @Param("jobStatus")String jobStatus, @Param("sexId")Integer sexId, @Param("educationTypeId")Integer educationTypeId, @Param("emphasisTypeId")Integer emphasisTypeId);
+    List<JobUserVo> selectJobUserList(@Param("jobUserIDList") String jobUserIDList, @Param("name") String name,
+                                      @Param("siteId") String siteId, @Param("jobStatus") String jobStatus,
+                                      @Param("sexId") Integer sexId, @Param("educationTypeId") Integer educationTypeId,
+                                      @Param("emphasisTypeId") Integer emphasisTypeId, @Param("createUserId") String createUserId,
+                                      @Param("workTime") String workTime);
 }

+ 7 - 4
src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java

@@ -17,7 +17,6 @@ import com.hz.employmentsite.vo.companyService.CompanyVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.awt.image.DataBufferByte;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -51,9 +50,13 @@ public class CompanyServiceImpl implements CompanyService {
     private PcPostMapper pcPostMapper;
 
     @Override
-    public PageInfo<CompanyVo> getList(Integer pageIndex, Integer pageSize,List<String> companyIDList, String companyName, String companyCode, String recordStatus, String regionCode, String streetCode) {
+    public PageInfo<CompanyVo> getList(Integer pageIndex, Integer pageSize,
+                                       List<String> companyIDList, String companyName,
+                                       String companyCode, String recordStatus,
+                                       String regionCode, String streetCode,
+                                       String createUserId, String workTime) {
         PageHelper.startPage(pageIndex, pageSize);
-        List<CompanyVo> dataList = companyCQuery.getList(stringUtils.ListToInSql(companyIDList), companyName, companyCode, recordStatus, regionCode, streetCode);
+        List<CompanyVo> dataList = companyCQuery.getList(stringUtils.ListToInSql(companyIDList), companyName, companyCode, recordStatus, regionCode, streetCode, createUserId, workTime);
         PageInfo<CompanyVo> result = new PageInfo(dataList);
         return result;
     }
@@ -189,7 +192,7 @@ public class CompanyServiceImpl implements CompanyService {
         }else{
             ids.add(id);
         }
-        return  companyCQuery.getList(stringUtils.ListToInSql(ids), null, null, null, null, null).stream().findFirst().orElse(null);
+        return companyCQuery.getList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null).stream().findFirst().orElse(null);
     }
 
     @Override

+ 10 - 9
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java

@@ -3,11 +3,7 @@ package com.hz.employmentsite.services.impl.jobUserManager;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.filter.exception.BaseException;
-import com.hz.employmentsite.mapper.PcEducationMapper;
-import com.hz.employmentsite.mapper.PcExperienceMapper;
-import com.hz.employmentsite.mapper.PcJobuserMapper;
-import com.hz.employmentsite.mapper.PcJobhuntMapper;
-import com.hz.employmentsite.mapper.PcPostMapper;
+import com.hz.employmentsite.mapper.*;
 import com.hz.employmentsite.mapper.cquery.JobUserCQuery;
 import com.hz.employmentsite.model.*;
 import com.hz.employmentsite.services.service.jobUserManager.JobUserService;
@@ -42,10 +38,15 @@ public class JobUserServiceImpl implements JobUserService {
     private PcPostMapper pcPostMapper;
 
     @Override
-    public PageInfo<JobUserVo> getList(Integer pageIndex, Integer pageSize, List<String> jobUserIDList, String name, String siteId, String jobStatus, Integer sexId, Integer educationTypeId, Integer emphasisTypeId) {
+    public PageInfo<JobUserVo> getList(Integer pageIndex, Integer pageSize,
+                                       List<String> jobUserIDList, String name,
+                                       String siteId, String jobStatus,
+                                       Integer sexId, Integer educationTypeId,
+                                       Integer emphasisTypeId, String createUserId,
+                                       String workTime) {
         PageHelper.startPage(pageIndex, pageSize);
 
-        List<JobUserVo> list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId);
+        List<JobUserVo> list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId, createUserId, workTime);
 
         PageInfo<JobUserVo> result = new PageInfo(list);
 
@@ -54,7 +55,7 @@ public class JobUserServiceImpl implements JobUserService {
 
     @Override
     public List<SelectProps> getDataList() {
-        var dataList = getList(1,99999,null,null,null,null,null,null,null).getList();
+        var dataList = getList(1, 99999, null, null, null, null, null, null, null, null, null).getList();
         List<SelectProps> dataResult = new ArrayList<>();
         for (var item: dataList) {
             SelectProps  itemResult = new SelectProps();
@@ -73,7 +74,7 @@ public class JobUserServiceImpl implements JobUserService {
         }else{
             ids.add(id);
         }
-        return jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(ids), null, null, null, null, null, null).stream().findFirst().orElse(null);
+        return jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null, null).stream().findFirst().orElse(null);
     }
 
     @Override

+ 5 - 1
src/main/java/com/hz/employmentsite/services/service/companyService/CompanyService.java

@@ -10,7 +10,11 @@ import java.util.List;
 
 public interface CompanyService {
 
-    PageInfo<CompanyVo> getList(Integer pageIndex, Integer pageSize, List<String> companyIDList, String companyName, String companyCode, String recordStatus, String regionCode, String streetCode);
+    PageInfo<CompanyVo> getList(Integer pageIndex, Integer pageSize,
+                                List<String> companyIDList, String companyName,
+                                String companyCode, String recordStatus,
+                                String regionCode, String streetCode,
+                                String createUserId, String workTime);
 
     List<PcCompany> getCompanyBySiteIDList(String siteID);
 

+ 6 - 1
src/main/java/com/hz/employmentsite/services/service/jobUserManager/JobUserService.java

@@ -10,7 +10,12 @@ import com.hz.employmentsite.vo.jobUserManager.JobUserVo;
 import java.util.List;
 
 public interface JobUserService {
-    PageInfo<JobUserVo> getList(Integer pageIndex, Integer pageSize,List<String> jobUserIDList, String name, String siteId, String jobStatus,Integer sexId,Integer educationTypeId,Integer emphasisTypeId);
+    PageInfo<JobUserVo> getList(Integer pageIndex, Integer pageSize,
+                                List<String> jobUserIDList, String name,
+                                String siteId, String jobStatus,
+                                Integer sexId, Integer educationTypeId,
+                                Integer emphasisTypeId, String createUserId,
+                                String workTime);
 
     JobUserVo getDataById(String id);
 

+ 6 - 0
src/main/resources/mapping/cquery/CompanyCQuery.xml

@@ -32,6 +32,12 @@
         <if test="streetCode!='' and regionCode!=null">
             and company.streetCode like Concat('%',#{streetCode},'%')
         </if>
+        <if test="createUserId!='' and createUserId!=null">
+            and company.CreateUserID = #{createUserId}
+        </if>
+        <if test="workTime!='' and workTime!=null">
+            and Date(company.CreateTime) = Date(#{workTime})
+        </if>
         order by company.CreateTime desc,postCount desc
     </select>
 

+ 8 - 4
src/main/resources/mapping/cquery/DoWorkCQuery.xml

@@ -2,16 +2,20 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.hz.employmentsite.mapper.cquery.DoWorkCQuery">
     <select id="getList" resultType="com.hz.employmentsite.vo.taskAndLog.DoWorkVo">
-        select workLog.*,siteUser.SiteUserName as UserName,siteUser.UserId as UserId, region.name as RegionName,street.name as
+        select workLog.*,siteUser.SiteUserName as UserName,siteUser.UserId as UserId, region.name as
+        RegionName,street.name as
         StreetName,dic_logType.name as LogTypeName,
         (
-        SELECT COUNT(company.CompanyID) FROM pc_company company WHERE company.CreateUserID = workLog.CreateUserID AND DATE(company.CreateTime) = DATE(workLog.WorkTime)
+        SELECT COUNT(company.CompanyID) FROM pc_company company WHERE company.CreateUserID = siteUser.UserId AND
+        DATE(company.CreateTime) = DATE(workLog.WorkTime)
         ) AS RecordsCompanyNum,
         (
-        SELECT COUNT(jobuser.JobuserID) FROM pc_jobuser jobuser WHERE jobuser.CreateUserID = workLog.CreateUserID AND DATE(jobuser.CreateTime) = DATE(workLog.WorkTime)
+        SELECT COUNT(jobuser.JobuserID) FROM pc_jobuser jobuser WHERE jobuser.CreateUserID = siteUser.UserId AND
+        DATE(jobuser.CreateTime) = DATE(workLog.WorkTime)
         ) AS RecordsJobuserNum
         from pc_dowork workLog
-        left join (select * from sys_dictionary_item where DictionaryCode ='LogType' ) dic_logType on workLog.doTypeID = dic_logType.Value
+        left join (select * from sys_dictionary_item where DictionaryCode ='LogType' ) dic_logType on workLog.doTypeID =
+        dic_logType.Value
         left join area_code region on workLog.RegionCode = region.code
         left join area_code street on workLog.StreetCode = street.code
         left join pc_site_user siteUser on workLog.SiteUserID = siteUser.SiteUserID

+ 6 - 0
src/main/resources/mapping/cquery/JobUserCQuery.xml

@@ -34,6 +34,12 @@
         <if test="emphasisTypeId != null and emphasisTypeId != ''">
             and jobuser.KeyPersonTypeID = #{emphasisTypeId}
         </if>
+        <if test="createUserId != null and createUserId != ''">
+            and jobuser.CreateUserID = #{createUserId}
+        </if>
+        <if test="workTime!='' and workTime!=null">
+            and Date(jobuser.CreateTime) = Date(#{workTime})
+        </if>
         order by jobuser.CreateTime desc
     </select>
 </mapper>

+ 180 - 0
vue/src/views/companyService/company/CompanyTableCom.vue

@@ -0,0 +1,180 @@
+<template>
+  <a-modal
+    :width="1100"
+    v-model:visible="visible"
+    title="已录入企业信息"
+    :confirm-loading="confirmLoading"
+    @ok="handleOk"
+    ok-text="确认"
+    cancel-text="取消"
+    :keyboard="false"
+    :mask-closable="false"
+  >
+    <div class="card-search">
+      <a-form
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="searchParams"
+      >
+        <a-row :gutter="24">
+          <a-col :span="6">
+            <a-form-item label="企业名称" :label-col="{ span: 8 }" name="name">
+              <a-input v-model:value="searchParams.companyName" style="color: black;" placeholder=""/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="8">
+            <a-form-item label="统一信用代码" :label-col="{ span: 8 }" name="name">
+              <a-input v-model:value="searchParams.companyCode" style="color: black;" placeholder=""/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="4" style="text-align: left">
+            <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+            <a-button
+              style="margin: 0 8px"
+              @click="
+              () => {
+                searchParams.pageIndex = 1;
+                searchParams.pageSize = 10;
+                searchParams.companyName = '';
+                searchParams.companyCode = '';
+                loadData();
+              }
+            ">重置
+            </a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }" :pagination="pagination"
+             :loading="formState.loading"
+             @change="handleTableChange"
+             bordered>
+      <template #bodyCell="{ column, text, record }">
+        <template v-if="column.key === 'postCount'">
+          <div style="text-align: center;">
+            <a-button name="postCount" type="link" size="small"
+                      @click='onShowPosition(record)'>{{ record.postCount }}
+            </a-button>
+          </div>
+        </template>
+      </template>
+    </a-table>
+  </a-modal>
+
+  <PositionShowModal ref="modalShowRef"></PositionShowModal>
+</template>
+
+<script setup lang="ts">
+import {computed, reactive, ref} from "vue";
+import type {TableColumnsType, TableProps} from "ant-design-vue";
+import {getPaginationTotalTitle} from "@/utils/common";
+import {getList} from "@/api/companyService/company";
+import {get} from "@/api/common";
+import PositionShowModal from "@/views/companyService/company/show.vue";
+
+// 对话框显示隐藏开关
+const visible = ref(false);
+// 加载动画开关
+const confirmLoading = ref(false);
+// 企业数据
+const dataList = ref<Array<any>>();
+// 企业信息表格数据定义
+const columns: TableColumnsType = [
+  {
+    title: '序号',
+    align: "center",
+    key: 'companyID',
+    width: 60,
+    customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`
+  },
+  {title: '企业名称', dataIndex: 'companyName', key: 'companyName', width: 200, align: "center"},
+  {title: '统一信用代码', dataIndex: 'companyCode', key: 'companyCode', width: 200, align: "center"},
+  {
+    title: '企业状态',
+    dataIndex: 'recordStatus',
+    key: 'recordStatus',
+    width: 120,
+    align: "center",
+    customRender: (item) => {
+      return item.record.recordStatus == 1 ? "在营" : "关闭";
+    }
+  },
+  {title: '企业规模', dataIndex: 'companyModelType', key: 'companyModelType', width: 120, align: "center"},
+  {title: '当前岗位数量', dataIndex: 'postCount', key: 'postCount', width: 120, align: "center"},
+];
+const searchParams = reactive({
+  pageIndex: 1,
+  pageSize: 20,
+  companyName: '',
+  companyCode: '',
+  createUserId: "",
+  workTime: ""
+});
+const pagination = computed(() => ({
+  total: formState.total,
+  current: searchParams.pageIndex,
+  pageSize: searchParams.pageSize,
+  showSizeChanger: true,
+  showTotal: total => getPaginationTotalTitle(total)
+}));
+const formState = reactive({
+  total: 0,
+  loading: false
+});
+// 岗位对话框ref
+const modalShowRef = ref();
+
+// 对话框确定事件
+function handleOk() {
+  visible.value = false
+}
+
+// 显示
+function show(record) {
+  visible.value = true;
+  searchParams.createUserId = record.userId;
+  searchParams.workTime = record.workTime;
+  loadData()
+}
+
+// 获取数据
+const loadData = async function () {
+  formState.loading = true;
+  await getList(searchParams).then((result: any) => {
+    dataList.value = result.list;
+    formState.total = result.total;
+  }).finally(() => {
+    formState.loading = false;
+  })
+}
+
+// 表格状态变更事件
+const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
+  searchParams.pageIndex = pag.current;
+  searchParams.pageSize = pag.pageSize;
+  loadData();
+};
+
+// 开启岗位数据对话框
+async function onShowPosition(record) {
+  if (record.postCount == 0) {
+    return;
+  }
+  const curPositionList: any = await get("companyService/post/getPostsByCompanyID", {companyId: record.companyID});
+  modalShowRef.value.show(curPositionList);
+}
+
+// 表单查询事件
+function onSearch() {
+  loadData()
+}
+
+defineExpose({
+  show
+})
+</script>
+
+<style scoped>
+
+</style>

+ 168 - 0
vue/src/views/jobUserManager/jobuser/JobUserTableCom.vue

@@ -0,0 +1,168 @@
+<template>
+  <a-modal
+    :width="1100"
+    v-model:visible="visible"
+    title="已录入企业信息"
+    :confirm-loading="confirmLoading"
+    @ok="handleOk"
+    ok-text="确认"
+    cancel-text="取消"
+    :keyboard="false"
+    :mask-closable="false"
+  >
+    <div class="card-search">
+      <a-form
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="searchParams"
+      >
+        <a-row :gutter="24">
+          <a-col :span="6">
+            <a-form-item label="姓名" :label-col="{ span: 8 }" name="name">
+              <a-input v-model:value="searchParams.name" style="color: black;" placeholder=""/>
+            </a-form-item>
+          </a-col>
+          <a-col :span="4" style="text-align: left">
+            <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+            <a-button
+              style="margin: 0 8px"
+              @click="
+              () => {
+                searchParams.pageIndex = 1;
+                searchParams.pageSize = 10;
+                searchParams.name = '';
+                loadData();
+              }
+            ">重置
+            </a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }" :pagination="pagination"
+             :loading="formState.loading"
+             @change="handleTableChange"
+             bordered>
+    </a-table>
+  </a-modal>
+</template>
+
+<script setup lang="ts">
+import {computed, reactive, ref} from "vue";
+import type {TableColumnsType, TableProps} from "ant-design-vue";
+import {getPaginationTotalTitle} from "@/utils/common";
+import {getList} from "@/api/jobUserManager/jobuser";
+
+// 对话框显示隐藏开关
+const visible = ref(false);
+// 加载动画开关
+const confirmLoading = ref(false);
+// 企业数据
+const dataList = ref<Array<any>>();
+// 企业信息表格数据定义
+const columns: TableColumnsType = [
+  {
+    title: '序号',
+    align: 'center',
+    width: 80,
+    key: 'jobUserID',
+    customRender: (item) =>
+      `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`,
+  },
+  {title: '姓名', dataIndex: 'name', key: 'name', width: 100, align: "center"},
+  {title: '公民身份号码', dataIndex: 'identityNumber', key: 'identityNumber', width: 170, align: "center"},
+  {title: '性别', dataIndex: 'genderName', key: 'genderName', width: 80, align: "center"},
+  {title: '联系电话', dataIndex: 'userMobile', key: 'userMobile', align: "center"},
+  {
+    title: '年龄', dataIndex: 'age', key: 'age', align: "center", customRender: item => {
+      return calculateAge(item.record.identityNumber);
+    }
+  },
+  {title: '文化程度', dataIndex: 'cultureName', key: 'cultureName', align: "center"},
+  {title: '重点人员类别', dataIndex: 'keyTypeName', key: 'keyTypeName', align: "center"},
+];
+const searchParams = reactive({
+  pageIndex: 1,
+  pageSize: 20,
+  name: '',
+  createUserId: "",
+  workTime: ""
+});
+const pagination = computed(() => ({
+  total: formState.total,
+  current: searchParams.pageIndex,
+  pageSize: searchParams.pageSize,
+  showSizeChanger: true,
+  showTotal: total => getPaginationTotalTitle(total)
+}));
+const formState = reactive({
+  total: 0,
+  loading: false
+});
+
+
+// 对话框确定事件
+function handleOk() {
+  visible.value = false
+}
+
+// 显示
+function show(record: any) {
+  console.log(record)
+  visible.value = true;
+  searchParams.createUserId = record.userId;
+  searchParams.workTime = record.workTime;
+  loadData()
+}
+
+// 获取数据
+async function loadData() {
+  formState.loading = true;
+  await getList(searchParams).then((result: any) => {
+    dataList.value = result.list;
+    formState.total = result.total;
+  }).finally(() => {
+    formState.loading = false;
+  })
+}
+
+// 表格状态变更事件
+const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
+  searchParams.pageIndex = pag.current;
+  searchParams.pageSize = pag.pageSize;
+  loadData();
+};
+
+// 计算年龄
+function calculateAge(idCardNumber: string) {
+  // 假设身份证号中出生日期的格式为YYYY-MM-DD
+  const birthYear = parseInt(idCardNumber.substring(6, 10), 10);
+  const birthMonth = parseInt(idCardNumber.substring(10, 12), 10);
+  const birthDay = parseInt(idCardNumber.substring(12, 14), 10);
+  // 获取当前日期
+  const currentDate = new Date();
+  const currentYear = currentDate.getFullYear();
+  const currentMonth = currentDate.getMonth() + 1; // 月份从 0 开始
+  const currentDay = currentDate.getDate();
+  // 计算年龄
+  let age = currentYear - birthYear;
+  if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDay < birthDay)) {
+    age--; // 生日还未过,减去一岁
+  }
+  return age;
+}
+
+// 表单查询事件
+function onSearch() {
+  loadData()
+}
+
+defineExpose({
+  show
+})
+</script>
+
+<style scoped>
+
+</style>

+ 51 - 2
vue/src/views/taskAndLog/dowork/index.vue

@@ -79,6 +79,22 @@
                bordered
                @change="handleTableChange">
         <template #bodyCell="{ column, text, record }">
+          <template v-if="column.key === 'RecordsCompanyNum'">
+            <div class="table-operation">
+              <a-button type="link" size="small" @click='onRecordsCompanyInfo(record)'>{{
+                  record.RecordsCompanyNum
+                }}
+              </a-button>
+            </div>
+          </template>
+          <template v-if="column.key === 'RecordsJobuserNum'">
+            <div class="table-operation">
+              <a-button type="link" size="small" @click='onRecordsJobUserInfo(record)'>{{
+                  record.RecordsJobuserNum
+                }}
+              </a-button>
+            </div>
+          </template>
           <template v-if="column.key === 'operation'">
             <div class="table-operation">
               <a-button functioncode="T01040201" size="small" type="link" @click='onDetail(record.doWorkID)'>查看
@@ -90,6 +106,11 @@
           </template>
         </template>
       </a-table>
+
+      <!-- 企业数据表格对话框 -->
+      <CompanyTableCom ref="companyTableComRef"></CompanyTableCom>
+      <!-- 求职人员数据表格对话框 -->
+      <JobUserTableCom ref="jobUserTableComRef"></JobUserTableCom>
     </div>
   </div>
 </template>
@@ -106,10 +127,12 @@ import {getSysDictionaryList} from "@/api/system/dictionary";
 import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
 import {getPaginationTotalTitle} from "@/utils/common";
 import dayjs from 'dayjs';
+import CompanyTableCom from "@/views/companyService/company/CompanyTableCom.vue";
+import JobUserTableCom from "@/views/jobUserManager/jobuser/JobUserTableCom.vue";
 
 export default defineComponent({
   name: 'doTaskList',
-  components: {DownOutlined, UpOutlined, BExportExcel},
+  components: {JobUserTableCom, CompanyTableCom, DownOutlined, UpOutlined, BExportExcel},
   setup() {
     const formRef = ref<FormInstance>();
     const tabsViewStore = useTabsViewStore();
@@ -164,6 +187,10 @@ export default defineComponent({
     const streetList = ref<SelectProps['options']>();
     const logTypeList = ref<SelectProps['options']>();
     const dataList = ref([]);
+    // 企业数据表格对话框
+    const companyTableComRef = ref();
+    // 就业人员表格对话框
+    const jobUserTableComRef = ref();
 
     const getLogTypeList = async function () {
       const logTypeResult: any = await getSysDictionaryList("LogType");
@@ -267,6 +294,24 @@ export default defineComponent({
       loadData();
     };
 
+    // 开启录入企业信息弹窗
+    function onRecordsCompanyInfo(record: any) {
+      if (record.RecordsCompanyNum == 0) {
+        return;
+      }
+      console.log(companyTableComRef)
+      companyTableComRef.value.show(record)
+    }
+
+    // 开启录入求职人员信息弹窗
+    function onRecordsJobUserInfo(record: any) {
+      if (record.RecordsJobuserNum == 0) {
+        return;
+      }
+      console.log(jobUserTableComRef)
+      jobUserTableComRef.value.show(record)
+    }
+
     return {
       formRef,
       expand,
@@ -290,7 +335,11 @@ export default defineComponent({
       loadData,
       changeRegion,
       dayjs,
-      onDetail
+      onDetail,
+      onRecordsCompanyInfo,
+      onRecordsJobUserInfo,
+      companyTableComRef,
+      jobUserTableComRef,
     };
   },
   created() {