优化backend端相关功能
This commit is contained in:
@@ -594,6 +594,9 @@ func (c *BackendEmployeeFileController) Create() {
|
||||
return
|
||||
}
|
||||
|
||||
// 建档后同步通讯录(工作邮箱、家庭地址以档案为准)
|
||||
SyncContactOnEmployeeFileChange(uint64(tid), item.EmployeeID)
|
||||
|
||||
c.efOk(item)
|
||||
}
|
||||
|
||||
@@ -654,6 +657,9 @@ func (c *BackendEmployeeFileController) Update() {
|
||||
return
|
||||
}
|
||||
|
||||
// 档案变更后同步通讯录(工作邮箱、家庭地址以档案为准)
|
||||
SyncContactOnEmployeeFileChange(uint64(tid), item.EmployeeID)
|
||||
|
||||
c.efOk(item)
|
||||
}
|
||||
|
||||
@@ -718,7 +724,12 @@ func (c *BackendEmployeeFileController) UpdateCertificates() {
|
||||
c.efOk(item)
|
||||
}
|
||||
|
||||
// Delete DELETE /backend/oa/employeefile/delete/:id 软删除档案。
|
||||
// Delete DELETE /backend/oa/employeefile/delete/:id 档案离职/禁用(档案不做删除)。
|
||||
//
|
||||
// 与员工同理:人事档案属于企业数据,通讯录(yz_backend_erp_contact)也以 employee_id 关联,
|
||||
// 软删档案会让通讯录里对应的人失去数据来源。因此这里只把在职状态置为"离职"(3),
|
||||
// 不写 is_deleted / delete_time,档案与通讯录记录始终保留可查。
|
||||
// 在职状态调整(试用/正式/离职)走 update 接口即可,这里只是给"删除"动作一个不毁数据的语义。
|
||||
func (c *BackendEmployeeFileController) Delete() {
|
||||
claims, err := c.efClaims()
|
||||
if err != nil {
|
||||
@@ -733,15 +744,24 @@ func (c *BackendEmployeeFileController) Delete() {
|
||||
return
|
||||
}
|
||||
|
||||
var item models.BackendEmployeeFile
|
||||
if err := c.efQuery(tid).Filter("id", id).One(&item); err != nil {
|
||||
c.efErr(404, 404, "档案不存在")
|
||||
return
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
n, err := c.efQuery(tid).Filter("id", id).
|
||||
Update(map[string]interface{}{
|
||||
"IsDeleted": int8(1),
|
||||
"DeleteTime": now,
|
||||
"UpdateTime": now,
|
||||
})
|
||||
if err != nil || n == 0 {
|
||||
c.efErr(404, 404, "档案不存在或已删除")
|
||||
// 离职日期留空时补当天,保证档案资料(离职需填离职日期)完整
|
||||
if item.LeaveDate == nil {
|
||||
today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
|
||||
item.LeaveDate = &today
|
||||
}
|
||||
item.EmploymentStatus = 3
|
||||
item.UpdateTime = &now
|
||||
|
||||
if _, err := models.Orm.Update(&item, "EmploymentStatus", "LeaveDate", "UpdateTime"); err != nil {
|
||||
log.Printf("员工档案离职失败: tid=%d file_id=%d err=%v", tid, id, err)
|
||||
c.efErr(500, 500, "离职操作失败")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user