修复个人中心问题
This commit is contained in:
@@ -153,6 +153,59 @@ func paybackPlanOverdueFor(plan models.TenantCrmPayback, today string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// crmProjectStatusText 项目状态文案(与控制器层 projectStatusName 保持一致,用于操作日志)。
|
||||
func crmProjectStatusText(s int8) string {
|
||||
switch s {
|
||||
case 1:
|
||||
return "未开始"
|
||||
case 2:
|
||||
return "进行中"
|
||||
case 3:
|
||||
return "已完成"
|
||||
case 4:
|
||||
return "已暂停"
|
||||
case 5:
|
||||
return "异常"
|
||||
}
|
||||
return "未知"
|
||||
}
|
||||
|
||||
// crmContractStatusText 合同状态文案(与控制器层 contractStatusName 保持一致,用于操作日志)。
|
||||
func crmContractStatusText(s int8) string {
|
||||
switch s {
|
||||
case 1:
|
||||
return "草稿"
|
||||
case 2:
|
||||
return "已完成"
|
||||
case 3:
|
||||
return "已作废"
|
||||
case 4:
|
||||
return "履约中"
|
||||
case 5:
|
||||
return "异常"
|
||||
}
|
||||
return "未知"
|
||||
}
|
||||
|
||||
// writeOverdueStatusLog 逾期联动自动改状态时写入 CRM 操作日志。
|
||||
// 自动置「异常」与人工流转同一口径:日志里必须写明原因,操作者记为「系统自动」,便于事后追溯。
|
||||
// relatedType=3 与控制器层一致(项目 / 合同的操作日志同属该分类)。
|
||||
func writeOverdueStatusLog(tenantID string, relatedID uint64, content string, now time.Time) {
|
||||
if models.Orm == nil || relatedID == 0 {
|
||||
return
|
||||
}
|
||||
log := models.TenantCrmOperateLog{
|
||||
TenantID: tenantID,
|
||||
RelatedType: 3,
|
||||
RelatedID: relatedID,
|
||||
Action: "status",
|
||||
Content: content,
|
||||
OperatorName: "系统自动",
|
||||
CreateTime: now,
|
||||
}
|
||||
_, _ = models.Orm.Insert(&log)
|
||||
}
|
||||
|
||||
// applyContractOverdue 合同置「异常」(5),并联动项目置「异常」(5)。
|
||||
// 返回 (合同是否更新, 项目是否更新)。
|
||||
func applyContractOverdue(tenantID string, contractID uint64, now time.Time) (int, int) {
|
||||
@@ -174,6 +227,9 @@ func applyContractOverdue(tenantID string, contractID uint64, now time.Time) (in
|
||||
return 0, 0
|
||||
}
|
||||
contractUpdated = 1
|
||||
// 自动改异常同样写明原因,否则日志里只看到"变异常"却不知为何
|
||||
writeOverdueStatusLog(tenantID, contractID,
|
||||
"合同状态自动流转:"+crmContractStatusText(contract.Status)+" → 异常;异常原因:回款计划逾期未收齐", now)
|
||||
}
|
||||
// 合同关联项目联动置异常
|
||||
projectUpdated := 0
|
||||
@@ -186,6 +242,9 @@ func applyContractOverdue(tenantID string, contractID uint64, now time.Time) (in
|
||||
Filter("id", proj.ID).Filter("tenant_id", tenantID).
|
||||
Update(map[string]interface{}{"status": int8(5), "update_time": now}); err == nil {
|
||||
projectUpdated = 1
|
||||
writeOverdueStatusLog(tenantID, proj.ID,
|
||||
"项目状态自动流转:"+crmProjectStatusText(proj.Status)+" → 异常;异常原因:关联合同「"+
|
||||
contract.ContractName+"」回款计划逾期未收齐", now)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user