Files
2026-05-28 22:11:13 +08:00

274 lines
13 KiB
C#

using Cowain.Preheat.Model.Models;
using Cowain.Preheat.Common.Core;
using Cowain.Preheat.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Unity;
using System.Data.Entity;
namespace Cowain.Preheat.BLL
{
public class StationService : ServiceBase
{
public StationService(IUnityContainer unityContainer) : base(unityContainer)
{
}
/// <summary>
/// 获取工位列表信息
/// </summary>
/// <returns></returns>
public List<TStation> GetAll()
{
using (var Context = new PreheatEntities())
{
var dataList = Context.Set<TStation>().OrderBy(x => x.Number).ToList();
return dataList;
}
}
/// <summary>
/// 获取工位明细列表信息
/// </summary>
/// <returns></returns>
public List<TStationDetail> GetAllStationDetailList()
{
using (var Context = new PreheatEntities())
{
var dataList = Context.Set<TStationDetail>().OrderBy(x => x.StationId).ThenBy(s => s.Layer).ToList();
return dataList;
}
}
public TStationDetail GetStationDetailByName(string name)
{
using (var Context = new PreheatEntities())
{
var result = Context.Set<TStationDetail>().Where(p => p.Name == name).FirstOrDefault();
return result;
}
}
/// <summary>
/// 获取工位和明细电池关联信息
/// </summary>
/// <returns></returns>
//public IQueryable<StationInfoAndDetailsBatteryModel> GetStationDetailBatterys()
//{
// var query = from a in Context.Set<TStation>()
// join b in Context.Set<TStationDetail>() on a.Id equals b.StationId
// join c in Context.Set<TBatteryInfo>() on b.BatteryId equals c.Id into joinedBattery
// from bat in joinedBattery.DefaultIfEmpty()
// join d in Context.Set<TPalletInfo>() on bat.PalletVirtualId equals d.VirtualId into joinedPallet
// from pall in joinedPallet.DefaultIfEmpty()
// join e in Context.Set<TDeviceConfig>() on b.DeviceId equals e.Id into joinedDevice
// from dev in joinedDevice.DefaultIfEmpty()
// select new StationInfoAndDetailsBatteryModel
// {
// StationId = a.Id,
// StationName = a.Name,
// StationDesc=a.Desc,
// StationNumber = a.Number,
// StationDetailId = b.Id,
// StationDetailName = b.Name,
// StationDetailNumber = b.Number,
// StationDetailBatteryId = b.BatteryId,
// BatteryCode = bat.BatteryCode,
// BatteryCodeScanTime = bat.ScanTime,
// DeviceEnable = dev.Enable,
// DeviceIsConnect = dev.IsConnect
// };
// return query;
//}
/// <summary>
/// 获取工位和明细电池关联信息
/// </summary>
/// <returns></returns>
//public IQueryable<StationInfoAndDetailsBatteryModel> GetStationDetailBatterys(string stationName, string batteryCodes = "")
//{
// var strTolist = CommonCoreHelper.StringToListConverter(batteryCodes);
// var query = from a in Context.Set<TStation>()
// join b in Context.Set<TStationDetail>() on a.Id equals b.StationId
// join c in Context.Set<TBatteryInfo>() on b.BatteryId equals c.Id into joinedBattery
// from bat in joinedBattery.DefaultIfEmpty()
// where a.Name == stationName
// select new StationInfoAndDetailsBatteryModel
// {
// StationId = a.Id,
// StationName = a.Desc,
// StationColumns = a.Columns,
// StationNumber = a.Number,
// StationPosX = a.PosX,
// StationPosY = a.PosY,
// StationEnable = a.Enable,
// StationDetailId = b.Id,
// StationDetailName = b.Name,
// StationDetailNumber = b.Number,
// StationDetailRowNumber = b.RowNumber,
// StationDetailBatteryId = b.BatteryId,
// StationDetailEnable = b.Enable,
// StationDetailDeviceId = b.DeviceId,
// BatteryCode = bat.BatteryCode,
// BatteryCodeScanTime = bat.ScanTime,
// };
// if (strTolist.Any())
// {
// query = query.Where(p => strTolist.Contains(p.BatteryCode));
// }
// return query;
//}
//public List<StationInfoAndDetailsBatteryModel> GetStationDetailBatterys(string stationName, int stationDetailId, string batteryCodes)
//{
// var strTolist = CommonCoreHelper.StringToListConverter(batteryCodes);
// var query = from a in Context.Set<TStation>()
// join b in Context.Set<TStationDetail>() on a.Id equals b.StationId
// join bat in Context.Set<TBatteryInfo>() on b.BatteryId equals bat.Id
// where a.Name == stationName
// select new StationInfoAndDetailsBatteryModel
// {
// StationId = a.Id,
// StationName = a.Desc,
// StationColumns = a.Columns,
// StationNumber = a.Number,
// StationPosX = a.PosX,
// StationPosY = a.PosY,
// StationEnable = a.Enable,
// StationDetailId = b.Id,
// StationDetailName = b.Name,
// StationDetailNumber = b.Number,
// StationDetailRowNumber = b.RowNumber,
// StationDetailBatteryId = b.BatteryId,
// StationDetailEnable = b.Enable,
// StationDetailDeviceId = b.DeviceId,
// BatteryCode = bat.BatteryCode,
// BatteryCodeScanTime = bat.ScanTime,
// };
// if (strTolist.Any())
// {
// query = query.Where(p => strTolist.Contains(p.BatteryCode));
// }
// if (stationDetailId > 0)
// {
// query = query.Where(p => p.StationDetailId == stationDetailId);
// }
// return query.ToList();
//}
/// <summary>
/// 获取电芯数据
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="stopTime">结束时间</param>
/// <param name="stationId">工站Id</param>
/// <param name="batteryCodes">电芯条码</param>
/// <returns></returns>
//public List<StationInfoAndDetailsBatteryModel> GetBatteryDatasBy(DateTime startTime, DateTime stopTime, int stationId, string batteryCodes)
//{
// var strTolist = CommonCoreHelper.StringToListConverter(batteryCodes);
// var query = from bat in Context.Set<TBatteryInfo>()
// where bat.ScanTime >= startTime && bat.ScanTime <= stopTime
// select new StationInfoAndDetailsBatteryModel
// {
// Id = bat.Id,
// BatteryCode = bat.BatteryCode,
// ScanTime = bat.ScanTime,
// StationStep = bat.StationStep,
// ShortCircuitTester = bat.ShortCircuitTester,
// BeforeInjectInsulaTest = bat.BeforeInjectInsulaTest,
// RepeatFlag = bat.RepeatFlag,
// BeforeInjectWeight = bat.BeforeInjectWeight,
// VacuumInjection = bat.VacuumInjection,
// AfterInjectWeight = bat.AfterInjectWeight,
// VacuumPackage = bat.VacuumPackage,
// AfterPackageWeight = bat.AfterPackageWeight,
// AfterPackageInsulaTest = bat.AfterPackageInsulaTest,
// UnLoadingScanCode = bat.UnLoadingScanCode,
// Marking = bat.Marking,
// AfterMarkingScanCode = bat.AfterMarkingScanCode,
// OutboundTime = bat.OutboundTime,
// FluidInfusionInbound = bat.FluidInfusionInbound,
// FluidInfusionOutbound = bat.FluidInfusionOutbound,
// FluidInfusionReflux = bat.FluidInfusionReflux
// };
// if (stationId > 0)
// {
// query = query.Where(s => s.StationStep == stationId);
// }
// if (strTolist.Any())
// {
// query = query.Where(s => strTolist.Contains(s.BatteryCode));
// }
// var list = query.OrderBy(p => p.ScanTime).ThenBy(p => p.OutboundTime).ToList();
// return list;
//}
/// <summary>
/// 获取NG电芯数据
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="stopTime">结束时间</param>
/// <param name="stationId">工站Id</param>
/// <param name="batteryCodes">电芯条码</param>
/// <returns></returns>
//public List<StationNGBatteryModel> GetNGBatteryDatasBy(DateTime startTime, DateTime stopTime, int stationId, string batteryCodes)
//{
// var strTolist = CommonCoreHelper.StringToListConverter(batteryCodes);
// var query = from a in Context.Set<TBatteryNG>()
// join b in Context.Set<TBatteryInfo>() on a.BatteryId equals b.Id into joinedBattery
// from bat in joinedBattery.DefaultIfEmpty()
// join c in Context.Set<TDeviceConfig>() on a.DeviceName equals c.Name into joinDevice
// from cd in joinDevice.DefaultIfEmpty()
// where a.CreateTime >= startTime && a.CreateTime <= stopTime
// select new StationNGBatteryModel
// {
// Id = a.Id,
// StationStep = a.StationStep,
// BatteryId = a.BatteryId,
// Content = a.Content,
// DeviceName = a.DeviceName,
// CreateTime = a.CreateTime,
// Desc = a.Desc,
// BatteryCode = bat.BatteryCode,
// DeviceNameDesc = cd.Desc
// };
// if (stationId > 0)
// {
// query = query.Where(s => s.StationStep == stationId);
// }
// if (strTolist.Any())
// {
// query = query.Where(s => strTolist.Contains(s.BatteryCode));
// }
// var list = query.OrderByDescending(p => p.Id).ToList();
// return list;
//}
//public TStationDetail GetStationDetailByBatteryId(int stationId, int batteryId)
//{
// var reuslt = Context.Set<TStationDetail>().FirstOrDefault(p => p.StationId == stationId && p.BatteryId == batteryId);
// return reuslt;
//}
/// <summary>
/// 修改工位明细信息
/// </summary>
/// <param name="stationDetail"></param>
/// <returns></returns>
public int UpdateStationDetailInfo(TStationDetail stationDetail)
{
using (var Context = new PreheatEntities())
{
Context.Set<TStationDetail>().Attach(stationDetail);//将数据附加到上下文,支持实体修改和新实体,重置为UnChanged
Context.Entry<TStationDetail>(stationDetail).State = EntityState.Modified;
return Context.SaveChanges();
}
//return Update<TStationDetail>(stationDetail);
}
}
}