first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View File

@@ -0,0 +1,158 @@
package wenrgise.workflow.impl;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.logging.Logger;
import javax.ejb.CreateException;
import wenrgise.common.exception.EnrgiseApplicationException;
import wenrgise.common.exception.EnrgiseSystemException;
import wenrgise.common.utility.EnrgiseUtil;
import wenrgise.common.utility.UserInfo;
import wenrgise.workflow.bean.WflDocMstAttrDtlBean;
import wenrgise.workflow.bean.WflDtlDocTypeDtlBean;
import wenrgise.workflow.core.WflDocumentInfo;
import wenrgise.workflow.core.WflResource;
import wenrgise.workflow.core.WflStatus;
import wenrgise.workflow.core.WorkFlow;
import wenrgise.workflow.core.impl.WflStatusImpl;
import wenrgise.workflow.ejb.business.WflDocMstBO;
import wenrgise.workflow.ejb.business.WorkFlowCommonBO;
import wenrgise.workflow.exception.AtributesNotDefinedException;
import wenrgise.workflow.utility.AttributesHandler;
import wenrgise.workflow.utility.ConditionChecker;
import wenrgise.workflow.utility.Node;
import wenrgise.workflow.utility.RouteHandler;
import wenrgise.workflow.utility.WorkFlowUtil;
public class WorkFlowImpl implements WorkFlow {
public static final Logger log = Logger.getLogger("wenrgise.workflow.impl.LeaveWorkFlow");
public boolean canDo(WflDocumentInfo wflDocInfo) throws EnrgiseApplicationException, EnrgiseSystemException {
if (EnrgiseUtil.checkString(wflDocInfo.getInitiatedFlag()))
if (!wflDocInfo.getInitiatedFlag().equalsIgnoreCase("Initiated"))
if (!EnrgiseUtil.checkString(wflDocInfo.getWorkListId()))
return false;
return true;
}
public WflStatus start(WflDocumentInfo wflDocInfo) {
try {
log.severe("Log Started");
log.severe(String.valueOf("Creator ").concat(String.valueOf(wflDocInfo.getCreator().getEmployeeId())));
log.severe(String.valueOf("Document Id ").concat(String.valueOf(wflDocInfo.getDocumentId())));
log.severe(String.valueOf("Document Number ").concat(String.valueOf(wflDocInfo.getDocumentNumber())));
log.severe(String.valueOf("Document Number ").concat(String.valueOf(wflDocInfo.getDocumentNumber())));
log.severe(String.valueOf(" Requester Id ").concat(String.valueOf(wflDocInfo.getRequester().getEmployeeId())));
log.severe("start1");
RouteHandler routeHandl = new RouteHandler();
log.severe("start2");
UserInfo oUserInfo = new UserInfo();
oUserInfo.setUserId(wflDocInfo.getRequester().getUserId());
oUserInfo.setSiteId(wflDocInfo.getRequester().getLoginSite().getSiteId());
oUserInfo.setUserSystemId(wflDocInfo.getRequester().getEmployeeId());
oUserInfo.setSiteName(wflDocInfo.getRequester().getLoginSite().getSiteName());
log.severe("start3");
String activityCode = WorkFlowUtil.getActivityCode(wflDocInfo.getRequesterAction());
log.severe("start4");
log.severe(String.valueOf("The WorkList Id Is:-").concat(String.valueOf(wflDocInfo.getWorkListId())));
log.severe(String.valueOf("The InitiatedFlag Is:-").concat(String.valueOf(wflDocInfo.getInitiatedFlag())));
if (EnrgiseUtil.checkString(wflDocInfo.getInitiatedFlag())) {
if (wflDocInfo.getInitiatedFlag().equalsIgnoreCase("Initiated")) {
log.severe("start5");
AttributesHandler attrChecker = new AttributesHandler();
if (!attrChecker.checkAttributes(wflDocInfo, oUserInfo))
throw new AtributesNotDefinedException();
log.severe("Checking Condition");
ConditionChecker cc = new ConditionChecker();
ArrayList oList = WorkFlowUtil.getDetailDocs(wflDocInfo.getDocumentTypeId(), oUserInfo);
WflDocMstBO oWflDocMstBO = new WflDocMstBO();
oWflDocMstBO.setOUserInfo(oUserInfo);
long oDocAttrCount = oWflDocMstBO.getWflDocTypeAttrDtlMetaInfo(wflDocInfo.getDocumentTypeId()).getRecordCount();
ArrayList arylstDocType = oWflDocMstBO.getWflDocTypeAttrDtlInfo(wflDocInfo.getDocumentTypeId(), 1L, oDocAttrCount);
Iterator oIt1 = arylstDocType.iterator();
HashMap oDocAttrTypeMap = new HashMap();
while (oIt1.hasNext()) {
WflDocMstAttrDtlBean oWflDocMstAttrDtlBean = oIt1.next();
oDocAttrTypeMap.put(oWflDocMstAttrDtlBean.getTxtAttrName(), oWflDocMstAttrDtlBean.getTxtType());
}
String dtlDocId = null;
Iterator iterator = oList.iterator();
while (iterator.hasNext()) {
WflDtlDocTypeDtlBean oWflDtlDocTypeDtlBean = iterator.next();
if (cc.checkCondition(oWflDtlDocTypeDtlBean.getTxtExp(), wflDocInfo.getDocumentAttributes(), oDocAttrTypeMap) > false) {
dtlDocId = oWflDtlDocTypeDtlBean.getDetailId();
break;
}
}
log.severe("Checking Condition Finished");
if (dtlDocId == null)
throw new EnrgiseApplicationException("wenrgise.PumMaintainPI.header.UniqueKeyConstraint", "E");
Node node = new Node(String.valueOf(1), String.valueOf(0));
routeHandl.setNodeInfo(node);
WorkFlowCommonBO oWorkFlowCommonBO = new WorkFlowCommonBO();
routeHandl.setActivityId(wflDocInfo.getRequesterAction());
routeHandl.setDtlDocId(dtlDocId);
routeHandl.populateData();
}
} else {
log.severe("Not Initiated");
routeHandl.setRouteDtlId(WorkFlowUtil.getRouteDtlId(wflDocInfo));
routeHandl.populateData();
}
wflDocInfo.getCreator().setRouteDtlId(routeHandl.getRouteDtlId());
if (!EnrgiseUtil.checkString(wflDocInfo.getInitiatedFlag()))
WorkFlowUtil.updateWorkList("U", wflDocInfo.getRequester(), wflDocInfo);
log.severe("start6");
WflStatusImpl wflStatusImpl = new WflStatusImpl();
ArrayList oNextApprover = routeHandl.findNextApprover(wflDocInfo);
log.severe("start7");
Iterator oIt = oNextApprover.iterator();
boolean notifFlagForFinalAppr = false;
if (oIt.hasNext()) {
while (oIt.hasNext()) {
WflResource wflResource = oIt.next();
log.severe(String.valueOf("Approver ").concat(String.valueOf(wflResource.getEmployeeId())));
if (null != wflResource) {
log.severe("start8");
WorkFlowUtil.updateWorkList("N", wflResource, wflDocInfo);
if (routeHandl.getNotifFlag().equalsIgnoreCase("Y")) {
wflStatusImpl.setStatus("Notification");
continue;
}
wflStatusImpl.assign(wflResource);
wflStatusImpl.setStatus("Pending");
log.severe("start9");
}
}
} else if (activityCode.equalsIgnoreCase("Reject")) {
wflStatusImpl.setStatus("Rejected");
} else {
wflStatusImpl.setStatus("FinallyApproved");
}
if (activityCode.equalsIgnoreCase("Reject"))
wflStatusImpl.setStatus("Rejected");
log.severe("start10");
System.out.println(String.valueOf("The Status is:").concat(String.valueOf(wflStatusImpl.getStatus())));
System.out.println(String.valueOf("The Error Code is:").concat(String.valueOf(wflStatusImpl.getErrCode())));
System.out.println(String.valueOf("The Error Message is:").concat(String.valueOf(wflStatusImpl.getErrMsg())));
return (WflStatus)wflStatusImpl;
} catch (EnrgiseSystemException oSx) {
log.severe(String.valueOf(String.valueOf(oSx.getClass().getName()).concat(String.valueOf(" "))).concat(String.valueOf(oSx.getMessage())));
return null;
} catch (EnrgiseApplicationException oAx) {
log.severe(String.valueOf(String.valueOf(oAx.getClass().getName()).concat(String.valueOf(" "))).concat(String.valueOf(oAx.getMessage())));
return null;
} catch (CreateException oCx) {
log.severe(String.valueOf(String.valueOf(oCx.getClass().getName()).concat(String.valueOf(" "))).concat(String.valueOf(oCx.getMessage())));
return null;
} catch (RemoteException oRx) {
log.severe(String.valueOf(String.valueOf(oRx.getClass().getName()).concat(String.valueOf(" "))).concat(String.valueOf(oRx.getMessage())));
return null;
} catch (Exception oEx) {
log.severe(String.valueOf(String.valueOf(oEx.getClass().getName()).concat(String.valueOf(" "))).concat(String.valueOf(oEx.getMessage())));
return null;
}
}
}