From fe33646ee6e2d1e57f2b51812e94983a0e9efb04 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 14 十二月 2025 16:51:28 +0800
Subject: [PATCH] feat: 修复统计

---
 ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml |   73 ++++++++++++++++++++++++++++++++++--
 1 files changed, 69 insertions(+), 4 deletions(-)

diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 2d8e21a..3e3f83d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -19,6 +19,9 @@
 		<result property="departmentId" column="department_id" />
 		<result property="serviceOrderClass" column="service_order_class" />
 		<result property="dispatchOrderClass" column="dispatch_order_class" />
+		<result property="departureAddress" column="departure_address" />
+		<result property="departureLongitude" column="departure_longitude" />
+		<result property="departureLatitude" column="departure_latitude" />
 		<result property="createBy"   column="create_by"   />
 		<result property="createTime" column="create_time" />
 		<result property="updateBy"   column="update_by"   />
@@ -26,7 +29,7 @@
 	</resultMap>
 	
 	<sql id="selectDeptVo">
-        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.department_id, d.service_order_class, d.dispatch_order_class, d.create_by, d.create_time 
+        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.department_id, d.service_order_class, d.dispatch_order_class, d.departure_address, d.departure_longitude, d.departure_latitude, d.create_by, d.create_time 
         from sys_dept d
     </sql>
     
@@ -45,9 +48,22 @@
 		<if test="status != null and status != ''">
 			AND status = #{status}
 		</if>
-		<!-- 鏁版嵁鑼冨洿杩囨护 -->
-		${params.dataScope}
+		<if test="serviceOrderClass != null and serviceOrderClass != ''">
+			AND service_order_class = #{serviceOrderClass}
+		</if>
+		<if test="dispatchOrderClass != null and dispatchOrderClass != ''">
+			AND dispatch_order_class = #{dispatchOrderClass}
+		</if>
+
 		order by d.parent_id, d.order_num
+    </select>
+
+    <select id="selectDeptListByParentId" parameterType="Long" resultMap="SysDeptResult">
+            <include refid="selectDeptVo"/>
+            where d.del_flag = '0'
+
+			AND parent_id = #{parentId}
+
     </select>
     
     <select id="selectDeptListByRoleId" resultType="Long">
@@ -62,7 +78,7 @@
 	</select>
     
     <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
-		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.department_id, d.service_order_class, d.dispatch_order_class,
+		select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.department_id, d.service_order_class, d.dispatch_order_class, d.departure_address, d.departure_longitude, d.departure_latitude,
 			(select dept_name from sys_dept where dept_id = d.parent_id) parent_name
 		from sys_dept d
 		where d.dept_id = #{deptId}
@@ -104,6 +120,9 @@
  			<if test="departmentId != null">department_id,</if>
  			<if test="serviceOrderClass != null and serviceOrderClass != ''">service_order_class,</if>
  			<if test="dispatchOrderClass != null and dispatchOrderClass != ''">dispatch_order_class,</if>
+ 			<if test="departureAddress != null and departureAddress != ''">departure_address,</if>
+ 			<if test="departureLongitude != null">departure_longitude,</if>
+ 			<if test="departureLatitude != null">departure_latitude,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			create_time
  		)values(
@@ -119,6 +138,9 @@
  			<if test="departmentId != null">#{departmentId},</if>
  			<if test="serviceOrderClass != null and serviceOrderClass != ''">#{serviceOrderClass},</if>
  			<if test="dispatchOrderClass != null and dispatchOrderClass != ''">#{dispatchOrderClass},</if>
+ 			<if test="departureAddress != null and departureAddress != ''">#{departureAddress},</if>
+ 			<if test="departureLongitude != null">#{departureLongitude},</if>
+ 			<if test="departureLatitude != null">#{departureLatitude},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			sysdate()
  		)
@@ -138,6 +160,9 @@
  			<if test="departmentId != null">department_id = #{departmentId},</if>
  			<if test="serviceOrderClass != null">service_order_class = #{serviceOrderClass},</if>
  			<if test="dispatchOrderClass != null">dispatch_order_class = #{dispatchOrderClass},</if>
+ 			<if test="departureAddress != null">departure_address = #{departureAddress},</if>
+ 			<if test="departureLongitude != null">departure_longitude = #{departureLongitude},</if>
+ 			<if test="departureLatitude != null">departure_latitude = #{departureLatitude},</if>
  			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
  			update_time = sysdate()
  		</set>
@@ -184,4 +209,44 @@
 		limit 1
 	</select>
 
+	<!-- 鑾峰彇鎸囧畾閮ㄩ棬ID鐨勫垎鍏徃ID锛坧arent_id=100鐨勯儴闂級 -->
+	<select id="selectBranchCompanyIdByDeptId" parameterType="Long" resultType="Long">
+		select case 
+			-- 濡傛灉浼犲叆鐨勫氨鏄垎鍏徃锛坧arent_id=100锛夛紝鐩存帴杩斿洖
+			when exists(select 1 from sys_dept where dept_id = #{deptId} and parent_id = 100 and del_flag = '0') 
+			then #{deptId}
+			else (
+				-- 鍚﹀垯浠� ancestors 涓煡鎵惧垎鍏徃ID
+				select d.dept_id
+				from sys_dept d
+				where d.parent_id = 100
+				and d.del_flag = '0'
+				and FIND_IN_SET(d.dept_id, (
+					select ancestors from sys_dept where dept_id = #{deptId} and del_flag = '0'
+				))
+				limit 1
+			)
+		end
+	</select>
+	
+	<!-- 鏍规嵁缂栫爜鍒楄〃鏌ヨ鍒嗗叕鍙� -->
+	<select id="selectBranchCompaniesByOrderCodes" resultMap="SysDeptResult">
+		select dept_id, dept_name, parent_id, ancestors, service_order_class, dispatch_order_class,departure_address, departure_longitude, departure_latitude
+		from sys_dept
+		where parent_id = 100
+		and del_flag = '0'
+		and (
+			<foreach collection="orderCodes" item="code" separator=" or ">
+				service_order_class = #{code} or dispatch_order_class = #{code}
+			</foreach>
+		)
+	</select>
+	
+	<!-- 鏍规嵁service_class鏌ヨ閮ㄩ棬淇℃伅 -->
+	<select id="selectDeptByServiceClass" parameterType="String" resultMap="SysDeptResult">
+		<include refid="selectDeptVo"/>
+		where d.service_order_class = #{serviceClass} and d.del_flag = '0'
+		limit 1
+	</select>
+
 </mapper> 
\ No newline at end of file

--
Gitblit v1.9.1