package foundation.org;
|
|
import foundation.capacity.ActorTarget;
|
import foundation.capacity.TargetType;
|
import foundation.dao.Filter;
|
import foundation.dao.bizlogic.ICodeProvider;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.meta.field.Field;
|
import foundation.data.object.DataObject;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import foundation.util.ID;
|
import foundation.util.Util;
|
|
public class Position implements IJSONProvider {
|
|
private String id;
|
private String code;
|
private String name;
|
private String buId;
|
private String comapnyId;
|
private int level;
|
private String levelField;
|
private String duty;
|
private Org org;
|
private BU bu;
|
|
public Position() {
|
|
}
|
|
public void load(Entity entity) throws Exception {
|
id = entity.getString("id");
|
code = entity.getString("code");
|
name = entity.getString("name");
|
buId = entity.getString("bu_id");
|
comapnyId = entity.getString("comapny_id");
|
level = entity.getInteger("level_no", 1);
|
levelField = "level" + level;
|
duty = entity.getString("duty");
|
}
|
|
public static Position loadPosition(String positionId) throws Exception {
|
DataObject dataObject = DataObject.getInstance("md_position");
|
Entity entity = dataObject.getTableEntity(positionId);
|
|
if (entity == null) {
|
return null;
|
}
|
Position position = new Position();
|
position.load(entity);
|
|
return position;
|
}
|
|
public static EntitySet createPostion(String companyId, String buId, String actorId, String actorName) throws Exception {
|
DataObject dataObject = DataObject.getInstance("md_bu_org");
|
Filter filter = new Filter();
|
|
if (Util.isEmpty(companyId)) {
|
filter.add("company_id", companyId);
|
}
|
|
if (Util.isEmpty(buId)) {
|
filter.add("bu_id", buId);
|
}
|
|
EntitySet entitySet = dataObject.getBrowseEntitySet(filter);
|
|
dataObject = DataObject.getInstance("md_position");
|
EntitySet positionSet = dataObject.createTableEntitySet();
|
Entity positionEntity = dataObject.createTableEmptyEntity();
|
ICodeProvider codeProvider = ICodeProvider.getInstance(new Field("code"), "Code-Position");
|
String positionId, positionCode, positionName;
|
|
for (Entity entity : entitySet) {
|
buId = entity.getString("bu_id");
|
companyId = entity.getString("company_id");
|
positionCode = codeProvider.nextval(buId + companyId);
|
positionName = actorName + "(" + entity.getString("company_name") + entity.getString("bu_name") + ")";
|
positionId = ID.newValue();
|
positionEntity.set("id", positionId);
|
positionEntity.set("bu_id", buId);
|
positionEntity.set("company_id", companyId);
|
positionEntity.set("parent_id", "0");
|
positionEntity.set("category_code", TargetType.Position);
|
positionEntity.set("code", positionCode);
|
positionEntity.set("name", positionName);
|
positionEntity.set("is_delete", "F");
|
|
Position position = new Position();
|
position.load(positionEntity);
|
ActorTarget.createInstance(actorId, position);
|
|
positionSet.append(positionEntity);
|
}
|
|
return positionSet;
|
}
|
|
public String getLevelField() {
|
return levelField;
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public String getBUId() {
|
return buId;
|
}
|
|
public String getDuty() {
|
return duty;
|
}
|
|
public void setOrg(Org org) {
|
this.org = org;
|
}
|
|
public Org getOrg() {
|
return org;
|
}
|
|
public BU getBU() {
|
return bu;
|
}
|
|
public void setBU(BU bu) {
|
this.bu = bu;
|
}
|
|
public String getComapnyId() {
|
return comapnyId;
|
}
|
|
public void setComapnyId(String comapnyId) {
|
this.comapnyId = comapnyId;
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject();
|
writeJSONBody(writer);
|
writer.endObject();
|
}
|
|
public void writeJSONBody(IJSONWriter writer) {
|
writer.write("id", id);
|
writer.write("code", code);
|
writer.write("name", name);
|
writer.write("duty", duty);
|
}
|
|
}
|