if objectType == 0:
# 获取部门目标数据
for item_one in result_details:
lineName_one = item_one['lineName']
for item_two in item_one['children']:
lineName_two = item_two['lineName']
for item_three in item_two['children']:
lineName_three = item_three['lineName']
departmentName = item_three['departmentName']
departmentId = item_three['departmentId']
for item_value in item_three['itemDTOList']:
if pageTimeType == 1:
if item_value['cycleType'] == 'YEAR':
# 上年达成
reachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, reachValue, '上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 年度目标
targetValue = item_value.get('targetValue', 0)
# 年度同比
reachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'HALF_YEAR' and item_value['cycleIndex'] == "1":
# H1上年达成
h1ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, h1ReachValue, 'H1上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# H1目标
H1_Value = item_value.get('targetValue', 0)
# H1目标同比
h1ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'HALF_YEAR' and item_value['cycleIndex'] == "2":
# H2上年达成
h2ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, h2ReachValue, 'H2上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# H2目标
h2Value = item_value.get('targetValue', 0)
# H2目标同比
h2ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'QUARTER' and item_value['cycleIndex'] == '1':
# Q1上年达成
Q1ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, Q1ReachValue, 'Q1上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# Q1目标
Q1Value = item_value.get('targetValue', 0)
# Q1目标同比
Q1ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'QUARTER' and item_value['cycleIndex'] == '2':
# Q2上年达成
Q2ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, Q2ReachValue, 'Q2上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# Q2目标
Q2Value = item_value.get('targetValue', 0)
# Q2目标同比
Q2ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'QUARTER' and item_value['cycleIndex'] == '3':
# Q3上年达成
Q3ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, Q3ReachValue, 'Q3上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# Q3目标同比
Q3ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
# Q3目标
Q3Value = item_value.get('targetValue', 0)
elif item_value['cycleType'] == 'QUARTER' and item_value['cycleIndex'] == '4':
# Q4上年达成
Q4ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, Q4ReachValue, 'Q4上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# Q4目标
Q4Value = item_value.get('targetValue', 0)
# Q4目标同比
Q4ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '1':
# 1月上年达成
ReachValue_1 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_1, '1月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 1月目标
Value_1 = item_value.get('targetValue', 0)
# 1月目标同比
ReachValueYoyRate_1 = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '2':
# 2月上年达成
ReachValue_2 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_2, '2月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 2月目标
Value_2 = item_value.get('targetValue', 0)
# 2月目标同比
ReachValueYoyRate_2 = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '3':
# 3月上年达成
ReachValue_3 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_3, '3月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 3月目标
Value_3 = item_value.get('targetValue', 0)
# 3月目标同比
ReachValueYoyRate_3 = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '4':
# 4月上年达成
ReachValue_4 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_4, '4月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 4月目标
Value_4 = item_value.get('targetValue', 0)
# 4月目标同比
ReachValueYoyRate_4 = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '5':
# 5月上年达成
ReachValue_5 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_5, '5月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 5月目标
Value_5 = item_value.get('targetValue', 0)
# 5月目标同比
ReachValueYoyRate_5 = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '6':
# 6月上年达成
ReachValue_6 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_6, '6月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 6月目标
Value_6 = item_value.get('targetValue', 0)
# 6月目标同比
ReachValueYoyRate_6 = item_value.get('reachValueYoyRate', 0)
else:
if item_value['cycleType'] == 'YEAR':
# 上年达成
reachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, reachValue, '上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# 年度目标
targetValue = item_value.get('targetValue', 0)
# 年度同比
reachValueYoyRate = item_value.get('reachValueYoyRate', 0)
# 最终年度目标
finalTargetValue = item_value.get('finalTargetValue', 0)
# 最终年度同比
finalReachValueYoyRate = item_value.get('finalReachValueYoyRate', 0)
elif item_value['cycleType'] == 'HALF_YEAR' and item_value['cycleIndex'] == "1":
# H1上年达成
h1ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, h1ReachValue, 'H1上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# H1目标
H1_Value = item_value.get('targetValue', 0)
# H1目标同比
h1ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
# H1达成
thisReachValue = item_value.get('thisReachValue', 0)
# H1达成同比
allThisReachValueCompareYoyRate = item_value.get('allThisReachValueCompareYoyRate', 0)
# H1达成差距
thisReachValueGap = item_value.get('thisReachValueGap')
elif item_value['cycleType'] == 'HALF_YEAR' and item_value['cycleIndex'] == "2":
# H2上年达成
h2ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, h2ReachValue, 'H2上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# H2目标
h2Value = item_value.get('targetValue', 0)
# H2目标同比
h2ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
h2Value = item_value.get('targetValue', 0)
h2ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
# H2最终目标
H2finalTargetValue = item_value.get('finalTargetValue', 0)
# try:
# # H2滚动目标
# rolledTargetValue = item_value.get('rolledTargetValue', 0)
# pari_difference(rolledTargetValue, targetValue, thisReachValue, lineName_one,
# 'H2滚动目标')
# except KeyError:
# logger.error(f'没有滚动目标条线id为{strategyId},部门id为{departmentId}')
elif item_value['cycleType'] == 'QUARTER' and item_value['cycleIndex'] == '3':
# Q3上年达成
Q3ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, Q3ReachValue, 'Q3上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# Q3目标同比
Q3ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
# Q3目标
Q3Value = item_value.get('finalTargetValue', 0)
elif item_value['cycleType'] == 'QUARTER' and item_value['cycleIndex'] == '4':
# Q4上年达成
Q4ReachValue = item_value.get('reachValue', 0)
Compared_achievement(departmentId, Q4ReachValue, 'Q4上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
# Q4目标
Q4Value = item_value.get('finalTargetValue', 0)
# Q4目标同比
Q4ReachValueYoyRate = item_value.get('reachValueYoyRate', 0)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '1':
MONTH_thisReachValue1 = item_value.get('thisReachValue', 0)
Compared_achievement(departmentId, MONTH_thisReachValue1, '1月达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '2':
MONTH_thisReachValue2 = item_value.get('thisReachValue', 0)
Compared_achievement(departmentId, MONTH_thisReachValue2, '2月达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '3':
MONTH_thisReachValue3 = item_value.get('thisReachValue', 0)
Compared_achievement(departmentId, MONTH_thisReachValue3, '3月达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '4':
MONTH_thisReachValue4 = item_value.get('thisReachValue', 0)
Compared_achievement(departmentId, MONTH_thisReachValue4, '4月达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '5':
MONTH_thisReachValue5 = item_value.get('thisReachValue', 0)
Compared_achievement(departmentId, MONTH_thisReachValue5, '5月达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '6':
MONTH_thisReachValue6 = item_value.get('thisReachValue', 0)
Compared_achievement(departmentId, MONTH_thisReachValue6, '6月达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '7':
# 7月目标同比
ReachValueYoyRate_7 = item_value.get('finalReachValueYoyRate', 0)
# 7月目标
Value_7 = item_value.get('finalTargetValue', 0)
# 7月上年达成
ReachValue_7 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_7, '7月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '8':
# 8月目标同比
ReachValueYoyRate_8 = item_value.get('finalReachValueYoyRate', 0)
# 8月目标
Value_8 = item_value.get('finalTargetValue', 0)
# 8月上年达成
ReachValue_8 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_8, '8月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '9':
# 9月目标同比
ReachValueYoyRate_9 = item_value.get('finalReachValueYoyRate', 0)
# 9月目标
Value_9 = item_value.get('finalTargetValue', 0)
# 9月上年达成
ReachValue_9 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_9, '9月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '10':
# 10月目标同比
ReachValueYoyRate_10 = item_value.get('finalReachValueYoyRate', 0)
# 10月目标
Value_10 = item_value.get('finalTargetValue', 0)
# 10月上年达成
ReachValue_10 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_10, '10月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '11':
# 11月目标同比
ReachValueYoyRate_11 = item_value.get('finalReachValueYoyRate', 0)
# 11月目标
Value_11 = item_value.get('finalTargetValue', 0)
# 11月上年达成
ReachValue_11 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_11, '11月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
elif item_value['cycleType'] == 'MONTH' and item_value['cycleIndex'] == '12':
# 12月目标同比
ReachValueYoyRate_12 = item_value.get('finalReachValueYoyRate', 0)
# 12月目标
Value_12 = item_value.get('finalTargetValue', 0)
# 12月上年达成
ReachValue_12 = item_value.get('reachValue', 0)
Compared_achievement(departmentId, ReachValue_12, '12月上年达成', lineName_one, time,
lineName_two=lineName_two,lineName_three=lineName_three)
if pageTimeType == 1:
lineName = lineName_one + '--' + lineName_two + '--' + lineName_three + '--' + departmentName
logger.info(f'开始计算{lineName}明细中数据'.center(100, '-'))
pari_sum(reachValue, h1ReachValue, h2ReachValue, lineName, '上年达成')
pari_sum(targetValue, H1_Value, h2Value, lineName, '年度目标')
pari_passu(reachValueYoyRate, targetValue, reachValue, lineName, '年度同比')
pari_passu(h1ReachValueYoyRate, H1_Value, h1ReachValue, lineName, 'H1目标同比')
pari_passu(h2ReachValueYoyRate, h2Value, h2ReachValue, lineName, 'H2目标同比')
pari_passu(Q1ReachValueYoyRate, Q1Value, Q1ReachValue, lineName, 'Q1目标同比')
pari_passu(ReachValueYoyRate_1, Value_1, ReachValue_1, lineName, '1月目标同比')
pari_passu(ReachValueYoyRate_2, Value_2, ReachValue_2, lineName, '2月目标同比')
pari_passu(ReachValueYoyRate_3, Value_3, ReachValue_3, lineName, '3月目标同比')
pari_passu(Q2ReachValueYoyRate, Q2Value, Q2ReachValue, lineName, 'Q2目标同比')
pari_passu(ReachValueYoyRate_4, Value_4, ReachValue_4, lineName, '4月目标同比')
pari_passu(ReachValueYoyRate_5, Value_5, ReachValue_5, lineName, '5月目标同比')
pari_passu(ReachValueYoyRate_6, Value_6, ReachValue_6, lineName, '6月目标同比')
pari_passu(Q3ReachValueYoyRate, Q3Value, Q3ReachValue, lineName, 'Q3目标同比')
pari_passu(Q4ReachValueYoyRate, Q4Value, Q4ReachValue, lineName, 'Q4目标同比')
# pari_difference(reachValueGap, H1reachValue, H1_Value, lineName_one, 'H1达成差距')
# pari_difference(rolledTargetValue, targetValue, H1reachValue, lineName_one, 'H2滚动目标')
# pari_difference(adjustedTargetValueGap, finalTargetValue, rolledTargetValue, lineName_one, 'H2调整差值')
Value3_sum = Value_1 + Value_2 + Value_3
Value6_sum = Value_4 + Value_5 + Value_6
if Q1Value != Value3_sum:
logger.error(
f'{lineName}--Q1目标1-3月之和--计算错误,错误值:{Q1Value},正确值:{Value3_sum}')
elif Q2Value != Value6_sum:
logger.error(
f'{lineName}--Q1目标1-3月之和--计算错误,错误值:{Q2Value},正确值:{Value6_sum}')
else:
lineName = lineName_one + '--' + lineName_two + '--' + lineName_three + '--' + departmentName
logger.info(f'开始计算下半年{lineName}数据'.center(100, '-'))
pari_sum(reachValue, h1ReachValue, h2ReachValue, lineName, '上年达成')
pari_sum(finalTargetValue, thisReachValue, H2finalTargetValue, lineName, '最终年度目标')
pari_passu(reachValueYoyRate, targetValue, reachValue, lineName, '年度同比')
pari_passu(finalReachValueYoyRate, finalTargetValue, reachValue, lineName, '最终年度同比')
pari_passu(h1ReachValueYoyRate, H1_Value, h1ReachValue, lineName, 'H1目标同比')
pari_passu(allThisReachValueCompareYoyRate, thisReachValue, h1ReachValue, lineName,
'H1达成同比')
pari_difference(thisReachValueGap, thisReachValue, H1_Value, lineName, 'H1达成差距')
pari_passu(h2ReachValueYoyRate, h2Value, h2ReachValue, lineName, 'H2目标同比')
pari_passu(Q3ReachValueYoyRate, Q3Value, Q3ReachValue, lineName, 'Q3目标同比')
pari_passu(ReachValueYoyRate_7, Value_7, ReachValue_7, lineName, '7月目标同比')
pari_passu(ReachValueYoyRate_8, Value_8, ReachValue_8, lineName, '8月目标同比')
pari_passu(ReachValueYoyRate_9, Value_9, ReachValue_9, lineName, '9月目标同比')
pari_passu(Q4ReachValueYoyRate, Q4Value, Q4ReachValue, lineName, 'Q4目标同比')
pari_passu(ReachValueYoyRate_10, Value_10, ReachValue_10, lineName, '10月目标同比')
pari_passu(ReachValueYoyRate_11, Value_11, ReachValue_11, lineName, '11月目标同比')
pari_passu(ReachValueYoyRate_12, Value_12, ReachValue_12, lineName, '12月目标同比')
Value9_sum = Value_7 + Value_8 + Value_9
Value12_sum = Value_10 + Value_11 + Value_12
if Q3Value != Value9_sum:
logger.error(
f'{lineName}--Q3目标7-9月之和--计算错误,错误值:{Q3Value},正确值:{Value9_sum}')
elif Q4Value != Value12_sum:
logger.error(
f'{lineName}--Q4目标10-12月之和--计算错误,错误值:{Q4Value},正确值:{Value12_sum}')这个循环套的太多了,我是否可以在for item_value in item_three['itemDTOList']:下面加线程处理
最新发布