用友NC合同编码自定义
生活随笔
收集整理的這篇文章主要介紹了
用友NC合同编码自定义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求:
合同編碼邏輯:
地區簡寫+00+人員編碼+兩位數的流水
GZ+00+code+num(01)
分析:
兩個地方會涉及到新增簽訂合同的地方【合同處理中心】和【合同簽訂】
新增時需要系統帶出合同編碼,編碼規則:地區簡寫+00+人員編碼+兩位數的流水號
流水號是以個人簽訂合同次數作為流水,首次簽訂為01
代碼邏輯:系統原有的ZD編碼方式保留,新建邏輯類供調用
代碼:
合同新增規則類QueryMakeBillCode.java:
package nc.ui.hrcm.utils;import java.util.*;import nc.bs.framework.common.NCLocator; import nc.bs.logging.Logger; import nc.itf.uap.IUAPQueryBS; import nc.jdbc.framework.processor.MapListProcessor; import nc.vo.pub.BusinessException;public class QueryMakeBillCode {private IUAPQueryBS iUapQueryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);String maxCode = null;public String getMaxCode(String tablename, String zdCodeBefore,String pk_org) throws BusinessException {String sql = "";int length = 10;if(tablename.equalsIgnoreCase("hi_psndoc_ctrt"))sql = (new StringBuilder()).append("select contractnum maxcontractnum from ").append(tablename).append(" where contractnum like '").append(zdCodeBefore).append("%' and length(contractnum) = ").append(length).append(" order by contractnum desc").toString();elsesql = (new StringBuilder()).append("select contcode maxcontractnum from ").append(tablename).append(" where contcode like '").append(zdCodeBefore).append("%' and length(contcode) = ").append(length).append(" order by contcode desc").toString();List listResult= (List) iUapQueryBS.executeQuery(sql.toString(), new MapListProcessor());if (listResult != null) {for(Iterator i$ = listResult.iterator(); i$.hasNext();){HashMap map = (HashMap)i$.next();String contcode = (String)map.get("maxcontractnum");try{return contcode;}catch(NumberFormatException e){Logger.error(e);}}}return null;}public String getNextCode(String codeStr,String maxCode){if (maxCode == null) {maxCode = (codeStr + "01");} else {maxCode= (maxCode.substring(0, 8) + getNextFlowNumBuCur(maxCode.substring(8)));}return maxCode;}public String getCodeStr(String pk_org,String psncode) {String zdCodeBefore=""+psncode;if ("00016H10000000000BH1".equals(pk_org)) {zdCodeBefore="GZ00"+psncode;}else if (pk_org=="00016H10000000000BHZ") {zdCodeBefore="SZ00"+psncode;}else if (pk_org=="00016H10000000000BGG") {zdCodeBefore="BJ00"+psncode;}else if (pk_org=="00016H10000000000BGQ") {zdCodeBefore="DG00"+psncode;}else if (pk_org=="00016H10000000000BHK") {zdCodeBefore="SH00"+psncode;}else if (pk_org=="00016H10000000000BHN") {zdCodeBefore="SU00"+psncode;}return zdCodeBefore;}private String getNextFlowNumBuCur(String substring) {int cur = Integer.parseInt(substring);cur++;String str = "";if (cur < 10) {str = "0";} return str + cur;} }合同編碼調用顯示類,即合同新增類:合同簽訂類PsnWizardStepListener
package nc.ui.hrcm.make.wizard.listener;import java.util.HashMap; import java.util.Hashtable; import java.util.List; import nc.bs.framework.common.NCLocator; import nc.bs.logging.Logger; import nc.hr.utils.BillCodeHelper; import nc.hr.utils.HRCMTermUnitUtils; import nc.hr.utils.PubEnv; import nc.hr.utils.ResHelper; import nc.itf.hr.frame.IHrBillCode; import nc.itf.hrcm.IQueryMakeService; import nc.itf.hrcm.ITempletBatchQueryService; import nc.pub.billcode.vo.BillCodeContext; import nc.pub.tools.HRCMUtils; import nc.pub.tools.HiCacheUtils; import nc.ui.bd.ref.AbstractRefModel; import nc.ui.hrcm.make.CMTemplateContainer; import nc.ui.hrcm.make.MakeAppModelService; import nc.ui.hrcm.make.factory.CMMethodFactory; import nc.ui.hrcm.make.factory.WizardFirstInterface; import nc.ui.hrcm.make.model.MakeAppModelDataManager; import nc.ui.hrcm.make.model.MakeBillManageModel; import nc.ui.hrcm.make.view.MakeUtil; import nc.ui.hrcm.make.view.ShereBillForm; import nc.ui.hrcm.make.wizard.panel.CtrtBillForm; import nc.ui.hrcm.processor.CardCheckProcessorImpl; import nc.ui.hrcm.utils.DefauteCode; import nc.ui.hrcm.utils.QueryMakeBillCode; import nc.ui.pub.beans.UIRefPane; import nc.ui.pub.beans.wizard.IWizardStepListener; import nc.ui.pub.beans.wizard.WizardModel; import nc.ui.pub.beans.wizard.WizardStep; import nc.ui.pub.beans.wizard.WizardStepEvent; import nc.ui.pub.bill.BillCardPanel; import nc.ui.pub.bill.BillItem; import nc.ui.uif2.model.AbstractAppModel; import nc.vo.hi.psndoc.CtrtVO; import nc.vo.hrcm.contopinion.ContopinionVO; import nc.vo.hrcm.share.PsnSelListVO; import nc.vo.pub.BusinessException; import nc.vo.pub.IAttributeMeta; import nc.vo.pub.IVOMeta; import nc.vo.pub.SuperVO; import nc.vo.pub.lang.UFBoolean; import nc.vo.pub.lang.UFDate; import nc.vo.pub.lang.UFDateTime; import nc.vo.pub.lang.UFLiteralDate; import nc.vo.uif2.LoginContext; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils;public class PsnWizardStepListenerimplements IWizardStepListener {private ITempletBatchQueryService templetBatchQueryService;public void stepActived(WizardStepEvent event){WizardStep prestep = event.getPreStep();if (prestep == null) {return;}WizardStep step0 = event.getStep();WizardModel model = step0.getModel();WizardStep step1 = (WizardStep)model.getSteps().get(model.getCurStepIndex() + 1);CtrtBillForm form = (CtrtBillForm)step1.getComp();AbstractAppModel outMode = form.getMode();MakeBillManageModel makeMode = (MakeBillManageModel)outMode;makeMode.rollBackCode();}private SuperVO[] getValidateVOs(PsnSelListVO[] selPsnInf){String[] psndocPks = new String[selPsnInf.length];for (int i = 0; i < selPsnInf.length; i++) {psndocPks[i] = selPsnInf[i].getPk_psndoc();}SuperVO[] vos = null;try{vos = ((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).getValidateVOsByPsndocPks(psndocPks);}catch (BusinessException e){Logger.error(e);}return vos;}public void stepDisactived(WizardStepEvent event){WizardStep step0 = event.getStep();WizardModel model = step0.getModel();WizardStep step1 = (WizardStep)model.getSteps().get(model.getCurStepIndex() + 1);PsnSelListVO[] selPsnInf = (PsnSelListVO[])step0.getAttr("psnSelectList");step1.putAttr("psnList", selPsnInf);SuperVO[] validateVOs = getValidateVOs(selPsnInf);step1.putAttr("validateVOs", validateVOs);CtrtBillForm form = (CtrtBillForm)step1.getComp();AbstractAppModel outMode = form.getMode();MakeBillManageModel makeMode = (MakeBillManageModel)outMode;ShereBillForm billForm = form.getBillForm();Object value = billForm.getValue();BillCardPanel cardPanel = billForm.getBillCardPanel();PsnSelListVO firstVO = selPsnInf[0];AbstractAppModel appModle = billForm.getModel();String modeName = "hi_psndoc_ctrt";if ((appModle instanceof MakeBillManageModel)) {modeName = ((MakeBillManageModel)appModle).getModeName();}LoginContext context = appModle.getContext();String pk_org = context.getPk_org();String pk_group = context.getPk_group();String nodecode = context.getNodeCode();UFDateTime date = PubEnv.getServerTime();UFLiteralDate literalDate = new UFLiteralDate(date.getDate().toStdString());Integer conttype = Integer.valueOf(HRCMUtils.getNodeCodeTermType(appModle.getContext().getNodeCode()));ContopinionVO[] contopinionVOs = (ContopinionVO[])step0.getAttr("contopinionVO");setContCode((SuperVO)value, selPsnInf, modeName, context, cardPanel, makeMode);PsnSelListVO pslvo = new PsnSelListVO();if (!ArrayUtils.isEmpty(selPsnInf)){StringBuffer code = new StringBuffer();StringBuffer name = new StringBuffer();StringBuffer conractnum = new StringBuffer();for (int i = 0; i < selPsnInf.length; i++){if (i == 3){code.append("...");name.append("...");conractnum.append("...");break;}code.append(",").append(selPsnInf[i].getPsncode());name.append(",").append(selPsnInf[i].getPsnname());conractnum.append(",").append(selPsnInf[i].getVcontractnum());}pslvo.setPsncode(code.toString().substring(1));pslvo.setPsnname(name.toString().substring(1));pslvo.setVcontractnum(conractnum.toString().substring(1));}if (("60110extend".equals(nodecode)) || ("60110change".equals(nodecode)) || ("60110release".equals(nodecode)) || ("60110finish".equals(nodecode))){CMTemplateContainer template = (CMTemplateContainer)form.getBillForm().getTemplateContainer();HashMap<String, Class<?>> protocolNodeKeyToClassMap = template.getProtocolNodeKeyToClassMap();Class contClass = (Class)protocolNodeKeyToClassMap.get(form.getBillForm().getNodekey());MakeAppModelService service = (MakeAppModelService)((MakeBillManageModel)appModle).getService();IQueryMakeService queryService = service.getQueryService();SuperVO svo = null;try{svo = (SuperVO)queryService.queryByPk(firstVO.getPk_cont(), contClass);if ("60110extend".equals(nodecode)){if (selPsnInf.length == 1){UFLiteralDate oldEnddate = (UFLiteralDate)svo.getAttributeValue("enddate");UFLiteralDate begindate = oldEnddate == null ? literalDate : ((UFLiteralDate)oldEnddate.clone()).getDateAfter(1);if (ArrayUtils.isEmpty(contopinionVOs)){svo.setAttributeValue("begindate", begindate.clone());String termtype = (String)svo.getAttributeValue("termtype");if (StringUtils.isNotBlank(termtype)) {if ("CM01".equals(termtype)){svo.setAttributeValue("enddate", null);svo.setAttributeValue("termmonth", null);}else if (("CM02".equals(termtype)) || ("CM03".equals(termtype))){svo.setAttributeValue("termmonth", null);svo.setAttributeValue("enddate", null);}else{svo.setAttributeValue("termmonth", svo.getAttributeValue("termmonth"));svo.setAttributeValue("enddate", svo.getAttributeValue("enddate"));}}}else{svo.setAttributeValue("termtype", contopinionVOs[0].getTermtype());svo.setAttributeValue("termmonth", contopinionVOs[0].getItermmonth());svo.setAttributeValue("begindate", begindate.clone());svo.setAttributeValue("enddate", contopinionVOs[0].getSedenddate());}oldEnddate = null;begindate = null;}else if (selPsnInf.length > 1){svo.setAttributeValue("begindate", null);MakeUtil.getHeadItem(cardPanel, "begindate").setEnabled(Boolean.FALSE.booleanValue());MakeUtil.getHeadItem(cardPanel, "begindate").setNull(false);if (!ArrayUtils.isEmpty(contopinionVOs)){svo.setAttributeValue("termtype", contopinionVOs[0].getTermtype());svo.setAttributeValue("termmonth", contopinionVOs[0].getItermmonth());svo.setAttributeValue("enddate", contopinionVOs[0].getSedenddate());}}}else{svo.setAttributeValue("begindate", svo.getAttributeValue("begindate"));svo.setAttributeValue("enddate", svo.getAttributeValue("enddate"));}UFLiteralDate begin = (UFLiteralDate)svo.getAttributeValue("begindate");UFLiteralDate end = (UFLiteralDate)svo.getAttributeValue("enddate");if ((begin != null) && (end != null)) {if (((UFLiteralDate)begin.clone()).after((UFLiteralDate)end.clone())) {svo.setAttributeValue("enddate", null);}}begin = null;end = null;SuperVO newVO = (SuperVO)contClass.newInstance();newVO.setAttributeValue("conttype", conttype);newVO.setAttributeValue("signdate", literalDate.clone());newVO.setAttributeValue("begindate", svo.getAttributeValue("begindate"));newVO.setAttributeValue("enddate", svo.getAttributeValue("enddate"));newVO.setAttributeValue("pk_psndoc", svo.getAttributeValue("pk_psndoc"));newVO.setAttributeValue("pk_psnorg", svo.getAttributeValue("pk_psnorg"));newVO.setAttributeValue("assgid", svo.getAttributeValue("assgid"));newVO.setAttributeValue("pk_psnjob", svo.getAttributeValue("pk_psnjob"));newVO.setAttributeValue("pk_group", svo.getAttributeValue("pk_group"));newVO.setAttributeValue("pk_conttext", svo.getAttributeValue("pk_conttext"));newVO.setAttributeValue("pk_majorcorp", svo.getAttributeValue("pk_majorcorp"));newVO.setAttributeValue("signaddr", svo.getAttributeValue("signaddr"));newVO.setAttributeValue("creator", svo.getAttributeValue("creator"));newVO.setAttributeValue("creationtime", svo.getAttributeValue("creationtime"));newVO.setAttributeValue("contid", svo.getAttributeValue("contid"));newVO.setAttributeValue("cont_unit", svo.getAttributeValue("cont_unit"));if (svo.getAttributeValue("termmonth") != null) {newVO.setAttributeValue("termmonth", svo.getAttributeValue("termmonth"));}if ("hi_psndoc_ctrt".equals(modeName)){newVO.setAttributeValue("contractnum", svo.getAttributeValue("contractnum"));newVO.setAttributeValue("termtype", svo.getAttributeValue("termtype"));newVO.setAttributeValue("continuetime", svo.getAttributeValue("continuetime"));}else{newVO.setAttributeValue("contcode", svo.getAttributeValue("contcode"));}setGlbdef(nodecode, svo, newVO);if ("60110release".equals(nodecode)){if ("hi_psndoc_ctrt".equals(modeName)){newVO.setAttributeValue("presenter", "1");String tablename = MakeUtil.getTablename(cardPanel);UIRefPane pane = (UIRefPane)cardPanel.getHeadItem(tablename + ".pk_unchreason").getComponent();pane.getRefModel().setPara1("1002Z71000000000PJRJ");pane.getRefModel().setCacheEnabled(false);pane.getRefModel().setRefNodeName(ResHelper.getString("6011make", "06011make0093"));}else{String tablename = MakeUtil.getTablename(cardPanel);UIRefPane pane = (UIRefPane)cardPanel.getHeadItem(tablename + ".pk_unchreason").getComponent();pane.getRefModel().setPara1("1002Z71000000000PJRM");pane.getRefModel().setRefTitle(ResHelper.getString("6011make", "06011make0094"));}}else if ("60110finish".equals(nodecode)) {if ("hi_psndoc_ctrt".equals(modeName)){String tablename = MakeUtil.getTablename(cardPanel);UIRefPane pane = (UIRefPane)cardPanel.getHeadItem(tablename + ".pk_unchreason").getComponent();pane.getRefModel().setPara1("1002Z71000000000PJRK");pane.getRefModel().setCacheEnabled(false);pane.getRefModel().setRefNodeName(ResHelper.getString("6011make", "06011make0002"));}else{String tablename = MakeUtil.getTablename(cardPanel);UIRefPane pane = (UIRefPane)cardPanel.getHeadItem(tablename + ".pk_unchreason").getComponent();pane.getRefModel().setPara1("1002Z71000000000PJRL");pane.getRefModel().setRefTitle(ResHelper.getString("6011make", "06011make0003"));}}WizardFirstInterface firstFace = CMMethodFactory.getWizardFirstInterface(nodecode, modeName);if (firstFace != null) {firstFace.setNewVOinfo(svo, newVO);}form.getBillForm().setValue(newVO);if (firstFace != null) {firstFace.setHeadItem((MakeBillManageModel)appModle, cardPanel, selPsnInf);}}catch (Exception e){Logger.error(e);}}else{billForm.setValue(null);String vmodeltype = billForm.getModelDataManager().getInfosetPK();String pk_conmodel = null;CtrtVO ctrt = new CtrtVO();try{pk_conmodel = getTempletBatchQueryService().queryDefautPKContmodelVOByOrg(context, vmodeltype);}catch (Exception e){Logger.error(e);}ctrt.setPk_conttext(pk_conmodel);if ("hi_psndoc_ctrt".equals(modeName)){ctrt.setPk_psnjob(firstVO.getPk_psnjob());MakeUtil.getHeadItem(cardPanel, "pk_psnjob").setEnabled(false);ctrt.setPk_psndoc(firstVO.getPk_psndoc());MakeUtil.getHeadItem(cardPanel, "pk_psndoc").setEnabled(false);ctrt.setIfprop(UFBoolean.TRUE);ctrt.setConttype(conttype);MakeUtil.getHeadItem(cardPanel, "conttype").setEnabled(false);ctrt.setBegindate((UFLiteralDate)literalDate.clone());ctrt.setProbegindate((UFLiteralDate)literalDate.clone());ctrt.setSigndate((UFLiteralDate)literalDate.clone());MakeUtil.getHeadItem(cardPanel, "signdate").setValue(literalDate.clone());ctrt.setRecordnum(Integer.valueOf(0));ctrt.setContinuetime(Integer.valueOf(1));ctrt.setPk_majorcorp(pk_org);ctrt.setTermtype("CM01");Integer contUnit = Integer.valueOf(MakeUtil.getHeadItem(cardPanel, "cont_unit").getDefaultValueObject() == null ? HRCMTermUnitUtils.TERMUNIT_MONTH : Integer.parseInt((String)MakeUtil.getHeadItem(cardPanel, "cont_unit").getDefaultValueObject()));ctrt.setCont_unit(contUnit);MakeUtil.getHeadItem(cardPanel, "termmonth").setLength(HRCMTermUnitUtils.getLengthByTermUnit(contUnit.intValue()).intValue());Integer propUnit = Integer.valueOf(MakeUtil.getHeadItem(cardPanel, "prop_unit").getDefaultValueObject() == null ? HRCMTermUnitUtils.TERMUNIT_MONTH : Integer.parseInt((String)MakeUtil.getHeadItem(cardPanel, "prop_unit").getDefaultValueObject()));ctrt.setProp_unit(propUnit);MakeUtil.getHeadItem(cardPanel, "promonth").setLength(HRCMTermUnitUtils.getLengthByTermUnit(propUnit.intValue()).intValue());}ctrt.setCreator(PubEnv.getPk_user());ctrt.setCreationtime(date);billForm.setValue(ctrt);}MakeUtil.getHeadItem(cardPanel, "pk_org").setValue(pk_org);MakeUtil.getHeadItem(cardPanel, "pk_org").setEnabled(UFBoolean.FALSE.booleanValue());MakeUtil.getHeadItem(cardPanel, "pk_group").setValue(pk_group);MakeUtil.getHeadItem(cardPanel, "pk_group").setEnabled(UFBoolean.FALSE.booleanValue());if (MakeUtil.getHeadItem(cardPanel, "code") != null) {MakeUtil.getHeadItem(cardPanel, "code").setValue(pslvo.getPsncode());}if (MakeUtil.getHeadItem(cardPanel, "name") != null) {MakeUtil.getHeadItem(cardPanel, "name").setValue(pslvo.getPsnname());}if (MakeUtil.getHeadItem(cardPanel, "contractnum") != null){MakeUtil.getHeadItem(cardPanel, "contractnum").setValue(firstVO.getVcontractnum() + "...");PsnSelListVO pslvo1 = new PsnSelListVO();if (!ArrayUtils.isEmpty(selPsnInf)){StringBuffer conractnum = new StringBuffer();for (int i = 0; i < selPsnInf.length; i++){if (i == 3){conractnum.append("...");break;}if (!StringUtils.isEmpty(selPsnInf[i].getVcontractnum())) {conractnum.append(",").append(selPsnInf[i].getVcontractnum());}}if (conractnum.length() >= 1) {pslvo1.setVcontractnum(conractnum.toString().substring(1));}}MakeUtil.getHeadItem(cardPanel, "contractnum").setValue(pslvo1.getVcontractnum());}if (MakeUtil.getHeadItem(cardPanel, "contcode") != null) {MakeUtil.getHeadItem(cardPanel, "contcode").setValue(pslvo.getVcontractnum());}if (MakeUtil.getHeadItem(cardPanel, "job_org") != null) {MakeUtil.getHeadItem(cardPanel, "job_org").setValue(firstVO.getPk_org());}boolean isExtendPsn = ((MakeBillManageModel)appModle).isExtendPsn();Integer extendtype = (Integer)step0.getAttr("extendtype");if ((extendtype == null) && ("60110extend".equals(nodecode))) {extendtype = Integer.valueOf(0);} else if ((extendtype != null) && ("60110extend".equals(nodecode)) && (selPsnInf.length == 1)) {extendtype = Integer.valueOf(0);}//initTermItem(modeName, cardPanel, pk_org, nodecode, isExtendPsn, !ArrayUtils.isEmpty(contopinionVOs), contopinionVOs[0].getItermmonth() == null ? 0 : ArrayUtils.isEmpty(contopinionVOs) ? 0 : contopinionVOs[0].getItermmonth().intValue(), extendtype);initTermItem(modeName, cardPanel, pk_org, nodecode, isExtendPsn, !ArrayUtils.isEmpty(contopinionVOs), ArrayUtils.isEmpty(contopinionVOs) ? 0 : contopinionVOs[0].getItermmonth() != null ? contopinionVOs[0].getItermmonth().intValue() : 0, extendtype);billForm.setExtendtype(extendtype);if ("60110extend".equals(nodecode)) {if (selPsnInf.length > 1){if (extendtype == null){if ("hi_psndoc_ctrt".equals(modeName)){MakeUtil.getHeadItem(cardPanel, "enddate").setEnabled(Boolean.FALSE.booleanValue());MakeUtil.getHeadItem(cardPanel, "termmonth").setEnabled(Boolean.FALSE.booleanValue());}}else if (1 == extendtype.intValue()){MakeUtil.getHeadItem(cardPanel, "enddate").setEnabled(Boolean.FALSE.booleanValue());MakeUtil.getHeadItem(cardPanel, "enddate").setValue(null);MakeUtil.getHeadItem(cardPanel, "enddate").setNull(false);MakeUtil.getHeadItem(cardPanel, "termmonth").setValue(null);}else if (2 == extendtype.intValue()){MakeUtil.getHeadItem(cardPanel, "termmonth").setEnabled(Boolean.FALSE.booleanValue());MakeUtil.getHeadItem(cardPanel, "termmonth").setValue(null);MakeUtil.getHeadItem(cardPanel, "termmonth").setNull(false);MakeUtil.getHeadItem(cardPanel, "enddate").setValue(null);}}else{MakeUtil.getHeadItem(cardPanel, "enddate").setEnabled(Boolean.TRUE.booleanValue());MakeUtil.getHeadItem(cardPanel, "enddate").setValue(null);MakeUtil.getHeadItem(cardPanel, "enddate").setNull(true);MakeUtil.getHeadItem(cardPanel, "termmonth").setEnabled(Boolean.TRUE.booleanValue());MakeUtil.getHeadItem(cardPanel, "termmonth").setValue(null);MakeUtil.getHeadItem(cardPanel, "termmonth").setNull(true);}}}private void setGlbdef(String nodecode, SuperVO oldVO, SuperVO newVO){IAttributeMeta[] attributes = oldVO.getMetaData().getAttributes();for (IAttributeMeta attribute : attributes) {if (!attribute.isStatic()) {newVO.setAttributeValue(attribute.getName(), oldVO.getAttributeValue(attribute.getName()));}}}private void initTermItem(String modeName, BillCardPanel cardPanel, String pk_org, String nodecode, boolean isExtendPsn, boolean isFromContOpinion, int itemmonth, Integer extendtype){BillItem item = MakeUtil.getHeadItem(cardPanel, "pk_post_dept");if (item != null){BillItem orgitem = MakeUtil.getHeadItem(cardPanel, "pk_post_org");UIRefPane pane = (UIRefPane)item.getComponent();if ((pane != null) && (pane.getRefModel() != null)) {pane.getRefModel().setPk_org(orgitem.getValue());}}item = MakeUtil.getHeadItem(cardPanel, "pk_post");if (item != null){BillItem org_orgitem = MakeUtil.getHeadItem(cardPanel, "pk_post_org");BillItem orgitem = MakeUtil.getHeadItem(cardPanel, "pk_post_dept");UIRefPane pane = (UIRefPane)item.getComponent();if ((pane != null) && (pane.getRefModel() != null)){pane.getRefModel().setPk_org(org_orgitem.getValue());pane.getRefModel().addWherePart(" and pk_dept = '" + orgitem.getValue() + "'");}}if (!"hi_psndoc_ctrt".equals(modeName)) {return;}if ("60110change".equals(nodecode)){MakeUtil.getHeadItem(cardPanel, "termmonth").setLength(3);CardCheckProcessorImpl processor = new CardCheckProcessorImpl();processor.setExtendPsn(isExtendPsn);if (processor.getBillItem(cardPanel, "ifprop") != null){boolean flag = processor.getBillItem(cardPanel, "ifprop").isShowFlag();processor.setPropItem(cardPanel, flag);}}if ((!"60110sign".equals(nodecode)) && (!"60110extend".equals(nodecode))) {return;}CardCheckProcessorImpl processor = new CardCheckProcessorImpl();processor.setPk_org(pk_org);processor.setExtendPsn(isExtendPsn);processor.setExtendtype(extendtype);processor.refreshTermTypeStat(cardPanel, !"60110sign".equals(nodecode), isFromContOpinion, Integer.valueOf(itemmonth));}private void setContCodeEnabled(BillCardPanel cardPanel, String modeName, boolean enable){String tablename = cardPanel.getHeadItems()[0].getTableCode();if ("hi_psndoc_ctrt".equals(tablename)){MakeUtil.getHeadItem(cardPanel, "contractnum").setEnabled(enable);MakeUtil.getHeadItem(cardPanel, "contractnum").setNull(enable);}else{MakeUtil.getHeadItem(cardPanel, "contcode").setEnabled(enable);MakeUtil.getHeadItem(cardPanel, "contcode").setNull(enable);}}private void setContCode(SuperVO vo, PsnSelListVO[] psnSelVOs, String modeName, LoginContext context, BillCardPanel cardPanel, MakeBillManageModel makeMode){try{int selLength = psnSelVOs.length;if (("60110sign".equals(context.getNodeCode())) || ("60110extend".equals(context.getNodeCode()))){if ("60110extend".equals(context.getNodeCode())){UFBoolean editable = (UFBoolean)makeMode.getContPara().get("HRCM0001");if (!editable.booleanValue()){setContCodeEnabled(cardPanel, modeName, false);return;}}BillCodeContext billCodeContext = BillCodeHelper.getBillCodeContext(HRCMUtils.getBillCodeForTableName(modeName), context.getPk_group(), context.getPk_org());String[] billCodeArr = new String[selLength];DefauteCode defautCode = null;if ((billCodeContext == null) && (selLength == 1)){QueryMakeBillCode queryBC=new QueryMakeBillCode();String codeStr=queryBC.getCodeStr(psnSelVOs[0].getPk_org(), psnSelVOs[0].getPsncode());String maxCode = queryBC.getMaxCode(vo.getTableName(),codeStr,psnSelVOs[0].getPk_org());String code = queryBC.getNextCode(codeStr,maxCode); psnSelVOs[0].setVcontractnum(code);setContCodeEnabled(cardPanel, modeName, true);}else if (billCodeContext != null){boolean isEditable = billCodeContext.isEditable();IHrBillCode ibillcode = (IHrBillCode)NCLocator.getInstance().lookup(IHrBillCode.class);billCodeArr = ibillcode.getBillCode(HRCMUtils.getBillCodeForTableName(modeName), context.getPk_group(), context.getPk_org(), selLength);makeMode.setAutoGeneratedCodes(billCodeArr);for (int i = 0; i < psnSelVOs.length; i++) {psnSelVOs[i].setVcontractnum(billCodeArr[i]);}if (selLength > 1) {setContCodeEnabled(cardPanel, modeName, false);} else {setContCodeEnabled(cardPanel, modeName, isEditable);}}else{MakeAppModelService service = (MakeAppModelService)makeMode.getService();String tablename = vo.getTableName();String maxZdCode = service.getQueryService().getMaxZDCode(tablename, DefauteCode.getDayStr()); defautCode = new DefauteCode(maxZdCode);for (int i = 0; i < psnSelVOs.length; i++){//查詢已有的當前日期最大編碼流水號,改為查詢當前人員的最大流水號//查數據庫QueryMakeBillCode queryBC=new QueryMakeBillCode();String codeStr=queryBC.getCodeStr(psnSelVOs[i].getPk_org(), psnSelVOs[i].getPsncode());String maxCode = queryBC.getMaxCode(tablename,codeStr,psnSelVOs[i].getPk_org()); //String code = defautCode.getNextCode();String code = queryBC.getNextCode(codeStr,maxCode);psnSelVOs[i].setVcontractnum(code);}setContCodeEnabled(cardPanel, modeName, false);}}else if ("60110extend".equals(context.getNodeCode())){UFBoolean editable = (UFBoolean)makeMode.getContPara().get("HRCM0001");if (!editable.booleanValue()){setContCodeEnabled(cardPanel, modeName, false);return;}}else{setContCodeEnabled(cardPanel, modeName, false);}if ("60110extend".equals(context.getNodeCode())){UFBoolean editable = (UFBoolean)makeMode.getContPara().get("HRCM0001");if ((editable.booleanValue()) && (selLength == 1)){BillCodeContext billCodeContext = HiCacheUtils.getBillCodeContext("contract", context.getPk_group(), context.getPk_org());boolean editableRule = billCodeContext == null ? true : billCodeContext.isEditable();cardPanel.getHeadItem("hi_psndoc_ctrt.contractnum").setEdit(editableRule);}}}catch (Exception e){Logger.error(e.getMessage());}}private ITempletBatchQueryService getTempletBatchQueryService()throws BusinessException{if (this.templetBatchQueryService == null) {this.templetBatchQueryService = ((ITempletBatchQueryService)NCLocator.getInstance().lookup(ITempletBatchQueryService.class));}return this.templetBatchQueryService;} }合同編碼調用顯示類,合同處理中心,新增合同類:CtrtOperateDlg.java
package nc.ui.hrcm.center.view;import java.awt.Component; import java.awt.Container; import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; import java.util.List; import java.util.Vector; import javax.swing.JComponent; import nc.bs.framework.common.NCLocator; import nc.bs.logging.Logger; import nc.bs.uif2.BusinessExceptionAdapter; import nc.desktop.ui.WorkbenchEnvironment; import nc.funcnode.ui.FuncletInitData; import nc.funcnode.ui.FuncletWindowLauncher; import nc.funcnode.ui.IFunclet; import nc.funcnode.ui.IFuncletWindow; import nc.hr.utils.BillCodeHelper; import nc.hr.utils.HRCMTermUnitUtils; import nc.hr.utils.PubEnv; import nc.hr.utils.ResHelper; import nc.itf.hr.frame.IHrBillCode; import nc.itf.hrcm.IMakeService; import nc.itf.hrcm.IQueryMakeService; import nc.itf.hrcm.ITempletBatchQueryService; import nc.itf.uap.busibean.SysinitAccessor; import nc.pub.billcode.vo.BillCodeContext; import nc.pub.tools.HRCMUtils; import nc.pub.tools.HiCacheUtils; import nc.ui.bd.ref.AbstractRefModel; import nc.ui.hr.frame.dialog.HrDialog; import nc.ui.hr.frame.util.BillPanelUtils; import nc.ui.hrcm.agreement.action.AddAgreementAction; import nc.ui.hrcm.agreement.model.AgreementAppModel; import nc.ui.hrcm.agreement.model.AgreementModelService; import nc.ui.hrcm.agreement.wizard.action.AgreementRefAction; import nc.ui.hrcm.agreement.wizard.listener.FinishWizardDialogListener; import nc.ui.hrcm.agreement.wizard.panel.AgreementPsnSelectPanel; import nc.ui.hrcm.make.CMTemplateContainer; import nc.ui.hrcm.make.factory.CMMethodFactory; import nc.ui.hrcm.make.factory.CenterWizardInitDataInterface; import nc.ui.hrcm.make.factory.WizardFirstInterface; import nc.ui.hrcm.make.model.MakeBillManageModel; import nc.ui.hrcm.make.view.ExtendAgreementDialog; import nc.ui.hrcm.make.view.MakeUtil; import nc.ui.hrcm.make.view.ViewAgreementDialog; import nc.ui.hrcm.processor.CardCheckProcessorImpl; import nc.ui.hrcm.processor.CheckException; import nc.ui.hrcm.processor.CheckProcessorFactory; import nc.ui.hrcm.processor.ICheckProcessor; import nc.ui.hrcm.templet.model.ContModelRef; import nc.ui.hrcm.utils.DataTransferObject; import nc.ui.hrcm.utils.DefauteCode; import nc.ui.hrcm.utils.QueryMakeBillCode; import nc.ui.pub.beans.MessageDialog; import nc.ui.pub.beans.UICheckBox; import nc.ui.pub.beans.UIRefPane; import nc.ui.pub.beans.wizard.WizardDialog; import nc.ui.pub.beans.wizard.WizardModel; import nc.ui.pub.beans.wizard.WizardStep; import nc.ui.pub.bill.BillCardBeforeEditListener; import nc.ui.pub.bill.BillCardPanel; import nc.ui.pub.bill.BillData; import nc.ui.pub.bill.BillEditEvent; import nc.ui.pub.bill.BillEditListener; import nc.ui.pub.bill.BillItem; import nc.ui.pub.bill.BillItemEvent; import nc.ui.pub.bill.BillListData; import nc.ui.pub.bill.BillListPanel; import nc.ui.pub.bill.BillModel; import nc.ui.sm.power.FuncRegisterCacheAccessor; import nc.ui.uif2.ShowStatusBarMsgUtil; import nc.ui.uif2.ToftPanelAdaptor; import nc.vo.hr.infoset.InfoSetVO; import nc.vo.hrcm.hrcm_center.AggPsnjobVO; import nc.vo.hrcm.hrcm_center.CtrtVO; import nc.vo.hrcm.share.PsnSelListVO; import nc.vo.hrcm.templet.ContmodelVO; import nc.vo.logging.Debug; import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessRuntimeException; import nc.vo.pub.CircularlyAccessibleValueObject; import nc.vo.pub.IAttributeMeta; import nc.vo.pub.IVOMeta; import nc.vo.pub.SuperVO; import nc.vo.pub.ValidationException; import nc.vo.pub.bill.BillTabVO; import nc.vo.pub.bill.BillTempletBodyVO; import nc.vo.pub.bill.BillTempletHeadVO; import nc.vo.pub.bill.BillTempletVO; import nc.vo.pub.lang.UFBoolean; import nc.vo.pub.lang.UFDate; import nc.vo.pub.lang.UFDateTime; import nc.vo.pub.lang.UFLiteralDate; import nc.vo.sm.funcreg.FuncRegisterVO; import nc.vo.uif2.LoginContext; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils;public class CtrtOperateDlgextends HrDialogimplements BillEditListener, BillCardBeforeEditListener {private static final long serialVersionUID = 1L;private BillCardPanel billCardPanel;private final MakeBillManageModel model;private AggPsnjobVO[] aggVOs;private String nodeCode;private String pk_org;private PsnSelListVO[] psnList = null;private int extendtype;private final List<Integer> daysList = new ArrayList();private boolean isOpenBusiFunc = false;private CtrtVO[] ctrtVOs;public static final String TAB_CODE_TREE_CONFIG = "tab_code_tree_config";public static final String TAB_CODE_TREE_CONFIG_AFTER = "tab_code_tree_config_after";public static final String TAB_CODE_HEAD_MAIN = "main";private CMTemplateContainer templateContainer;private String[] autoGeneratedCodes;public CtrtOperateDlg(Container parent, MakeBillManageModel model){super(parent, false);this.model = model;}public CtrtOperateDlg(Container parent, MakeBillManageModel model, CMTemplateContainer templateContainer){super(parent, false);this.model = model;this.templateContainer = templateContainer;}protected JComponent createCenterPanel(){this.billCardPanel = new BillCardPanel();this.templateContainer.setContext(this.model.getContext());BillData billData = null;if (("60110extend".equals(this.nodeCode)) || ("60110change".equals(this.nodeCode))){billData = getBillData(this.templateContainer, this.nodeCode);}else{BillTempletVO vo = this.templateContainer.getTemplate("hi_psndoc_ctrt");billData = new BillData(getBillTempletVOWithMake(vo));}this.billCardPanel.setBillData(billData);this.billCardPanel.getHeadItems();this.billCardPanel.getHeadItem("hi_psndoc_ctrt.contractnum").setEnabled(false);return this.billCardPanel;}public void closeOK(){notNullValidate();validateDate();CtrtVO[] vos = (CtrtVO[])getValue();if (("60110extend".equals(this.nodeCode)) && (this.psnList.length > 1)) {validateTermmonth();}List<String> pk_contList = new ArrayList();for (PsnSelListVO at : this.psnList){String pk_psndoc = at.getPk_psndoc();pk_contList.add(at.getPk_cont());for (CtrtVO ctrtVO : vos){String pk_psndoc_b = ctrtVO.getPk_psndoc();if (pk_psndoc.equals(pk_psndoc_b)) {at.setVcontractnum(ctrtVO.getContractnum());}}}IMakeService makeService = (IMakeService)NCLocator.getInstance().lookup(IMakeService.class);if ("60110change".equals(this.nodeCode)){String[] editableItem = getEditItemName(this.billCardPanel);List<Object> list = new ArrayList();try{list = makeService.ctrtChangeValidation(pk_contList, editableItem, vos);}catch (BusinessException e){Logger.error(e.getMessage());}String names = (String)list.get(0);if (StringUtils.isNotBlank(names)){String message = MessageFormat.format(ResHelper.getString("6011make", "06011make0191"), new Object[] { names });List<SuperVO> superVO = (List)list.get(1);if ((superVO == null) || (superVO.size() == 0)){message = message + ResHelper.getString("6011make", "06011make0192");MessageDialog.showErrorDlg(null, null, message);return;}if (superVO.size() < vos.length){message = message + ResHelper.getString("6011make", "06011make0193");if (MessageDialog.showYesNoDlg(null, ResHelper.getString("6011make", "06011make0228"), message) == 8) {return;}vos = (CtrtVO[])superVO.toArray(new CtrtVO[superVO.size()]);}}}String info = null;try{info = makeService.saveValidate(vos, this.nodeCode, this.model.getContext());}catch (BusinessException e){Logger.error(e.getMessage());}if (info != null){if (info.startsWith("1")){info = info.substring(1);MessageDialog.showErrorDlg(null, null, info);return;}if (MessageDialog.showYesNoDlg(null, ResHelper.getString("6011make", "06011make0228"), info) == 8) {return;}}if ("60110sign".equals(this.nodeCode)) {try{String[] pks = new String[vos.length];for (int i = 0; i < vos.length; i++) {pks[i] = ((String)vos[i].getAttributeValue("pk_psnjob"));}String clerkcode = ((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).getPsnjobPKSetByOrgPK(this.pk_org, pks);if (clerkcode != null){String message = ResHelper.getString("6011make", "06011make0075", new String[] { clerkcode });MessageDialog.showWarningDlg(this, null, message);return;}}catch (BusinessException e){Logger.error(e.getMessage());}}if (("60110release".equals(this.nodeCode)) || ("60110finish".equals(this.nodeCode))){String title = "60110release".equals(this.nodeCode) ? ResHelper.getString("6011make", "06011make0055") : ResHelper.getString("common", "UC001-0000032");String name = ResHelper.getString("6011make", "06011make0085");if (8 == MessageDialog.showYesNoDlg(this, ResHelper.getString("6011make", "06011make0227", new String[] { title }), MessageFormat.format(ResHelper.getString("6011make", "06011make0092"), new Object[] { name, title }))) {return;}}try{vos = (CtrtVO[])makeService.batchInsert(vos);try{effective(vos);}catch (InstantiationException e){Logger.error(e.getMessage());}catch (IllegalAccessException e){Logger.error(e.getMessage());}}catch (BusinessException e){Logger.error(e.getMessage());String msg = e.getMessage();ShowStatusBarMsgUtil.showStatusBarMsg(msg, this.model.getContext());MessageDialog.showErrorDlg(this, null, msg);return;}super.closeOK();}public void closeCancel(){super.closeCancel();if (!ArrayUtils.isEmpty(this.autoGeneratedCodes)){IHrBillCode hrBillCode = (IHrBillCode)NCLocator.getInstance().lookup(IHrBillCode.class);try{hrBillCode.rollbackPreBillCodes(HRCMUtils.getBillCodeForTableName("hi_psndoc_ctrt"), this.model.getContext().getPk_group(), this.model.getContext().getPk_org(), this.autoGeneratedCodes);this.autoGeneratedCodes = null;}catch (BusinessException e){Debug.error(e.getMessage(), e);throw new BusinessRuntimeException(e.getMessage(), e);}}}private void effective(CtrtVO[] vos)throws BusinessException, InstantiationException, IllegalAccessException{boolean permission = this.model.isEffectBtnPermission();if (permission){String[] psnpks = new String[vos.length];String[] jobpks = new String[vos.length];for (int j = 0; j < vos.length; j++){psnpks[j] = ((String)vos[j].getAttributeValue("pk_psndoc"));jobpks[j] = ((String)vos[j].getAttributeValue("pk_psnjob"));}for (CtrtVO evo : vos){SuperVO svo = evo;svo.setStatus(1);svo.setAttributeValue("isrefer", UFBoolean.TRUE);svo.setAttributeValue("lastflag", UFBoolean.TRUE);}if ("60110sign".equals(this.nodeCode)){ExtendAgreementDialog dialog = new ExtendAgreementDialog(this);if (dialog.showYesNoDlg(this, ResHelper.getString("6011make", "06011make0226"), ResHelper.getString("6011make", "06011make0020")) == 4){((IMakeService)NCLocator.getInstance().lookup(IMakeService.class)).effective(true, vos);for (CtrtVO evo : vos){SuperVO svo = evo;svo.setStatus(3);}}else{this.isOpenBusiFunc = true;setCtrtVOs(vos);}boolean isSelected = dialog.getCheckBox().isSelected();if (isSelected){boolean isOpenBusiFunc = getSignDlg(this.model.getContext(), jobpks);if (!isOpenBusiFunc){DataTransferObject dto = new DataTransferObject();dto.setPk_org(this.model.getContext().getPk_org());FuncletInitData data = new FuncletInitData();data.setInitData(dto);IFuncletWindow window = WorkbenchEnvironment.getInstance().findOpenedFuncletWindow("60110agsign");if (window != null){IFunclet funclet = window.getCurrFunclet();Component com = funclet.getControl();ToftPanelAdaptor toft = (ToftPanelAdaptor)com;toft.initData(data);window.showWindow();return;}FuncRegisterVO funcRegisterVO = FuncRegisterCacheAccessor.getInstance().getFuncRegisterVOByFunCode("60110agsign");ToftPanelAdaptor adaptor = (ToftPanelAdaptor)this.model.getContext().getEntranceUI();FuncletWindowLauncher.openFuncNodeInTabbedPane(adaptor, funcRegisterVO, data, null, false);}}}else if (MessageDialog.showYesNoDlg(this.billCardPanel, ResHelper.getString("6011make", "06011make0226"), ResHelper.getString("6011make", "06011make0020")) == 4){((IMakeService)NCLocator.getInstance().lookup(IMakeService.class)).effective(true, vos);if (("60110release".equals(this.nodeCode)) || ("60110finish".equals(this.nodeCode))){List<String> nameList = ((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).queryPsnByEffectPortocol(psnpks);if (!nameList.isEmpty()){PsnSelListVO[] agreementVOs = ((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).queryEffectAgreement(psnpks);StringBuffer message = new StringBuffer();message.append(ResHelper.getString("60110center", "06011center0062"));for (int i = 0; i < nameList.size(); i++) {if (i == nameList.size() - 1) {message.append((String)nameList.get(i)).append(",");} else {message.append((String)nameList.get(i)).append(ResHelper.getString("60110center", "06011center0031"));}}message.append(ResHelper.getString("60110center", "06011center0063"));if (MessageDialog.showYesNoDlg(this, ResHelper.getString("60110center", "06011center0073"), message.toString()) == 4){ViewAgreementDialog aggreementDialog = new ViewAgreementDialog(this, ResHelper.getString("60110center", "06011center0064"));aggreementDialog.getAgreementListPanel().getBillListData().setHeaderValueVO(agreementVOs);BillPanelUtils.dealWithRefShowNameByPk(aggreementDialog.getAgreementListPanel(), -1);Boolean isSelectedAll = Boolean.valueOf(true);BillModel billModel = aggreementDialog.getAgreementListPanel().getHeadBillModel();if (isSelectedAll.booleanValue()) {for (int i = 0; i < agreementVOs.length; i++) {billModel.setRowState(i, 4);}}if (1 != aggreementDialog.showModal()) {return;}PsnSelListVO[] psnVOList = (PsnSelListVO[])billModel.getBodySelectedVOs(PsnSelListVO.class.getName());if ((psnVOList == null) || (psnVOList.length == 0)){MessageDialog.showHintDlg(this, null, ResHelper.getString("60110center", "06011center0065"));return;}Vector<PsnSelListVO> vSelPsnInf = new Vector();for (int i = 0; i < billModel.getRowCount(); i++) {if (billModel.getRowState(i) == 4){String pk_psnjob = billModel.getValueAt(i, "vcontractnum").toString();for (PsnSelListVO psnSelListVO : psnVOList){String pk_psnjob1 = psnSelListVO.getVcontractnum();if (pk_psnjob.equals(pk_psnjob1)){vSelPsnInf.add(psnSelListVO);break;}}}}((IMakeService)NCLocator.getInstance().lookup(IMakeService.class)).finishOrReleaseAgreement(vSelPsnInf);}}}for (CtrtVO evo : vos){SuperVO svo = evo;svo.setStatus(3);}}else{this.isOpenBusiFunc = true;setCtrtVOs(vos);}}else{this.isOpenBusiFunc = true;setCtrtVOs(vos);}}private boolean getSignDlg(LoginContext context, String[] jobpks)throws InstantiationException, IllegalAccessException, BusinessException{AgreementAppModel agreementModel = new AgreementAppModel();LoginContext loginContext = new LoginContext();loginContext.setNodeCode("60110agsign");loginContext.setEntranceUI(context.getEntranceUI());loginContext.setPk_org(context.getPk_org());loginContext.setPk_group(context.getPk_group());loginContext.setPk_loginUser(context.getPk_loginUser());agreementModel.setContext(loginContext);agreementModel.setAgreementType("postcont");agreementModel.setService(new AgreementModelService());AddAgreementAction action = new AddAgreementAction();action.setFromCtrtSign(true);action.setModel(agreementModel);WizardDialog dlg = action.getWizardDialog();PsnSelListVO[] psn = new AgreementRefAction(action.getWizardDialog(), agreementModel).queryPsnjobInfo(jobpks, null);BillListPanel list = ((AgreementPsnSelectPanel)((WizardStep)dlg.getModel().getSteps().get(0)).getComp()).getPsnListPanel();list.setHeaderValueVO(psn);BillPanelUtils.dealWithRefShowNameByPk(list, -1);((WizardStep)dlg.getModel().getSteps().get(0)).putAttr("psnList", psn);for (int i = 0; i < psn.length; i++) {list.getHeadBillModel().setRowState(i, 4);}dlg.setWizardDialogListener(new FinishWizardDialogListener());dlg.showModal();boolean isOpenBusiFunc = agreementModel.isEffect();return isOpenBusiFunc;}private void notNullValidate(){BillData data = this.billCardPanel.getBillData();try{if (data != null) {data.dataNotNullValidate();}}catch (ValidationException e){String msg = e.getMessage();ShowStatusBarMsgUtil.showStatusBarMsg(msg, this.model.getContext());MessageDialog.showErrorDlg(this, null, msg);throw new BusinessExceptionAdapter(e);}}private void validateDate(){CtrtVO ctrtVO = (CtrtVO)this.billCardPanel.getBillData().getChangeBillObjectByMetaData();try{UFLiteralDate begindate = (UFLiteralDate)ctrtVO.getAttributeValue("begindate");UFLiteralDate enddate = (UFLiteralDate)ctrtVO.getAttributeValue("enddate");if ((enddate != null) && (enddate.toString().length() > 10)) {throw new ValidationException(ResHelper.getString("6011make", "06011make0235"));}if ((begindate != null) && (enddate != null) && (!enddate.after(begindate))) {throw new ValidationException(ResHelper.getString("6011make", "06011make0029"));}UFLiteralDate probegindate = (UFLiteralDate)ctrtVO.getAttributeValue("probegindate");if ((begindate != null) && (probegindate != null) && (probegindate.before(begindate))) {throw new ValidationException(ResHelper.getString("6011make", "06011make0194"));}UFLiteralDate probenddate = (UFLiteralDate)ctrtVO.getAttributeValue("probenddate");if ((probegindate != null) && (probenddate != null) && (!probenddate.after(probegindate))) {throw new ValidationException(ResHelper.getString("6011make", "06011make0030"));}}catch (ValidationException e){String msg = e.getMessage();ShowStatusBarMsgUtil.showStatusBarMsg(msg, this.model.getContext());MessageDialog.showErrorDlg(this, null, msg);throw new BusinessExceptionAdapter(e);}}private BillTempletVO getBillTempletVOWithMake(BillTempletVO clonedTemVO){List<BillTempletBodyVO> arrListBodyVO = new ArrayList();List<BillTempletBodyVO> templetVOs = getHeadBillTempletVO();if (templetVOs != null) {arrListBodyVO.addAll(templetVOs);}templetVOs = getBodyBillTempletVOofMake(clonedTemVO);if (templetVOs != null) {arrListBodyVO.addAll(templetVOs);}clonedTemVO.setChildrenVO((CircularlyAccessibleValueObject[])arrListBodyVO.toArray(new BillTempletBodyVO[0]));return clonedTemVO;}protected List<BillTempletBodyVO> getBodyBillTempletVOofMake(BillTempletVO clonedTemVO){String tablename = clonedTemVO.getHeadVO().getPkBillTypeCode();BillTempletBodyVO[] cloneBodyVOs = clonedTemVO.getBodyVO();int showOrder = 0;List<BillTempletBodyVO> bodyVOs = new ArrayList();BillTempletBodyVO templetBodyVO = new BillTempletBodyVO();templetBodyVO.setCardflag(Boolean.valueOf(true));templetBodyVO.setEditflag(Boolean.valueOf(false));templetBodyVO.setItemtype(Integer.valueOf(0));templetBodyVO.setNullflag(Boolean.valueOf(false));templetBodyVO.setPos(Integer.valueOf(0));templetBodyVO.setList(false);templetBodyVO.setListflag(Boolean.valueOf(false));templetBodyVO.setListshowflag(Boolean.FALSE);templetBodyVO.setWidth(Integer.valueOf(1));templetBodyVO.setShowflag(Boolean.valueOf(false));templetBodyVO.setItemkey("111");templetBodyVO.setDatatype(Integer.valueOf(0));templetBodyVO.setDefaultshowname(ResHelper.getString("6011make", "06011make0074"));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));bodyVOs.add(templetBodyVO);for (BillTempletBodyVO bodyVO : cloneBodyVOs) {if (!filterAuditItem(tablename, bodyVO)){templetBodyVO = (BillTempletBodyVO)bodyVO.clone();bodyVOs.add(templetBodyVO);}}for (BillTempletBodyVO bodyVO : cloneBodyVOs) {if (filterAuditItem(tablename, bodyVO)){templetBodyVO = bodyVO;templetBodyVO.setTable_name(ResHelper.getString("common", "UC001-0000095"));templetBodyVO.setPos(Integer.valueOf(2));bodyVOs.add(templetBodyVO);}}return bodyVOs;}private boolean filterAuditItem(String tablename, BillTempletBodyVO bodyVO){return (MakeUtil.equalsKey(bodyVO, tablename, "creator")) || (MakeUtil.equalsKey(bodyVO, tablename, "creationtime")) || (MakeUtil.equalsKey(bodyVO, tablename, "modifier")) || (MakeUtil.equalsKey(bodyVO, tablename, "modifiedtime"));}private BillData getBillData(CMTemplateContainer templateContainer, String nodecode){String tabname = "60110extend".equals(nodecode) ? ResHelper.getString("6011make", "06011make0070") : ResHelper.getString("6011make", "06011make0071");BillTempletVO vo = templateContainer.getTemplate("hi_psndoc_ctrt");BillTempletVO cloneVO = (BillTempletVO)vo.clone();BillData billData = new BillData(getBillTempletVO(cloneVO));BillTabVO billTabVO = new BillTabVO();billTabVO.setPos(Integer.valueOf(0));billTabVO.setTabcode("tab_code_tree_config");billTabVO.setTabindex(Integer.valueOf(1));billTabVO.setTabname(MessageFormat.format(ResHelper.getString("6011make", "06011make0072"), new Object[] { tabname }));billTabVO.setBasetab("main");billTabVO.setMixindex(Integer.valueOf(1));billData.addBodyTabVO(billTabVO);BillTabVO afterBillTabVO = new BillTabVO();afterBillTabVO.setPos(Integer.valueOf(0));afterBillTabVO.setTabcode("tab_code_tree_config_after");afterBillTabVO.setTabindex(Integer.valueOf(2));afterBillTabVO.setTabname(MessageFormat.format(ResHelper.getString("6011make", "06011make0073"), new Object[] { tabname }));afterBillTabVO.setBasetab("main");afterBillTabVO.setMixindex(Integer.valueOf(1));billData.addBodyTabVO(afterBillTabVO);return billData;}private BillTempletVO getBillTempletVO(BillTempletVO clonedTemVO){List<BillTempletBodyVO> arrListBodyVO = new ArrayList();List<BillTempletBodyVO> templetVOs = getHeadBillTempletVO();if (templetVOs != null) {arrListBodyVO.addAll(templetVOs);}templetVOs = getBodyBillTempletVO(clonedTemVO);if (templetVOs != null) {arrListBodyVO.addAll(templetVOs);}clonedTemVO.setChildrenVO((CircularlyAccessibleValueObject[])arrListBodyVO.toArray(new BillTempletBodyVO[0]));return clonedTemVO;}protected List<BillTempletBodyVO> getHeadBillTempletVO(){return null;}protected List<BillTempletBodyVO> getBodyBillTempletVO(BillTempletVO clonedTemVO){String tablename = clonedTemVO.getHeadVO().getPkBillTypeCode();BillTempletBodyVO[] cloneBodyVOs = clonedTemVO.getBodyVO();HashMap<String, BillTempletBodyVO> map = MakeUtil.billTempletBodyVOArrsToHashMap(cloneBodyVOs);String contcodeKey = "hi_psndoc_ctrt".equals(tablename) ? "contractnum" : "contcode";int showOrder = 0;List<BillTempletBodyVO> bodyVOs = new ArrayList();BillTempletBodyVO templetBodyVO = new BillTempletBodyVO();templetBodyVO.setCardflag(Boolean.valueOf(true));templetBodyVO.setEditflag(Boolean.valueOf(false));templetBodyVO.setItemtype(Integer.valueOf(0));templetBodyVO.setNullflag(Boolean.valueOf(false));templetBodyVO.setPos(Integer.valueOf(0));templetBodyVO.setList(false);templetBodyVO.setListflag(Boolean.valueOf(false));templetBodyVO.setListshowflag(Boolean.FALSE);templetBodyVO.setWidth(Integer.valueOf(1));templetBodyVO.setShowflag(Boolean.valueOf(false));templetBodyVO.setItemkey("111");templetBodyVO.setDatatype(Integer.valueOf(0));templetBodyVO.setDefaultshowname(ResHelper.getString("6011make", "06011make0074"));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));bodyVOs.add(templetBodyVO);for (BillTempletBodyVO bodyVO : cloneBodyVOs) {if (!filterName(tablename, contcodeKey, bodyVO)) {if (!bodyVO.getShowflag().booleanValue()){templetBodyVO = (BillTempletBodyVO)bodyVO.clone();templetBodyVO.setCardflag(Boolean.valueOf(true));templetBodyVO.setEditflag(Boolean.valueOf(false));templetBodyVO.setItemtype(Integer.valueOf(0));templetBodyVO.setPos(Integer.valueOf(0));templetBodyVO.setList(false);templetBodyVO.setListflag(Boolean.valueOf(false));templetBodyVO.setListshowflag(Boolean.FALSE);templetBodyVO.setWidth(Integer.valueOf(1));templetBodyVO.setShowflag(Boolean.valueOf(false));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));bodyVOs.add(templetBodyVO);}}}templetBodyVO = (BillTempletBodyVO)map.get(tablename + "." + contcodeKey);if (templetBodyVO != null){templetBodyVO.setShowflag(Boolean.valueOf(true));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));templetBodyVO.setTable_code(null);bodyVOs.add(templetBodyVO);}templetBodyVO = (BillTempletBodyVO)map.get(tablename + "." + "name");if (templetBodyVO != null){templetBodyVO.setShowflag(Boolean.valueOf(true));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));templetBodyVO.setTable_code(null);bodyVOs.add(templetBodyVO);}templetBodyVO = (BillTempletBodyVO)map.get(tablename + "." + "signdate");if (templetBodyVO != null){templetBodyVO.setShowflag(Boolean.valueOf(true));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));templetBodyVO.setTable_code(null);bodyVOs.add(templetBodyVO);}for (BillTempletBodyVO bodyVO : cloneBodyVOs) {if (!filterName(tablename, contcodeKey, bodyVO)) {if (bodyVO.getShowflag().booleanValue()){templetBodyVO = (BillTempletBodyVO)bodyVO.clone();templetBodyVO.setTable_code("tab_code_tree_config_after");templetBodyVO.setShowflag(Boolean.valueOf(true));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));bodyVOs.add(templetBodyVO);}}}for (BillTempletBodyVO bodyVO : cloneBodyVOs) {if (!filterName(tablename, contcodeKey, bodyVO)) {if (bodyVO.getShowflag().booleanValue()){templetBodyVO = bodyVO;templetBodyVO.setTable_code("tab_code_tree_config");templetBodyVO.setItemkey(templetBodyVO.getItemkey() + "_old");templetBodyVO.setEditflag(Boolean.valueOf(false));templetBodyVO.setNullflag(Boolean.valueOf(false));templetBodyVO.setShowflag(Boolean.valueOf(true));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));bodyVOs.add(templetBodyVO);}}}for (BillTempletBodyVO bodyVO : cloneBodyVOs) {if (filterAuditItem(tablename, bodyVO)){templetBodyVO = bodyVO;templetBodyVO.setTable_name(ResHelper.getString("common", "UC001-0000095"));templetBodyVO.setShoworder(Integer.valueOf(showOrder++));templetBodyVO.setShowflag(Boolean.valueOf(true));templetBodyVO.setPos(Integer.valueOf(2));bodyVOs.add(templetBodyVO);}}return bodyVOs;}private boolean filterName(String tablename, String contcodeKey, BillTempletBodyVO bodyVO){return (MakeUtil.equalsKey(bodyVO, tablename, contcodeKey)) || (MakeUtil.equalsKey(bodyVO, tablename, "name")) || (MakeUtil.equalsKey(bodyVO, tablename, "signdate")) || (MakeUtil.equalsKey(bodyVO, tablename, "creator")) || (MakeUtil.equalsKey(bodyVO, tablename, "creationtime")) || (MakeUtil.equalsKey(bodyVO, tablename, "modifier")) || (MakeUtil.equalsKey(bodyVO, tablename, "modifiedtime"));}public Object getValue(){CtrtVO ctrtVO = (CtrtVO)this.billCardPanel.getBillData().getChangeBillObjectByMetaData();Vector<CtrtVO> vec = new Vector();if (this.psnList.length == 1) {this.psnList[0].setVcontractnum(ctrtVO.getContractnum());}for (PsnSelListVO vo : this.psnList){CtrtVO newVo = (CtrtVO)ctrtVO.clone();String contractnum = vo.getVcontractnum() == null ? ctrtVO.getContractnum() : vo.getVcontractnum();newVo.setContractnum(contractnum);newVo.setPk_psndoc(vo.getPk_psndoc());newVo.setPk_psnjob(vo.getPk_psnjob());newVo.setPk_psnorg(vo.getPk_psnorg());newVo.setAssgid(vo.getAssgid());newVo.setPk_org(this.pk_org);newVo.setContinuetime(vo.getContinuetime());newVo.setRecordnum(Integer.valueOf(0));newVo.setContid(vo.getContid());if (("60110finish".equals(this.nodeCode)) || ("60110release".equals(this.nodeCode))){newVo.setBegindate(vo.getCont_begindate());newVo.setEnddate(vo.getCont_enddate());newVo.setTermmonth(vo.getTermmonth());newVo.setTermtype(vo.getTermtype());}boolean isBatchExtend = ("60110extend".equals(this.nodeCode)) && (this.psnList.length > 1);if (isBatchExtend){Integer termmonth = Integer.valueOf(0);UFLiteralDate begindate = null;UFLiteralDate enddate = null;UFLiteralDate oldEnddate = vo.getCont_enddate();int termUnit = getUnit("cont_unit");if (this.extendtype == 1){termmonth = (Integer)ctrtVO.getAttributeValue("termmonth");begindate = oldEnddate.getDateAfter(1);if ((begindate != null) && (termmonth != null)) {enddate = HRCMTermUnitUtils.getDateAfterMonth(begindate, termmonth.intValue(), Integer.valueOf(termUnit));}}else if (this.extendtype == 2){begindate = oldEnddate.getDateAfter(1);enddate = (UFLiteralDate)ctrtVO.getAttributeValue("enddate");if ((begindate != null) && (enddate != null)){int days = UFLiteralDate.getDaysBetween(begindate, enddate);this.daysList.add(Integer.valueOf(days));try{termmonth = HRCMTermUnitUtils.getTermFromDays(termUnit, days);}catch (Exception e){Logger.error(e.getMessage());}}else{termmonth = null;}}newVo.setAttributeValue("begindate", begindate);newVo.setAttributeValue("enddate", enddate);newVo.setAttributeValue("termmonth", termmonth);begindate = null;enddate = null;oldEnddate = null;}newVo.setStatus(2);vec.add(newVo);}Object[] obj = null;obj = vec.toArray();CtrtVO[] vos = new CtrtVO[obj.length];for (int i = 0; i < vos.length; i++) {vos[i] = ((CtrtVO)obj[i]);}return vos;}public void setValue(Object objVO){CtrtVO vo = (CtrtVO)objVO;BillItem[] bilItems = this.billCardPanel.getHeadItems();List<Object> list = new ArrayList();SuperVO oldVO = null;if (("60110change".equals(this.nodeCode)) || ("60110extend".equals(this.nodeCode))){CircularlyAccessibleValueObject[] superVOs = (CircularlyAccessibleValueObject[])this.aggVOs[0].getTableVO("hi_psndoc_ctrt");for (int i = 0; i < superVOs.length; i++){SuperVO superVO_old = (SuperVO)superVOs[i];UFBoolean lastFlag = (UFBoolean)superVO_old.getAttributeValue("lastflag");if (lastFlag.booleanValue()) {oldVO = superVO_old;}}try{list = (List)((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).queryEffect(vo);}catch (BusinessException e){Logger.error(e.getMessage());}oldVO = (SuperVO)list.get(0);}for (BillItem billItem : bilItems){String key = billItem.getKey();String attribute = key.substring(key.lastIndexOf(".") + 1);if (billItem.getKey().endsWith("_old")){if (billItem.getKey().endsWith("job_org_old")){String orgPK = (String)this.aggVOs[0].getParentVO().getAttributeValue("pk_org");billItem.setValue(orgPK);}else{Object value = MakeUtil.getAttributeValueFilterTablename(oldVO, billItem.getKey().substring(0, billItem.getKey().length() - 4));billItem.setValue(value);}}else if (("pk_dept".equalsIgnoreCase(attribute)) || ("deptname".equalsIgnoreCase(attribute))){this.billCardPanel.getHeadItem(key).setValue(this.psnList[0].getPk_deptdoc());}else{if ((billItem.getKey().endsWith("hi_psndoc_ctrt.contractnum")) && ("60110extend".equals(this.nodeCode))){UFBoolean para = UFBoolean.FALSE;try{para = SysinitAccessor.getInstance().getParaBoolean(this.model.getContext().getPk_group(), "HRCM0001");}catch (BusinessException e){Logger.error(e.getMessage(), e);}if ((para.booleanValue()) && (this.psnList != null) && (this.psnList.length == 1)) {this.billCardPanel.getHeadItem("hi_psndoc_ctrt.contractnum").setEdit(true);}}this.billCardPanel.getHeadItem(key).setValue(vo.getAttributeValue(attribute));}}BillItem[] tailItems = this.billCardPanel.getTailItems();for (BillItem billItem : tailItems){String key = billItem.getKey();String attribute = key.substring(key.lastIndexOf(".") + 1);this.billCardPanel.getTailItem(key).setValue(vo.getAttributeValue(attribute));}initTermItem(this.billCardPanel, this.pk_org, this.nodeCode, false, false, 0, Integer.valueOf(getExtendtype()));if ("60110extend".equals(this.nodeCode)) {if (this.psnList.length > 1){if (1 == this.extendtype){this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setEnabled(Boolean.FALSE.booleanValue());this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setValue(null);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setNull(false);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setValue(null);}else if (2 == this.extendtype){this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setEnabled(Boolean.FALSE.booleanValue());this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setValue(null);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setNull(false);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setValue(null);}}else{this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setEnabled(Boolean.TRUE.booleanValue());this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setValue(null);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.enddate").setNull(true);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setEnabled(Boolean.TRUE.booleanValue());this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setValue(null);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setNull(true);}}}public BillCardPanel getCenterPanel(){return (BillCardPanel)super.getCenterPanel();}public void initUI(){super.initUI();this.billCardPanel.addEditListener(this);this.billCardPanel.setBillBeforeEditListenerHeadTail(this);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.termmonth").setLength(3);setTitle(getTitle());setSize(900, 700);CtrtVO vo = getCtrtVO();if ("60110sign".equals(this.nodeCode)) {setValue(vo);}}public void setContCode(PsnSelListVO[] psnSelVOs, String modeName, LoginContext context, BillCardPanel cardPanel, MakeBillManageModel makeMode){try{int selLength = psnSelVOs.length;if (("60110sign".equals(context.getNodeCode())) || ("60110extend".equals(context.getNodeCode()))){if ("60110extend".equals(context.getNodeCode())){UFBoolean editable = (UFBoolean)makeMode.getContPara().get("HRCM0001");if (!editable.booleanValue()){setContCodeEnabled(cardPanel, modeName, false);return;}}BillCodeContext billCodeContext = BillCodeHelper.getBillCodeContext(HRCMUtils.getBillCodeForTableName(modeName), context.getPk_group(), context.getPk_org());String[] billCodeArr = new String[selLength];DefauteCode defautCode = null;if ((billCodeContext == null) && (selLength == 1)){//add by waiteQueryMakeBillCode queryBC=new QueryMakeBillCode();String codeStr=queryBC.getCodeStr(psnSelVOs[0].getPk_org(), psnSelVOs[0].getPsncode());String maxCode = queryBC.getMaxCode("hi_psndoc_ctrt",codeStr,psnSelVOs[0].getPk_org());String code = queryBC.getNextCode(codeStr,maxCode); psnSelVOs[0].setVcontractnum(code);setContCodeEnabled(cardPanel, modeName, true);}else if (billCodeContext != null){boolean isEditable = billCodeContext.isEditable();IHrBillCode ibillcode = (IHrBillCode)NCLocator.getInstance().lookup(IHrBillCode.class);billCodeArr = ibillcode.getBillCode(HRCMUtils.getBillCodeForTableName(modeName), context.getPk_group(), context.getPk_org(), selLength);setAutoGeneratedCodes(billCodeArr);for (int i = 0; i < psnSelVOs.length; i++) {psnSelVOs[i].setVcontractnum(billCodeArr[i]);}if (selLength > 1) {setContCodeEnabled(cardPanel, modeName, false);} else {setContCodeEnabled(cardPanel, modeName, isEditable);}}else{String tablename = "hi_psndoc_ctrt";String maxZdCode = ((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).getMaxZDCode(tablename, DefauteCode.getDayStr());defautCode = new DefauteCode(maxZdCode);for (int i = 0; i < psnSelVOs.length; i++){//update by waite//String code = defautCode.getNextCode();//查詢已有的當前日期最大編碼流水號,改為查詢當前人員的最大流水號//查數據庫QueryMakeBillCode queryBC=new QueryMakeBillCode();String codeStr=queryBC.getCodeStr(psnSelVOs[i].getPk_org(), psnSelVOs[i].getPsncode());String maxCode = queryBC.getMaxCode(tablename, codeStr,psnSelVOs[i].getPk_org()); String code = queryBC.getNextCode(codeStr,maxCode);psnSelVOs[i].setVcontractnum(code);}setContCodeEnabled(cardPanel, modeName, false);}}else if ("60110extend".equals(context.getNodeCode())){UFBoolean editable = (UFBoolean)makeMode.getContPara().get("HRCM0001");if (!editable.booleanValue()){setContCodeEnabled(cardPanel, modeName, false);return;}}else{setContCodeEnabled(cardPanel, modeName, false);}if ("60110extend".equals(context.getNodeCode())){UFBoolean editable = (UFBoolean)makeMode.getContPara().get("HRCM0001");if ((editable.booleanValue()) && (selLength == 1)){BillCodeContext billCodeContext = HiCacheUtils.getBillCodeContext("contract", context.getPk_group(), context.getPk_org());boolean editableRule = billCodeContext == null ? true : billCodeContext.isEditable();cardPanel.getHeadItem("hi_psndoc_ctrt.contractnum").setEdit(editableRule);}}}catch (Exception e){Logger.error(e.getMessage());}}private static void setContCodeEnabled(BillCardPanel cardPanel, String modeName, boolean enable){String tablename = cardPanel.getHeadItems()[0].getTableCode();if ("hi_psndoc_ctrt".equals(tablename)){MakeUtil.getHeadItem(cardPanel, "contractnum").setEnabled(enable);MakeUtil.getHeadItem(cardPanel, "contractnum").setNull(enable);}else{MakeUtil.getHeadItem(cardPanel, "contcode").setEnabled(enable);MakeUtil.getHeadItem(cardPanel, "contcode").setNull(enable);}}private CtrtVO getCtrtVO(){this.psnList = getPsnSellist();Integer conttype = Integer.valueOf(HRCMUtils.getNodeCodeTermType(this.nodeCode));UFDateTime date = PubEnv.getServerTime();UFLiteralDate literalDate = new UFLiteralDate(date.getDate().toStdString());PsnSelListVO psnVO = this.psnList[0];CtrtVO ctrtVO = new CtrtVO();setContCode(this.psnList, "hi_psndoc_ctrt", this.model.getContext(), this.billCardPanel, this.model);if ("60110sign".equals(this.nodeCode)) {setSignData(conttype, literalDate, psnVO, ctrtVO, date);} else {ctrtVO = setOtherBusiData(conttype, literalDate, psnVO, date);}return ctrtVO;}private CtrtVO setOtherBusiData(Integer conttype, UFLiteralDate literalDate, PsnSelListVO psnVO, UFDateTime date){SuperVO svo = null;for (int i = 0; i < this.aggVOs[0].getTableVO("hi_psndoc_ctrt").length; i++){UFBoolean isLast = (UFBoolean)((SuperVO)this.aggVOs[0].getTableVO("hi_psndoc_ctrt")[i]).getAttributeValue("lastflag");if (isLast.booleanValue()) {svo = (SuperVO)this.aggVOs[0].getTableVO("hi_psndoc_ctrt")[i];}}if ("60110extend".equals(this.nodeCode)){if (this.psnList.length == 1){UFLiteralDate oldEnddate = (UFLiteralDate)svo.getAttributeValue("enddate");UFLiteralDate begindate = oldEnddate == null ? literalDate : ((UFLiteralDate)oldEnddate.clone()).getDateAfter(1);svo.setAttributeValue("begindate", begindate.clone());String termtype = (String)svo.getAttributeValue("termtype");if (StringUtils.isNotBlank(termtype)) {if ("CM01".equals(termtype)){svo.setAttributeValue("enddate", null);svo.setAttributeValue("termmonth", null);}else if (("CM02".equals(termtype)) || ("CM03".equals(termtype))){svo.setAttributeValue("termmonth", null);svo.setAttributeValue("enddate", null);}else{svo.setAttributeValue("termmonth", svo.getAttributeValue("termmonth"));svo.setAttributeValue("enddate", svo.getAttributeValue("enddate"));}}}else{svo.setAttributeValue("begindate", null);this.billCardPanel.getHeadItem("hi_psndoc_ctrt.begindate").setEnabled(Boolean.FALSE.booleanValue());this.billCardPanel.getHeadItem("hi_psndoc_ctrt.begindate").setNull(false);}}else{svo.setAttributeValue("begindate", svo.getAttributeValue("begindate"));svo.setAttributeValue("enddate", svo.getAttributeValue("enddate"));}UFLiteralDate begin = (UFLiteralDate)svo.getAttributeValue("begindate");UFLiteralDate end = (UFLiteralDate)svo.getAttributeValue("enddate");if ((begin != null) && (end != null)) {if (((UFLiteralDate)begin.clone()).after((UFLiteralDate)end.clone())) {svo.setAttributeValue("enddate", null);}}begin = null;end = null;SuperVO newVO = new CtrtVO();newVO.setAttributeValue("conttype", conttype);newVO.setAttributeValue("signdate", literalDate.clone());newVO.setAttributeValue("begindate", svo.getAttributeValue("begindate"));newVO.setAttributeValue("enddate", svo.getAttributeValue("enddate"));newVO.setAttributeValue("pk_psndoc", svo.getAttributeValue("pk_psndoc"));newVO.setAttributeValue("pk_psnorg", svo.getAttributeValue("pk_psnorg"));newVO.setAttributeValue("assgid", svo.getAttributeValue("assgid"));newVO.setAttributeValue("pk_psnjob", svo.getAttributeValue("pk_psnjob"));newVO.setAttributeValue("pk_group", svo.getAttributeValue("pk_group"));newVO.setAttributeValue("pk_org", this.pk_org);newVO.setAttributeValue("pk_conttext", svo.getAttributeValue("pk_conttext"));newVO.setAttributeValue("pk_majorcorp", svo.getAttributeValue("pk_majorcorp"));newVO.setAttributeValue("signaddr", svo.getAttributeValue("signaddr"));newVO.setAttributeValue("creator", PubEnv.getPk_user());newVO.setAttributeValue("creationtime", date);if (svo.getAttributeValue("termmonth") != null) {newVO.setAttributeValue("termmonth", svo.getAttributeValue("termmonth"));}newVO.setAttributeValue("contractnum", svo.getAttributeValue("contractnum"));newVO.setAttributeValue("termtype", svo.getAttributeValue("termtype"));newVO.setAttributeValue("cont_unit", svo.getAttributeValue("cont_unit"));newVO.setAttributeValue("continuetime", svo.getAttributeValue("continuetime"));setGlbdef(this.nodeCode, svo, newVO);if ("60110release".equals(this.nodeCode)){newVO.setAttributeValue("presenter", "1");UIRefPane pane = (UIRefPane)this.billCardPanel.getHeadItem(CtrtVO.getDefaultTableName() + ".pk_unchreason").getComponent();pane.getRefModel().setPara1("1002Z71000000000PJRJ");pane.getRefModel().setCacheEnabled(false);pane.getRefModel().setRefNodeName(ResHelper.getString("6011make", "06011make0093"));}else if ("60110finish".equals(this.nodeCode)){UIRefPane pane = (UIRefPane)this.billCardPanel.getHeadItem(CtrtVO.getDefaultTableName() + ".pk_unchreason").getComponent();pane.getRefModel().setPara1("1002Z71000000000PJRK");pane.getRefModel().setCacheEnabled(false);pane.getRefModel().setRefNodeName(ResHelper.getString("6011make", "06011make0002"));}CtrtVO ctrtVO = (CtrtVO)newVO;boolean isBatch = this.psnList.length > 1;ctrtVO.setAttributeValue("name", isBatch ? psnVO.getPsnname() + "..." : psnVO.getPsnname());ctrtVO.setAttributeValue("code", isBatch ? psnVO.getPsncode() + "..." : psnVO.getPsncode());ctrtVO.setContractnum(isBatch ? psnVO.getVcontractnum() + "..." : psnVO.getVcontractnum());ctrtVO.setAttributeValue("job_org", psnVO.getPk_org());WizardFirstInterface firstFace = CMMethodFactory.getWizardFirstInterface(this.nodeCode, CtrtVO.getDefaultTableName());if (firstFace != null) {firstFace.setNewVOinfo(svo, newVO);}setValue(newVO);if (firstFace != null) {firstFace.setHeadItem(this.model, this.billCardPanel, this.psnList);}return ctrtVO;}private void setSignData(Integer conttype, UFLiteralDate literalDate, PsnSelListVO psnVO, CtrtVO ctrtVO, UFDateTime date){String vmodeltype = getInfosetPK();String pk_conmodel = null;try{ContmodelVO modelVO = ((ITempletBatchQueryService)NCLocator.getInstance().lookup(ITempletBatchQueryService.class)).queryDefautContmodelVOByOrg(this.model.getContext(), vmodeltype);if (modelVO != null) {pk_conmodel = modelVO.getPk_conmodel();}}catch (Exception e){Logger.error(e);}ctrtVO.setPk_conttext(pk_conmodel);ctrtVO.setPk_psndoc(psnVO.getPk_psndoc());ctrtVO.setPk_psnjob(psnVO.getPk_psnjob());ctrtVO.setIfprop(UFBoolean.TRUE);ctrtVO.setConttype(conttype);ctrtVO.setBegindate(literalDate);ctrtVO.setProbegindate(literalDate);ctrtVO.setSigndate(literalDate);ctrtVO.setRecordnum(Integer.valueOf(0));ctrtVO.setContinuetime(Integer.valueOf(1));ctrtVO.setTermtype("CM01");ctrtVO.setCont_unit(Integer.valueOf(getUnit("cont_unit")));ctrtVO.setProp_unit(Integer.valueOf(getUnit("prop_unit")));ctrtVO.setCreator(PubEnv.getPk_user());ctrtVO.setCreationtime(date);ctrtVO.setPk_org(this.pk_org);ctrtVO.setPk_group(this.model.getContext().getPk_group());ctrtVO.setPk_majorcorp(this.pk_org);boolean isBatch = this.psnList.length > 1;ctrtVO.setAttributeValue("name", isBatch ? psnVO.getPsnname() + "..." : psnVO.getPsnname());ctrtVO.setAttributeValue("code", isBatch ? psnVO.getPsncode() + "..." : psnVO.getPsncode());ctrtVO.setContractnum(isBatch ? psnVO.getVcontractnum() + "..." : psnVO.getVcontractnum());ctrtVO.setAttributeValue("job_org", psnVO.getPk_org());}private int getUnit(String code){return this.billCardPanel.getHeadItem(CtrtVO.getDefaultTableName() + "." + code).getDefaultValueObject() == null ? HRCMTermUnitUtils.TERMUNIT_MONTH : Integer.parseInt((String)this.billCardPanel.getHeadItem(CtrtVO.getDefaultTableName() + "." + code).getDefaultValueObject());}private PsnSelListVO[] getPsnSellist(){CenterWizardInitDataInterface initDataInterface = CMMethodFactory.getCenterWizardInitDataInterface(this.nodeCode, "hi_psndoc_ctrt");try{this.psnList = initDataInterface.getPsnSelListVOs(this.aggVOs, this.pk_org);}catch (BusinessException e){Logger.error(e.getMessage());}return this.psnList;}public String getInfosetPK(){try{if (this.model.getTableToInfosetPkMap().isEmpty()){StringBuffer where = new StringBuffer("pk_infoset_sort in (select pk_infoset_sort from hr_infoset_sort where sort_code = 'hrcm_cont') ");where.append("order by showorder ");InfoSetVO[] infosetVOs = ((IQueryMakeService)NCLocator.getInstance().lookup(IQueryMakeService.class)).queryInfoSet(this.model.getContext(), where.toString());if ((infosetVOs != null) && (infosetVOs.length > 0) && (infosetVOs[0] != null)) {for (InfoSetVO infosetVO : infosetVOs) {this.model.getTableToInfosetPkMap().put(infosetVO.getTable_code(), infosetVO.getPk_infoset());}}}return (String)this.model.getTableToInfosetPkMap().get(this.model.getModeName());}catch (BusinessException ex){throw new BusinessRuntimeException(ex.getMessage(), ex);}}private void setGlbdef(String nodecode, SuperVO oldVO, SuperVO newVO){IAttributeMeta[] attributes = oldVO.getMetaData().getAttributes();for (IAttributeMeta attribute : attributes) {if (!attribute.isStatic()) {newVO.setAttributeValue(attribute.getName(), oldVO.getAttributeValue(attribute.getName()));}}}private void initTermItem(BillCardPanel cardPanel, String pk_org, String nodecode, boolean isExtendPsn, boolean isFromContOpinion, int itemmonth, Integer extendtype){if ("60110change".equals(nodecode)){CardCheckProcessorImpl processor = new CardCheckProcessorImpl();processor.setExtendPsn(isExtendPsn);if (processor.getBillItem(cardPanel, "ifprop") != null){processor.getBillItem(cardPanel, "ifprop").setEdit(true);boolean flag = processor.getBillItem(cardPanel, "ifprop").isShowFlag();processor.setPropItem(cardPanel, flag);}}if ((!"60110sign".equals(nodecode)) && (!"60110extend".equals(nodecode))) {return;}CardCheckProcessorImpl processor = new CardCheckProcessorImpl();processor.setPk_org(pk_org);processor.setExtendPsn(isExtendPsn);processor.setExtendtype(extendtype);processor.refreshTermTypeStat(cardPanel, !"60110sign".equals(nodecode), isFromContOpinion, Integer.valueOf(itemmonth));}public String getTitle(){String title = "";if ("60110sign" == this.nodeCode) {title = ResHelper.getString("6011make", "06011make0129");} else if ("60110change" == this.nodeCode) {title = ResHelper.getString("6011make", "06011make0131");} else if ("60110extend" == this.nodeCode) {title = ResHelper.getString("6011make", "06011make0133");} else if ("60110finish" == this.nodeCode) {title = ResHelper.getString("6011make", "06011make0137");} else if ("60110release" == this.nodeCode) {title = ResHelper.getString("6011make", "06011make0135");}return title;}private void validateTermmonth(){try{for (Integer days : this.daysList){if (days.intValue() < 0) {throw new ValidationException(ResHelper.getString("6011make", "06011make0091"));}if (days.intValue() == 0) {throw new ValidationException(ResHelper.getString("6011make", "06011make0155"));}}}catch (ValidationException e){String msg = e.getMessage();ShowStatusBarMsgUtil.showStatusBarMsg(msg, this.model.getContext());MessageDialog.showErrorDlg(this, null, msg);throw new BusinessExceptionAdapter(e);}finally{this.daysList.clear();}}public AggPsnjobVO[] getAggVOs(){return this.aggVOs;}public void setAggVOs(AggPsnjobVO[] aggVOs){this.aggVOs = aggVOs;}public String getNodeCode(){return this.nodeCode;}public void setNodeCode(String nodeCode){this.nodeCode = nodeCode;}public String getPk_org(){return this.pk_org;}public void setPk_org(String pk_org){this.pk_org = pk_org;}public void afterEdit(BillEditEvent e){try{CheckProcessorFactory.createCenterCheckProcessor(e, this.pk_org, false).handleProcessor(this.billCardPanel);}catch (CheckException e1){MessageDialog.showWarningDlg(this, null, e1.getMessage());Logger.error(e1);}}public void bodyRowChange(BillEditEvent e) {}public boolean isOpenBusiFunc(){return this.isOpenBusiFunc;}public void setOpenBusiFunc(boolean isOpenBusiFunc){this.isOpenBusiFunc = isOpenBusiFunc;}public CtrtVO[] getCtrtVOs(){return this.ctrtVOs;}public void setCtrtVOs(CtrtVO[] ctrtVOs){this.ctrtVOs = ctrtVOs;}public int getExtendtype(){return this.extendtype;}public void setExtendtype(int extendtype){this.extendtype = extendtype;}public boolean beforeEdit(BillItemEvent e){BillItem item = e.getItem();if ((item.getComponent() instanceof UIRefPane)){UIRefPane refPane = (UIRefPane)item.getComponent();if ((refPane != null) && (refPane.getRefModel() != null)) {refPane.setPk_org(this.model.getContext().getPk_org());}}String itemCode = item.getKey();if (itemCode.contains("pk_conttext")){UIRefPane pane = (UIRefPane)item.getComponent();if ((pane != null) && (pane.getRefModel() != null)){ContModelRef refModel = (ContModelRef)pane.getRefModel();refModel.setPk_org(this.model.getContext().getPk_org());String orgSql = " hrcm_contmodel.pk_org in ('GLOBLE00000000000000', '" + this.model.getContext().getPk_group() + "', '" + this.model.getContext().getPk_org() + "')";pane.getRefModel().addWherePart(" and vmodeltype = '" + getInfosetPK() + "' and " + orgSql);}}return true;}private String[] getEditItemName(BillCardPanel cardPanel){BillItem[] items = cardPanel.getHeadItems();List<String> list = new ArrayList();for (BillItem billItem : items) {if (billItem.isEdit()) {list.add(billItem.getKey().substring("hi_psndoc_ctrt.".length()));}}return (String[])list.toArray(new String[list.size()]);}public String[] getAutoGeneratedCodes(){return this.autoGeneratedCodes;}public void setAutoGeneratedCodes(String[] autoGeneratedCodes){this.autoGeneratedCodes = autoGeneratedCodes;} }總結
以上是生活随笔為你收集整理的用友NC合同编码自定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014年计算机基础知识试题及答案,20
- 下一篇: 《思维训练500题》