package system import ( "encoding/json" "fmt" "strconv" "strings" "time" "dashoo.cn/backend/api/business/auditsetting" "dashoo.cn/backend/api/business/baseUser" "dashoo.cn/backend/api/business/items" "dashoo.cn/backend/api/business/organize" "dashoo.cn/backend/api/business/role" . "dashoo.cn/backend/api/controllers" "dashoo.cn/business2/permission" "dashoo.cn/business2/userRole" "dashoo.cn/utils" ) type OilAuditSettingController struct { BaseController } // @Title 获取列表 // @Description get user by token // @Success 200 {object} []auditsetting.Base_OilAuditSetting // @router /list [get] func (this *OilAuditSettingController) GetEntityList() { //获取分页信息 page := this.GetPageInfoForm() where := " 1=1 " orderby := "Id" asc := false Order := this.GetString("Order") Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop if Order == "asc" { asc = true } } OrganizeId := this.GetString("OrganizeId") OrganizeName := this.GetString("OrganizeName") // AuditStepCode := this.GetString("AuditStepCode") AuditStepName := this.GetString("AuditStepName") RoleId := this.GetString("RoleId") RoleName := this.GetString("RoleName") WorkFlowCord := this.GetString("WorkFlowCord") WorkFlowName := this.GetString("WorkFlowName") Remark := this.GetString("Remark") CreateOn := this.GetString("CreateOn") Code := this.GetString("Code") svcPerm := permission.GetPermissionService(utils.DBE) isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.AuditSetting.AllRecord") svcuser := organize.GetOrganizeService(utils.DBE) isauth = svcuser.UserInRoleById(this.User.Id, "10000203") if !svcPerm.IsAdmin(this.User.Id) && !isauth { //OrganizeId = this.User.DepartmentId //无权限看所有时,只看当前部门的数据 var org organize.Base_Organize orgsvc := organize.GetOrganizeService(utils.DBE) orgsvc.GetEntityById(this.User.DepartmentId, &org) OrganizeId = strconv.Itoa(org.Parentid) if OrganizeId != "" { where = where + " and OrganizeId = '" + OrganizeId + "'" } } if OrganizeName != "" { where = where + " and OrganizeName like '%" + OrganizeName + "%'" } if Code != "" { where = where + " and AuditStepCode like '%" + Code + "%'" } if AuditStepName != "" { where = where + " and AuditStepName like '%" + AuditStepName + "%'" } if RoleId != "" { where = where + " and RoleId like '%" + RoleId + "%'" } if RoleName != "" { where = where + " and RoleName like '%" + RoleName + "%'" } if WorkFlowCord != "" { where = where + " and WorkFlowCord like '%" + WorkFlowCord + "%'" } if WorkFlowName != "" { where = where + " and WorkFlowName like '%" + WorkFlowName + "%'" } if Remark != "" { where = where + " and Remark like '%" + Remark + "%'" } if CreateOn != "" { dates := strings.Split(CreateOn, ",") if len(dates) == 2 { minDate := dates[0] maxDate := dates[1] where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'" } } if Remark != "" { where = where + " and Remark like '%" + Remark + "%'" } svc := auditsetting.GetOilAuditSettingService(utils.DBE) var list []auditsetting.Base_OilAuditSetting total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total datainfo.PageIndex = page.CurrentPage datainfo.ItemsPerPage = page.Size this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取字典列表 // @Description get user by token // @Success 200 {object} map[string]interface{} // @router /dictlist [get] func (this *OilAuditSettingController) GetDictList() { dictList := make(map[string]interface{}) dictSvc := items.GetItemsService(utils.DBE) userSvc := baseUser.GetBaseUserService(utils.DBE) dictList["AuditStep"] = dictSvc.GetKeyValueItems("AuditStep", this.User.AccCode) dictList["WorkFlow"] = dictSvc.GetKeyValueItems("WorkFlow", this.User.AccCode) var userEntity userRole.Base_User userSvc.GetEntityById(this.User.Id, &userEntity) dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid) svcRole := role.GetRoleService(utils.DBE) var roles []userRole.Base_Role where := "IsVisible=1" svcRole.GetMyRoleList("CreateOn", utils.ToStr(this.User.Id), &roles, where) dictList["RoleList"] = roles svcOrgan := organize.GetOrganizeService(utils.DBE) dictList["OrganizeId"] = this.User.DepartmentId dictList["OrganizeName"] = svcOrgan.GetNameById(this.User.DepartmentId) var users []userRole.Base_User where = "DepartmentId=" + this.User.DepartmentId svcRole.GetEntities(&users, where) dictList["users"] = users //var dictCustomer []svccustomer.Customer //customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer) //dictList["EntrustCorp"] = &dictCustomer var datainfo DataInfo datainfo.Items = dictList this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取实体 // @Description 获取实体 // @Success 200 {object} auditsetting.Base_OilAuditSetting // @router /get/:id [get] func (this *OilAuditSettingController) GetEntity() { Id := this.Ctx.Input.Param(":id") var model auditsetting.Base_OilAuditSetting svc := auditsetting.GetOilAuditSettingService(utils.DBE) svc.GetEntityByIdBytbl(OilAuditSettingName, Id, &model) this.Data["json"] = &model this.ServeJSON() } // @Title 添加 // @Description 新增 // @Param body body auditsetting.OilAuditSetting // @Success 200 {object} controllers.Request // @router /add [post] func (this *OilAuditSettingController) AddEntity() { audits := this.GetString("aduitres") auditIds := strings.Split(audits, ",") fmt.Println(audits) var model auditsetting.Base_OilAuditSetting var audituser auditsetting.OilAuditUser var org organize.Base_Organize var jsonBlob = this.Ctx.Input.RequestBody svc := auditsetting.GetOilAuditSettingService(utils.DBE) json.Unmarshal(jsonBlob, &model) model.CreateOn = time.Now() model.CreateBy = this.User.Realname model.CreateUserId, _ = utils.StrTo(this.User.Id).Int() //model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int() svc.GetEntityById(this.User.DepartmentId, &org) model.OrganizeId = org.Parentid var org1 organize.Base_Organize svc.GetEntityById(org.Parentid, &org1) model.OrganizeName = org1.Fullname var errinfo ErrorDataInfo //var modelsele auditsetting.Base_OilAuditSetting //where := "OrganizeId=" + this.User.DepartmentId + " and AuditStepCode='" + model.AuditStepCode + "'" //has := svc.GetEntity(&modelsele, where) //if (has) { // errinfo.Message = "审批步骤已经存在,不允许重复添加!" // errinfo.Code = -1 // this.Data["json"] = &errinfo // this.ServeJSON() // return //} var err error _, err = svc.InsertEntityBytbl(OilAuditSettingName, &model) if (err == nil) { for _, Id := range auditIds { var user userRole.Base_User var org1 organize.Base_Organize svc.GetEntityById(Id, &user) svc.GetEntityById(user.Departmentid, &org1) audituser.Id = 0 audituser.SettingId = model.Id audituser.DepartmentId,_ = strconv.Atoi(user.Departmentid) audituser.CompanyId = org1.Parentid audituser.UserId,_ = strconv.Atoi(Id) audituser.UserName = user.Realname audituser.CreateOn = time.Now() audituser.CreateBy = this.User.Realname audituser.CreateUserId, _ = utils.StrTo(this.User.Id).Int() _, err = svc.InsertEntityBytbl(OilAuditUserName, &audituser) } } if err == nil { //新增 errinfo.Message = "添加成功!" errinfo.Code = 0 errinfo.Item = model.Id this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 修改实体 // @Description 修改实体 // @Param body body auditsetting.OilAuditSetting // @Success 200 {object} controllers.Request // @router /update/:id [post] func (this *OilAuditSettingController) UpdateEntity() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model auditsetting.Base_OilAuditSetting svc := auditsetting.GetOilAuditSettingService(utils.DBE) var jsonBlob = this.Ctx.Input.RequestBody json.Unmarshal(jsonBlob, &model) model.ModifiedOn = time.Now() model.ModifiedBy = this.User.Realname model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() var org organize.Base_Organize svc.GetEntityById(this.User.DepartmentId, &org) model.OrganizeId = org.Parentid var org1 organize.Base_Organize svc.GetEntityById(org.Parentid, &org1) model.OrganizeName = org1.Fullname cols := []string{ "Id", "OrganizeId", "OrganizeName", "AuditStepCode", "AuditStepName", "RoleId", "RoleName", "WorkFlowCord", "WorkFlowName", "UserId", "UserName", "Remark", "IsDelete", "CreateOn", "CreateUserId", "CreateBy", "ModifiedOn", "ModifiedUserId", "ModifiedBy", } err := svc.UpdateEntityBytbl(OilAuditSettingName, id, &model, cols) auditIds := strings.Split(model.UserId, ",") var audituser auditsetting.OilAuditUser if err == nil { where := "SettingId=" + id err = svc.DeleteEntityBytbl(OilAuditUserName, where) for _, Id := range auditIds { var user userRole.Base_User svc.GetEntityById(Id, &user) var org organize.Base_Organize svc.GetEntityById(user.Departmentid, &org) audituser.DepartmentId,_ = strconv.Atoi(user.Departmentid) audituser.CompanyId = org.Parentid audituser.Id = 0 audituser.SettingId = model.Id audituser.UserId,_ = strconv.Atoi(Id) audituser.UserName = user.Realname audituser.CreateOn = time.Now() audituser.CreateBy = this.User.Realname audituser.CreateUserId, _ = utils.StrTo(this.User.Id).Int() _, err = svc.InsertEntityBytbl(OilAuditUserName, &audituser) } } if err == nil { errinfo.Message = "修改成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 删除单条信息 // @Description // @Success 200 {object} ErrorInfo // @Failure 403 :id 为空 // @router /delete/:Id [delete] func (this *OilAuditSettingController) DeleteEntity() { Id := this.Ctx.Input.Param(":Id") var errinfo ErrorInfo if Id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model auditsetting.Base_OilAuditSetting var entityempty auditsetting.Base_OilAuditSetting svc := auditsetting.GetOilAuditSettingService(utils.DBE) where := "SettingId=" + Id svc.DeleteEntityBytbl(OilAuditUserName, where) opdesc := "删除-" + Id err := svc.DeleteOperationAndWriteLogBytbl(OilAuditSettingName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "钻井日报") if err == nil { errinfo.Message = "删除成功" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 获取实体 // @Description 获取实体 // @Success 200 {object} controllers.Request // @router /isaccess [get] func (this *OilAuditSettingController) IsAccess() { auditstepcode := this.GetString("auditstepcode") var users []userRole.Base_RoleList var auditWorkflow auditsetting.Base_OilAuditSetting rsvc := auditsetting.GetOilAuditSettingService(utils.DBE) rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, auditstepcode, &auditWorkflow) users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), this.User.AccCode) res := false for _, user := range users { if this.User.Id == strconv.Itoa(int(user.Id)) { res = true break } } this.Data["json"] = res this.ServeJSON() } // @Title 根据部门获取人员 // @Description 根据部门获取人员 // @router /getauditerbydept/:deptId [get] func (this *OilAuditSettingController) GetAuditerByDept() { Id := this.Ctx.Input.Param(":deptId") var users []userRole.Base_RoleList rsvc := auditsetting.GetOilAuditSettingService(utils.DBE) organsvc := organize.GetOrganizeService(utils.DBE) depids := organsvc.GetAllChildById(Id) where := "DepartmentId in (" + depids + ")" rsvc.GetEntitysByWhere(BaseUserName, where, &users) var datainfo ErrorDataInfo if users == nil { datainfo.Code = 0 } else { datainfo.Code = 1 } datainfo.Item = users this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取审核人列表 // @Description 获取审核人列表 // @Success 200 {object} auditsetting.Base_OilAuditSetting // @router /getaudituserlist/:id [get] func (this *OilAuditSettingController) GetAuditUserList() { Id := this.Ctx.Input.Param(":id") var users []userRole.Base_RoleList rsvc := auditsetting.GetOilAuditSettingService(utils.DBE) rsvc.GetAuditUserList(Id, &users) ////where := "SettingId=" + Id ////sql := "SELECT UserId Id, UserName RealName FROM " + OilAuditUserName + " where " + where //rsvc.DBE.SQL(sql).Find(&users) this.Data["json"] = &users this.ServeJSON() }