package grand;
|
|
import java.io.File;
|
import java.sql.SQLException;
|
import java.util.Date;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
|
import foundation.action.ActionProvider;
|
import foundation.capacity.ActorType;
|
import foundation.code.CodeEngine;
|
import foundation.dao.DataPackage;
|
import foundation.dao.DataSource;
|
import foundation.dao.Domain;
|
import foundation.dao.Filter;
|
import foundation.dao.PackageStringMap;
|
import foundation.data.entity.Entity;
|
import foundation.data.entity.EntitySet;
|
import foundation.data.object.DataObject;
|
import foundation.data.object.EntitySaver;
|
import foundation.io.FileCenter;
|
import foundation.io.FileField;
|
import foundation.io.FileInjector;
|
import foundation.io.FileMeta;
|
import foundation.io.FileMetaList;
|
import foundation.io.FileTypes;
|
import foundation.io.object.FileRecord;
|
import foundation.io.template.AuthorizeTemplate;
|
import foundation.org.PositionCategory;
|
import foundation.persist.NamedSQL;
|
import foundation.persist.SQLRunner;
|
import foundation.state.StateMachine;
|
import foundation.token.IOnlineUser;
|
import foundation.user.OnlineUser;
|
import foundation.util.DateTimeUtil;
|
import foundation.util.ID;
|
import foundation.util.Util;
|
|
public class OrgAccountHandler extends ActionProvider {
|
|
private static Logger logger;
|
private static String TermCode_Terminate = "terminate";
|
private static String TABLE_ACCOUNT = "md_org_account";
|
private static String TABLE_NCACCOUNT = "md_org_account_ncc";
|
private static String TABLE_CLOSEACCOUNT = "md_org_account_close";
|
|
static {
|
logger = LogManager.getLogger(OrgAccountHandler.class);
|
}
|
|
|
@Override
|
protected void publishMethod() {
|
//1. 获取初始授信金额
|
addMethod("getAccountCreditInitialAmt");
|
|
//2. 生成协议附件
|
addMethod("createAgreementFile");
|
|
//3. 备案生效(协议来源)
|
addMethod("activateAgreementRecord");
|
|
//3. 备案失效(协议来源)
|
addMethod("stopAgreementRecord");
|
|
//4. 生成授权书
|
addMethod("createAuthorization");
|
|
//5. 终止授权书
|
addMethod("terminateAuthorization");
|
|
//6. 失效授权书
|
addMethod("disableAuthorization");
|
|
//7. 生成渠道关系
|
addMethod("refreshChannelStructure");
|
|
//8. 客商汇总
|
addMethod("customerCount");
|
|
//9. 新增岗位
|
addMethod("addPosition");
|
|
//10. 删除岗位
|
addMethod("deletePosition");
|
|
//11. 关闭账户
|
addMethod("closeAccount");
|
|
}
|
|
public void createAgreementFile() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
|
if (dataPackage == null) {
|
logger.error("create agreement file error: data not exists");
|
return;
|
}
|
|
dataPackage.loadOneDataFromDB();
|
|
//1. 获取模板列表
|
Entity master = dataPackage.getMasterEntity();
|
String templateId = master.getString("template_id");
|
|
DataObject dataObject = DataObject.getInstance("agm_template_file");
|
EntitySet templateSet = dataObject.getTableEntitySet(new Filter("sender_id", templateId));
|
|
if (templateSet == null || templateSet.isEmpty()) {
|
logger.error("create agreement file error: template not exists");
|
dataWriter.reportOneError("createAgreementFile", "协议模板不存在,无法创建文件");
|
return;
|
}
|
|
//2. 数据注入
|
FileMetaList result = new FileMetaList();
|
|
IOnlineUser user = IOnlineUser.getInstance();
|
|
PackageStringMap dataMap = dataPackage.toStringMap();
|
dataMap.setNullResult("***");
|
|
for (Entity entity: templateSet) {
|
File file = new File(entity.getString("file_path"));
|
String targetName = entity.getString("file_name");
|
|
if (!file.exists()) {
|
logger.error("create agreement file error, template not exists: {}", file.toString());
|
dataWriter.reportOneError("createAgreementFile", "协议模板不存在:" + targetName);
|
continue;
|
}
|
|
File target = FileInjector.createOneFile(user, file, targetName, FileTypes.PDF, dataMap);
|
targetName = target.getName();
|
|
FileMeta fileMeta = new FileMeta(targetName, target);
|
fileMeta.setSize(file.length());
|
result.add(fileMeta);
|
}
|
|
//3. 回写到协议中
|
FileField fileField = new FileField("contract_attachment_id", null);
|
FileCenter.saveFileToRepository(user, result, dataPackage, fileField);
|
|
//4. 删除临时文件
|
// for (FileMeta fileMeta: result) {
|
// File temp = fileMeta.getFile();
|
// temp.delete();
|
// }
|
|
//5. 返回结果
|
dataWriter.addValue("file", result);
|
}
|
|
public void activateAgreementRecord() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
|
if (dataPackage == null) {
|
logger.error("activate agreement record error: data not exists");
|
return;
|
}
|
|
Entity master = dataPackage.getMasterEntity();
|
String agreementNo = master.getString("agreement_no");
|
Date beginDate = master.getDate("date_from", null);
|
Date endDate = master.getDate("date_to", null);
|
|
NamedSQL namedSQL = NamedSQL.getInstance("activateAgreementRecord");
|
namedSQL.setParam("agreement_id", master.getId());
|
namedSQL.setParam("agreement_no", agreementNo);
|
namedSQL.setParam("date_from", beginDate);
|
namedSQL.setParam("date_to", endDate);
|
namedSQL.setParam("state_code", StateMachine.State_Code_Open);
|
namedSQL.setParam("state_name", StateMachine.State_Name_Open);
|
|
//1. 生效备案(通用)
|
namedSQL.setParam("tableName", "agm_record");
|
namedSQL.execute();
|
|
//2. 生效价格(产品)
|
namedSQL.setParam("tableName", "agm_record_product");
|
namedSQL.execute();
|
|
//3. 生效价格(省份)
|
namedSQL.setParam("tableName", "agm_record_province");
|
namedSQL.execute();
|
|
//4. 生效价格
|
namedSQL.setParam("tableName", "md_prod_price_detail");
|
namedSQL.execute();
|
}
|
|
public void stopAgreementRecord() throws Exception {
|
Domain domain = dataReader.getDomain();
|
|
NamedSQL namedSQL = NamedSQL.getInstance("stopAgreementRecord");
|
namedSQL.setParam("agreement_id", domain.getId());
|
namedSQL.setParam("state_code", StateMachine.State_Code_Close);
|
namedSQL.setParam("state_name", StateMachine.State_Name_Close);
|
|
//1. 中止备案(通用)
|
namedSQL.setParam("tableName", "agm_record");
|
namedSQL.execute();
|
|
//2. 中止价格(产品)
|
namedSQL.setParam("tableName", "agm_record_product");
|
namedSQL.execute();
|
|
//3. 中止价格(省份)
|
namedSQL.setParam("tableName", "agm_record_provinces");
|
namedSQL.execute();
|
|
//4. 中止价格
|
namedSQL.setParam("tableName", "md_prod_price_detail");
|
namedSQL.execute();
|
}
|
|
|
public void createAuthorization() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
|
if (dataPackage == null) {
|
logger.error("create authorization file error: data not exists");
|
return;
|
}
|
|
dataPackage.loadOneDataFromDB();
|
|
IOnlineUser user = IOnlineUser.getInstance();
|
Entity masterEntity = dataPackage.getMasterEntity();
|
String applyId = masterEntity.getId();
|
|
//1. 获取模板列表, 创建授权书
|
String companyId = masterEntity.getString("company_id");
|
String buId = masterEntity.getString("bu_id");
|
String orgId = masterEntity.getString("org_id");
|
String categoryCode = masterEntity.getString("category_code");
|
String termCode = masterEntity.getString("term_code");
|
|
if (TermCode_Terminate.equalsIgnoreCase(termCode)) {
|
logger.error("apply is terminate authorization, skip createAuthorization.");
|
return;
|
}
|
|
//2. 获取开户客户
|
DataObject dataObject = DataObject.getInstance(TABLE_ACCOUNT);
|
Filter accountFilter = new Filter();
|
accountFilter.add("bu_id", buId);
|
accountFilter.add("company_id", companyId);
|
accountFilter.add("org_id", orgId);
|
String accountId = null;
|
Entity accountEntity = dataObject.getTableEntity(accountFilter);
|
if (accountEntity != null ) {
|
accountId = accountEntity.getId();
|
}
|
|
AuthorizeTemplate template = AuthorizeTemplate.getInstance(companyId, buId, categoryCode, termCode);
|
|
if (template == null) {
|
logger.error("authorize template file not exists, skep");
|
dataWriter.reportOneError("createAuthorization", "授权书模板不存在,过程终止");
|
task.terminate();
|
return;
|
}
|
|
//3. 获取授权申请下的所有授权书
|
dataObject = DataObject.getInstance("md_org_account_hospital");
|
Filter filter = new Filter("apply_id", applyId);
|
EntitySet entitySet = dataObject.getTableEntitySet(filter);
|
|
//4. 处理产品及生产产品描述
|
NamedSQL namedSQL = NamedSQL.getInstance("createAuthorizeProduces");
|
namedSQL.setParam("apply_id", applyId);
|
|
String buName = masterEntity.getString("bu_name");
|
DataObject productObject = DataObject.getInstance("md_org_account_hospital_apply_product");
|
EntitySet productSet = productObject.getTableEntitySet(new Filter("parent_id", applyId));
|
String productRemark = createProductRemark(buName, productSet);
|
|
for (Entity entity :entitySet) {
|
String id = entity.getId();
|
|
//5.1 申请生效后,将产品拷贝到授权中
|
namedSQL.setParam("new_id", ID.newValue()).setParam("authorize_id", id);
|
namedSQL.execute();
|
|
//5.2 申请生效后,明细授权生效
|
EntitySaver saver = dataObject.createEntitySaver(entity);
|
saver.set("state_code", "Open");
|
saver.set("state_name", "已生效");
|
saver.set("is_active", "T");
|
saver.set("account_id", accountId);
|
saver.set("org_id", masterEntity.getString("org_id"));
|
saver.set("org_code", masterEntity.getString("org_code"));
|
saver.set("org_name", masterEntity.getString("org_name"));
|
saver.set("category_code", masterEntity.getString("category_code"));
|
saver.set("category_name", masterEntity.getString("category_name"));
|
saver.set("term_code", masterEntity.getString("term_code"));
|
saver.set("term_name", masterEntity.getString("term_name"));
|
saver.set("content", masterEntity.getString("content"));
|
saver.set("company_id", masterEntity.getString("company_id"));
|
saver.set("company_name", masterEntity.getString("company_name"));
|
saver.set("bu_id", masterEntity.getString("bu_id"));
|
saver.set("bu_name", masterEntity.getString("bu_name"));
|
saver.set("account_id", masterEntity.getString("account_id"));
|
saver.set("connected_org_id", masterEntity.getString("connected_org_id"));
|
saver.set("connected_org_code", masterEntity.getString("connected_org_code"));
|
saver.set("connected_org_name", masterEntity.getString("connected_org_name"));
|
saver.set("date_from", masterEntity.getValue("date_from"));
|
saver.set("date_to", masterEntity.getValue("date_to"));
|
|
String dateTo = masterEntity.getString("date_to");
|
if (!Util.isEmpty(dateTo)) {
|
String implantDeatline = DateTimeUtil.addMonths(dateTo, 1);
|
saver.set("implant_deadline", Util.StringToDate(implantDeatline));
|
}
|
|
saver.set("product_remark", productRemark);
|
|
saver.update();
|
|
//5.3 生成授权书
|
DataPackage authorizePackage = DataPackage.getInstance("md_org_account_hospital");
|
authorizePackage.setMasterId(entity.getId());
|
authorizePackage.loadOneDataFromDB();
|
|
PackageStringMap dataMap = authorizePackage.toStringMap();
|
dataMap.addAlias("md_org_account_hospital", "authorize");
|
dataMap.addAlias("md_org_account_hospital_product", "products");
|
dataMap.setNullResult("***");
|
|
File target = FileInjector.createOneFile(user, template.getPath(), FileTypes.PDF, dataMap);
|
|
FileMeta fileMeta = new FileMeta(target.getName(), target);
|
fileMeta.setSize(target.length());
|
|
//5.4 回写到协议中
|
FileField fileField = new FileField("file_authorization", "file_name_authorization");
|
FileRecord fileRecord = FileCenter.saveFileToRepository(user, fileMeta, dataObject.getDataName(), id, fileField);
|
|
saver = dataObject.createEntitySaver(id);
|
saver.set("id", id);
|
saver.set("file_authorization", fileRecord.getIndexId());
|
saver.set("file_name_authorization", fileRecord.getFileName());
|
saver.update();
|
}
|
|
//6. 返回结果
|
int size = entitySet.size();
|
dataWriter.reportOneMessage("createAuthorization", ("共生成" + size + "授权书"));
|
}
|
|
public void terminateAuthorization() throws Exception {
|
DataPackage dataPackage = dataReader.getDataPackage();
|
if (dataPackage == null) {
|
logger.error("terminate authorization error: data not exists");
|
return;
|
}
|
|
OnlineUser user = OnlineUser.getInstance();
|
Entity masterEntity = dataPackage.getMasterEntity();
|
String applyId = dataPackage.getMasterId();
|
String companyId = masterEntity.getString("company_id");
|
String buId = masterEntity.getString("bu_id");
|
String categoryCode = masterEntity.getString("category_code");
|
String termCode = masterEntity.getString("term_code");
|
|
// 1. 判断是否为终止授权
|
if (!TermCode_Terminate.equalsIgnoreCase(termCode)) {
|
logger.error("apply is not terminate authorization, skip terminateAuthorization.");
|
return;
|
}
|
|
// 2. 计算植入截止日期
|
String suspendDate = masterEntity.getString("suspend_date");
|
if (Util.isEmpty(suspendDate)) {
|
logger.error("terminate authorization error: suspend_date is not fill");
|
return;
|
}
|
String implantDeadline = DateTimeUtil.addMonths(suspendDate, 3);
|
|
//3. 获取终止授权申请下的所有授权书
|
AuthorizeTemplate template = AuthorizeTemplate.getInstance(companyId, buId, categoryCode, termCode);
|
|
if (template == null) {
|
logger.error("authorize template file not exists, skep");
|
dataWriter.reportOneError("createAuthorization", "授权书模板不存在,过程终止");
|
task.terminate();
|
return;
|
}
|
|
DataObject dataObject = DataObject.getInstance("md_org_account_hospital");
|
Filter filter = new Filter("apply_id", applyId);
|
EntitySet entitySet = dataObject.getTableEntitySet(filter);
|
EntitySaver saver = dataObject.createEntitySaver();
|
|
for (Entity entity : entitySet){
|
//4. 更新原授权
|
String id = entity.getId();
|
String oldAuthorizationId = entity.getString("old_id");
|
saver = dataObject.createEntitySaver(oldAuthorizationId);
|
|
saver.set("id", oldAuthorizationId);
|
saver.set("state_code", "Closed");
|
saver.set("state_name", "已终止");
|
saver.set("suspend_date", suspendDate);
|
saver.set("implant_deadline", implantDeadline);
|
saver.update();
|
|
//3. 生成终止授权书
|
PackageStringMap dataMap = dataPackage.toStringMap();
|
dataMap.addAlias("md_org_account_hospital", "authorize");
|
dataMap.addAlias("md_org_account_hospital_product", "products");
|
dataMap.addReplace("_", "-");
|
dataMap.setNullResult("***");
|
|
File target = FileInjector.createOneFile(user, template.getTemplateName(), FileTypes.PDF, dataMap);
|
FileMeta fileMeta = new FileMeta(target.getName(), target);
|
fileMeta.setSize(target.length());
|
FileField fileField = new FileField("file_authorization", "file_name_authorization");
|
FileRecord fileRecord = FileCenter.saveFileToRepository(user, fileMeta, dataObject.getDataName(), id, fileField);
|
|
//4. 回写授权
|
saver = dataObject.createEntitySaver(id);
|
saver.set("id", id);
|
saver.set("file_authorization", fileRecord.getIndexId());
|
saver.set("file_name_authorization", fileRecord.getFileName());
|
saver.set("suspend_date", suspendDate);
|
saver.set("implant_deadline", implantDeadline);
|
saver.update();
|
}
|
|
//5. 返回结果
|
dataWriter.reportOneMessage("terminateAuthorization", "终止授权成功,植入上报截止时间为:" + implantDeadline);
|
}
|
|
private String createProductRemark(String buName, EntitySet productSet) {
|
if (productSet.isEmpty()) {
|
return buName;
|
}
|
|
Entity entity = productSet.getEntity(0);
|
String result = entity.getString("product_name");
|
|
int size = productSet.size();
|
if (size > 1) {
|
result = result + "(" + size + "个产品)";
|
}
|
|
return result;
|
}
|
|
public synchronized void refreshChannelStructure() throws Exception {
|
NamedSQL namedSQL;
|
|
//1. 获取上次更新时间
|
namedSQL = NamedSQL.getInstance("getChannelStructureLastTime");
|
Date date = SQLRunner.getDate(namedSQL);
|
|
if (date == null) {
|
date = new Date(0);
|
}
|
|
//2. 增加新的渠道关系
|
int cnt_add = 0, cnt_delete = 0;
|
|
namedSQL = NamedSQL.getInstance("createChannelStructure_dealerOnly");
|
namedSQL.setParam("updateTime", date);
|
cnt_add = cnt_add + namedSQL.execute();
|
|
namedSQL = NamedSQL.getInstance("createChannelStructure_dealerDistributor");
|
namedSQL.setParam("updateTime", date);
|
cnt_add = cnt_add + namedSQL.execute();
|
|
namedSQL = NamedSQL.getInstance("createChannelStructure_distributor");
|
namedSQL.setParam("updateTime", date);
|
cnt_add = cnt_add + namedSQL.execute();
|
|
//3. 关闭取消的渠道关系
|
namedSQL = NamedSQL.getInstance("closeChannelStructure");
|
namedSQL.setParam("updateTime", date);
|
cnt_delete = cnt_delete + namedSQL.execute();
|
|
//4. 写入日志
|
DataObject dataObject = DataObject.getInstance("md_channel_structure_log");
|
EntitySaver saver = dataObject.createEntitySaver();
|
saver.set("id", ID.newValue());
|
saver.set("run_time", new Date());
|
saver.set("cnt_add", cnt_add);
|
saver.set("cnt_delete", cnt_delete);
|
saver.insert();
|
}
|
|
public void customerCount() throws Exception {
|
OnlineUser user = OnlineUser.getInstance();
|
DataObject dataObject;
|
Filter filter = new Filter();
|
int customerCount;
|
|
//1. 直采客商
|
dataObject = DataObject.getInstance(TABLE_ACCOUNT);
|
filter = dataObject.loadUserLineFilter(user);
|
filter.add("state_code", "open");
|
filter.add("actor_code", "First");
|
customerCount = dataObject.getCount(filter);
|
dataWriter.addValue("first", customerCount);
|
|
//2. 平台商
|
filter.removeItemByName("actor_code");
|
filter.add("actor_code", "Platform");
|
customerCount = dataObject.getCount(filter);
|
dataWriter.addValue("platform", customerCount);
|
|
//3. 非直采
|
filter.removeItemByName("actor_code");
|
filter.add("actor_code", "Second");
|
customerCount = dataObject.getCount(filter);
|
dataWriter.addValue("second", customerCount);
|
|
//4. 配送商
|
dataObject = DataObject.getInstance("md_channel_structure");
|
filter = dataObject.loadUserLineFilter(user);
|
filter.add("category_code", "Distributor");
|
|
NamedSQL namedSQL = NamedSQL.getInstance("getPositionDistributor");
|
namedSQL.setFilter(filter);
|
Entity entity = namedSQL.getEntity();
|
customerCount = entity.getInt("customerCount");
|
dataWriter.addValue("distribute", customerCount);
|
|
//5. 医院
|
dataObject = DataObject.getInstance("md_position_hospital");
|
filter = dataObject.loadUserLineFilter(user);
|
customerCount = dataObject.getCount(filter);
|
dataWriter.addValue("hospital", customerCount);
|
|
}
|
|
public void addPosition() throws Exception{
|
String dataName = dataReader.getString("dataname");
|
DataPackage dataPackage = dataReader.getDataPackage();
|
dataPackage.loadDataFromRequest(dataName);
|
Entity positionEntity = dataPackage.getMasterEntity(DataSource.Request);
|
|
String buId = positionEntity.getString("bu_id");
|
String companyId = positionEntity.getString("company_id");
|
PositionCategory category = PositionCategory.parse(positionEntity.getString("category_code"));
|
String dynamic = null;
|
DataObject dataObject = DataObject.getInstance("md_bu_org");
|
Filter filter = new Filter();
|
|
if(PositionCategory.Sales == category) {
|
String[] segment = buId.split("-");
|
if(segment.length >= 1) {
|
dynamic = segment[1];
|
}
|
filter.add("bu_id", buId);
|
filter.add("company_id", companyId);
|
}
|
else {
|
dynamic = "BS-O";
|
}
|
|
EntitySet buOrgRelation = dataObject.getTableEntitySet(filter);
|
|
SQLRunner.beginTrans();
|
try {
|
//1. 添加岗位
|
dataObject = DataObject.getInstance(dataName);
|
String positionId = positionEntity.getId(), actorTargetId = null;
|
if (Util.isEmpty(positionEntity.getId())) {
|
positionId = ID.newValue();
|
actorTargetId = ID.newValue();
|
}
|
|
//2. 生成编码
|
String code = CodeEngine.nextval("Code-Position", dynamic);
|
positionEntity.setId(positionId);
|
positionEntity.set("code", code);
|
positionEntity.set("category_code", category);
|
positionEntity.set("is_delete", "F");
|
|
dataObject.saveEntity(positionEntity);
|
|
//3. 获取公司BU关系,为岗位配置角色
|
for (Entity entity: buOrgRelation) {
|
String targetBuId = entity.getString("bu_id");
|
String targetCompanyId = entity.getString("company_id");
|
|
dataObject = DataObject.getInstance("sys_right_actor_target");
|
Filter targetFilter = new Filter("target_id", positionId)
|
.add("bu_id",targetBuId)
|
.add("company_id", targetCompanyId);
|
Entity actorTargetExistsEntity = dataObject.getTableEntity(targetFilter);
|
|
|
if(actorTargetExistsEntity != null ) {
|
actorTargetId = actorTargetExistsEntity.getId();
|
}
|
else {
|
actorTargetId = ID.newValue();
|
}
|
|
Entity actorTargetEntity = dataPackage.getItemEntity("sys_right_actor_target",DataSource.Request);
|
|
actorTargetEntity.set("id", actorTargetId);
|
actorTargetEntity.set("bu_id", targetBuId);
|
actorTargetEntity.set("type_code", ActorType.Position);
|
actorTargetEntity.set("company_id", targetCompanyId);
|
actorTargetEntity.set("target_id", positionId);
|
actorTargetEntity.set("remark", positionEntity.getString("remark"));
|
|
dataObject.saveEntity(actorTargetEntity);
|
}
|
|
SQLRunner.commit();
|
}
|
catch(Exception e) {
|
e.printStackTrace();
|
try {
|
SQLRunner.rollback();
|
} catch (SQLException e1) {
|
e1.printStackTrace();
|
}
|
}
|
}
|
|
public void deletePosition() throws Exception{
|
String dataName = dataReader.getString("dataname");
|
String id = dataReader.getString("id");
|
SQLRunner.beginTrans();
|
try {
|
//1. 删除岗位
|
DataObject dataObject = DataObject.getInstance(dataName);
|
EntitySaver saver = dataObject.createEntitySaver(id);
|
saver.set("is_delete", "T");
|
saver.update();
|
|
//2. 删除岗位数据权限
|
dataObject = DataObject.getInstance("sys_right_actor_target");
|
dataObject.deleteEntity(new Filter("target_id", id));
|
|
SQLRunner.commit();
|
}
|
catch(Exception e) {
|
e.printStackTrace();
|
try {
|
SQLRunner.rollback();
|
} catch (SQLException e1) {
|
e1.printStackTrace();
|
}
|
}
|
}
|
|
public void closeAccount() throws Exception{
|
DataObject closeDataObject = DataObject.getInstance(TABLE_CLOSEACCOUNT);
|
DataObject accountDataObject = DataObject.getInstance(TABLE_ACCOUNT);
|
DataObject ncOrgDataObject = DataObject.getInstance(TABLE_NCACCOUNT);
|
DataObject actorTargetDataObject = DataObject.getInstance("sys_right_actor_target");
|
|
Filter filter = new Filter();
|
filter.add("state_code", "waitClose");
|
|
if (dataReader != null) {
|
String id = dataReader.getString("id");
|
filter.add("id", id);
|
}
|
|
EntitySet entitySet = closeDataObject.getTableEntitySet(filter);
|
|
for (Entity entity : entitySet) {
|
Date terminationDate = entity.getDate("termination_date");
|
String terminationDateStr = Util.DataTimeToString(terminationDate, Util.NORMALFORMAT);
|
|
if (Util.newDateStr().compareToIgnoreCase(terminationDateStr) < 0) {
|
continue;
|
}
|
|
//1. 更新关户申请状态
|
entity.set("state_code", "Close");
|
entity.set("state_name", "已关户");
|
closeDataObject.updateEntity(entity);
|
|
//2. 更新开户状态
|
String accountId = entity.getString("host_id");
|
Entity accountEntity = accountDataObject.getTableEntity(accountId);
|
accountEntity.set("state_code", "Close");
|
accountEntity.set("state_name", "已关户");
|
accountDataObject.updateEntity(accountEntity);
|
|
//3. 更新客商主数据状态
|
String ncOrgId = accountEntity.getString("org_ncc_id");
|
Entity ncAccountEntity = ncOrgDataObject.getTableEntity(ncOrgId);
|
ncAccountEntity.set("state_code", "notExistsAccount");
|
ncAccountEntity.set("state_name", "DMS未开户");
|
ncOrgDataObject.updateEntity(ncAccountEntity);
|
|
//4. 删除数据权限
|
actorTargetDataObject.deleteEntity(new Filter("target_id", accountId));
|
}
|
}
|
|
}
|