Compare commits

..

2 Commits

Author SHA1 Message Date
b8bf23ec24 fix(job): remove redundant date filter conditions in SQL query
- Removed duplicated and unnecessary date filtering logic in the SQL query
- Simplified the query structure by eliminating repetitive time range checks
- Ensured that the remaining date filtering is handled properly through parameter validation
- Improved code readability and maintainability by reducing complexity in the WHERE clause
2025-11-17 10:30:31 +08:00
ba19342fa9 feat(bpm): add admin cancel process instance functionality
- Added admin-cancel endpoint in BpmProcessInstanceController
- Implemented adminCancelProcessInstance method in service layer
- Added permission check for admin cancel operation
- Handled both active and historic process instance cancellation
- Updated bill approval status after cancellation
- Added corresponding service method declaration in interface
2025-11-17 10:30:19 +08:00
4 changed files with 502 additions and 67 deletions

View File

@@ -420,72 +420,8 @@ public class AlibabaWorkOrderJob implements JobHandler {
" ) rwoe " +
" GROUP BY " +
" rwoe.\"RELATE_WORK_ORDER_ID\" " +
" ) rwoa ON mwoe.WORK_ORDER_ID = rwoa.RELATE_WORK_ORDER_ID " +
"WHERE " +
" ( " +
" mwoe.GMT_MODIFIED BETWEEN TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 00:00:00' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" AND TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 23:59:59' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" ) " +
" OR ( " +
" mwoe.SUB_GMT_MODIFIED BETWEEN TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 00:00:00' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" AND TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 23:59:59' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" ) " +
" OR ( " +
" rwoa.GMT_MODIFIED BETWEEN TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 00:00:00' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" AND TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 23:59:59' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" ) " +
" OR ( " +
" rwoa.SUB_GMT_MODIFIED BETWEEN TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 00:00:00' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" AND TO_DATE( " +
" NVL( " +
" '2025-11-11 11:11:11', " +
" TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 23:59:59' " +
" ), " +
" 'YYYY-MM-DD HH24:MI:SS' " +
" ) " +
" )");
" ) rwoa ON mwoe.WORK_ORDER_ID = rwoa.RELATE_WORK_ORDER_ID "
);
// 如果时间参数存在并且合法,则添加时间条件
if (StrUtil.equals("1", params) && Objects.nonNull(startTime) && Objects.nonNull(endTime) && startTime.isBefore(endTime)) {
String formattedStart = LocalDateTimeUtil.format(startTime, FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND);

View File

@@ -84,4 +84,12 @@ public class BpmProcessInstanceController extends BaseController {
return success(true);
}
@DeleteMapping("/admin-cancel")
@Operation(tags = "流程管理", summary = "管理员取消流程实例", description = "管理员强制取消任意流程实例")
@PreAuthorize("@ss.hasPermission('bpm:process-instance:admin-cancel')")
public CommonResult<Boolean> adminCancelProcessInstance(@Valid @RequestBody BpmProcessInstanceCancelReqVO cancelReqVO) {
processInstanceService.adminCancelProcessInstance(getLoginUserId(), cancelReqVO);
return success(true);
}
}

View File

@@ -111,6 +111,14 @@ public interface IBpmProcessInstanceService {
*/
void cancelProcessInstance(Long userId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO);
/**
* 管理员取消流程实例
*
* @param adminUserId 管理员用户编号
* @param cancelReqVO 取消信息
*/
void adminCancelProcessInstance(Long adminUserId, @Valid BpmProcessInstanceCancelReqVO cancelReqVO);
/**
* 获得历史的流程实例
*