feat: mloguser添加字段
This commit is contained in:
parent
a3416cfc0d
commit
5ea7980a1b
|
@ -0,0 +1,25 @@
|
||||||
|
# Generated by Django 3.2.12 on 2025-10-20 02:09
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('em', '0022_equipment_cd_req_addr'),
|
||||||
|
('wpm', '0123_mlogbdefect_count_has'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='mloguser',
|
||||||
|
name='equipment',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mloguser_equipment', to='em.equipment', verbose_name='生产设备'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='mloguser',
|
||||||
|
name='work_start_time',
|
||||||
|
field=models.DateTimeField(blank=True, null=True, verbose_name='生产开始时间'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -368,6 +368,9 @@ class MlogUser(BaseModel):
|
||||||
mlog = models.ForeignKey(Mlog, verbose_name='关联日志', on_delete=models.CASCADE)
|
mlog = models.ForeignKey(Mlog, verbose_name='关联日志', on_delete=models.CASCADE)
|
||||||
handle_user = models.ForeignKey(User, verbose_name='操作人', on_delete=models.CASCADE)
|
handle_user = models.ForeignKey(User, verbose_name='操作人', on_delete=models.CASCADE)
|
||||||
process = models.ForeignKey(Process, verbose_name='子工序', on_delete=models.CASCADE)
|
process = models.ForeignKey(Process, verbose_name='子工序', on_delete=models.CASCADE)
|
||||||
|
work_start_time = models.DateTimeField('生产开始时间', null=True, blank=True)
|
||||||
|
equipment = models.ForeignKey(
|
||||||
|
Equipment, verbose_name='生产设备', on_delete=models.CASCADE, null=True, blank=True, related_name='mloguser_equipment')
|
||||||
shift = models.ForeignKey(Shift, verbose_name='关联班次', on_delete=models.CASCADE)
|
shift = models.ForeignKey(Shift, verbose_name='关联班次', on_delete=models.CASCADE)
|
||||||
handle_date = models.DateField('操作日期')
|
handle_date = models.DateField('操作日期')
|
||||||
|
|
||||||
|
|
|
@ -1492,10 +1492,17 @@ class MlogUserSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MlogUser
|
model = MlogUser
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
read_only_fields = EXCLUDE_FIELDS_BASE + ["shift", "handle_date"]
|
||||||
|
extra_kwargs = {
|
||||||
|
"work_start_time": {"required": True}
|
||||||
|
}
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
mlog:Mlog = validated_data["mlog"]
|
mlog:Mlog = validated_data["mlog"]
|
||||||
|
work_start_time:datetime = validated_data["work_start_time"]
|
||||||
|
if mlog.work_start_time < mlog.work_start_time:
|
||||||
|
raise ParseError("操作时间不能早于日志开始时间")
|
||||||
|
validated_data["handle_date"], validated_data["shift"] = mlog.mgroup.get_shift(work_start_time)
|
||||||
if mlog.submit_time is not None:
|
if mlog.submit_time is not None:
|
||||||
raise ParseError("该日志已提交")
|
raise ParseError("该日志已提交")
|
||||||
process:Process = validated_data["process"]
|
process:Process = validated_data["process"]
|
||||||
|
|
|
@ -11,7 +11,7 @@ from apps.system.models import User
|
||||||
from apps.pm.models import Mtask
|
from apps.pm.models import Mtask
|
||||||
from apps.mtm.models import Mgroup, Shift, Material, Route, RoutePack, Team, Srule
|
from apps.mtm.models import Mgroup, Shift, Material, Route, RoutePack, Team, Srule
|
||||||
|
|
||||||
from .models import SfLog, WMaterial, Mlog, Mlogb, Mlogbw, Handover, Handoverb, Handoverbw, MlogbDefect, BatchLog, BatchSt
|
from .models import SfLog, WMaterial, Mlog, Mlogb, Mlogbw, Handover, Handoverb, Handoverbw, MlogbDefect, BatchLog, BatchSt, MlogUser
|
||||||
from apps.mtm.services_2 import cal_material_count
|
from apps.mtm.services_2 import cal_material_count
|
||||||
from apps.wf.models import Ticket
|
from apps.wf.models import Ticket
|
||||||
from apps.wf.services import WfService
|
from apps.wf.services import WfService
|
||||||
|
@ -1026,6 +1026,10 @@ def mlog_submit_validate(ins: Mlog):
|
||||||
raise ParseError('该日志未指定消耗!')
|
raise ParseError('该日志未指定消耗!')
|
||||||
if Mlogb.objects.filter(material_out__isnull=False, count_real=0, mlog=ins).exists():
|
if Mlogb.objects.filter(material_out__isnull=False, count_real=0, mlog=ins).exists():
|
||||||
raise ParseError('产出数量不能为0!')
|
raise ParseError('产出数量不能为0!')
|
||||||
|
if ins.is_fix is False and ins.route:
|
||||||
|
process = ins.route.process
|
||||||
|
if Process.objects.filter(parent=process).exists() and not MlogUser.objects.filter(mlog=ins).exists():
|
||||||
|
raise ParseError('该日志子工序信息未完善!')
|
||||||
|
|
||||||
def bind_mlog(ticket: Ticket, transition, new_ticket_data: dict):
|
def bind_mlog(ticket: Ticket, transition, new_ticket_data: dict):
|
||||||
ins = Mlog.objects.get(id=new_ticket_data['t_id'])
|
ins = Mlog.objects.get(id=new_ticket_data['t_id'])
|
||||||
|
|
Loading…
Reference in New Issue