正在显示
3 个修改的文件
包含
82 行增加
和
29 行删除
| @@ -12,7 +12,6 @@ import ( | @@ -12,7 +12,6 @@ import ( | ||
| 12 | /*机会-自查内容*/ | 12 | /*机会-自查内容*/ |
| 13 | var CheckOptionsCommit = []CheckOption{{Item: "是", NeedOther: false}, {Item: "否", NeedOther: false}, {Item: "不清楚", NeedOther: false}} | 13 | var CheckOptionsCommit = []CheckOption{{Item: "是", NeedOther: false}, {Item: "否", NeedOther: false}, {Item: "不清楚", NeedOther: false}} |
| 14 | 14 | ||
| 15 | -//var CheckOptionsApprove = []CheckOption{{Item: "是",NeedOther:false},{Item: "否",NeedOther:true},{Item: "不清楚",NeedOther:false}} | ||
| 16 | //自查结果列表 | 15 | //自查结果列表 |
| 17 | type SelfCheckResults []selfCheckResult | 16 | type SelfCheckResults []selfCheckResult |
| 18 | type selfCheckResult struct { | 17 | type selfCheckResult struct { |
| @@ -21,7 +20,19 @@ type selfCheckResult struct { | @@ -21,7 +20,19 @@ type selfCheckResult struct { | ||
| 21 | } | 20 | } |
| 22 | 21 | ||
| 23 | //自查项列表 | 22 | //自查项列表 |
| 23 | +func NewSelfChecks(data string) (rsp SelfChecks) { | ||
| 24 | + if len(data) == 0 { | ||
| 25 | + return | ||
| 26 | + } | ||
| 27 | + e := json.Unmarshal([]byte(data), &rsp) | ||
| 28 | + if e != nil { | ||
| 29 | + log.Error(e) | ||
| 30 | + } | ||
| 31 | + return | ||
| 32 | +} | ||
| 33 | + | ||
| 24 | type SelfChecks []SelfCheck | 34 | type SelfChecks []SelfCheck |
| 35 | + | ||
| 25 | type SelfCheck struct { | 36 | type SelfCheck struct { |
| 26 | CheckItem string `json:"checkItem"` | 37 | CheckItem string `json:"checkItem"` |
| 27 | GroupId int64 `json:"groupId"` //分组 | 38 | GroupId int64 `json:"groupId"` //分组 |
| @@ -33,17 +44,6 @@ func (c SelfCheck) Key() string { | @@ -33,17 +44,6 @@ func (c SelfCheck) Key() string { | ||
| 33 | return fmt.Sprintf("%v-%v", c.GroupId, c.CheckItem) | 44 | return fmt.Sprintf("%v-%v", c.GroupId, c.CheckItem) |
| 34 | } | 45 | } |
| 35 | 46 | ||
| 36 | -func NewSelfChecks(data string) (rsp SelfChecks) { | ||
| 37 | - if len(data) == 0 { | ||
| 38 | - return | ||
| 39 | - } | ||
| 40 | - e := json.Unmarshal([]byte(data), &rsp) | ||
| 41 | - if e != nil { | ||
| 42 | - log.Error(e) | ||
| 43 | - } | ||
| 44 | - return | ||
| 45 | -} | ||
| 46 | - | ||
| 47 | //统计自查结果 | 47 | //统计自查结果 |
| 48 | func (s SelfChecks) Static() SelfCheckResults { | 48 | func (s SelfChecks) Static() SelfCheckResults { |
| 49 | if len(s) == 0 { | 49 | if len(s) == 0 { |
| @@ -91,9 +91,9 @@ func (s SelfChecks) String() string { | @@ -91,9 +91,9 @@ func (s SelfChecks) String() string { | ||
| 91 | for i := range s { | 91 | for i := range s { |
| 92 | c := s[i] | 92 | c := s[i] |
| 93 | if len(c.Reason) == 0 { | 93 | if len(c.Reason) == 0 { |
| 94 | - buf.WriteString(fmt.Sprintf("%v:%v;\n", c.CheckItem, c.Answer)) | 94 | + buf.WriteString(fmt.Sprintf("\n%v:%v;", c.CheckItem, c.Answer)) |
| 95 | } else { | 95 | } else { |
| 96 | - buf.WriteString(fmt.Sprintf("%v:%v,理由:%v;\n", c.CheckItem, c.Answer, c.Reason)) | 96 | + buf.WriteString(fmt.Sprintf("\n%v:%v,理由:%v;", c.CheckItem, c.Answer, c.Reason)) |
| 97 | } | 97 | } |
| 98 | } | 98 | } |
| 99 | return buf.String() | 99 | return buf.String() |
| @@ -135,6 +135,15 @@ func (s SelfChecks) Compare(dst string) (rspChecks SelfChecks, err error) { | @@ -135,6 +135,15 @@ func (s SelfChecks) Compare(dst string) (rspChecks SelfChecks, err error) { | ||
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | //自查问题 | 137 | //自查问题 |
| 138 | +func NewCheckQuestion(checkItem, title string, groupId int64, ops []CheckOption) *CheckQuestion { | ||
| 139 | + return &CheckQuestion{ | ||
| 140 | + CheckItem: checkItem, | ||
| 141 | + Title: title, | ||
| 142 | + GroupId: groupId, | ||
| 143 | + CheckOptions: ops, | ||
| 144 | + } | ||
| 145 | +} | ||
| 146 | + | ||
| 138 | type CheckQuestion struct { | 147 | type CheckQuestion struct { |
| 139 | CheckItem string `json:"checkItem"` | 148 | CheckItem string `json:"checkItem"` |
| 140 | Title string `json:"title"` | 149 | Title string `json:"title"` |
| @@ -143,16 +152,7 @@ type CheckQuestion struct { | @@ -143,16 +152,7 @@ type CheckQuestion struct { | ||
| 143 | } | 152 | } |
| 144 | type CheckOption struct { | 153 | type CheckOption struct { |
| 145 | Item string `json:"item"` | 154 | Item string `json:"item"` |
| 146 | - NeedOther bool `json:"needOther"` //是否需填写其他的内容【1:需要】【2:不需要】 | ||
| 147 | -} | ||
| 148 | - | ||
| 149 | -func NewCheckQuestion(checkItem, title string, groupId int64, ops []CheckOption) *CheckQuestion { | ||
| 150 | - return &CheckQuestion{ | ||
| 151 | - CheckItem: checkItem, | ||
| 152 | - Title: title, | ||
| 153 | - GroupId: groupId, | ||
| 154 | - CheckOptions: ops, | ||
| 155 | - } | 155 | + NeedOther bool `json:"-"` //是否需填写其他的内容【1:需要】【2:不需要】 |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | /*CheckQuestions 自查问题列表*/ | 158 | /*CheckQuestions 自查问题列表*/ |
| @@ -61,9 +61,9 @@ func init() { | @@ -61,9 +61,9 @@ func init() { | ||
| 61 | var ApproveLog = map[int]string{ | 61 | var ApproveLog = map[int]string{ |
| 62 | 1: "提交了机会", //提交人提交机会 | 62 | 1: "提交了机会", //提交人提交机会 |
| 63 | 2: "删除了机会", //提交人删除机会 | 63 | 2: "删除了机会", //提交人删除机会 |
| 64 | - 3: "退回了机会;\n%v", //审批人退回机会 | ||
| 65 | - 4: "通过了机会;\n%v\n基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过机会(公司公开) | ||
| 66 | - 5: "通过了机会;\n%v\n基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:%v", //审批人通过机会(部门公开) 测试部、销售部 | 64 | + 3: "退回了机会;%v", //审批人退回机会 |
| 65 | + 4: "通过了机会;%v\n基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过机会(公司公开) | ||
| 66 | + 5: "通过了机会;%v\n基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:%v", //审批人通过机会(部门公开) 测试部、销售部 | ||
| 67 | 6: "系统 自动通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过了机会(系统自动通过) | 67 | 6: "系统 自动通过了机会;基础评分:%v分,附加评分:%v分,价值评分:%v分,公开状态:公司公开", //审批人通过了机会(系统自动通过) |
| 68 | 7: "修改了公开状态:公司公开", //审批通过后修改公开状态(公司公开) | 68 | 7: "修改了公开状态:公司公开", //审批通过后修改公开状态(公司公开) |
| 69 | 8: "修改了公开状态:%v", //审批通过后修改公开状态(部门公开) | 69 | 8: "修改了公开状态:%v", //审批通过后修改公开状态(部门公开) |
| @@ -4,10 +4,12 @@ import ( | @@ -4,10 +4,12 @@ import ( | ||
| 4 | "encoding/json" | 4 | "encoding/json" |
| 5 | "fmt" | 5 | "fmt" |
| 6 | "github.com/astaxie/beego/orm" | 6 | "github.com/astaxie/beego/orm" |
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/identity/idgen" | ||
| 7 | "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | 8 | "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" |
| 8 | "opp/internal/utils" | 9 | "opp/internal/utils" |
| 9 | "opp/models" | 10 | "opp/models" |
| 10 | "opp/protocol" | 11 | "opp/protocol" |
| 12 | + "time" | ||
| 11 | ) | 13 | ) |
| 12 | 14 | ||
| 13 | //机会池 | 15 | //机会池 |
| @@ -227,7 +229,6 @@ func SetChanceItem(header *protocol.RequestHeader, chance protocol.CommChanceIte | @@ -227,7 +229,6 @@ func SetChanceItem(header *protocol.RequestHeader, chance protocol.CommChanceIte | ||
| 227 | utils.JsonUnmarshal(chance.Videos, &item.Videos) | 229 | utils.JsonUnmarshal(chance.Videos, &item.Videos) |
| 228 | return item, chanceStatus | 230 | return item, chanceStatus |
| 229 | } | 231 | } |
| 230 | - | ||
| 231 | func SetMsgItem(header *protocol.RequestHeader, msg protocol.MsgItemOrm, commItem *protocol.MsgCommonListItem) { | 232 | func SetMsgItem(header *protocol.RequestHeader, msg protocol.MsgItemOrm, commItem *protocol.MsgCommonListItem) { |
| 232 | commItem.MsgId = msg.MsgId | 233 | commItem.MsgId = msg.MsgId |
| 233 | commItem.MsgTime = msg.MsgTime.Unix() * 1000 | 234 | commItem.MsgTime = msg.MsgTime.Unix() * 1000 |
| @@ -304,10 +305,62 @@ func GetCheckQuestionsByChanceId(id int64) (rsp []*protocol.CheckQuestion, err e | @@ -304,10 +305,62 @@ func GetCheckQuestionsByChanceId(id int64) (rsp []*protocol.CheckQuestion, err e | ||
| 304 | } | 305 | } |
| 305 | return | 306 | return |
| 306 | } | 307 | } |
| 307 | - | ||
| 308 | func getQuestionTitle(groupIdx int, idx int, title string) string { | 308 | func getQuestionTitle(groupIdx int, idx int, title string) string { |
| 309 | if idx == 0 { | 309 | if idx == 0 { |
| 310 | return fmt.Sprintf("%v、%v?", groupIdx, title) | 310 | return fmt.Sprintf("%v、%v?", groupIdx, title) |
| 311 | } | 311 | } |
| 312 | return fmt.Sprintf("%v.%v、%v?", groupIdx, idx, title) | 312 | return fmt.Sprintf("%v.%v、%v?", groupIdx, idx, title) |
| 313 | } | 313 | } |
| 314 | + | ||
| 315 | +//自查问题回答批量入库 | ||
| 316 | +func BulkInsertSelfChecks(header *protocol.RequestHeader, relateId, chanceId int64, selfChecks protocol.SelfChecks) { | ||
| 317 | + defer func() { | ||
| 318 | + if p := recover(); p != nil { | ||
| 319 | + log.Warn(p) | ||
| 320 | + } | ||
| 321 | + }() | ||
| 322 | + var ( | ||
| 323 | + count int | ||
| 324 | + err error | ||
| 325 | + Exists = `select count(0) from chance_self_check where chanceId=? and relateId=?` | ||
| 326 | + DeleteExistedRow = `update chance_self_check set enable=0 where chanceId=? and relateId=?` | ||
| 327 | + ) | ||
| 328 | + if len(selfChecks) == 0 { | ||
| 329 | + return | ||
| 330 | + } | ||
| 331 | + o := orm.NewOrm() | ||
| 332 | + o.Begin() | ||
| 333 | + if err = utils.ExecuteQueryOneWithOrmer(o, &count, Exists, relateId, chanceId); err != nil { | ||
| 334 | + log.Error(err) | ||
| 335 | + o.Rollback() | ||
| 336 | + return | ||
| 337 | + } | ||
| 338 | + if count > 0 { | ||
| 339 | + if err = utils.ExecuteSQLWithOrmer(o, DeleteExistedRow, relateId, chanceId); err != nil { | ||
| 340 | + log.Error(err) | ||
| 341 | + o.Rollback() | ||
| 342 | + return | ||
| 343 | + } | ||
| 344 | + } | ||
| 345 | + for i := range selfChecks { | ||
| 346 | + check := selfChecks[i] | ||
| 347 | + m := models.ChanceSelfCheck{ | ||
| 348 | + Id: idgen.Next(), | ||
| 349 | + UserCompanyId: header.UserId, | ||
| 350 | + ChanceId: chanceId, | ||
| 351 | + RelateId: relateId, | ||
| 352 | + CheckItem: check.CheckItem, | ||
| 353 | + GroupId: check.GroupId, | ||
| 354 | + Answer: check.Answer, | ||
| 355 | + Reason: check.Reason, | ||
| 356 | + CreateAt: time.Now(), | ||
| 357 | + } | ||
| 358 | + if _, err = o.Insert(m); err != nil { | ||
| 359 | + log.Error(err) | ||
| 360 | + o.Rollback() | ||
| 361 | + return | ||
| 362 | + } | ||
| 363 | + } | ||
| 364 | + | ||
| 365 | + o.Commit() | ||
| 366 | +} |
-
请 注册 或 登录 后发表评论