问题修改

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 {
String head=request.getHeader(SecurityConstants.FROM_SOURCE);
if(SecurityConstants.INNER.equals(head)){
return true;

View File

@ -35,16 +35,6 @@ public class SjMaxDeviceServiceImpl implements SjMaxDeviceService{
String endTime = endDate.toString();
o.setStartTime(startTime);
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);
result.put("workerEcharts", workerList);
result.put("todayDutyRate", 0);
@ -56,10 +46,10 @@ public class SjMaxDeviceServiceImpl implements SjMaxDeviceService{
}
}
//整体人员利用率和设备使用率
double totalActualCount = list.stream()
double totalActualCount = workerList.stream()
.mapToDouble(SjMaxDevice::getActualCount)
.sum();
double totalShouldCount = list.stream()
double totalShouldCount = workerList.stream()
.mapToDouble(SjMaxDevice::getShouldCount)
.sum();
double workerUtilization = 0;

View File

@ -66,7 +66,18 @@ SELECT
COALESCE(p_summary.planned_count, 0) AS planned_count,
COALESCE(a_summary.actual_count, 0) AS actual_count
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
LEFT JOIN (
SELECT
@ -74,7 +85,15 @@ SELECT
p.pro_type,
COUNT(p.id) AS planned_count
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
INNER JOIN sj_construction_progress p
ON dl_inner.dt BETWEEN p.plan_start_time AND p.plan_end_time
@ -86,7 +105,15 @@ SELECT
a.pro_type,
COUNT(a.id) AS actual_count
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
INNER JOIN sj_construction_progress a
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
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
ON t.type = e.type
AND date_list.dt = e.create_time

View File

@ -25,19 +25,22 @@
</sql>
<select id="selectDeviceEcharts" resultMap="BaseResultMap">
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,
sum(used_day) AS used_day
SELECT
dev_name,
-- 入场天数:如果未出场,则算到今天
IFNULL(SUM(
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
WHERE
-- 确保有入场时间
in_time IS NOT NULL
-- 入场时间不能在未来
AND in_time &lt;= CURDATE()
-- 确保有入场时间
in_time IS NOT NULL
-- 入场时间不能在未来
AND in_time &lt;= CURDATE()
GROUP BY dev_name
ORDER BY ein_day DESC
ORDER BY ein_day DESC;
</select>
<select id="selectWorkerEcharts" resultMap="BaseResultMap">
@ -46,7 +49,15 @@
COALESCE(should.should_count, 0) AS should_count,
COALESCE(actual.actual_count, 0) AS actual_count
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
-- 应到人数:每天 = 班组总人数(固定)
CROSS JOIN (
@ -90,7 +101,15 @@
GROUP BY team_id
) tp_count ON wt.id = tp_count.team_id
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
-- 关联每天实到人数
LEFT JOIN (

View File

@ -34,10 +34,14 @@
sum(accept_item) as accept_item,
sum(accept_table) as accept_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,
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_item) * 100.0 / SUM(total_item), 1) AS 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
</select>