12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112 |
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using WCS_Client.Frm;
- using WCS_Client.Models;
- using WCS_Client.Utility;
- using WCS_Client.Workflow;
- using static WCS_Client.Frm.WCS_RGV521;
- using static WCS_Client.Frm.WCS_RGV523;
- using static WCS_Client.Frm.WCS_SC537;
- using static WCS_Client.Frm.WCS_STATION523;
- using WCS_TASK = WCS.Entity.WCS_TASK;
- namespace WCS_Client
- {
- public class BaseWorkflow
- {
- public static bool Login(string use_No, string use_Pwd, out string errMsg)
- {
- bool result = false;
- errMsg = string.Empty;
- string errorMsg = string.Empty;
- try
- {
- TryCachHelper.TryExecute((db) =>
- {
- var user = db.Queryable<WCS_Users>().First(v => v.USER_NO == use_No);
- if (user == null)
- {
- errorMsg = LangConst.UserNotExists;
- }
- else
- {
- if (user.USER_PWD == Md5Helper.Md5Hash(use_Pwd))
- {
- string user_textStr = BinaryHelper.ByteArray2BinaryStr(user.USER_TEXT);
- string jiemastr = BinaryHelper.jiema(user_textStr);
- WCS_Users userinfo = jiemastr.ToObject<WCS_Users>();
- userinfo.Use_LoginTime = DateTime.Now;
- string userjson = userinfo.ToJson();
- user.USER_TEXT = BinaryHelper.BinaryStr2ByteArray(BinaryHelper.bianma(userjson));
- if (db.Updateable(user).UpdateColumns(it => it.USER_TEXT).ExecuteCommand() > 0)
- {
- user.GetUserInfo(userinfo);
- CurrentHelper.User = user;
- result = true;
- }
- else
- {
- errorMsg = LangConst.UpdateError;
- }
- }
- else
- {
- errorMsg = LangConst.PasswordError;
- }
- }
- });
- //using (MAction action = new MAction(TableEnum.WCS_Users))
- //{
- // MDataTable mdt = action.Select();
- // var users = mdt.ToList<WCS_Users>();
- // var user = users.FirstOrDefault(v => v.USER_NO == use_No);
- // if (user == null)
- // {
- // errMsg = LangConst.UserNotExists;
- // }
- // else
- // {
- // if (user.USER_PWD == Md5Helper.Md5Hash(use_Pwd))
- // {
- // string user_textStr = BinaryHelper.ByteArray2BinaryStr(user.USER_TEXT);
- // string jiemastr = BinaryHelper.jiema(user_textStr);
- // WCS_Users userinfo = jiemastr.ToObject<WCS_Users>();
- // userinfo.Use_LoginTime = DateTime.Now;
- // string userjson = userinfo.ToJson();
- // user.USER_TEXT = BinaryHelper.BinaryStr2ByteArray(BinaryHelper.bianma(userjson));
- // action.Set("USER_TEXT", user.USER_TEXT);
- // string where = string.Format("USER_NO = '{0}'", user.USER_NO);
- // if (action.Update(where, false))
- // {
- // user.GetUserInfo(userinfo);
- // CurrentHelper.User = user;
- // //CurrentHelper.User.UserInfoItem = BinaryHelper.jiema(CurrentHelper.User.User_Text).ToObject<UserInfo>();
- // result = true;
- // }
- // else
- // {
- // errMsg = LangConst.UpdateError;
- // }
- // }
- // else
- // {
- // errMsg = LangConst.PasswordError;
- // }
- // }
- //}
- }
- catch (Exception ex)
- {
- LogHelper.Sys_Log.WriteLog(ex.ToString());
- throw new Exception(LangConst.SysError);
- }
- return result;
- }
- public static PageData QueryDatatble(DataTable dt, int PageIndex, int PageSize)
- {
- if (PageSize <= 0) PageSize = 2000;
- int startRecord = (PageIndex - 1) * PageSize + 1;
- int endRecord = startRecord + PageSize - 1;
- try
- {
-
- if (dt != null && dt.Rows.Count > 0)
- {
- int count = dt.Rows.Count;
- int PageCount = count / PageSize;
- if (count % PageSize > 0)
- PageCount += 1;
- PageData PageDataItem = new PageData();
- PageDataItem.PageIndex = PageIndex;
- PageDataItem.PageSize = PageSize;
- PageDataItem.PageCount = PageCount;
- PageDataItem.RowsCount = count;
- dt.TableName = "table";
- PageDataItem.Dt = dt;
- return PageDataItem;
- }
- }
- catch (Exception ex)
- {
- }
- return null;
- }
- public static PageData QueryPageData(string _SQLText, string orderText, List<string> WhereStringList, int PageIndex, int PageSize)
- {
- var sb = new StringBuilder();
- sb.Append(_SQLText);
- if (WhereStringList != null && WhereStringList.Count > 0)
- {
- foreach (var item in WhereStringList)
- {
- sb.Append(" and ");
- sb.Append(item);
- }
- }
- return QueryPageSql(sb.ToString(), orderText, PageIndex, PageSize);
- }
- private static PageData QueryPageSql(string SQLText, string OrderText, int PageIndex, int PageSize)
- {
- if (PageSize <= 0) PageSize = 2000;
- int startRecord = (PageIndex - 1) * PageSize + 1;
- int endRecord = startRecord + PageSize - 1;
- string sql = string.Format("select * from (select ROW_NUMBER() Over (Order By {0}) as RN,a.* from ({1}) a) b where b.RN between {2} and {3}", OrderText, SQLText, startRecord, endRecord);
- string CountStr = string.Format("Select Count(1) From ({0}) t", SQLText);
- try
- {
- DataTable dt = null;
- int count = 0;
- TryCachHelper.TryExecute((db) =>
- {
- dt = db.Ado.GetDataTable(sql);
- if (sql.Contains("dbo.WCS_TASK") && sql.Contains("STATUS < 99")) TaskWorkflow.DataTableAddColumn(dt, db);
- //else if (sql.Contains("[dbo].[WCS_EXCEPTION]")) ExceptionLogWorkflow.DataTableAddColumn(dt, db);
- count = Convert.ToInt32(db.Ado.GetScalar(CountStr));
- });
- int PageCount = count / PageSize;
- if (count % PageSize > 0)
- PageCount += 1;
- if (dt != null && dt.Rows.Count > 0)
- {
- if (dt.Rows[0][1].ToString() == "设备报警")
- {
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- TryCachHelper.TryExecute((db) =>
- {
- Type eType;
- if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 3) == "RGV")
- {
- eType = typeof(RgvFault1Enum);// RGVFault
- var eItem = Enum.Parse(eType, dt.Rows[i]["alarm"].ToString());
- if (eItem.ToString() == "无")
- dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.RGVDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- else
- dt.Rows[i]["ALARAMMSG"] = eItem.ToString() + " "+ eqpData.deviceDataPack.RGVDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- }
- else if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 3) == "SRM")
- {
- eType = typeof(SrmFault1Enum);// SCAlarm
- var eItem = Enum.Parse(eType, dt.Rows[i]["alarm"].ToString());
- if (eItem.ToString() == "无")
- dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.SCDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- else
- dt.Rows[i]["ALARAMMSG"] = eItem.ToString() + " " + eqpData.deviceDataPack.SCDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- }
- else
- {
- eType = typeof(ConvFaultEnum);//ConvFaultEnum StationFault
- var eItem = Enum.Parse(eType, dt.Rows[i]["alarm"].ToString());
- if (eItem.ToString() == "无")
- dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.StationDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- else
- dt.Rows[i]["ALARAMMSG"] = eItem.ToString() + " " + eqpData.deviceDataPack.StationDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- }
- });
- }
- }
- //if (dt.Rows[0][1].ToString() == "设备信息")
- //{
- // for (int i = 0; i < dt.Rows.Count; i++)
- // {
- // TryCachHelper.TryExecute((db) =>
- // {
- // Type eTypeAlarm;
- // Type eTypeMode;
- // Type eTypeStatus;
- // string mode = "";
- // string status = "";
- // if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 3) == "RGV")
- // {
- // eTypeAlarm = typeof(RGVPlatformFault);
- // eTypeMode = typeof(RGVMode);
- // eTypeStatus = typeof(RGVRunStatus);
- // var eItem = Enum.Parse(eTypeAlarm, dt.Rows[i]["alarm"].ToString());
- // if (eItem.ToString() == "无")
- // dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.RGVDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // else
- // dt.Rows[i]["ALARAMMSG"] = eItem.ToString() + " " + eqpData.deviceDataPack.RGVDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // }
- // else if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 2) == "SC")
- // {
- // eTypeAlarm = typeof(SCAlarm);
- // //eTypeMode = typeof(SCMode);
- // //eTypeStatus = typeof(SCRunStatus);
- // var eItem = Enum.Parse(eTypeAlarm, dt.Rows[i]["alarm"].ToString());
- // if (eItem.ToString() == "无")
- // dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.SCDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // else
- // dt.Rows[i]["ALARAMMSG"] = eItem.ToString() + " " + eqpData.deviceDataPack.SCDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // }
- // //else if (dt.Rows[i]["DEVICECODE"].ToString().Substring(0, 2) == "Ro")
- // //{
- // // eTypeMode = typeof(RobotMode1);
- // // eTypeStatus = typeof(RobotStatus1);
- // // dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.RobotData.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // //}
- // else
- // {
- // eTypeAlarm = typeof(StationFault);
- // if (dt.Rows[i]["mode"].ToString() == "0")
- // mode = "自动";
- // else
- // mode = "手动";
- // if (dt.Rows[i]["status"].ToString() == "0")
- // status = "无光电";
- // else
- // status = "有光电";
- // //eTypeMode = typeof(SCMode);
- // //eTypeStatus = typeof(SCRunStatus);
- // var eItem = Enum.Parse(eTypeAlarm, dt.Rows[i]["alarm"].ToString());
- // if (eItem.ToString() == "无")
- // dt.Rows[i]["ALARAMMSG"] = eqpData.deviceDataPack.StationDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // else
- // dt.Rows[i]["ALARAMMSG"] = eItem.ToString() + " " + eqpData.deviceDataPack.StationDatas.Datas.FirstOrDefault(v => v.Code == dt.Rows[i]["DEVICECODE"].ToString()).Info;
- // }
- // if (mode == "")
- // mode = Enum.Parse(eTypeMode, dt.Rows[i]["mode"].ToString()).ToString();
- // if (status == "")
- // status = Enum.Parse(eTypeStatus, dt.Rows[i]["status"].ToString()).ToString();
- // dt.Rows[i]["mode"] = mode;
- // dt.Rows[i]["status"] = status;
- // });
- // }
- //}
- PageData PageDataItem = new PageData();
- PageDataItem.PageIndex = PageIndex;
- PageDataItem.PageSize = PageSize;
- PageDataItem.PageCount = PageCount;
- PageDataItem.RowsCount = count;
- dt.TableName = "table";
- PageDataItem.Dt = dt;
- return PageDataItem;
- }
- }
- catch (Exception ex)
- {
- }
- return null;
- }
- public static PageData QueryPageData2(string _SQLText, string orderText, List<string> WhereStringList, int PageIndex, int PageSize)
- {
- var sb = new StringBuilder();
- sb.Append(_SQLText);
- if (WhereStringList != null && WhereStringList.Count > 0)
- {
- sb.Append(" and ");
- sb.Append(WhereStringList[0]);
- }
- return QueryPageSql2(sb.ToString(), orderText, PageIndex, PageSize);
- }
- private static PageData QueryPageSql2(string SQLText, string OrderText, int PageIndex, int PageSize)
- {
- if (PageSize <= 0) PageSize = 2000;
- int startRecord = (PageIndex - 1) * PageSize + 1;
- int endRecord = startRecord + PageSize - 1;
- string sql = string.Format("select * from (select ROW_NUMBER() Over (Order By {0}) as RN,a.* from ({1}) a) b where b.RN between {2} and {3}", OrderText, SQLText, startRecord, endRecord);
- string CountStr = string.Format("Select Count(1) From ({0}) t", SQLText);
- try
- {
- DataTable dt = null;
- int count = 0;
- TryCachHelper.TryExecute((db) =>
- {
- List<WCS_Users> usersList = db.SqlQueryable<WCS_Users>(sql).ToList();
- foreach (var item in usersList)
- {
- string binaryStr = BinaryHelper.ByteArray2BinaryStr(item.USER_TEXT);
- string jsonstr = BinaryHelper.jiema(binaryStr);
- var user = jsonstr.ToObject<WCS_Users>();
- item.GetUserInfo(user);
- }
- dt = DatatableConvertHelper.ToDataTable(usersList);
- count = Convert.ToInt32(db.Ado.GetScalar(CountStr));
- });
- int PageCount = count / PageSize;
- if (count % PageSize > 0)
- PageCount += 1;
- if (dt != null && dt.Rows.Count > 0)
- {
- PageData PageDataItem = new PageData();
- PageDataItem.PageIndex = PageIndex;
- PageDataItem.PageSize = PageSize;
- PageDataItem.PageCount = PageCount;
- PageDataItem.RowsCount = count;
- dt.TableName = "table";
- PageDataItem.Dt = dt;
- return PageDataItem;
- }
- }
- catch (Exception ex)
- {
- }
- return null;
- }
- public static DataTable CommonQueryUser(string sql)
- {
- DataTable dt = null;
- try
- {
- TryCachHelper.TryExecute((db) =>
- {
- List<WCS_Users> usersList = db.SqlQueryable<WCS_Users>(sql).ToList();
- foreach (var item in usersList)
- {
- var binaryStr = BinaryHelper.ByteArray2BinaryStr(item.USER_TEXT);
- string jsonstr = BinaryHelper.jiema(binaryStr);
- var user = jsonstr.ToObject<WCS_Users>();
- item.GetUserInfo(user);
- }
- dt = DatatableConvertHelper.ToDataTable(usersList);
- });
- }
- catch (Exception ex)
- {
- LogHelper.Sys_Log.WriteLog(ex.ToString());
- }
- return dt;
- }
- public static DataTable CommonQuery(string sql)
- {
- DataTable dt = null;
- TryCachHelper.TryExecute((db) =>
- {
- dt = db.Ado.GetDataTable(sql);
- });
- return dt;
- }
- public static string AddEditUser(WCS_Users user)
- {
- string result = string.Empty;
- try
- {
- if (user.USER_NO == LangConst.DefaultUser)
- {
- result = LangConst.DefaultUserError;
- }
- else
- {
- var json = user.ToJson();
- string binarystr = BinaryHelper.bianma(json);
- user.USER_TEXT = BinaryHelper.BinaryStr2ByteArray(binarystr);
- TryCachHelper.TryExecute((db) =>
- {
- var wcs_user = db.Queryable<WCS_Users>().First(v => v.USER_NO == user.USER_NO);
- if (wcs_user == null)
- {
- //默认密码
- user.USER_PWD = Md5Helper.Md5Hash(LangConst.DefaultPwd);
- db.Insertable(user).ExecuteCommand();
- }
- else
- {
- wcs_user.USER_TEXT = user.USER_TEXT;
- db.Updateable(wcs_user).UpdateColumns(it => it.USER_TEXT).ExecuteCommand();
- }
- });
- //using (MAction action = new MAction(TableEnum.WCS_Users))
- //{
- // if (action.Exists(user.USER_NO))
- // {
- // action.Set(WCS_UsersEnum.User_Text, user.USER_TEXT);
- // string where = string.Format("USER_NO = '{0}'", user.USER_NO);
- // action.Update(where, false);
- // }
- // else
- // {
- // //默认密码
- // user.USER_PWD = Md5Helper.Md5Hash(LangConst.DefaultPwd);
- // action.Set(WCS_UsersEnum.User_No, user.USER_NO);
- // action.Set(WCS_UsersEnum.User_Pwd, user.USER_PWD);
- // action.Set(WCS_UsersEnum.User_Text, user.USER_TEXT);
- // //插入信息
- // bool insertresult = action.Insert(InsertOp.None);
- // }
- //}
- }
- }
- catch (Exception ex)
- {
- LogHelper.Sys_Log.WriteLog(ex.ToString());
- result = string.Format("{0}或{1}", LangConst.AddError, LangConst.UpdateError);
- }
- return result;
- }
- public static string DeleteUser(string user_no)
- {
- string result = string.Empty;
- try
- {
- if (user_no == LangConst.DefaultUser)
- {
- result = LangConst.DefaultUserError;
- }
- else
- {
- TryCachHelper.TryExecute((db) =>
- {
- db.Deleteable<WCS_Users>().Where(v => v.USER_NO == user_no).ExecuteCommand();
- });
- }
- }
- catch (Exception ex)
- {
- LogHelper.Sys_Log.WriteLog(ex.ToString());
- result = LangConst.DeleteError;
- }
- return result;
- }
- public static string AdminModifyPwd(string user_no, string user_pwd)
- {
- string result = string.Empty;
- try
- {
- TryCachHelper.TryExecute((db) =>
- {
- var user = db.Queryable<WCS_Users>().First(v => v.USER_NO == user_no);
- if (user == null)
- {
- result = LangConst.UserNotExists;
- }
- else
- {
- var binaryStr = BinaryHelper.ByteArray2BinaryStr(user.USER_TEXT);
- var useritem = BinaryHelper.jiema(binaryStr).ToObject<WCS_Users>();
- useritem.Use_EditUserNo = CurrentHelper.User.USER_NO;
- useritem.Use_EditDateTime = DateTime.Now;
- var binStr = BinaryHelper.bianma(useritem.ToJson());
- user.USER_TEXT = BinaryHelper.BinaryStr2ByteArray(binStr);
- user.USER_PWD = Md5Helper.Md5Hash(user_pwd);
- db.Updateable(user).UpdateColumns(it => new { it.USER_TEXT, it.USER_PWD }).ExecuteCommand();
- }
- });
- //using (MAction action = new MAction(TableEnum.WCS_Users))
- //{
- // if (action.Exists(user_no))
- // {
- // MDataTable mdt = action.Select(user_no);
- // var user = mdt.ToList<WCS_Users>()[0];
- // var binaryStr = BinaryHelper.ByteArray2BinaryStr(user.USER_TEXT);
- // var useritem = BinaryHelper.jiema(binaryStr).ToObject<WCS_Users>();
- // useritem.Use_EditUserNo = CurrentHelper.User.USER_NO;
- // useritem.Use_EditDateTime = DateTime.Now;
- // // useritem.User_Pwd = Md5Helper.Md5Hash(user_pwd);
- // var binStr = BinaryHelper.bianma(useritem.ToJson());
- // user.USER_TEXT = BinaryHelper.BinaryStr2ByteArray(binStr);
- // action.Set(WCS_UsersEnum.User_Pwd, Md5Helper.Md5Hash(user_pwd));
- // action.Set(WCS_UsersEnum.User_Text, user.USER_TEXT);
- // string where = string.Format("User_No = '{0}'", user.USER_NO);
- // action.Update(where, false);
- // }
- // else
- // {
- // result = LangConst.UserNotExists;
- // }
- //}
- }
- catch (Exception ex)
- {
- LogHelper.Sys_Log.WriteLog(ex.ToString());
- result = LangConst.UpdateError;
- }
- return result;
- }
- public static DataTable QuerySex()
- {
- return CommonQuery(string.Format("SELECT * FROM WCS_Mappingentry where Mep_MappingType='Sex'"));
- }
- public static DataTable QueryUse_Role()
- {
- return CommonQuery(string.Format("SELECT * FROM WCS_Mappingentry where Mep_MappingType='RoleId'"));
- }
- public static DataTable QueryTaskType()
- {
- return CommonQuery(string.Format("SELECT * FROM WCS_Mappingentry where Mep_MappingType='COMTYPE'"));
- }
- public static void AddWCS_TASK_DTL(SqlSugarClient db, int task_id, int task_no, string posIdCur, string posIdNext, string msg)
- {
- var task_dtl = new WCS_TASK_DTL();
- task_dtl.ID = Guid.NewGuid().ToString();
- task_dtl.PARENTID = task_id;
- task_dtl.TASKNO = task_no.ToString();
- task_dtl.POSIDCUR = posIdCur;
- task_dtl.POSIDNEXT = posIdNext;
- task_dtl.DESCRIPTION = msg;
- task_dtl.EXECUTEDATE = DateTime.Now;
- db.Insertable(task_dtl).ExecuteCommand();
- }
- public static string UpdateTask(int taskid, TaskStatusType taskStatusType)
- {
- string result = string.Empty;
- //try
- //{
- // TryCachHelper.TryExecute((db) =>
- // {
- // var task = db.Queryable<WCS_TASK>().First(v => v.ID == taskid);
- // if (taskStatusType == TaskStatusType.重下堆垛机)
- // {
- // if (task.STATUS == TaskStatus.堆垛机执行)
- // {
- // if (task.TYPE == WCS.Entity.TaskType.出库 || task.TYPE == WCS.Entity.TaskType.移库)//出库,移库
- // {
- // task.TASK_WKSTATUS = 0;
- // task.ADDRFROM = task.ADDRFROM;
- // }
- // else if (task.TASK_COMTYPE == 1)//入库
- // {
- // task.TASK_WKSTATUS = 2;
- // }
- // task.TASK_EDITUSERNO = CurrentHelper.User.USER_NO;
- // task.TASK_EDITDATETIME = DateTime.Now;
- // db.Updateable(task).UpdateColumns(it => new { it.TASK_WKSTATUS, it.TASK_POSIDNEXT, it.TASK_EDITUSERNO, it.TASK_EDITDATETIME }).ExecuteCommand();
- // result = string.Format("任务[{0}]重下堆垛机成功。", task.TASK_NO);
- // AddWCS_TASK_DTL(db, task.TASK_NO, task.TASK_NO, task.TASK_POSIDCUR, task.TASK_POSIDNEXT, result + "操作用户:" + CurrentHelper.User.USER_NO);
- // }
- // else
- // {
- // result = string.Format("任务[{0}]不需要重下堆垛机。", task.TASK_NO);
- // }
- // }
- // else if (taskStatusType == TaskStatusType.重下输送机)
- // {
- // if (task.TASK_WKSTATUS != (int)WkStatus.堆垛机执行)
- // {
- // if (task.TASK_COMTYPE == 1 || task.TASK_COMTYPE == 4)//入库,移动
- // {
- // task.TASK_WKSTATUS = 0;
- // task.TASK_POSIDNEXT = task.TASK_POSIDFROM;
- // task.TASK_POSIDCUR = task.TASK_POSIDFROM;
- // task.TASK_EDITUSERNO = CurrentHelper.User.USER_NO;
- // task.TASK_EDITDATETIME = DateTime.Now;
- // db.Updateable(task).UpdateColumns(it => new { it.TASK_WKSTATUS, it.TASK_POSIDNEXT, it.TASK_POSIDCUR, it.TASK_EDITUSERNO, it.TASK_EDITDATETIME }).ExecuteCommand();
- // result = string.Format("任务[{0}]重下输送机成功。");
- // AddWCS_TASK_DTL(db, task.TASK_NO, task.TASK_NO, task.TASK_POSIDCUR, task.TASK_POSIDNEXT, result + "操作用户:" + CurrentHelper.User.USER_NO);
- // }
- // else
- // {
- // //出库,移库
- // result = string.Format("出库和移库任务[{0}]不能重下输送机。", task.TASK_NO);
- // }
- // }
- // else
- // {
- // result = string.Format("任务[{0}]状态为[堆垛机执行]不能重下输送机。", task.TASK_NO);
- // }
- // }
- // else if (taskStatusType == TaskStatusType.重下RGV上料 && task.TASK_WKSTATUS == (int)WkStatus.RGV上料执行)
- // {
- // task.TASK_WKSTATUS = 2;
- // task.TASK_EDITUSERNO = CurrentHelper.User.USER_NO;
- // task.TASK_EDITDATETIME = DateTime.Now;
- // db.Updateable(task).UpdateColumns(it => new { it.TASK_WKSTATUS, it.TASK_EDITUSERNO, it.TASK_EDITDATETIME }).ExecuteCommand();
- // var task_dtlSet = db.Queryable<WCS_TASK_DTL>().Where(v => v.PARENTID == task.TASK_NO).ToList();
- // var task_dtl = task_dtlSet.FirstOrDefault(v => v.DESCRIPTION.Contains("上料到RGV工位"));
- // int index = task_dtl.DESCRIPTION.IndexOf("上料到RGV工位");
- // int tempindex = task_dtl.DESCRIPTION.IndexOf('[', index);
- // string conveyerNo = task_dtl.DESCRIPTION.Substring(tempindex + 1, 4);
- // //解锁
- // db.Updateable<WCS_EQUIPMENTLOCK>().UpdateColumns(it => new WCS_EQUIPMENTLOCK { ISLOCK = false }).Where(v => v.EQUIPMENTNO == conveyerNo).ExecuteCommand();
- // result = string.Format("任务[{0}]重下RGV上料成功。");
- // AddWCS_TASK_DTL(db, task.TASK_NO, task.TASK_NO, task.TASK_POSIDCUR, task.TASK_POSIDNEXT, result + "操作用户:" + CurrentHelper.User.USER_NO);
- // }
- // else if (taskStatusType == TaskStatusType.重下RGV下料 && task.TASK_WKSTATUS == (int)WkStatus.RGV下料执行)
- // {
- // var task_dtlSet = db.Queryable<WCS_TASK_DTL>().Where(v => v.PARENTID == task.TASK_NO).ToList();
- // var task_dtl = task_dtlSet.FirstOrDefault(v => v.DESCRIPTION.Contains("上料到RGV工位"));
- // task.TASK_WKSTATUS = 3;
- // task.TASK_POSIDNEXT = task_dtl.POSIDNEXT;
- // task.TASK_EDITUSERNO = CurrentHelper.User.USER_NO;
- // task.TASK_EDITDATETIME = DateTime.Now;
- // db.Updateable(task).UpdateColumns(it => new { it.TASK_WKSTATUS, it.TASK_POSIDNEXT, it.TASK_EDITUSERNO, it.TASK_EDITDATETIME }).ExecuteCommand();
- // int index = task_dtl.DESCRIPTION.IndexOf("上料到RGV工位");
- // int tempindex = task_dtl.DESCRIPTION.IndexOf('[', index);
- // string conveyerNo = task_dtl.DESCRIPTION.Substring(tempindex + 1, 4);
- // //解锁
- // db.Updateable<WCS_EQUIPMENTLOCK>().UpdateColumns(it => new WCS_EQUIPMENTLOCK { ISLOCK = false }).Where(v => v.EQUIPMENTNO == conveyerNo).ExecuteCommand();
- // result = string.Format("任务[{0}]重下RGV下料成功。", task.TASK_NO);
- // AddWCS_TASK_DTL(db, task.TASK_NO, task.TASK_NO, task.TASK_POSIDCUR, task.TASK_POSIDNEXT, result + "操作用户:" + CurrentHelper.User.USER_NO);
- // }
- // else if (taskStatusType == TaskStatusType.重下任务)
- // {
- // if (task.TASK_COMTYPE == 1)//入库
- // {
- // if (task.TASK_POSIDTO.Length < 10)
- // {
- // //未分配货位,可重下
- // task.TASK_WKSTATUS = 0;
- // task.TASK_POSIDNEXT = task.TASK_POSIDFROM;
- // task.TASK_POSIDCUR = task.TASK_POSIDFROM;
- // task.TASK_EDITUSERNO = CurrentHelper.User.USER_NO;
- // task.TASK_EDITDATETIME = DateTime.Now;
- // db.Updateable(task).UpdateColumns(it => new { it.TASK_WKSTATUS, it.TASK_POSIDNEXT, it.TASK_POSIDCUR, it.TASK_EDITUSERNO, it.TASK_EDITDATETIME }).ExecuteCommand();
- // result = string.Format("任务[{0}]重新下发成功。", task.TASK_NO);
- // AddWCS_TASK_DTL(db, task.TASK_NO, task.TASK_NO, task.TASK_POSIDCUR, task.TASK_POSIDNEXT, result + "操作用户:" + CurrentHelper.User.USER_NO);
- // }
- // }
- // else if (task.TASK_COMTYPE == 4)//移动
- // {
- // if (task.TASK_WKSTATUS == 0)
- // {
- // result = string.Format("任务[{0}]未下发,不需要重下任务。", task.TASK_NO);
- // }
- // else
- // {
- // //移动任务,可重下
- // task.TASK_WKSTATUS = 0;
- // task.TASK_POSIDNEXT = task.TASK_POSIDFROM;
- // task.TASK_POSIDCUR = task.TASK_POSIDFROM;
- // task.TASK_EDITUSERNO = CurrentHelper.User.USER_NO;
- // task.TASK_EDITDATETIME = DateTime.Now;
- // db.Updateable(task).UpdateColumns(it => new { it.TASK_WKSTATUS, it.TASK_POSIDNEXT, it.TASK_POSIDCUR, it.TASK_EDITUSERNO, it.TASK_EDITDATETIME }).ExecuteCommand();
- // result = string.Format("任务[{0}]重新下发成功。", task.TASK_NO);
- // AddWCS_TASK_DTL(db, task.TASK_NO, task.TASK_NO, task.TASK_POSIDCUR, task.TASK_POSIDNEXT, result + "操作用户:" + CurrentHelper.User.USER_NO);
- // }
- // }
- // else if (task.TASK_COMTYPE == 2 || task.TASK_COMTYPE == 3)//出库,移库
- // {
- // result = string.Format("任务[{0}]是出库或移库任务,请使用[重下堆垛机]功能。", task.TASK_NO);
- // }
- // }
- // if (string.IsNullOrWhiteSpace(result))
- // {
- // throw new Exception(string.Format("任务[{0}]该状态下不支持[{1}]", task.TASK_NO, taskStatusType));
- // }
- // });
- //}
- //catch (Exception ex)
- //{
- // result = ex.Message;
- // LogHelper.Sys_Log.WriteLog(ex.ToString());
- //}
- return result;
- }
- /// <summary>
- /// 任务完成
- /// </summary>
- /// <param name="db"></param>
- /// <param name="conveyorOut">设备编号</param>
- /// <param name="taskno">任务号</param>
- /// <param name="temptype">类型 1:入库任务完成 2:堆垛机出库任务完成 3.移库完成 4:出库任务完成 5:任务取消 6:码盘 6:拆盘</param>
- public static string TaskComplete(int taskno, int temptype)
- {
- string result = string.Empty;
- string errorresult = TryCachHelper.TryExecute((db) =>
- {
- string status = "N";
- string MESSAGE = string.Empty;
- var outputResult = db.Ado.UseStoredProcedure<dynamic>(() =>
- {
- string spName = "BZ_TASKCOMPLETE";
- var p1 = new SugarParameter("@TEMPTASKNO", taskno);// 任务号
- var p2 = new SugarParameter("@TEMPTYPE", temptype);//类型(出库任务完成)
- var p3 = new SugarParameter("@STATUS", null, true);//反馈状态 Y:成功 N:失败
- var p4 = new SugarParameter("@MESSAGE", null, true);//反馈消息
- var dbResult = db.Ado.ExecuteCommand(spName, new SugarParameter[] { p1, p2, p3, p4 });
- status = p3.Value.ToString();
- MESSAGE = p4.Value.ToString();
- return dbResult;
- });
- if (status.Trim().ToUpper() == "N")
- {
- result = string.Format("任务[{0}]手动完成失败,传递参数:任务号[{1}]类型[{2}]反馈消息:[{3}]",
- taskno, taskno, temptype, MESSAGE);
- }
- else
- {
- result = string.Format("任务[{0}]手动完成成功。", taskno);
- }
- });
- if (!string.IsNullOrEmpty(errorresult)) result = errorresult;
- return result;
- }
- public static DateTime QuerySystemDate()
- {
- DateTime dt = DateTime.MinValue;
- TryCachHelper.TryExecute((db) =>
- {
- dt = db.Ado.GetDateTime("select sysdate from dual");
- });
- return dt;
- }
- public static void Equipment_UpdateLock(string equipmentNo, bool islock)
- {
- TryCachHelper.TryExecute((db) =>
- {
- db.Updateable<WCS_EQUIPMENTLOCK>().UpdateColumns(it => new WCS_EQUIPMENTLOCK() { ISLOCK = islock, UPDATETIME = DateTime.Now })
- .Where(it => it.EQUIPMENTNO == equipmentNo).ExecuteCommand();
- });
- }
- public static List<Frm.WCS_SC521> QueryStackerdDataDDJ(List<string> plcnameSet)
- {
- var stackerdDataSet = new List<Frm.WCS_SC521>();
- TryCachHelper.TryExecute((db) =>
- {
- stackerdDataSet = db.Queryable<Frm.WCS_SC521>().Where(v => plcnameSet.Contains(v.DEVICECODE) && v.ISLAST == true).ToList();
- });
- return stackerdDataSet;
- }
- public static List<Frm.WCS_RGV521> QueryStackerdDataRGV(List<string> plcnameSet)
- {
- var stackerdDataSet = new List<Frm.WCS_RGV521>();
- TryCachHelper.TryExecute((db) =>
- {
- stackerdDataSet = db.Queryable<Frm.WCS_RGV521>().Where(v => plcnameSet.Contains(v.DEVICECODE) && v.ISLAST == true).ToList();
- });
- return stackerdDataSet;
- }
- public static List<WCS_TASK> QueryTasks()
- {
- var tasks = new List<WCS_TASK>();
- TryCachHelper.TryExecute((db) =>
- {
- tasks = db.Queryable<WCS_TASK>().ToList();
- });
- return tasks;
- }
- public static void TaskUpdatePriority(SqlSugarClient db, int task_no, int priority)
- {
- if (db.Updateable<WCS_TASK>()
- .UpdateColumns(it => new WCS_TASK
- {
- Priority = priority,
- })
- .Where(v => v.ID == task_no).ExecuteCommand() < 0)
- {
- throw new Exception(string.Format("任务[{0}]修改优先级为[{0}]失败", task_no, priority));
- }
- }
- /// <summary>
- /// 任务完成
- /// </summary>
- /// <param name="task_no"></param>
- /// <param name="finishType"></param>
- /// <param name="message"></param>
- /// <returns></returns>
- public static bool BZ_TASKCOMPLETE(int task_no, int finishType, out string message)
- {
- message = string.Empty;
- return true;
- }
- /// <summary>
- /// 任务取消
- /// </summary>
- /// <param name="task_no">任务号</param>
- /// <param name="msg">消息</param>
- /// <returns>是否取消成功</returns>
- public static bool TaskCancel(int task_no, out string msg)
- {
- msg = string.Empty;
- return true;
- }
- public static string RestartTask(int task_no)
- {
- string result = TryCachHelper.TryExecute((db) =>
- {
- var task = db.Queryable<WCS_TASK>().First(v => v.ID == task_no);
- if (task == null)
- {
- throw new Exception(string.Format("未查询到[{0}]信息", task_no));
- }
- else
- {
- if (task.TYPE == WCS.Entity.TaskType.出库 && task.STATUS > 0 && task.STATUS < WCS.Entity.TaskStatus.已完成)
- {
- if (db.Updateable<WCS_TASK>()
- .UpdateColumns(it => new WCS_TASK
- {
- STATUS = 0,
- UPDATETIME = DateTime.Now
- })
- .Where(v => v.ID == task_no).ExecuteCommand() < 0)
- {
- throw new Exception(string.Format("任务[{0}]重置失败", task_no));
- }
- }
- else
- {
- throw new Exception(string.Format("任务[{0}]不是出库任务或者是已完成的出库不能执行[重下任务]", task_no));
- }
- }
- });
- return result;
- }
- public static string FinishTask(int task_no)
- {
- string result = TryCachHelper.TryExecute((db) =>
- {
- var task = db.Queryable<WCS_TASK>().First(v => v.ID == task_no);
- if (task == null)
- {
- throw new Exception(string.Format("未查询到[{0}]信息", task_no));
- }
- else
- {
- if (task.STATUS > WCS.Entity.TaskStatus.新建)
- {
- if (db.Updateable<WCS_TASK>()
- .UpdateColumns(it => new WCS_TASK
- {
- STATUS = WCS.Entity.TaskStatus.已完成,
- UPDATEUSER = CurrentHelper.User.USER_NO,
- UPDATETIME = DateTime.Now
- })
- .Where(v => v.ID == task_no).ExecuteCommand() < 0)
- {
- throw new Exception(string.Format("任务[{0}]手动完成失败", task_no));
- }
- }
- else
- {
- throw new Exception(string.Format("任务[{0}]未执行,不能执行[手动完成].", task_no));
- }
- }
- });
- return result;
- }
- public static string ClearTask(int task_no)
- {
- string result = TryCachHelper.TryTranExecute((db) =>
- {
- var task = db.Queryable<WCS_TASK>().First(v => v.ID == task_no);
- if (task == null)
- {
- throw new Exception(string.Format("未查询到[{0}]信息", task_no));
- }
- else
- {
- if (task.TYPE == WCS.Entity.TaskType.入库 && task.TaskGroupKey.Contains('_'))
- {
- var arr = task.TaskGroupKey.Split('_');
- if (!string.IsNullOrEmpty(arr[1].ToString()))
- {
- throw new Exception(string.Format("该任务[{0}]为任务组任务,不可取消", task_no));
- }
- }
- else if (task.STATUS < WCS.Entity.TaskStatus.已完成)
- {
- if (db.Updateable<WCS_TASK>()
- .UpdateColumns(it => new WCS_TASK
- {
- STATUS = WCS.Entity.TaskStatus.已取消,
- UPDATETIME = DateTime.Now
- })
- .Where(v => v.ID == task_no).ExecuteCommand() < 0)
- {
- throw new Exception(string.Format("任务[{0}]取消失败", task_no));
- }
- }
- else
- {
- throw new Exception(string.Format("任务[{0}]已完成或已取消,不能执行取消动作。", task_no));
- }
- }
- });
- return result;
- }
- public static string UdpateEndAddress(int task_no, string whid, string srm)
- {
- string nextAddress = string.Empty;
- var dicSet = new Dictionary<string, string>();
- string result = TryCachHelper.TryTranExecute((db) =>
- {
- if (string.IsNullOrWhiteSpace(srm))
- {
- throw new Exception(string.Format("请选择要变更的堆垛机"));
- }
- if (whid == "原料库")
- {
- dicSet.Add("srm01", "1092");
- dicSet.Add("srm02", "1094");
- dicSet.Add("srm03", "1096");
- dicSet.Add("srm04", "1098");
- dicSet.Add("srm05", "1100");
- }
- else if (whid == "成品库")
- {
- dicSet.Add("srm06", "2324");
- dicSet.Add("srm07", "2320");
- dicSet.Add("srm08", "2316");
- dicSet.Add("srm09", "2312");
- dicSet.Add("srm10", "2308");
- dicSet.Add("srm11", "2304");
- }
- else
- {
- throw new Exception(string.Format("仓库[{0}]错误。", whid));
- }
- nextAddress = dicSet[srm];
- var task = db.Queryable<WCS_TASK>().First(v => v.ID == task_no);
- if (task == null)
- {
- throw new Exception(string.Format("未查询到[{0}]信息", task_no));
- }
- else
- {
- if (task.ADDRTO.Length >= 10)
- {
- throw new Exception(string.Format("任务[{0}]已经分配货位,不能变更目标地址。", task_no));
- }
- else
- {
- if (db.Updateable<WCS_TASK>()
- .UpdateColumns(it => new WCS_TASK
- {
- ADDRNEXT = nextAddress,
- ADDRTO = srm,
- DEVICE = srm,
- TUNNEL = srm,
- UPDATEUSER = CurrentHelper.User.Use_Name,
- UPDATETIME = DateTime.Now
- })
- .Where(v => v.ID == task_no).ExecuteCommand() < 0)
- {
- throw new Exception(string.Format("任务[{0}]修改目标地址失败", task_no));
- }
- string msg = string.Format("任务[{0}]手动修改下个地址为[{1}]目标地址为[{2}]成功。", task_no, nextAddress, srm);
- var task_dtl = new WCS_TASK_DTL();
- task_dtl.ID = Guid.NewGuid().ToString();
- task_dtl.PARENTID = task_no;
- task_dtl.TASKNO = task_no.ToString();
- //task_dtl.POSIDCUR = task.ADDRFROM;
- task_dtl.POSIDNEXT = nextAddress;
- task_dtl.DESCRIPTION = msg;
- task_dtl.EXECUTEDATE = DateTime.Now;
- db.Insertable(task_dtl).ExecuteCommand();
- }
- }
- });
- if (string.IsNullOrWhiteSpace(result))
- {
- result = string.Format("任务[{0}]修改下个地址为[{1}]目标地址为[{2}]成功。", task_no, nextAddress, srm);
- }
- return result;
- }
- public static string UpdateTaskPriority(int task_no, int priority)
- {
- string result = TryCachHelper.TryTranExecute((db) =>
- {
- var task = db.Queryable<WCS_TASK>().First(v => v.ID == task_no);
- if (task == null)
- {
- throw new Exception(string.Format("未查询到WCS任务[{0}]信息", task_no));
- }
- else
- {
- if (db.Updateable<WCS_TASK>()
- .UpdateColumns(it => new WCS_TASK
- {
- Priority = priority,
- UPDATEUSER = CurrentHelper.User.Use_Name,
- UPDATETIME = DateTime.Now
- })
- .Where(v => v.ID == task_no).ExecuteCommand() < 0)
- {
- throw new Exception(string.Format("WCS任务[{0}]调整优先级失败", task_no));
- }
- string msg = string.Format("任务[{0}]调整优先级为[{1}]成功。", task_no, priority);
- }
- });
- if (string.IsNullOrWhiteSpace(result))
- {
- result = string.Format("任务[{0}]调整优先级[{1}]成功。", task_no, priority);
- }
- return result;
- }
- public static string CMByWorkShop(string txtcbworkshopno, string txtcbprolineno)
- {
- string result = TryCachHelper.TryTranExecute((db) =>
- {
- //创建AGV任务
- var agvtask = new Frm.WCS_AGVTask()
- {
- AGVStatus = Frm.AGVTaskStatus.新建,
- Status = Frm.AGVTaskStatus.新建,
- Position = txtcbprolineno,
- TaskType = Frm.AGVTaskType.叫料,
- CreateTime = DateTime.Now,
- UpdateTime = DateTime.Now,
- Workshop = int.Parse(txtcbworkshopno),
- Station = "G1340"
- };
- int task_id = db.Insertable(agvtask).ExecuteReturnIdentity();
- if (task_id <= 0)
- {
- throw new Exception(string.Format("WCS任务[{0}]添加agv任务失败", task_id));
- }
- });
- if (string.IsNullOrWhiteSpace(result))
- {
- result = string.Format("车间叫料成功!");
- }
- return result;
- }
- }
- }
|