feat: 返回数据自动约成2位小数

This commit is contained in:
caoqianming 2023-08-21 14:08:47 +08:00
parent b31d3937f8
commit a8160867ae
5 changed files with 60 additions and 33 deletions

View File

@ -171,9 +171,14 @@ class CorrectViewSet(CustomGenericViewSet):
矫正质检统计数据
"""
from apps.qm.models import QuaStat
for item in QuaStat.objects.exclude(sflog=None):
item.shift = item.sflog.shift
from apps.enm.models import EnStat
enstats = EnStat.objects.exclude(type='hour_s')
for item in enstats:
qua_data = item.qua_data
if qua_data:
for x in qua_data:
x['rate_pass'] = x['rate_pass']*100
item.qua_data = qua_data
item.save()
return Response()

View File

@ -98,6 +98,26 @@ class EnStatSerializer(CustomModelSerializer):
class Meta:
model = EnStat
fields = '__all__'
def to_representation(self, instance):
ret = super().to_representation(instance)
my_dic_keys = list(ret.keys())
for key in my_dic_keys:
ret_one_val = ret[key]
if isinstance(ret_one_val, float):
ret[key] = "{:.2f}".format(round(ret_one_val, 2))
qua_data = ret['qua_data']
equip_elec_data = ret['equip_elec_data']
if qua_data:
for item in qua_data:
ret[f'{item["material_name"]}_{item["testitem_name"]}_rate_pass'] = "{:.2f}".format(round(item['rate_pass'], 4))
if equip_elec_data:
for item in equip_elec_data:
val = item.get('consume_unit', None)
if val:
val = "{:.2f}".format(round(val, 2))
ret[f'{item["equipment_name"]}_consume_unit'] = val
return ret
class EnStat2Serializer(CustomModelSerializer):
class Meta:

View File

@ -69,32 +69,6 @@ class EnStatViewSet(ListModelMixin, CustomGenericViewSet):
filterset_class = EnStatFilter
ordering = ['mgroup__sort', 'year_s', 'month_s', 'day_s', 'hour']
def handle_data(self, data):
for ind, val in enumerate(data):
# imaterial_data = i['imaterial_data']
# other_cost_data = i['other_cost_data']
qua_data = val['qua_data']
equip_elec_data = val['equip_elec_data']
if qua_data:
for item in qua_data:
val[f'{item["material_name"]}_{item["testitem_name"]}_rate_pass'] = item['rate_pass']
if equip_elec_data:
for item in equip_elec_data:
val[f'{item["equipment_name"]}_consume_unit'] = item.get('consume_unit', None)
return data
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
data = self.handle_data(serializer.data)
return self.get_paginated_response(data)
serializer = self.get_serializer(queryset, many=True)
data = self.handle_data(serializer.data)
return Response(data)
class EnStat2ViewSet(ListModelMixin, CustomGenericViewSet):
"""

View File

@ -99,7 +99,7 @@ qmt."name" AS testitem_name,
CAST(SUM(num_test * val_avg) AS FLOAT)/NULLIF(SUM(num_test), 0) AS val_avg,
SUM(num_test) AS num_test,
SUM(num_ok) AS num_ok,
CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
100 * CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
FROM qm_quastat qmq
LEFT JOIN wpm_sflog sflog on sflog.id = qmq.sflog_id
LEFT JOIN mtm_mgroup mgroup on mgroup.id = sflog.mgroup_id
@ -130,7 +130,7 @@ ORDER BY mgroup.sort, mtma.sort, qmt.sort
CAST(SUM(num_test * val_avg) AS FLOAT)/NULLIF(SUM(num_test), 0) AS val_avg,
SUM(num_test) AS num_test,
SUM(num_ok) AS num_ok,
CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
100 * CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
FROM qm_quastat qmq
LEFT JOIN wpm_sflog sflog on sflog.id = qmq.sflog_id
LEFT JOIN mtm_team team on team.id = sflog.team_id
@ -160,7 +160,7 @@ qmt."name" AS testitem_name,
CAST(SUM(num_test * val_avg) AS FLOAT)/NULLIF(SUM(num_test), 0) AS val_avg,
SUM(num_test) AS num_test,
SUM(num_ok) AS num_ok,
CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
100 * CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
FROM qm_quastat qmq
LEFT JOIN wpm_sflog sflog on sflog.id = qmq.sflog_id
LEFT JOIN mtm_mgroup mgroup on mgroup.id = sflog.mgroup_id
@ -190,7 +190,7 @@ qmt."name" AS testitem_name,
CAST(SUM(num_test * val_avg) AS FLOAT)/NULLIF(SUM(num_test), 0) AS val_avg,
SUM(num_test) AS num_test,
SUM(num_ok) AS num_ok,
CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
100 * CAST(SUM(num_ok) AS FLOAT)/NULLIF(SUM(num_test),0) AS rate_pass
FROM qm_quastat qmq
LEFT JOIN wpm_sflog sflog on sflog.id = qmq.sflog_id
LEFT JOIN mtm_mgroup mgroup on mgroup.id = sflog.mgroup_id

View File

@ -0,0 +1,28 @@
# 能管项目开发周报
## 项目开始至2023-07-14
### 工作内容
整体及后端
- 完成需求整理与确认
- 完成基础模块的搭建,包括用户、部门、角色、权限、运维、工作流等一系列模块
- 完成报表模块基础功能,支持自定义查询并录入相应报表语句
- 完成生产管理模块功能,定义物料、班次、班组、工段、目标并实现相应接口
- 开发设备管理模块,完成设备列表等接口
- 完成质检模块,定义检验项目,录入检验结果,质检报表数据计算
- 开发生产执行模块,完成值班记录生成及初始化质检录入等
- 开发能源管理模块(核心模块),完成定义采集点位,创建点位原始记录表和相应统计表, 编写相应的计算和定时业务逻辑
- 开发财务成本模块,完成定义费用类型以及相应的费用数据和物料成本数据接口
前端页面
三维建模
### 下一步工作内容
- 继续开发相应模块
- 模拟电表/水表等数据回传,验证程序可靠性
- 梳理DCS点位的处理逻辑
- 继续三维模型的建模工作