/// <summary> /// 调用摄像头门卫录入拜访人脸照片 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public void SaveFileImgForm(CarUserFileImgEntity entity) { Repository <CarUserFileImgEntity> inlogdb = new Repository <CarUserFileImgEntity>(DbFactory.Base()); CarUserFileImgEntity old = inlogdb.FindEntity(entity.ID); if (old != null) { if (string.IsNullOrEmpty(old.Userimg)) {//人脸信息未录入 #region 获取海康地址和秘钥 DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //海康服务器密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康服务器地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } #endregion FacedataEntity face = new FacedataEntity(); List <FacedataEntity> FaceList = new List <FacedataEntity>(); face.UserId = old.ID; face.ImgData = entity.Imgdata; FaceList.Add(face); SocketHelper.UploadFace(FaceList, baseurl, Key, Signature); } old.Userimg = entity.Userimg; old.Imgdata = entity.Imgdata; inlogdb.Update(old); } }
/// <summary> /// 获取人员来自培训平台的考试记录 /// </summary> /// <param name="userAccount"></param> /// <returns></returns> public string GetExamRecord(string userId, string userAccount, string deptId, string idCard = "") { string fileName = "Train_" + DateTime.Now.ToString("yyyyMMdd") + ".log"; try { if (string.IsNullOrEmpty(deptId)) { var user = GetUserInfoEntity(userId); deptId = BaseRepository().FindObject(string.Format("select px_deptid from xss_dept where deptid='{0}'", user.DepartmentId)).ToString(); } WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; wc.Headers.Add("Content-Type", "text/json; charset=utf-8"); System.Collections.Specialized.NameValueCollection nc = new System.Collections.Specialized.NameValueCollection(); //发送请求到web api并获取返回值,默认为post方式 string url = new DataItemDetailService().GetItemValue("TrainServiceUrl"); string json = Newtonsoft.Json.JsonConvert.SerializeObject(new { business = "GetExamRecord", idcard = idCard, DeptId = deptId, userAccount = userAccount }); nc.Add("json", json); string result = wc.DownloadString(new Uri(url + "?json=" + json)); System.IO.File.AppendAllText(HttpContext.Current.Server.MapPath("~/logs/" + fileName), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " :获取人员考试记录,远程服务器返回信息:" + result + "\r\n"); return(result); } catch (Exception ex) { System.IO.File.AppendAllText(HttpContext.Current.Server.MapPath("~/logs/" + fileName), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " :获取人员考试记录异常,信息:" + ex.Message + "\r\n"); return(""); } }
/// <summary> /// 获取通行岗唯一标示(即车库) /// </summary> /// <param name="name"></param> /// <param name="type"></param> /// <returns></returns> public string GetTrafficPost(string currentid, int type) { string res = string.Empty; try { switch (type) { case 1: //私家车 res = currentid; break; case 6: //临时通行车辆 res = currentid; break; default: DataItemDetailService itembll = new DataItemDetailService(); IEnumerable <DataItemModel> list = itembll.GetDataItemListByItemCode("KmCarType"); var entity = list.Where(a => a.ItemValue == type.ToString()).FirstOrDefault(); if (entity != null && entity.Description != null) { //编码管理中设置 res = entity.Description.Replace("<p>", "").Replace("</p>", "").Trim();; } break; } } catch (Exception) { throw; } return(res); }
/// <summary> /// 离场或拒绝入场删除海康平台人员信息 /// </summary> /// <param name="list">离厂人员</param> /// <param name="type">0拒绝入场 1人员离厂</param> public void DeleteUserHiK(List <CarUserFileImgEntity> list, int type = 0) { if (list.Count > 0) { DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //海康服务器密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康服务器地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } string Url = "/artemis/api/resource/v1/person/batch/delete";//接口地址 List <string> dellist = new List <string>(); foreach (var item in list) { dellist.Add(item.ID); } if (type == 1) { DeleteUserlimits(list, baseurl, Key, Signature); } ; var model = new { personIds = dellist }; SocketHelper.LoadCameraList(model, baseurl, Url, Key, Signature); } }
/// <summary> /// 普通设备离场 /// </summary> /// <param name="equipmentId">用户Id</param> /// <param name="leaveTime">离场时间</param> /// <returns></returns> public int SetLeave(string equipmentId, string leaveTime, string DepartureReason) { DataItemDetailService service = new DataItemDetailService(); leaveTime = "to_date('" + leaveTime + " 00:00:00','yyyy-mm-dd hh24:mi:ss')"; return(this.BaseRepository().ExecuteBySql(string.Format("update BIS_EQUIPMENT set state={0},DepartureTime={1},DepartureReason='{3}' where id in('{2}')", service.GetItemValue("离厂", "EQUIPMENTSTATE"), leaveTime, equipmentId.Replace(",", "','"), DepartureReason))); }
/// <summary> /// 单个添加人脸 /// </summary> public void SaveSingleFace(TemporaryUserEntity insert) { DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康地址 string Key = string.Empty; string Signature = string.Empty; string url = "/artemis/api/resource/v1/face/single/add"; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } var model = new { personId = insert.USERID, faceData = insert.ImgData }; HttpUtillibKbs.SetPlatformInfo(Key, Signature, baseurl, 443, true); byte[] result = HttpUtillibKbs.HttpPost(url, JsonConvert.SerializeObject(model), 20); //string msg = System.Text.Encoding.UTF8.GetString(result); //string msg = SocketHelper.LoadCameraList(model, baseurl, url, Key, Signature); }
/// <summary> ///根据辨识计划ID获取相关风险点的各状态数量信息 /// </summary> /// <param name="planId">计划ID</param> /// <param name="startDate">计划开始时间</param> /// <param name="endDate">计划结束时间</param> /// <returns>依次为原有风险数量,新增风险数量,完善风险数量,删除风险数量和现有风险数量</returns> public List <int> GetNumbers(string planId, string startDate, string endDate, int status, string areaId) { DataItemDetailService detailservice = new DataItemDetailService(); string gxhs = detailservice.GetItemValue("广西华昇版本"); string tableName = status == 0 ? "BIS_RISKASSESS" : "BIS_RISKHISTORY"; List <int> list = new List <int>(); //原有风险数量 string sql = string.Format("select risknumbers from BIS_RISKPLAN where id='{0}'", planId); int num1 = this.BaseRepository().FindObject(sql).ToInt(); list.Add(num1); //新增风险数量 int num2 = this.BaseRepository().FindObject(string.Format("select count(1) from {1} where planid='{0}' and EnabledMark=0 and deletemark=0 and status=2", planId, tableName)).ToInt(); list.Add(num2); //完善风险数量 int num3 = this.BaseRepository().FindObject(string.Format("select count(1) from {1} where planid='{0}' and state=1 and status=1", planId, tableName)).ToInt(); list.Add(num3); //消除风险数量 int num4 = this.BaseRepository().FindObject(string.Format("select count(1) from {1} where planid='{0}' and status=1 and state=2", planId, tableName)).ToInt(); list.Add(num4); //现有风险数量 if (!string.IsNullOrWhiteSpace(gxhs)) { sql = string.Format("select count(1) from {1} where deletemark=0 and createdate<=to_date('{0}','yyyy-mm-dd hh24:mi:ss') and deptcode in (select DEPTCODE from bis_riskpplandata t where t.planid ='{2}') ", DateTime.Parse(endDate.ToString()).ToString("yyyy-MM-dd 23:59:59"), tableName, planId); if (status == 1) { sql = string.Format("select count(1) from {1} where deletemark=0 and createdate<=to_date('{0}','yyyy-mm-dd hh24:mi:ss') and newplanid='{2}'", DateTime.Parse(endDate.ToString()).ToString("yyyy-MM-dd 23:59:59"), tableName, planId); } num4 = this.BaseRepository().FindObject(sql).ToInt(); list.Add(num4); } else { sql = string.Format("select count(1) from {1} where deletemark=0 and createdate<=to_date('{0}','yyyy-mm-dd hh24:mi:ss') and districtid in('{2}')", DateTime.Parse(endDate.ToString()).ToString("yyyy-MM-dd 23:59:59"), tableName, areaId.Replace(",", "','")); if (DbHelper.DbType == DatabaseType.MySql) { sql = string.Format("select count(1) from {1} where deletemark=0 and createdate<='{0}' and districtid in('{2}')", DateTime.Parse(endDate.ToString()).ToString("yyyy-MM-dd 23:59:59"), tableName, areaId.Replace(",", "','")); } if (status == 1) { sql = string.Format("select count(1) from {1} where deletemark=0 and createdate<=to_date('{0}','yyyy-mm-dd hh24:mi:ss') and newplanid='{2}'", DateTime.Parse(endDate.ToString()).ToString("yyyy-MM-dd 23:59:59"), tableName, planId); if (DbHelper.DbType == DatabaseType.MySql) { sql = string.Format("select count(1) from {1} where deletemark=0 and createdate<='{0}' and newplanid='{2}'", DateTime.Parse(endDate.ToString()).ToString("yyyy-MM-dd 23:59:59"), tableName, planId); } } num4 = this.BaseRepository().FindObject(sql).ToInt(); list.Add(num4); } //辨识部门、评估部门原有风险数量 sql = string.Format("select count(1) from BIS_RISKASSESS where createdate<to_date('{0}','yyyy-mm-dd hh24:mi:ss') and status=1 and deletemark=0 and EnabledMark=0 and deptcode in (select DEPTCODE from bis_riskpplandata t where t.planid ='{1}') ", DateTime.Parse(startDate).ToString("yyyy-MM-dd 00:00:01"), planId); int num5 = this.BaseRepository().FindObject(sql).ToInt(); list.Add(num5); return(list); }
/// <summary> /// 将临时人员信息上传到海康平台 /// </summary> /// <param name="entity"></param> /// <param name="list"></param> public AddJurisdictionEntity InsertTempUserHiK(TemporaryUserEntity entity, List <TemporaryUserEntity> list) { DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康地址 string Key = string.Empty; string Signature = string.Empty; string no = new Random().Next(10, 888888).ToString(); if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } string Url = "/artemis/api/resource/v1/person/single/add"; foreach (var item in list) { //人脸信息(base64必须为jpg格式) List <FaceEntity> faces = new List <FaceEntity>(); FaceEntity face = new FaceEntity(); face.faceData = item.ImgData; faces.Add(face); string orgcode = "root000000"; if (item.Istemporary == 0) { orgcode = item.Groupsid; } var model = new { personId = item.USERID, personName = item.UserName, gender = "1", orgIndexCode = orgcode, birthday = "1990-01-01", phoneNo = item.Tel, email = "*****@*****.**", certificateType = "990", certificateNo = no, jobNo = item.Tel, faces }; //string msg = SocketHelper.LoadCameraList(model, baseurl, Url, Key, Signature); HttpUtillibKbs.SetPlatformInfo(Key, Signature, baseurl, 443, true); byte[] result = HttpUtillibKbs.HttpPost(Url, JsonConvert.SerializeObject(model), 20); if (result != null) { string msg = System.Text.Encoding.UTF8.GetString(result); parkList1 pl = JsonConvert.DeserializeObject <parkList1>(msg); if (pl != null && pl.code == "0") { SetLoadUserCarNo(item, baseurl, Key, Signature); } } } //添加权限 return(UploadUserlimits(list, baseurl, Key, Signature)); }
/// <summary> /// 获取分页列表 /// </summary> /// <param name="pagination"></param> /// <param name="queryJson"></param> /// <returns></returns> public DataTable GetList(Pagination pagination, string queryJson) { DatabaseType dataType = DbHelper.DbType; Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); var queryParam = queryJson.ToJObject(); if (pagination.p_fields.IsEmpty()) { pagination.p_fields = @"createdate,createuserid,createuserdeptcode,createuserorgcode,createusername,modifydate,modifyuserid,infoname,require,starttime,endtime,submituserid,submiteduserid,submituseraccount,submitusername,submitdepartid,submitdepartname,pct,remnum,remusername,remdepartname,issubmit,infotype"; } pagination.p_kid = "id"; pagination.p_tablename = @"hrs_infosubmit"; pagination.conditionJson = "1=1"; //公司级用户、EHS部门用户查看全厂数据 DataItemModel ehsDepart = new DataItemDetailService().GetDataItemListByItemCode("'EHSDepartment'").Where(p => p.ItemName == user.OrganizeId).ToList().FirstOrDefault(); if (user.RoleName.Contains("公司级用户") || (ehsDepart != null && ehsDepart.ItemValue == user.DeptCode)) { pagination.conditionJson += string.Format(" and createuserorgcode='{0}' and (issubmit='是' or createuserid='{1}')", user.OrganizeCode, user.UserId); } else if (user.RoleName.Contains("负责人") || user.RoleName.Contains("安全管理员")) {//本部门及子部门数据 //pagination.conditionJson += string.Format(@" and issubmit='是' and instr(submitdepartid,'{0}')>0", user.DeptId);//本部门数据 pagination.conditionJson += string.Format(@" and issubmit='是' and id in(select distinct(id) from hrs_infosubmit join base_department d on instr(submitdepartid,d.departmentid)>0 where d.encode like '{0}%')", user.DeptCode); } else {//其他人员查看自己相关的数据 pagination.conditionJson += string.Format(@" and issubmit='是' and instr(submituserid,'{0}')>0", user.UserId); } //开始时间 if (!queryParam["starttime"].IsEmpty()) { pagination.conditionJson += string.Format(@" and starttime >= to_date('{0}','yyyy-mm-dd hh24:mi:ss')", queryParam["starttime"].ToString()); } //结束时间 if (!queryParam["endtime"].IsEmpty()) { pagination.conditionJson += string.Format(@" and starttime < to_date('{0}','yyyy-mm-dd hh24:mi:ss')", Convert.ToDateTime(queryParam["endtime"].ToString()).AddDays(1).ToString("yyyy-MM-dd")); } //类型 if (!queryParam["infotype"].IsEmpty()) { pagination.conditionJson += string.Format(@" and infotype = '{0}'", queryParam["infotype"].ToString()); } //报送名称 if (!queryParam["infoname"].IsEmpty()) { pagination.conditionJson += string.Format(@" and infoname like '%{0}%'", queryParam["infoname"].ToString()); } //首页跳转 if (!queryParam["indextype"].IsEmpty() && queryParam["indextype"].ToString()=="1") { pagination.conditionJson += string.Format(@" and instr(submituserid,'{0}')>0 and (submiteduserid is null or instr(submiteduserid,'{0}')<=0)", user.UserId); } var dt = this.BaseRepository().FindTableByProcPager(pagination, dataType); return dt; }
/// <summary> /// 批量权限设置 /// </summary> /// <param name="list"></param> public List <AddJurisdictionEntity> SaveCycle(List <TemporaryUserEntity> list) { //开始事物 var res = DbFactory.Base().BeginTrans(); List <AddJurisdictionEntity> taskIds = new List <AddJurisdictionEntity>(); try { List <TemporaryUserEntity> list1 = new List <TemporaryUserEntity>(); List <TemporaryUserEntity> addlist = new List <TemporaryUserEntity>(); List <TemporaryUserEntity> updatelist = new List <TemporaryUserEntity>(); Repository <TemporaryUserEntity> inlogdb = new Repository <TemporaryUserEntity>(DbFactory.Base()); DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } foreach (var entity in list) { TemporaryUserEntity old = inlogdb.FindEntity(entity.USERID); if (old != null) { old.EndTime = entity.EndTime; old.startTime = entity.startTime; if (old.Istemporary == 0 && string.IsNullOrEmpty(old.PassPost)) {//添加权限 old.PassPost = entity.PassPost; addlist.Add(old); } else {//更改权限 updatelist.Add(old); old.PassPost = entity.PassPost; } list1.Add(old); } } SetLoadUserCarNo1(addlist, baseurl, Key, Signature); var delEntity = DelEquipmentRecord(updatelist, baseurl, Key, Signature); var addEntity = UploadUserlimits(list1, baseurl, Key, Signature); taskIds.Add(delEntity); //删除权限集 taskIds.Add(addEntity); //添加权限集 res.Update <TemporaryUserEntity>(list1); res.Commit(); } catch (Exception er) { res.Rollback(); } return(taskIds); }
/// <summary> /// 加入禁入名单 /// </summary> /// <param name="list"></param> public List <AddJurisdictionEntity> SaveForbidden(List <TemporaryUserEntity> list) { //开始事物 var res = DbFactory.Base().BeginTrans(); List <AddJurisdictionEntity> taskIds = new List <AddJurisdictionEntity>(); try { Repository <TemporaryUserEntity> inlogdb = new Repository <TemporaryUserEntity>(DbFactory.Base()); Repository <ForbiddenRecordEntity> Frecord = new Repository <ForbiddenRecordEntity>(DbFactory.Base()); DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } List <TemporaryUserEntity> list1 = new List <TemporaryUserEntity>(); List <ForbiddenRecordEntity> list2 = new List <ForbiddenRecordEntity>(); foreach (var entity in list) { TemporaryUserEntity old = inlogdb.FindEntity(entity.USERID); if (old != null) { old.ISDebar = 1; old.Remark = entity.Remark; list1.Add(old); //禁入记录 ForbiddenRecordEntity RecordEntity = new ForbiddenRecordEntity(); RecordEntity.Create(); RecordEntity.StartTime = DateTime.Now; RecordEntity.Remark = entity.Remark; RecordEntity.UserId = old.USERID; list2.Add(RecordEntity); } } res.Update <TemporaryUserEntity>(list1); res.Insert <ForbiddenRecordEntity>(list2); res.Commit(); if (list1.Count > 0) { list1.ForEach(a => a.EndTime = DateTime.Now.AddDays(-1)); } ; var Invalidentity = UploadUserlimits(list1, baseurl, Key, Signature); taskIds.Add(Invalidentity); } catch (Exception er) { res.Rollback(); } return(taskIds); }
/// <summary> /// 单条记录授权或重新授权 /// </summary> /// <param name="entity1"></param> /// <param name="keyValue"></param> /// <param name="Power">是否受过权 true 更改权限 false 添加权限</param> public List <AddJurisdictionEntity> SaveUserFace(TemporaryUserEntity entity1, string keyValue, bool Power) { List <AddJurisdictionEntity> taskIds = new List <AddJurisdictionEntity>(); var res = DbFactory.Base().BeginTrans(); try { DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } Repository <TemporaryUserEntity> inlogdb = new Repository <TemporaryUserEntity>(DbFactory.Base()); TemporaryUserEntity entity = inlogdb.FindEntity(keyValue); if (entity != null) { List <TemporaryUserEntity> dellist = new List <TemporaryUserEntity>(); dellist.Add(entity); entity.UserImg = entity1.UserImg; entity.ImgData = entity1.ImgData; entity.PassPost = entity1.PassPost; entity.PassPostId = entity1.PassPostId; entity.startTime = entity1.startTime; entity.EndTime = entity1.EndTime; res.Update(entity); res.Commit(); List <TemporaryUserEntity> list = new List <TemporaryUserEntity>(); list.Add(entity); if (Power) { //更改权限 if (entity1.Remark == "1") { //更换人脸(仅用于页面状态临时判断) string msg = UpdateHumanFace(entity, baseurl, Key, Signature); } var delEntity = DelEquipmentRecord(dellist, baseurl, Key, Signature); taskIds.Add(delEntity);//删除权限集 } else {//添加权限 SetLoadUserCarNo(entity, baseurl, Key, Signature); } var addEntity = UploadUserlimits(list, baseurl, Key, Signature); taskIds.Add(addEntity);//添加权限集 } } catch (Exception) { res.Rollback(); } return(taskIds); }
/// <summary> /// 移除禁入名单 /// </summary> /// <param name="list"></param> public List <AddJurisdictionEntity> RemoveForbidden(string list) { //开始事物 var res = DbFactory.Base().BeginTrans(); List <AddJurisdictionEntity> taskIds = new List <AddJurisdictionEntity>(); try { Repository <TemporaryUserEntity> inlogdb = new Repository <TemporaryUserEntity>(DbFactory.Base()); Repository <ForbiddenRecordEntity> Frecord = new Repository <ForbiddenRecordEntity>(DbFactory.Base()); DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } List <TemporaryUserEntity> list1 = new List <TemporaryUserEntity>(); List <ForbiddenRecordEntity> list2 = new List <ForbiddenRecordEntity>(); foreach (var UserId in list.Split(',')) { if (string.IsNullOrEmpty(UserId)) { continue; } TemporaryUserEntity old = inlogdb.FindEntity(UserId); if (old != null) { old.ISDebar = 0; list1.Add(old); //移除禁入记录 List <ForbiddenRecordEntity> Rlist = Frecord.IQueryable(it => it.UserId == UserId).OrderByDescending(t => t.CreateDate).ToList(); if (Rlist != null) { Rlist[0].EndTime = DateTime.Now; list2.Add(Rlist[0]); } } } var Invalidentity = UploadUserlimits(list1, baseurl, Key, Signature); taskIds.Add(Invalidentity); res.Update <TemporaryUserEntity>(list1); res.Update <ForbiddenRecordEntity>(list2); res.Commit(); } catch (Exception er) { res.Rollback(); } return(taskIds); }
/// <summary> /// 根据条件获取班组任务分配信息 /// </summary> /// <param name="queryJson"></param> /// <returns></returns> public IEnumerable <TeamsInfoEntity> GetList(string queryJson) { Operator curUser = OperatorProvider.Provider.Current(); var queryParam = JObject.Parse(queryJson); var parameter = new List <DbParameter>(); string sql = "select * from bis_teamsinfo where taskshareid= @taskshareid"; string taskshareid = queryParam["taskshareid"].ToString(); parameter.Add(DbParameters.CreateDbParameter("@taskshareid", taskshareid)); if (!queryParam["teamid"].IsEmpty())//班组id { sql += " and teamid= @teamid"; parameter.Add(DbParameters.CreateDbParameter("@teamid", queryParam["teamid"].ToString())); } var data = this.BaseRepository().FindList(sql, parameter.ToArray()).ToList(); var taskshare = new TaskShareService().GetEntity(taskshareid); string userids = ""; List <UserEntity> users = new List <UserEntity>(); if (taskshare != null) { if (!string.IsNullOrEmpty(taskshare.TaskType) && !string.IsNullOrEmpty(taskshare.FlowStep)) { if (taskshare.TaskType != "2" && (taskshare.FlowStep == "2" || taskshare.FlowStep == "3")) { if (taskshare.TaskType == "0") { string rolenames = new DataItemDetailService().GetItemValue(curUser.OrganizeId, "deptsuperviserole"); if (!string.IsNullOrEmpty(rolenames)) { rolenames = "'" + rolenames.Replace(",", "','") + "'"; users = new UserService().GetUserListByRoleName("'" + taskshare.SuperviseDeptId + "'", rolenames, true, string.Empty).ToList(); } } var userEntity = new UserService().GetEntity(taskshare.CreateUserId); if (userEntity != null) { users.Add(userEntity); } } } } if (users != null && users.Count > 0) { userids = string.Join(",", users.Select(x => x.UserId).ToArray()); } data.ForEach(t => { t.ModifyUserId = userids;//modifyuserid借用该字段 }); return(data); }
/// <summary> /// 获取前几个曝光的数据(取当前年的) /// </summary> /// <param name="num"></param> /// <returns></returns> public DataTable QueryExposureLllegal(string num) { string sql = string.Empty; DataItemDetailService dataitemdetailservice = new DataItemDetailService(); Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); sql = string.Format(@" select a.* from ( select distinct a.id ,a.id lllegalid,a.lllegalnumber ,a.reformrequire,a.lllegaldescribe,a.createdate,a.flowstate,a.addtype,a.reformdeptcode, f.filepath filepic, (case when f.filepath is not null then ('{3}'||substr(f.filepath,2)) else '' end) filepath ,a.createuserorgcode from v_lllegalbaseinfo a left join v_imageview f on a.lllegalpic = f.recid where a.isexposure ='1' and a.reformdeptcode like '{1}%' and to_char(a.createdate,'yyyy') ='{2}' ) a where rownum <= {0} order by createdate ", int.Parse(num), user.OrganizeCode, DateTime.Now.Year.ToString(), dataitemdetailservice.GetItemValue("imgUrl")); var dt = this.BaseRepository().FindTable(sql); return(dt); }
/// <summary> /// 将拜访人员信息上传到海康平台 /// </summary> /// <param name="entity"></param> /// <param name="list"></param> public void UploadUserHiK(VisitcarEntity entity, List <CarUserFileImgEntity> list) { DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); var baseurl = data.GetItemValue("HikBaseUrl"); string Key = string.Empty; string Signature = string.Empty; //string no = new Random().Next(10, 888888).ToString(); if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } string Url = "/artemis/api/resource/v1/person/single/add"; foreach (var item in list) { string time = DateTime.Now.ToString("yyyyMMddHHmmss"); var no = Str.PinYin(item.Username).ToUpper() + time;//卡号唯一 //人脸信息(base64必须为jpg格式) List <FaceEntity> faces = new List <FaceEntity>(); FaceEntity face = new FaceEntity(); face.faceData = item.Imgdata; faces.Add(face); var model = new { personId = item.ID, personName = item.Username, gender = "1", orgIndexCode = "root000000", birthday = "1990-01-01", phoneNo = entity.Phone, email = "*****@*****.**", certificateType = "990", certificateNo = no, faces }; string msg = SocketHelper.LoadCameraList(model, baseurl, Url, Key, Signature); parkList1 pl = JsonConvert.DeserializeObject <parkList1>(msg); if (pl != null && pl.code == "0") { SetLoadUserCarNo(item, baseurl, Key, Signature); } } }
/// <summary> /// 获取计划原有风险数量 /// </summary> /// <param name="planId">计划ID</param> /// <param name="areaIds">计划关联区域</param> /// <param name="startDate">计划开始时间</param> /// <returns></returns> public int GetRiskNumbers(string areaIds, string startDate, string planId) { DataItemDetailService detailservice = new DataItemDetailService(); string gxhs = detailservice.GetItemValue("广西华昇版本"); string sql = ""; if (!string.IsNullOrWhiteSpace(gxhs)) { sql = string.Format("select count(1) from BIS_RISKASSESS where createdate<to_date('{0}','yyyy-mm-dd hh24:mi:ss') and status=1 and deletemark=0 and EnabledMark=0 and deptcode in (select DEPTCODE from bis_riskpplandata t where t.planid='{1}' )", DateTime.Parse(startDate).ToString("yyyy-MM-dd 00:00:01"), planId); } else { sql = string.Format("select count(1) from BIS_RISKASSESS where createdate<to_date('{0}','yyyy-mm-dd hh24:mi:ss') and status=1 and deletemark=0 and EnabledMark=0 and districtid in('{1}')", DateTime.Parse(startDate).ToString("yyyy-MM-dd 00:00:01"), areaIds.Replace(",", "','")); } if (DbHelper.DbType == DatabaseType.MySql) { sql = string.Format("select count(1) from BIS_RISKASSESS where createdate<'{0}' and status=1 and deletemark=0 and EnabledMark=0 and districtid in('{1}')", DateTime.Parse(startDate).ToString("yyyy-MM-dd 00:00:01"), areaIds.Replace(",", "','")); } return(this.BaseRepository().FindObject(sql).ToInt()); }
/// <summary> /// 获取车辆群组信息 /// </summary> /// <returns></returns> public string GetGroupInfo(int type) { string res = string.Empty; try { DataItemDetailService itembll = new DataItemDetailService(); IEnumerable <DataItemModel> list = itembll.GetDataItemListByItemCode("KmCarType"); var entity = list.Where(a => a.ItemValue == type.ToString()).FirstOrDefault(); if (entity != null) {//编码管理中设置 res = entity.ItemCode; } } catch (Exception) { throw; } return(res); }
/// <summary> /// 获取编号 /// </summary> /// <returns></returns> public string GetSno(string orgCode) { string code = "001"; string sql = string.Format("select APPLYSNO from BIS_THREEPEOPLECHECK where CreateUserOrgCode='{1}' and APPLYSNO like '%{0}%' order by CREATETIME desc", DateTime.Now.ToString("yyyyMMdd"), orgCode); DataTable tb = this.BaseRepository().FindTable(sql); if (tb.Rows.Count > 0) { int number = tb.Rows.Count + 1; if (number < 10) { code = "00" + number.ToString(); } else if (number < 100) { code = "0" + number.ToString(); } else { code = number.ToString(); } } else { code = "001"; } string val = new DataItemDetailService().GetItemValue("三种人编号"); if (string.IsNullOrEmpty(val)) { code = "Q/CRPHZHB 2203.01.02-JL11-" + DateTime.Now.ToString("yyyyMMdd") + code; } else { code = val + "-" + DateTime.Now.ToString("yyyyMMdd") + code; } return(code); }
/// <summary> /// 获取分页列表 /// </summary> /// <param name="pagination"></param> /// <param name="queryJson"></param> /// <returns></returns> public DataTable GetList(Pagination pagination, string queryJson) { DatabaseType dataType = DbHelper.DbType; Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); var queryParam = queryJson.ToJObject(); if (pagination.p_fields.IsEmpty()) { pagination.p_fields = @"createdate,createuserid,createuserdeptcode,createuserorgcode,modifydate,modifyuserid,name,according,ratenum,enddate,dutyuserid,dutyusername,dutydepartid,dutydepartname,submituserid,submitusername,eleno,elename,eledutyuserid,eledutyusername,eledutydepartname,issubmited,pct,dutyuserhtml,dutydeparthtml"; pagination.p_fields += ",(select wm_concat(to_char(name)) from HRS_NOSAWorkResult r where r.workid=HRS_NOSAWorks.Id) workresult"; //pagination.p_fields += ",(select wm_concat(to_char(dutyusername)) from HRS_NOSAWorkitem r where r.workid=HRS_NOSAWorks.Id and r.state='通过') checkedusername"; pagination.p_fields += ",(select count(1) from HRS_NOSAWorkitem r where r.workid=HRS_NOSAWorks.Id and r.state='待审核') checkcount"; pagination.p_fields += ",(select case when (state='待上传' or state='不通过') then 1 when state='待审核' then 2 else 3 end from hrs_nosaworkitem i where i.workid=hrs_nosaworks.id and i.dutyuserid='" + user.UserId + "' and rownum<=1) as state"; pagination.p_fields += ",(select state || '|' || to_char(uploaddate,'YYYY-MM-DD') from hrs_nosaworkitem i where i.workid=hrs_nosaworks.id and i.dutyuserid='" + user.UserId + "' and rownum<=1) as itemcol"; } pagination.p_kid = "id"; pagination.p_tablename = @"hrs_nosaworks"; pagination.conditionJson = "1=1"; if (!queryParam["datascope"].IsEmpty() && queryParam["datascope"].ToString() == "1") {//我上传时的数据范围 pagination.conditionJson += string.Format(" and createuserorgcode='{0}' and issubmited='是' and instr(dutyuserid,'{1}')>0", user.OrganizeCode, user.UserId); if (!queryParam["waitforupload"].IsEmpty()) { pagination.conditionJson += string.Format(" and (submituserid is null or instr(submituserid,'{0}')<=0)", user.UserId); } } else {//NOSA工作清单列表默认数据范围 DataItemModel ehsDepart = new DataItemDetailService().GetDataItemListByItemCode("'EHSDepartment'").Where(p => p.ItemName == user.OrganizeId).ToList().FirstOrDefault(); if (user.RoleName.Contains("公司级用户") || (ehsDepart != null && ehsDepart.ItemValue == user.DeptCode)) {//公司级用户、EHS部门用户查看全厂数据 pagination.conditionJson += string.Format(" and ((createuserorgcode='{0}' and issubmited='是') or createuserid='{1}')", user.OrganizeCode, user.UserId); } else if (user.RoleName.Contains("负责人") || user.RoleName.Contains("安全管理员")) {//本部门及子部门数据 //pagination.conditionJson += string.Format(@" and createuserdeptcode like '{0}%' and (issubmited='是' or createuserid='{1}')", user.DeptCode, user.UserId); pagination.conditionJson += string.Format(@" and (((createuserdeptcode like '{0}%' or instr(dutyuserid,'{1}')>0) and issubmited='是') or createuserid='{1}')", user.DeptCode, user.UserId); } else {//自己创建或审核的数据 //pagination.conditionJson += string.Format(@" and createuserid='{0}'", user.UserId); pagination.conditionJson += string.Format(@" and (createuserid='{0}' or (issubmited='是' and instr(dutyuserid,'{0}')>0))", user.UserId); } } //文件名称 if (!queryParam["name"].IsEmpty()) { pagination.conditionJson += string.Format(@" and name like '%{0}%'", queryParam["name"].ToString()); } //引用id if (!queryParam["eleid"].IsEmpty()) { pagination.conditionJson += string.Format(@" and eleid = '{0}'", queryParam["eleid"].ToString()); } //开始时间 if (!queryParam["starttime"].IsEmpty()) { pagination.conditionJson += string.Format(@" and enddate >= to_date('{0}','yyyy-mm-dd hh24:mi:ss')", queryParam["starttime"].ToString()); } //结束时间 if (!queryParam["endtime"].IsEmpty()) { pagination.conditionJson += string.Format(@" and enddate < to_date('{0}','yyyy-mm-dd hh24:mi:ss')", Convert.ToDateTime(queryParam["endtime"].ToString()).AddDays(1).ToString("yyyy-MM-dd")); } //数据范围 if (!queryParam["datascope"].IsEmpty()) { var datascope = queryParam["datascope"].ToString(); if (datascope == "2") {//我创建的数据 pagination.conditionJson += string.Format(" and createuserid='{0}'", user.UserId); } else if (datascope == "3") {//我应审核的数据 pagination.conditionJson += string.Format(" and issubmited='是' and eledutyuserid='{0}' and exists(select 1 from hrs_nosaworkitem i where i.workid=hrs_nosaworks.id and i.state='待审核')", user.UserId); } } var dt = this.BaseRepository().FindTableByProcPager(pagination, dataType); return(dt); }
public DataTable DrillplanStatList(string drillmode, bool isCompany, string deptCode, string starttime, string endtime) { string strWhere = string.Empty; string strWhere1 = string.Empty; if (!string.IsNullOrWhiteSpace(deptCode)) { strWhere += string.Format("and m.encode like'{0}%'", deptCode); } if (!string.IsNullOrWhiteSpace(starttime)) { strWhere1 += string.Format("and to_char(t.drilltime,'yyyy-MM-dd') >='{0}'", starttime); } if (!string.IsNullOrWhiteSpace(endtime)) { strWhere1 += string.Format("and to_char(t.drilltime,'yyyy-MM-dd') <='{0}'", endtime); } string strWhere2 = string.Empty; string selWhere = string.Empty; string strWhere3 = string.Empty; string sumWhere = string.Empty; var datamode = new DataItemDetailService().GetDataItemListByItemCode("'MAE_DirllMode'").ToList(); if (datamode.Count > 0) { for (int i = 0; i < datamode.Count; i++) { strWhere2 += "'" + datamode[i].ItemName + "' mode" + (i + 1) + ","; selWhere += "nvl(sum(p.mode" + (i + 1) + "),0) recordnum" + (i + 1) + ","; sumWhere += "nvl(p.mode" + (i + 1) + ",0)+"; strWhere3 += "mode" + (i + 1) + ","; } if (strWhere2.Length > 0) { strWhere2 = strWhere2.Substring(0, strWhere2.Length - 1); selWhere = selWhere.Substring(0, selWhere.Length - 1); sumWhere = sumWhere.Substring(0, sumWhere.Length - 1); strWhere3 = strWhere3.Substring(0, strWhere3.Length - 1); } } else { strWhere2 = "'桌面演练' mode1,'实战演练' mode2"; selWhere = "nvl(sum(p.mode1),0) recordnum1,nvl(sum(p.mode2),0) recordnum2"; sumWhere = "(nvl(p.mode1,0)+nvl(p.mode2,0))"; strWhere3 = "mode1,mode2"; } string sql = string.Empty; if (isCompany) { sql = string.Format(@"select * from (select m.fullname,{0},nvl(sum({1}),0) total,max(m.sortcode) sortcode, m.encode,max(m.departmentid) departmentid,max(m.parentid) parentid from base_department m left join(select {5},fullname,encode from(select count(1) total,d.fullname,d.encode,t.drillmodename from mae_drillplanrecord t left join base_department d on d.encode = t.orgdeptcode where d.nature='厂级' and t.iscommit=1 {2} group by d.fullname,d.encode,t.drillmodename union select count(1) total,d.fullname,d.encode,t.drillmodename from mae_drillplanrecord t left join base_department d on d.encode = substr(t.orgdeptcode,0,length(d.encode)) where d.nature='部门' and t.iscommit=1 {2} group by d.fullname,d.encode,t.drillmodename) pivot(max(total)for drillmodename in({4}))) p on p.encode=m.encode where 1=1 and m.nature in ('厂级','部门') {3} group by m.fullname,m.encode union select m.fullname,{0},nvl(sum({1}),0) total,max(m.sortcode) sortcode,m.encode, max(m.departmentid) departmentid,max(m.parentid) parentid from base_department m left join(select {5},orgdept,orgdeptcode from (select count(1) total,t.orgdept,t.orgdeptcode,t.drillmodename from mae_drillplanrecord t left join base_department d on d.encode = t.orgdeptcode where t.iscommit=1 {2} group by t.orgdept,t.orgdeptcode,t.drillmodename)pivot(max(total)for drillmodename in({4}))) p on p.orgdeptcode=m.encode where 1=1 and m.nature not in('厂级','根','集团','省级','部门') {3} group by m.fullname,m.encode) order by sortcode ", selWhere, sumWhere, strWhere1, strWhere, strWhere2, strWhere3); // sql = string.Format(@"select * from (select m.fullname,nvl(sum(p.total),0) recordnum,nvl(sum(p.total),0) total,max(m.sortcode) sortcode, // m.encode,max(m.departmentid) departmentid,max(m.parentid) parentid from base_department m // left join(select count(1) total,d.fullname,d.encode from mae_drillplanrecord t // left join base_department d on d.encode = t.orgdeptcode // where d.nature='厂级' and t.iscommit=1 // group by d.fullname,d.encode // union // select count(1) total,d.fullname,d.encode from mae_drillplanrecord t // left join base_department d on d.encode = substr(t.orgdeptcode,0,length(d.encode)) // where d.nature='部门' and t.iscommit=1 {0} // group by d.fullname,d.encode) p on p.encode=m.encode // where 1=1 and m.nature in ('厂级','部门') {1} // group by m.fullname,m.encode // union // select m.fullname,nvl(sum(p.total),0) recordnum,nvl(sum(p.total),0) total,max(m.sortcode) sortcode,m.encode, // max(m.departmentid) departmentid,max(m.parentid) parentid from base_department m // left join( // select count(1) total,t.orgdept,t.orgdeptcode from mae_drillplanrecord t // left join base_department d on d.encode = t.orgdeptcode // where t.iscommit=1 {0} // group by t.orgdept,t.orgdeptcode) p on p.orgdeptcode=m.encode // where 1=1 and m.nature not in('厂级','根','集团','省级','部门') {1} // group by m.fullname,m.encode) order by sortcode", strWhere1, strWhere); } else { sql = string.Format(@"select * from (select m.fullname,{3},nvl(sum({4}),0) total,max(m.sortcode) sortcode, m.encode,max(m.departmentid) departmentid,max(m.parentid) parentid from base_department m left join(select {5},orgdept,orgdeptcode from( select count(1) total,t.orgdept,t.orgdeptcode,t.drillmodename from mae_drillplanrecord t left join base_department d on d.encode = substr(t.orgdeptcode,0,length(d.encode)) where d.nature='部门' and t.iscommit=1 {0} group by t.orgdept,t.orgdeptcode,t.drillmodename)pivot(max(total)for drillmodename in({2}))) p on p.orgdeptcode=m.encode where 1=1 {1} group by m.fullname,m.encode) order by sortcode", strWhere1, strWhere, strWhere2, selWhere, sumWhere, strWhere3); // sql = string.Format(@"select * from (select m.fullname,nvl(sum(p.total),0) recordnum,nvl(sum(p.total),0) total,max(m.sortcode) sortcode, // m.encode,max(m.departmentid) departmentid,max(m.parentid) parentid from base_department m // left join( // select count(1) total,t.orgdept,t.orgdeptcode from mae_drillplanrecord t // left join base_department d on d.encode = substr(t.orgdeptcode,0,length(d.encode)) // where d.nature='部门' and t.iscommit=1 {0} // group by t.orgdept,t.orgdeptcode) p on p.orgdeptcode=m.encode // where 1=1 {1} // group by m.fullname,m.encode) order by sortcode", strWhere1, strWhere); } return(this.BaseRepository().FindTable(sql)); }
/// <summary> /// 提交审批 /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void CommitApply(string keyValue, AptitudeinvestigateauditEntity aentity) { if (!string.IsNullOrEmpty(keyValue)) { SafepunishEntity entity = GetEntity(keyValue); UserInfoEntity createuser = new UserInfoService().GetUserInfoEntity(entity.CreateUserId); Operator curUser = ERCHTMS.Code.OperatorProvider.Provider.Current(); entity.Modify(keyValue); DataItemModel ehsDepart = new DataItemDetailService().GetDataItemListByItemCode("'EHSDepartment'").Where(p => p.ItemName == curUser.OrganizeId).ToList().FirstOrDefault(); string ehsDepartCode = ""; if (ehsDepart != null) { ehsDepartCode = ehsDepart.ItemValue; } if (entity.FlowState != "1") { if (!string.IsNullOrEmpty(entity.ApplyState)) { #region //审核信息表 AptitudeinvestigateauditEntity aidEntity = new AptitudeinvestigateauditEntity(); aidEntity.AUDITRESULT = aentity.AUDITRESULT; //通过 if (aentity.AUDITTIME != null) { aidEntity.AUDITTIME = Convert.ToDateTime(aentity.AUDITTIME.Value.ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")); //审核时间 } aidEntity.AUDITPEOPLE = aentity.AUDITPEOPLE; //审核人员姓名 aidEntity.AUDITPEOPLEID = aentity.AUDITPEOPLEID; //审核人员id aidEntity.APTITUDEID = keyValue; //关联的业务ID aidEntity.AUDITDEPTID = aentity.AUDITDEPTID; //审核部门id aidEntity.AUDITDEPT = aentity.AUDITDEPT; //审核部门 aidEntity.AUDITOPINION = aentity.AUDITOPINION; //审核意见 aidEntity.AUDITSIGNIMG = aentity.AUDITSIGNIMG; //个人签名 aidEntity.Disable = "1"; //流程图的最新记录 if (entity.ApplyState != null) { aidEntity.REMARK = (entity.ApplyState).ToString(); //备注 存流程的顺序号 } new AptitudeinvestigateauditService().SaveForm(aidEntity.ID, aidEntity); #endregion } if (entity.AmerceType == "1" || entity.AmerceType == "2") //事故事件跟其他类型 { switch (entity.ApplyState ?? "0") { case "0": if (createuser.RoleName.Contains("厂级部门用户") && !createuser.RoleName.Contains("负责人")) { entity.ApplyState = "1"; entity.FlowState = "0"; entity.ApproverPeopleIds = GetEhsUserId() ?? ""; } else if (createuser.RoleName.Contains("厂级部门用户") && createuser.RoleName.Contains("负责人")) { entity.ApplyState = "2"; entity.FlowState = "0"; entity.ApproverPeopleIds = GetLeaderId() ?? ""; } else if (GetLeaderId().Contains(entity.CreateUserId)) { entity.ApplyState = "3"; entity.FlowState = "1"; entity.ApproverPeopleIds = ""; } break; case "1": if (aentity.AUDITRESULT == "0") { entity.ApplyState = "2"; entity.ApproverPeopleIds = GetLeaderId() ?? ""; entity.DeptManagerId = entity.ApproverPeopleIds; } else { entity.ApplyState = "0"; entity.FlowState = "2"; entity.ApproverPeopleIds = ""; string strsql = string.Format("update EPG_APTITUDEINVESTIGATEAUDIT set Disable = 0 where APTITUDEID ='{0}'", keyValue); this.BaseRepository().ExecuteBySql(strsql); } break; case "2": if (aentity.AUDITRESULT == "0") { entity.ApplyState = "3"; entity.FlowState = "1"; } else { entity.ApplyState = "0"; entity.FlowState = "2"; entity.ApproverPeopleIds = ""; string strsql = string.Format("update EPG_APTITUDEINVESTIGATEAUDIT set Disable = 0 where APTITUDEID ='{0}'", keyValue); this.BaseRepository().ExecuteBySql(strsql); } break; } } if (entity.AmerceType == "3" || entity.AmerceType == "4") //日常考核跟隐患排查治理 { switch (entity.ApplyState ?? "0") { case "0": if ((createuser.Nature == "专业" || createuser.Nature == "班组") && !createuser.RoleName.Contains("负责人")) { entity.ApplyState = "1"; entity.FlowState = "0"; entity.ApproverPeopleIds = GetMajorUserId(createuser.DepartmentId); } else if (((createuser.Nature == "专业" || createuser.Nature == "班组") && createuser.RoleName.Contains("负责人")) || (createuser.Nature == "部门" && !createuser.RoleName.Contains("负责人"))) { entity.ApplyState = "2"; entity.FlowState = "0"; entity.ApproverPeopleIds = GetRoleUserId(entity.CreateUserId) ?? ""; } else if (createuser.Nature == "部门" && createuser.RoleName.Contains("负责人")) { entity.ApplyState = "3"; entity.FlowState = "1"; entity.ApproverPeopleIds = ""; } break; case "1": if (aentity.AUDITRESULT == "0") { entity.ApplyState = "2"; entity.ApproverPeopleIds = GetRoleUserId(entity.CreateUserId) ?? ""; entity.DeptManagerId = entity.ApproverPeopleIds; } else { entity.ApplyState = "0"; entity.FlowState = "2"; entity.ApproverPeopleIds = ""; string strsql = string.Format("update EPG_APTITUDEINVESTIGATEAUDIT set Disable = 0 where APTITUDEID ='{0}'", keyValue); this.BaseRepository().ExecuteBySql(strsql); } break; case "2": if (aentity.AUDITRESULT == "0") { entity.ApplyState = "3"; entity.FlowState = "1"; } else { entity.ApplyState = "0"; entity.FlowState = "2"; entity.ApproverPeopleIds = ""; string strsql = string.Format("update EPG_APTITUDEINVESTIGATEAUDIT set Disable = 0 where APTITUDEID ='{0}'", keyValue); this.BaseRepository().ExecuteBySql(strsql); } break; } } this.BaseRepository().Update(entity); } } }
/// <summary> /// 海康平台数据同步信息 /// </summary> /// <param name="entity">实体</param> /// <param name="type">0新增 1修改 2删除</param> /// <param name="NewCar">旧车牌</param> public void OperHaiKangRecord(CarinfoEntity entity, int type, string OldCar) { try { #region 获取海康地址和秘钥 DataItemDetailService data = new DataItemDetailService(); var pitem = data.GetItemValue("Hikappkey"); //海康服务器密钥 var baseurl = data.GetItemValue("HikBaseUrl"); //海康服务器地址 string Key = string.Empty; string Signature = string.Empty; if (!string.IsNullOrEmpty(pitem)) { Key = pitem.Split('|')[0]; Signature = pitem.Split('|')[1]; } #endregion #region 添加车辆 if (type == 0) {//添加 string addurl = "/artemis/api/v1/vehicle/addVehicle"; List <object> mllist = new List <object>(); var user = new UserService().GetEntity(entity.DirverId); if (user != null) { var model = new {//有车主 personId = entity.DirverId, plateNo = entity.CarNo, parkIndexCode = GetTrafficPost(entity.Currentgid, entity.Type),//停车场唯一标识 plateType = 0, plateColor = 0, carType = 0, carColor = 0, startTime = DateTime.Parse(entity.Starttime.ToString()).ToString("yyyy-MM-dd"), endTime = DateTime.Parse(entity.Endtime.ToString()).ToString("yyyy-MM-dd"), vehicleGroup = GetGroupInfo(entity.Type)//群组唯一标识 }; mllist.Add(model); } else { var model = new {//无车主 //personId = entity.DirverId, plateNo = entity.CarNo, parkIndexCode = GetTrafficPost(entity.Currentgid, entity.Type),//停车场唯一标识 plateType = 0, plateColor = 0, carType = 0, carColor = 0, startTime = DateTime.Parse(entity.Starttime.ToString()).ToString("yyyy-MM-dd"), endTime = DateTime.Parse(entity.Endtime.ToString()).ToString("yyyy-MM-dd"), vehicleGroup = GetGroupInfo(entity.Type)//群组唯一标识 }; mllist.Add(model); } SocketHelper.LoadCameraList(mllist, baseurl, addurl, Key, Signature); } #endregion #region 修改车辆 else if (type == 1) {//修改 string updateurl = "/artemis/api/v1/vehicle/updateVehicle"; List <object> mllist = new List <object>(); var user = new UserService().GetEntity(entity.DirverId); if (user != null) { var model = new { //有车主 plateNo = entity.CarNo, //新车牌 oldPlateNo = OldCar, //旧车牌 ownerId = entity.DirverId, parkIndexCode = GetTrafficPost(entity.Currentgid, entity.Type), //停车场唯一标识 plateType = 0, plateColor = 0, carType = 0, carColor = 0, startTime = DateTime.Parse(entity.Starttime.ToString()).ToString("yyyy-MM-dd"), endTime = DateTime.Parse(entity.Endtime.ToString()).ToString("yyyy-MM-dd"), isUpdateFunction = 1, vehicleGroup = GetGroupInfo(entity.Type)//群组唯一标识 }; mllist.Add(model); } else { var model = new { //无车主 plateNo = entity.CarNo, //新车牌 oldPlateNo = OldCar, //旧车牌 parkIndexCode = GetTrafficPost(entity.Currentgid, entity.Type), //停车场唯一标识 plateType = 0, plateColor = 0, carType = 0, carColor = 0, startTime = DateTime.Parse(entity.Starttime.ToString()).ToString("yyyy-MM-dd"), endTime = DateTime.Parse(entity.Endtime.ToString()).ToString("yyyy-MM-dd"), isUpdateFunction = 1, vehicleGroup = GetGroupInfo(entity.Type)//群组唯一标识 }; mllist.Add(model); } SocketHelper.LoadCameraList(mllist, baseurl, updateurl, Key, Signature); } #endregion #region 除车辆 else if (type == 2) {//删除 string selurl = "/artemis/api/v1/vehicle/fetchVehicle"; var model = new { plateNo = entity.CarNo, pageNo = 1, pageSize = 10 }; //查询车辆记录唯一标识 string msg = SocketHelper.LoadCameraList(model, baseurl, selurl, Key, Signature); CarSelectEntity pl = JsonConvert.DeserializeObject <CarSelectEntity>(msg); if (pl != null && pl.code == "0") { string carid = pl.data.rows[0].vehicleId; //删除车辆 string delurl = "/artemis/api/resource/v1/vehicle/batch/delete"; List <string> list = new List <string>(); list.Add(carid); var delmodel = new { vehicleIds = list }; SocketHelper.LoadCameraList(delmodel, baseurl, delurl, Key, Signature); } } #endregion } catch (Exception) { throw; } }
/// <summary> /// 获取安全惩罚流程图对象 /// </summary> /// <param name="keyValue"></param> /// <returns></returns> public Flow GetFlow(string keyValue) { List <nodes> nlist = new List <nodes>(); List <lines> llist = new List <lines>(); SafepunishEntity safereward = GetEntity(keyValue); string flowname = "惩罚流程"; if (safereward.AmerceType == "1" || safereward.AmerceType == "2") { flowname = "事故事件考核流程"; } else if (safereward.AmerceType == "3" || safereward.AmerceType == "4") { flowname = "惩罚流程"; } Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); string node_sql = string.Format(@"select a.itemvalue id,a.itemname flowname, b.approverpeopleids,b.AUDITDEPT auditdeptname,b.AUDITPEOPLE auditusername,b.AUDITTIME auditdate,b.AUDITRESULT auditstate,b.AUDITOPINION auditremark from ( select itemvalue,itemname from base_dataitemdetail where itemid = (select itemid from base_dataitem where itemname = '{1}')) a left join ( select t.* , c.approverpeopleids from epg_aptitudeinvestigateaudit t left join bis_safepunish c on t.APTITUDEID = c.id where t.disable ='1' and t.audittime in (select max(audittime) audittime from epg_aptitudeinvestigateaudit where APTITUDEID = '{0}' group by APTITUDEID,remark ) ) b on a.itemvalue =b.REMARK order by id", keyValue, flowname); DataTable nodeDt = this.BaseRepository().FindTable(node_sql); UserInfoEntity createuser = new UserInfoService().GetUserInfoEntity(safereward.CreateUserId); Operator curUser = ERCHTMS.Code.OperatorProvider.Provider.Current(); DataItemModel ehsDepart = new DataItemDetailService().GetDataItemListByItemCode("'EHSDepartment'").Where(p => p.ItemName == curUser.OrganizeId).ToList().FirstOrDefault(); string ehsDepartCode = ""; if (ehsDepart != null) { ehsDepartCode = ehsDepart.ItemValue; } if (safereward.AmerceType == "1" || safereward.AmerceType == "2") //事故事件跟其他类型 { if (createuser.RoleName.Contains("厂级部门用户") && createuser.RoleName.Contains("负责人")) { nodeDt.Rows.RemoveAt(1); } else if (GetLeaderId().Contains(safereward.CreateUserId)) { nodeDt.Rows.RemoveAt(2); nodeDt.Rows.RemoveAt(1); } } if (safereward.AmerceType == "3" || safereward.AmerceType == "4") //日常考核跟隐患排查治理 { if (((createuser.Nature == "专业" || createuser.Nature == "班组") && createuser.RoleName.Contains("负责人")) || (createuser.Nature == "部门" && !createuser.RoleName.Contains("负责人"))) { nodeDt.Rows.RemoveAt(1); } else if (createuser.Nature == "部门" && createuser.RoleName.Contains("负责人")) { nodeDt.Rows.RemoveAt(2); nodeDt.Rows.RemoveAt(1); } } Flow flow = new Flow(); flow.title = ""; flow.initNum = 22; flow.activeID = safereward.ApplyState; if (nodeDt != null && nodeDt.Rows.Count > 0) { #region 创建node对象 int Taged = 0; for (int i = 0; i < nodeDt.Rows.Count; i++) { DataRow dr = nodeDt.Rows[i]; nodes nodes = new nodes(); nodes.alt = true; nodes.isclick = false; nodes.css = ""; nodes.id = dr["id"].ToString(); //主键 nodes.img = ""; nodes.name = dr["flowname"].ToString(); nodes.type = "stepnode"; nodes.width = 150; nodes.height = 60; //位置 int m = i % 4; int n = i / 4; if (m == 0) { nodes.left = 120; } else { nodes.left = 120 + ((150 + 60) * m); } if (n == 0) { nodes.top = 54; } else { nodes.top = (n * 100) + 54; } setInfo sinfo = new setInfo(); sinfo.NodeName = nodes.name; //审核记录 if (dr["auditdeptname"] != null && !string.IsNullOrEmpty(dr["auditdeptname"].ToString())) { Taged = 1; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); DateTime auditdate; DateTime.TryParse(dr["auditdate"].ToString(), out auditdate); nodedesignatedata.createdate = auditdate.ToString("yyyy-MM-dd HH:mm"); nodedesignatedata.creatdept = dr["auditdeptname"].ToString(); nodedesignatedata.createuser = dr["auditusername"].ToString(); nodedesignatedata.status = dr["auditstate"].ToString() == "0" ? "已处理" : "未处理"; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; if (dr["auditstate"].ToString() == "1") { Taged = 0; } } else if (Taged == 1) { if (i == (nodeDt.Rows.Count - 1)) { Taged = 1; //List<NodeDesignateData> nodelist = new List<NodeDesignateData>(); //NodeDesignateData nodedesignatedata = new NodeDesignateData(); //nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; //sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } else { Taged = 0; List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "待定"; var userid = nodeDt.Rows[i - 1]["approverpeopleids"].ToString(); string[] ids = userid.Split(','); string DeptName = "", RealName = ""; if (ids.Length > 0) { for (int j = 0; j < ids.Length; j++) { if (!string.IsNullOrEmpty(ids[j])) { UserInfoEntity uInfor = new UserInfoService().GetUserInfoEntity(ids[j]); DeptName += uInfor.DeptName + ","; RealName += uInfor.RealName + ","; } } nodedesignatedata.creatdept = DeptName.Length > 0 ? DeptName.Substring(0, DeptName.Length - 1) : ""; nodedesignatedata.createuser = RealName.Length > 0 ? RealName.Substring(0, RealName.Length - 1) : ""; } else { nodedesignatedata.creatdept = "无"; nodedesignatedata.createuser = "******"; } nodedesignatedata.status = "正在处理..."; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } } else if (safereward.ApplyState == "0" && i == 0) { List <NodeDesignateData> nodelist = new List <NodeDesignateData>(); NodeDesignateData nodedesignatedata = new NodeDesignateData(); nodedesignatedata.createdate = "待定"; UserInfoEntity uInfor = new UserInfoService().GetUserInfoEntity(safereward.ApproverPeopleIds); if (uInfor != null) { nodedesignatedata.creatdept = uInfor.DeptName; nodedesignatedata.createuser = uInfor.RealName; } else { nodedesignatedata.creatdept = safereward.ApplyUserDeptName; nodedesignatedata.createuser = safereward.ApplyUserName; } nodedesignatedata.status = "正在处理..."; if (i == 0) { nodedesignatedata.prevnode = "无"; } else { nodedesignatedata.prevnode = nodeDt.Rows[i - 1]["flowname"].ToString(); } nodelist.Add(nodedesignatedata); sinfo.Taged = Taged; sinfo.NodeDesignateData = nodelist; nodes.setInfo = sinfo; } nlist.Add(nodes); } #endregion #region 创建line对象 for (int i = 0; i < nodeDt.Rows.Count; i++) { lines lines = new lines(); lines.alt = true; lines.id = Guid.NewGuid().ToString(); lines.from = nodeDt.Rows[i]["id"].ToString(); if (i < nodeDt.Rows.Count - 1) { lines.to = nodeDt.Rows[i + 1]["id"].ToString(); } lines.name = ""; lines.type = "sl"; llist.Add(lines); } #endregion flow.nodes = nlist; flow.lines = llist; } return(flow); }
/// <summary> /// 获取列表 /// </summary> /// <param name="pagination">分页</param> /// <param name="queryJson">查询参数</param> /// <returns>返回分页列表</returns> public DataTable GetPageList(Pagination pagination, string queryJson) { DatabaseType dataType = DbHelper.DbType; Operator user = ERCHTMS.Code.OperatorProvider.Provider.Current(); string role = user.RoleName; var queryParam = queryJson.ToJObject(); #region 查表 pagination.p_kid = "t.id"; pagination.p_fields = @"t.createuserid,t.createdate,t.createusername,t.modifyuserid,t.modifydate,t.modifyusername,t.createuserdeptcode,t.createuserorgcode,t.dangerjobname,t.numberofpeoplename, t.deptids, t.deptnames,t.jobfrequency,t.dangerfactors,t.accidentcategories,t.safetymeasures,t.joblevelname,t.principalnames"; pagination.p_tablename = @"BIS_DANGERJOBLIST t "; if (pagination.sidx == null) { pagination.sidx = "t.createdate"; } if (pagination.sord == null) { pagination.sord = "desc"; } #endregion //关键字 if (!queryParam["keyword"].IsEmpty()) { pagination.conditionJson += string.Format(" and (t.dangerjobname like '%{0}%' or t.deptnames like '%{0}%' or t.dangerfactors like '%{0}%' or t.accidentcategories like '%{0}%') ", queryParam["keyword"].ToString()); } DepartmentService departmentDll = new DepartmentService(); DataItemDetailService dataItemDetail = new DataItemDetailService(); string codes = user.OrganizeCode; var spdepart = dataItemDetail.GetDataItemListByItemCode("spdepart").Select(p => p.ItemValue).FirstOrDefault(); //树节点code var deptCode = !queryParam["code"].IsEmpty() ? queryParam["code"].ToString() : user.DeptCode; if (deptCode == user.OrganizeCode || ((!string.IsNullOrEmpty(spdepart) && spdepart.Contains(deptCode)) && queryParam["code"].IsEmpty())) { if (!string.IsNullOrEmpty(spdepart) && spdepart.Contains(deptCode)) { List <string> deptCodes = spdepart.Split(',').ToList(); deptCodes.Add(user.OrganizeCode); codes = string.Join("','", deptCodes); } pagination.conditionJson += string.Format(" and (t.createuserdeptcode in ('{0}') ) ", codes); } else { pagination.conditionJson += string.Format(" and t.createuserdeptcode='{0}' ", deptCode); } //危险作业级别 if (!queryParam["joblevel"].IsEmpty()) { var joblevel = queryParam["joblevel"].ToString(); pagination.conditionJson += string.Format(" and t.joblevel='{0}' ", joblevel); } //作业人数 if (!queryParam["numberofpeople"].IsEmpty()) { var numberofpeople = queryParam["numberofpeople"].ToString(); pagination.conditionJson += string.Format(" and t.numberofpeople='{0}' ", numberofpeople); } DataTable data = this.BaseRepository().FindTableByProcPager(pagination, dataType); foreach (DataRow dr in data.Rows) { string deptNames = ""; var deptids = dr["deptids"].ToString().Split(','); for (int i = 0; i < deptids.Length; i++) { var dept = departmentDll.GetEntity(deptids[i]); if (dept != null) { if (dept.Nature == "专业" || dept.Nature == "班组") { DataTable dt = departmentDll.GetDataTable(string.Format( "select fullname from BASE_DEPARTMENT where encode=(select encode from BASE_DEPARTMENT t where instr('{0}',encode)=1 and nature='{1}' and organizeid='{2}') or encode='{0}' order by deptcode", dept.EnCode, "部门", dept.OrganizeId)); if (dt.Rows.Count > 0) { string name = ""; foreach (DataRow dr1 in dt.Rows) { name += dr1["fullname"].ToString() + "/"; } deptNames += name.TrimEnd('/') + ","; } } else { deptNames += dept.FullName + ","; } } } if (!string.IsNullOrEmpty(deptNames) && deptNames.Length > 1) { dr["deptNames"] = deptNames.TrimEnd(','); } } return(data); }
/// <summary> /// 获取列表 /// </summary> /// <param name="pagination">分页</param> /// <param name="queryJson">查询参数</param> /// <returns>返回列表</returns> public DataTable GetList(Pagination pagination, string queryJson, string authType, Operator user) { DatabaseType dataTye = DatabaseType.Oracle; #region 查表 pagination.p_kid = "a.id"; pagination.p_fields = @"a.flowdeptname,a.flowname,a.flowrolename,a.flowdept,a.investigatestate,a.workdeptid,a.engineeringid,a.flowid,b.outtransferuseraccount,b.intransferuseraccount, a.workdepttype,a.workdeptname,a.applynumber,a.createdate,a.applystate,a.workplace,a.workcontent,a.workuserids,a.workareaname,a.workareacode, a.workstarttime,a.workendtime,a.applyusername,a.applydeptname,a.createuserid,a.createuserdeptcode,nvl(a.conditionstate,0) conditionstate, a.createuserorgcode,a.flowremark,a.specialtytype,'' as approveuserid,'' as approveusername,'' as approveuseraccount,case when a.applystate='3' and (a.conditionstate='0' or a.conditionstate is null) then '1' else '0' end appconditionstate"; pagination.p_tablename = " bis_firewater a left join (select recid,flowid,outtransferuseraccount,intransferuseraccount,row_number() over(partition by recid,flowid order by createdate desc) as num from BIS_TRANSFERRECORD where disable=0) b on a.id=b.recid and a.flowid=b.flowid and b.num=1"; pagination.conditionJson = " 1=1 "; if (!string.IsNullOrEmpty(authType)) { //配置的部门拥有特殊查看权限 string specialDeptId = new DataItemDetailService().GetItemValue(user.OrganizeId, "FireDept"); var IsHrdl = new DataItemDetailService().GetItemValue("IsOpenPassword"); string isAllDataRange = dataitemdetailservice.GetEnableItemValue("HighRiskWorkDataRange"); //特殊标记,高风险作业模块是否看全厂数据 if (!string.IsNullOrEmpty(specialDeptId) && specialDeptId.Contains(user.DeptId) || IsHrdl == "true" || !string.IsNullOrWhiteSpace(isAllDataRange)) { pagination.conditionJson += " and a.createuserorgcode='" + user.OrganizeCode + "'"; } else { switch (authType) { case "1": pagination.conditionJson += " and a.applyuserid='" + user.UserId + "'"; break; case "2": pagination.conditionJson += " and a.workdeptid='" + user.DeptId + "'"; break; case "3": //本子部门 pagination.conditionJson += string.Format(" and ((a.workdeptid in(select departmentid from base_department where encode like '{0}%')) or (a.engineeringid in(select id from epg_outsouringengineer a where a.engineerletdeptid = '{1}')))", user.DeptCode, user.DeptId); break; case "4": pagination.conditionJson += " and a.createuserorgcode='" + user.OrganizeCode + "'"; break; case "app": if (user.RoleName.Contains("公司") || user.RoleName.Contains("厂级")) { pagination.conditionJson += " and a.createuserorgcode='" + user.OrganizeCode + "'"; } else { pagination.conditionJson += string.Format(" and ((a.workdeptid in(select departmentid from base_department where encode like '{0}%')) or (a.engineeringid in(select id from epg_outsouringengineer a where a.engineerletdeptid = '{1}')))", user.DeptCode, user.DeptId); } break; } } } else { pagination.conditionJson += " and 0=1"; } #endregion #region 筛选条件 var queryParam = JObject.Parse(queryJson); //查询条件 if (!queryParam["applynumber"].IsEmpty())//申请编号 { pagination.conditionJson += string.Format(" and applynumber like '%{0}%'", queryParam["applynumber"].ToString()); } //查询条件 if (!queryParam["status"].IsEmpty())//许可状态 { pagination.conditionJson += string.Format(" and applystate='{0}'", queryParam["status"].ToString()); } //时间选择 if (!queryParam["st"].IsEmpty())//开始时间 { string from = queryParam["st"].ToString().Trim(); pagination.conditionJson += string.Format(" and workstarttime>=to_date('{0}','yyyy-mm-dd')", from); } if (!queryParam["et"].IsEmpty())//结束时间 { string to = Convert.ToDateTime(queryParam["et"].ToString().Trim()).AddDays(1).ToString("yyyy-MM-dd"); pagination.conditionJson += string.Format(" and workendtime<=to_date('{0}','yyyy-mm-dd')", to); } if (!queryParam["workdept"].IsEmpty() && !queryParam["workdeptid"].IsEmpty())//使用消防水单位 { pagination.conditionJson += string.Format(" and ((workdeptcode in(select encode from base_department where encode like '{0}%')) or (engineeringid in(select id from epg_outsouringengineer a where a.engineerletdeptid = '{1}')))", queryParam["workdept"].ToString(), queryParam["workdeptid"].ToString()); } //查询条件 if (!queryParam["workdeptcode"].IsEmpty())//使用消防水单位code { pagination.conditionJson += string.Format(" and workdeptcode='{0}'", queryParam["workdeptcode"].ToString()); } if (!queryParam["viewrange"].IsEmpty()) { //本人 if (queryParam["viewrange"].ToString().ToLower() == "self") { pagination.conditionJson += string.Format(" and a.applyuserid='{0}'", user.UserId); } else if (queryParam["viewrange"].ToString().ToLower() == "selfaudit") { string strCondition = " and a.applystate ='1'"; DataTable dt = BaseRepository().FindTable("select " + pagination.p_kid + "," + pagination.p_fields + " from " + pagination.p_tablename + " where " + pagination.conditionJson + strCondition); for (int i = 0; i < dt.Rows.Count; i++) { string executedept = string.Empty; highriskcommonapplyservice.GetExecutedept(dt.Rows[i]["workdepttype"].ToString(), dt.Rows[i]["workdeptid"].ToString(), dt.Rows[i]["engineeringid"].ToString(), out executedept); string createdetpid = departmentservice.GetEntityByCode(dt.Rows[i]["createuserdeptcode"].ToString()).IsEmpty() ? "" : departmentservice.GetEntityByCode(dt.Rows[i]["createuserdeptcode"].ToString()).DepartmentId; string outsouringengineerdept = string.Empty; highriskcommonapplyservice.GetOutsouringengineerDept(dt.Rows[i]["workdeptid"].ToString(), out outsouringengineerdept); string str = manypowercheckservice.GetApproveUserAccount(dt.Rows[i]["flowid"].ToString(), dt.Rows[i]["id"].ToString(), "", dt.Rows[i]["specialtytype"].ToString(), executedept, outsouringengineerdept, createdetpid, "", ""); dt.Rows[i]["approveuseraccount"] = str; } string[] applyids = dt.Select(" (outtransferuseraccount is null or outtransferuseraccount not like '%" + user.Account + ",%') and (approveuseraccount like '%" + user.Account + ",%' or intransferuseraccount like '%" + user.Account + ",%')").AsEnumerable().Select(d => d.Field <string>("id")).ToArray(); pagination.conditionJson += string.Format(" and a.id in ('{0}') {1}", string.Join("','", applyids), strCondition); } else { //排除其他人申请保存的数据 pagination.conditionJson += string.Format(" and a.id not in(select id from bis_firewater where applystate='0' and applyuserid!='{0}')", user.UserId); } } #endregion DataTable data = this.BaseRepository().FindTableByProcPager(pagination, dataTye); for (int i = 0; i < data.Rows.Count; i++) { string executedept = string.Empty; highriskcommonapplyservice.GetExecutedept(data.Rows[i]["workdepttype"].ToString(), data.Rows[i]["workdeptid"].ToString(), data.Rows[i]["engineeringid"].ToString(), out executedept); //获取执行部门 string createdetpid = departmentservice.GetEntityByCode(data.Rows[i]["createuserdeptcode"].ToString()).IsEmpty() ? "" : departmentservice.GetEntityByCode(data.Rows[i]["createuserdeptcode"].ToString()).DepartmentId; //获取创建部门 string outsouringengineerdept = string.Empty; highriskcommonapplyservice.GetOutsouringengineerDept(data.Rows[i]["workdeptid"].ToString(), out outsouringengineerdept); string str = manypowercheckservice.GetApproveUserAccount(data.Rows[i]["flowid"].ToString(), data.Rows[i]["id"].ToString(), "", data.Rows[i]["specialtytype"].ToString(), executedept, outsouringengineerdept, createdetpid, "", ""); string outtransferuseraccount = data.Rows[i]["outtransferuseraccount"].IsEmpty() ? "" : data.Rows[i]["outtransferuseraccount"].ToString(); //转交申请人 string intransferuseraccount = data.Rows[i]["intransferuseraccount"].IsEmpty() ? "" : data.Rows[i]["intransferuseraccount"].ToString(); //转交接收人 string[] outtransferuseraccountlist = outtransferuseraccount.Split(','); string[] intransferuseraccountlist = intransferuseraccount.Split(','); foreach (var item in intransferuseraccountlist) { if (!item.IsEmpty() && !str.Contains(item + ",")) { str += (item + ",");//将转交接收人加入审核账号中 } } foreach (var item in outtransferuseraccountlist) { if (!item.IsEmpty() && str.Contains(item + ",")) { str = str.Replace(item + ",", "");//将转交申请人从审核账号中移除 } } data.Rows[i]["approveuseraccount"] = str; DataTable dtuser = userservice.GetUserTable(str.Split(',')); string[] usernames = dtuser.AsEnumerable().Select(d => d.Field <string>("realname")).ToArray(); data.Rows[i]["approveusername"] = usernames.Length > 0 ? string.Join(",", usernames) : ""; } return(data); }
/// <summary> /// 获取使用消防水台账 /// </summary> /// <param name="pagination">分页</param> /// <param name="queryJson">查询参数</param> /// <returns>返回分页列表</returns> public DataTable GetLedgerList(Pagination pagination, string queryJson, Operator user) { DatabaseType dataType = DatabaseType.Oracle; #region 数据权限 string curUserId = user.UserId; #endregion /* * 即将作业:审批通过且实际作业时间为空 * 作业中:审批通过且实际作业开始时间不为空且实际作业结束时间为空 * 已结束:审批通过且实际作业结束时间不为空 */ #region 查表 pagination.p_kid = "Id as workid"; pagination.p_fields = "case when workdepttype=0 then '单位内部' when workdepttype=1 then '外包单位' end workdepttypename,workdepttype,workdeptid,workdeptname,workdeptcode,applynumber,a.createdate,workplace,workcontent,workstarttime,workendtime,applyusername,engineeringname,engineeringid,case when a.workoperate='1' then '作业暂停' when realityworkstarttime is not null and realityworkendtime is null then '作业中' when realityworkendtime is not null then '已结束' else '即将作业' end ledgertype,a.workuserids,a.RealityWorkStartTime,a.RealityWorkEndTime,'' as isoperate,a.createuserid"; pagination.p_tablename = " bis_firewater a"; pagination.conditionJson = "applystate='3'"; if (!user.IsSystem) { //配置的部门拥有特殊查看权限 string specialDeptId = new DataItemDetailService().GetItemValue(user.OrganizeId, "FireDept"); if (!string.IsNullOrEmpty(specialDeptId) && specialDeptId.Contains(user.DeptId)) { pagination.conditionJson += " and a.createuserorgcode='" + user.OrganizeCode + "'"; } else { if (user.RoleName.Contains("公司") || user.RoleName.Contains("厂级")) { pagination.conditionJson += " and a.createuserorgcode='" + user.OrganizeCode + "'"; } else { pagination.conditionJson += string.Format(" and ((workdeptcode in(select encode from base_department where encode like '{0}%')) or (engineeringid in(select id from epg_outsouringengineer a where a.engineerletdeptid = '{1}')))", user.DeptCode, user.DeptId); } } } #endregion #region 筛选条件 var queryParam = JObject.Parse(queryJson); //时间选择 if (!queryParam["st"].IsEmpty())//使用消防水开始时间 { string from = queryParam["st"].ToString().Trim(); pagination.conditionJson += string.Format(" and WorkStartTime>=to_date('{0}','yyyy-mm-dd')", from); } if (!queryParam["et"].IsEmpty())//使用消防水结束时间 { string to = Convert.ToDateTime(queryParam["et"].ToString().Trim()).AddDays(1).ToString("yyyy-MM-dd"); pagination.conditionJson += string.Format(" and WorkEndTime<=to_date('{0}','yyyy-mm-dd')", to); } //查询条件 if (!queryParam["workdeptcode"].IsEmpty())//使用消防水单位code { pagination.conditionJson += string.Format(" and workdeptcode='{0}'", queryParam["workdeptcode"].ToString()); } if (!queryParam["ledgertype"].IsEmpty()) { var ledgertype = queryParam["ledgertype"].ToString(); if (ledgertype == "0")// 即将作业 { pagination.conditionJson += " and RealityWorkStartTime is null"; } else if (ledgertype == "1")//作业中 { pagination.conditionJson += " and RealityWorkStartTime is not null and RealityWorkEndTime is null"; } else if (ledgertype == "3") { pagination.conditionJson += " and workoperate='1'"; } else//已结束 { pagination.conditionJson += " and RealityWorkEndTime is not null and workoperate is null"; } } if (!queryParam["keyname"].IsEmpty()) { pagination.conditionJson += string.Format(" and (workdeptname like '%{0}%' or engineeringname like '%{0}%')", queryParam["keyname"].ToString()); } if (!queryParam["applynumber"].IsEmpty()) { pagination.conditionJson += string.Format(" and applynumber like '%{0}%'", queryParam["applynumber"].ToString()); } #endregion var data = this.BaseRepository().FindTableByProcPager(pagination, dataType); #region 操作权限 if (data != null) { string strRole = dataitemdetailservice.GetItemValue(user.OrganizeId, "LedgerSendDept"); //责任部门角色 string strManageRole = dataitemdetailservice.GetItemValue(user.OrganizeId, "LedgerManageDept"); //安全主管部门监管角色 string strWorkRole = dataitemdetailservice.GetItemValue(user.OrganizeId, "LedgerWorkDept"); //作业单位 for (int i = 0; i < data.Rows.Count; i++) { string str = "0"; string workUserIds = data.Rows[i]["workuserids"].ToString(); //作业人员 string applyUserId = data.Rows[i]["createuserid"].ToString(); string engineeringid = data.Rows[i]["engineeringid"].ToString(); //工程id string workDeptType = data.Rows[i]["workdepttype"].ToString(); string workdeptid = data.Rows[i]["workdeptid"].ToString(); //作业单位id var dept = new OutsouringengineerService().GetEntity(engineeringid); //获取工程id对应的责任部门 if (user.RoleName.Contains("厂级") && !string.IsNullOrEmpty(strManageRole)) //安全主管部门 { string[] arrrolename = strManageRole.Split(','); for (int j = 0; j < arrrolename.Length; j++) { if (user.RoleName.Contains(arrrolename[j])) { str = "1"; break; } } } if (str != "1" && !string.IsNullOrEmpty(workdeptid)) { string[] arrrolename = strWorkRole.Split(','); for (int j = 0; j < arrrolename.Length; j++) { if (user.RoleName.Contains(arrrolename[j])) { str = "1"; break; } } } if (str != "1" && ((!string.IsNullOrEmpty(workUserIds) && workUserIds.Contains(curUserId)) || curUserId == applyUserId))//作业人员或申请人 { str = "1"; } if (str != "1" && dept != null) { if (workDeptType == "1")//责任部门 { if (dept.ENGINEERLETDEPTID == user.DeptId && !string.IsNullOrEmpty(strRole)) { string[] arrrolename = strRole.Split(','); for (int j = 0; j < arrrolename.Length; j++) { if (user.RoleName.Contains(arrrolename[j])) { str = "1"; break; } } } } } data.Rows[i]["isoperate"] = str; } } #endregion return(data); }
/// <summary> /// 出入权限配置 /// </summary> /// <param name="codes">用户或组织id集合</param> /// <param name="ParentAccess">控制器id集合</param> /// <param name="Access">门禁点id集合</param> /// <param name="StartTime">开始时间</param> /// <param name="EndTime">结束时间</param> /// <param name="Type">0组织 1人员</param> /// <param name="baseUrl"></param> /// <param name="Key"></param> /// <param name="Signature"></param> private void DeleteUserlimits(List <string> codes, List <HikAccessNo> ParentAccess, List <HikAccessNo> Access, int Type, string baseUrl, string Key, string Signature) { var url = "/artemis/api/acps/v1/auth_config/delete"; List <personDatas1> personDatas = new List <personDatas1>(); personDatas1 entity = new personDatas1(); entity.indexCodes = codes; if (Type == 0) { entity.personDataType = "org"; } else { entity.personDataType = "person"; } personDatas.Add(entity); List <resourceInfos1> AllresourceInfos = new List <resourceInfos1>();//设备信息集合 for (int i = 0; i < ParentAccess.Count; i++) { //List<int> nos = new List<int>(); //nos.Add(1); //nos.Add(2); resourceInfos1 entity1 = new resourceInfos1(); entity1.resourceIndexCode = ParentAccess[i].AccId;//设备唯一编号 entity1.resourceType = "acsDevice"; entity1.channelNos = ParentAccess[i].No; AllresourceInfos.Add(entity1); } //这里门禁控制器固定为设备类型门禁点类型采取数据编码配置 DataItemDetailService itemBll = new DataItemDetailService(); string doorType = itemBll.GetItemValue("doorType"); foreach (var item in Access) { //List<int> nos = new List<int>(); //nos.Add(1); resourceInfos1 entity1 = new resourceInfos1(); entity1.resourceIndexCode = item.AccId;//设备唯一编号 entity1.resourceType = doorType; entity1.channelNos = item.No; AllresourceInfos.Add(entity1); } var model = new { personDatas, resourceInfos = AllresourceInfos }; string msg = SocketHelper.LoadCameraList(model, baseUrl, url, Key, Signature); var tsk = JsonConvert.DeserializeObject <JurisdictionEntity>(msg); bool flag = QuerySpeedofprogress(tsk.data.taskId, baseUrl, Key, Signature); if (flag) { //将删除卡号下发到所有设备 downloadUserlimits(AllresourceInfos, 1, baseUrl, Key, Signature); } }
/// <summary> /// 出入权限配置 /// </summary> /// <param name="codes">用户或组织id集合</param> /// <param name="ParentAccess">控制器id集合</param> /// <param name="Access">门禁点id集合</param> /// <param name="StartTime">开始时间</param> /// <param name="EndTime">结束时间</param> /// <param name="Type">0组织 1人员</param> /// <param name="baseUrl"></param> /// <param name="Key"></param> /// <param name="Signature"></param> private void UploadUserlimits(List <string> codes, List <HikAccessNo> ParentAccess, List <HikAccessNo> Access, string StartTime, string EndTime, int Type, string baseUrl, string Key, string Signature) { var url = "/artemis/api/acps/v1/auth_config/add"; List <personDatas1> personDatas = new List <personDatas1>(); personDatas1 entity = new personDatas1(); entity.indexCodes = codes; if (Type == 0) { entity.personDataType = "org"; } else { entity.personDataType = "person"; } personDatas.Add(entity); List <resourceInfos1> AllresourceInfos = new List <resourceInfos1>(); //设备信息集合 List <resourceInfos1> resourceInfos = new List <resourceInfos1>(); //设备信息集合 for (int i = 0; i < ParentAccess.Count; i++) { resourceInfos1 entity1 = new resourceInfos1(); entity1.resourceIndexCode = ParentAccess[i].AccId;//设备唯一编号 entity1.resourceType = "acsDevice"; entity1.channelNos = ParentAccess[i].No; AllresourceInfos.Add(entity1); } //这里门禁控制器固定为设备类型门禁点类型采取数据编码配置 DataItemDetailService itemBll = new DataItemDetailService(); string doorType = itemBll.GetItemValue("doorType"); foreach (var item in Access) { resourceInfos1 entity1 = new resourceInfos1(); entity1.resourceIndexCode = item.AccId;//设备唯一编号 entity1.resourceType = doorType; entity1.channelNos = item.No; AllresourceInfos.Add(entity1); resourceInfos.Add(entity1); } string stime = Convert.ToDateTime(StartTime).ToString("yyyy-MM-ddTHH:mm:ss+08:00", DateTimeFormatInfo.InvariantInfo);//ISO8601时间格式 string etime = Convert.ToDateTime(EndTime).ToString("yyyy-MM-ddTHH:mm:ss+08:00", DateTimeFormatInfo.InvariantInfo); var model = new { personDatas, resourceInfos = AllresourceInfos, startTime = stime, // "2019-12-01T17:30:08+08:00", endTime = etime //"2019-12-19T17:30:08+08:00" }; string msg = SocketHelper.LoadCameraList(model, baseUrl, url, Key, Signature); var tsk = JsonConvert.DeserializeObject <JurisdictionEntity>(msg); bool flag = QuerySpeedofprogress(tsk.data.taskId, baseUrl, Key, Signature); if (flag) { //先将卡号下发到所有设备 downloadUserlimits(AllresourceInfos, 1, baseUrl, Key, Signature); //再讲指纹单独下发到设备 downloadUserlimits(resourceInfos, 2, baseUrl, Key, Signature); } }
/// <summary> /// 设置计划完成状态并同步相关联风险记录到历史记录表 /// </summary> /// <param name="planId">计划ID</param> /// <param name="areaIds">区域ID(多个用逗号分隔)</param> /// <returns></returns> public bool SetComplate(string planId, string areaIds) { this.BaseRepository().BeginTrans(); DataItemDetailService detailservice = new DataItemDetailService(); var gxhs = detailservice.GetItemValue("广西华昇版本"); try { string sql = string.Format("update BIS_RISKPLAN set status=1,modifydate=sysdate where id='{0}'", planId); if (this.BaseRepository().ExecuteBySql(sql) > 0) { string id = Guid.NewGuid().ToString(); string guid = string.Format("'{0}'", id); if (DbHelper.DbType == DatabaseType.MySql) { guid = "uuid()"; } if (!string.IsNullOrWhiteSpace(gxhs)) //广西华昇版本查询管控部门是辨识部门、评估部门的数据 { sql = string.Format(@"insert into BIS_RISKHISTORY( id,areaid,areaname,dangersource,way,itema,itemb,itemc,itemr, grade,deptcode,deptname,postid,postname,createuserid,createdate, createusername,createuserdeptcode,createuserorgcode,status, gradeval,result,accidentname,harmtype,risktype,DeleteMark, planid,state,districtid,districtname,areacode,newplanid, WorkTask,Process,EquipmentName,Parts,RiskDesc,ResultType, measure,majorname,Description,HarmProperty,levelname,faulttype, jobname,toolordanger,dangersourcetype,hjsystem,hjequpment, project,dutyperson,dutypersonid,element,faultcategory,majornametype, packuntil,packnum,storagespace,postdept,postdeptid,postperson,postpersonid,postdeptcode,name,listingid,harmname,hazardtype,harmdescription,typesofrisk,riskcategory,exposedrisk,existingmeasures,isspecialequ,checkprojectname,checkstandard,consequences,advicemeasures,effectiveness,costfactor,measuresresult,isadopt,measuresresultval,isconventional,remark,workcontent) select id || {0},areaid,t.areaname,t.dangersource,way,itema, itemb,itemc,itemr,grade,deptcode,deptname,postid,postname, createuserid,createdate,createusername,createuserdeptcode, createuserorgcode,status,gradeval,result,accidentname,harmtype, risktype,DeleteMark,planid,state,districtid,districtname, areacode,'{1}',WorkTask,Process,EquipmentName,Parts,RiskDesc, ResultType,measure,majorname,Description,HarmProperty,levelname, faulttype,jobname,toolordanger,dangersourcetype,hjsystem,hjequpment, project,dutyperson,dutypersonid,element,faultcategory,majornametype, packuntil,packnum,storagespace,postdept,postdeptid,postperson,postpersonid,postdeptcode,name,listingid,harmname,hazardtype,harmdescription,typesofrisk,riskcategory,exposedrisk,existingmeasures,isspecialequ,checkprojectname,checkstandard,consequences,advicemeasures,effectiveness,costfactor,measuresresult,isadopt,measuresresultval,isconventional,remark,workcontent from bis_riskassess t where (t.deptcode in(select DEPTCODE from bis_riskpplandata t where t.planid ='{1}' ) and status=1) or (planid='{1}' and status=2) order by id", guid, planId, areaIds.Replace(",", "','")); } else { sql = string.Format(@"insert into BIS_RISKHISTORY( id,areaid,areaname,dangersource,way,itema,itemb,itemc,itemr, grade,deptcode,deptname,postid,postname,createuserid,createdate, createusername,createuserdeptcode,createuserorgcode,status, gradeval,result,accidentname,harmtype,risktype,DeleteMark, planid,state,districtid,districtname,areacode,newplanid, WorkTask,Process,EquipmentName,Parts,RiskDesc,ResultType, measure,majorname,Description,HarmProperty,levelname,faulttype, jobname,toolordanger,dangersourcetype,hjsystem,hjequpment, project,dutyperson,dutypersonid,element,faultcategory,majornametype, packuntil,packnum,storagespace,postdept,postdeptid,postperson,postpersonid,postdeptcode,name,listingid,harmname,hazardtype,harmdescription,typesofrisk,riskcategory,exposedrisk,existingmeasures,isspecialequ,checkprojectname,checkstandard,consequences,advicemeasures,effectiveness,costfactor,measuresresult,isadopt,measuresresultval,isconventional,remark) select id || {0},areaid,t.areaname,t.dangersource,way,itema, itemb,itemc,itemr,grade,deptcode,deptname,postid,postname, createuserid,createdate,createusername,createuserdeptcode, createuserorgcode,status,gradeval,result,accidentname,harmtype, risktype,DeleteMark,planid,state,districtid,districtname, areacode,'{1}',WorkTask,Process,EquipmentName,Parts,RiskDesc, ResultType,measure,majorname,Description,HarmProperty,levelname, faulttype,jobname,toolordanger,dangersourcetype,hjsystem,hjequpment, project,dutyperson,dutypersonid,element,faultcategory,majornametype, packuntil,packnum,storagespace,postdept,postdeptid,postperson,postpersonid,postdeptcode,name,listingid,harmname,hazardtype,harmdescription,typesofrisk,riskcategory,exposedrisk,existingmeasures,isspecialequ,checkprojectname,checkstandard,consequences,advicemeasures,effectiveness,costfactor,measuresresult,isadopt,measuresresultval,isconventional,remark from bis_riskassess t where (t.districtid in('{2}') and status=1) or (planid='{1}' and status=2) order by id", guid, planId, areaIds.Replace(",", "','")); } this.BaseRepository().ExecuteBySql(sql); //DataTable dt = this.BaseRepository().FindTable(string.Format("select id from bis_riskassess where (districtid in('{1}') and status=1) or (planid='{0}' and status=2) and id in(select riskid from BIS_MEASURES)",planId, areaIds.Replace(",", "','"))); //foreach(DataRow dr in dt.Rows) //{ //id = Guid.NewGuid().ToString(); sql = string.Format("insert into BIS_MEASURES(id,content,riskid,typename) select '{0}' || rownum,content,riskid || {3},typename from BIS_MEASURES where riskid in(select id from bis_riskassess where (districtid in('{2}') and status=1) or (planid='{1}' and status=2)) order by riskid", id, planId, areaIds.Replace(",", "','"), guid); this.BaseRepository().ExecuteBySql(sql); //sql = string.Format("insert into BIS_MEASURES(id,content,riskid,typename) select '{0}' || rownum,t.content,'{1}',typename from BIS_MEASURES t where t.riskid='{2}'", Guid.NewGuid().ToString(), dr[0].ToString() + id, dr[0].ToString()); //this.BaseRepository().ExecuteBySql(sql); //} sql = string.Format("update bis_riskassess set status=1,planId='' where planId='{0}'", planId); this.BaseRepository().ExecuteBySql(sql); this.BaseRepository().Commit(); } return(true); } catch { this.BaseRepository().Rollback(); return(false); } }