From 7ab45e2b02facae5685ba879d150de6dc0032aa4 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 25 五月 2026 10:38:59 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' of http://114.132.189.42:9002/r/product-inventory-management-after into dev_New_pro

---
 src/main/resources/mapper/staff/StaffOnJobMapper.xml |   91 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 72 insertions(+), 19 deletions(-)

diff --git a/src/main/resources/mapper/staff/StaffOnJobMapper.xml b/src/main/resources/mapper/staff/StaffOnJobMapper.xml
index a256ff8..2cbd1dc 100644
--- a/src/main/resources/mapper/staff/StaffOnJobMapper.xml
+++ b/src/main/resources/mapper/staff/StaffOnJobMapper.xml
@@ -3,29 +3,82 @@
 <mapper namespace="com.ruoyi.staff.mapper.StaffOnJobMapper">
     <select id="staffOnJobListPage" resultType="com.ruoyi.staff.dto.StaffOnJobDto">
         SELECT
-        staff_on_job.*,
-        sp.post_name as postName,
-        sd.dept_name as deptName,
-        MIN(t1.contract_start_time) as contract_start_time,  -- 鍙栨渶鏃╁悎鍚屽紑濮嬫椂闂�
-        MAX(t1.contract_end_time) as contract_end_time
+        staff_on_job.id,
+        staff_on_job.staff_state,
+        staff_on_job.staff_no,
+        staff_on_job.staff_name,
+        staff_on_job.sex,
+        staff_on_job.native_place,
+        staff_on_job.sys_post_id,
+        staff_on_job.sys_dept_id,
+        staff_on_job.role_id,
+        staff_on_job.adress,
+        staff_on_job.first_study,
+        staff_on_job.profession,
+        staff_on_job.identity_card,
+        staff_on_job.age,
+        staff_on_job.phone,
+        staff_on_job.contract_term,
+        staff_on_job.contract_expire_time,
+        staff_on_job.trial_end_date,
+        staff_on_job.trial_start_date,
+        staff_on_job.sign_date,
+        staff_on_job.salary_select,
+        staff_on_job.pro_salary,
+        staff_on_job.date_select,
+        staff_on_job.remark,
+        staff_on_job.create_time,
+        staff_on_job.create_user,
+        staff_on_job.update_time,
+        staff_on_job.update_user,
+        staff_on_job.tenant_id,
+        staff_on_job.alias,
+        staff_on_job.birth_date,
+        staff_on_job.nation,
+        staff_on_job.marital_status,
+        staff_on_job.pro_term,
+        staff_on_job.positive_date,
+        staff_on_job.basic_salary,
+        staff_on_job.dept_id,
+        sp.post_name AS post_name,
+        sd.dept_name AS dept_name,
+        MIN(t1.contract_start_time) AS contract_start_time,
+        MAX(t1.contract_end_time) AS contract_end_time,
+        (
+        SELECT GROUP_CONCAT(sec.contact_name SEPARATOR ',')
+        FROM staff_emergency_contact sec
+        WHERE sec.staff_on_job_id = staff_on_job.id
+        ) AS emergency_contact,
+        (
+        SELECT GROUP_CONCAT(sec.contact_phone SEPARATOR ',')
+        FROM staff_emergency_contact sec
+        WHERE sec.staff_on_job_id = staff_on_job.id
+        ) AS emergency_contact_phone
         FROM staff_on_job
         LEFT JOIN sys_post sp ON sp.post_id = staff_on_job.sys_post_id
         LEFT JOIN sys_dept sd ON sd.dept_id = staff_on_job.sys_dept_id
-        LEFT JOIN staff_contract as t1 ON t1.staff_on_job_id = staff_on_job.id
-        WHERE 1=1
-        <if test="staffOnJob.staffState != null">
-            AND staff_state = #{staffOnJob.staffState}
-        </if>
-        <if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">
-            AND staff_name LIKE CONCAT('%',#{staffOnJob.staffName},'%')
-        </if>
-        <if test="staffOnJob.entryDateStart != null and staffOnJob.entryDateStart != '' ">
-            AND contract_expire_time &gt;= DATE_FORMAT(#{staffOnJob.entryDateStart},'%Y-%m-%d')
-        </if>
-        <if test="staffOnJob.entryDateEnd != null and staffOnJob.entryDateEnd != '' ">
-            AND contract_expire_time &lt;= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d')
-        </if>
+        LEFT JOIN staff_contract AS t1 ON t1.staff_on_job_id = staff_on_job.id
+        <where>
+            <if test="staffOnJob.staffState != null">
+                AND staff_on_job.staff_state = #{staffOnJob.staffState}
+            </if>
+            <if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">
+                AND staff_on_job.staff_name LIKE CONCAT('%',#{staffOnJob.staffName},'%')
+            </if>
+            <if test="staffOnJob.entryDateStart != null and staffOnJob.entryDateStart != '' ">
+                AND staff_on_job.contract_expire_time &gt;= DATE_FORMAT(#{staffOnJob.entryDateStart},'%Y-%m-%d')
+            </if>
+            <if test="staffOnJob.entryDateEnd != null and staffOnJob.entryDateEnd != '' ">
+                AND staff_on_job.contract_expire_time &lt;= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d')
+            </if>
+            <if test="staffOnJob.sysDeptId != null">
+                AND staff_on_job.sys_dept_id = #{staffOnJob.sysDeptId}
+            </if>
+        </where>
         GROUP BY staff_on_job.id
+        <if test="staffOnJob.contractStartTime != null">
+            HAVING MIN(t1.contract_start_time) = #{staffOnJob.contractStartTime}
+        </if>
     </select>
     <select id="staffOnJobList" resultType="com.ruoyi.staff.dto.StaffOnJobDto">
         SELECT

--
Gitblit v1.9.3