@ -1,16 +1,12 @@
using Admin.Core.IRepository ;
using Admin.Core.Service ;
using Admin.Core.IService ;
using Admin.Core.Model ;
using System.Threading.Tasks ;
using Admin.Core.Model.ViewModels ;
using System.Linq ;
using System.Collections.Generic ;
using S71500.Impl ;
using MySqlX.XDevAPI.Common ;
using System.Numerics ;
using log4net ;
using log4net.Util ;
using Admin.Core.PlcServer ;
namespace Admin.Core.Service
{
@ -55,129 +51,137 @@ namespace Admin.Core.Service
{
try
{
if ( view . Weighbridge = = "1号地磅" )
var plcList = PlcHelper . siemensList . SingleOrDefault ( d = > d . EquipName . Equals ( "溶剂PLC" ) ) ;
if ( plcList . plc . IsConnected )
{
bool matCode = Adapter . WriteInt16 ( "DB110.DBW400.0" , "1" ) ; //执行启动
if ( matCode )
if ( view . Weighbridge = = "1号地磅" )
{
Hw_SolventErrorPreventionReport report = new Hw_SolventErrorPreventionReport ( )
bool matCode = plcList . plc . WriteInt16 ( "DB110.DBW400.0" , "1" ) ; //执行启动
if ( matCode )
{
PlanId = view . Plan_Id ,
FinishedNum = Adapter . ReadInt16 ( "DB110.DBW2" ) + 1 ,
RMatCode = view . RMatCode ,
MaterialID = view . MaterialID ,
MaterialName = view . MaterialName ,
Weight = view . MaterialWeight ,
WholeMaterial = view . WholeMaterial
} ;
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
if ( rtPlanList . Count > 0 )
{
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = view . Plan_Id ) ;
Hw_SolventErrorPreventionReport report = new Hw_SolventErrorPreventionReport ( )
{
PlanId = view . Plan_Id ,
FinishedNum = plcList . plc . ReadInt16 ( "DB110.DBW2" ) + 1 ,
RMatCode = view . RMatCode ,
MaterialID = view . MaterialID ,
MaterialName = view . MaterialName ,
Weight = view . MaterialWeight ,
WholeMaterial = view . WholeMaterial
} ;
if ( Adapter . ReadInt16 ( "DB110.DBW402" ) ! = 250 )
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
if ( rtPlanList . Count > 0 )
{
var hwWeighList = await _hwWeighRepository . GetWaiteMaterial ( view . Plan_Id ) ;
if ( hwWeighList ! = null )
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = view . Plan_Id ) ;
if ( plcList . plc . ReadInt16 ( "DB110.DBW402" ) ! = 250 )
{
if ( hwWeighList . Count ( ) > ( rtPlan . Exec_Num + 1 ) )
var hwWeighList = await _hwWeighRepository . GetWaiteMaterial ( view . Plan_Id ) ;
if ( hwWeighList ! = null )
{
rtPlan . Exec_Num = 1 ;
if ( hwWeighList . Count ( ) > ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = 1 ;
}
else if ( hwWeighList . Count ( ) = = ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = rtPlan . Exec_Num + 1 ;
}
else
{
rtPlan . Exec_Num = 1 ;
}
}
else if ( hwWeighList . Count ( ) = = ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = rtPlan . Exec_Num + 1 ;
}
else
//保存本次数据
int i = await _solventErrorPreventionReportRepository . AddAsync ( report ) ;
var cylinderList = _hwCylinderRepository . Query ( ) ;
if ( cylinderList . Count = = 0 )
{
rtPlan . Exec_Num = 1 ;
return false ;
}
Hw_Cylinder hw_Cylinder = cylinderList . FirstOrDefault ( d = > d . BarCode = = view . CylinderBarCode . Trim ( ) ) ;
rtPlan . CylinderName = hw_Cylinder . Name ;
rtPlan . CylinderBarCode = hw_Cylinder . BarCode ;
log . Info ( view . CylinderBarCode ) ;
await _planRepository . UpdateExecDb ( rtPlan ) ; //更新数据库
return true ;
}
//保存本次数据
int i = await _solventErrorPreventionReportRepository . AddAsync ( report ) ;
var cylinderList = _hwCylinderRepository . Query ( ) ;
if ( cylinderList . Count = = 0 )
{
return false ;
}
Hw_Cylinder hw_Cylinder = cylinderList . FirstOrDefault ( d = > d . BarCode = = view . CylinderBarCode . Trim ( ) ) ;
rtPlan . CylinderName = hw_Cylinder . Name ;
rtPlan . CylinderBarCode = hw_Cylinder . BarCode ;
log . Info ( view . CylinderBarCode ) ;
await _planRepository . UpdateExecDb ( rtPlan ) ; //更新数据库
return true ;
}
}
return false ;
}
return false ;
}
return false ;
}
else if ( view . Weighbridge = = "2号地磅" )
{
bool matCode = Adapter . WriteInt16 ( "DB111.DBW400.0" , "1" ) ; //执行启动
if ( matCode )
else if ( view . Weighbridge = = "2号地磅" )
{
Hw_SolventErrorPreventionReport report = new Hw_SolventErrorPreventionReport ( )
bool matCode = plcList . plc . WriteInt16 ( "DB111.DBW400.0" , "1" ) ; //执行启动
if ( matCode )
{
PlanId = view . Plan_Id ,
FinishedNum = Adapter . ReadInt16 ( "DB111.DBW2" ) + 1 ,
RMatCode = view . RMatCode ,
MaterialID = view . MaterialID ,
MaterialName = view . MaterialName ,
Weight = view . MaterialWeight ,
WholeMaterial = view . WholeMaterial
} ;
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
if ( rtPlanList . Count > 0 )
{
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = view . Plan_Id ) ;
Hw_SolventErrorPreventionReport report = new Hw_SolventErrorPreventionReport ( )
{
PlanId = view . Plan_Id ,
FinishedNum = plcList . plc . ReadInt16 ( "DB111.DBW2" ) + 1 ,
RMatCode = view . RMatCode ,
MaterialID = view . MaterialID ,
MaterialName = view . MaterialName ,
Weight = view . MaterialWeight ,
WholeMaterial = view . WholeMaterial
} ;
if ( Adapter . ReadInt16 ( "DB111.DBW402" ) ! = 250 )
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
if ( rtPlanList . Count > 0 )
{
var hwWeighList = await _hwWeighRepository . GetWaiteMaterial ( view . Plan_Id ) ;
if ( hwWeighList ! = null )
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = view . Plan_Id ) ;
if ( plcList . plc . ReadInt16 ( "DB111.DBW402" ) ! = 250 )
{
if ( hwWeighList . Count ( ) > ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = 1 ;
}
if ( hwWeighList . Count ( ) = = ( rtPlan . Exec_Num + 1 ) )
var hwWeighList = await _hwWeighRepository . GetWaiteMaterial ( view . Plan_Id ) ;
if ( hwWeighList ! = null )
{
rtPlan . Exec_Num = rtPlan . Exec_Num + 1 ;
if ( hwWeighList . Count ( ) > ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = 1 ;
}
if ( hwWeighList . Count ( ) = = ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = rtPlan . Exec_Num + 1 ;
}
if ( hwWeighList . Count ( ) > ( rtPlan . Exec_Num + 1 ) )
{
rtPlan . Exec_Num = rtPlan . Exec_Num + 1 ;
}
}
if ( hwWeighList . Count ( ) > ( rtPlan . Exec_Num + 1 ) )
//保存本次数据
int i = await _solventErrorPreventionReportRepository . AddAsync ( report ) ;
var cylinderList = _hwCylinderRepository . Query ( ) ;
if ( cylinderList . Count = = 0 )
{
rtPlan . Exec_Num = rtPlan . Exec_Num + 1 ;
return false ;
}
}
//保存本次数据
int i = await _solventErrorPreventionReportRepository . AddAsync ( report ) ;
var cylinderList = _hwCylinderRepository . Query ( ) ;
if ( cylinderList . Count = = 0 )
{
return false ;
rtPlan . CylinderName = cylinderList . FirstOrDefault ( d = > d . BarCode = = view . CylinderBarCode ) . Name ;
rtPlan . CylinderBarCode = view . CylinderBarCode ;
log . Info ( view . CylinderBarCode ) ;
await _planRepository . UpdateExecDb ( rtPlan ) ; //更新数据库
return true ;
}
rtPlan . CylinderName = cylinderList . FirstOrDefault ( d = > d . BarCode = = view . CylinderBarCode ) . Name ;
rtPlan . CylinderBarCode = view . CylinderBarCode ;
log . Info ( view . CylinderBarCode ) ;
await _planRepository . UpdateExecDb ( rtPlan ) ; //更新数据库
return true ;
}
}
return false ;
}
return false ;
}
else
{
return false ;
}
return false ;
}
else
{
return fals e;
return tru e;
}
}
catch ( System . Exception ex )
@ -197,7 +201,6 @@ namespace Admin.Core.Service
/// <param name="pumpCode">泵Code</param>
/// <param name="cylinderCode">投料泵Code</param>
/// <returns></returns>
/// <exception cref="System.NotImplementedException"></exception>
public async Task < bool > ExecState ( string planId , string pumpCode , string cylinderCode )
{
try
@ -205,91 +208,109 @@ namespace Admin.Core.Service
var result = await _planRepository . QueryAsync ( d = > d . Plan_Id = = planId & & d . PumpBarCode = = pumpCode & & d . CylinderBarCode = = cylinderCode ) ;
if ( result . Count > 0 )
{
#region 写入PLC
var pumpList = _hwPumpRepository . Query ( ) ;
if ( pumpList . Count = = 0 ) { return false ; }
var pump = pumpList . FirstOrDefault ( d = > d . BarCode = = pumpCode ) ;
if ( pump = = null ) { return false ; }
switch ( pump . RowNum )
var plcList = PlcHelper . siemensList . SingleOrDefault ( d = > d . EquipName . Equals ( "溶剂PLC" ) ) ;
if ( plcList . plc . IsConnected )
{
case 1 :
Adapter . WriteInt16 ( "DB110.DBW282.0" , "1" ) ;
break ;
case 2 :
Adapter . WriteInt16 ( "DB110.DBW294.0" , "1" ) ;
break ;
case 3 :
Adapter . WriteInt16 ( "DB110.DBW306.0" , "1" ) ;
break ;
case 4 :
Adapter . WriteInt16 ( "DB110.DBW318.0" , "1" ) ;
break ;
case 5 :
Adapter . WriteInt16 ( "DB110.DBW330.0" , "1" ) ;
break ;
case 6 :
Adapter . WriteInt16 ( "DB110.DBW342.0" , "1" ) ;
break ;
case 7 :
Adapter . WriteInt16 ( "DB110.DBW354.0" , "1" ) ;
break ;
case 8 :
Adapter . WriteInt16 ( "DB110.DBW366.0" , "1" ) ;
break ;
case 9 :
Adapter . WriteInt16 ( "DB110.DBW 378.0" , "1" ) ;
break ;
default :
break ;
}
#region 写入PLC
# endregion
var pumpList = _hwPumpRepository . Query ( ) ;
if ( pumpList . Count = = 0 ) { return false ; }
var pump = pumpList . FirstOrDefault ( d = > d . BarCode = = pumpCode ) ;
if ( pump = = null ) { return false ; }
switch ( pump . RowNum )
{
case 1 :
plcList . plc . WriteInt16 ( "DB110.DBW282.0" , "1" ) ;
break ;
case 2 :
plcList . plc . WriteInt16 ( "DB110.DBW294.0" , "1" ) ;
break ;
case 3 :
plcList . plc . WriteInt16 ( "DB110.DBW306.0" , "1" ) ;
break ;
case 4 :
plcList . plc . WriteInt16 ( "DB110.DBW318.0" , "1" ) ;
break ;
case 5 :
plcList . plc . WriteInt16 ( "DB110.DBW330.0" , "1" ) ;
break ;
case 6 :
plcList . plc . WriteInt16 ( "DB110.DBW342.0" , "1" ) ;
break ;
case 7 :
plcList . plc . WriteInt16 ( "DB110.DBW354.0" , "1" ) ;
break ;
case 8 :
plcList . plc . WriteInt16 ( "DB110.DBW366.0" , "1" ) ;
break ;
case 9 :
plcList . plc . WriteInt16 ( "DB110.DBW 378.0" , "1" ) ;
break ;
default :
break ;
}
return true ;
# endregion
return true ;
}
else
{
return false ;
}
}
else
{
#region 写入PLC
var pumpList = _hwPumpRepository . Query ( ) ;
if ( pumpList . Count > 0 ) { return false ; }
var pump = pumpList . FirstOrDefault ( d = > d . BarCode = = pumpCode ) ;
if ( pump = = null ) { return false ; }
switch ( pump . RowNum )
var plcList = PlcHelper . siemensList . SingleOrDefault ( d = > d . EquipName . Equals ( "溶剂PLC" ) ) ;
if ( plcList . plc . IsConnected )
{
case 1 :
Adapter . WriteInt16 ( "DB110.DBW282.0" , "2" ) ;
break ;
case 2 :
Adapter . WriteInt16 ( "DB110.DBW294.0" , "2" ) ;
break ;
case 3 :
Adapter . WriteInt16 ( "DB110.DBW306.0" , "2" ) ;
break ;
case 4 :
Adapter . WriteInt16 ( "DB110.DBW318.0" , "2" ) ;
break ;
case 5 :
Adapter . WriteInt16 ( "DB110.DBW330.0" , "2" ) ;
break ;
case 6 :
Adapter . WriteInt16 ( "DB110.DBW342.0" , "2" ) ;
break ;
case 7 :
Adapter . WriteInt16 ( "DB110.DBW354.0" , "2" ) ;
break ;
case 8 :
Adapter . WriteInt16 ( "DB110.DBW366.0" , "2" ) ;
break ;
case 9 :
Adapter . WriteInt16 ( "DB110.DBW 378.0" , "2" ) ;
break ;
default :
break ;
}
var pumpList = _hwPumpRepository . Query ( ) ;
if ( pumpList . Count > 0 ) { return false ; }
var pump = pumpList . FirstOrDefault ( d = > d . BarCode = = pumpCode ) ;
if ( pump = = null ) { return false ; }
switch ( pump . RowNum )
{
case 1 :
plcList . plc . WriteInt16 ( "DB110.DBW282.0" , "2" ) ;
break ;
case 2 :
plcList . plc . WriteInt16 ( "DB110.DBW294.0" , "2" ) ;
break ;
case 3 :
plcList . plc . WriteInt16 ( "DB110.DBW306.0" , "2" ) ;
break ;
case 4 :
plcList . plc . WriteInt16 ( "DB110.DBW318.0" , "2" ) ;
break ;
case 5 :
plcList . plc . WriteInt16 ( "DB110.DBW330.0" , "2" ) ;
break ;
case 6 :
plcList . plc . WriteInt16 ( "DB110.DBW342.0" , "2" ) ;
break ;
case 7 :
plcList . plc . WriteInt16 ( "DB110.DBW354.0" , "2" ) ;
break ;
case 8 :
plcList . plc . WriteInt16 ( "DB110.DBW366.0" , "2" ) ;
break ;
case 9 :
plcList . plc . WriteInt16 ( "DB110.DBW 378.0" , "2" ) ;
break ;
default :
break ;
}
# endregion
return true ;
# endregion
return true ;
}
else
{
return false ;
}
}
}
catch ( System . Exception )
@ -311,19 +332,34 @@ namespace Admin.Core.Service
{
try
{
var list = await _planRepository . GetDownLoadPlan ( code , weighbridge ) ;
if ( list . Count = = 0 ) return null ;
var plan = list . FirstOrDefault ( ) ;
var hwWeighList = await _hwWeighRepository . GetWaiteMaterial ( plan . Plan_Id ) ;
if ( hwWeighList = = null ) return null ;
if ( Adapter . IsConnected )
var plcList = PlcHelper . siemensList . SingleOrDefault ( d = > d . EquipName . Equals ( "溶剂PLC" ) ) ;
if ( plcList . plc . IsConnected )
{
int endStatus = Adapter . ReadInt16 ( "DB110.DBW6.0" ) ; //完成信号
if ( endStatus = = 1 )
var list = await _planRepository . GetDownLoadPlan ( code , weighbridge ) ;
if ( list . Count = = 0 ) return null ;
var plan = list . FirstOrDefault ( ) ;
var hwWeighList = await _hwWeighRepository . GetWaiteMaterial ( plan . Plan_Id ) ;
if ( hwWeighList = = null ) return null ;
if ( plcList . plc . IsConnected )
{
int planNum = Adapter . ReadInt16 ( "DB110.DBW2.0" ) ; //执行批次
if ( plan . Plan_Num > plan . Real_Num )
int endStatus = plcList . plc . ReadInt16 ( "DB110.DBW6.0" ) ; //完成信号
if ( endStatus = = 1 )
{
int planNum = plcList . plc . ReadInt16 ( "DB110.DBW2.0" ) ; //执行批次
if ( plan . Plan_Num > plan . Real_Num )
{
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = plan . Plan_Id ) ;
execNum = rtPlan . Exec_Num ;
var hwWeigh = hwWeighList . FirstOrDefault ( d = > d . MID = = execNum ) ;
if ( hwWeigh = = null ) return null ;
return hwWeigh ;
}
}
else
{
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = plan . Plan_Id ) ;
@ -335,17 +371,6 @@ namespace Admin.Core.Service
return hwWeigh ;
}
}
else
{
var rtPlanList = await _planRepository . QueryAsync ( d = > d . Plan_State = = 3 ) ;
var rtPlan = rtPlanList . FirstOrDefault ( d = > d . Plan_Id = = plan . Plan_Id ) ;
execNum = rtPlan . Exec_Num ;
var hwWeigh = hwWeighList . FirstOrDefault ( d = > d . MID = = execNum ) ;
if ( hwWeigh = = null ) return null ;
return hwWeigh ;
}
}
return null ;