|
|
这个代码不能同步上下级关系能帮我改一下吗
var result = {
success: true,
message: "平级组织同步完成",
createdUnits: [],
updatedUnits: []
};
// 工具函数:延迟等待(解决系统写入延迟)
function sleep(ms) {
var start = new Date().getTime();
while (new Date().getTime() - start < ms) {}
}
try {
// 1. 读取请求数据(仅取units,忽略parentCode)
var requestBody = this.requestText || "{}";
var input = JSON.parse(requestBody);
var units = input.units || [];
if (units.length === 0) {
result.message = "未传入任何组织数据";
return result;
}
// 2. 加载组织操作模块
var orgModule = this.Actions.load("x_organization_assemble_control");
var unitAction = orgModule.UnitAction;
// 3. 循环创建/更新平级组织(无上级关联)
units.forEach(unit => {
// 校验必填字段
if (!unit.code || !unit.name) {
result.message += ` [警告:跳过缺少code/name的组织]`;
return;
}
// 查找组织是否已存在(按code匹配)
var existingId = null;
var allUnits = unitAction.list();
for (var i = 0; i < allUnits.length; i++) {
if (allUnits.attributeMap?.code === unit.code) {
existingId = allUnits.id;
break;
}
}
if (existingId) {
// 更新组织(仅更新名称,保持平级)
unitAction.edit(existingId, {
name: unit.name,
attributeMap: { code: unit.code },
parentId: null // 强制设为顶级
});
result.updatedUnits.push(unit.code);
} else {
// 创建平级组织(parentId设为null,无上级)
var createData = {
name: unit.name,
unique: unit.code, // 唯一标识(API必填)
distinguishName: unit.name, // 显示名称(API必填)
typeList: ["department"], // 组织类型(API规范)
attributeMap: { code: unit.code },
parentId: null // 核心:所有组织均为顶级
};
// 执行创建,延迟确保系统写入
unitAction.create(createData);
sleep(100);
result.createdUnits.push(unit.code);
}
});
} catch (e) {
result.success = false;
result.message = "同步失败: " + e.toString();
}
return result;
还有同步人员的代码,这个不能写入人员信息我应该怎么改一下
if (existingPerson) { // 更新人员 var editPersonData = { name: person.name || existingPerson.name, telephone: person.telephone || existingPerson.telephone, email: person.email || existingPerson.email, status: person.status || "enable", employeeNumber: person.workNumber || existingPerson.employeeNumber }; if (unitId) editPersonData.unitId = unitId; orgControlAction.PersonAction.edit(existingPerson.id, editPersonData); result.updatedPersons.push(person.workNumber || person.name); } else { // 创建人员 if (!person.name) continue; var createPersonData = { name: person.name, unique: person.workNumber || person.telephone || person.name, distinguishName: person.name, genderType: person.gender || "male", identity: "normal", telephone: person.telephone || "", email: person.email || "", status: person.status || "enable", employeeNumber: person.workNumber || "" }; if (unitId) createPersonData.unitId = unitId; orgControlAction.PersonAction.create(createPersonData); result.createdPersons.push(person.workNumber || person.name); } } return result;
|
|