package biz.target;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import biz.report.Report;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.entity.Filter;
|
import foundation.data.entity.OrderBy;
|
import foundation.data.object.DataObject;
|
import foundation.persist.NamedSQL;
|
import foundation.util.ContentBuilder;
|
|
public enum TargetType {
|
Detail("tgt_planning_detail", "id", "detail", new String[] {"customer_id", "sku_id"}, "机构品规指标"),
|
Customer("tgt_planning_customer", "planning_customer_id", "customer", new String[] {"customer_id"}, "机构指标"),
|
Product("tgt_planning_product", "planning_product_id", "product", new String[] {"product_id"}, "产品指标"),
|
Sku("tgt_planning_sku", "planning_sku_id", "sku", new String[] {"sku_id"}, "品规指标"),
|
Position("tgt_planning_position", "planning_position_id", "position", new String[] {"position_id"}, "岗位指标"),
|
Unknown("", "", "", new String[] {}, "");
|
|
private String tableName;
|
private String code;
|
private String name;
|
private String idField;
|
private String[] keyFields;
|
|
private TargetType(String dataName, String code, String idField, String[] keyFields, String name) {
|
this.tableName = dataName;
|
this.idField = idField;
|
this.keyFields = keyFields;
|
this.code = code;
|
this.name = name;
|
}
|
|
|
public String getTableName() {
|
return tableName;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public String getName() {
|
return name;
|
}
|
|
public String getIdField() {
|
return idField;
|
}
|
|
public String[] getKeyFields() {
|
return keyFields;
|
}
|
|
public static TargetType parse(String dataname) {
|
dataname = dataname.toLowerCase();
|
|
if ("tgt_planning_detail".equalsIgnoreCase(dataname)) {
|
return Detail;
|
}
|
else if ("tgt_planning_customer".equalsIgnoreCase(dataname)) {
|
return Customer;
|
}
|
else if ("tgt_planning_position".equalsIgnoreCase(dataname)) {
|
return Position;
|
}
|
else if ("tgt_planning_sku".equalsIgnoreCase(dataname)) {
|
return Sku;
|
}
|
else if ("tgt_planning_product".equalsIgnoreCase(dataname)) {
|
return Product;
|
}
|
|
return Unknown;
|
}
|
|
public String getKeyValue(Entity entity) {
|
ContentBuilder builder = new ContentBuilder("-");
|
for (String keyField : keyFields) {
|
builder.append(entity.getString(keyField));
|
}
|
|
return builder.toString();
|
}
|
|
public List<NamedSQL> getTargetAction() throws Exception{
|
List<NamedSQL> sqlList = new ArrayList<NamedSQL>();
|
|
DataObject dataObject = DataObject.getInstance("tgt_create_flow");
|
Filter filter = new Filter();
|
filter.add("dataname", tableName);
|
EntitySet entitySet = dataObject.getTableEntitySet(filter, new OrderBy("code asc, index_no asc"));
|
|
for(Entity entity : entitySet) {
|
NamedSQL namedSQL = NamedSQL.getInstance(entity.getString("exec_sql"));
|
namedSQL.setTableName(entity.getString("dataname"));
|
sqlList.add(namedSQL);
|
}
|
|
return sqlList;
|
}
|
}
|