Package com.exedosoft.plat

Examples of com.exedosoft.plat.Transaction


    // dao.setAutoClose(false);
    // dao.setIsTransaction(true);

    DOBO wfBO = DOBO.getDOBOByName("do_wfi_processinstance");

    Transaction t = new Transaction(wfBO.getDataBase());

    ProcessInstance pi = new ProcessInstance();
    NodeInstance niStart = null; // ///开始节点
    t.begin();
    try {
     
        if(pt.getPtName()==null){
          pt = ProcessTemplate.getPTByID(pt.getObjUid());
        }

      pi.setPtName(pt.getPtName());
      pi.setWfiDesc(pt.getPtDesc());

      pi.setExeStatus(Integer.valueOf(ProcessInstance.STATUS_INIT));
      pi.setPtUid(pt.getObjUid());
      String ptName = pt.getPtName();
      BOInstance bi = pt.getDoBO().getCorrInstance();
      if (bi == null) {
        t.rollback();
        throw new WFException("启动工作流失败:没有与业务表关联!");
      }
      pi.setInstanceUid(bi.getUid());
      if (bi.getName() != null && !bi.getName().equals("N/A")) {
        ptName = bi.getName();
      }

      if (pt.getDoBO2() != null) {
        BOInstance bi2 = DOGlobals.getInstance().getSessoinContext()
            .get(pt.getDoBO2());
        if (bi2 != null) {
          pi.setInstanceUid2(bi2.getUid());
        }
      }
      if (pt.getDoBO3() != null) {

        BOInstance bi3 = DOGlobals.getInstance().getSessoinContext()
            .get(pt.getDoBO3());
        if (bi3 != null) {
          pi.setInstanceUid3(bi3.getUid());
        }
      }

      pi.setWfiName(ptName);
      pi.setStartTime(new java.sql.Timestamp(System.currentTimeMillis()));

      SessionContext us = DOGlobals.getInstance().getSessoinContext();

      if(us.getUser()!=null){
        pi.setStartUser(us.getUser().getUid());
      }

      if (isRun) {
        pi.setExeStatus(Integer.valueOf(ProcessInstance.STATUS_RUN));
      }

      DAOUtil.BUSI().store(pi); // /////保存工作流实例

      PTNode startNode = pt.getStartNode();
      niStart = NodeInstance.initNodeInstance(pi, startNode,
          NodeInstance.STATUS_FREE);
      DAOUtil.BUSI().store(niStart);

      // // /////////如果模板存在节点
      // if (pt.getNodes() != null && pt.getNodes().size() > 0) {
      //
      // // ///存储Node 和 NodeInstance 的对应关系
      // // /////原因是要找到开始Node才能建立关联,要两次遍历
      // // //否则没必要用Map 保持他们的联系
      // PTNode start = null; // ////定义开始节点
      // HashMap mapNode = new HashMap();
      // // ///////////// 保存节点实例及下面的Actions,并返回开始节点
      // start = copyToNodeInstances(dao, pi, mapNode);
      // // ////////////建立该模板下的节点实例之间的关系。
      // buildInstanceRelation(pt, mapNode, dao);
      //             
      // niStart = (NodeInstance) mapNode.get(start);
      // } else {
      // throw new WFException("启动工作流失败:没有为工作流模板定义节点");
      // }
      // /////end copy nodes

      // /////////copy vars
      if (pt.retrievePtVars() != null && pt.retrievePtVars().size() > 0) {
        copyToVarInstances(pi);
      }
      // ///////////end copy vars

      // ////////////把控制权交给 Start NodeInstance.
      niStart.setExeStatus(Integer.valueOf(NodeInstance.STATUS_INIT));

      // niStart.perform();
    } catch (Exception ex) {
      t.rollback();
      throw new WFException("启动工作流失败", ex);
    } finally {
      t.end();
    }

    System.out.println("Start::" + niStart);
    // ///niStart 是开始节点,首先执行开始节点
    niStart.execute();
View Full Code Here


    aBO.setName(project.getName() + "_global_bo");
    aBO.setL10n(project.getL10n() + "_Global");

    DODataSource dds = DODataSource.parseGlobals();

    Transaction t = dds.getTransaction();

    t.begin();

    DOService aService = DOService.getService("DO_UI_PaneLinks_copy");
    try {
      // //////////保存业务包
      DAOUtil.INSTANCE().currentDataSource(dds);

      DAOUtil.INSTANCE().store(bp);

      // //保存业务对象
      aBO.setPakage(bp);

      DAOUtil.INSTANCE().store(aBO);
     
      ///////关联组织权限相关的业务包到初始化的工程下面

      DOService updateBPService = DOService.getService("DO_BusiPackage_Update_copy");
      BusiPackage bporg = BusiPackage.getPackageByName("dorgauth");
      bporg.setApplication(project);
      DAOUtil.INSTANCE().store(bporg,updateBPService);
     

      BusiPackage bpAuthSys = BusiPackage.getPackageByName("auth_system_imp");
      bpAuthSys.setApplication(project);
      DAOUtil.INSTANCE().store(bpAuthSys,updateBPService);

     
      BusiPackage bpLog = BusiPackage.getPackageByName("log_default_imp");
      bpLog.setApplication(project);
      DAOUtil.INSTANCE().store(bpLog,updateBPService);
     

      BusiPackage liuchengceshi = BusiPackage.getPackageByName("liuchengceshi");
      liuchengceshi.setApplication(project);
      DAOUtil.INSTANCE().store(liuchengceshi,updateBPService);
     
      BusiPackage gongzuoliu = BusiPackage.getPackageByName("gongzuoliu");
      gongzuoliu.setApplication(project);
      DAOUtil.INSTANCE().store(gongzuoliu,updateBPService);
     
      BusiPackage wf_history = BusiPackage.getPackageByName("wf_history");
      wf_history.setApplication(project);
      DAOUtil.INSTANCE().store(wf_history,updateBPService);

      /**
       * 存储应用的根面板
       */
      DOPaneModel pmRoot = new DOPaneModel();
      pmRoot.setCategory(aBO);
      pmRoot.setName("pane_" + project.getName());
      pmRoot.setL10n("pane_" + project.getL10n());
      pmRoot.setTitle(project.getDescription());

      // //////////////ccLayOutPane
      pmRoot.setController(contentPane);

      DAOUtil.INSTANCE().store(pmRoot);

      // ///////业务对象发布为一个应用
      project.setDobo(aBO);
      DAOUtil.INSTANCE().store(project);
     
      ////头部jsp
      DOResource rs = new DOResource();
      rs.setResourceName("jspheader_" + project.getName());
      rs.setResourcePath(project.getName() + "/FormHeader.jsp");
      rs.setResourceType(1);
      DAOUtil.INSTANCE().store(rs);
                                 
      /**
       * 建立新的头面板
       */
      DOPaneModel pmTop = new DOPaneModel();

      pmTop.setController(layOutHeader);
      pmTop.setLinkType(DOPaneModel.LINKTYPE_RESOURCE);
      pmTop.setLinkUID(rs.getObjUid());
      pmTop.setLayoutAlign("top");
      pmTop.setCategory(aBO);
      pmTop.setL10n(project.getL10n() + "_headerPane");
      pmTop.setName(project.getName() + "_headerPane");
      DAOUtil.INSTANCE().store(pmTop);

      /**
       * 建立根面板和头面板的关联关系
       */
      DOPaneLinks pmTopLink = new DOPaneLinks();
      pmTopLink.setParentPane(pmRoot);
      pmTopLink.setChildPane(pmTop);
      pmTopLink.setOrderNum(new Integer(5));
      DAOUtil.INSTANCE().store(pmTopLink, aService);

      /**
       * 创建下方的面板
       */
      DOPaneModel pmBottom = new DOPaneModel();
      pmBottom.setCategory(aBO);
      pmBottom.setL10n(project.getL10n()  + "_mainpane");
      pmBottom.setName(project.getName() + "_mainpane");

      pmBottom.setController(ccSplitePane);
      DAOUtil.INSTANCE().store(pmBottom);
      /**
       * 建立根面板和工作区域面板的关联
       */

      DOPaneLinks pmBottomLink = new DOPaneLinks();
      pmBottomLink.setParentPane(pmRoot);
      pmBottomLink.setChildPane(pmBottom);
      pmBottomLink.setOrderNum(new Integer(10));
      DAOUtil.INSTANCE().store(pmBottomLink, aService);

      // /左边面板

      DOMenuModel dmRoot = new DOMenuModel();
      dmRoot.setCategory(aBO);
      dmRoot.setController(menuController);
      // ////////同名DOMenuModel
      dmRoot.setName(project.getName() + "_root");
      dmRoot.setL10n("Welcome " + project.getL10n());
      DOService storeRootMenu = DOService.getService("DO_UI_MenuModel_Insert_firstlevel");
      DAOUtil.INSTANCE().store(dmRoot,storeRootMenu);     
     
      ////更新菜单获取的sql语句
       DOService menuService = DOService.getService("s_menumodel_byName");
       menuService.setMainSql("select * from do_ui_menumodel where name = '" + dmRoot.getName() + "'");
       DAOUtil.INSTANCE().store(menuService);
       

      DOMenuModel dmBP = new DOMenuModel();
      dmBP.setCategory(aBO);
      dmBP.setParentMenu(dmRoot);
      dmBP.setController(menuController);
      // ////////同名DOMenuModel
      dmBP.setName(project.getName());
      dmBP.setL10n(project.getL10n());
      DAOUtil.INSTANCE().store(dmBP);
     
     
      ///////组织权限相关的菜单 初始化到工程根菜单下面
      DOMenuModel dmmAuth = DOMenuModel.getMenuModelByName("dorgauth_bp");
      dmmAuth.setParentMenu(dmRoot);
      DAOUtil.INSTANCE().store(dmmAuth);
           
      ///把工作流相关的菜单初始化到工程根菜单下面
      DOMenuModel dorgauth_flow_test  = DOMenuModel.getMenuModelByName("dorgauth_flow_test");
      dorgauth_flow_test .setParentMenu(dmRoot);
      DAOUtil.INSTANCE().store(dorgauth_flow_test );
           
     
     
      ////工作台jsp
      rs = new DOResource();
      rs.setResourceName("workbenchjsp_" + project.getName());
      rs.setResourcePath(project.getName() + "/workbench.jsp");
      rs.setResourceType(1);
      DAOUtil.INSTANCE().store(rs);
     
      DOPaneModel pmContent = new DOPaneModel();// ///主内容显示区。
      pmContent.setCategory(aBO);
      pmContent.setName(project.getName() + "_MainContent");
      pmContent.setL10n(project.getL10n() + "_MainContent");
      pmContent.setController(mainPage);
      pmContent.setLinkType(DOPaneModel.LINKTYPE_RESOURCE);
      pmContent.setLinkUID(rs.getObjUid());
      DAOUtil.INSTANCE().store(pmContent);

      DOPaneLinks pmContentLink = new DOPaneLinks();
      pmContentLink.setParentPane(pmBottom);// //bottomPane为父亲
      pmContentLink.setChildPane(pmContent);
      pmContentLink.setOrderNum(new Integer(17));
      DAOUtil.INSTANCE().store(pmContentLink, aService);

      DOPaneModel pmLeft = new DOPaneModel();
      pmLeft.setController(layOutLeft);
      pmLeft.setLinkType(DOPaneModel.LINKTYPE_MENU);
      pmLeft.setLinkUID(dmRoot.getObjUid());
      pmLeft.setCategory(aBO);
      pmLeft.setL10n(project.getL10n() + "_leftindex_pane");
      pmLeft.setName(project.getName() + "_leftindex_pane");
     
     
      /**
       * 存储Mobile索引菜单的面包
       */
      DOPaneModel pmMobile = new DOPaneModel();
      pmMobile.setCategory(aBO);
      pmMobile.setName( project.getName() + "_mobile_pane");
      pmMobile.setL10n(project.getL10n() + "_Mobile");
      pmMobile.setTitle(project.getDescription());
      pmMobile.setExedoJsp("../mobile/exedo.jsp");
     
      pmMobile.setLinkType(DOPaneModel.LINKTYPE_MENU);
      pmMobile.setLinkUID(dmRoot.getObjUid());
      // //////////////ccLayOutPane
      pmMobile.setController(contentPane);

      DAOUtil.INSTANCE().store(pmMobile);

      /**
       * 保存左边的左边的索引菜单
       */
      pmLeft.setTargetPane(pmContent);
      DAOUtil.INSTANCE().store(pmLeft);

      DOPaneLinks pmLeftLink = new DOPaneLinks();
      pmLeftLink.setParentPane(pmBottom);// //bottomPane为父亲
      pmLeftLink.setChildPane(pmLeft);
      pmLeftLink.setOrderNum(new Integer(15));
      DAOUtil.INSTANCE().store(pmLeftLink, aService);
     
////最后copy
      this.copyDir(project);

    } catch (Exception e) {

      t.rollback();
      e.printStackTrace();
    } finally {
      t.end();
    }
 
    // /执行目录copy工作
  }
View Full Code Here

    processInstance.setExeStatus(Integer
        .valueOf(ProcessInstance.STATUS_FINISH));

    DOBO auth = DOBO.getDOBOByName("do_authorization");
    DODataSource dss = auth.getDataBase();
    Transaction ts = dss.getTransaction();
    ts.begin();

    try {
      DAOUtil.BUSI().store(processInstance);

      // /数据表转移到历史表中
      DOService dosPi = DOService
          .getService("do_wfi_his_processinstance_insert");
      DOService dosNi = DOService
          .getService("do_wfi_his_nodeinstance_insert");
      DOService dosVi = DOService
          .getService("do_wfi_his_varinstance_insert");
      DOService dosNid = DOService
          .getService("do_wfi_his_ni_dependency_insert");

      List<NodeInstance> nis = processInstance.retrieveNodeInstances();
      DAOUtil.BUSI().store(processInstance, dosPi);
      for (Iterator<NodeInstance> it = nis.iterator(); it.hasNext();) {
        NodeInstance ni = (NodeInstance) it.next();
        DAOUtil.BUSI().store(ni, dosNi);
        List<NIDependency> nidepes = ni.getPostNodeDepes();
        for (Iterator<NIDependency> itNi = nidepes.iterator(); itNi
            .hasNext();) {
          NIDependency niD = itNi.next();
          DAOUtil.BUSI().store(niD, dosNid);
        }
      }
      List<VarInstance> piVals = processInstance.retrieveVarInstances();
      for (Iterator<VarInstance> it = piVals.iterator(); it.hasNext();) {
        VarInstance vi = it.next();
        DAOUtil.BUSI().store(vi, dosVi);
      }
      // ////删除运行时表
      DOService deletePI = DOService
          .getService("do_wfi_processinstance_delete");
      deletePI.invokeUpdate(processInstance.getObjUid());

      DOService deleteVars = DOService
          .getService("do_wfi_varinstance_deletebypiuid");
      deleteVars.invokeUpdate(processInstance.getObjUid());

      DOService deleteNIs = DOService
          .getService("do_wfi_nodeinstance_deletebypiuid");
      deleteNIs.invokeUpdate(processInstance.getObjUid());

      DOService deleteNIRels = DOService
          .getService("do_wfi_ni_dependency_deleterubbish");
      deleteNIRels.invokeUpdate();

    } catch (Exception ex1) {
      ts.rollback();
      ex1.printStackTrace();
      throw new WFException("流程结束,保存结束状态出错::" + ex1.toString(), ex1);
    }
    ts.end();

  }
View Full Code Here

      return;
    }
   
    //////property  ---- linkBO
    ///从property往下追
    Transaction t = DODataSource.parseGlobals().getTransaction();
    t.begin();
    List<DOBOProperty> lists = DAOUtil.INSTANCE().select(DOBOProperty.class, "select * from DO_BO_Property  where col_name = ?", propertyName);
   
    ////可以根据外键关系创建主子表的关联关系
    try {
      for(Iterator<DOBOProperty> it = lists.iterator(); it.hasNext();){
        DOBOProperty dop = it.next();
        if(dop.getLinkBO()==null){
          dop.setLinkBO(aBO);
          DAOUtil.INSTANCE().store(dop);
        }
        List<DOFormModel>  forms = DAOUtil.INSTANCE().select(DOFormModel.class, "select * from DO_UI_FormModel  where relationPropertyUid = ?", dop.getObjUid());
        for(Iterator<DOFormModel>  itFm = forms.iterator(); itFm.hasNext();){
          DOFormModel fm = itFm.next();
          if(fm.getLinkService()==null){
            if(fm.getGridModel().getName().toLowerCase().contains("browse") || fm.getGridModel().getName().toLowerCase().contains("_list") || fm.getGridModel().getName().toLowerCase().contains("_result") ){
              fm.setLinkService(aBO.getDSeleByIdService());
              fm.setController(DOController.getControllerByName(DOValueResultList.class.getCanonicalName()));
            }else{
              fm.setLinkService(aBO.getDSeleAllService());
              fm.setController(DOController.getControllerByName(DOResultListPopup.class.getCanonicalName()));
            }
            DAOUtil.INSTANCE().store(fm);
          }
        }
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      t.rollback();
    }
   
    t.end();
   
   
   
   
  }
View Full Code Here

    }

    // 总面板面呈
    DODataSource dds = DODataSource.parseGlobals();
    DAOUtil.INSTANCE().currentDataSource(dds);
    Transaction t = dds.getTransaction();

    try {

      if (DOPaneModel.getPaneModelByName(mainPaneName) != null) {
        System.err.println("面板已经存在------------");
        return;
      }
      t.begin();

      /**
       * 生成总面板
       */
      DOPaneModel pmTotal = new DOPaneModel();
      pmTotal.setName(mainPaneName);
      pmTotal.setL10n(mainPaneName);
      pmTotal.setCategory(category);
      pmTotal.setController(paneOverFlow);

      DOService aService = DOService.getService("do_ui_panemodel_copy");
      DAOUtil.INSTANCE().store(pmTotal, aService);

      DOPaneModel pmResult = geneResult(properties);
      DOPaneModel pmCondition = geneCondition(properties, pmResult);

      aService = DOService.getService("DO_UI_PaneLinks_copy");
      DOPaneLinks link1 = new DOPaneLinks();
      link1.setParentPane(pmTotal);
      link1.setChildPane(pmCondition);
      link1.setOrderNum(5);
      DAOUtil.INSTANCE().store(link1, aService);

      DOPaneLinks link2 = new DOPaneLinks();
      link2.setParentPane(pmTotal);
      link2.setChildPane(pmResult);
      link2.setOrderNum(10);
      DAOUtil.INSTANCE().store(link2, aService);

      // //搞一下菜单

      DOPaneModel _opener_tab = DOPaneModel
          .getPaneModelByName("_opener_tab");

      String menuName = "";

      try {
        String bpUid = DOGlobals.getInstance().getSessoinContext()
            .getFormInstance().getValue("bpUid");
        BusiPackage dbp = BusiPackage.getPackageByID(bpUid);
        menuName = dbp.getApplication().getName();
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }

      DOMenuModel parentMenu = DOMenuModel.getMenuModelByName(menuName);
      DOBO boMenu = DOBO.getDOBOByName("DO_UI_MenuModel");
     
      if(parentMenu==null){
        DOMenuModel dmm  =  DOMenuModel.getMenuModelByName(menuName+"_root");
        if(dmm!=null){
          parentMenu = (DOMenuModel)dmm.retrieveChildren().get(0);
        }
      }
     
      if (parentMenu != null) {
        boMenu.refreshContext(parentMenu.getObjUid());
      }
      DOMenuModel dmm = new DOMenuModel();
      dmm.setName(geneATable);
      dmm.setL10n(geneATable);
      dmm.setLinkPane(pmTotal);
      dmm.setTargetPane(_opener_tab);
      dmm.setParentMenu(parentMenu);
      dmm.setCategory(category);
      dmm.setOrderNum(5);
      DOService menuModelInsert = DOService
          .getService("DO_UI_MenuModel_copy");
      DAOUtil.INSTANCE().store(dmm,menuModelInsert);

      t.end();
      // conditionGrid.setService(sService)

    } catch (Exception e) {
      t.rollback();
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }
View Full Code Here

    aBO.setName(project.getName() + "global.bo");
    aBO.setL10n(project.getL10n() + "全局业务对象");
   
    DODataSource dds = DODataSource.parseGlobals();
   
    Transaction t = dds.getTransaction();
   
    t.begin();
   
    try {
      // //////////保存业务包
      DAOUtil.INSTANCE().store(bp);

      // //保存业务对象
      aBO.setPakage(bp);
      DAOUtil.INSTANCE().store(aBO);

      /**
       * 存储应用的根面板
       */
      DOPaneModel pmRoot = new DOPaneModel();
      pmRoot.setCategory(aBO);
      pmRoot.setName("pane_" + project.getName());
      pmRoot.setL10n("根面板" + project.getL10n());
      pmRoot.setTitle(project.getDescription());
      pmRoot.setLayOutType(Integer.valueOf(DOPaneModel.LAYOUT_VERTICAL));

      // //////////////ccLayOutPane
      pmRoot.setController(ccLayOutPane);

      DAOUtil.INSTANCE().store(pmRoot);

      // ///////业务对象发布为一个应用
    //  project.setDobo(aBO);
      DAOUtil.INSTANCE().store(project);

      /**
       * 从pane_mainMenuBar copy信息数据
       */
      DOPaneModel fromPmTop = DOPaneModel
          .getPaneModelByName("BaseAnoleHeader");
      /**
       * 建立新的头面板
       */
      DOPaneModel pmTop = new DOPaneModel();

      pmTop.setController(fromPmTop.getController());
      pmTop.setLayOutType(fromPmTop.getLayOutType());
      pmTop.setLinkType(fromPmTop.getLinkType());
      pmTop.setLinkUID(fromPmTop.getLinkUID());
      pmTop.setLayoutAlign("top");
      pmTop.setCategory(aBO);

      pmTop.setTargetPane(fromPmTop.getTargetPane());
      pmTop.setL10n(project.getL10n() + "头面板");
      pmTop.setName(project.getName() + "header_pane");
      DAOUtil.INSTANCE().store(pmTop);

      /**
       * 建立主面板和头面板的关联关系
       */
      DOPaneLinks pmTopLink = new DOPaneLinks();
      pmTopLink.setParentPane(pmRoot);
      pmTopLink.setChildPane(pmTop);
      pmTopLink.setOrderNum(new Integer(5));
      DAOUtil.INSTANCE().store(pmTopLink);

      /**
       * 创建下方的面板
       */
      DOPaneModel pmBottom = new DOPaneModel();
      pmBottom.setCategory(aBO);
      pmBottom.setL10n(project.getL10n() + "工作区域面板");
      pmBottom.setName(project.getName() + "main_pane");
      pmBottom.setLayOutType(Integer
          .valueOf(DOPaneModel.LAYOUT_HORIZONTAL));
      // ///////splitPane

      pmBottom.setController(ccSplitePane);
      pmBottom.setLayoutAlign("client");
      DAOUtil.INSTANCE().store(pmBottom);
      /**
       * 建立主面板和工作区域面板的关联
       */

      DOPaneLinks pmBottomLink = new DOPaneLinks();
      pmBottomLink.setParentPane(pmRoot);
      pmBottomLink.setChildPane(pmBottom);
      pmBottomLink.setOrderNum(new Integer(10));
      DAOUtil.INSTANCE().store(pmBottomLink);

      /**
       * 创建左边索引面板
       */

      DOPaneModel fromPmLeft = DOPaneModel
          .getPaneModelByName("pane_zf_left_xp");
      DOPaneModel pmLeft = new DOPaneModel();

     

      pmLeft.setController(fromPmLeft.getController());
      pmLeft.setLayOutType(fromPmLeft.getLayOutType());
      pmLeft.setLinkType(fromPmLeft.getLinkType());
      pmLeft.setLinkUID(fromPmLeft.getLinkUID());
      pmLeft.setLayoutAlign(fromPmLeft.getLayoutAlign());
      pmLeft.setCategory(aBO);

      pmLeft.setTargetPane(fromPmLeft.getTargetPane());
      pmLeft.setL10n(project.getL10n() + "左边索引面板");
      pmLeft.setName(project.getName() + "leftindex_pane");

      pmLeft.setController(ccTreePane);
     
      DAOUtil.INSTANCE().store(pmLeft);
     

      DOPaneLinks pmLeftLink = new DOPaneLinks();
      pmLeftLink.setParentPane(pmBottom);// //bottomPane为父亲
      pmLeftLink.setChildPane(pmLeft);
      pmLeftLink.setOrderNum(new Integer(15));
      DAOUtil.INSTANCE().store(pmLeftLink);

      DOPaneModel pmContent = new DOPaneModel();// ///主内容显示区。
      pmContent.setCategory(aBO);
      pmContent.setName(project.getName() + "_MainContent");
      pmContent.setL10n(project.getL10n() + "基本内容显示");


      pmContent.setController(cContentPane);
      DAOUtil.INSTANCE().store(pmContent);

      DOPaneLinks pmContentLink = new DOPaneLinks();
      pmContentLink.setParentPane(pmBottom);// //bottomPane为父亲
      pmContentLink.setChildPane(pmContent);
      pmContentLink.setOrderNum(new Integer(17));
      DAOUtil.INSTANCE().store(pmContentLink);

      /**
       * 保存左边的左边的索引菜单
       */
      pmLeft.setTargetPane(pmContent);
     
     
      DOMenuModel dmRoot = new DOMenuModel();
      dmRoot.setCategory(aBO);
      dmRoot.setController(menuController);
      //////////同名DOMenuModel
      dmRoot.setName(project.getName()+"_root");
      dmRoot.setL10n(project.getL10n()+"_根菜单");
      DAOUtil.INSTANCE().store(dmRoot);
     
     
      DOMenuModel dmBP = new DOMenuModel();
      dmBP.setCategory(aBO);
      dmBP.setParentMenu(dmRoot);
      dmBP.setController(menuController);
      //////////同名DOMenuModel
      dmBP.setName(project.getName());
      dmBP.setL10n(project.getL10n()+"_根业务对象");
      DAOUtil.INSTANCE().store(dmBP);
     
      DOMenuLinks links = new DOMenuLinks();
      links.setLinkType(DOMenuLinks.LINKTYPE_PANEMODEL);
      links.setLinkUID(pmLeft.getObjUid());
      links.setMenuModel(dmRoot);
      links.setOrderNum(Integer.valueOf(1000));
      DAOUtil.INSTANCE().store(links);
       
     
      DAOUtil.INSTANCE().store(pmLeft);

     
    

    } catch (Exception e) {
     
      t.rollback();
      e.printStackTrace();
    }
    finally {
      t.end();
    }
  }
View Full Code Here

    // //first gene component!
//    this.geneForms(dao);
   
    DODataSource dss = DODataSource.parseGlobals();
    Transaction t = dss.getTransaction();
   
 

    // ///////////////////second generator grid and panes
    try {
      t.begin();
      List sers = DAOUtil.INSTANCE().select(DOService.class, SQL_SELECT_SERVICE,this.geneATable);

      /**
       * 根据Service生成ui组件。
       */
      for (Iterator itServ = sers.iterator(); itServ.hasNext();) {

        DOService aService = (DOService) itServ.next();

        if (aService.getName().endsWith("browse")) {
          genePaneAndGrid( aService, gridBrowse, "");
          genePaneAndGrid( aService, gridUpdate, ".update");
        } else if (aService.getName().endsWith("insert")) {
          continue;
        } else if (aService.getName().endsWith("update")) {
          continue;
        } else if (aService.getName().endsWith("list")) {
          genePaneAndGrid( aService, gridList, "");
          genePaneAndGrid( aService, gridInsert, ".insert");
        }
      }



    } catch (Exception e) {
      t.rollback();
      e.printStackTrace();
    } finally {
      t.end();
    }
  }
View Full Code Here

    if (service.getProcessTemplate() == null) {
      this.setEchoValue(I18n.instance().get("服务未定义工作流模板"));
      return NO_FORWARD;
    }
    Transaction t = new Transaction(service.getBo().getDataBase());
    t.begin();
    try {
      service.invokeUpdate();

      WFEngine wfi = WFEngineFactory.getWFEngine();
      ProcessTemplate pt = this.service.getProcessTemplate();
//      this.service.getProcessTemplate().getDoBO().refreshContext(arg0)
      wfi.startProcess(pt);
    } catch (Exception e) {
      e.printStackTrace();
      this.setEchoValue(e.getLocalizedMessage());
      t.rollback();
      return NO_FORWARD;
    } finally {
      t.end();
    }
    return DEFAULT_FORWARD;
  }
View Full Code Here

  public String excute() throws ExedoException {

    DOBO bo = DOBO.getDOBOByName("do_pt_processtemplate");
    BOInstance curPt = bo.getCorrInstance();
   
    Transaction t = bo.getDataBase().getTransaction();
    t.begin();


    try {
     
      // /删除选中模板的节点
      if (curPt != null) {
        DOService deleService = DOService
            .getService("do_pt_node_deletebyptuid");
        deleService.invokeUpdate(curPt.getUid());

        ////删除关联
        DOService deleRelations = DOService
        .getService("do_pt_node_denpendency_deleterubbish");
        deleRelations.invokeUpdate();
      }else{
        this.setEchoValue(I18n.instance().get("当前Session丢失,请重新登录!"));

        return NO_FORWARD;
      }

      String ptXml = DOGlobals.getInstance().getSessoinContext()
          .getFormInstance().getValue("ptXml");
      System.out.println("PT_XML::" + ptXml);

      DOService insertNodeService = DOService.getService("do_pt_node_insert");
      DOService getNodeByUid = DOService.getService("do_pt_node_browse");
      DOService insertNodeDService = DOService
          .getService("do_pt_node_denpendency_insert");
      DOService getNodeDByUid = DOService.getService("do_pt_node_denpendency_browse");
     
      StringReader read = new StringReader(ptXml);
      // 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
      InputSource source = new InputSource(read);

      Document doc = DOMXmlUtil.getInstance().getDocumentBuilder().parse(
          source);
      NodeList nList = doc.getElementsByTagName("node");

      for (int i = 0; i < nList.getLength(); i++) {
        Node node = nList.item(i);
        if (node.getNodeType() == Document.ELEMENT_NODE) {
          Element e = (Element) node;
          PTNode ptNode = new PTNode();
          List existNodes = getNodeByUid.invokeSelect(e.getAttribute("id"));
          if(existNodes!=null && existNodes.size() > 0){
            continue;
          }
         
          ptNode.setObjUid(e.getAttribute("id"));
          ptNode.setNodeName(e.getAttribute("nodeName"));
          ptNode.setAccessClass(e.getAttribute("accessClass"));
          if (e.getAttribute("authType") != null
              && !e.getAttribute("authType").trim().equals("")) {
            ptNode.setAuthType(Integer.parseInt(e
                .getAttribute("authType")));
          }
         
          String autoService = e.getAttribute("autoService");
          if(autoService!=null  && !autoService.trim().equals("")){
            DOService aService = DOService.getService(autoService);
            if(aService!=null){
              ptNode.setAutoExcutesService(aService);
            }
          }
           
          String paneName = e.getAttribute("paneName");
          if(paneName!=null  && !paneName.trim().equals("")){
            DOPaneModel aPM = DOPaneModel.getPaneModelByName(paneName);
            if(aPM!=null){
              ptNode.setPane(aPM);
            }
          }
         
          ptNode.setConditon(e.getAttribute("condition"));
          ptNode.setDecisionExpression(e
              .getAttribute("decisionExpression"));
          if(e.getAttribute("decisionType")!=null && !e.getAttribute("decisionType").trim().equals("")){
            ptNode.setDecisionType(Integer.parseInt(e.getAttribute("decisionType")));
          }
          ptNode.setNodeDesc(e.getAttribute("nodeDesc"));
          ptNode.setNodeStateShow(e.getAttribute("nodeStateShow"));
          ptNode.setNodeStateShowBack(e
              .getAttribute("nodeStateShowBack"));

          ptNode.setNodeType(e.getAttribute("nodeType"));

          ptNode.setPassTxt(e.getAttribute("passTxt"));
          ptNode.setRejectTxt(e.getAttribute("rejectTxt"));
          ptNode.setSpecName(e.getAttribute("specName"));
          ptNode.setNodeExt1(e.getAttribute("subflow"));
         
          if(e.getAttribute("x")!=null){
            ptNode.setX(Integer.parseInt(e.getAttribute("x")));
          }
         
          if(e.getAttribute("y")!=null){
            ptNode.setY(Integer.parseInt(e.getAttribute("y")));
          }
         
          System.out.println("PTNODE::::::::" + ptNode);
          DAOUtil.INSTANCE().store(ptNode, insertNodeService);

        }
      }

      nList = doc.getElementsByTagName("transition");
      for (int i = 0; i < nList.getLength(); i++) {
        Node node = nList.item(i);
        if (node.getNodeType() == Document.ELEMENT_NODE) {
          Element e = (Element) node;
          List exists = getNodeDByUid.invokeSelect(e.getAttribute("id"));
          if(exists!=null && exists.size() > 0){
            continue;
          }
          NodeDenpendency nd = new NodeDenpendency();
          nd.setObjUid(e.getAttribute("id"));
          nd.setCondition(e.getAttribute("condition"));
          nd.setShowValue(e.getAttribute("showvalue"));
          PTNode preNode = PTNode.getNodeById(e.getAttribute("from"));
          nd.setPreNode(preNode);

          PTNode postNode = PTNode.getNodeById(e.getAttribute("to"));
          nd.setPostNode(postNode);

          System.out.println("NodeDenpendency::" + nd);
          DAOUtil.INSTANCE().store(nd, insertNodeDService);

        }
      }

    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      t.rollback();
    }
    t.end();

    // TODO Auto-generated method stub
    return DEFAULT_FORWARD;
  }
View Full Code Here

    } else {//单租户情况
      dss = selected.getDataBase();
    }
   
   
    Transaction t = dss.getTransaction();
    t.begin();

    // /先确定删除的
    List list = selected.retrieveProperties();
    List propCols = new ArrayList();

    for (Iterator it = list.iterator(); it.hasNext();) {
      DOBOProperty dop = (DOBOProperty) it.next();
      if (dop.getIsPersistence() == null
          || dop.getIsPersistence().intValue() == DOBOProperty.PERSISTENCE_YES) {
        propCols.add(dop.getObjUid());
      }
    }
    List removeCols = new ArrayList(propCols);

    System.out.println("AllCols::" + removeCols);

    removeCols.removeAll(listHiddenKeys);
    // //需要删除的字段propCols

    System.out.println("RemoveCols::" + removeCols);

    for (int i = 0; i < removeCols.size(); i++) {
      String colObjuid = (String) removeCols.get(i);
      DOBOProperty dop = DOBOProperty.getDOBOPropertyByID(colObjuid);

      StringBuffer sb = new StringBuffer("alter table ");
      sb.append(selected.getSqlStr()).append(" drop column ").append(
          dop.getColName());

      listSql.add(sb.toString());

      pm.removeProperty(selected, dop);
    }

    // 先确定新增的

    for (int len = 0; len < key_hiddens.length; len++) {

      String keyHidden = key_hiddens[len];
      if (keyHidden == null || keyHidden.equals("")) {
        if (colNames[len] != null && !colNames[len].equals("")) {
          DOBOProperty dopExists =  DOBOProperty.getDOBOPropertyByName(selected.getName(),
              colNames[len]);
          if (dopExists==null || dopExists.getColName()==null) {

            StringBuffer sb = new StringBuffer("alter table ");
            sb.append(selected.getSqlStr()).append(" add  ")
                .append(colNames[len]).append(" ").append(
                    dbtypes[len]);

            int iDBSize = 255;
            if (dbsizes[len] != null && !dbsizes[len].equals("")) {
              iDBSize = Integer
                  .parseInt(dbsizes[len]);
              sb.append(" (").append(dbsizes[len]).append(")");
            }
            listSql.add(sb.toString());

            int iType = 12;
            try {
              iType = Integer.parseInt(map.get(dbtypes[len]
                  .toLowerCase()));
            } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
            }
            System.out.println("ColName:" + colNames[len]
                + "  DBSize:" + dbsizes[len]);
            pm.addProperty(selected, colNames[len], iType, iDBSize);
           

          }else{
            System.out.println("已经存在ColName::" + DOBOProperty.getDOBOPropertyByName(selected.getName(),
                colNames[len]));
          }
        }
      }
    }

    // //确定修改的

    Connection con = null;
    try {
      con = dss.getConnection();
      Statement stmt = con.createStatement();

      for (Iterator<String> it = listSql.iterator(); it.hasNext();) {
        String aSql = it.next();
        stmt.execute(aSql);
      }
      stmt.close();
    } catch (SQLException ex) {
      ex.printStackTrace();
      this.setEchoValue(ex.getMessage());
      return NO_FORWARD;

    } finally {

      t.end();
      try {
        if (con != null && !con.isClosed()) {
          con.close();
        }
      } catch (SQLException ex1) {
View Full Code Here

TOP

Related Classes of com.exedosoft.plat.Transaction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.