电检数据接口

dev
liulb@mesnac.com 1 year ago
parent dd972b19f3
commit 82a3be784e

@ -41,7 +41,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\Business\" />
<Folder Include="file\" />
</ItemGroup>

@ -0,0 +1,110 @@
using Admin.Core.Api;
using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Admin.Core.Service;
using Admin.Core.Service.Sys;
using log4net;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using StackExchange.Profiling.Internal;
using System;
using System.Collections.Generic;
namespace Aucma.Scada.Api.Controllers
{
/// <summary>
/// 电检数据接口
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize(Permissions.Name)]
public class ElectricalinspectionController : BaseApiUserController
{
private static readonly log4net.ILog _logger = LogManager.GetLogger(typeof(ElectricalinspectionController));
private readonly ISysConfigService _sysConfigService;
private IRecordElectricalinspectionService _recordElectricalinspectionService;
private IDetailElectricalinspectionService _detailElectricalinspectionService;
/// <summary>
/// 构造方法
/// </summary>
/// <param name="SysConfigService"></param>
/// <param name="sysUserService"></param>
/// <param name="recordElectricalinspectionService"></param>
/// <param name="detailElectricalinspectionService"></param>
public ElectricalinspectionController(ISysConfigService SysConfigService, ISysUserService sysUserService,IRecordElectricalinspectionService recordElectricalinspectionService, IDetailElectricalinspectionService detailElectricalinspectionService) : base(sysUserService)
{
_sysConfigService = SysConfigService;
_sysUserService = sysUserService;
_recordElectricalinspectionService = recordElectricalinspectionService;
_detailElectricalinspectionService = detailElectricalinspectionService;
}
/// <summary>
/// 保存电检数据
/// </summary>
/// <param name="electricalinspection"></param>
/// <returns></returns>
[HttpPost]
public IActionResult save([FromBody]RecordElectricalinspection electricalinspection)
{
_logger.Info($"收到电检数据:{electricalinspection.ToJson()}");
if (electricalinspection == null)
{
return BadRequest();
}
try
{
electricalinspection.Recordtime = DateTime.Now;
var testDataStr = electricalinspection.Testdata;
electricalinspection.Testdata = System.Guid.NewGuid().ToString();
#region 解析TestData
string[] str = testDataStr.ToString().Split(";");
List<DetailElectricalinspection> detailElectricalinspections = new List<DetailElectricalinspection>();
foreach (string item in str)
{
if (!string.IsNullOrEmpty(item))
{
string[] items = item.Split("|");
if (items.Length == 5)
{
DetailElectricalinspection detailElectricalinspection = new DetailElectricalinspection();
detailElectricalinspection.Uuid = electricalinspection.Testdata;
detailElectricalinspection.Serialnumber = Convert.ToDecimal(items[0]);
detailElectricalinspection.Projectname = items[1].ToString();
detailElectricalinspection.Testcondition = items[2].ToString();
detailElectricalinspection.Testvalue = items[3].ToString();
detailElectricalinspection.Testresult = items[4].ToString();
detailElectricalinspection.Recordtime = DateTime.Now;
detailElectricalinspections.Add(detailElectricalinspection);
}
}
}
#endregion
_logger.Info($"电检明细解析完成:{detailElectricalinspections.ToJson()}");
_recordElectricalinspectionService.InsertRecordElectricalinspection(electricalinspection);
_detailElectricalinspectionService.InsertRangeDetailElectricalinspection(detailElectricalinspections);
}
catch(Exception ex)
{
_logger.Error($"电检数据处理异常:{ex.Message}");
}
return Ok();
}
}
}

@ -0,0 +1,13 @@
using Admin.Core.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.IRepository
{
public interface IDetailElectricalinspectionRepository : IBaseRepository<DetailElectricalinspection>
{
}
}

@ -0,0 +1,13 @@
using Admin.Core.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.IRepository
{
public interface IRecordElectricalinspectionRepository : IBaseRepository<RecordElectricalinspection>
{
}
}

@ -0,0 +1,19 @@
using Admin.Core.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.IService
{
public interface IDetailElectricalinspectionService
{
/// <summary>
/// 保存电检明细数据
/// </summary>
/// <param name="detailElectricalinspections"></param>
/// <returns></returns>
bool InsertRangeDetailElectricalinspection(List<DetailElectricalinspection> detailElectricalinspections);
}
}

@ -0,0 +1,23 @@
using Admin.Core.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.IService
{
/// <summary>
/// 电检数据记录
/// </summary>
public interface IRecordElectricalinspectionService
{
/// <summary>
/// 保存电检数据
/// </summary>
/// <param name="electricalinspection"></param>
/// <returns></returns>
bool InsertRecordElectricalinspection(RecordElectricalinspection electricalinspection);
}
}

@ -0,0 +1,51 @@
using SqlSugar;
using System;
using System.Runtime.Serialization;
using System.Xml.Linq;
namespace Admin.Core.Model
{
/// <summary>
/// 电检数据明细
///</summary>
[SugarTable("DETAIL_ELECTRICALINSPECTION"), TenantAttribute("scada")]
[DataContract(Name = "DetailElectricalinspection 电检数据明细")]
public class DetailElectricalinspection
{
/// <summary>
/// 标识
///</summary>
[SugarColumn(ColumnName = "UUID")]
public string Uuid { get; set; }
/// <summary>
/// 序号
///</summary>
[SugarColumn(ColumnName = "SERIALNUMBER")]
public decimal? Serialnumber { get; set; }
/// <summary>
/// 项目名称
///</summary>
[SugarColumn(ColumnName = "PROJECTNAME")]
public string Projectname { get; set; }
/// <summary>
/// 测试条件
///</summary>
[SugarColumn(ColumnName = "TESTCONDITION")]
public string Testcondition { get; set; }
/// <summary>
/// 测试值
///</summary>
[SugarColumn(ColumnName = "TESTVALUE")]
public string Testvalue { get; set; }
/// <summary>
/// 测试结果
///</summary>
[SugarColumn(ColumnName = "TESTRESULT")]
public string Testresult { get; set; }
/// <summary>
/// 记录时间
///</summary>
[SugarColumn(ColumnName = "RECORDTIME")]
public DateTime Recordtime { get; set; }
}
}

@ -0,0 +1,50 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Admin.Core.Model
{
/// <summary>
/// 电检数据记录
///</summary>
[SugarTable("RECORD_ELECTRICALINSPECTION"), TenantAttribute("scada")]
[DataContract(Name = "RecordElectricalinspection 电检数据记录")]
public class RecordElectricalinspection
{
/// <summary>
/// 唯一标识
///</summary>
[SugarColumn(ColumnName = "UUID")]
public string Uuid { get; set; }
/// <summary>
/// 测试总结果
///</summary>
[SugarColumn(ColumnName = "RESULT")]
public string Result { get; set; }
/// <summary>
/// 产品条码
///</summary>
[SugarColumn(ColumnName = "BARCODE")]
public string Barcode { get; set; }
/// <summary>
/// 测试时间
///</summary>
[SugarColumn(ColumnName = "TESTTIME")]
public string Testtime { get; set; }
/// <summary>
/// 测试数据
///</summary>
[SugarColumn(ColumnName = "TESTDATA")]
public string Testdata { get; set; }
/// <summary>
/// 记录时间
///</summary>
[SugarColumn(ColumnName = "RECORDTIME")]
public DateTime Recordtime { get; set; }
}
}

@ -0,0 +1,13 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
namespace Admin.Core.Repository
{
public class DetailElectricalinspectionRepository : BaseRepository<DetailElectricalinspection>, IDetailElectricalinspectionRepository
{
public DetailElectricalinspectionRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -0,0 +1,22 @@
using Admin.Core.IRepository;
using Admin.Core.Model;
using log4net;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.Repository
{
internal class RecordElectricalinspectionRepository : BaseRepository<RecordElectricalinspection>, IRecordElectricalinspectionRepository
{
private IBaseRepository<RecordElectricalinspection> _dal;
public RecordElectricalinspectionRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
}
}

@ -0,0 +1,46 @@
using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.Model;
using log4net;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.Service
{
public class DetailElectricalinspectionServices : BaseServices<DetailElectricalinspection>, IDetailElectricalinspectionService
{
private IBaseRepository<DetailElectricalinspection> _dal;
private static readonly log4net.ILog _logger = LogManager.GetLogger(typeof(DetailElectricalinspectionServices));
public DetailElectricalinspectionServices(IBaseRepository<DetailElectricalinspection> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
public bool InsertRangeDetailElectricalinspection(List<DetailElectricalinspection> detailElectricalinspections)
{
bool result = false;
try
{
var r = _dal.AddAsync(detailElectricalinspections).Result;
if (r>0)
{
result = true;
}
}
catch (Exception ex)
{
_logger.Error($"电检明细数据保存异常:{ex.Message}");
}
return result;
}
}
}

@ -0,0 +1,41 @@
using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.Model;
using log4net;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Admin.Core.Service
{
internal class RecordElectricalinspectionServices : BaseServices<RecordElectricalinspection>, IRecordElectricalinspectionService
{
private IBaseRepository<RecordElectricalinspection> _dal;
private static readonly log4net.ILog _logger = LogManager.GetLogger(typeof(RecordElectricalinspectionServices));
public RecordElectricalinspectionServices(IBaseRepository<RecordElectricalinspection> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
public bool InsertRecordElectricalinspection(RecordElectricalinspection electricalinspection)
{
bool result = false;
try
{
var r = _dal.AddAsync(electricalinspection).Result;
if (r >0) { result = true; }
}catch(Exception ex)
{
_logger.Error($"电检数据保存异常:{ex.Message}");
}
return result;
}
}
}

@ -67,7 +67,7 @@
<TextBlock Text="发泡线(南)" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="1" Grid.Column="0" Background="#1157b9">
<TextBlock Text="" Foreground="White" FontSize="20"/>
<TextBlock Text="夹具号" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="2" Grid.Column="0" Background="#1157b9">
<TextBlock Text="1" Foreground="White" FontSize="20"/>
@ -154,10 +154,10 @@
<TextBlock Text="0" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="1" Grid.Column="4" Background="#1157b9">
<TextBlock Text="发泡量" Foreground="White" FontSize="20"/>
<TextBlock Text="内外模温度" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="2" Grid.Column="4" >
<TextBlock Text="夹具号" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="3" Grid.Column="4">
</Border>

@ -125,7 +125,7 @@
</StackPanel>
<StackPanel Grid.Row="3" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" >
<TextBlock Text="目的信息" FontSize="18" Foreground="White"/>
<TextBlock Text="目的货道" FontSize="18" Foreground="White"/>
<TextBox FontSize="18" Text="{Binding Destination,Mode=TwoWay}" BorderBrush="White" Foreground="White" Width="420" IsReadOnly="True" Margin="30,0,0,0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
</StackPanel>
@ -197,7 +197,7 @@
<DataGridTextColumn Binding="{Binding PlanCode}" Header="计划编号" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding MaterialBarCode}" Header="物料条码" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding MaterialCode}" Header="物料编码" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding MaterialName}" Header="产品型号" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding MaterialName}" Header="物料名称" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding EnterSpace}" Header="入库货道" Width="*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding ExecDateTime ,StringFormat=\{0:MM-dd HH:mm\}}" Header="执行时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding Status}" Header="状态" Width="*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>

@ -69,7 +69,8 @@
<Button Content="任务监控" x:Name="MonitorPage" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=MonitorPage}" />
<Button Content="入库统计" x:Name="StatisticsPage" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=StatisticsPage}" />
<Button Content="发泡计划" x:Name="FoamPlanPage" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FoamPlanPage}" />
<Button Content="发泡监控" x:Name="FoamMonitorPage" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FoamMonitorPage}" />
<Button Content="发泡线监控" x:Name="FoamMonitorPage" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FoamMonitorPage}" />
<Button Content="发泡机监控" x:Name="FoamMonitor1Page" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=FoamMonitorPage}" />
<Button Content="库存设置" x:Name="SetLibPage" Margin="5 0" Command="{Binding SwitchPagesCommand}" CommandParameter="{Binding Name,ElementName=StatisticsPage}" />
<Button Content="键 盘" x:Name="TabTip" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=TabTip}" />
<Button Content="最小化" x:Name="Minimized" Margin="5 0" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Minimized}" Background="#FF9900" BorderBrush="#FF9900" />

@ -154,7 +154,7 @@
<TextBlock Text="48" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="0" Grid.Column="5" Background="#1157b9">
<TextBlock Text="实际产量" Foreground="White" FontSize="20"/>
<TextBlock Text="入库数量" Foreground="White" FontSize="20"/>
</Border>
<Border Grid.Row="1" Grid.RowSpan="2" Grid.Column="5">
<TextBlock Text="255" Foreground="White" FontSize="40" FontWeight="Bold"/>

@ -42,7 +42,7 @@
<!--<Setter Property="BorderThickness" Value="1" />-->
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="BorderBrush" Value="#dddddd" />
<Setter Property="Height" Value="50"/>
<Setter Property="Height" Value="60"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="Background" Value="#4285DE"/>
<Setter Property="Foreground" Value="White"/>
@ -151,7 +151,7 @@
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.8*"/>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<UniformGrid Grid.Column="0" Margin="5" >
@ -163,7 +163,7 @@
</Grid.RowDefinitions>
<WrapPanel Grid.Row="0" Margin="5 5 0 0">
<Label Content="查询条件" VerticalAlignment="Center" Foreground="White" />
<TextBox x:Name="queryParam" Text="" Style="{x:Null}" PreviewMouseDoubleClick="queryParam_PreviewMouseDown" Width="200" HorizontalAlignment="Left" VerticalContentAlignment="Center"/>
<TextBox x:Name="queryParam" Text="" Style="{x:Null}" PreviewMouseDoubleClick="queryParam_PreviewMouseDown" Width="300" HorizontalAlignment="Left" VerticalContentAlignment="Center"/>
<Button Content="查询" Background="#4285DE" Width="100" Margin="5 0" Command="{Binding QueryStringCommand}" CommandParameter="{Binding Text, ElementName=queryParam}"/>
</WrapPanel>
<UniformGrid Grid.Row="1" Margin="0 5 0 0" x:Name="HeightPanel">
@ -177,12 +177,11 @@
ItemsSource="{Binding Datalist}" ColumnWidth="*" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" SelectionMode="Single"
SelectedItem="{Binding SelectedCells, Mode=OneWayToSource}">
<DataGrid.Columns>
<DataGridTextColumn Width="1*" Binding="{Binding CreatedTime, StringFormat=\{0:yyy/MM/dd\}}" Header="订单日期" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="1*" Binding="{Binding OrderCode}" Header="订单编号" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="1*" Binding="{Binding CreatedTime, StringFormat=\{0:yyy/MM/dd\}}" Header="订单日期" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="1*" Binding="{Binding OrderCode}" Header="订单编号" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="1*" Binding="{Binding ProductCode}" Header="产品编码" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="2*" Binding="{Binding MaterialName}" Header="产品型号" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="*" Binding="{Binding PlanAmount}" Header="订单数量" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="*" Binding="{Binding LinerAmount}" Header="内胆编码" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="*" Binding="{Binding BoxAmount}" Header="箱体编码" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Width="*" Binding="{Binding PrintLinerAmount}" Header="内胆码&#x0a;已打数量" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
@ -226,14 +225,14 @@
<WrapPanel Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 15">
<TextBlock Text="打印数量" FontSize="18" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Slider x:Name="PlanAmount" FontSize="18" Minimum="0" Maximum="500" BorderBrush="White" Value="{Binding SelectedItem.StandardAmount, ElementName=dgvMH}" Foreground="White" Height="30" VerticalContentAlignment="Center"
HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="15 0 0 0" Width="340"/>
<TextBlock Text="1~500" Width="60" Margin="10 0 0 0" Foreground="White" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center" />
HorizontalContentAlignment="Left" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="15 0 0 0" Width="{Binding Path=ActualWidth, ElementName=ProductNo}"/>
<!--<TextBlock Text="1~500" Width="60" Margin="10 0 0 0" Foreground="White" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center" />-->
</WrapPanel>
<Border Grid.Row="4" BorderBrush="#0288d1" BorderThickness="1" CornerRadius="5" Margin="100 5" >
<StackPanel >
<WrapPanel Height="300">
<RadioButton Content="内胆码-L" Foreground="White" FontSize="18" BorderBrush="White" x:Name="内胆" Margin="10 5" Command="{Binding RadioQueryCommand}" CommandParameter="{Binding Name, ElementName=内胆}"/>
<RadioButton Content="箱体码-B" Foreground="White" FontSize="18" BorderBrush="White" x:Name="箱体" Margin="10 5" Command="{Binding RadioQueryCommand}" CommandParameter="{Binding Name, ElementName=箱体}"/>
<RadioButton Content="内胆码-L" Foreground="White" FontSize="20" BorderBrush="White" x:Name="内胆" Margin="30 15" Command="{Binding RadioQueryCommand}" CommandParameter="{Binding Name, ElementName=内胆}"/>
<RadioButton Content="箱体码-B" Foreground="White" FontSize="20" BorderBrush="White" x:Name="箱体" Margin="30 15" Command="{Binding RadioQueryCommand}" CommandParameter="{Binding Name, ElementName=箱体}"/>
</WrapPanel>
<!--<Button Content="添加" Foreground="White" BorderBrush="#0288d1" Background="#4285DE" HorizontalAlignment="Right" VerticalAlignment="Bottom" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" />-->
</StackPanel>

@ -26,7 +26,7 @@
<SolidColorBrush x:Key="PrimaryHueDarkForegroundBrush" Color="White" />
<!--字体大小设置-->
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</ResourceDictionary>

@ -9,6 +9,7 @@ using System.Runtime.InteropServices;
using System.Windows.Interop;
using System.Collections.ObjectModel;
using Admin.Core.Common;
using System.IO;
namespace Aucma.Core.SheetMetal.ViewModels
{

Loading…
Cancel
Save