package foundation.org;
|
|
import foundation.capacity.ActorTarget;
|
import foundation.capacity.TargetType;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.entity.Filter;
|
import foundation.data.meta.field.Field;
|
import foundation.data.object.DataObject;
|
import foundation.data.rule.ICodeProvider;
|
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 divisionId;
|
private String comapnyId;
|
private int level;
|
private String levelField;
|
private String duty;
|
private Org org;
|
private Division division;
|
|
public Position() {
|
|
}
|
|
public void load(Entity entity) throws Exception {
|
id = entity.getString("id");
|
code = entity.getString("code");
|
name = entity.getString("name");
|
divisionId = entity.getString("division_id");
|
comapnyId = entity.getString("company_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 divisionId, String actorId, String actorName) throws Exception {
|
DataObject dataObject = DataObject.getInstance("md_division");
|
Filter filter = new Filter();
|
|
if (Util.isEmpty(companyId)) {
|
filter.add("company_id", companyId);
|
}
|
|
if (Util.isEmpty(divisionId)) {
|
filter.add("id", divisionId);
|
}
|
|
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) {
|
divisionId = entity.getString("division_id");
|
companyId = entity.getString("company_id");
|
positionCode = codeProvider.nextval(divisionId + companyId);
|
positionName = actorName + "(" + entity.getString("company_name") + entity.getString("bu_name") + ")";
|
positionId = ID.newValue();
|
positionEntity.set("id", positionId);
|
positionEntity.set("division_id", divisionId);
|
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 getDivisionId() {
|
return divisionId;
|
}
|
|
public String getDuty() {
|
return duty;
|
}
|
|
public void setOrg(Org org) {
|
this.org = org;
|
}
|
|
public Org getOrg() {
|
return org;
|
}
|
|
public Division getDivision() {
|
return division;
|
}
|
|
public void setDivision(Division division) {
|
this.division = division;
|
}
|
|
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);
|
}
|
|
}
|