105040 Update 将Service移动到WPFUI包中
This commit is contained in:
parent
c257842321
commit
32f3bc54b5
|
@ -0,0 +1,242 @@
|
|||
using Sinvo.EplanHpD.Plugin.Service.Model;
|
||||
using Sinvo.EplanHpD.Plugin.WPFUI.Enum;
|
||||
using Sinvo.EplanHpD.Plugin.WPFUI.Models;
|
||||
using Sinvo.EplanHpD.Plugin.WPFUI.ViewModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sinvo.EplanHpD.Plugin.Service
|
||||
{
|
||||
public class MotorLectotypeService
|
||||
{
|
||||
public void AddMotor(Motor motor)
|
||||
{
|
||||
DBHelper.DB.Insertable(motor).ExecuteCommand();
|
||||
}
|
||||
|
||||
public Motor GetMotorById(string occPartId)
|
||||
{
|
||||
var data = DBHelper.DB.Queryable<Motor>("mt")
|
||||
.Where(mt => mt.OccPartId == occPartId)
|
||||
.First();
|
||||
return data;
|
||||
}
|
||||
|
||||
//public string GetMotorLectotypeData(string motorOccId)
|
||||
//{
|
||||
// var data = DBHelper.DB.Queryable<MotorDataModel>("mt")
|
||||
// .Where(mt => mt.ID == motorOccId)
|
||||
// .First();
|
||||
// if (data != null)
|
||||
// {
|
||||
// return data.Data;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return "";
|
||||
// }
|
||||
//}
|
||||
|
||||
public CableLectotypeViewModel GetMotorLectotypeData(string motorOccId)
|
||||
{
|
||||
// 查询 Motor 数据
|
||||
var motor = DBHelper.DB.Queryable<Motor>()
|
||||
.Where(m => m.OccPartId == motorOccId)
|
||||
.First();
|
||||
|
||||
if (motor == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// 查询关联的 CableLectotype 数据
|
||||
var cableLectotype = DBHelper.DB.Queryable<CableLectotype>()
|
||||
.Where(cl => cl.MotorId == motor.OccPartId)
|
||||
.First();
|
||||
|
||||
if (cableLectotype == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
// 查询关联的 LectotypeLine 数据
|
||||
var selectedLines = DBHelper.DB.Queryable<LectotypeLine>()
|
||||
.Where(ll => ll.CableLectotypeId == cableLectotype.CableLectotypeId)
|
||||
//.OrderBy(ll => ll.SeqNo)
|
||||
.ToList();
|
||||
|
||||
// 构建 CableLectotypeViewModel
|
||||
var viewModel = new CableLectotypeViewModel
|
||||
{
|
||||
Motor = new MotorModel
|
||||
{
|
||||
MotorPower = motor.MotorPower,
|
||||
Brand = motor.Brand,
|
||||
MotorSerie = motor.MotorSerie,
|
||||
MotorModelStr = motor.MotorModelStr,
|
||||
AxisNo = motor.AxisNo,
|
||||
OccPartId = motor.OccPartId
|
||||
},
|
||||
CableConnectionType = (ConnectionType)Enum.Parse(typeof(ConnectionType), cableLectotype.CableConnectionType.ToString()),
|
||||
AxisNo = cableLectotype.AxisNo,
|
||||
CableType = cableLectotype.CableType,
|
||||
EncoderLineParagraph = cableLectotype.EncoderLineParagraph,
|
||||
PowerLineParagraph = cableLectotype.PowerLineParagraph,
|
||||
CableModelStr = cableLectotype.CableModelStr,
|
||||
IsEnableParagraph = cableLectotype.IsEnableParagraph,
|
||||
};
|
||||
viewModel.SelectedLines = selectedLines.Select(line => new LectotypeLineModel
|
||||
{
|
||||
CableLectotypeId = line.CableLectotypeId,
|
||||
SeqNo = line.SeqNo,
|
||||
AxisNo = line.AxisNo,
|
||||
CableConnectionClass = line.CableConnectionClass,
|
||||
CableType = line.CableType,
|
||||
IsFlexibility = line.IsFlexibility,
|
||||
Motor = viewModel.Motor,
|
||||
PowerLineLength = line.PowerLineLength,
|
||||
EncoderLineLength = line.EncoderLineLength,
|
||||
DrawingNo = line.DrawingNo,
|
||||
CableModelNo = line.CableModelNo,
|
||||
LineCount = line.LineCount,
|
||||
CurrentLine = line.CurrentLine,
|
||||
IsLectotype = line.IsLectotype,
|
||||
CableModel = line.CableModel,
|
||||
IsChecked = line.IsChecked,
|
||||
SubLines = GetSubLines(line.LectotypeLineId)
|
||||
}).OrderBy(it => it.CurrentLine).ToList();
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
// 获取子线数据
|
||||
private List<LectotypeLineModel> GetSubLines(string parentLineId)
|
||||
{
|
||||
var subLines = DBHelper.DB.Queryable<LectotypeLine>()
|
||||
.Where(sl => sl.ParentLectotypeLineId == parentLineId)
|
||||
.ToList();
|
||||
|
||||
return subLines.Select(subLine => new LectotypeLineModel
|
||||
{
|
||||
SeqNo = subLine.SeqNo,
|
||||
CableModel = subLine.CableModel,
|
||||
CableType = subLine.CableType,
|
||||
IsChecked = subLine.IsChecked
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
public bool SaveMotorLectotypeData(string motorOccId, CableLectotypeViewModel data)
|
||||
{
|
||||
var db = DBHelper.DB;
|
||||
|
||||
db.BeginTran();
|
||||
try
|
||||
{
|
||||
var motor = GetMotorById(data.Motor.OccPartId);//.FirstOrDefault(m => m.OccPartId == Motor.OccPartId);
|
||||
if (motor == null)
|
||||
{
|
||||
motor = new Motor
|
||||
{
|
||||
//MotorId = Guid.NewGuid().ToString(),
|
||||
//motorOccId
|
||||
MotorPower = data.Motor.MotorPower,
|
||||
Brand = data.Motor.Brand,
|
||||
MotorSerie = data.Motor.MotorSerie,
|
||||
MotorModelStr = data.Motor.MotorModelStr,
|
||||
AxisNo = data.Motor.AxisNo,
|
||||
OccPartId = data.Motor.OccPartId,
|
||||
CableLectotypeLines = []
|
||||
};
|
||||
AddMotor(motor);
|
||||
}
|
||||
else
|
||||
{
|
||||
motor.CableLectotypeLines = [];
|
||||
|
||||
}
|
||||
// 创建 CableLectotype
|
||||
var cableLectotype = new CableLectotype
|
||||
{
|
||||
//Motor = motor,
|
||||
CableLectotypeId = Guid.NewGuid().ToString(),
|
||||
MotorId = motor.OccPartId,
|
||||
CableConnectionType = (int)data.CableConnectionType,
|
||||
AxisNo = data.AxisNo,
|
||||
CableType = data.CableType,
|
||||
EncoderLineParagraph = data.EncoderLineParagraph,
|
||||
PowerLineParagraph = data.PowerLineParagraph,
|
||||
CableModelStr = data.CableModelStr,
|
||||
IsEnableParagraph = data.IsEnableParagraph,
|
||||
SelectedLines = []
|
||||
};
|
||||
// 添加 SelectedLines
|
||||
foreach (var line in data.SelectedLines)
|
||||
{
|
||||
var lectotypeLine = new LectotypeLine
|
||||
{
|
||||
CableLectotypeId = cableLectotype.CableLectotypeId,
|
||||
MotorId = motor.OccPartId,
|
||||
LectotypeLineId = Guid.NewGuid().ToString(),
|
||||
SeqNo = line.SeqNo,
|
||||
AxisNo = line.AxisNo,
|
||||
CableConnectionClass = line.CableConnectionClass,
|
||||
CableType = line.CableType,
|
||||
IsFlexibility = line.IsFlexibility,
|
||||
PowerLineLength = line.PowerLineLength,
|
||||
EncoderLineLength = line.EncoderLineLength,
|
||||
DrawingNo = line.DrawingNo,
|
||||
CableModelNo = line.CableModelNo,
|
||||
LineCount = line.LineCount,
|
||||
CurrentLine = line.CurrentLine,
|
||||
IsLectotype = line.IsLectotype,
|
||||
CableModel = line.CableModel,
|
||||
IsChecked = line.IsChecked,
|
||||
SubLines = []
|
||||
};
|
||||
|
||||
// 添加 SubLines
|
||||
if (line.SubLines != null)
|
||||
{
|
||||
foreach (var subLine in line.SubLines)
|
||||
{
|
||||
var subLectotypeLine = new LectotypeLine
|
||||
{
|
||||
LectotypeLineId = Guid.NewGuid().ToString(),
|
||||
MotorId = motor.OccPartId,
|
||||
SeqNo = subLine.SeqNo,
|
||||
ParentLectotypeLineId = lectotypeLine.LectotypeLineId,
|
||||
CableModel = subLine.CableModel,
|
||||
CableType = subLine.CableType,
|
||||
IsChecked = subLine.IsChecked
|
||||
};
|
||||
lectotypeLine.SubLines.Add(subLectotypeLine);
|
||||
}
|
||||
}
|
||||
motor.CableLectotypeLines.Add(lectotypeLine);
|
||||
}
|
||||
db.Storageable(motor).ExecuteCommand();
|
||||
// 清空后再保存
|
||||
db.Deleteable<CableLectotype>().Where(it => it.MotorId == motor.OccPartId).ExecuteCommand();
|
||||
db.Storageable(cableLectotype).ExecuteCommand();
|
||||
|
||||
db.Deleteable<LectotypeLine>().Where(it => it.MotorId == motor.OccPartId).ExecuteCommand();
|
||||
db.Storageable(motor.CableLectotypeLines.ToList()).ExecuteCommand();
|
||||
db.Storageable(motor.CableLectotypeLines.SelectMany(it => it.SubLines).ToList()).ExecuteCommand();
|
||||
|
||||
db.CommitTran();
|
||||
return true;
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
db.RollbackTran();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue