BI园区大屏指标修改
This commit is contained in:
@@ -8,10 +8,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
plateNumber <- qms_main_business.CAR_NO
|
||||
status <- qms_main_business.FLOW_STATUS
|
||||
platformId <- qms_main_business.WINDOW_NAME(叫号月台,主业务表直接有)
|
||||
platformDuration <- 月台作业时长(分钟):
|
||||
未进入月台(ENTRY_TIME 为空) -> 0
|
||||
已进入且已离开 -> EXIT_TIME - ENTRY_TIME
|
||||
已进入但未离开 -> SYSDATE - ENTRY_TIME
|
||||
platformDuration <- 月台作业时长(分钟),用「进入月台 / 离开月台」时间:
|
||||
未进入月台(IN_WINDOWS_TIME 为空) -> 0
|
||||
已进入且已离开月台(OUT_WINDOWS_TIME 非空) -> OUT_WINDOWS_TIME - IN_WINDOWS_TIME
|
||||
已进入但未离开月台 -> SYSDATE - IN_WINDOWS_TIME
|
||||
appointmentTime <- qms_main_business.CREATE_TIME
|
||||
workFloor <- qms_window_info.PLATFORM_FLOOR(按 WINDOW_NAME 关联)
|
||||
-->
|
||||
@@ -21,10 +21,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
mb.FLOW_STATUS AS status,
|
||||
mb.WINDOW_NAME AS platformId,
|
||||
CASE
|
||||
WHEN mb.ENTRY_TIME IS NULL THEN 0
|
||||
WHEN mb.EXIT_TIME IS NOT NULL
|
||||
THEN CAST((mb.EXIT_TIME - mb.ENTRY_TIME) * 24 * 60 AS BIGINT)
|
||||
ELSE CAST((SYSDATE - mb.ENTRY_TIME) * 24 * 60 AS BIGINT)
|
||||
WHEN mb.IN_WINDOWS_TIME IS NULL THEN 0
|
||||
WHEN mb.OUT_WINDOWS_TIME IS NOT NULL
|
||||
THEN CAST((mb.OUT_WINDOWS_TIME - mb.IN_WINDOWS_TIME) * 24 * 60 AS BIGINT)
|
||||
ELSE CAST((SYSDATE - mb.IN_WINDOWS_TIME) * 24 * 60 AS BIGINT)
|
||||
END AS platformDuration,
|
||||
TO_CHAR(mb.CREATE_TIME, 'YYYY-MM-DD HH24:MI:SS') AS appointmentTime,
|
||||
wi.PLATFORM_FLOOR AS workFloor
|
||||
@@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- 月台概览:totalPlatforms(总条数)、operatingPlatforms(作业状态=占用,JOB_STATUS: 0空闲 1占用) -->
|
||||
<select id="queryPlatformOverview" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO">
|
||||
SELECT
|
||||
@@ -77,6 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
waiting 等待作业:FLOW_STATUS IN ('1','2','3') 已预约/已签到/已叫号 且 预约日期 = 今天
|
||||
callStatusTotal 叫号状态合计:已签到 + 已叫号 + 已过号 = FLOW_STATUS IN ('2','3','4') 且 预约日期 = 今天
|
||||
todayExited 今日已出场:FLOW_STATUS = '11' 且 预约日期 = 今天(月台周转率的分子)
|
||||
completedVehicles 今日作业车辆总数:FLOW_STATUS = '11' 且 预约日期 = 今天
|
||||
FLOW_STATUS: 1已预约 2已签到 3已叫号 4已过号 5已进场 6已称重 7已装车 8二次称重 9已结算 10已还卡 11已出场 12已取消 -->
|
||||
<select id="queryVehicleStatusToday" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO">
|
||||
SELECT
|
||||
@@ -86,14 +88,97 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
SUM(CASE WHEN FLOW_STATUS IN ('2','3','4') AND TRUNC(TARGET_DATE) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS callStatusTotal,
|
||||
SUM(CASE WHEN FLOW_STATUS = '11' AND TRUNC(TARGET_DATE) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS todayExited,
|
||||
SUM(CASE WHEN FLOW_STATUS IN ('5','6','7','8','9','10') AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS operatingVehicles,
|
||||
SUM(CASE WHEN FLOW_STATUS = '11' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS completedVehicles
|
||||
SUM(CASE WHEN FLOW_STATUS = '11' AND TRUNC(TARGET_DATE) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS completedVehicles
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- ======================= 月台作业参考用时 / 超时相关 =======================
|
||||
参考用时取自 YMS 库静态字段配置表 NGWL_TEST_YMS.QMS_STATIC_FIELD:
|
||||
FIELD_CODE = 'platform_work_ref_minutes'
|
||||
取值优先级:WINDOW(按月台) > FLOOR(按楼层) > GLOBAL(全局)
|
||||
下面用 LEFT JOIN 三级关联 + COALESCE 实现优先级取值,
|
||||
REF_MINUTES 为空表示该月台未配置参考用时,其记录不计入超时率分母 -->
|
||||
|
||||
<!-- 可复用的参考用时关联条件(YMS 库静态字段配置表 QMS_STATIC_FIELD)
|
||||
取值优先级:WINDOW(按月台) > FLOOR(按楼层) > GLOBAL(全局) -->
|
||||
<sql id="joinStaticRef">
|
||||
INNER JOIN NGWL_TEST_YMS.QMS_STATIC_FIELD ref
|
||||
ON ref.FIELD_CODE = #{refCode}
|
||||
AND ref.DEL_FLAG = 1
|
||||
AND ref.FIELD_VALUE IS NOT NULL
|
||||
AND (
|
||||
(ref.SCOPE_TYPE = 'WINDOW' AND ref.SCOPE_CODE = mb.WINDOW_NAME)
|
||||
OR (ref.SCOPE_TYPE = 'FLOOR' AND ref.SCOPE_CODE = wi.PLATFORM_FLOOR)
|
||||
OR (ref.SCOPE_TYPE = 'GLOBAL')
|
||||
)
|
||||
</sql>
|
||||
|
||||
<!-- 今日作业超时统计(通用:月台作业 / 园区作业,由 refCode + 时长表达式区分)
|
||||
分母只计入「能取到参考用时 且 时长两端时间都非空」的记录
|
||||
overtimeCount 超时记录数:作业时长(分钟) > 参考用时
|
||||
totalCount 有效记录总数(分母)
|
||||
超时率 = overtimeCount / totalCount × 100%,由 Service 层计算 -->
|
||||
<select id="queryTodayOvertimeStat" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealOvertimeStatPO">
|
||||
SELECT
|
||||
SUM(CASE WHEN (mb.OUT_WINDOWS_TIME - mb.IN_WINDOWS_TIME) * 24 * 60 > ref.REF_MINUTES
|
||||
THEN 1 ELSE 0 END) AS overtimeCount,
|
||||
COUNT(1) AS totalCount
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS mb
|
||||
LEFT JOIN NGWL_TEST_YMS.QMS_WINDOW_INFO wi
|
||||
ON wi.WINDOW_NAME = mb.WINDOW_NAME
|
||||
<include refid="joinStaticRef"/>
|
||||
WHERE mb.TARGET_DATE IS NOT NULL
|
||||
AND TRUNC(mb.TARGET_DATE) = TRUNC(SYSDATE)
|
||||
AND mb.IN_WINDOWS_TIME IS NOT NULL
|
||||
AND mb.OUT_WINDOWS_TIME IS NOT NULL
|
||||
</select>
|
||||
|
||||
<!-- 今日园区作业超时统计(时长 = 实际出场 - 实际进入;参考用时 yard_work_ref_minutes)
|
||||
用于计算「园区作业准时率 = 1 - 超时率」 -->
|
||||
<select id="queryTodayYardOvertimeStat" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealOvertimeStatPO">
|
||||
SELECT
|
||||
SUM(CASE WHEN (mb.EXIT_TIME - mb.ENTRY_TIME) * 24 * 60 > ref.REF_MINUTES
|
||||
THEN 1 ELSE 0 END) AS overtimeCount,
|
||||
COUNT(1) AS totalCount
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS mb
|
||||
LEFT JOIN NGWL_TEST_YMS.QMS_WINDOW_INFO wi
|
||||
ON wi.WINDOW_NAME = mb.WINDOW_NAME
|
||||
<include refid="joinStaticRef"/>
|
||||
WHERE mb.TARGET_DATE IS NOT NULL
|
||||
AND TRUNC(mb.TARGET_DATE) = TRUNC(SYSDATE)
|
||||
AND mb.ENTRY_TIME IS NOT NULL
|
||||
AND mb.EXIT_TIME IS NOT NULL
|
||||
</select>
|
||||
|
||||
<!-- 今日月台作业超时记录列表(月台名称 / 车牌号码 / 超时时长分钟):
|
||||
超时时长 = 月台作业时长 - 参考用时 -->
|
||||
<select id="queryTodayOvertimeList" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealOvertimeRecordPO">
|
||||
SELECT
|
||||
mb.WINDOW_NAME AS windowName,
|
||||
mb.CAR_NO AS carNo,
|
||||
CAST(((mb.OUT_WINDOWS_TIME - mb.IN_WINDOWS_TIME) * 24 * 60 - ref.REF_MINUTES) AS BIGINT) AS overtimeMinutes,
|
||||
ref.REF_MINUTES AS refMinutes,
|
||||
CAST((mb.OUT_WINDOWS_TIME - mb.IN_WINDOWS_TIME) * 24 * 60 AS BIGINT) AS platformMinutes
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS mb
|
||||
LEFT JOIN NGWL_TEST_YMS.QMS_WINDOW_INFO wi
|
||||
ON wi.WINDOW_NAME = mb.WINDOW_NAME
|
||||
<include refid="joinStaticRef"/>
|
||||
WHERE mb.TARGET_DATE IS NOT NULL
|
||||
AND TRUNC(mb.TARGET_DATE) = TRUNC(SYSDATE)
|
||||
AND mb.IN_WINDOWS_TIME IS NOT NULL
|
||||
AND mb.OUT_WINDOWS_TIME IS NOT NULL
|
||||
AND (mb.OUT_WINDOWS_TIME - mb.IN_WINDOWS_TIME) * 24 * 60 > ref.REF_MINUTES
|
||||
ORDER BY overtimeMinutes DESC
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- 本月任务量:按预约日期 TARGET_DATE(Y预约日期)统计本月预约总数量 -->
|
||||
|
||||
<select id="countMonthTasks" resultType="java.lang.Long">
|
||||
SELECT COUNT(1)
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
|
||||
@@ -102,10 +187,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
<!-- 本月任务平均作业时长 / 完成率统计(统计范围:本月 TARGET_DATE 在当月的记录):
|
||||
totalWorkHours 本月任务作业时长合计(小时):
|
||||
未进入月台 -> 0
|
||||
已进入且已离开 -> EXIT_TIME - ENTRY_TIME
|
||||
已进入但未离开 -> SYSDATE - ENTRY_TIME
|
||||
totalWorkHours 本月任务作业时长合计(小时),用「进入月台 / 离开月台」时间:
|
||||
未进入月台(IN_WINDOWS_TIME 为空) -> 0
|
||||
已进入且已离开月台(OUT_WINDOWS_TIME 非空) -> OUT_WINDOWS_TIME - IN_WINDOWS_TIME
|
||||
已进入但未离开月台 -> SYSDATE - IN_WINDOWS_TIME
|
||||
completedCount 本月已出场(EXIT_TIME IS NOT NULL)的数量;
|
||||
totalCount 本月预约总数量(作为平均时长的分母)。
|
||||
avgDurationHours 由 Service 层计算 = totalWorkHours ÷ totalCount(任务平均作业时长)
|
||||
@@ -113,9 +198,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="queryMonthTaskStats" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealMonthlyTaskDurationPO">
|
||||
SELECT
|
||||
SUM(CASE
|
||||
WHEN ENTRY_TIME IS NULL THEN 0
|
||||
WHEN EXIT_TIME IS NOT NULL THEN (EXIT_TIME - ENTRY_TIME) * 24
|
||||
ELSE (SYSDATE - ENTRY_TIME) * 24
|
||||
WHEN IN_WINDOWS_TIME IS NULL THEN 0
|
||||
WHEN OUT_WINDOWS_TIME IS NOT NULL THEN (OUT_WINDOWS_TIME - IN_WINDOWS_TIME) * 24
|
||||
ELSE (SYSDATE - IN_WINDOWS_TIME) * 24
|
||||
END) AS totalWorkHours,
|
||||
SUM(CASE WHEN EXIT_TIME IS NOT NULL
|
||||
AND TARGET_DATE IS NOT NULL
|
||||
@@ -143,12 +228,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
<!-- 月台监控-按楼层统计:
|
||||
floorNo 楼层号,取自月台表 QMS_WINDOW_INFO.PLATFORM_FLOOR(不再从 WINDOW_NAME 截取)
|
||||
floorNo 楼层号,取自月台表 QMS_WINDOW_INFO.PLATFORM_FLOOR
|
||||
platformCount 该楼层月台数量(QMS_WINDOW_INFO)
|
||||
todayReservedVehicles 该楼层今日预约车辆数(按预约时已选的月台/叫号月台关联楼层)
|
||||
operatingVehicles 该楼层当前作业车辆数(FLOW_STATUS IN 5,6,7,8,9,10)
|
||||
说明:楼层维度以「月台表」为准;车辆预约时若已选月台(WINDOW_NAME 非空)即计入对应楼层,
|
||||
未选月台的车无法归属楼层,故不计入任何楼层(避免虚增)。 -->
|
||||
avgPlatformMinutes 该楼层月台作业平均时长(分钟)
|
||||
公式:SUM(该楼层有效记录的月台作业时长) ÷ 该楼层有效记录数
|
||||
有效记录:同时有进入月台(IN_WINDOWS_TIME)与离开月台(OUT_WINDOWS_TIME)时间
|
||||
说明:楼层维度以「月台表」为准;车辆预约时若已选月台(WINDOW_NAME 非空)即计入对应楼层。 -->
|
||||
<select id="queryPlatformFloorStats" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO">
|
||||
SELECT
|
||||
W.PLATFORM_FLOOR AS floorNo,
|
||||
@@ -160,7 +247,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
WHEN TRUNC(mb.TARGET_DATE) = TRUNC(SYSDATE)
|
||||
AND mb.FLOW_STATUS IN ('5','6','7','8','9','10')
|
||||
THEN mb.CAR_NO
|
||||
END) AS operatingVehicles
|
||||
END) AS operatingVehicles,
|
||||
ROUND(AVG(CASE
|
||||
WHEN mb.IN_WINDOWS_TIME IS NOT NULL AND mb.OUT_WINDOWS_TIME IS NOT NULL
|
||||
THEN (mb.OUT_WINDOWS_TIME - mb.IN_WINDOWS_TIME) * 24 * 60
|
||||
END), 0) AS avgPlatformMinutes
|
||||
FROM NGWL_TEST_YMS.QMS_WINDOW_INFO W
|
||||
LEFT JOIN NGWL_TEST_YMS.QMS_MAIN_BUSINESS mb
|
||||
ON mb.WINDOW_NAME = W.WINDOW_NAME
|
||||
@@ -170,6 +261,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- 任务类型统计(来自 NGWL_TEST_YMS.QMS_MAIN_BUSINESS 预约登记表):
|
||||
按本月预约车辆数(TARGET_DATE 在当前月)按 BUSINESS_NAME 业务类型分组统计 -->
|
||||
<select id="queryMonthTransportOrderByType" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskTypeStatPO">
|
||||
@@ -184,18 +276,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
ORDER BY COUNT(1) DESC
|
||||
</select>
|
||||
|
||||
<!-- 任务负荷(今日 24 小时时段):按 EXTRACT(HOUR FROM ENTRY_TIME) 统计 -->
|
||||
<!-- 今日平均作业时长(效率统计-本日):
|
||||
avgPlatformDurationHours 月台作业平均时长(小时)
|
||||
统计范围:今日预约记录中「同时有进入月台时间(IN_WINDOWS_TIME)和离开月台时间(OUT_WINDOWS_TIME)」的记录
|
||||
公式:AVG((OUT_WINDOWS_TIME - IN_WINDOWS_TIME) * 24)
|
||||
avgYardDurationHours 园区平均时长(小时)
|
||||
统计范围:今日预约记录中「同时有实际进入时间(ENTRY_TIME)和实际出场时间(EXIT_TIME)」的记录
|
||||
公式:AVG((EXIT_TIME - ENTRY_TIME) * 24) -->
|
||||
<select id="queryTodayAvgDuration" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealTodayAvgDurationPO">
|
||||
SELECT
|
||||
AVG(CASE WHEN IN_WINDOWS_TIME IS NOT NULL AND OUT_WINDOWS_TIME IS NOT NULL
|
||||
THEN (OUT_WINDOWS_TIME - IN_WINDOWS_TIME) * 24
|
||||
END) AS avgPlatformDurationHours,
|
||||
AVG(CASE WHEN ENTRY_TIME IS NOT NULL AND EXIT_TIME IS NOT NULL
|
||||
THEN (EXIT_TIME - ENTRY_TIME) * 24
|
||||
END) AS avgYardDurationHours
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
|
||||
WHERE TARGET_DATE IS NOT NULL
|
||||
AND TRUNC(TARGET_DATE) = TRUNC(SYSDATE)
|
||||
</select>
|
||||
|
||||
<!-- 近半年「平均作业时长」趋势(按月分组,取最近 6 个月):
|
||||
|
||||
taskCount 该月任务数(预约记录数,作为平均时长的分母);
|
||||
platformWorkHours 该月月台作业时长合计(小时):
|
||||
未进入月台(IN_WINDOWS_TIME 为空) -> 0
|
||||
已进入且已离开月台(OUT_WINDOWS_TIME 非空) -> OUT_WINDOWS_TIME - IN_WINDOWS_TIME
|
||||
已进入但未离开月台 -> SYSDATE - IN_WINDOWS_TIME
|
||||
yardWorkHours 该月园区作业时长合计(小时):
|
||||
未进场(ENTRY_TIME 为空) -> 0
|
||||
已进场且已出场(EXIT_TIME 非空) -> EXIT_TIME - ENTRY_TIME
|
||||
已进场但未出场 -> SYSDATE - ENTRY_TIME
|
||||
平均时长由 Service 层计算 = 时长合计 ÷ taskCount -->
|
||||
<select id="queryMonthlyAvgDuration" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealMonthlyAvgDurationPO">
|
||||
SELECT
|
||||
TO_CHAR(TARGET_DATE, 'YYYY-MM') AS monthOfYear,
|
||||
COUNT(1) AS taskCount,
|
||||
SUM(CASE
|
||||
WHEN IN_WINDOWS_TIME IS NULL THEN 0
|
||||
WHEN OUT_WINDOWS_TIME IS NOT NULL THEN (OUT_WINDOWS_TIME - IN_WINDOWS_TIME) * 24
|
||||
ELSE (SYSDATE - IN_WINDOWS_TIME) * 24
|
||||
END) AS platformWorkHours,
|
||||
SUM(CASE
|
||||
WHEN ENTRY_TIME IS NULL THEN 0
|
||||
WHEN EXIT_TIME IS NOT NULL THEN (EXIT_TIME - ENTRY_TIME) * 24
|
||||
ELSE (SYSDATE - ENTRY_TIME) * 24
|
||||
END) AS yardWorkHours
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
|
||||
WHERE TARGET_DATE IS NOT NULL
|
||||
AND TARGET_DATE >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -5)
|
||||
GROUP BY TO_CHAR(TARGET_DATE, 'YYYY-MM')
|
||||
ORDER BY 1
|
||||
</select>
|
||||
|
||||
<!-- 小时趋势(今日,每 2 小时分组统计一次):
|
||||
按车辆进入月台时间 IN_WINDOWS_TIME 分桶,桶为 0,2,4,...,22 -->
|
||||
<select id="queryTaskLoadToday" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO">
|
||||
SELECT
|
||||
EXTRACT(HOUR FROM ENTRY_TIME) AS hourOfDay,
|
||||
COUNT(1) AS taskCount
|
||||
FLOOR(EXTRACT(HOUR FROM IN_WINDOWS_TIME) / 2) * 2 AS hourOfDay,
|
||||
COUNT(1) AS taskCount
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
|
||||
WHERE ENTRY_TIME IS NOT NULL
|
||||
AND TRUNC(ENTRY_TIME) = TRUNC(SYSDATE)
|
||||
GROUP BY EXTRACT(HOUR FROM ENTRY_TIME)
|
||||
ORDER BY EXTRACT(HOUR FROM ENTRY_TIME)
|
||||
WHERE IN_WINDOWS_TIME IS NOT NULL
|
||||
AND TRUNC(IN_WINDOWS_TIME) = TRUNC(SYSDATE)
|
||||
GROUP BY FLOOR(EXTRACT(HOUR FROM IN_WINDOWS_TIME) / 2) * 2
|
||||
ORDER BY 1
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 月台管理列表:查询 YMS qms_window_info 月台/鹤位窗口
|
||||
机构名称 deptName <- sys_dept.DEPT_NAME(d.dept_id = a.ORG_NO 关联)
|
||||
鹤位屏名称 berrNames <- qms_window_berr(WINDOW_ID/BERR_ID) join qms_berr_config(ID/BERR_NAME),WM_CONCAT 拼接
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.mhd.bi.domain.biStaticField.repository.mapper.BiStaticFieldMapper">
|
||||
|
||||
<!-- 业务静态字段配置(YMS 库):按字段编码查询全部有效配置
|
||||
含 GLOBAL / FLOOR / WINDOW 各作用域,由程序按「WINDOW > FLOOR > GLOBAL」优先级取值 -->
|
||||
<select id="queryByCode" resultType="com.mhd.bi.domain.biStaticField.repository.po.BiStaticFieldPO">
|
||||
SELECT
|
||||
FIELD_CODE AS fieldCode,
|
||||
FIELD_NAME AS fieldName,
|
||||
SCOPE_TYPE AS scopeType,
|
||||
SCOPE_CODE AS scopeCode,
|
||||
FIELD_VALUE AS fieldValue,
|
||||
UNIT AS unit
|
||||
FROM NGWL_TEST_YMS.QMS_STATIC_FIELD
|
||||
WHERE DEL_FLAG = 1
|
||||
AND FIELD_CODE = #{fieldCode}
|
||||
</select>
|
||||
|
||||
<!-- 批量按字段编码查询 -->
|
||||
<select id="queryByCodes" resultType="com.mhd.bi.domain.biStaticField.repository.po.BiStaticFieldPO">
|
||||
SELECT
|
||||
FIELD_CODE AS fieldCode,
|
||||
FIELD_NAME AS fieldName,
|
||||
SCOPE_TYPE AS scopeType,
|
||||
SCOPE_CODE AS scopeCode,
|
||||
FIELD_VALUE AS fieldValue,
|
||||
UNIT AS unit
|
||||
FROM NGWL_TEST_YMS.QMS_STATIC_FIELD
|
||||
WHERE DEL_FLAG = 1
|
||||
AND FIELD_CODE IN
|
||||
<foreach collection="fieldCodes" item="c" open="(" separator="," close=")">
|
||||
#{c}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<!-- 查询全部有效配置 -->
|
||||
<select id="queryAll" resultType="com.mhd.bi.domain.biStaticField.repository.po.BiStaticFieldPO">
|
||||
SELECT
|
||||
FIELD_CODE AS fieldCode,
|
||||
FIELD_NAME AS fieldName,
|
||||
SCOPE_TYPE AS scopeType,
|
||||
SCOPE_CODE AS scopeCode,
|
||||
FIELD_VALUE AS fieldValue,
|
||||
UNIT AS unit
|
||||
FROM NGWL_TEST_YMS.QMS_STATIC_FIELD
|
||||
WHERE DEL_FLAG = 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.mhd.bi.domain.biWarehouseTransport.repository.mapper.BiWarehouseTransportRealDataMapper">
|
||||
|
||||
<!-- 仓储订单量:本年度 / 本季度 / 本月度 = 入库业务单 + 出库业务单 数量合计
|
||||
统计范围:全部组织
|
||||
口径:del_flag = 1(有效);本季度用「月份向上取整 / 3」判断同季度 -->
|
||||
|
||||
<select id="queryWarehouseOrderStat" resultType="com.mhd.bi.domain.biWarehouseTransport.repository.po.RealWarehouseOrderStatPO">
|
||||
SELECT
|
||||
(SELECT NVL(SUM(c), 0) FROM (
|
||||
SELECT COUNT(1) AS c FROM NGWL_TEST_WMS.STOCK_IN_ORDER
|
||||
WHERE del_flag = 1 AND TO_CHAR(CREATE_TIME, 'YYYY') = TO_CHAR(SYSDATE, 'YYYY')
|
||||
UNION ALL
|
||||
SELECT COUNT(1) FROM NGWL_TEST_WMS.STOCK_OUT_ORDER
|
||||
WHERE del_flag = 1 AND TO_CHAR(CREATE_TIME, 'YYYY') = TO_CHAR(SYSDATE, 'YYYY')
|
||||
)) AS currentYearOrders,
|
||||
(SELECT NVL(SUM(c), 0) FROM (
|
||||
SELECT COUNT(1) AS c FROM NGWL_TEST_WMS.STOCK_IN_ORDER
|
||||
WHERE del_flag = 1 AND TO_CHAR(CREATE_TIME, 'YYYY') = TO_CHAR(SYSDATE, 'YYYY')
|
||||
AND CEIL(TO_NUMBER(TO_CHAR(CREATE_TIME, 'MM')) / 3) = CEIL(TO_NUMBER(TO_CHAR(SYSDATE, 'MM')) / 3)
|
||||
UNION ALL
|
||||
SELECT COUNT(1) FROM NGWL_TEST_WMS.STOCK_OUT_ORDER
|
||||
WHERE del_flag = 1 AND TO_CHAR(CREATE_TIME, 'YYYY') = TO_CHAR(SYSDATE, 'YYYY')
|
||||
AND CEIL(TO_NUMBER(TO_CHAR(CREATE_TIME, 'MM')) / 3) = CEIL(TO_NUMBER(TO_CHAR(SYSDATE, 'MM')) / 3)
|
||||
)) AS currentQuarterOrders,
|
||||
(SELECT NVL(SUM(c), 0) FROM (
|
||||
SELECT COUNT(1) AS c FROM NGWL_TEST_WMS.STOCK_IN_ORDER
|
||||
WHERE del_flag = 1 AND TO_CHAR(CREATE_TIME, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
|
||||
UNION ALL
|
||||
SELECT COUNT(1) FROM NGWL_TEST_WMS.STOCK_OUT_ORDER
|
||||
WHERE del_flag = 1 AND TO_CHAR(CREATE_TIME, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
|
||||
)) AS currentMonthOrders
|
||||
FROM DUAL
|
||||
</select>
|
||||
|
||||
<!-- 今日订单数量:OMS 运输业务单,今日创建,全部组织 -->
|
||||
<select id="countTodayTransportOrders" resultType="java.lang.Long">
|
||||
SELECT COUNT(1)
|
||||
FROM NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER
|
||||
WHERE CREATE_TIME IS NOT NULL
|
||||
AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE)
|
||||
AND IS_DELETE = 0
|
||||
</select>
|
||||
|
||||
<!-- 今日运输车次:TMS 运输单(运单),今日创建,全部组织
|
||||
口径:一个单 = 一个车次,直接按单计数(不做单号去重,避免单号为空被漏计) -->
|
||||
<select id="countTodayTransportTrips" resultType="java.lang.Long">
|
||||
SELECT COUNT(1)
|
||||
FROM NGWL_TEST_WLHY.TMS_TRANSPORT_NOTE
|
||||
WHERE CREATE_TIME IS NOT NULL
|
||||
AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE)
|
||||
AND (IS_DELETE IS NULL OR IS_DELETE = 0)
|
||||
</select>
|
||||
|
||||
<!-- 客户贡献排名:OMS 运输业务单,近半年按货主(APPOINT_SHIPPER)聚合订单数,取前 5 名
|
||||
统计范围:全部组织;口径:一个单 = 一单,COUNT(1) -->
|
||||
<select id="queryCustomerRankTop5" resultType="com.mhd.bi.domain.biWarehouseTransport.repository.po.RealCustomerRankPO">
|
||||
SELECT * FROM (
|
||||
SELECT
|
||||
APPOINT_SHIPPER AS customerName,
|
||||
CEIL(COUNT(1)) AS customerAmount
|
||||
FROM NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER
|
||||
WHERE CREATE_TIME IS NOT NULL
|
||||
AND CREATE_TIME >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -5)
|
||||
AND IS_DELETE = 0
|
||||
AND APPOINT_SHIPPER IS NOT NULL
|
||||
AND APPOINT_SHIPPER != ''
|
||||
GROUP BY APPOINT_SHIPPER
|
||||
ORDER BY COUNT(1) DESC
|
||||
)
|
||||
WHERE ROWNUM <= 5
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user