/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_MAP_DOOR GetModel(decimal MAP_ID, decimal DOOR_ID, int DOOR_TYPE) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 MAP_ID,DOOR_ID,LOCATION_X,LOCATION_Y,WIDTH,HEIGHT,DOOR_TYPE from SMT_MAP_DOOR "); strSql.Append(" where MAP_ID=@MAP_ID and DOOR_ID=@DOOR_ID and DOOR_TYPE=@DOOR_TYPE "); SqlParameter[] parameters = { new SqlParameter("@MAP_ID", SqlDbType.Decimal, 9), new SqlParameter("@DOOR_ID", SqlDbType.Decimal, 9), new SqlParameter("@DOOR_TYPE", SqlDbType.TinyInt, 1) }; parameters[0].Value = MAP_ID; parameters[1].Value = DOOR_ID; parameters[2].Value = DOOR_TYPE; Maticsoft.Model.SMT_MAP_DOOR model = new Maticsoft.Model.SMT_MAP_DOOR(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_MAP_DOOR DataRowToModelWithDoor(DataRow row) { Maticsoft.Model.SMT_MAP_DOOR model = new Maticsoft.Model.SMT_MAP_DOOR(); if (row != null) { if (row["MAP_ID"] != null && row["MAP_ID"].ToString() != "") { model.MAP_ID = decimal.Parse(row["MAP_ID"].ToString()); } if (row["DOOR_ID"] != null && row["DOOR_ID"].ToString() != "") { model.DOOR_ID = decimal.Parse(row["DOOR_ID"].ToString()); } if (row["LOCATION_X"] != null && row["LOCATION_X"].ToString() != "") { model.LOCATION_X = decimal.Parse(row["LOCATION_X"].ToString()); } if (row["LOCATION_Y"] != null && row["LOCATION_Y"].ToString() != "") { model.LOCATION_Y = decimal.Parse(row["LOCATION_Y"].ToString()); } if (row["WIDTH"] != null && row["WIDTH"].ToString() != "") { model.WIDTH = decimal.Parse(row["WIDTH"].ToString()); } if (row["HEIGHT"] != null && row["HEIGHT"].ToString() != "") { model.HEIGHT = decimal.Parse(row["HEIGHT"].ToString()); } if (row["DOOR_TYPE"] != null && row["DOOR_TYPE"].ToString() != "") { model.DOOR_TYPE = int.Parse(row["DOOR_TYPE"].ToString()); } if (model.DOOR_TYPE == 1) { Maticsoft.DAL.SMT_DOOR_INFO doorDAL = new SMT_DOOR_INFO(); model.DOOR = doorDAL.DataRowToModel(row); } else { Maticsoft.DAL.SMT_FACERECG_DEVICE faceDAL = new SMT_FACERECG_DEVICE(); model.FACE = faceDAL.DataRowToModel(row); } } return(model); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(Maticsoft.Model.SMT_MAP_DOOR model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update SMT_MAP_DOOR set "); strSql.Append("LOCATION_X=@LOCATION_X,"); strSql.Append("LOCATION_Y=@LOCATION_Y,"); strSql.Append("WIDTH=@WIDTH,"); strSql.Append("HEIGHT=@HEIGHT"); strSql.Append(" where MAP_ID=@MAP_ID and DOOR_ID=@DOOR_ID and DOOR_TYPE=@DOOR_TYPE "); SqlParameter[] parameters = { new SqlParameter("@LOCATION_X", SqlDbType.Real, 4), new SqlParameter("@LOCATION_Y", SqlDbType.Real, 4), new SqlParameter("@WIDTH", SqlDbType.Real, 4), new SqlParameter("@HEIGHT", SqlDbType.Real, 4), new SqlParameter("@MAP_ID", SqlDbType.Decimal, 9), new SqlParameter("@DOOR_ID", SqlDbType.Decimal, 9), new SqlParameter("@DOOR_TYPE", SqlDbType.TinyInt, 1) }; parameters[0].Value = model.LOCATION_X; parameters[1].Value = model.LOCATION_Y; parameters[2].Value = model.WIDTH; parameters[3].Value = model.HEIGHT; parameters[4].Value = model.MAP_ID; parameters[5].Value = model.DOOR_ID; parameters[6].Value = model.DOOR_TYPE; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 增加一条数据 /// </summary> public bool Add(Maticsoft.Model.SMT_MAP_DOOR model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into SMT_MAP_DOOR("); strSql.Append("MAP_ID,DOOR_ID,LOCATION_X,LOCATION_Y,WIDTH,HEIGHT,DOOR_TYPE)"); strSql.Append(" values ("); strSql.Append("@MAP_ID,@DOOR_ID,@LOCATION_X,@LOCATION_Y,@WIDTH,@HEIGHT,@DOOR_TYPE)"); SqlParameter[] parameters = { new SqlParameter("@MAP_ID", SqlDbType.Decimal, 9), new SqlParameter("@DOOR_ID", SqlDbType.Decimal, 9), new SqlParameter("@LOCATION_X", SqlDbType.Real, 4), new SqlParameter("@LOCATION_Y", SqlDbType.Real, 4), new SqlParameter("@WIDTH", SqlDbType.Real, 4), new SqlParameter("@HEIGHT", SqlDbType.Real, 4), new SqlParameter("@DOOR_TYPE", SqlDbType.TinyInt, 1) }; parameters[0].Value = model.MAP_ID; parameters[1].Value = model.DOOR_ID; parameters[2].Value = model.LOCATION_X; parameters[3].Value = model.LOCATION_Y; parameters[4].Value = model.WIDTH; parameters[5].Value = model.HEIGHT; parameters[6].Value = model.DOOR_TYPE; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 得到一个对象实体 /// </summary> public Maticsoft.Model.SMT_MAP_DOOR DataRowToModel(DataRow row) { Maticsoft.Model.SMT_MAP_DOOR model = new Maticsoft.Model.SMT_MAP_DOOR(); if (row != null) { if (row["MAP_ID"] != null && row["MAP_ID"].ToString() != "") { model.MAP_ID = decimal.Parse(row["MAP_ID"].ToString()); } if (row["DOOR_ID"] != null && row["DOOR_ID"].ToString() != "") { model.DOOR_ID = decimal.Parse(row["DOOR_ID"].ToString()); } if (row["LOCATION_X"] != null && row["LOCATION_X"].ToString() != "") { model.LOCATION_X = decimal.Parse(row["LOCATION_X"].ToString()); } if (row["LOCATION_Y"] != null && row["LOCATION_Y"].ToString() != "") { model.LOCATION_Y = decimal.Parse(row["LOCATION_Y"].ToString()); } if (row["WIDTH"] != null && row["WIDTH"].ToString() != "") { model.WIDTH = decimal.Parse(row["WIDTH"].ToString()); } if (row["HEIGHT"] != null && row["HEIGHT"].ToString() != "") { model.HEIGHT = decimal.Parse(row["HEIGHT"].ToString()); } if (row["DOOR_TYPE"] != null && row["DOOR_TYPE"].ToString() != "") { model.DOOR_TYPE = int.Parse(row["DOOR_TYPE"].ToString()); } } return(model); }
private void biSave_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(tbMapName.Text)) { WinInfoHelper.ShowInfoWindow(this, "地图名称不能为空!"); tbMapName.Focus(); return; } if (_mapInfo == null) { _mapInfo = new Maticsoft.Model.SMT_MAP_INFO(); _mapInfo.CREATE_TIME = DateTime.Now; _mapInfo.ID = -1; } if (mapCtrl.MapImage != null) { MemoryStream ms = new MemoryStream(); using (Bitmap bitmap = new Bitmap(mapCtrl.MapImage)) { bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); } _mapInfo.MAP_IMAGE = ms.GetBuffer(); ms.Dispose(); } else { _mapInfo.MAP_IMAGE = new byte[0]; } _mapInfo.MAP_NAME = tbMapName.Text.Trim(); _mapInfo.GROUP_ID = -1; var doors = mapCtrl.GetDoors(); CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_MAP_INFO mapBll = new Maticsoft.BLL.SMT_MAP_INFO(); Maticsoft.BLL.SMT_MAP_DOOR mdBll = new Maticsoft.BLL.SMT_MAP_DOOR(); List <Maticsoft.Model.SMT_MAP_DOOR> mds = new List <Maticsoft.Model.SMT_MAP_DOOR>(); foreach (var item in doors) { Maticsoft.Model.SMT_MAP_DOOR md = new Maticsoft.Model.SMT_MAP_DOOR(); md.DOOR_ID = item.Id; md.MAP_ID = _mapInfo.ID; md.DOOR_TYPE = item.DoorType; md.LOCATION_X = (decimal)item.RatioX; md.LOCATION_Y = (decimal)item.RatioY; md.WIDTH = (decimal)item.RatioWidth; md.HEIGHT = (decimal)item.RatioHeight; mds.Add(md); } if (_mapInfo.ID == -1) { _mapInfo.ID = mapBll.Add(_mapInfo); SmtLog.Info("配置", "添加地图:" + _mapInfo.MAP_NAME); } else { mapBll.Update(_mapInfo); SmtLog.Info("配置", "更新地图:" + _mapInfo.MAP_NAME); var olds = mdBll.GetModelList("MAP_ID=" + _mapInfo.ID); foreach (var old in olds) { mdBll.Delete(old.MAP_ID, old.DOOR_ID, old.DOOR_TYPE); } } foreach (var md in mds) { md.MAP_ID = _mapInfo.ID; mdBll.Add(md); _selectNodes.Find(m => { if (m.Tag is Maticsoft.Model.SMT_DOOR_INFO) { if (((Maticsoft.Model.SMT_DOOR_INFO)m.Tag).ID == md.DOOR_ID && md.DOOR_TYPE == 1) { md.DOOR = (Maticsoft.Model.SMT_DOOR_INFO)m.Tag; return(true); } } else if (m.Tag is Maticsoft.Model.SMT_FACERECG_DEVICE) { if (((Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag).ID == md.DOOR_ID && md.DOOR_TYPE == 2) { md.FACE = (Maticsoft.Model.SMT_FACERECG_DEVICE)m.Tag; return(true); } } return(false); }); } _mapInfo.MAP_DOORS = mds; IsChanged = true; this.Invoke(new Action(() => { this.Text = "修改地图:" + tbMapName.Text; })); WinInfoHelper.ShowInfoWindow(this, "保存地图成功!"); } catch (Exception ex) { log.Error("保存地图异常:", ex); WinInfoHelper.ShowInfoWindow(this, "保存异常!" + ex.Message); } }); waiting.Show(this); }