21 lines
		
	
	
		
			811 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			811 B
		
	
	
	
		
			Python
		
	
	
	
| from apps.mtm.models import Goal, Mgroup
 | |
| from django.core.cache import cache
 | |
| from django.db.models import Q
 | |
| 
 | |
| def get_mgroup_goals(mgroupId, year, reload=False):
 | |
|     """
 | |
|     获取工段某年的全部目标值, 以字典形式返回, 带缓存
 | |
|     """
 | |
|     goals = Goal.objects.filter(Q(mgroup__id=mgroupId)|Q(mgroup__name=mgroupId), year=year)
 | |
|     key = f'mgroup_{mgroupId}_goals'
 | |
|     if reload is False:
 | |
|         mgroup_goals = cache.get(key, None)
 | |
|         if mgroup_goals is not None:
 | |
|             return mgroup_goals
 | |
|     mgroup_goals = {}
 | |
|     for goal in goals:
 | |
|         mgroup_goals[f'{goal.goal_cate.code}_year'] = goal.goal_val
 | |
|         for i in range(12):
 | |
|             mgroup_goals[f'{goal.goal_cate.code}_{i+1}'] = getattr(goal, f'goal_val_{i+1}')
 | |
|     cache.set(key, mgroup_goals, 10)
 | |
|     return mgroup_goals |