314 lines
16 KiB
Java
314 lines
16 KiB
Java
package wenrgise.common.businessdelegate;
|
|
|
|
import java.rmi.RemoteException;
|
|
import java.sql.Timestamp;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import javax.ejb.EJBObject;
|
|
import wenrgise.common.bean.BaseHeaderBean;
|
|
import wenrgise.common.exception.EnrgiseApplicationException;
|
|
import wenrgise.common.exception.EnrgiseSystemException;
|
|
import wenrgise.common.utility.EnrgiseUtil;
|
|
import wenrgise.common.utility.RecordMetaInfo;
|
|
import wenrgise.common.utility.UserInfo;
|
|
import wenrgise.common.vo.BaseDetailVO;
|
|
import wenrgise.common.vo.BaseHeaderVO;
|
|
import wenrgise.common.vo.BaseQueryVO;
|
|
import wenrgise.common.vo.DetailSizeValues;
|
|
import wenrgise.common.vo.ThisPageVO;
|
|
import wenrgise.ejb.common.session.UserSession;
|
|
|
|
public abstract class BaseBD {
|
|
protected Timestamp oWhenDetailPicked = null;
|
|
|
|
protected long lTotalRecordCount = 0L;
|
|
|
|
protected long lStartPosition = 0L;
|
|
|
|
protected long lLastPosition = 0L;
|
|
|
|
protected long lDetailFirstPosition = 0L;
|
|
|
|
protected long lDetailLastPosition = 0L;
|
|
|
|
protected long lTotalDetailRecordCount = 0L;
|
|
|
|
protected UserInfo oUserInfo = null;
|
|
|
|
protected HashMap oMap = new HashMap();
|
|
|
|
protected String moduleName = null;
|
|
|
|
public long getLTotalRecordCount() {
|
|
return this.lTotalRecordCount;
|
|
}
|
|
|
|
public void setLTotalRecordCount(long newLTotalRecordCount) {
|
|
this.lTotalRecordCount = newLTotalRecordCount;
|
|
}
|
|
|
|
public long getLDetailFirstPosition() {
|
|
return this.lDetailFirstPosition;
|
|
}
|
|
|
|
public void setLDetailFirstPosition(long newLDetailFirstPosition) {
|
|
this.lDetailFirstPosition = newLDetailFirstPosition;
|
|
}
|
|
|
|
public long getLDetailLastPosition() {
|
|
return this.lDetailLastPosition;
|
|
}
|
|
|
|
public void setLDetailLastPosition(long newLDetailLastPosition) {
|
|
this.lDetailLastPosition = newLDetailLastPosition;
|
|
}
|
|
|
|
public long getLTotalDetailRecordCount() {
|
|
return this.lTotalDetailRecordCount;
|
|
}
|
|
|
|
public void setLTotalDetailRecordCount(long newLTotalDetailRecordCount) {
|
|
this.lTotalDetailRecordCount = newLTotalDetailRecordCount;
|
|
}
|
|
|
|
public BaseHeaderVO getHeaderRecord(BaseQueryVO oQueryVO, String sFormName, UserSession oUser) throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
BaseHeaderVO oBaseHeaderVO = new BaseHeaderVO();
|
|
try {
|
|
RecordMetaInfo oHeaderMetaInfo = getHeaderMetaImpl(oQueryVO);
|
|
if (oHeaderMetaInfo != null) {
|
|
oBaseHeaderVO.setOWhenPicked(oHeaderMetaInfo.getOWhenPicked());
|
|
oBaseHeaderVO.setTotalCount(oHeaderMetaInfo.getRecordCount());
|
|
} else {
|
|
throw new EnrgiseApplicationException("wenrgise.common.norecordfound", "M");
|
|
}
|
|
oBaseHeaderVO.setMaxHeaderSize(oQueryVO.getMaxHeaderSize());
|
|
if (oHeaderMetaInfo.getRecordCount() == 0L)
|
|
return oBaseHeaderVO;
|
|
oBaseHeaderVO.setPositionRequested(1L);
|
|
oBaseHeaderVO.setCurrentSlot(oBaseHeaderVO.getSlot());
|
|
ArrayList oHeaderList = getHeaderRecordImpl(oQueryVO, oBaseHeaderVO.getHeaderStartPosition(), oBaseHeaderVO.getHeaderLastPosition());
|
|
if (oHeaderList == null)
|
|
throw new EnrgiseApplicationException("wenrgise.common.norecordfound", "M");
|
|
if (oUser == null)
|
|
throw new EnrgiseApplicationException("wenrgise.common.sessiontimedout", "M");
|
|
oBaseHeaderVO.setOHeaderVOTable(oHeaderList);
|
|
oUser.putBaseHeaderVO(sFormName, oBaseHeaderVO);
|
|
oUser.putBaseQueryVO(sFormName, oQueryVO);
|
|
} catch (RemoteException oEx) {
|
|
System.out.println(oEx.getMessage());
|
|
throw new EnrgiseSystemException();
|
|
}
|
|
return oBaseHeaderVO;
|
|
}
|
|
|
|
public BaseHeaderVO getNextHeaderRecord(BaseQueryVO oQueryVO, long lPositionRequested, String sFormName, boolean bForce, UserSession oUser) throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
try {
|
|
BaseHeaderVO oBaseHeaderVO = oUser.getBaseHeaderVO(sFormName);
|
|
oBaseHeaderVO.setPositionRequested(lPositionRequested);
|
|
if (oBaseHeaderVO.getCurrentSlot() == oBaseHeaderVO.getSlot() && !bForce)
|
|
return oBaseHeaderVO;
|
|
ArrayList oHeaderList = getHeaderRecordImpl(oQueryVO, oBaseHeaderVO.getHeaderStartPosition(), oBaseHeaderVO.getHeaderLastPosition());
|
|
oBaseHeaderVO.setCurrentSlot(oBaseHeaderVO.getSlot());
|
|
oBaseHeaderVO.setOHeaderVOTable(oHeaderList);
|
|
oUser.putBaseHeaderVO(sFormName, oBaseHeaderVO);
|
|
return oBaseHeaderVO;
|
|
} catch (RemoteException oEx) {
|
|
System.out.println(oEx.getMessage());
|
|
throw new EnrgiseSystemException();
|
|
}
|
|
}
|
|
|
|
public BaseDetailVO getDetailRecord(String sFormName, String sScreenName, String sPrimaryKey, long lPageRequested, DetailSizeValues oDetailSizeValues, BaseDetailVO oBaseDetailVO, boolean bForce, UserSession oUser) throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
ArrayList oDetailList = null;
|
|
try {
|
|
if (oBaseDetailVO == null || bForce) {
|
|
oBaseDetailVO = new BaseDetailVO();
|
|
oBaseDetailVO.setMaxPage(oDetailSizeValues.getMaxPages());
|
|
oBaseDetailVO.setRecordsPerPage(oDetailSizeValues.getDetailRecordPerPage());
|
|
RecordMetaInfo oRecordMetaInfo = getTotalDetailRecordCountImpl(sPrimaryKey, sScreenName);
|
|
oBaseDetailVO.setTotalDetailRecord(oRecordMetaInfo.getRecordCount());
|
|
oBaseDetailVO.setOWhenPicked(oRecordMetaInfo.getOWhenPicked());
|
|
if (oRecordMetaInfo.getRecordCount() == 0L)
|
|
return oBaseDetailVO;
|
|
}
|
|
long lSlotRequested = oBaseDetailVO.getSlot(lPageRequested);
|
|
if (!bForce) {
|
|
if (oBaseDetailVO.getCurrentPage() == lPageRequested)
|
|
return oBaseDetailVO;
|
|
if (lSlotRequested == oBaseDetailVO.getCurrentSlot()) {
|
|
int iRelativeStartIndex = oBaseDetailVO.getRelativeStart(lPageRequested);
|
|
int iRelativeEndIndex = oBaseDetailVO.getRelativeEnd(lPageRequested);
|
|
EnrgiseUtil.pageArrayCopier(oBaseDetailVO.getOAllPageData(), oBaseDetailVO.getOThisPageData(), iRelativeStartIndex, iRelativeEndIndex - iRelativeStartIndex + 1);
|
|
} else if (oBaseDetailVO.getTotalDetailRecord() % (oDetailSizeValues.getMaxPages() * oDetailSizeValues.getDetailRecordPerPage()) == 0L && oBaseDetailVO.getRowAdded() == 1) {
|
|
oBaseDetailVO.setOAllPageData(new ArrayList());
|
|
oBaseDetailVO.setOThisPageData(new ArrayList());
|
|
} else {
|
|
oBaseDetailVO.setCurrentSlot(lSlotRequested);
|
|
oDetailList = getDetailRecordImpl(sPrimaryKey, sScreenName, oBaseDetailVO.getSlotStartPosition(), oBaseDetailVO.getSlotLastPosition());
|
|
oBaseDetailVO.setOAllPageData(oDetailList);
|
|
int iRelativeStartIndex = oBaseDetailVO.getRelativeStart(lPageRequested);
|
|
int iRelativeEndIndex = oBaseDetailVO.getRelativeEnd(lPageRequested);
|
|
EnrgiseUtil.pageArrayCopier(oBaseDetailVO.getOAllPageData(), oBaseDetailVO.getOThisPageData(), iRelativeStartIndex, iRelativeEndIndex - iRelativeStartIndex + 1);
|
|
}
|
|
} else {
|
|
oBaseDetailVO.setCurrentSlot(lSlotRequested);
|
|
oDetailList = getDetailRecordImpl(sPrimaryKey, sScreenName, oBaseDetailVO.getSlotStartPosition(), oBaseDetailVO.getSlotLastPosition());
|
|
oBaseDetailVO.setOAllPageData(oDetailList);
|
|
int iRelativeStartIndex = oBaseDetailVO.getRelativeStart(lPageRequested);
|
|
int iRelativeEndIndex = oBaseDetailVO.getRelativeEnd(lPageRequested);
|
|
EnrgiseUtil.pageArrayCopier(oBaseDetailVO.getOAllPageData(), oBaseDetailVO.getOThisPageData(), iRelativeStartIndex, iRelativeEndIndex - iRelativeStartIndex + 1);
|
|
}
|
|
oBaseDetailVO.setCurrentPage(lPageRequested);
|
|
oBaseDetailVO.setCurrentSlot(lSlotRequested);
|
|
oUser.putBaseDetailVO(sFormName, sScreenName, oBaseDetailVO);
|
|
return oBaseDetailVO;
|
|
} catch (RemoteException oEx) {
|
|
System.out.println(oEx.getMessage());
|
|
throw new EnrgiseSystemException();
|
|
}
|
|
}
|
|
|
|
public BaseDetailVO getDetailRecord(String sFormName, String sScreenName, BaseQueryVO oBaseQueryVO, long lPageRequested, DetailSizeValues oDetailSizeValues, BaseDetailVO oBaseDetailVO, boolean bForce, UserSession oUser) throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
ArrayList oDetailList = null;
|
|
try {
|
|
if (oBaseDetailVO == null || bForce) {
|
|
oBaseDetailVO = new BaseDetailVO();
|
|
oBaseDetailVO.setMaxPage(oDetailSizeValues.getMaxPages());
|
|
oBaseDetailVO.setRecordsPerPage(oDetailSizeValues.getDetailRecordPerPage());
|
|
RecordMetaInfo oRecordMetaInfo = getTotalDetailRecordCountImpl(oBaseQueryVO, sScreenName);
|
|
oBaseDetailVO.setTotalDetailRecord(oRecordMetaInfo.getRecordCount());
|
|
oBaseDetailVO.setOWhenPicked(oRecordMetaInfo.getOWhenPicked());
|
|
if (oRecordMetaInfo.getRecordCount() == 0L)
|
|
return oBaseDetailVO;
|
|
}
|
|
long lSlotRequested = oBaseDetailVO.getSlot(lPageRequested);
|
|
if (!bForce) {
|
|
if (oBaseDetailVO.getCurrentPage() == lPageRequested)
|
|
return oBaseDetailVO;
|
|
if (lSlotRequested == oBaseDetailVO.getCurrentSlot()) {
|
|
int iRelativeStartIndex = oBaseDetailVO.getRelativeStart(lPageRequested);
|
|
int iRelativeEndIndex = oBaseDetailVO.getRelativeEnd(lPageRequested);
|
|
EnrgiseUtil.pageArrayCopier(oBaseDetailVO.getOAllPageData(), oBaseDetailVO.getOThisPageData(), iRelativeStartIndex, iRelativeEndIndex - iRelativeStartIndex + 1);
|
|
} else if (oBaseDetailVO.getTotalDetailRecord() % (oDetailSizeValues.getMaxPages() * oDetailSizeValues.getDetailRecordPerPage()) == 0L && oBaseDetailVO.getRowAdded() == 1) {
|
|
oBaseDetailVO.setOAllPageData(new ArrayList());
|
|
oBaseDetailVO.setOThisPageData(new ArrayList());
|
|
} else {
|
|
oBaseDetailVO.setCurrentSlot(lSlotRequested);
|
|
oDetailList = getDetailRecordImpl(oBaseQueryVO, sScreenName, oBaseDetailVO.getSlotStartPosition(), oBaseDetailVO.getSlotLastPosition());
|
|
oBaseDetailVO.setOAllPageData(oDetailList);
|
|
int iRelativeStartIndex = oBaseDetailVO.getRelativeStart(lPageRequested);
|
|
int iRelativeEndIndex = oBaseDetailVO.getRelativeEnd(lPageRequested);
|
|
EnrgiseUtil.pageArrayCopier(oBaseDetailVO.getOAllPageData(), oBaseDetailVO.getOThisPageData(), iRelativeStartIndex, iRelativeEndIndex - iRelativeStartIndex + 1);
|
|
}
|
|
} else {
|
|
oBaseDetailVO.setCurrentSlot(lSlotRequested);
|
|
oDetailList = getDetailRecordImpl(oBaseQueryVO, sScreenName, oBaseDetailVO.getSlotStartPosition(), oBaseDetailVO.getSlotLastPosition());
|
|
oBaseDetailVO.setOAllPageData(oDetailList);
|
|
int iRelativeStartIndex = oBaseDetailVO.getRelativeStart(lPageRequested);
|
|
int iRelativeEndIndex = oBaseDetailVO.getRelativeEnd(lPageRequested);
|
|
EnrgiseUtil.pageArrayCopier(oBaseDetailVO.getOAllPageData(), oBaseDetailVO.getOThisPageData(), iRelativeStartIndex, iRelativeEndIndex - iRelativeStartIndex + 1);
|
|
}
|
|
oBaseDetailVO.setCurrentPage(lPageRequested);
|
|
oBaseDetailVO.setCurrentSlot(lSlotRequested);
|
|
oUser.putBaseDetailVO(sFormName, sScreenName, oBaseDetailVO);
|
|
return oBaseDetailVO;
|
|
} catch (RemoteException oEx) {
|
|
System.out.println(oEx.getMessage());
|
|
throw new EnrgiseSystemException();
|
|
}
|
|
}
|
|
|
|
public Map getDisabledFields(ThisPageVO oThisPageVO) throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
return getDisabledFieldsImpl(oThisPageVO);
|
|
}
|
|
|
|
public void onLoadAction(ThisPageVO oThisPageVO) throws EnrgiseApplicationException, EnrgiseSystemException {}
|
|
|
|
public String saveRecord(BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList oDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException {
|
|
return saveImpl(oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, oDetailBeanArray, bDetailDataChanged, oDetailPicked);
|
|
}
|
|
|
|
public abstract ArrayList getHeaderRecordImpl(BaseQueryVO paramBaseQueryVO, long paramLong1, long paramLong2) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public abstract Map getDisabledFieldsImpl(ThisPageVO paramThisPageVO) throws EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public abstract RecordMetaInfo getHeaderMetaImpl(BaseQueryVO paramBaseQueryVO) throws EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public abstract RecordMetaInfo getTotalDetailRecordCountImpl(String paramString1, String paramString2) throws EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public abstract ArrayList getDetailRecordImpl(String paramString1, String paramString2, long paramLong1, long paramLong2) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public RecordMetaInfo getTotalDetailRecordCountImpl(BaseQueryVO oBaseQueryVO, String sScreenName) throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
return null;
|
|
}
|
|
|
|
public ArrayList getDetailRecordImpl(BaseQueryVO oBaseQueryVO, String sScreenName, long lAbsoluteStart, long lAbsoluteEnd) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException {
|
|
return null;
|
|
}
|
|
|
|
public abstract boolean updateHeaderRecordImpl(BaseHeaderBean paramBaseHeaderBean) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public abstract String saveImpl(BaseHeaderBean paramBaseHeaderBean, Timestamp paramTimestamp1, String paramString1, String paramString2, boolean paramBoolean1, ArrayList paramArrayList, boolean paramBoolean2, Timestamp paramTimestamp2) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public abstract String getInsertDataImpl(BaseQueryVO paramBaseQueryVO) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public long getLStartPosition() {
|
|
return this.lStartPosition;
|
|
}
|
|
|
|
public void setLStartPosition(long newLStartPosition) {
|
|
this.lStartPosition = newLStartPosition;
|
|
}
|
|
|
|
public long getLLastPosition() {
|
|
return this.lLastPosition;
|
|
}
|
|
|
|
public void setLLastPosition(long newLLastPosition) {
|
|
this.lLastPosition = newLLastPosition;
|
|
}
|
|
|
|
public UserInfo getOUserInfo() {
|
|
return this.oUserInfo;
|
|
}
|
|
|
|
public void setOUserInfo(UserInfo newOUserInfo) {
|
|
this.oUserInfo = newOUserInfo;
|
|
}
|
|
|
|
public EJBObject getModuleFacade() {
|
|
return (EJBObject)this.oMap.get(this.moduleName);
|
|
}
|
|
|
|
public EJBObject getModuleFacade(String key) {
|
|
return (EJBObject)this.oMap.get(key);
|
|
}
|
|
|
|
public void setModuleFacade(HashMap oMap) {
|
|
this.oMap = oMap;
|
|
}
|
|
|
|
public HashMap getComboDetails() throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
return null;
|
|
}
|
|
|
|
public HashMap getDetailComboDetails() throws EnrgiseApplicationException, EnrgiseSystemException {
|
|
return null;
|
|
}
|
|
|
|
public String submit(String sButtonName, BaseHeaderBean oBaseHeaderBean, Timestamp oWhenPicked, String sScreenName, String sScreenMode, boolean bHeaderDataChanged, ArrayList oDetailBeanArray, boolean bDetailDataChanged, Timestamp oDetailPicked) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException {
|
|
return submitImpl(sButtonName, oBaseHeaderBean, oWhenPicked, sScreenName, sScreenMode, bHeaderDataChanged, oDetailBeanArray, bDetailDataChanged, oDetailPicked);
|
|
}
|
|
|
|
public abstract String submitImpl(String paramString1, BaseHeaderBean paramBaseHeaderBean, Timestamp paramTimestamp1, String paramString2, String paramString3, boolean paramBoolean1, ArrayList paramArrayList, boolean paramBoolean2, Timestamp paramTimestamp2) throws RemoteException, EnrgiseApplicationException, EnrgiseSystemException;
|
|
|
|
public String getModuleName() {
|
|
return this.moduleName;
|
|
}
|
|
|
|
public void setModuleName(String newModuleName) {
|
|
this.moduleName = newModuleName;
|
|
}
|
|
}
|