package policy;
|
|
import java.util.Date;
|
|
import foundation.dao.Filter;
|
import foundation.dao.OrderBy;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.persist.NamedSQL;
|
import foundation.server.Initializer;
|
import policy.price.PolicyBucket;
|
|
public class PolicyLoader extends Initializer {
|
|
@Override
|
public void startUp() throws Exception {
|
load();
|
}
|
|
private void load() throws Exception {
|
PolicyBucket policyBucket = PolicyBucket.getInstance();
|
|
policyBucket.setStarting(true);
|
try {
|
//1. 加载产品
|
loadProduct(policyBucket);
|
|
//2. 加载标准价价格列表
|
loadStandardPriceLists(policyBucket);
|
|
//3. 加载经销商价格价格列表
|
loadCustomerPriceLists(policyBucket);
|
|
//4. 加载买赠优惠(即时数量政策)
|
loadQtyOnsiteDiscount(policyBucket);
|
|
//5. 加载价格优惠(即时价格政策)
|
loadPriceOnsiteDiscount(policyBucket);
|
|
//6. 记录当前时间
|
PolicyBucket.Now = new Date();
|
}
|
finally {
|
policyBucket.setStarting(false);
|
}
|
}
|
|
private void loadProduct(PolicyBucket policyBucket) throws Exception {
|
NamedSQL namedSQL = NamedSQL.getInstance("policyGetProduct");
|
EntitySet entitySet = namedSQL.getEntitySet();
|
|
for (Entity entity: entitySet) {
|
policyBucket.loadOnePolicy(entity);
|
}
|
}
|
|
private void loadStandardPriceLists(PolicyBucket policyBucket) throws Exception {
|
DataObject dataObject = DataObject.getInstance("md_prod_price_detail");
|
Filter filter = new Filter("type_code", "Standard").add("state_code", "Open");
|
EntitySet entitySet = dataObject.getTableEntitySet(filter, new OrderBy("type_code, product_id"));
|
|
for (Entity entity: entitySet) {
|
policyBucket.loadOneStandardPriceLine(entity);
|
}
|
}
|
|
private void loadCustomerPriceLists(PolicyBucket policyBucket) throws Exception {
|
DataObject dataObject = DataObject.getInstance("md_prod_price_detail");
|
Filter filter = new Filter("type_code", "Customer").add("state_code", "Open");
|
EntitySet entitySet = dataObject.getTableEntitySet(filter, new OrderBy("type_code, product_id"));
|
|
for (Entity entity: entitySet) {
|
policyBucket.loadOnePriceListLine(entity);
|
}
|
}
|
|
private void loadQtyOnsiteDiscount(PolicyBucket policyBucket) throws Exception {
|
DataObject dataObject = DataObject.getInstance("agm_record_gift");
|
Filter filter = new Filter("category_code", "Onsite").add("state_code", "Open");
|
|
EntitySet entitySet = dataObject.getTableEntitySet(filter, new OrderBy("type_code, product_id"));
|
|
for (Entity entity: entitySet) {
|
policyBucket.loadOneQtyOnsiteDiscount(entity);
|
}
|
}
|
|
private void loadPriceOnsiteDiscount(PolicyBucket policyBucket) throws Exception {
|
DataObject dataObject = DataObject.getInstance("md_prod_price_detail");
|
Filter filter = new Filter("type_code", "Onsite").add("state_code", "Open");
|
EntitySet entitySet = dataObject.getTableEntitySet(filter, new OrderBy("type_code, product_id"));
|
|
for (Entity entity: entitySet) {
|
policyBucket.loadOnePriceOnsiteDiscount(entity);
|
}
|
}
|
|
public static int refreshPriceList() throws Exception {
|
PolicyBucket policyBucket = PolicyBucket.getInstance();
|
|
NamedSQL namedSQL = NamedSQL.getInstance("getUpdatedPrice");
|
namedSQL.setParam("loadTime", PolicyBucket.PriceTime, true);
|
EntitySet entitySet = namedSQL.getEntitySet();
|
|
boolean standard;
|
for (Entity entity: entitySet) {
|
standard = "Standard".equals(entity.getString("type_code"));
|
|
if (standard) {
|
policyBucket.loadOneStandardPriceLine(entity);
|
}
|
else {
|
policyBucket.loadOnePriceListLine(entity);
|
}
|
}
|
|
PolicyBucket.PriceTime = new Date();
|
return entitySet.size();
|
}
|
|
public static int refreshOnsiteList() throws Exception {
|
PolicyBucket policyBucket = PolicyBucket.getInstance();
|
|
NamedSQL namedSQL = NamedSQL.getInstance("getUpdatedQtyOnsiteDiscount");
|
namedSQL.setParam("loadTime", PolicyBucket.OnsiteTime, true);
|
EntitySet entitySet = namedSQL.getEntitySet();
|
|
for (Entity entity: entitySet) {
|
policyBucket.loadOneQtyOnsiteDiscount(entity);
|
}
|
|
PolicyBucket.OnsiteTime = new Date();
|
return entitySet.size();
|
}
|
|
@Override
|
public void shutDown() throws Exception {
|
|
}
|
|
}
|