package com.vci.client.bof;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.omg.CORBA.StringHolder;
|
|
import com.vci.corba.omd.atm.AttribItem;
|
import com.vci.corba.omd.btm.BtmItem;
|
import com.vci.corba.omd.data.AttributeValue;
|
import com.vci.corba.omd.data.BusinessObject;
|
import com.vci.corba.omd.data.LinkObject;
|
import com.vci.corba.omd.lcm.LifeCycle;
|
import com.vci.corba.omd.lcm.TransitionVO;
|
import com.vci.corba.omd.lcm.TransitionVOEvent;
|
import com.vci.corba.omd.vrm.VersionRule;
|
import com.vci.client.LogonApplication;
|
import com.vci.client.common.objects.UserObject;
|
import com.vci.client.omd.provider.BtmProvider;
|
import com.vci.client.omd.provider.LifeCycleProvider;
|
import com.vci.client.omd.provider.VersionRuleProvider;
|
import com.vci.client.ui.exception.ClientExceptionHandler;
|
import com.vci.common.annotaion.MethodTypeAnnotation;
|
import com.vci.common.utility.ObjectUtility;
|
import com.vci.corba.bofactory.BOFactoryService.BatchCreateBusinessObjectWithLinkTSResult;
|
import com.vci.corba.bofactory.BOFactoryService.CreateBusinessObjectWithLinkTSResult;
|
import com.vci.corba.common.VCIError;
|
import com.vci.mw.ClientContextVariable;
|
import com.vci.mw.LaunchModeEnum;
|
import com.vci.corba.common.data.VCIInvocationInfo;
|
import com.vci.corba.framework.data.UserInfo;
|
|
public class ClientBusinessObjectOperation implements ClientBOOperationInterface{
|
|
/**
|
* 构建新的BO对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject createBusinessObject(String boName) throws VCIError {
|
//modify by weidy@2018-04-13
|
//因为LogonApplication获取用户名是针对C/S的,现在很多B/S的环境也调用了这个方法,这样就会造成用户1的操作会记录成用户B
|
return createBusinessObject(boName,getUserName());
|
}
|
|
//modify by weidy@2018-04-13
|
//因为LogonApplication获取用户名是针对C/S的,现在很多B/S的环境也调用了这个方法,这样就会造成用户1的操作会记录成用户B
|
private String getUserName() {
|
String username = "";
|
if(ClientContextVariable.getClientLanuchMode().equals(LaunchModeEnum.WebApp)){
|
VCIInvocationInfo vcii = ClientContextVariable.getVCIInvocationInfoForSessionContext();
|
if(vcii!=null){
|
username = vcii.userName;
|
}
|
}
|
if(StringUtils.isEmpty(username)){
|
username = LogonApplication.getUserEntityObject().getUserName();
|
}
|
return username;
|
}
|
|
/**
|
* 构建初始的业务对象
|
*
|
* @param boName,业务类型名称
|
* @param userName,创建者
|
* @return 构建的初始业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject createBusinessObject(String boName, String userName) throws VCIError {
|
BtmItem item = this.getTypeInfo(boName);
|
ClientBusinessObject bo = new ClientBusinessObject();
|
bo.setOid(ObjectUtility.getNewObjectID36());
|
bo.setRevisionid(ObjectUtility.getNewObjectID36());
|
bo.setNameoid(ObjectUtility.getNewObjectID36());
|
bo.setBtmName(boName);
|
bo.setIsLastR(true);
|
bo.setIsFirstR(true);
|
bo.setIsFirstV(true);
|
bo.setIsLastV(true);
|
|
bo.setCreator(userName);
|
bo.setCreateTime(System.currentTimeMillis());
|
bo.setLastModifier(userName);
|
bo.setLastModifyTime(System.currentTimeMillis());
|
bo.setRevisionRule(item.revRuleName);
|
bo.setVersionRule(String.valueOf(item.verRuleName));
|
|
RevisionValueObject revisonObj = getRevisionSeqVal(item.revLevel, item.revRuleName, item.revInput);
|
VersionValueObject versionObj = getVersionValue(item.verRuleName);
|
bo.setRevisionSeq(revisonObj.getRevisionSeq());
|
bo.setRevisionValue(revisonObj.getRevisionVal());
|
bo.setVersionSeq(versionObj.getVersionSeq());
|
bo.setVersionValue(versionObj.getVersionVal());
|
|
|
bo.setLctId(item.lifeCycle);
|
bo.setLcStatus(getLcFirstStatus(item.lifeCycle));
|
bo.setId("");
|
bo.setName("");
|
bo.setDescription("");
|
bo.setOwner(userName);
|
// bo.setCheckinBy(userName);
|
bo.setCopyFromVersion("");
|
initTypeAttributeValue(bo);
|
return bo;
|
}
|
|
public ClientBusinessObject cloneBusinessObject(ClientBusinessObject fromBo) throws VCIError {
|
return cloneBusinessObject(fromBo, getUserName());
|
}
|
|
/**
|
* 克隆业务对象
|
*
|
* @param fromBo, 源业务对象
|
* @param userName, 创建者
|
* @return 克隆后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject cloneBusinessObject(ClientBusinessObject fromBo, String userName) throws VCIError {
|
BtmItem item = this.getTypeInfo(fromBo.getBtmName());
|
/* if (item.revLevel == 0) {
|
throw ExceptionLocalHandler.getInstance().getClientString(new VCIError("P0010SOF-00016", new String[0]), "PLMBOFactory");
|
}*/
|
ClientBusinessObject toBo = new ClientBusinessObject();
|
toBo.setOid(ObjectUtility.getNewObjectID36());
|
toBo.setRevisionid(ObjectUtility.getNewObjectID36());
|
toBo.setNameoid(ObjectUtility.getNewObjectID36());
|
toBo.setBtmName(fromBo.getBtmName());
|
toBo.setIsLastR(true);
|
toBo.setIsFirstR(true);
|
toBo.setIsFirstV(true);
|
toBo.setIsLastV(true);
|
|
toBo.setCreator(userName);
|
toBo.setCreateTime(System.currentTimeMillis());
|
toBo.setLastModifier(userName);
|
toBo.setLastModifyTime(System.currentTimeMillis());
|
toBo.setRevisionRule(item.revRuleName);
|
toBo.setVersionRule(String.valueOf(item.verRuleName));
|
|
RevisionValueObject revisonObj = getRevisionSeqVal(item.revLevel, item.revRuleName, item.revInput);
|
VersionValueObject versionObj = getVersionValue(item.verRuleName);
|
toBo.setRevisionSeq(revisonObj.getRevisionSeq());
|
toBo.setRevisionValue(revisonObj.getRevisionVal());
|
toBo.setVersionSeq(versionObj.getVersionSeq());
|
toBo.setVersionValue(versionObj.getVersionVal());
|
|
toBo.setLctId(fromBo.getLctId());
|
toBo.setLcStatus(getLcFirstStatus(item.lifeCycle));
|
toBo.setId(fromBo.getId());
|
toBo.setName(fromBo.getName());
|
toBo.setDescription(fromBo.getDescription());
|
toBo.setOwner(userName);
|
// toBo.setCheckinBy(userName);
|
toBo.setCopyFromVersion("");
|
initRevisionTypeAttributeValue(fromBo, toBo);
|
return toBo;
|
}
|
|
/**
|
* 克隆对象
|
*
|
* @param fromBo,被克隆对象
|
* @param btmItem,被克隆对象对应的业务类型详细信息
|
* @param attrItems,被克隆对象对应的属性集合详细信息
|
* @param isNew,true代表被克隆的对象为未升版本版次的对象,false代表被克隆对象已经升过版本或者版次
|
* @param userName,克隆用户,为空时去被克隆对象的创建者信息
|
* @return
|
* @throws VCIError
|
*/
|
public ClientBusinessObject cloneBusinessObject(ClientBusinessObject fromBo, BtmItem btmItem, AttribItem[] attrItems, boolean isNew, String userName) throws VCIError {
|
if (isNew || userName == null || userName.trim().equals("")) {
|
userName = fromBo.getCreator();
|
}
|
|
ClientBusinessObject toBo = new ClientBusinessObject();
|
toBo.setOid(ObjectUtility.getNewObjectID36());
|
toBo.setRevisionid(ObjectUtility.getNewObjectID36());
|
toBo.setNameoid(ObjectUtility.getNewObjectID36());
|
toBo.setBtmName(fromBo.getBtmName());
|
toBo.setIsLastR(true);
|
toBo.setIsFirstR(true);
|
toBo.setIsFirstV(true);
|
toBo.setIsLastV(true);
|
|
toBo.setCreator(userName);
|
toBo.setCreateTime(System.currentTimeMillis());
|
toBo.setLastModifier(userName);
|
toBo.setLastModifyTime(System.currentTimeMillis());
|
toBo.setRevisionRule(btmItem.revRuleName);
|
toBo.setVersionRule(String.valueOf(btmItem.verRuleName));
|
|
if (isNew) {
|
toBo.setRevisionSeq(fromBo.getRevisionSeq());
|
toBo.setRevisionValue(fromBo.getRevisionValue());
|
toBo.setVersionSeq(fromBo.getVersionSeq());
|
toBo.setVersionValue(fromBo.getVersionValue());
|
} else {
|
RevisionValueObject revisonObj = getRevisionSeqVal(btmItem.revLevel, btmItem.revRuleName, btmItem.revInput);
|
VersionValueObject versionObj = getVersionValue(btmItem.verRuleName);
|
toBo.setRevisionSeq(revisonObj.getRevisionSeq());
|
toBo.setRevisionValue(revisonObj.getRevisionVal());
|
toBo.setVersionSeq(versionObj.getVersionSeq());
|
toBo.setVersionValue(versionObj.getVersionVal());
|
}
|
|
toBo.setLctId(fromBo.getLctId());
|
if (isNew) {
|
toBo.setLcStatus(fromBo.getLcStatus());
|
} else {
|
toBo.setLcStatus(getLcFirstStatus(btmItem.lifeCycle));
|
}
|
toBo.setId(fromBo.getId());
|
toBo.setName(fromBo.getName());
|
toBo.setDescription(fromBo.getDescription());
|
toBo.setOwner(userName);
|
// toBo.setCheckinBy(userName);
|
toBo.setCopyFromVersion("");
|
initRevisionTypeAttributeValue(fromBo, toBo, attrItems, isNew);
|
|
return toBo;
|
}
|
|
/**
|
* 获取初始的版本信息
|
* @param revLevel, 版本类型
|
* @param revRuleName,版本规则名称
|
* @return
|
* @throws VCIError
|
*/
|
private RevisionValueObject getRevisionSeqVal(int revLevel, String revRuleName, boolean revInput) throws VCIError {
|
RevisionValueObject obj = new RevisionValueObject();
|
obj.setRevisionSeq((short)1);
|
if (revInput) {
|
obj.setRevisionVal("");
|
return obj;
|
}
|
if (revLevel == 0) {
|
obj.setRevisionVal("-");
|
} else {
|
obj.setRevisionVal(getFirstRevision(revRuleName));
|
}
|
|
return obj;
|
}
|
|
/**
|
* 获取去初始版本
|
* @param verRuleName
|
* @return
|
*/
|
private VersionValueObject getVersionValue(int verRuleName) {
|
VersionValueObject obj = new VersionValueObject();
|
obj.setVersionSeq((short)1);
|
if (verRuleName == 0) {
|
obj.setVersionVal("1");
|
} else if (verRuleName == 1){
|
obj.setVersionVal("a");
|
} else if (verRuleName == 2) {
|
obj.setVersionVal("0");
|
}
|
|
return obj;
|
}
|
|
/**
|
* 根据BO名称获取对象详细信息
|
* @param boName
|
* @return
|
* @throws VCIError
|
*/
|
private BtmItem getTypeInfo(String boName) throws VCIError {
|
BtmItem item = null;
|
try {
|
item = BtmProvider.getInstance().getBtmItemByName(boName);
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new VCIError();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
throw new VCIError();
|
}
|
return item;
|
}
|
|
/**
|
* 根据生命周期名称获取第一个生命周期节点
|
* @param lifeCycleName
|
* @return
|
* @throws VCIError
|
*/
|
private String getLcFirstStatus(String lifeCycleName) throws VCIError {
|
try {
|
LifeCycle[] lifeCycls = LifeCycleProvider.getInstance().getLifeCyles();
|
|
for (LifeCycle lifeCycle : lifeCycls) {
|
if (lifeCycle.name.equals(lifeCycleName)) {
|
return lifeCycle.startState;
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new VCIError();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
throw new VCIError();
|
}
|
return "";
|
}
|
|
/**
|
* 获取第一个版本值
|
* @param revRuleName
|
* @return
|
* @throws VCIError
|
*/
|
private String getFirstRevision(String revRuleName) throws VCIError {
|
try {
|
VersionRule[] vrs = VersionRuleProvider.getInstance().getVersionRules();
|
for (VersionRule vr : vrs) {
|
if (vr.name.equals(revRuleName)) {
|
return vr.initialValue;
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new VCIError();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
throw new VCIError();
|
}
|
return "";
|
}
|
|
/**
|
* 设置BO对象的初始属性值
|
* @param bo
|
* @throws VCIError
|
*/
|
private void initTypeAttributeValue(ClientBusinessObject bo) throws VCIError {
|
try {
|
AttribItem[] items = BtmProvider.getInstance().getBtAbItems(bo.getBtmName());
|
for (AttribItem item : items) {
|
bo.setAttributeValue(item.name, item.defValue);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new VCIError();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
throw new VCIError();
|
}
|
}
|
|
/**
|
* 初始升版本BO对象属性值
|
* @param fromBo
|
* @param toBo
|
* @throws VCIError
|
*/
|
private void initRevisionTypeAttributeValue(ClientBusinessObject fromBo, ClientBusinessObject toBo) throws VCIError {
|
BtmProvider provide = BtmProvider.getInstance();
|
AttribItem[] items = provide.getBtAbItems(toBo.getBtmName());
|
for (AttribItem item : items) {
|
toBo.setAttributeValue(item.name, fromBo.getAttributeValue(item.name));
|
}
|
}
|
|
// /**
|
// * 复制对象属性
|
// * @param fromBo
|
// * @param toBo
|
// * @param items
|
// * @throws VCIError
|
// */
|
// private void initRevisionTypeAttributeValue(ClientBusinessObject fromBo, ClientBusinessObject toBo, AttribItem[] items) throws VCIError {
|
// for (AttribItem item : items) {
|
// toBo.setAttributeValue(item.name, fromBo.getAttributeValue(item.name));
|
// }
|
// }
|
|
/**
|
* 复制对象属性
|
* @param fromBo
|
* @param toBo
|
* @param items
|
* @throws VCIError
|
*/
|
private void initRevisionTypeAttributeValue(ClientBusinessObject fromBo, ClientBusinessObject toBo, AttribItem[] items, boolean isNew) throws VCIError {
|
if(isNew){
|
AttributeValue[] vals = fromBo.getBusinessObject().newAttrValList;
|
AttributeValue[] valsCopy = new AttributeValue[vals.length];
|
for (int i = 0; i < valsCopy.length; i++) {
|
valsCopy[i] = new AttributeValue(vals[i].attrName, vals[i].attrVal);
|
}
|
toBo.getBusinessObject().newAttrValList = valsCopy;
|
} else {
|
for (AttribItem item : items) {
|
toBo.setAttributeValue(item.name, fromBo.getAttributeValue(item.name));
|
}
|
}
|
}
|
|
/**
|
* 获取对象的初始生版对象
|
*
|
* @param fromBo, 生版前对象
|
* @param revisionVal, 生版后对象的版本,为空时系统根据版本规则自动生成
|
* @param lifecycleStatus,可以生版的生命周期状态
|
* @return 生版后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject reviseBusinessObject(ClientBusinessObject fromBo, String revisionVal, String[] lifecycleStatus) throws VCIError {
|
BtmItem item = this.getTypeInfo(fromBo.getBtmName());
|
if (item.revLevel == 0) {
|
throw ClientExceptionHandler.getInstance().getClientString(new VCIError("P0010SOF-00016", new String[0]), "PLMBOFactory");
|
}
|
if (lifecycleStatus != null && lifecycleStatus.length != 0) {
|
boolean isExist = false;
|
for (int i = 0; i < lifecycleStatus.length; i++) {
|
if (fromBo.getLcStatus().equals(lifecycleStatus[i])) {
|
isExist = true;
|
break;
|
}
|
}
|
if (!isExist) {
|
throw ClientExceptionHandler.getInstance().getClientString(new VCIError("P0010SOF-00022", new String[0]), "PLMBOFactory");
|
}
|
}
|
return reviseBusinessObject(fromBo, revisionVal);
|
}
|
|
public ClientBusinessObject reviseBusinessObject(ClientBusinessObject fromBo, String revisionVal) throws VCIError {
|
return reviseBusinessObject(fromBo, revisionVal, getUserName());
|
}
|
|
/**
|
* 获取升版本初始对象
|
* @param fromBo, 生版前业务对象
|
* @param revisionVal, 生版后对象的版本,为空时系统根据版本规则自动生成
|
* @return 生版后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject reviseBusinessObject(ClientBusinessObject fromBo, String revisionVal, String userName) throws VCIError {
|
BtmItem item = this.getTypeInfo(fromBo.getBtmName());
|
if (item.revLevel == 0) {
|
throw ClientExceptionHandler.getInstance().getClientString(new VCIError("P0010SOF-00016", new String[0]), "PLMBOFactory");
|
}
|
ClientBusinessObject toBo = new ClientBusinessObject();
|
toBo.setOid(ObjectUtility.getNewObjectID36());
|
toBo.setRevisionid(ObjectUtility.getNewObjectID36());
|
toBo.setNameoid(fromBo.getNameoid());
|
toBo.setBtmName(fromBo.getBtmName());
|
toBo.setIsLastR(true);
|
toBo.setIsFirstR(false);
|
toBo.setIsFirstV(true);
|
toBo.setIsLastV(true);
|
|
toBo.setCreator(userName);
|
toBo.setCreateTime(System.currentTimeMillis());
|
toBo.setLastModifier(userName);
|
toBo.setLastModifyTime(System.currentTimeMillis());
|
toBo.setRevisionRule(item.revRuleName);
|
toBo.setVersionRule(String.valueOf(item.verRuleName));
|
RevisionValueObject rvObj = getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal);
|
toBo.setRevisionSeq(rvObj.getRevisionSeq());
|
toBo.setRevisionValue(rvObj.getRevisionVal());
|
|
VersionValueObject versionObj = getVersionValue(item.verRuleName);
|
toBo.setVersionSeq(versionObj.getVersionSeq());
|
toBo.setVersionValue(versionObj.getVersionVal());
|
|
toBo.setLctId(fromBo.getLctId());
|
toBo.setLcStatus(getLcFirstStatus(item.lifeCycle));
|
toBo.setId(fromBo.getId());
|
toBo.setName(fromBo.getName());
|
toBo.setDescription(fromBo.getDescription());
|
toBo.setOwner(userName);
|
// toBo.setCheckinBy(userName);
|
toBo.setCopyFromVersion(fromBo.getOid());
|
initRevisionTypeAttributeValue(fromBo, toBo);
|
return toBo;
|
}
|
|
/**
|
* 获取下一个版本号
|
* @param boName
|
* @param nameOid
|
* @param revRuleName
|
* @param revInput
|
* @param revisionVal
|
* @return
|
* @throws VCIError
|
*/
|
private RevisionValueObject getNextRevision(String btName, String nameOid, String revRuleName, boolean revInput, String revisionVal) throws VCIError {
|
RevisionValueDelegate delegate = new RevisionValueDelegate();
|
//String tableName = this.getTableName(boName);
|
RevisionValueObject object = delegate.getNextRevisionValueObject(btName, nameOid, revRuleName, revInput, revisionVal);
|
return object;
|
}
|
|
/**
|
* 不同过查询数据库,直接计算获取下一个版本号
|
* @param revisionVal
|
* @param revisionSeq
|
* @param revisionRule
|
* @return
|
* @throws VCIError
|
*/
|
public RevisionValueObject getNextRevision(String revisionVal, int revisionSeq, String revisionRule) throws VCIError {
|
RevisionValueDelegate delegate = new RevisionValueDelegate();
|
RevisionValueObject object = delegate.getNextRevisionValue(revisionVal, (short)revisionSeq, revisionRule);
|
return object;
|
}
|
|
/**
|
* 根据类型获取对应的表名称
|
* @param btmName
|
* @return
|
*/
|
// private String getTableName(String btmName) {
|
// return OmdTools.getBTTableName(btmName);
|
// }
|
|
public ClientBusinessObject createBusinessObjectVersion(ClientBusinessObject fromBo) throws VCIError {
|
return createBusinessObjectVersion(fromBo, getUserName());
|
}
|
|
/**
|
* 获取新版次初始对象
|
*
|
* @param fromBo, 生版次前的业务对象
|
* @param userName, 创建者名
|
* @return 生版次后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject createBusinessObjectVersion(ClientBusinessObject fromBo, String userName) throws VCIError {
|
BtmItem item = this.getTypeInfo(fromBo.getBtmName());
|
if (item.revLevel != 2) {
|
throw ClientExceptionHandler.getInstance().getClientString(new VCIError("P0010SOF-00016", new String[0]), "PLMBOFactory");
|
}
|
ClientBusinessObject toBo = new ClientBusinessObject();
|
toBo.setOid(ObjectUtility.getNewObjectID36());
|
toBo.setRevisionid(fromBo.getRevisionid());
|
toBo.setNameoid(fromBo.getNameoid());
|
toBo.setBtmName(fromBo.getBtmName());
|
toBo.setIsLastR(fromBo.getIsLastR());
|
toBo.setIsFirstR(fromBo.getIsFirstR());
|
toBo.setIsFirstV(false);
|
toBo.setIsLastV(true);
|
|
toBo.setCreator(userName);
|
toBo.setCreateTime(System.currentTimeMillis());
|
toBo.setLastModifier(userName);
|
toBo.setLastModifyTime(System.currentTimeMillis());
|
toBo.setRevisionRule(item.revRuleName);
|
toBo.setVersionRule(String.valueOf(item.verRuleName));
|
toBo.setRevisionSeq(fromBo.getRevisionSeq());
|
toBo.setRevisionValue(fromBo.getRevisionValue());
|
|
VersionValueObject vvObj = getNextVersion(fromBo.getBtmName(), fromBo.getNameoid(), fromBo.getRevisionid(), item.verRuleName);
|
toBo.setVersionSeq(vvObj.getVersionSeq());
|
toBo.setVersionValue(vvObj.getVersionVal());
|
|
toBo.setLctId(fromBo.getLctId());
|
toBo.setLcStatus(fromBo.getLcStatus());
|
toBo.setId(fromBo.getId());
|
toBo.setName(fromBo.getName());
|
toBo.setDescription(fromBo.getDescription());
|
toBo.setOwner(userName);
|
// toBo.setCheckinBy(userName);
|
toBo.setCopyFromVersion(fromBo.getOid());
|
initRevisionTypeAttributeValue(fromBo, toBo);
|
return toBo;
|
}
|
|
/**
|
* 获取下一个版次
|
* @param boName
|
* @param nameOid
|
* @param revisionOid
|
* @param versionType
|
* @return
|
* @throws VCIError
|
*/
|
private VersionValueObject getNextVersion(String btName, String nameOid, String revisionOid, int versionType) throws VCIError {
|
VersionValueDelegate delegate = new VersionValueDelegate();
|
//String tableName = this.getTableName(boName);
|
VersionValueObject object = delegate.getNextVersionValue(btName, nameOid, revisionOid, versionType);
|
return object;
|
}
|
|
/**
|
* 读取对象的详细信息
|
* @param list
|
* @return
|
* @throws VCIError
|
*/
|
public ClientBusinessObject readBusinessObjectById(String oid, String boName) throws VCIError{
|
ClientBusinessObject cbo = new ClientBusinessObject();
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().readBusinessObject(oid, boName);
|
cbo.setBusinessObject(businessObject);
|
return cbo;
|
}
|
|
/**
|
* 获取最新版本最新版次的业务对象
|
*
|
* @param nameoid, 业务对象的主oid
|
* @param boName, 业务对象的类型名称
|
* @return 符合要求的最新版本最新版次业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject[] getLastRevisionBusinessObject(String nameoid, String boName) throws VCIError{
|
BusinessObject[] businessObjects = BOFactoryClient.getBOFactoryService().getLastRevisionBusinessObject(nameoid, boName);
|
int len = businessObjects.length;
|
ClientBusinessObject[] cbos = new ClientBusinessObject[len];
|
for (int i = 0; i < len; i++) {
|
cbos[i] = new ClientBusinessObject();
|
cbos[i].setBusinessObject(businessObjects[i]);
|
}
|
|
return cbos;
|
}
|
|
/**
|
* 批量根据ID读取对象的详细信息
|
* @param oids, 需要查询的对象oid
|
* @param boName, 需要查询对象的业务类型名称
|
* @return 符合要求的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject[] readBusinessObjectById(String[] oids, String boName) throws VCIError {
|
BusinessObject[] bos = BOFactoryClient.getBOFactoryService().getBatchBusinessObject(oids, boName);
|
ClientBusinessObject[] cbos = new ClientBusinessObject[bos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
ClientBusinessObject cbo = new ClientBusinessObject();
|
cbo.setBusinessObject(bos[i]);
|
cbos[i] = cbo;
|
}
|
|
return cbos;
|
}
|
|
/**
|
* 根据业务类型名称获取初始化的对象
|
* @param btmName
|
* @return
|
* @throws VCIError
|
*/
|
public ClientBusinessObject initBusinessObject(String btmName) throws VCIError {
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().initBusinessObject(btmName);
|
ClientBusinessObject cbo = new ClientBusinessObject();
|
cbo.setBusinessObject(businessObject);
|
|
return cbo;
|
}
|
|
/**
|
* 对业务对象进行升版本或者升版本操作,同时复制所有link
|
* @param cbo,生版对象
|
* @param clos,生版需要更改的链接对象
|
* @param isRev, true代表升版本,false代表生版次
|
* @param isSave,true代表保存,false代表不保存
|
* @param isFromLinkCopy, 作为from端的link复制
|
* @param isToLinkCopy,作为to端的link复制
|
* @return 生版后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject revisionBusinessObject(ClientBusinessObject cbo,
|
ClientLinkObject[] clos, boolean isRev, boolean isSave, boolean isFromLinkCopy, boolean isToLinkCopy) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
LinkObject[] los = new LinkObject[clos.length];
|
for (int i = 0; i < clos.length; i++) {
|
clos[i].dealLinkObjectNullValue();
|
los[i] = clos[i].getLinkObject();
|
}
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().revisionBusinessObject(
|
cbo.getBusinessObject(), los, isRev, isSave, isFromLinkCopy, isToLinkCopy);
|
|
ClientBusinessObject revBo = new ClientBusinessObject();
|
revBo.setBusinessObject(businessObject);
|
|
return revBo;
|
}
|
|
/**
|
* 对业务对象进行升版本或者升版本操作,同时复制指定的link
|
* @param cbo,生版对象
|
* @param linkTypes,复制的link名称
|
* @param isRev, true代表升版本,false代表生版次
|
* @param isSave,true代表保存,false代表不保存
|
* @param isFromLinkCopy, 作为from端的link复制
|
* @param isToLinkCopy,作为to端的link复制
|
* @return 生版后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject revisionBusinessObject(ClientBusinessObject cbo,
|
String[] linkTypes, boolean isRev, boolean isSave, boolean isFromLinkCopy, boolean isToLinkCopy) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().revisionBusinessObjectWithLink(
|
cbo.getBusinessObject(), linkTypes, isRev, isSave, isFromLinkCopy, isToLinkCopy);
|
|
ClientBusinessObject revBo = new ClientBusinessObject();
|
revBo.setBusinessObject(businessObject);
|
|
return revBo;
|
}
|
|
/**
|
* 保存单个BO对象
|
* @param cbo, 需要保存的业务对象
|
* @return 保存返回后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject saveCreateBuinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().createBusinessObject(cbo.getBusinessObject(), false, false);
|
cbo.setBusinessObject(businessObject);
|
return cbo;
|
}
|
|
/**
|
* 批量保存BO对象
|
* @param cbos, 需要保存的业务对象数组
|
* @return 保存成功后的对象数组
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public ClientBusinessObject[] batchSaveCreateBuinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
int len = cbos.length;
|
if (len < 1) {
|
return null;
|
}
|
BusinessObject[] bos = new BusinessObject[len];
|
for (int i = 0; i < len; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
BusinessObject[] businessObjects = BOFactoryClient.getBOFactoryService().batchCreateBusinessObject(bos, false, false);
|
for (int i = 0; i < len; i++) {
|
cbos[i].setBusinessObject(businessObjects[i]);
|
}
|
return cbos;
|
}
|
|
/**
|
* 保存升版本后的对象
|
* @param cbo, 生版后的业务对象
|
* @return 保存成功的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject saveRevisionBuinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().createBusinessObject(cbo.getBusinessObject(), true, false);
|
cbo.setBusinessObject(businessObject);
|
return cbo;
|
}
|
|
/**
|
* 批量保存升版本后的对象
|
* @param cbos, 升版本后的业务对象
|
* @return 保存成功后的业务对象
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public ClientBusinessObject[] batchSaveRevisionBuinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
int len = cbos.length;
|
if (len < 1) {
|
return null;
|
}
|
BusinessObject[] bos = new BusinessObject[len];
|
for (int i = 0; i < len; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
BusinessObject[] businessObjects = BOFactoryClient.getBOFactoryService().batchCreateBusinessObject(bos, true, false);
|
for (int i = 0; i < len; i++) {
|
cbos[i].setBusinessObject(businessObjects[i]);
|
}
|
return cbos;
|
}
|
|
/**
|
* 保存升版次后的对象
|
* @param cbo, 升版次的业务对象
|
* @return 保存成功后的业务对象
|
* @throws VCIError
|
*/
|
public ClientBusinessObject saveVersionBuinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
BusinessObject businessObject = BOFactoryClient.getBOFactoryService().createBusinessObject(cbo.getBusinessObject(), false, true);
|
cbo.setBusinessObject(businessObject);
|
return cbo;
|
}
|
|
/**
|
* 批量保存升版次对象
|
* @param cbos, 升版次的业务对象属性
|
* @return 保存成功后的业务对象
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public ClientBusinessObject[] batchSaveVersionBuinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
int len = cbos.length;
|
if (len < 1) {
|
return null;
|
}
|
BusinessObject[] bos = new BusinessObject[len];
|
for (int i = 0; i < len; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
BusinessObject[] businessObjects = BOFactoryClient.getBOFactoryService().batchCreateBusinessObject(bos, false, true);
|
for (int i = 0; i < len; i++) {
|
cbos[i].setBusinessObject(businessObjects[i]);
|
}
|
return cbos;
|
}
|
|
/**
|
* 保存对象以及对象关联的链接
|
*
|
* @param cbos, 需要保存的业务对象
|
* @param clo, 需要保存的链接对象
|
* @return 保存成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean saveCreateBuinessObject(ClientBusinessObject[] cbos, ClientLinkObject clo) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
|
clo.dealLinkObjectNullValue();
|
|
boolean rs = BOFactoryClient.getBOFactoryService().createBusinessObjectWithLink(bos, clo.getLinkObject());
|
return rs;
|
}
|
|
/**
|
* 保存对象以及对象关联的链接,并更新传入对象的ts
|
* @param cbos, 需要保存的业务对象
|
* @param clo, 需要保存的链接对象
|
* @return 保存成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean saveCreateBuinessObjectTS(ClientBusinessObject[] cbos, ClientLinkObject clo) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
|
clo.dealLinkObjectNullValue();
|
|
StringHolder ts = new StringHolder();
|
ts.value = "";
|
|
CreateBusinessObjectWithLinkTSResult res = BOFactoryClient.getBOFactoryService().createBusinessObjectWithLinkTS(bos, clo.getLinkObject());
|
//boolean rs = BOFactoryClient.getBOFactoryService().createBusinessObjectWithLinkTS(bos, clo.getLinkObject(), ts);
|
for (int i = 0; i < cbos.length; i++) {
|
bos[i].ts = res.ts;
|
cbos[i].setBusinessObject(bos[i]);
|
}
|
return res.returnValue;
|
}
|
|
/**
|
* 批量保存BO对象以及LO对象
|
* @param cbos, 需要保存的业务对象数组
|
* @param clos, 需要保存的链接对象数组
|
* @return 保存成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchSaveCreateBuinessObject(ClientBusinessObject[] cbos, ClientLinkObject[] clos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
|
LinkObject[] los = new LinkObject[clos.length];
|
for (int i = 0; i < clos.length; i++) {
|
clos[i].dealLinkObjectNullValue();
|
los[i] = clos[i].getLinkObject();
|
}
|
|
long start = System.currentTimeMillis();
|
System.out.println(System.currentTimeMillis());
|
boolean rs = BOFactoryClient.getBOFactoryService().batchCreateBusinessObjectWithLink(bos, los);
|
long end = System.currentTimeMillis();
|
System.out.println(System.currentTimeMillis());
|
System.out.println("server duration time: " + (end - start));
|
return rs;
|
}
|
|
/**
|
* 批量存储业务对象和链接对象,不对链接对象进行检查,不对业务对象进行日志记录
|
* @param cbos
|
* @param clos
|
* @return
|
* @throws VCIError
|
*/
|
public boolean batchSaveCreateBuinessObjectWithNoCheckNoLog(ClientBusinessObject[] cbos, ClientLinkObject[] clos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
|
LinkObject[] los = new LinkObject[clos.length];
|
for (int i = 0; i < clos.length; i++) {
|
clos[i].dealLinkObjectNullValue();
|
los[i] = clos[i].getLinkObject();
|
}
|
|
boolean rs = BOFactoryClient.getBOFactoryService().batchCreateBOWithLinkNoCheckNoLog(bos, los);
|
return rs;
|
}
|
|
|
/**
|
* 批量创建业务对象、链接对象,同时支持批量删除业务对象、链接对象
|
* @param createCbos, 需要保存的业务对象数组
|
* @param createClos, 需要保存的链接对象数组
|
* @param deleteCbos, 需要删除的业务对象数组
|
* @param deleteClos, 需要删除的链接对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchCreateDeleteBOLO(ClientBusinessObject[] createCbos, ClientLinkObject[] createClos,
|
ClientBusinessObject[] deleteCbos, ClientLinkObject[] deleteClos) throws VCIError {
|
BusinessObject[] createBOs = new BusinessObject[createCbos.length];
|
for (int i = 0; i < createCbos.length; i++) {
|
createCbos[i].dealBusinessObjectNullValue();
|
createBOs[i] = createCbos[i].getBusinessObject();
|
}
|
|
LinkObject[] createLOs = new LinkObject[createClos.length];
|
for (int i = 0; i < createClos.length; i++) {
|
createClos[i].dealLinkObjectNullValue();
|
createLOs[i] = createClos[i].getLinkObject();
|
}
|
|
BusinessObject[] deleteBOs = new BusinessObject[deleteCbos.length];
|
for (int i = 0; i < deleteCbos.length; i++) {
|
deleteCbos[i].dealBusinessObjectNullValue();
|
deleteBOs[i] = deleteCbos[i].getBusinessObject();
|
}
|
|
LinkObject[] deleteLOs = new LinkObject[deleteClos.length];
|
for (int i = 0; i < deleteClos.length; i++) {
|
deleteClos[i].dealLinkObjectNullValue();
|
deleteLOs[i] = deleteClos[i].getLinkObject();
|
}
|
|
|
boolean rs = BOFactoryClient.getBOFactoryService().batchCreateDeleteBOLO(createBOs, createLOs, deleteBOs, deleteLOs);
|
return rs;
|
}
|
|
/**
|
* 批量创建、修改、删除业务对象和链接对象
|
* @param createCbos, 需要创建的业务对象数组
|
* @param createClos, 需要删除的链接对象数组
|
* @param updateCbos, 需要更新的业务对象数组
|
* @param updateClos, 需要更新的链接对象数组
|
* @param deleteCbos, 需要删除的业务对象数组
|
* @param deleteClos, 需要删除的链接对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean batchCUDBOLO(ClientBusinessObject[] createCbos, ClientLinkObject[] createClos,
|
ClientBusinessObject[] updateCbos, ClientLinkObject[] updateClos,
|
ClientBusinessObject[] deleteCbos, ClientLinkObject[] deleteClos) throws VCIError {
|
BusinessObject[] createBOs = new BusinessObject[createCbos.length];
|
for (int i = 0; i < createCbos.length; i++) {
|
createCbos[i].dealBusinessObjectNullValue();
|
createBOs[i] = createCbos[i].getBusinessObject();
|
}
|
|
LinkObject[] createLOs = new LinkObject[createClos.length];
|
for (int i = 0; i < createClos.length; i++) {
|
createClos[i].dealLinkObjectNullValue();
|
createLOs[i] = createClos[i].getLinkObject();
|
}
|
|
BusinessObject[] upateBOs = new BusinessObject[updateCbos.length];
|
for (int i = 0; i < updateCbos.length; i++) {
|
updateCbos[i].dealBusinessObjectNullValue();
|
upateBOs[i] = updateCbos[i].getBusinessObject();
|
}
|
|
LinkObject[] updateLOs = new LinkObject[updateClos.length];
|
for (int i = 0; i < updateClos.length; i++) {
|
updateClos[i].dealLinkObjectNullValue();
|
updateLOs[i] = updateClos[i].getLinkObject();
|
}
|
|
BusinessObject[] deleteBOs = new BusinessObject[deleteCbos.length];
|
for (int i = 0; i < deleteCbos.length; i++) {
|
deleteCbos[i].dealBusinessObjectNullValue();
|
deleteBOs[i] = deleteCbos[i].getBusinessObject();
|
}
|
|
LinkObject[] deleteLOs = new LinkObject[deleteClos.length];
|
for (int i = 0; i < deleteClos.length; i++) {
|
deleteClos[i].dealLinkObjectNullValue();
|
deleteLOs[i] = deleteClos[i].getLinkObject();
|
}
|
|
boolean rs = BOFactoryClient.getBOFactoryService().batchCUDBOLO(createBOs, createLOs, upateBOs, updateLOs, deleteBOs, deleteLOs);
|
return rs;
|
}
|
|
/**
|
* 批量保存BO对象以及LO对象,并更新bo的ts
|
* @param cbos, 需要创建的业务对象数组
|
* @param clos, 需要创建的链接对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchSaveCreateBuinessObjectTS(ClientBusinessObject[] cbos, ClientLinkObject[] clos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
|
LinkObject[] los = new LinkObject[clos.length];
|
for (int i = 0; i < clos.length; i++) {
|
clos[i].dealLinkObjectNullValue();
|
los[i] = clos[i].getLinkObject();
|
}
|
//LongHolder ts = new LongHolder();
|
//ts.value = "";
|
long ts = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
System.out.println(System.currentTimeMillis());
|
BatchCreateBusinessObjectWithLinkTSResult result = BOFactoryClient.getBOFactoryService().batchCreateBusinessObjectWithLinkTS(bos, los);
|
long end = System.currentTimeMillis();
|
System.out.println(System.currentTimeMillis());
|
System.out.println("server duration time: " + (end - start));
|
for (int i = 0; i < cbos.length; i++) {
|
bos[i].ts = ts;
|
cbos[i].setBusinessObject(bos[i]);
|
}
|
return result.returnValue;
|
}
|
|
/**
|
* 更改BO对象的属性信息
|
* @param cbo, 需要更改的业务对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean updateBuinessObject(ClientBusinessObject cbo) throws VCIError {
|
// if (!cbo.getCheckoutBy().equals(LogonApplication.getUserEntityObject().getUserName())) {
|
// throw new VCIError("P0010SOF-00020", new String[0]);
|
// }
|
cbo.dealBusinessObjectNullValue();
|
|
|
return BOFactoryClient.getBOFactoryService().updateBusinessObjectOut(cbo.getBusinessObject());
|
}
|
|
/**
|
* 批量更新BO对象属性
|
* @param cbos,需要更改的业务对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchUpdateBuinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
|
|
// for (int i = 0; i < cbos.length; i++) {
|
// cbos[i].dealBusinessObjectNullValue();
|
// bos[i] = cbos[i].getBusinessObject();
|
// }
|
return BOFactoryClient.getBOFactoryService().batchUpdateBusinessObject(bos);
|
}
|
|
/**
|
* 删除当前版次业务对象
|
* @param cbo,需要删除的业务对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean deleteBuinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
return BOFactoryClient.getBOFactoryService().deleteBusinessObject(cbo.getBusinessObject(), 1);
|
}
|
|
/**
|
* 批量删除当前版次对象
|
* @param cbos,需要删除的业务对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchDeleteBuinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
return BOFactoryClient.getBOFactoryService().batchDeleteBusinessObject(bos, 1);
|
}
|
|
/**
|
* 删除当前版本的对象信息
|
* @param cbo, 需要删除的对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean deleteBuinessObjectRevision(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
return BOFactoryClient.getBOFactoryService().deleteBusinessObject(cbo.getBusinessObject(), 2);
|
}
|
|
/**
|
* 批量删除当前版本对象
|
* @param cbos, 需要删除的对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchDeleteBuinessObjectRevision(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
return BOFactoryClient.getBOFactoryService().batchDeleteBusinessObject(bos, 2);
|
}
|
|
/**
|
* 删除主对象信息
|
* @param cbo, 需要删除的业务对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean deleteBuinessObjectMaster(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
return BOFactoryClient.getBOFactoryService().deleteBusinessObject(cbo.getBusinessObject(), 3);
|
}
|
|
/**
|
* 批量删除主对象
|
* @param cbos, 需要删除的业务对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchDeleteBuinessObjectMaster(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
return BOFactoryClient.getBOFactoryService().batchDeleteBusinessObject(bos, 3);
|
}
|
|
/**
|
* 检入对象
|
* @param cbo, 需要检入的业务对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean checkinBusinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
return BOFactoryClient.getBOFactoryService().checkInBusinessObject(cbo.getBusinessObject());
|
}
|
|
/**
|
* 批量检入对象
|
* @param cbos, 需要检入的业务对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchCheckinBusinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
return BOFactoryClient.getBOFactoryService().batchCheckInBusinessObject(bos);
|
}
|
|
/**
|
* 检出对象
|
* @param cbo, 需要检出的业务对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean checkoutBusinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
return BOFactoryClient.getBOFactoryService().checkoutBusinessObject(cbo.getBusinessObject());
|
}
|
|
/**
|
* 批量检出对象
|
* @param cbos,需要检出的业务对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchCheckoutBusinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
return BOFactoryClient.getBOFactoryService().batchCheckoutBusinessObject(bos);
|
}
|
|
/**
|
* 跃迁对象
|
* @param cbos,需要跃迁的业务对象
|
* @param vo, 跃迁对象的状态信息
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean transferBusinessObject(ClientBusinessObject cbo, TransitionVO vo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
if (vo.transitionVOEvents == null) {
|
vo.transitionVOEvents = new TransitionVOEvent[0];
|
}
|
|
|
return BOFactoryClient.getBOFactoryService().transferBusinessObject(cbo.getBusinessObject(), vo);
|
}
|
|
/**
|
* 跃迁对象,并根据发布状态更改对象是否为最新发布版本的对象
|
* @param cbo, 需要跃迁的业务对象
|
* @param vo, 跃迁的对象状态信息
|
* @param releaseStatus, 发布状态
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean transferBusinessObject(ClientBusinessObject cbo, TransitionVO vo, String releaseStatus) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
if (vo.transitionVOEvents == null) {
|
vo.transitionVOEvents = new TransitionVOEvent[0];
|
}
|
if (releaseStatus == null) {
|
releaseStatus = "";
|
}
|
|
return BOFactoryClient.getBOFactoryService().transferBusinessObjectAndRelease(cbo.getBusinessObject(), vo, releaseStatus);
|
}
|
|
/**
|
* 批量跃迁对象,并根据发布状态更改对象是否为最新发布版本的对象
|
* @param cbos, 需要跃迁的对象数组
|
* @param vos, 需要跃迁的对象状态信息数组
|
* @param releaseStatus, 发布状态数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean batchTransferBusinessObject(ClientBusinessObject[] cbos, TransitionVO[] vos, String[] releaseStatus) throws VCIError {
|
if (cbos.length != vos.length || cbos.length != releaseStatus.length) {
|
return false;
|
}
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
for (int i = 0; i < vos.length; i++) {
|
if (vos[i].transitionVOEvents == null) {
|
vos[i].transitionVOEvents = new TransitionVOEvent[0];
|
}
|
}
|
for (int i = 0; i < releaseStatus.length; i++) {
|
if (releaseStatus[i] == null) {
|
releaseStatus[i] = "";
|
}
|
}
|
|
return BOFactoryClient.getBOFactoryService().batchTransferBusinessObjectAndRelease(bos, vos, releaseStatus);
|
}
|
|
/**
|
* 取消迁出BO对象
|
* @param cbo, 需要撤销迁出的跃迁对象
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean undoCheckOutBusinessObject(ClientBusinessObject cbo) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
return BOFactoryClient.getBOFactoryService().unCheckOutBusinessObject(cbo.getBusinessObject());
|
}
|
|
/**
|
* 批量撤销迁出对象
|
* @param cbos, 需要撤销迁出的跃迁对象数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchUndoCheckOutBusinessObject(ClientBusinessObject[] cbos) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
return BOFactoryClient.getBOFactoryService().batchUnCheckOutBusinessObject(bos);
|
}
|
|
/**
|
* 更改所有者
|
* @param cbos, 业务对象
|
* @param userObject, 用户信息
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
public boolean changeBusinessObjectOwner(ClientBusinessObject cbo, UserObject userObject) throws VCIError {
|
cbo.dealBusinessObjectNullValue();
|
UserInfo userInfo = changeUserObjectToUserInfo(userObject);
|
return BOFactoryClient.getBOFactoryService().changeBusinessObjectOwner(cbo.getBusinessObject(), userInfo);
|
}
|
|
/**
|
* 批量更改所有者
|
* @param cbos,业务对象数组
|
* @param userObjects,用户信息数组
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchChangeBusinessObjectOwner(ClientBusinessObject[] cbos, UserObject[] userObjects) throws VCIError {
|
BusinessObject[] bos = new BusinessObject[cbos.length];
|
for (int i = 0; i < cbos.length; i++) {
|
cbos[i].dealBusinessObjectNullValue();
|
bos[i] = cbos[i].getBusinessObject();
|
}
|
UserInfo[] userInfos = new UserInfo[userObjects.length];
|
for (int i = 0; i < userObjects.length; i++) {
|
userInfos[i] = changeUserObjectToUserInfo(userObjects[i]);
|
}
|
|
return BOFactoryClient.getBOFactoryService().batchChangeBusinessObjectOwner(bos, userInfos);
|
}
|
|
/**
|
* 批量升版本
|
* @param oids, 生版对象的oid
|
* @param btmName, 生版对象对应的业务类型名称
|
* @return 执行成功返回true,保存失败返回false
|
* @throws VCIError
|
*/
|
@MethodTypeAnnotation(getMethodType="batch")
|
public boolean batchRevisonBusinessObject(String[] oids, String btmName) throws VCIError {
|
return BOFactoryClient.getBOFactoryService().batchRevisonBusinessObject(oids, btmName);
|
}
|
|
public UserInfo changeUserObjectToUserInfo(UserObject user) {
|
UserInfo userInfo = new UserInfo();
|
userInfo.id = user.getId() == null ? "" : user.getId();
|
userInfo.userName = user.getUserName() == null ? "" : user.getUserName();
|
userInfo.pwd = user.getPwd() == null ? "" : user.getPwd();
|
userInfo.trueName = user.getTrueName() == null ? "" : user.getTrueName();
|
userInfo.email = user.getEmail() == null ? "" : user.getEmail();
|
userInfo.desc = user.getDesc() == null ? "" : user.getDesc();
|
userInfo.userType = user.getUserType();
|
userInfo.status = user.getStatus();
|
userInfo.createTime = user.getCreateTime();
|
userInfo.createUser = user.getCreateUser() == null ? "" : user.getCreateUser();
|
userInfo.updateTime = user.getUpdateTime();
|
userInfo.updateUser = user.getUpdateUser() == null ? "" : user.getUpdateUser();
|
userInfo.pwdUpdateTime = user.getPwdUpdateTime();
|
userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor();
|
userInfo.secretGrade = user.getSecretGrade() == null ? "" : user.getSecretGrade();
|
userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader();
|
return userInfo;
|
}
|
|
public String[] getClassficationValue(String sql, AttributeValue[] attrVals) throws VCIError {
|
for (int i = 0; i < attrVals.length; i++) {
|
if (attrVals[i].attrVal == null) {
|
attrVals[i].attrVal = "";
|
}
|
}
|
return BOFactoryClient.getBOFactoryService().getClssficationValue(sql, attrVals);
|
}
|
|
public String[][] getSqlQueryResult(String sql, AttributeValue[] attrVals) throws VCIError {
|
for (int i = 0; i < attrVals.length; i++) {
|
if (attrVals[i].attrVal == null) {
|
attrVals[i].attrVal = "";
|
}
|
}
|
return BOFactoryClient.getBOFactoryService().getSqlQueryResult(sql, attrVals);
|
}
|
|
public String[][] getCustomSqlValue(String[] sqls) throws VCIError {
|
if (sqls == null || sqls.length == 0) {
|
return new String[0][0];
|
}
|
return BOFactoryClient.getBOFactoryService().getCustomSqlValue(sqls);
|
}
|
|
public boolean executeUpdateSql(String sql) throws VCIError {
|
if (sql == null || sql.equals("")) {
|
return false;
|
}
|
return BOFactoryClient.getBOFactoryService().executeUpdateSql(sql);
|
}
|
|
public boolean executeUpdateSqls(String[] sqls) throws VCIError {
|
if (sqls == null || sqls.length == 0) {
|
return true;
|
}
|
|
for (int i = 0; i < sqls.length; i++) {
|
if (sqls[i] == null) {
|
sqls[i] = "";
|
}
|
}
|
|
return BOFactoryClient.getBOFactoryService().executeUpdateSqls(sqls);
|
}
|
}
|