|
@@ -661,7 +661,7 @@ export class OrderService extends GenericCrudService<EmploymentOrder> {
|
|
|
startDate?: string;
|
|
startDate?: string;
|
|
|
endDate?: string;
|
|
endDate?: string;
|
|
|
page?: number;
|
|
page?: number;
|
|
|
- limit?: number;
|
|
|
|
|
|
|
+ pageSize?: number;
|
|
|
sortBy?: 'createTime' | 'updateTime' | 'orderName';
|
|
sortBy?: 'createTime' | 'updateTime' | 'orderName';
|
|
|
sortOrder?: 'ASC' | 'DESC';
|
|
sortOrder?: 'ASC' | 'DESC';
|
|
|
}
|
|
}
|
|
@@ -672,7 +672,7 @@ export class OrderService extends GenericCrudService<EmploymentOrder> {
|
|
|
startDate,
|
|
startDate,
|
|
|
endDate,
|
|
endDate,
|
|
|
page = 1,
|
|
page = 1,
|
|
|
- limit = 10,
|
|
|
|
|
|
|
+ pageSize = 10,
|
|
|
sortBy = 'createTime',
|
|
sortBy = 'createTime',
|
|
|
sortOrder = 'DESC'
|
|
sortOrder = 'DESC'
|
|
|
} = filters;
|
|
} = filters;
|
|
@@ -704,10 +704,12 @@ export class OrderService extends GenericCrudService<EmploymentOrder> {
|
|
|
const orderByField = sortBy === 'orderName' ? 'order.orderName' : `order.${sortBy}`;
|
|
const orderByField = sortBy === 'orderName' ? 'order.orderName' : `order.${sortBy}`;
|
|
|
queryBuilder.orderBy(orderByField, sortOrder);
|
|
queryBuilder.orderBy(orderByField, sortOrder);
|
|
|
|
|
|
|
|
- // 获取数据
|
|
|
|
|
|
|
+ // 获取数据,加载 orderPersons 和 person 关联
|
|
|
const data = await queryBuilder
|
|
const data = await queryBuilder
|
|
|
- .skip((page - 1) * limit)
|
|
|
|
|
- .take(limit)
|
|
|
|
|
|
|
+ .leftJoinAndSelect('order.orderPersons', 'orderPersons')
|
|
|
|
|
+ .leftJoinAndSelect('orderPersons.person', 'person')
|
|
|
|
|
+ .skip((page - 1) * pageSize)
|
|
|
|
|
+ .take(pageSize)
|
|
|
.getMany();
|
|
.getMany();
|
|
|
|
|
|
|
|
// 获取每个订单的人员数量
|
|
// 获取每个订单的人员数量
|
|
@@ -746,7 +748,22 @@ export class OrderService extends GenericCrudService<EmploymentOrder> {
|
|
|
orderStatus: order.orderStatus,
|
|
orderStatus: order.orderStatus,
|
|
|
createTime: order.createTime,
|
|
createTime: order.createTime,
|
|
|
updateTime: order.updateTime,
|
|
updateTime: order.updateTime,
|
|
|
- personCount
|
|
|
|
|
|
|
+ personCount,
|
|
|
|
|
+ orderPersons: order.orderPersons?.map(op => ({
|
|
|
|
|
+ id: op.id,
|
|
|
|
|
+ orderId: op.orderId,
|
|
|
|
|
+ personId: op.personId,
|
|
|
|
|
+ joinDate: op.joinDate,
|
|
|
|
|
+ leaveDate: op.leaveDate,
|
|
|
|
|
+ workStatus: op.workStatus,
|
|
|
|
|
+ person: op.person ? {
|
|
|
|
|
+ id: op.person.id,
|
|
|
|
|
+ name: op.person.name,
|
|
|
|
|
+ gender: op.person.gender,
|
|
|
|
|
+ disabilityType: op.person.disabilityType,
|
|
|
|
|
+ phone: op.person.phone
|
|
|
|
|
+ } : null
|
|
|
|
|
+ })) || []
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -784,7 +801,7 @@ export class OrderService extends GenericCrudService<EmploymentOrder> {
|
|
|
queryBuilder
|
|
queryBuilder
|
|
|
.leftJoin('asset.order', 'order') // 关联employment_order表(使用 leftJoin 避免过滤掉没有订单的视频)
|
|
.leftJoin('asset.order', 'order') // 关联employment_order表(使用 leftJoin 避免过滤掉没有订单的视频)
|
|
|
.where('(order.companyId = :companyId OR order.companyId IS NULL)', { companyId })
|
|
.where('(order.companyId = :companyId OR order.companyId IS NULL)', { companyId })
|
|
|
- .andWhere('asset.assetFileType = :fileType', { fileType: 'video' }); // 只查询视频文件
|
|
|
|
|
|
|
+ .andWhere('asset.assetFileType IN (:...fileTypes)', { fileTypes: ['video', 'mp4'] }); // 只查询视频文件(兼容数据库中的 mp4 值)
|
|
|
|
|
|
|
|
// 视频类型过滤
|
|
// 视频类型过滤
|
|
|
if (assetType) {
|
|
if (assetType) {
|
|
@@ -855,7 +872,7 @@ export class OrderService extends GenericCrudService<EmploymentOrder> {
|
|
|
queryBuilder
|
|
queryBuilder
|
|
|
.innerJoin('asset.order', 'order')
|
|
.innerJoin('asset.order', 'order')
|
|
|
.where('order.companyId = :companyId', { companyId })
|
|
.where('order.companyId = :companyId', { companyId })
|
|
|
- .andWhere('asset.assetFileType = :fileType', { fileType: 'video' }); // 只查询视频文件
|
|
|
|
|
|
|
+ .andWhere('asset.assetFileType IN (:...fileTypes)', { fileTypes: ['video', 'mp4'] }); // 只查询视频文件(兼容数据库中的 mp4 值)
|
|
|
|
|
|
|
|
// 根据下载范围添加额外过滤条件
|
|
// 根据下载范围添加额外过滤条件
|
|
|
if (downloadScope === 'person') {
|
|
if (downloadScope === 'person') {
|