问题修改

This commit is contained in:
方亮 2025-10-17 16:23:48 +08:00
parent bff52f8137
commit 46dfa6338d
6 changed files with 81 additions and 32 deletions

View File

@ -229,6 +229,7 @@ public class ParamSecureHandler implements AsyncHandlerInterceptor {
* 判断是否越权 * 判断是否越权
*/ */
private boolean checkIsYq(HttpServletRequest request) throws Exception { private boolean checkIsYq(HttpServletRequest request) throws Exception {
String head=request.getHeader(SecurityConstants.FROM_SOURCE); String head=request.getHeader(SecurityConstants.FROM_SOURCE);
if(SecurityConstants.INNER.equals(head)){ if(SecurityConstants.INNER.equals(head)){
return true; return true;

View File

@ -35,16 +35,6 @@ public class SjMaxDeviceServiceImpl implements SjMaxDeviceService{
String endTime = endDate.toString(); String endTime = endDate.toString();
o.setStartTime(startTime); o.setStartTime(startTime);
o.setEndTime(endTime); o.setEndTime(endTime);
String sql = "SELECT DATE_ADD("+startTime+", INTERVAL (ones.a + tens.a * 10) DAY) AS dt\n" +
" FROM\n" +
" (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3\n" +
" UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7\n" +
" UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones\n" +
" CROSS JOIN\n" +
" (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3\n" +
" UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens\n" +
" WHERE DATE_ADD("+startTime+", INTERVAL (ones.a + tens.a * 10) DAY) <= "+endTime;
o.setSql(sql);
List<SjMaxDevice> workerList = mapper.selectWorkerEcharts(o); List<SjMaxDevice> workerList = mapper.selectWorkerEcharts(o);
result.put("workerEcharts", workerList); result.put("workerEcharts", workerList);
result.put("todayDutyRate", 0); result.put("todayDutyRate", 0);
@ -56,10 +46,10 @@ public class SjMaxDeviceServiceImpl implements SjMaxDeviceService{
} }
} }
//整体人员利用率和设备使用率 //整体人员利用率和设备使用率
double totalActualCount = list.stream() double totalActualCount = workerList.stream()
.mapToDouble(SjMaxDevice::getActualCount) .mapToDouble(SjMaxDevice::getActualCount)
.sum(); .sum();
double totalShouldCount = list.stream() double totalShouldCount = workerList.stream()
.mapToDouble(SjMaxDevice::getShouldCount) .mapToDouble(SjMaxDevice::getShouldCount)
.sum(); .sum();
double workerUtilization = 0; double workerUtilization = 0;

View File

@ -66,7 +66,18 @@ SELECT
COALESCE(p_summary.planned_count, 0) AS planned_count, COALESCE(p_summary.planned_count, 0) AS planned_count,
COALESCE(a_summary.actual_count, 0) AS actual_count COALESCE(a_summary.actual_count, 0) AS actual_count
FROM ( FROM (
#{sql}
SELECT DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) AS dt
FROM
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones
CROSS JOIN
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens
WHERE DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) &lt;= #{endTime}
) AS date_list ) AS date_list
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
@ -74,7 +85,15 @@ SELECT
p.pro_type, p.pro_type,
COUNT(p.id) AS planned_count COUNT(p.id) AS planned_count
FROM ( FROM (
#{sql} SELECT DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) AS dt
FROM
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones
CROSS JOIN
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens
WHERE DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) &lt;= #{endTime}
) AS dl_inner ) AS dl_inner
INNER JOIN sj_construction_progress p INNER JOIN sj_construction_progress p
ON dl_inner.dt BETWEEN p.plan_start_time AND p.plan_end_time ON dl_inner.dt BETWEEN p.plan_start_time AND p.plan_end_time
@ -86,7 +105,15 @@ SELECT
a.pro_type, a.pro_type,
COUNT(a.id) AS actual_count COUNT(a.id) AS actual_count
FROM ( FROM (
#{sql} SELECT DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) AS dt
FROM
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones
CROSS JOIN
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens
WHERE DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) &lt;= #{endTime}
) AS dl_inner ) AS dl_inner
INNER JOIN sj_construction_progress a INNER JOIN sj_construction_progress a
ON dl_inner.dt BETWEEN a.start_time AND a.end_time ON dl_inner.dt BETWEEN a.start_time AND a.end_time

View File

@ -100,7 +100,15 @@
(SELECT DISTINCT type FROM sj_energy_reduction WHERE type IS NOT NULL) t (SELECT DISTINCT type FROM sj_energy_reduction WHERE type IS NOT NULL) t
CROSS JOIN CROSS JOIN
-- 生成日期序列 -- 生成日期序列
( #{sql} ) AS date_list ( SELECT DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) AS dt
FROM
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones
CROSS JOIN
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens
WHERE DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) &lt;= #{endTime} ) AS date_list
LEFT JOIN sj_energy_reduction e LEFT JOIN sj_energy_reduction e
ON t.type = e.type ON t.type = e.type
AND date_list.dt = e.create_time AND date_list.dt = e.create_time

View File

@ -25,19 +25,22 @@
</sql> </sql>
<select id="selectDeviceEcharts" resultMap="BaseResultMap"> <select id="selectDeviceEcharts" resultMap="BaseResultMap">
SELECT dev_name, SELECT
-- 入场天数:如果未出场,则算到今天 dev_name,
sum(DATEDIFF(IF(out_time IS NOT NULL AND out_time &lt; CURDATE(), out_time, CURDATE()), in_time) + -- 入场天数:如果未出场,则算到今天
1) AS ein_day, IFNULL(SUM(
sum(used_day) AS used_day DATEDIFF(IF(out_time IS NOT NULL AND out_time &lt; CURDATE(), out_time, CURDATE()), in_time) + 1
), 0) AS ein_day,
-- 使用天数直接求和NULL 显示为 0
IFNULL(SUM(used_day), 0) AS used_day
FROM sj_max_device FROM sj_max_device
WHERE WHERE
-- 确保有入场时间 -- 确保有入场时间
in_time IS NOT NULL in_time IS NOT NULL
-- 入场时间不能在未来 -- 入场时间不能在未来
AND in_time &lt;= CURDATE() AND in_time &lt;= CURDATE()
GROUP BY dev_name GROUP BY dev_name
ORDER BY ein_day DESC ORDER BY ein_day DESC;
</select> </select>
<select id="selectWorkerEcharts" resultMap="BaseResultMap"> <select id="selectWorkerEcharts" resultMap="BaseResultMap">
@ -46,7 +49,15 @@
COALESCE(should.should_count, 0) AS should_count, COALESCE(should.should_count, 0) AS should_count,
COALESCE(actual.actual_count, 0) AS actual_count COALESCE(actual.actual_count, 0) AS actual_count
FROM ( FROM (
#{sql} SELECT DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) AS dt
FROM
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones
CROSS JOIN
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens
WHERE DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) &lt;= #{endTime}
) AS date_list ) AS date_list
-- 应到人数:每天 = 班组总人数(固定) -- 应到人数:每天 = 班组总人数(固定)
CROSS JOIN ( CROSS JOIN (
@ -90,7 +101,15 @@
GROUP BY team_id GROUP BY team_id
) tp_count ON wt.id = tp_count.team_id ) tp_count ON wt.id = tp_count.team_id
CROSS JOIN ( CROSS JOIN (
#{sql} SELECT DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) AS dt
FROM
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7
UNION ALL SELECT 8 UNION ALL SELECT 9) AS ones
CROSS JOIN
(SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
UNION ALL SELECT 4 UNION ALL SELECT 5) AS tens
WHERE DATE_ADD(#{startTime}, INTERVAL (ones.a + tens.a * 10) DAY) &lt;= #{endTime}
) AS date_list ) AS date_list
-- 关联每天实到人数 -- 关联每天实到人数
LEFT JOIN ( LEFT JOIN (

View File

@ -34,10 +34,14 @@
sum(accept_item) as accept_item, sum(accept_item) as accept_item,
sum(accept_table) as accept_table, sum(accept_table) as accept_table,
sum(accept_qualified_table) as accept_qualified_table, sum(accept_qualified_table) as accept_qualified_table,
sum(accept_item)/sum(total_item) as accept_rate,
sum(accept_qualified_table)/sum(accept_table) as accept_tb_rate, ROUND(SUM(accept_item) * 100.0 / SUM(total_item), 1) AS accept_rate,
sum( main_one_accept_num)/sum(main_accept_num) as main_accept_rate,
sum(comm_one_accept)/sum(comm_accept) as comm_accept_rate ROUND(SUM(accept_qualified_table) * 100.0 / SUM(accept_table), 1) AS accept_tb_rate,
ROUND(SUM(main_one_accept_num) * 100.0 / SUM(main_accept_num), 1) AS main_accept_rate,
ROUND(SUM(comm_one_accept) * 100.0 / SUM(comm_accept), 1) AS comm_accept_rate
from sj_project_quality from sj_project_quality
</select> </select>