Compare commits
2 Commits
c08b220d17
...
1c203325fc
| Author | SHA1 | Date |
|---|---|---|
|
|
1c203325fc | |
|
|
3561a50647 |
|
|
@ -177,6 +177,8 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
process_cate = serializers.CharField(source='process.cate', read_only=True)
|
process_cate = serializers.CharField(source='process.cate', read_only=True)
|
||||||
material_in_name = serializers.StringRelatedField(
|
material_in_name = serializers.StringRelatedField(
|
||||||
source='material_in', read_only=True)
|
source='material_in', read_only=True)
|
||||||
|
material_in_type = serializers.CharField(
|
||||||
|
source='material_in.type', read_only=True)
|
||||||
material_out_name = serializers.StringRelatedField(
|
material_out_name = serializers.StringRelatedField(
|
||||||
source='material_out', read_only=True)
|
source='material_out', read_only=True)
|
||||||
material_out_type = serializers.CharField(
|
material_out_type = serializers.CharField(
|
||||||
|
|
@ -268,6 +270,8 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
# if material and process and Route.objects.filter(material=material, process=process).exists():
|
# if material and process and Route.objects.filter(material=material, process=process).exists():
|
||||||
# raise ValidationError('已选择该工序!!')
|
# raise ValidationError('已选择该工序!!')
|
||||||
|
|
||||||
|
if not validated_data.get('material_out') and not validated_data.get('material'):
|
||||||
|
raise ParseError('未指定输出物料,且工艺包未设置产品无法自动生成;请指定输出物料,或先在工艺包基本信息中选择产品')
|
||||||
instance:Route = super().create(validated_data)
|
instance:Route = super().create(validated_data)
|
||||||
material_out = instance.material_out
|
material_out = instance.material_out
|
||||||
if material_out:
|
if material_out:
|
||||||
|
|
@ -303,6 +307,8 @@ class RouteSerializer(CustomModelSerializer):
|
||||||
if material_out_tracking is None:
|
if material_out_tracking is None:
|
||||||
material_out_tracking = Material.MA_TRACKING_BATCH
|
material_out_tracking = Material.MA_TRACKING_BATCH
|
||||||
|
|
||||||
|
if not validated_data.get('material_out', instance.material_out) and not instance.material:
|
||||||
|
raise ParseError('未指定输出物料,且工艺包未设置产品无法自动生成;请指定输出物料,或先在工艺包基本信息中选择产品')
|
||||||
instance = super().update(instance, validated_data)
|
instance = super().update(instance, validated_data)
|
||||||
material_out = instance.material_out
|
material_out = instance.material_out
|
||||||
if material_out:
|
if material_out:
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
## 3.1.2026072309
|
||||||
|
|
||||||
|
- feat: 新增功能
|
||||||
|
- 工艺路线Route创建/更新时未指定输出物料且工艺包无产品直接报错,不再静默生成残缺工序;补material_in_type字段供画布按物料真实类型着色 [caoqianming]
|
||||||
|
- 工艺路线新增validate接口,供拖拽画布实时校验DAG结构(不存盘,返回valid/error) [caoqianming]
|
||||||
|
- 物料新增入库检验方式test_mode_in(免检/必检,默认必检),生产领料检验卡点支持物料级免检,明细过滤器支持material__test_mode_in [caoqianming]
|
||||||
|
- other: 其他变更
|
||||||
|
- docs:新增优化算法切入点分析(排产/补货/合批/装箱等可优化环节盘点) [caoqianming]
|
||||||
## 3.1.2026071614
|
## 3.1.2026071614
|
||||||
|
|
||||||
- feat: 新增功能
|
- feat: 新增功能
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
|
||||||
ALLOWED_HOSTS = ['*']
|
ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
SYS_NAME = '星途工厂综合管理系统'
|
SYS_NAME = '星途工厂综合管理系统'
|
||||||
SYS_VERSION = '3.1.2026071614'
|
SYS_VERSION = '3.1.2026072309'
|
||||||
X_FRAME_OPTIONS = 'SAMEORIGIN'
|
X_FRAME_OPTIONS = 'SAMEORIGIN'
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue