260316:1117 20260316:1100 Refactor UUID
Build and Deploy / deploy (push) Successful in 9m24s

This commit is contained in:
admin
2026-03-16 11:17:15 +07:00
parent b93cd91325
commit c5c3ed9016
92 changed files with 1726 additions and 620 deletions
@@ -22,6 +22,7 @@ import { RbacGuard } from '../../common/guards/rbac.guard';
import { RequirePermission } from '../../common/decorators/require-permission.decorator';
import { CurrentUser } from '../../common/decorators/current-user.decorator';
import { Audit } from '../../common/decorators/audit.decorator'; // Import
import { ParseUuidPipe } from '../../common/pipes/parse-uuid.pipe';
@ApiTags('Circulations')
@ApiBearerAuth()
@@ -45,11 +46,11 @@ export class CirculationController {
return this.circulationService.findAll(searchDto, user);
}
@Get(':id')
@Get(':uuid')
@ApiOperation({ summary: 'Get circulation details' })
@RequirePermission('document.view')
findOne(@Param('id', ParseIntPipe) id: number) {
return this.circulationService.findOne(id);
findOne(@Param('uuid', ParseUuidPipe) uuid: string) {
return this.circulationService.findOneByUuid(uuid);
}
@Patch('routings/:id')
@@ -58,7 +59,7 @@ export class CirculationController {
updateRouting(
@Param('id', ParseIntPipe) id: number,
@Body() updateDto: UpdateCirculationRoutingDto,
@CurrentUser() user: User,
@CurrentUser() user: User
) {
return this.circulationService.updateRoutingStatus(id, updateDto, user);
}
@@ -113,6 +113,17 @@ export class CirculationService {
return circulation;
}
async findOneByUuid(uuid: string) {
const circulation = await this.circulationRepo.findOne({
where: { uuid },
relations: ['routings', 'routings.assignee', 'correspondence', 'creator'],
order: { routings: { stepNumber: 'ASC' } },
});
if (!circulation)
throw new NotFoundException(`Circulation UUID ${uuid} not found`);
return circulation;
}
// ✅ Logic อัปเดตสถานะและปิดงาน
async updateRoutingStatus(
routingId: number,
@@ -13,10 +13,13 @@ import { Organization } from '../../organization/entities/organization.entity';
import { User } from '../../user/entities/user.entity';
import { CirculationStatusCode } from './circulation-status-code.entity';
import { CirculationRouting } from './circulation-routing.entity';
import { UuidBaseEntity } from '../../../common/entities/uuid-base.entity';
import { Exclude } from 'class-transformer';
@Entity('circulations')
export class Circulation {
export class Circulation extends UuidBaseEntity {
@PrimaryGeneratedColumn()
@Exclude()
id!: number;
@Column({ name: 'correspondence_id', nullable: true })