作者 唐旭辉

bug fix

package models
import (
"time"
"github.com/astaxie/beego/orm"
)
type AuditFlowProcess struct {
Id int64 `orm:"column(id);pk" description:"唯一标识"`
ChanceId int64 `orm:"column(chance_id)" description:"实例id,关联chance表id"`
Uid int64 `orm:"column(uid)" description:"用户id(审批人)"`
Level int `orm:"column(level)" description:"审批步骤"`
IsActive int8 `orm:"column(is_active)" description:"是否激活"`
ApproveTime time.Time `orm:"column(approve_time);type(timestamp);null" description:"审批时间"`
BasicScore float64 `orm:"column(basic_score);null;digits(4);decimals(1)" description:"基础评分"`
ExtraScore float64 `orm:"column(extra_score);null;digits(4);decimals(1)" description:"附加评分"`
ValueScore float64 `orm:"column(value_score);null;digits(4);decimals(1)" description:"价值评分"`
DiscoveryScore float64 `orm:"column(discovery_score);null;digits(4);decimals(0)" description:"发现评分"`
ReviewStatus int8 `orm:"column(review_status)" description:"审核状态 审核状态 0:待处理 1:待审核 2:被退回 3:已通过 4:提交 "`
AuditFlowType int `orm:"column(audit_flow_type)" description:"审核流类型 1.部门长 2.指定成员 3.指定角色 4.特殊审核人"`
FlowType int `orm:"column(flow_type)" description:"审批类型 1:正常审核 2:特殊审核"`
ActionType int `orm:"column(action_type)" description:"审批执行方式【1:or】【2:and】"`
CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"`
UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"`
EnableStatus int8 `orm:"column(enable_status)" description:"有效状态 0:无效 1:有效 (被驳回以后,未完成的审核置为无效)"`
ApproveData string `orm:"column(approve_data);size(500);null" description:"审核数据 json{公开状态 公开对象 分数}"`
UserName string `orm:"column(user_name);size(50);null" description:"用户名-冗余"`
RoleName string `orm:"column(role_name);size(50);null" description:"角色名-冗余"`
RoleId int `orm:"column(role_id);null" description:"角色id-冗余"`
ApproveMessage string `orm:"column(approve_message);size(255);null" description:"审核消息-冗余"`
TemplateId int `orm:"column(template_id);null" description:"模板编号"`
}
func (t *AuditFlowProcess) TableName() string {
return "audit_flow_process"
}
func init() {
orm.RegisterModel(new(AuditFlowProcess))
}
//有效状态 0:无效 1:有效 (被驳回以后,未完成的审核置为无效)
const (
AuditFlowProcessEnableYes int = 1
AuditFlowProcessEnableNo int = 0
)
//审核状态 审核状态 0:待处理 1:待审核 2:被退回 3:已通过 4:提交
const (
AuditFlowProcessReviewWait int = 0
AuditFlowProcessReviewIng int = 1
AuditFlowProcessReviewBack int = 2
AuditFlowProcessReviewPass int = 3
AuditFlowProcessReviewCommit int = 4
)
// GetAuditFlowProcessById retrieves AuditFlowProcess by Id. Returns error if
// Id doesn't exist
func GetAuditFlowProcessById(id int64) (v *AuditFlowProcess, err error) {
o := orm.NewOrm()
v = &AuditFlowProcess{Id: id}
if err = o.Read(v); err == nil {
return v, nil
}
return nil, err
}
... ...
... ... @@ -31,6 +31,7 @@ type Chance struct {
PublishStatus int `orm:"column(publish_status)" description:"公开状态 -1 未公开、1部门公开、2公司公开"`
AuditLevel int `orm:"column(audit_level)" description:"当前审批步骤"`
ApproveData string `orm:"column(approve_data);size(500);null" description:"公开数据 (公开状态 公开对象)"`
Code string `orm:"column(code)" description:"机会编码"`
}
func (t *Chance) TableName() string {
... ...
... ... @@ -49,6 +49,8 @@ var errmessge ErrorMap = map[string]string{
"10071": "不能删除主管理员",
"10072": "不能禁用主管理员",
"10073": "角色组已存在",
"10074": "删除失败,存在需要用户审批的单子",
"10075": "禁用失败,存在需要用户审批的单子",
//部门相关
"10041": "无效的主管设置",
"10042": "上级部门不能选择当前部门及其子部门",
... ... @@ -92,6 +94,8 @@ var errmessge ErrorMap = map[string]string{
//评分配置相关
"12101": "分值范围不符合要求",
"12102": "评分规则不符合要求",
//权限配置相关
"10091": "至少选择一个特定部门",
}
//错误码转换 ,兼容需要
... ...
... ... @@ -465,7 +465,14 @@ func UserDelete(userCompanyids []int64, companyid int64) error {
log.Error("获取用户数据失败:%s", err)
return protocol.NewErrWithMessage("1")
}
exist := o.QueryTable(&models.AuditFlowProcess{}).
Filter("uid__in", userCompanyids).
Filter("enable_status", models.AuditFlowProcessEnableYes).
Filter("review_status__in", models.AuditFlowProcessReviewWait, models.AuditFlowProcessReviewIng).
Exist()
if exist {
return protocol.NewErrWithMessage("10074")
}
var (
ids []int64
)
... ... @@ -657,6 +664,14 @@ func UserForbid(userCompanyids []int64, companyid int64) error {
log.Error("获取用户数据失败:%s", err)
return protocol.NewErrWithMessage("1")
}
exist := o.QueryTable(&models.AuditFlowProcess{}).
Filter("uid__in", userCompanyids).
Filter("enable_status", models.AuditFlowProcessEnableYes).
Filter("review_status__in", models.AuditFlowProcessReviewWait, models.AuditFlowProcessReviewIng).
Exist()
if exist {
return protocol.NewErrWithMessage("10075")
}
var (
ids []int64
)
... ...
... ... @@ -173,6 +173,13 @@ func UpdateSetOpportunity(param OptionOpportunity, roleid int64, companyid int64
err error
menuinfo *models.Menu
)
if param.Check == OpportunityCheckLv3 {
if len(param.CheckOption.Departments) == 0 {
return protocol.NewErrWithMessage("10091")
}
}
menuinfo, err = models.GetMenuByCode(M_SYSTEM_OPPORTUNITY)
if err != nil {
log.Error("获取菜单数据失败GetMenuByCode(%s):%s", M_SYSTEM_OPPORTUNITY, err)
... ...