first commit
This commit is contained in:
@@ -0,0 +1,189 @@
|
||||
package WEB-INF.classes.wenrgise.hrms.webtier.action;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Stack;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.struts.action.ActionForm;
|
||||
import org.apache.struts.action.ActionForward;
|
||||
import org.apache.struts.action.ActionMapping;
|
||||
import wenrgise.common.exception.EnrgiseApplicationException;
|
||||
import wenrgise.common.exception.EnrgiseSystemException;
|
||||
import wenrgise.common.utility.EnrgiseUtil;
|
||||
import wenrgise.common.webtier.action.BaseAction;
|
||||
import wenrgise.hrms.businessdelegate.HrmGenEligRuleBD;
|
||||
import wenrgise.hrms.webtier.form.HrmGenEligRuleForm;
|
||||
|
||||
public class HrmGenEligRuleAction extends BaseAction {
|
||||
private HashMap mapEligClass;
|
||||
|
||||
private Stack stkFormula = null;
|
||||
|
||||
private Map mapAlias = new HashMap();
|
||||
|
||||
private int iAlias = 1;
|
||||
|
||||
private boolean bOrFlag = false;
|
||||
|
||||
public ActionForward executeImpl(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws EnrgiseApplicationException, EnrgiseSystemException, IllegalAccessException, InvocationTargetException, InstantiationException, ClassNotFoundException, ServletException, IOException {
|
||||
HrmGenEligRuleForm oEligForm = (HrmGenEligRuleForm)form;
|
||||
if (oEligForm.getHidAction() == null)
|
||||
oEligForm.setHidAction("classinfo");
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("classinfo"))
|
||||
getEligClass(oEligForm);
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("and") || oEligForm.getHidAction().equalsIgnoreCase("or"))
|
||||
setFormula(oEligForm);
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("show")) {
|
||||
if (!oEligForm.getValues().equals(""))
|
||||
setFormula(oEligForm);
|
||||
generateSql(oEligForm);
|
||||
}
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("refresh")) {
|
||||
oEligForm.setHidAction("");
|
||||
oEligForm.setHidDocumentCodeId("");
|
||||
oEligForm.setHidFormula("");
|
||||
oEligForm.setHidValuesId("");
|
||||
oEligForm.setDocumentCode("");
|
||||
oEligForm.setDocumentType("");
|
||||
oEligForm.setFormula("");
|
||||
oEligForm.setValues("");
|
||||
oEligForm.setEligSql("");
|
||||
oEligForm.setEligibilityClass("");
|
||||
oEligForm.setDisabeligibilityClass("true");
|
||||
oEligForm.setDisabdocumentType("false");
|
||||
oEligForm.setDisaboperator("false");
|
||||
oEligForm.setDisabbutValues("false");
|
||||
oEligForm.setHeaderDataChanged(false);
|
||||
}
|
||||
return mapping.findForward("success");
|
||||
}
|
||||
|
||||
private void getEligClass(HrmGenEligRuleForm oEligForm) throws EnrgiseApplicationException, EnrgiseSystemException {
|
||||
HrmGenEligRuleBD oEligBD = new HrmGenEligRuleBD();
|
||||
this.mapEligClass = oEligBD.getEligClassInfo();
|
||||
oEligForm.setEligibilityClasses(this.mapEligClass);
|
||||
oEligForm.setTxtHidSubmitFirst("false");
|
||||
}
|
||||
|
||||
private void setFormula(HrmGenEligRuleForm oEligForm) throws EnrgiseApplicationException, EnrgiseSystemException {
|
||||
StringBuffer sNewFormula = new StringBuffer();
|
||||
StringBuffer sNewHidFormula = new StringBuffer();
|
||||
if (!EnrgiseUtil.checkString(oEligForm.getEligibilityClass()))
|
||||
return;
|
||||
if (!EnrgiseUtil.checkString(oEligForm.getOperator()))
|
||||
return;
|
||||
if (!EnrgiseUtil.checkString(oEligForm.getValues()))
|
||||
return;
|
||||
if (!this.mapAlias.containsKey(oEligForm.getEligibilityClass()))
|
||||
this.mapAlias.put(oEligForm.getEligibilityClass(), new String(String.valueOf("tab").concat(String.valueOf(this.iAlias++))));
|
||||
StringBuffer sFormula = new StringBuffer(oEligForm.getFormula());
|
||||
StringBuffer sHidFormula = new StringBuffer(oEligForm.getHidFormula());
|
||||
if (sFormula.toString().equalsIgnoreCase("")) {
|
||||
sNewFormula.append("( ");
|
||||
sNewHidFormula.append("( ");
|
||||
}
|
||||
sNewFormula.append(this.mapEligClass.get(oEligForm.getEligibilityClass()).toString());
|
||||
sNewHidFormula.append(String.valueOf(this.mapAlias.get(oEligForm.getEligibilityClass()).toString()).concat(String.valueOf(".CLS_DT_ID")));
|
||||
sNewFormula.append(" ");
|
||||
sNewHidFormula.append(" ");
|
||||
sNewFormula.append(oEligForm.getOperator());
|
||||
sNewHidFormula.append(oEligForm.getOperator());
|
||||
sNewFormula.append(" ");
|
||||
sNewHidFormula.append(" ");
|
||||
sNewFormula.append("( ");
|
||||
sNewHidFormula.append("( ");
|
||||
sNewFormula.append(oEligForm.getValues());
|
||||
sNewHidFormula.append(oEligForm.getHidValuesId());
|
||||
sNewFormula.append(" )");
|
||||
sNewHidFormula.append(" )");
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("and")) {
|
||||
sNewFormula.append(" and ");
|
||||
sNewHidFormula.append(" and ");
|
||||
oEligForm.setDisabdocumentType("true");
|
||||
oEligForm.setDisabbutDocumentCode("true");
|
||||
}
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("or")) {
|
||||
sNewFormula.append(" ) ");
|
||||
sNewHidFormula.append(" ) ");
|
||||
sNewFormula.append(" or ( ");
|
||||
sNewHidFormula.append(" or ( ");
|
||||
oEligForm.setDisabdocumentType("true");
|
||||
oEligForm.setDisabbutDocumentCode("true");
|
||||
}
|
||||
if (oEligForm.getHidAction().equalsIgnoreCase("show")) {
|
||||
sNewFormula.append(" ) ");
|
||||
sNewHidFormula.append(" ) ");
|
||||
sFormula.append(sNewFormula);
|
||||
sHidFormula.append(sNewHidFormula);
|
||||
oEligForm.setEligibilityClass("");
|
||||
oEligForm.setOperator("");
|
||||
oEligForm.setValues("");
|
||||
oEligForm.setFormula(sFormula.toString());
|
||||
oEligForm.setHidFormula(unescape(sHidFormula.toString()));
|
||||
oEligForm.setEligibilityClass("");
|
||||
oEligForm.setDisaboperator("true");
|
||||
oEligForm.setDisabeligibilityClass("true");
|
||||
oEligForm.setDisabvalues("true");
|
||||
oEligForm.setDisabbutOr("true");
|
||||
oEligForm.setDisabbutAnd("true");
|
||||
oEligForm.setDisabbutShowFormula("true");
|
||||
oEligForm.setDisabbutValues("true");
|
||||
oEligForm.setDisabbutDocumentCode("true");
|
||||
oEligForm.setDisabdocumentType("true");
|
||||
oEligForm.setDisabbutDocumentCode("true");
|
||||
} else {
|
||||
sFormula.append(sNewFormula);
|
||||
sHidFormula.append(sNewHidFormula);
|
||||
oEligForm.setEligibilityClass("");
|
||||
oEligForm.setOperator("");
|
||||
oEligForm.setValues("");
|
||||
oEligForm.setFormula(sFormula.toString());
|
||||
oEligForm.setHidFormula(sHidFormula.toString());
|
||||
oEligForm.setEligibilityClass("");
|
||||
}
|
||||
}
|
||||
|
||||
private void generateSql(HrmGenEligRuleForm oEligForm) {
|
||||
StringBuffer sbEligSql = new StringBuffer();
|
||||
StringBuffer sbHidFormula = new StringBuffer(oEligForm.getHidFormula());
|
||||
StringBuffer sbFormula = new StringBuffer(oEligForm.getFormula());
|
||||
sbEligSql.append("select distinct * from ");
|
||||
for (int iAlias = 1; iAlias <= this.mapAlias.size(); iAlias++) {
|
||||
if (iAlias == 1) {
|
||||
sbEligSql.append("HRM_EMP_CLASS_MAP tab");
|
||||
} else {
|
||||
sbEligSql.append(", HRM_EMP_CLASS_MAP tab");
|
||||
}
|
||||
sbEligSql.append(iAlias);
|
||||
}
|
||||
sbEligSql.append(" where ");
|
||||
if (sbHidFormula.toString().endsWith("or ( ")) {
|
||||
sbHidFormula.setLength(sbHidFormula.length() - 5);
|
||||
sbFormula.setLength(sbFormula.length() - 5);
|
||||
}
|
||||
if (sbHidFormula.toString().endsWith("and ")) {
|
||||
sbHidFormula.setLength(sbHidFormula.length() - 4);
|
||||
sbFormula.setLength(sbFormula.length() - 4);
|
||||
}
|
||||
sbEligSql.append(sbHidFormula);
|
||||
if (this.bOrFlag)
|
||||
sbEligSql.append(" )");
|
||||
sbEligSql.append("and tab1.E_PER_DTL_ID = ?");
|
||||
oEligForm.setHidFormula(sbHidFormula.toString());
|
||||
oEligForm.setFormula(sbFormula.toString());
|
||||
oEligForm.setEligSql(sbEligSql.toString());
|
||||
System.out.println(sbEligSql.toString());
|
||||
}
|
||||
|
||||
private String unescape(String sSQL) {
|
||||
if (sSQL.indexOf(">") != -1)
|
||||
sSQL.replaceAll(">", ">");
|
||||
if (sSQL.indexOf("<") != -1)
|
||||
sSQL.replaceAll("<", "<");
|
||||
return sSQL;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user