This commit is contained in:
TianyangZhang 2026-03-13 16:59:13 +08:00
commit c5e545f5e5
5 changed files with 57 additions and 3 deletions

View File

@ -252,6 +252,7 @@ class ComplexQueryMixin:
queryset = self.get_queryset()
querys = vdata.get('querys', [])
annotate_field_list = vdata.get('annotate_field_list', [])
distinct = vdata.get('distinct', True)
if not querys:
new_qs = queryset
@ -274,6 +275,11 @@ class ComplexQueryMixin:
new_qs = new_qs | one_qs
except Exception as e:
raise ParseError(str(e))
# 反向关联(右到左)查询容易因 JOIN 膨胀产生重复行,这里按主键回查去重
if distinct:
pk_name = queryset.model._meta.pk.attname
new_qs = queryset.filter(**{f"{pk_name}__in": new_qs.values(pk_name)})
if annotate_field_list:
annotate_dict = getattr(self, "annotate_dict", {})

View File

@ -83,6 +83,7 @@ class ComplexSerializer(serializers.Serializer):
page = serializers.IntegerField(min_value=0, required=False)
page_size = serializers.IntegerField(min_value=1, required=False)
ordering = serializers.CharField(required=False)
distinct = serializers.BooleanField(required=False, default=True, label="是否按主键去重")
querys = serializers.ListField(child=QuerySerializer(
many=True), label="查询列表", required=False)
annotate_field_list = serializers.ListField(child=serializers.CharField(), label="RawSQL字段列表", required=False)

View File

@ -1,3 +1,50 @@
## 3.1.2026031316
- feat: 新增功能
- 删除-ichat [TianyangZhang]
- mpr-物资管理模块(申购单、入库单、物料库存、领用记录) [TianyangZhang]
- hrm-人员合同变更 [TianyangZhang]
- hrm-migration 修改迁移文件 [TianyangZhang]
- qctmat create update 校验唯一 [caoqianming]
- gx-hrm-employee 人员导入功能 [TianyangZhang]
- hrm-views 修改employee 人员导入 [TianyangZhang]
- hrm-employee 增加人员导入功能 [TianyangZhang]
- fmlog返回route_material_in [caoqianming]
- 加工前不良当合格品处理 [caoqianming]
- hrm - 修改 人员调岗后更新部门和岗位 [TianyangZhang]
- 人员调岗申请 修改 [TianyangZhang]
- hrm-新增人员岗位调动 [TianyangZhang]
- wmaterial根据current_merged查询3 [caoqianming]
- wmaterial根据current_merged查询2 [caoqianming]
- wmaterial根据current_merged查询 [caoqianming]
- handoverb添加oinfo_json字段 [caoqianming]
- base user增加has_perm筛选条件 [caoqianming]
- base 升级后同步数据库 [caoqianming]
- 光子添加工段数据统计 [caoqianming]
- with_source_near筛选体现在swagger里 [caoqianming]
- base 调整asgi导入以保证正常启动 [caoqianming]
- wpr 返回wpr_from_ [caoqianming]
- base cquery支持add_info_for_list [caoqianming]
- wpr 添加筛选条件wpr_from [caoqianming]
- wpr_bxerp优化 [caoqianming]
- 未有ftest的也触发单个统计 [caoqianming]
- 交接记录子项需保证工段/车间一致2 [caoqianming]
- 交接记录子项需保证工段/车间一致 [caoqianming]
- mlog 并发优化 [caoqianming]
- handover可以查看仅交接到车间的记录 [caoqianming]
- handover_revert 并发优化 [caoqianming]
- handover_submit 并发优化2 [caoqianming]
- handover_submit 并发优化 [caoqianming]
- base 添加locked_get_or_create [caoqianming]
- 查询-n批次从正则改用like以优化性能 [caoqianming]
- 固定依赖包 [caoqianming]
- 升级依赖包 [caoqianming]
- fix: 问题修复
- avoid duplicate rows in complex reverse queries [caoqianming]
- base user_exist完善 [caoqianming]
- batchst支持返回source_near修复 [caoqianming]
- base complexquerymixin支持add_info_for_list [caoqianming]
- base locked_get_or_create优化 [caoqianming]
- mlog并发优化的bug [caoqianming]
## 3.0.2026010716
- feat: 新增功能
- get_shift需要报错 [caoqianming]

View File

@ -35,7 +35,7 @@ sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
ALLOWED_HOSTS = ['*']
SYS_NAME = '星途工厂综合管理系统'
SYS_VERSION = '3.0.2026010716'
SYS_VERSION = '3.1.2026031316'
X_FRAME_OPTIONS = 'SAMEORIGIN'
# Application definition

View File

@ -1,7 +1,7 @@
#!/bin/bash
# 设置默认版本号 (格式: 3.0.YYYYMMDDHH)
DEFAULT_VERSION="3.0.$(date '+%Y%m%d%H')"
# 设置默认版本号 (格式: 3.1.YYYYMMDDHH)
DEFAULT_VERSION="3.1.$(date '+%Y%m%d%H')"
# 获取参数 (起始tag)
TARGET_TAG="$1"