|
|
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;
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace Mesnac.Action.Feeding.ProducingPlan
|
|
|
{
|
|
|
public class UserGoShift : DatabaseAction, IAction
|
|
|
{
|
|
|
#region IAction 成员
|
|
|
|
|
|
public void Run(RuntimeParameter runtime)
|
|
|
{
|
|
|
DbHelper dbHelper = this.NewDbHelper(DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取本地数据连接失败...");
|
|
|
return;
|
|
|
}
|
|
|
string lastUserCode = base.GetConfigValue("LastUserID", "0");
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
sb.Append("Select DateDiff(Hour,Convert(DateTime,IsNull(FShiftDate,Convert(Varchar(19),GetDate(),120))),GetDate()) HCount ");
|
|
|
sb.Append("From Ppt_WorkerShiftRecord Where HrCode = @HrCode And FSIGN = 1 ");
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
dbHelper.CommandText = sb.ToString();
|
|
|
dbHelper.AddParameter("@HrCode", lastUserCode);
|
|
|
DataTable dt = dbHelper.ToDataTable();
|
|
|
if (dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0]["HCount"]) < 10)
|
|
|
{
|
|
|
if (Convert.ToInt32(dt.Rows[0]["HCount"]) < 10)
|
|
|
{
|
|
|
if (MessageBox.Show("上次上班到本次上班间隔时间不到10小时,确认吗?", Language(1), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
if (MessageBox.Show("上班成功后本机台的车次会重新编码,确定吗?", Language(1), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
|
|
return;
|
|
|
////确认无误更换用户操作
|
|
|
//SpeedButton1Click(Nil);
|
|
|
HrcodeVerify();
|
|
|
|
|
|
if (string.IsNullOrEmpty(base.GetConfigValue("LastUserName", "0")))
|
|
|
{
|
|
|
MessageBox.Show("主机手不能为空或者不存在!");
|
|
|
return;
|
|
|
}
|
|
|
try
|
|
|
{
|
|
|
lastUserCode = base.GetConfigValue("LastUserID", "0");
|
|
|
//删除本地UserSerialList表中数据
|
|
|
dbHelper = this.NewDbHelper(DataSourceFactory.MCDbType.Local);
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
string sqlstr = "Delete From UserSerialList Where HrCode = @HrCode ";
|
|
|
dbHelper.CommandText = sqlstr;
|
|
|
dbHelper.AddParameter("@HrCode", lastUserCode);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
//网络表中插入上班记录(首先将上一个班的做下班处理,然后再插入一个上班信息)
|
|
|
if (base.NetType == NetTypes.Net)
|
|
|
{
|
|
|
dbHelper = this.NewDbHelper(DataSourceFactory.MCDbType.Server);
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
StringBuilder serMsg = new StringBuilder();
|
|
|
serMsg.Append("Update Ppt_WorkerShiftRecord Set FSIGN = 2,MemNote = '已下班' Where FSIGN = 1 And HrCode = @HrCode And EquipCode = @EquipCode ");
|
|
|
serMsg.Append("Insert Into Ppt_WorkerShiftRecord (HRCode,HrName,ZJSID,EquipCode,FShiftDate,MemNote,FSIGN) Values(@HRCode,@HrName,@HRCode,@EquipCode,Convert(Varchar(19),GetDate(),120),'上班',1) ");
|
|
|
dbHelper.CommandText = serMsg.ToString();
|
|
|
dbHelper.AddParameter("@HrCode", lastUserCode);
|
|
|
dbHelper.AddParameter("@HrName", base.GetConfigValue("LastUserName", "0"));
|
|
|
dbHelper.AddParameter("@EquipCode", base.GetConfigValue("EquipCode", "0"));
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
}
|
|
|
//本地上班信息更新
|
|
|
dbHelper = this.NewDbHelper(DataSourceFactory.MCDbType.Local);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取本地数据连接失败...");
|
|
|
return;
|
|
|
}
|
|
|
dbHelper.ClearParameter();
|
|
|
dbHelper.CommandType = CommandType.Text;
|
|
|
StringBuilder colMsg = new StringBuilder();
|
|
|
colMsg.Append("Update Ppt_WorkerShiftRecord Set FSIGN = 2,MemNote = '已下班' Where FSIGN = 1 And HrCode = @HrCode And EquipCode = @EquipCode ");
|
|
|
colMsg.Append("Insert Into Ppt_WorkerShiftRecord (HRCode,HrName,ZJSID,EquipCode,FShiftDate,MemNote,FSIGN) Values(@HRCode,@HrName,@HRCode,@EquipCode,Convert(Varchar(19),GetDate(),120),'上班',1) ");
|
|
|
dbHelper.CommandText = colMsg.ToString();
|
|
|
dbHelper.AddParameter("@HrCode", lastUserCode);
|
|
|
dbHelper.AddParameter("@HrName", base.GetConfigValue("LastUserName", "0"));
|
|
|
dbHelper.AddParameter("@EquipCode", base.GetConfigValue("EquipCode", "0"));
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
MessageBox.Show("上班成功!");
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
|
|
|
throw;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region hrcode验证
|
|
|
public void HrcodeVerify()
|
|
|
{
|
|
|
FeedingAction fa = new FeedingAction();
|
|
|
DbMCControl planDateControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "[ppt_plan].[down_date]").FirstOrDefault();
|
|
|
DbMCControl pptShiftControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "PptShift").FirstOrDefault();
|
|
|
DbMCControl pptClassControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "PptClass").FirstOrDefault();
|
|
|
//DbMCControl pptUserIDControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.local, "UserID").FirstOrDefault();
|
|
|
Control pptUserIDControl = this.GetAllFormControlById("LastUserID").FirstOrDefault();
|
|
|
Control pptUserNameControl = this.GetAllFormControlById("LastUserName").FirstOrDefault();
|
|
|
//this.GetAllFormControlById(
|
|
|
if (planDateControl == null)
|
|
|
{
|
|
|
base.LogError("{当班计划-窗体加载} 缺少日期选择控件...");
|
|
|
return;
|
|
|
}
|
|
|
if (pptShiftControl == null)
|
|
|
{
|
|
|
base.LogError("{当班计划-窗体加载} 缺少班次组合框控件...");
|
|
|
return;
|
|
|
}
|
|
|
if (pptUserIDControl == null)
|
|
|
{
|
|
|
base.LogError("{当班计划-窗体加载} 主机手...");
|
|
|
return;
|
|
|
}
|
|
|
string LastUserID = ((TextBox)pptUserIDControl).Text;
|
|
|
string LastUsername = fa.GetHrName(LastUserID);
|
|
|
((Label)pptUserNameControl).Text = LastUsername;
|
|
|
if (string.IsNullOrEmpty(LastUsername))
|
|
|
{
|
|
|
MessageBox.Show("该主机手编码不存在!");
|
|
|
((TextBox)pptUserIDControl).Text = "";
|
|
|
return;
|
|
|
}
|
|
|
RunSchema.Instance.UpdateNodeValueToRunSchema("LastUserID", LastUserID);
|
|
|
RunSchema.Instance.UpdateNodeValueToRunSchema("LastUserName", LastUsername);
|
|
|
//执行网络库存储
|
|
|
string equipcode = base.GetConfigValue("EquipCode", "0");
|
|
|
string plandate = planDateControl.BaseControl.MCValue.ToString();
|
|
|
string shiftid = pptShiftControl.BaseControl.MCValue.ToString();
|
|
|
DbHelper dbHelper = this.NewDbHelper(DataSourceFactory.MCDbType.Server);
|
|
|
if (dbHelper == null)
|
|
|
{
|
|
|
base.LogError("获取本地数据连接失败...");
|
|
|
return;
|
|
|
}
|
|
|
dbHelper.CommandType = CommandType.StoredProcedure;
|
|
|
dbHelper.CommandText = "proc_SFJHuanBan";
|
|
|
dbHelper.AddParameter("@plandate", plandate);
|
|
|
dbHelper.AddParameter("@equipCode", equipcode);
|
|
|
dbHelper.AddParameter("@shiftid", shiftid);
|
|
|
dbHelper.AddParameter("@workerbar", LastUserID);
|
|
|
dbHelper.ExecuteNonQuery();
|
|
|
|
|
|
Mesnac.Communication.TcpService.Instance.NetSendMsg(Global.ProtocalHeader.SendWorkerBarcode + ":" + LastUserID + "/"); //发送网络消息
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
|
|
|
}
|