diff --git a/src/app.controller.ts b/src/app.controller.ts index eb617fd..ff67af6 100644 --- a/src/app.controller.ts +++ b/src/app.controller.ts @@ -30,6 +30,11 @@ export class VisitorList { @IsNotEmpty() public identity_card_no: string; + @ApiProperty({ description: "证件类型" }) + @IsString() + @IsNotEmpty() + public id_type: string; + @ApiProperty({ description: "国籍(中国/其他国籍)" }) @IsString() @IsNotEmpty() @@ -133,7 +138,7 @@ export class CreateVisitor { @ApiProperty({ description: "访客是否有可能接触受控设备" }) @IsBoolean() @IsNotEmpty() - public may_access_sensitive_info: boolean; + public may_access_sensitive_info: string; } export class QueryVisitorDto extends CommonPageArgs { @@ -146,6 +151,16 @@ export class QueryVisitorDto extends CommonPageArgs { @IsString() @IsOptional() search?: string + + @ApiPropertyOptional({ description: "", required: false }) + @IsString() + @IsOptional() + start_date?: string + + @ApiPropertyOptional({ description: "", required: false }) + @IsString() + @IsOptional() + end_date?: string } @Controller() @@ -186,8 +201,8 @@ export class AppController { @Get("/visitors") @ApiBearerAuth() - async get(@Query() query: QueryVisitorDto, @Req() req: any) { - console.log("req", req.headers) + async get(@Query() query_data: QueryVisitorDto, @Req() req: any) { + // console.log("req", req.headers) if (!req.headers.authorization) { throw new BadRequestException("无权限") } @@ -203,18 +218,47 @@ export class AppController { // console.log(e) throw new BadRequestException("无权限, 请联系管理员") } - const [list, count] = await this.nodeVisitorRepository.findAndCount({ - skip: query.skip, - take: query.take, - order: { - created_date: "DESC" - } - }) + const where: any = {}; + if (query_data.start_date) { + where.start_date = query_data.start_date + } + if (query_data.end_date) { + where.end_date = query_data.end_date + } + const query = this.nodeVisitorRepository.createQueryBuilder('node-visitor'); + query.where(where); + // if (organization_name) { + // query + // .leftJoin(OrganizationEntity, 'organization', `organization.id = bill.organization_id`) + // .andWhere(`organization.full_name like "%${organization_name}%"`) + // } + if (query_data.search) { + const string = `%${query_data.search}%`; + const fields = ['applicant', 'applicant_department', 'code', 'visitor_unit', 'plate_no', 'visited_staff', 'visited_department']; + const searchString = fields.join(' like :search OR node-visitor.'); + query.where(`node-visitor.${searchString} like :search`, { + search: string, + }); + } + const order_key = 'node-visitor.created_date'; + let order_value: any = 'DESC'; + const [list, count] = await query + .skip(query_data.skip) + .take(query_data.take) + .orderBy(order_key, order_value) + .getManyAndCount(); + // const [list, count] = await this.nodeVisitorRepository.findAndCount({ + // skip: query.skip, + // take: query.take, + // order: { + // created_date: "DESC" + // } + // }) const new_list = await bluebird.map(list, async (item) => { const visitor_list = await this.nodeOtherVisitorRepository.find({ where: { node_visitor_id: item.id }, order: { - created_date: "ASC" + created_date: "DESC" } }) return { @@ -270,6 +314,7 @@ export class AppController { new_node_other_visitor.nationality_type = item.nationality_type; new_node_other_visitor.nationality = item.nationality; new_node_other_visitor.node_visitor_id = result.id; + new_node_other_visitor.id_type = item.id_type; await transactionalEntityManager.save(new_node_other_visitor); }) diff --git a/src/node-other-visitor.entity.ts b/src/node-other-visitor.entity.ts index bc00122..218a072 100644 --- a/src/node-other-visitor.entity.ts +++ b/src/node-other-visitor.entity.ts @@ -14,6 +14,10 @@ export class NodeOtherVisitorEntity extends Base { @Column({ length: 150, nullable: true, type: 'char' }) public identity_card_no: string; + @ApiProperty({ description: "证件类型" }) + @Column({ length: 150, nullable: true, type: 'char' }) + public id_type: string; + @ApiProperty({ description: "国籍(中国/其他国籍)" }) @Column({ length: 150, nullable: true, type: 'char' }) public nationality_type: string; diff --git a/src/node-visitor.entity.ts b/src/node-visitor.entity.ts index 3d757a6..e2e3266 100644 --- a/src/node-visitor.entity.ts +++ b/src/node-visitor.entity.ts @@ -63,7 +63,7 @@ export class NodeVisitorEntity extends Base { @Column({ length: 150, nullable: true, type: 'char' }) public visited_department: string; - @ApiProperty({ description: "被访部门" }) + @ApiProperty({ description: "" }) @Column({ length: 150, nullable: true, type: 'char' }) public purpose: string; @@ -78,5 +78,5 @@ export class NodeVisitorEntity extends Base { @ApiProperty({ description: "访客是否有可能接触受控设备" }) @Column({ nullable: true }) - public may_access_sensitive_info: boolean; + public may_access_sensitive_info: string; }