Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -174,7 +174,12 @@ public class OrderClosedLoopAppServiceImpl implements IOrderClosedLoopAppService
|
|||||||
|
|
||||||
private Map<String, Object> getUnclosedWarnings(Integer pageNum, Integer pageSize) {
|
private Map<String, Object> getUnclosedWarnings(Integer pageNum, Integer pageSize) {
|
||||||
Map<String, Object> result = new HashMap<>();
|
Map<String, Object> result = new HashMap<>();
|
||||||
List<Map<String, Object>> rows = recordMapper.selectUnclosedWarnings();
|
// 使用分页查询避免全量拉取导致卡死
|
||||||
|
int pn = (pageNum != null && pageNum > 0) ? pageNum : 1;
|
||||||
|
int ps = (pageSize != null && pageSize > 0) ? pageSize : 10;
|
||||||
|
int offset = (pn - 1) * ps;
|
||||||
|
long total = recordMapper.countUnclosedWarnings();
|
||||||
|
List<Map<String, Object>> rows = recordMapper.selectUnclosedWarningsPaged(ps, offset);
|
||||||
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
List<Map<String, Object>> warnings = new ArrayList<>();
|
List<Map<String, Object>> warnings = new ArrayList<>();
|
||||||
for (Map<String, Object> row : rows) {
|
for (Map<String, Object> row : rows) {
|
||||||
@@ -195,6 +200,9 @@ public class OrderClosedLoopAppServiceImpl implements IOrderClosedLoopAppService
|
|||||||
warnings.add(warning);
|
warnings.add(warning);
|
||||||
}
|
}
|
||||||
result.put("records", warnings);
|
result.put("records", warnings);
|
||||||
|
result.put("total", total);
|
||||||
|
result.put("pageNum", pn);
|
||||||
|
result.put("pageSize", ps);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,40 +15,46 @@ public interface OrderExecuteRecordMapper extends BaseMapper<OrderExecuteRecord>
|
|||||||
@Select("SELECT m.department_name FROM order_main m WHERE m.order_no = #{orderNo} AND m.delete_flag = '0' LIMIT 1")
|
@Select("SELECT m.department_name FROM order_main m WHERE m.order_no = #{orderNo} AND m.delete_flag = '0' LIMIT 1")
|
||||||
String findDepartmentByOrderNo(@Param("orderNo") String orderNo);
|
String findDepartmentByOrderNo(@Param("orderNo") String orderNo);
|
||||||
|
|
||||||
@Select("SELECT e.order_type AS orderType, " +
|
@Select("SELECT e.order_type AS \"orderType\", " +
|
||||||
"COUNT(*) AS totalOrders, " +
|
"COUNT(*) AS \"totalOrders\", " +
|
||||||
"COUNT(CASE WHEN e.execute_status = 'completed' THEN 1 END) AS closedCount " +
|
"COUNT(CASE WHEN e.execute_status = 'completed' THEN 1 END) AS \"closedCount\" " +
|
||||||
"FROM order_execute_record e " +
|
"FROM order_execute_record e " +
|
||||||
"WHERE e.delete_flag = '0' AND e.execute_status != 'cancelled' " +
|
"WHERE e.delete_flag = '0' AND e.execute_status != 'cancelled' " +
|
||||||
"GROUP BY e.order_type")
|
"GROUP BY e.order_type")
|
||||||
List<Map<String, Object>> selectOverviewByType();
|
List<Map<String, Object>> selectOverviewByType();
|
||||||
|
|
||||||
@Select("SELECT COALESCE(m.department_name, '未知') AS department, " +
|
@Select("SELECT COALESCE(m.department_name, '未知') AS \"department\", " +
|
||||||
"COUNT(*) AS totalOrders, " +
|
"COUNT(*) AS \"totalOrders\", " +
|
||||||
"COUNT(CASE WHEN e.execute_status = 'completed' THEN 1 END) AS closedCount " +
|
"COUNT(CASE WHEN e.execute_status = 'completed' THEN 1 END) AS \"closedCount\" " +
|
||||||
"FROM order_execute_record e " +
|
"FROM order_execute_record e " +
|
||||||
"LEFT JOIN order_main m ON e.order_no = m.order_no AND m.delete_flag = '0' " +
|
"LEFT JOIN order_main m ON e.order_no = m.order_no AND m.delete_flag = '0' " +
|
||||||
"WHERE e.delete_flag = '0' AND e.execute_status != 'cancelled' " +
|
"WHERE e.delete_flag = '0' AND e.execute_status != 'cancelled' " +
|
||||||
"GROUP BY m.department_name ORDER BY totalOrders DESC")
|
"GROUP BY m.department_name ORDER BY \"totalOrders\" DESC")
|
||||||
List<Map<String, Object>> selectGroupByDepartment();
|
List<Map<String, Object>> selectGroupByDepartment();
|
||||||
|
|
||||||
@Select("SELECT COALESCE(m.doctor_name, '未知') AS doctorName, " +
|
@Select("SELECT COALESCE(m.doctor_name, '未知') AS \"doctorName\", " +
|
||||||
"COUNT(*) AS totalOrders, " +
|
"COUNT(*) AS \"totalOrders\", " +
|
||||||
"COUNT(CASE WHEN e.execute_status = 'completed' THEN 1 END) AS closedCount " +
|
"COUNT(CASE WHEN e.execute_status = 'completed' THEN 1 END) AS \"closedCount\" " +
|
||||||
"FROM order_execute_record e " +
|
"FROM order_execute_record e " +
|
||||||
"LEFT JOIN order_main m ON e.order_no = m.order_no AND m.delete_flag = '0' " +
|
"LEFT JOIN order_main m ON e.order_no = m.order_no AND m.delete_flag = '0' " +
|
||||||
"WHERE e.delete_flag = '0' AND e.execute_status != 'cancelled' " +
|
"WHERE e.delete_flag = '0' AND e.execute_status != 'cancelled' " +
|
||||||
"GROUP BY m.doctor_name ORDER BY totalOrders DESC")
|
"GROUP BY m.doctor_name ORDER BY \"totalOrders\" DESC")
|
||||||
List<Map<String, Object>> selectGroupByDoctor();
|
List<Map<String, Object>> selectGroupByDoctor();
|
||||||
|
|
||||||
@Select("SELECT e.order_no AS orderNo, e.patient_name AS patientName, e.order_type AS orderType, " +
|
@Select("SELECT COUNT(*) FROM order_execute_record e " +
|
||||||
"COALESCE(m.department_name, '未知') AS department, " +
|
"WHERE e.delete_flag = '0' " +
|
||||||
"COALESCE(m.doctor_name, '未知') AS doctorName, " +
|
"AND e.execute_status IN ('pending', 'in_progress', 'overdue', 'executing')")
|
||||||
"e.current_step AS currentStep, e.create_time AS orderTime " +
|
long countUnclosedWarnings();
|
||||||
|
|
||||||
|
@Select("SELECT e.order_no AS \"orderNo\", e.patient_name AS \"patientName\", e.order_type AS \"orderType\", " +
|
||||||
|
"COALESCE(m.department_name, '未知') AS \"department\", " +
|
||||||
|
"COALESCE(m.doctor_name, '未知') AS \"doctorName\", " +
|
||||||
|
"e.current_step AS \"currentStep\", e.create_time AS \"orderTime\" " +
|
||||||
"FROM order_execute_record e " +
|
"FROM order_execute_record e " +
|
||||||
"LEFT JOIN order_main m ON e.order_no = m.order_no AND m.delete_flag = '0' " +
|
"LEFT JOIN order_main m ON e.order_no = m.order_no AND m.delete_flag = '0' " +
|
||||||
"WHERE e.delete_flag = '0' " +
|
"WHERE e.delete_flag = '0' " +
|
||||||
"AND e.execute_status IN ('pending', 'in_progress', 'overdue', 'executing') " +
|
"AND e.execute_status IN ('pending', 'in_progress', 'overdue', 'executing') " +
|
||||||
"ORDER BY e.create_time DESC")
|
"ORDER BY e.create_time DESC " +
|
||||||
List<Map<String, Object>> selectUnclosedWarnings();
|
"LIMIT #{limit} OFFSET #{offset}")
|
||||||
|
List<Map<String, Object>> selectUnclosedWarningsPaged(@Param("limit") int limit, @Param("offset") int offset);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user