变频器集成以及增加点动控制(0209)

This commit is contained in:
2026-02-09 11:36:37 +08:00
parent 88dfc53b9d
commit d6ad01274a
45 changed files with 7161 additions and 1578 deletions

View File

@ -3,12 +3,11 @@
# # 添加项目根目录到Python路径
# sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
from dataclasses import fields
from typing import List, Optional, Dict, Any
from datetime import datetime
from .models import ArtifactInfoModel, PDRecordModel
from .dals import ArtifactDal, PDRecordDal
from busisness.models import ArtifactInfoModel, PDRecordModel
from busisness.dals import ArtifactDal, PDRecordDal
class ArtifactBll:
@ -26,37 +25,54 @@ class ArtifactBll:
"""更新管片任务状态"""
return self.dal.update_artifact(artifact_id, {"Status": status})
def finish_artifact_task(self, artifact_id: str,beton_volume) -> bool:
def start_produce(self, code: str) -> bool:
"""开始管片生产"""
return self.dal.update_by_modulecode(code, {'Status': 2,'BeginTime':datetime.now()})
def finish_produce(self, code: str,weight:float) -> bool:
"""完成管片生产"""
return self.dal.update_by_modulecode(code, {'Status': 3,'EndTime':datetime.now(),'FBetonVolume':weight})
def finish_artifact_task(self, artifact_id: str,beton_volume:float) -> bool:
"""完成管片任务"""
return self.dal.update_artifact(artifact_id, {"Status": 3,"BetonVolume":beton_volume,"EndTime":datetime.now()})
def insert_artifact_task(self,model:ArtifactInfoModel) -> bool:
"""插入管片任务"""
if self.dal.exists_by_id(model.ArtifactID):
return False
return self.dal.insert_artifact({
"ArtifactID": model.ArtifactID,
"ArtifactActionID": model.ArtifactActionID,
"ArtifactIDVice1": model.ArtifactIDVice1,
"ProduceRingNumber": model.ProduceRingNumber,
"MouldCode": model.MouldCode,
"SkeletonID": model.SkeletonID,
"RingTypeCode": model.RingTypeCode,
"SizeSpecification": model.SizeSpecification,
"BuriedDepth": model.BuriedDepth,
"BlockNumber": model.BlockNumber,
"BetonVolume": model.BetonVolume,
"BetonTaskID": model.BetonTaskID,
"HoleRingMarking": model.HoleRingMarking,
"GroutingPipeMarking": model.GroutingPipeMarking,
"PolypropyleneFiberMarking": model.PolypropyleneFiberMarking,
"PStatus":1,
"Status": 2,
"Source": model.Source,
"BeginTime": model.BeginTime,
"OptTime": datetime.now(),
})
if self.dal.get_artifactid(model.MouldCode):
return False
return self.dal.insert_artifact(model)
def save_artifact_task(self,model:ArtifactInfoModel) -> int:
"""保存管片任务(存在ModuleCode更新不存在插入存在ArtifactID不处理)"""
_artifactid=self.dal.get_artifactid(model.MouldCode)
if _artifactid is None:
return self.dal.insert_artifact(model)
else:
if not _artifactid and model.ArtifactID:
update_dict={
'ArtifactID':model.ArtifactID,
'ArtifactActionID':model.ArtifactActionID,
'ArtifactIDVice1':model.ArtifactIDVice1,
'ProduceRingNumber':model.ProduceRingNumber,
'SkeletonID':model.SkeletonID,
'RingTypeCode':model.RingTypeCode,
'SizeSpecification':model.SizeSpecification,
'BuriedDepth':model.BuriedDepth,
'BlockNumber':model.BlockNumber,
'HoleRingMarking':model.HoleRingMarking,
'GroutingPipeMarking':model.GroutingPipeMarking,
'PolypropyleneFiberMarking':model.PolypropyleneFiberMarking,
'BetonVolume':model.BetonVolume,
'BetonTaskID':model.BetonTaskID,
}
return self.dal.update_by_modulecode(model.MouldCode, update_dict)
return 1
def insert_artifact_bycode(self,model: dict) -> bool:
@ -93,24 +109,77 @@ class PDRecordBll:
"""获取PD官片任务数据"""
return self.dal.get_top_pd(5, "ID desc")
def get_last_pds(self,mould_code:str) -> List[PDRecordModel]:
"""获取当前浇筑的后三片的派据(有可能其中一项为空,但需要保证第一条有记录)"""
return self.dal.get_last_pds(1,mould_code)
def insert_PD_record(self,model:PDRecordModel) -> bool:
"""保存PD官片任务(存在更新,不存在插入)"""
if self.dal.exists_artifactid(model.ArtifactActionID):
return False
# return self.update_PD_record(model.ArtifactActionID,{"Status": model.Status,"OptTime": datetime.now()})
else:
return self.dal.insert_PD_record(model)
def finish_pd(self, code: str,status:int) -> bool:
"""完成管片生产"""
return self.dal.update_by_modulecode(code, {'Status': status,'EndTime':datetime.now()})
def start_pd(self, code: str,volumn:float) -> bool:
"""开始管片生产"""
return self.dal.update_by_modulecode(code, {'Status': 2,'OptTime':datetime.now(),'FBetonVolume':volumn})
def update_PD_record(self,artifact_action_id: int, update_fields: dict) -> bool:
"""更新PD官片任务状态"""
return self.dal.update_pd(artifact_action_id, update_fields)
def save_PD_record(self,model:PDRecordModel) -> int:
"""保存PD官片任务(存在ModuleCode更新不存在插入存在ArtifactID不处理)"""
_artifactid=self.dal.get_artifactid(model.MouldCode)
if _artifactid is None:
return self.dal.insert_PD_record(model)
else:
if not _artifactid and model.ArtifactID:
update_dict={
'ArtifactID':model.ArtifactID,
'ArtifactActionID':model.ArtifactActionID,
'TaskID':model.TaskID,
'ProjectName':model.ProjectName,
'ProduceMixID':model.ProduceMixID,
'BetonVolume':model.BetonVolume,
'BetonGrade':model.BetonGrade,
'BuriedDepth':model.BuriedDepth,
'SkeletonID':model.SkeletonID,
'RingTypeCode':model.RingTypeCode,
'SizeSpecification':model.SizeSpecification,
'BlockNumber':model.BlockNumber,
'BetonVolume':model.BetonVolume,
'PlannedVolume':model.PlannedVolume
}
return self.dal.update_by_modulecode(model.MouldCode, update_dict)
return 1
if __name__ == "__main__":
artifact_dal = ArtifactBll()
# artifact_dal = ArtifactBll()
artifacts = artifact_dal.get_artifact_task()
# artifacts = artifact_dal.get_artifact_task()
print("\n打印artifacts数据:")
for i, artifact in enumerate(artifacts):
artifact_id = artifact.ArtifactID
# 如果是数据类对象,转换为字典输出
print(artifact.MouldCode)
if hasattr(artifact, "__dataclass_fields__"):
print(f"{i+1}条: {artifact.__dict__}")
else:
print(f"{i+1}条: {artifact}")
# print("\n打印artifacts数据:")
# for i, artifact in enumerate(artifacts):
# artifact_id = artifact.ArtifactID
# # 如果是数据类对象,转换为字典输出
# print(artifact.MouldCode)
# if hasattr(artifact, "__dataclass_fields__"):
# print(f"第{i+1}条: {artifact.__dict__}")
# else:
# print(f"第{i+1}条: {artifact}")
pdrecord_dal = PDRecordBll()
pdrecords = pdrecord_dal.get_PD_record()
pdrecords = pdrecord_dal.get_last_pds("SHR2B2-11")
# print(pdrecords[0].MouldCode)
print("\n打印pdrecords数据:")
for i, record in enumerate(pdrecords):