public Schedules SelectSchedule(string scheduleNumber) { Schedules info = null; string strSql = "select * from Schedules where Number=@Number"; using (SqlCommand cmd = new SqlCommand(strSql, conn)) { cmd.Parameters.Add("@Number", SqlDbType.NVarChar); cmd.Parameters["@Number"].Value = scheduleNumber; SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); try { adapter.Fill(ds); } catch { } if (ds.Tables.Count < 1 || ds.Tables[0].Rows.Count < 1) { return(info); } DataRow dr = ds.Tables[0].Rows[0]; info = this.exchangeSchedule(dr); } return(info); }
private Schedules exchangeSchedule(DataRow dr) { Schedules info = new Schedules(); info.CreatorID = Convert.ToInt32(dr["CreatorID"]); info.CreatorName = dr["CreatorName"].ToString(); info.DateCreate = Convert.ToDateTime(dr["DateCreate"]); info.DateLastUpdate = Convert.ToDateTime(dr["DateLastUpdate"]); info.DetailInfo = dr["DetailInfo"].ToString(); info.DownContinueCount = Convert.ToInt32(dr["DownContinueCount"]); info.FinishCount = Convert.ToInt32(dr["FinishCount"]); info.ID = Convert.ToInt32(dr["ID"]); info.LastUpdatePersonID = Convert.ToInt32(dr["LastUpdatePersonID"]); info.LastUpdatePersonName = dr["LastUpdatePersonName"].ToString(); info.MachineId = Convert.ToInt32(dr["MachineId"]); info.MachineName = dr["MachineName"].ToString(); info.MaterialDetail = dr["MaterialDetail"].ToString(); info.MaterialInfo = dr["MaterialInfo"].ToString(); info.NoticeInfo = dr["NoticeInfo"].ToString(); info.Number = dr["Number"].ToString(); info.OrderId = Convert.ToInt32(dr["OrderId"]); info.OrderNumber = dr["OrderNumber"].ToString(); info.ProductCode = dr["ProductCode"].ToString(); info.ProductCount = Convert.ToInt32(dr["ProductCount"]); info.ProductInfo = dr["ProductInfo"].ToString(); info.ProductUnit = dr["ProductUnit"].ToString(); info.RoomId = Convert.ToInt32(dr["RoomId"]); info.RoomNumber = dr["RoomNumber"].ToString(); info.Status = (enumStatus)Enum.Parse(typeof(enumStatus), dr["Status"].ToString()); info.OrderId = Convert.ToInt32(dr["OrderId"]); return(info); }
/// <summary> /// 下派施工单编码 /// </summary> /// <param name="buff"></param> public static void EncodeSchedule(Schedules schedule, out byte[] buff) { byte[] content = new byte[1024]; int locIdx = 0, tempLen = 2; //机器码 byte[] machineBytes = ConvertHelper.Int16ToBytes(schedule.MachineId, true); Array.Copy(machineBytes, content, tempLen); locIdx += tempLen; //施工单编号 byte[] numberBytes = Encoding.ASCII.GetBytes(schedule.Number); tempLen = numberBytes.Length; content[locIdx++] = (byte)tempLen; Array.Copy(numberBytes, 0, content, locIdx, tempLen); locIdx += tempLen; //施工单商品总数量 byte[] countByte = ConvertHelper.Int32ToBytes(schedule.ProductCount, true); Array.Copy(countByte, 0, content, locIdx, 4); locIdx += 4; //上跳持续数量 countByte = ConvertHelper.Int16ToBytes(schedule.UpContinueCount, true); Array.Copy(countByte, 0, content, locIdx, 2); locIdx += 2; //落下持续数量 countByte = ConvertHelper.Int16ToBytes(schedule.DownContinueCount, true); Array.Copy(countByte, 0, content, locIdx, 2); locIdx += 2; //详细信息 byte[] detailBytes = Encoding.GetEncoding("GBK").GetBytes(schedule.DetailInfo); tempLen = detailBytes.Length; byte[] lengthByte = ConvertHelper.Int16ToBytes(tempLen, true); Array.Copy(lengthByte, 0, content, locIdx, 2); locIdx += 2; Array.Copy(detailBytes, 0, content, locIdx, tempLen); locIdx += tempLen; //注意事项 byte[] noticeBytes = Encoding.GetEncoding("GBK").GetBytes(schedule.NoticeInfo); tempLen = noticeBytes.Length; lengthByte = ConvertHelper.Int16ToBytes(tempLen, true); Array.Copy(lengthByte, 0, content, locIdx, 2); locIdx += 2; Array.Copy(noticeBytes, 0, content, locIdx, tempLen); locIdx += tempLen; NetStructure.NormalDataStruct data = new NetStructure.NormalDataStruct() { Code = enumCommandType.DOWN_SHEDULE_SEND, contentLen = locIdx, Content = content }; EncodeData(data, out buff); }
public byte[] HandlerClientData(byte[] buff) { byte[] buffResp = { 1 }; DbHandler db = new DbHandler(); NetStructure.DeviceMaterial outInfo = this.DecodeData(buff); Machines machine = db.SelectMachine(outInfo.MachineId); Schedules schedule = db.SelectSchedule(outInfo.ScheduleNumber); MachineCallMaterial innerInfo = this.exchangeData(machine, schedule); //记录原始数据 db.InsertMachineCallMaterial(innerInfo); buffResp[0] = 0; return(buffResp); }
public byte[] HandlerClientData(byte[] buff) { byte[] buffResp = { 1 }; DbHandler db = new DbHandler(); DateTime currentTime = DateTime.Now; NetStructure.DeviceStartEnd outInfo = this.DecodeData(buff); Machines machine = db.SelectMachine(outInfo.MachineId); Schedules schedule = db.SelectSchedule(outInfo.ScheduleNumber); UserProfile userInfo = db.SelectUser(outInfo.UserNumber); MachineStartEnd innerInfo = this.exchangeData(outInfo, machine, schedule, userInfo); //记录原始数据 if (outInfo.Status == enumDeviceWorkStatus.Start) { innerInfo.DateStart = currentTime; db.InsertMachineStartEnd(innerInfo); } else { int startId = db.GetStartEndID(new MachineStartEnd() { MachineId = outInfo.MachineId, SchueduleNumber = outInfo.ScheduleNumber, UserNumber = outInfo.UserNumber, Status = enumDeviceWorkStatus.Start }); if (startId == 0) { innerInfo.DateEnd = currentTime; db.InsertMachineStartEnd(innerInfo); } else { db.FinishStartStatus(startId); } } buffResp[0] = 0; return(buffResp); }
/// <summary> /// 内外部数据转换 /// </summary> /// <param name="info"></param> /// <param name="machine"></param> /// <returns></returns> private MachineCallMaterial exchangeData(Machines machine, Schedules schedule) { return(new MachineCallMaterial() { DateCreate = DateTime.Now, MachineNumber = machine.Number, MachineId = machine.ID, MachineName = machine.Name, RoomId = machine.RoomID, RoomNumber = machine.RoomName, RoomName = machine.RoomName, OrderId = schedule.OrderId, OrderNumber = schedule.OrderNumber, ScheduleId = schedule.ID, SchueduleNumber = schedule.Number, MaterialInfo = schedule.MaterialDetail, Status = enumDeviceWarnningStatus.Unhandler }); }
/// <summary> /// 施工单操作编码 /// </summary> /// <param name="schedule"></param> /// <param name="buff"></param> public static void EncodeScheHandler(Schedules schedule, enumCommandType command, out byte[] buff) { byte[] content = new byte[1024]; int locIdx = 0, tempLen = 2; //机器码 byte[] machineBytes = ConvertHelper.Int16ToBytes(schedule.MachineId, true); Array.Copy(machineBytes, content, tempLen); locIdx += tempLen; //施工单编号 byte[] numberBytes = Encoding.ASCII.GetBytes(schedule.Number); tempLen = numberBytes.Length; content[locIdx++] = (byte)tempLen; Array.Copy(numberBytes, 0, content, locIdx, tempLen); locIdx += tempLen; NetStructure.NormalDataStruct data = new NetStructure.NormalDataStruct() { Code = command, contentLen = locIdx, Content = content }; EncodeData(data, out buff); }
/// <summary> /// 内外部数据转换 /// </summary> /// <param name="info"></param> /// <param name="machine"></param> /// <returns></returns> private MachineStartEnd exchangeData(NetStructure.DeviceStartEnd outInfo, Machines machine, Schedules schedule, UserProfile userInfo) { MachineStartEnd startEndItem = new MachineStartEnd() { MachineNumber = machine.Number, MachineId = machine.ID, MachineName = machine.Name, RoomId = machine.RoomID, RoomNumber = machine.RoomName }; startEndItem.OrderId = schedule.OrderId; startEndItem.OrderNumber = schedule.OrderNumber; startEndItem.ScheduleId = schedule.ID; startEndItem.SchueduleNumber = schedule.Number; startEndItem.UserId = userInfo == null ? 0 : userInfo.UserId; startEndItem.UserNumber = userInfo == null ? "" : userInfo.UserName; startEndItem.Status = outInfo.Status; return(startEndItem); }