修复设置部门负责人:允许设置为null或0来清除负责人
This commit is contained in:
parent
4e74747947
commit
f17415f44e
@ -164,12 +164,20 @@ public class DepartmentService {
|
||||
validateDeptType(request.getDeptType());
|
||||
existDept.setDeptType(request.getDeptType());
|
||||
}
|
||||
// 处理parentId:允许设置为0来清除(设置为null)
|
||||
if (request.getParentId() != null) {
|
||||
existDept.setParentId(request.getParentId());
|
||||
Long parentId = request.getParentId();
|
||||
existDept.setParentId(parentId == 0 ? null : parentId);
|
||||
}
|
||||
// 处理leaderId:允许设置为0或null来清除负责人
|
||||
// 注意:由于Java JSON反序列化中无法区分字段不存在和字段为null
|
||||
// 如果前端发送null,这里会收到null,可以设置为null来清除
|
||||
// 如果前端发送0,这里会收到0,也可以设置为null来清除
|
||||
if (request.getLeaderId() != null) {
|
||||
existDept.setLeaderId(request.getLeaderId());
|
||||
Long leaderId = request.getLeaderId();
|
||||
existDept.setLeaderId(leaderId == 0 ? null : leaderId);
|
||||
}
|
||||
// 注意:如果前端不发送leaderId字段(undefined),这里不会处理,保持原值不变
|
||||
if (request.getSortOrder() != null) {
|
||||
existDept.setSortOrder(request.getSortOrder());
|
||||
}
|
||||
|
||||
@ -2133,8 +2133,8 @@ const buildDepartmentPayload = (includeInitial: boolean): DepartmentPayload => {
|
||||
deptName: formData.department.deptName,
|
||||
deptCode: formData.department.deptCode,
|
||||
deptType: formData.department.deptType,
|
||||
parentId: formData.department.parentId ?? 0,
|
||||
leaderId: formData.department.leaderId ?? undefined,
|
||||
parentId: formData.department.parentId ?? 0,
|
||||
leaderId: formData.department.leaderId ?? null, // 使用null而不是undefined,确保可以清除负责人
|
||||
sortOrder: formData.department.sortOrder,
|
||||
status: formData.department.status,
|
||||
allowedDemandTypes: isReceivingDept.value ? formData.department.allowedDemandTypes : [],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user