You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
8.4 KiB
C#
190 lines
8.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Mesnac.Action.Base;
|
|
using Mesnac.Codd.Session;
|
|
using Mesnac.Basic;
|
|
using System.Data;
|
|
|
|
namespace Mesnac.Action.Default.SynchroData
|
|
{
|
|
#region 同步班组
|
|
/// <summary>
|
|
/// 同步班组
|
|
/// </summary>
|
|
public class ClassSynchronous : DatabaseAction, IAction
|
|
{
|
|
public void Run(RuntimeParameter runtime)
|
|
{
|
|
base.RunIni(runtime);
|
|
if (base.NetType == NetTypes.Local)
|
|
{
|
|
base.LogError("{班组维护} 此系统版本为单机版,不能进行数据同步...");
|
|
ShowMsg(base.Language(32));
|
|
|
|
return;
|
|
}
|
|
|
|
DatabaseAction action = new DatabaseAction();
|
|
///////本地、服务器连接信息
|
|
DataSourceItem Sdsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Server);
|
|
DataSourceItem Ldsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
//////测试服务器数据库连接
|
|
DbHelper dbHelper;
|
|
dbHelper = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Server);
|
|
if (dbHelper == null)
|
|
{
|
|
action.LogError("连接服务器数据库失败...");
|
|
ShowMsg(base.Language(33));
|
|
return;
|
|
}
|
|
|
|
/////本地数据库
|
|
DbHelper dbHelperlocal;
|
|
dbHelperlocal = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
if (dbHelperlocal == null)
|
|
{
|
|
action.LogError("连接本地数据库失败...");
|
|
ShowMsg(base.Language(34));
|
|
return;
|
|
}
|
|
///////获取服务器班组信息
|
|
StringBuilder serversqlstr = new StringBuilder("select ObjID, ClassName, UseFlag from dbo.PptClass");
|
|
dbHelper.CommandText = serversqlstr.ToString();
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
StringBuilder loacdsqlstr = new StringBuilder("Begin tran truncate table PptClass set IDENTITY_INSERT PPTCLASS on ");
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
loacdsqlstr.AppendFormat("insert into PptClass (ObjID, ClassName, UseFlag) values ({0},'{1}','{2}') ", dt.Rows[i]["ObjID"].ToString(), dt.Rows[i]["ClassName"].ToString(), dt.Rows[i]["UseFlag"].ToString());
|
|
}
|
|
loacdsqlstr.Append(" set IDENTITY_INSERT PPTCLASS OFF; if @@ERROR<>0 rollback tran else commit tran");
|
|
dbHelperlocal.ClearParameter();
|
|
dbHelperlocal.CommandType = CommandType.Text;
|
|
dbHelperlocal.CommandText = loacdsqlstr.ToString();
|
|
dbHelperlocal.ExecuteNonQuery();
|
|
ShowMsg(base.Language(20));
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 同步班次
|
|
/// <summary>
|
|
/// 同步班次
|
|
/// </summary>
|
|
public class ShiftSynchronous : DatabaseAction, IAction
|
|
{
|
|
public void Run(RuntimeParameter runtime)
|
|
{
|
|
base.RunIni(runtime);
|
|
if (base.NetType== NetTypes.Local)
|
|
{
|
|
base.LogError("{班次维护} 此系统版本为单机版,不能进行数据同步...");
|
|
ShowMsg(base.Language(32));
|
|
return;
|
|
}
|
|
|
|
DatabaseAction action = new DatabaseAction();
|
|
///////本地、服务器连接信息
|
|
DataSourceItem Sdsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Server);
|
|
DataSourceItem Ldsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
//////测试服务器数据库连接
|
|
DbHelper dbHelper;
|
|
dbHelper = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Server);
|
|
if (dbHelper == null)
|
|
{
|
|
action.LogError("连接服务器数据库失败...");
|
|
ShowMsg(base.Language(33));
|
|
return;
|
|
}
|
|
/////本地数据库
|
|
DbHelper dbHelperlocal;
|
|
dbHelperlocal = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
if (dbHelperlocal == null)
|
|
{
|
|
action.LogError("本地连接数据库失败...");
|
|
ShowMsg(base.Language(34));
|
|
return;
|
|
}
|
|
///////获取服务器班次信息
|
|
StringBuilder serversqlstr = new StringBuilder("select ObjID, ShiftName, UseFlag from dbo.PptShift");
|
|
dbHelper.CommandText = serversqlstr.ToString();
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
StringBuilder loacdsqlstr = new StringBuilder("Begin tran truncate table PptShift set IDENTITY_INSERT PptShift on ");
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
loacdsqlstr.AppendFormat("insert into PptShift (ObjID, ShiftName, UseFlag) values ({0},'{1}','{2}') ", dt.Rows[i]["ObjID"].ToString(), dt.Rows[i]["ShiftName"].ToString(), dt.Rows[i]["UseFlag"].ToString());
|
|
}
|
|
loacdsqlstr.Append(" set IDENTITY_INSERT PptShift OFF; if @@ERROR<>0 rollback tran else commit tran");
|
|
dbHelperlocal.ClearParameter();
|
|
dbHelperlocal.CommandType = CommandType.Text;
|
|
dbHelperlocal.CommandText = loacdsqlstr.ToString();
|
|
dbHelperlocal.ExecuteNonQuery();
|
|
|
|
ShowMsg(base.Language(20));
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 同步物料
|
|
public class MaterialSynchronous : DatabaseAction, IAction
|
|
{
|
|
public void Run(RuntimeParameter runtime)
|
|
{
|
|
if (base.NetType == NetTypes.Local)
|
|
{
|
|
base.LogError("{物料维护} 此系统版本为单机版,不能进行数据同步...");
|
|
ShowMsg(base.Language(32));
|
|
return;
|
|
}
|
|
DatabaseAction action = new DatabaseAction();
|
|
///////本地、服务器连接信息
|
|
DataSourceItem Sdsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Server);
|
|
DataSourceItem Ldsi = action.GetDataSourceItem(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
//////测试服务器数据库连接
|
|
DbHelper dbHelper;
|
|
dbHelper = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Server);
|
|
if (dbHelper == null)
|
|
{
|
|
action.LogError("连接服务器数据库失败...");
|
|
ShowMsg(base.Language(33));
|
|
return;
|
|
}
|
|
|
|
/////本地数据库
|
|
DbHelper dbHelperlocal;
|
|
dbHelperlocal = action.NewDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
|
|
if (dbHelperlocal == null)
|
|
{
|
|
action.LogError("本地连接数据库失败...");
|
|
ShowMsg(base.Language(34));
|
|
return;
|
|
}
|
|
dbHelperlocal.ClearParameter();
|
|
dbHelperlocal.CommandType = CommandType.Text;
|
|
StringBuilder sqlstr = new StringBuilder();
|
|
string ServerStr = string.Empty;
|
|
if (Sdsi.Server != Ldsi.Server)
|
|
{
|
|
ServerStr = "[" + Sdsi.Server + "].";
|
|
}
|
|
sqlstr.AppendFormat(@"BEGIN TRAN
|
|
truncate table BasMaterial
|
|
insert into BasMaterial
|
|
(MaterialCode, MajorTypeID, MinorTypeID, RubCode, MaterialName, StaticClass
|
|
, IsEqualMaterial, IsPutJar, ERPCode, Remark, DeleteFlag)
|
|
select distinct PmtRecipeWeight.MaterialCode, MajorTypeID, MinorTypeID, RubCode, PmtRecipeWeight.MaterialName, StaticClass, IsEqualMaterial, IsPutJar, ERPCode, Remark, DeleteFlag
|
|
from {0}[{1}].DBO.PmtRecipeWeight,BasMaterial where PmtRecipeWeight.RecipeEquipCode='{2}'
|
|
and PmtRecipeWeight.MaterialCode=BasMaterial.MaterialCode
|
|
IF @@ERROR<>0
|
|
ROLLBACK TRAN
|
|
ELSE
|
|
COMMIT TRAN", ServerStr, Sdsi.Database,base.CurrEquipCode);
|
|
dbHelperlocal.CommandText = sqlstr.ToString();
|
|
dbHelperlocal.ExecuteNonQuery();
|
|
ShowMsg(base.Language(20));
|
|
}
|
|
}
|
|
#endregion
|
|
}
|