职责为True的员工未被正确添加到筛选结果列表的问题求助
职责为True的员工未被正确添加到筛选结果列表的问题求助
大家好,我现在遇到一个头疼的问题:我写了个函数想要筛选出Responsibilities(职责)为True的员工,但运行后发现明明日志里已经检测到符合条件的记录,结果列表却始终是空的,符合要求的员工根本没被加进去。
先贴出我的相关代码:
def employees_by_responsibilities(employees: list[schemas.Employee], responsibilities: bool = True, by_date: datetime.date | None = None) -> list[schemas.Employee]: result: list[schemas.Employee] = [] print(f"List:{result}") fact_employment = [] for emp in employees: for e in emp.fact_employment_history: fact_employment.append(e) for emp in employees: if by_date: employments = check_employment_by_date(by_date, fact_employment) print(f"Employments check by data: {employments}") if any(e.Responsibilities == responsibilities for e in employments): result.append(emp) print(f"argument function: {responsibilities}") print(f"e.Responsibilities: {[e.Responsibilities for e in employments]}") return result def check_employment_by_date(by_date: datetime.date, fact_employment_history: list[schemas.Employment]): return [ e for e in fact_employment_history if (e.EmploymentStart or datetime.date(1000, 1, 1)) <= by_date and (not e.EmploymentEnd or e.EmploymentEnd >= by_date) ]
下面是示例的员工雇佣数据:
Id EmployeeId EmploymentStart EmploymentEnd Fired PositionId Responsibilities PositionStart 866 20960 2024-05-01 2024-05-17 1 638893 1 NULL 884 20960 2024-05-20 NULL 0 638893 0 NULL
运行后的日志输出:
List:[] Employments check by data: [Employment(Company=None, EmploymentStart=datetime.date(2024, 5, 1), EmploymentEnd=datetime.date(2024, 5, 17), Fired=True, Position=Dictionary(Name='Головний бухгалтер', Description='1231', SpecId=114, id=638893), IsPartTime=None, Responsibilities=True, TimeoffBalances=[], c_FreeTimeoffCount=None, Documents=[], id=866)] argument function: True e.Responsibilities: [True] List:[]
我的需求很明确:根据数据库里的员工雇佣记录,筛选出指定日期(如果传入by_date)下职责为True的员工,职责为False的员工直接排除。可现在明明日志都显示找到了符合条件的记录,结果列表却还是空的,实在摸不着头脑,希望大家能帮我排查一下问题出在哪!
备注:内容来源于stack exchange,提问作者froozy3
相关产品推荐
相关产品推荐

