/** * @see com.pureinfo.importer.ref.IImportorRef#convert(com.pureinfo.dolphin.model.DolphinObject, * com.pureinfo.dolphin.model.DolphinObject, java.lang.String, java.lang.String, * com.pureinfo.dolphin.persister.ISession, com.pureinfo.dolphin.persister.ISession, * com.pureinfo.dolphin.mapping.EntityMetadata, java.lang.String, java.lang.String) */ public Object convert( DolphinObject _old, DolphinObject _new, String _sFromProperty, String _sToProperty, ISession _fromSession, ISession _toSession, EntityMetadata _metadata, String _sKey, String _sToTable) throws PureException { int objId = _new.getIntProperty("id", 0); IPatentMgr mgr = (IPatentMgr) ArkContentHelper.getContentMgrOf(SRMTypes.PATENT); Patent patent = (Patent) mgr.lookupById(objId); if (patent == null) { return null; } if (mgr.openIsAuth(patent.getPatentType())) { patent.setStatus(SRMConstants.PATENT_STATUS_HAS_RIGHT); patent.setWarrantDate(patent.getPublicDate()); patent.setProbWeight(WeightCalcHelper.getWeightCalculator(patent).calcProbWeight()); mgr.save(patent); } return null; }
private static void update0(int _nProductForm) throws PureException { IStatement query = null; IObjects result = null; try { int[] aValues = { // // 1964,// // 1978, 1979,// // 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989,// 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, // 2000, 2001, 2002, 2003, 2004, 2005, 2006 // }; IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class); String strSQL = "SELECT {this.id},{this.serialNo},{this.publishDate} FROM {this}0 WHERE {this.productForm}=" + _nProductForm + " AND year({this.publishDate})=?"; for (int j = 0; j < aValues.length; j++) { query = mgr.createQuery(strSQL, 0); query.setInt(0, aValues[j]); result = query.executeQuery(); int max = getMaxSerialNo( "SELECT MAX({this.serialNo}) AS _MAX FROM {this} WHERE {this.productForm}=" + _nProductForm + " AND year({this.publishDate})=" + aValues[j]); // int max=2005608586; int i = max; for (Iterator iter = result.iterator(); iter.hasNext(); i++) { Product product = (Product) iter.next(); int nSerialNo = 0; if (max > 1) { nSerialNo = i; } else { nSerialNo = aValues[j] * 1000000 + 100000 * _nProductForm + i; } System.out.println(product.getId() + " : " + nSerialNo); product.setProperty("serialNo", nSerialNo); mgr.saveToTemp(product, false); } } } finally { DolphinHelper.clear(result, query); } }
/** * Returns the objects collection. * * @param */ protected IObjects getIObjects(int _nMaxSize) throws PureException { SearchForm thisform = (SearchForm) form; // 1. to get the query filter QueryFilter filter = thisform.getQueryFilter(); if (filter.getSelect() == null) { filter.addPropertySelect("this", "*"); } // 2. to render SQL IContentMgr mgr = ArkContentHelper.getContentMgrOf(thisform.getEntityMetadata().getEntityClass()); List params = new ArrayList(); String strSQL = filter.toSQL(params); if (this.isFromTemp()) { strSQL = strSQL.replaceAll("\\{this\\}", mgr.getTempTable(true) + " this"); } logger.debug("SQL=" + strSQL); // 3. to execute the query IStatement query = null; try { query = mgr.createQuery(strSQL, 0); filter.registerEntitiesInQuery(query); query.setParameters(0, params); if (_nMaxSize > 0) { query.setMaxSize(_nMaxSize); } return query.executeQuery(); } finally { params.clear(); if (query != null) query.clear(); } }
/** * @see com.pureinfo.importer.ref.IImportorRef#convert(com.pureinfo.dolphin.model.DolphinObject, * com.pureinfo.dolphin.model.DolphinObject, java.lang.String, java.lang.String, * com.pureinfo.dolphin.persister.ISession, com.pureinfo.dolphin.persister.ISession, * com.pureinfo.dolphin.mapping.EntityMetadata, java.lang.String, java.lang.String) */ public Object convert( DolphinObject _old, DolphinObject _new, String _sFromProperty, String _sToProperty, ISession _fromSession, ISession _toSession, EntityMetadata _metadata, String _sKey, String _sToTable) throws PureException { String sPrjNumber = _old.getStrProperty(_sFromProperty); Project project = null; IObjects projects = null; IStatement query = null; try { IProjectMgr mgr = (IProjectMgr) ArkContentHelper.getContentMgrOf(Project.class); query = mgr.createQuery("SELECT * FROM {this} WHERE {this.projectNumber}=?", 1); query.setString(0, sPrjNumber); projects = query.executeQuery(); project = (Project) projects.next(); } finally { DolphinHelper.clear(projects, query); } if (project != null) { _new.setProperty("bigChecked", true); return "1"; } _new.setProperty("bigChecked", false); return "0"; }
/** @see com.pureinfo.ark.interaction.ActionBase#executeAction() */ public ActionForward executeAction() throws PureException { int nCollegeId = request.getRequiredInt("college", "ѧԺID"); IOrganizationMgr mgr = (IOrganizationMgr) ArkContentHelper.getContentMgrOf(Organization.class); List listIns = mgr.getChildren(nCollegeId, true); Document sInsJson = makeXML(listIns); writeResponse(sInsJson); return null; }
/** * @param org2Names * @param org2Ids * @throws PureException */ private void setOrg2(List org2Names, List org2Ids) throws PureException { IOrganizationMgr mgr = (IOrganizationMgr) ArkContentHelper.getContentMgrOf(Organization.class); List objs = mgr.findAllByType(SRMConstants.ORG_TYPE.ACADEMY, true); for (Iterator iter = objs.iterator(); iter.hasNext(); ) { Organization dept = (Organization) iter.next(); org2Names.add(dept.getName()); org2Ids.add(new Integer(dept.getId())); } }
/** * @param _sTeamId * @throws PureException */ public void deleteAllMember(int _sTeamId) throws PureException { if (logger.isDebugEnabled()) { logger.debug("to deleteAllMember..."); } ITeamMemberMgr memberMgr = (ITeamMemberMgr) ArkContentHelper.getContentMgrOf(SRMTypes.TEAM_MEMBER); memberMgr.deleteAllByTeamId(_sTeamId); }
private void saveDepts(Team _team, List _deptList) throws PureException { IObjDeptMappingMgr mgr = (IObjDeptMappingMgr) ArkContentHelper.getContentMgrOf(SRMTypes.OBJ_DEPT_MAPPING); ObjDeptMapping dept; for (Iterator iterator = _deptList.iterator(); iterator.hasNext(); ) { dept = (ObjDeptMapping) iterator.next(); dept.setObjId(_team.getId()); mgr.save(dept); } }
/** * @param _sTeam * @param _sLoginUser * @throws PureException */ public void delete(Team _sTeam, IUser _sLoginUser) throws PureException { ITeamMgr teamMgr = (ITeamMgr) ArkContentHelper.getContentMgrOf(SRMTypes.TEAM); this.deleteAllMember(_sTeam.getId()); this.deleteAllDepts(_sTeam); if (_sTeam.isFromFormal()) { teamMgr.delete(_sTeam); } else { teamMgr.deleteTempById(_sTeam.getId()); } }
/** * @param _sTeam * @param _sLoginUser * @throws PureException */ public void doEditFromFormal(Team _sTeam, IUser _sLoginUser) throws PureException { ITeamMgr teamMgr = (ITeamMgr) ArkContentHelper.getContentMgrOf(SRMTypes.TEAM); List list = _sTeam.getMemberList(); teamMgr.save(_sTeam); this.deleteAllMember(_sTeam.getId()); this.saveMember(_sTeam.getId(), list); List deptList = _sTeam.getDeptList(); this.deleteAllDepts(_sTeam); this.saveDepts(_sTeam, deptList); }
/** @see com.pureinfo.ark.interaction.ActionBase#executeAction() */ public ActionForward executeAction() { AddEditForm roleForm = (AddEditForm) form; try { Role role = (Role) roleForm.getObj(); IRoleMgr mgr = (IRoleMgr) ArkContentHelper.getContentMgrOf(Role.class); mgr.save(role); return mapping.findForward("editRoleSuccess"); } catch (Exception ex) { ex.printStackTrace(System.err); return mapping.findForward("editRoleFailure"); } finally { LocalContextHelper.closeSession(); } }
/** * @param _nTeamId * @param list * @throws PureException */ public void saveMember(int _nTeamId, List list) throws PureException { if (logger.isDebugEnabled()) { logger.debug("to saveMember..."); } logger.debug("there's " + list.size() + " members"); ITeamMemberMgr memberMgr = (ITeamMemberMgr) ArkContentHelper.getContentMgrOf(SRMTypes.TEAM_MEMBER); for (Iterator iter = list.iterator(); iter.hasNext(); ) { TeamMember element = (TeamMember) iter.next(); element.setTeamId(_nTeamId); memberMgr.save(element); } }
/** * @param _nPatentId * @throws PureException */ private void updateOnePatent(int _nPatentId) throws PureException { IPatentMgr patentMgr = (IPatentMgr) ArkContentHelper.getContentMgrOf(Patent.class); Patent checkPatent = (Patent) patentMgr.lookupById(_nPatentId); if (request.getParameter("actionType").equals("cer")) { checkPatent.setIsCerSave(1); checkPatent.setCerDate(new Date()); } // else if(request.getParameter("actionType").equals("datum")){ // checkPatent.setIsDatumSave(1); // checkPatent.setDatumDate(new Date()); // } patentMgr.save(checkPatent); }
public String getMessage() throws PureException { IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class); QueryFilter filter = ((SearchForm) form).getQueryFilter(); int nProductForm = request.getInt("dp_productForm", "productForm", 0); if (nProductForm == 0) { nProductForm = request.getInt("paperForm", "productForm", 0); if (nProductForm == 0) { logger.debug("未知成果类型"); return super.getMessage(); } } return mgr.getMessageInfo(filter, nProductForm); }
private int getPublicationId(String _sISSN) throws PureException { IStatement query = null; IObjects result = null; try { IContentMgr mgr = ArkContentHelper.getContentMgrOf(Publication.class); final String strSQL = "SELECT * FROM {this} WHERE {this.publishCode}='" + _sISSN + '\''; query = mgr.createQuery(strSQL, 1); result = query.executeQuery(); Publication publication = (Publication) result.next(); if (publication != null) return publication.getId(); return 0; } finally { DolphinHelper.clear(result, query); } }
private static int getMaxSerialNo(String _sSQL) throws PureException { IStatement query = null; IObjects result = null; try { IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class); query = mgr.createQuery(_sSQL, 0); result = query.executeQuery(); Product product = (Product) result.next(); if (product == null) { return 1; } return product.getIntProperty("_MAX", 0) + 1; } finally { DolphinHelper.clear(result, query); } }
/** * @param _sTeam * @param _sLoginUser * @throws PureException */ public void doEditFromTemp(Team _sTeam, IUser _sLoginUser) throws PureException { if (logger.isDebugEnabled()) { logger.debug("doEditFromTemp..."); } ITeamMgr teamMgr = (ITeamMgr) ArkContentHelper.getContentMgrOf(SRMTypes.TEAM); List list = _sTeam.getMemberList(); teamMgr.saveToTemp(_sTeam, false); this.deleteAllMember(_sTeam.getId()); this.saveMember(_sTeam.getId(), list); List deptList = _sTeam.getDeptList(); this.deleteAllDepts(_sTeam); this.saveDepts(_sTeam, deptList); }
private static void update3index() throws PureException { IStatement query = null; IObjects result = null; try { int[] aValues = { // // 1964,// // 1978, 1979,// // 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989,// 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, // 2000, 2001, 2002, 2003, 2004, 2005, 2006 // }; IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class); String strSQL = "SELECT {this.id},{this.serialNo} FROM {this} WHERE {this.productForm}=3 AND {this.indexIndexDate}=?"; for (int j = 0; j < aValues.length; j++) { query = mgr.createQuery(strSQL, 0); query.setInt(0, aValues[j]); result = query.executeQuery(); int i = 1; for (Iterator iter = result.iterator(); iter.hasNext(); i++) { Product product = (Product) iter.next(); int nSerialNo = aValues[j] * 1000000 + 300000 + i; System.out.println(product.getId() + " : " + nSerialNo); product.setProperty("serialNo", nSerialNo); mgr.save(product); } } } finally { DolphinHelper.clear(result, query); } }
public Object convert( DolphinObject _old, DolphinObject _new, String _sFromProperty, String _sToProperty, ISession _fromSession, ISession _toSession, EntityMetadata _metadata, String _sKey, String _sToTable) throws PureException { // TODO Auto-generated method stub int nImportType = Integer.parseInt(_sToProperty); // ¼ì²â if (Xls2srmForm.JUSTFORCHECK == nImportType) return null; String value = _old.getStrProperty(_sFromProperty); if (value != null && !"".equals(value.trim())) { IUserMgr mgr = (IUserMgr) ArkContentHelper.getContentMgrOf(SRMUser.class); SRMUser user = null; IObjects users = null; IStatement query = null; try { query = mgr.createQuery( "SELECT {this.trueName} FROM {this} WHERE {this.employeeSId}=? and {this.name}=? and {this.status}<>32", 1); query.setString(0, value.trim()); query.setString(1, value.trim()); users = query.executeQuery(false); user = (SRMUser) users.next(); } finally { DolphinHelper.clear(users, query); } if (user != null) { System.out.println("--------------------------------------------"); System.out.println("TrueName:" + user.getTrueName()); System.out.println("---------------------------------------------"); return user.getTrueName(); } } return ""; }
/** * @see com.pureinfo.dolphin.script.function.handler.IFunctionHandler#perform(java.lang.Object[], * com.pureinfo.dolphin.script.execute.IContext) */ public Object perform(Object[] _args, IContext _context) throws PureException { int nId = -1; try { nId = FunctionHandlerUtil.getIntArg(_args, 0, -1); } catch (Exception ex) { ex.printStackTrace(); nId = -1; } if (nId == -1) return new String[] {""}; IOrganizationMgr mgr = (IOrganizationMgr) ArkContentHelper.getContentMgrOf(Organization.class); Organization org = (Organization) mgr.lookupById(nId); if (org == null) return new String[] {""}; String sPath = org.getPath(); if (sPath == null || sPath.length() < 2) { return new String[0]; } return sPath.substring(1).split("\\."); }
/** @see com.pureinfo.srm.project.domain.IProjectPersonMgr#findAllByRelativeId(int) */ protected void deleteAllByRelativeId(DolphinObject _newObj, String _sRelativeIdName, Class _clazz) throws PureException { IStatement query = null; try { String strSQL = "SELECT * FROM {this} WHERE {this." + _sRelativeIdName + "} = ?"; IContentMgr mgr = ArkContentHelper.getContentMgrOf(_clazz); query = mgr.createQuery(strSQL, 0); query.setInt(0, _newObj.getIntProperty("id", 0)); mgr.delete(query.executeQuery()); } catch (Exception ex) { ex.printStackTrace(System.err); throw new PureException( SRMExceptionTypes.PP_FINDALL_PERSONS_OFPROJECT, "RelativeId: " + _newObj.getIntProperty("id", 0), ex); } finally { if (query != null) { query.clear(); } LocalContextHelper.closeSession(); } }
/** @see com.pureinfo.ark.interaction.ActionBase#executeAction() */ public ActionForward executeAction() throws PureException { String[] sIds = request.getParameterValues("id"); int[] nIds = ActionFormUtil.Strings2Ints(sIds); IProductMgr productMgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class); Product product = null; try { for (int i = 0; i <= nIds.length - 1; i++) { product = (Product) productMgr.lookupTempById(nIds[i]); if (request.getParameter("role") == null) product.setDocSubmitted(true); else product.setDocSubmitted(false); productMgr.saveToTemp(product, false); } } finally { if (product != null) { product.clear(); } } request.setAttribute("forward", ProductConstants.PATH_SUCCESS_ALL_PRODUCT_CHECK_LIST_PAGE); if (request.getParameter("role") == null) request.setAttribute("message", "选中成果的材料已设置为提交!"); else request.setAttribute("message", "选中成果的材料已设置为未交!"); return mapping.findForward("success"); }
private int getAuthorId(String _sAuthorName) throws PureException { IStatement query = null; IObjects result = null; try { ISRMUserMgr userMgr = (ISRMUserMgr) ArkContentHelper.getContentMgrOf(SRMUser.class); // 1. formal table String strSQL = "SELECT * FROM {this} WHERE {this.trueName}=?"; query = userMgr.createQuery(strSQL, 1); query.setString(0, _sAuthorName); result = query.executeQuery(); SRMUser user = (SRMUser) result.next(); if (user != null) return user.getId(); // 2. temp table strSQL = "SELECT * FROM {this}0 WHERE {this.trueName}=?"; query = userMgr.createQuery(strSQL, 1); query.setString(0, _sAuthorName); result = query.executeQuery(); user = (SRMUser) result.next(); if (user != null) return user.getId(); return 0; } finally { DolphinHelper.clear(result, query); } }
public DolphinObject next() throws PureException { Publication publication = null; try { String sLine = buffReader.readLine(); if (sLine == null) { clear(); return null; } IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class); int i = 0, j = 1; String sName, sValue = "", sTemp, sAuthorNames = ""; while (sLine != null) { Product product = new Product(); sName = sLine.trim(); if ("题名".equals(sName)) { sValue = buffReader.readLine().trim(); } else { sName = buffReader.readLine().trim(); if ("题名".equals(sName)) { sValue = buffReader.readLine().trim(); } else { sName = buffReader.readLine().trim(); sValue = buffReader.readLine().trim(); } } sTemp = buffReader.readLine().trim(); for (i = 0; !sTemp.equals("作者"); i++) { sValue += sTemp; sTemp = buffReader.readLine().trim(); } logger.debug("[" + (j++) + "] 题名:" + sValue); product.setProductName(sValue); sName = sTemp; // sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } if ("作者".equals(sName)) { sValue = buffReader.readLine().trim(); if (sValue.length() > 0) { sAuthorNames = sValue.substring(0, sValue.length() - 1); } else { sAuthorNames = ""; } // logger.debug("作者:" + sValue); } sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } if ("中文关键词".equals(sName)) { sValue = buffReader.readLine().trim(); product.setProperty("chineseKeyWords", sValue); // logger.debug("中文关键词:" + sValue); } sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } if ("单位".equals(sName)) { sValue = buffReader.readLine().trim(); } sTemp = buffReader.readLine().trim(); for (i = 0; !sTemp.equals("中文摘要"); i++) { sValue += sTemp; sTemp = buffReader.readLine().trim(); } // logger.debug("单位:" + sValue); product.setProperty("englishAuthorsDepts", sValue); int nPos = sValue.indexOf(","); if (nPos == -1) nPos = sValue.indexOf(" "); String sFirstAuthorDept = sValue.substring(0, nPos); product.setProperty("englishDept", sFirstAuthorDept); if (sFirstAuthorDept.indexOf("浙江大学") >= 0) { product.setProperty("isZju", true); } else { product.setProperty("isZju", false); } // logger.debug("第一单位:" + sFirstAuthorDept + "; isZju:" + // product.getPropertyAsString("isZju")); sValue = buffReader.readLine().trim(); for (i = 0; !sTemp.equals("基金"); i++) { sValue += sTemp; sTemp = buffReader.readLine().trim(); } if (sValue.endsWith("中文摘要")) { sValue = sValue.substring(0, sValue.indexOf("中文摘要")); } // logger.debug("中文摘要:" + sValue); product.setProperty("abstraction", sValue); sValue = buffReader.readLine().trim(); for (i = 0; !sTemp.equals("刊名"); i++) { sValue += sTemp; sTemp = buffReader.readLine().trim(); } if (sValue.endsWith("基金")) { sValue = sValue.substring(0, sValue.indexOf("基金")); } // logger.debug("基金:" + sValue); product.setProperty("fund", sValue); sValue = buffReader.readLine().trim(); // logger.debug("刊名:" + sValue); product.setPublicationName(sValue); sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } if ("ISSN".equals(sName)) { sValue = buffReader.readLine().trim(); // logger.debug("ISSN:" + sValue); product.setISSNCode(sValue); product.setPublicationId(getPublicationId(sValue)); } sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } int nPublicationYear = 0; if ("年".equals(sName)) { sValue = buffReader.readLine().trim(); // logger.debug("年:" + sValue); nPublicationYear = Integer.parseInt(sValue); product.setPublicationYear(nPublicationYear); } sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } if ("期".equals(sName)) { sValue = buffReader.readLine().trim(); // logger.debug("期:" + sValue); product.setPublishNo(sValue); } sName = buffReader.readLine().trim(); if (sName.length() == 0) { sName = buffReader.readLine().trim(); } int nFirstAuthorId = 0; if ("第一责任人".equals(sName)) { sValue = buffReader.readLine().trim(); // logger.debug("第一责任人:" + sValue); if (sValue.length() > 0) { sValue = sValue.substring(0, sValue.length() - 1); product.setProperty("firstAuthorName", sValue); nFirstAuthorId = getAuthorId(sValue); if (nFirstAuthorId > 0) { product.setProperty("firstAuthorType", 1); product.setInsideAuthorId(nFirstAuthorId); product.setInsideAuthorNo(1); } else { product.setProperty("firstAuthorType", 6); } } } sLine = buffReader.readLine(); // logger.debug("-----------------"); // 论著编号 product.setProductForm(ProductConstants.SPRODUCT_FORM_PAPER); product.setPublishDate( DateTimeUtil.parse(nPublicationYear + "-01-01", ForceConstants.DATE_FORMAT_STR)); product.setProperty("serialNo", mgr.generateSerialNo(product)); product.setProperty("isImport", true); product.setCreateUser("2006国内论文txt文件"); String[] arrNames = StrUtil.split(sAuthorNames, ";"); product.setAuthorsNum(arrNames.length); mgr.save(product); // --- save authors int nProductId = product.getId(); // logger.debug("product id : ; " + product.getId()); IObjUserMappingMgr puMgr = (IObjUserMappingMgr) ArkContentHelper.getContentMgrOf(ObjUserMapping.class); boolean bFirstInsideAuthor = true; for (int k = 0; k < arrNames.length; k++) { ObjUserMapping author = new ObjUserMapping(); int nAuthorId = getAuthorId(arrNames[k]); if (nAuthorId > 0) { author.setUserType("1"); author.setUserId(nAuthorId); if (nFirstAuthorId == 0 && bFirstInsideAuthor) { product.setInsideAuthorId(nAuthorId); product.setInsideAuthorNo(k + 1); bFirstInsideAuthor = false; } } else { author.setUserType("2"); author.setUserId(nAuthorId); } author.setUserName(arrNames[k]); author.setOrderNo(k + 1); author.setObjId(nProductId); author.setObjType(SRMTypes.PRODUCT); author.setWeightYear(WeightConstants.WEIGHT_YEAR_DEFAULT_VALUE); author.setCreateUser("2006国内论文txt文件"); puMgr.save(author); } } } catch (IOException ex) { logger.error("IOException"); } return publication; }
/** * @see com.pureinfo.importer.ref.IImportorRef#convert(com.pureinfo.dolphin.model.DolphinObject, * com.pureinfo.dolphin.model.DolphinObject, java.lang.String, java.lang.String, * com.pureinfo.dolphin.persister.ISession, com.pureinfo.dolphin.persister.ISession, * com.pureinfo.dolphin.mapping.EntityMetadata, java.lang.String, java.lang.String) */ public Object convert( DolphinObject _old, DolphinObject _new, String _sFromProperty, String _sToProperty, ISession _fromSession, ISession _toSession, EntityMetadata _metadata, String _sKey, String _sToTable) throws PureException { String sAdminName = _old.getStrProperty(_sFromProperty); if (sAdminName == null) return null; String sDeptCode = _old.getStrProperty("单位代码"); _new.setProperty("firstAuthorName", sAdminName); IObjects users = null; IStatement query = null; SRMUser user = null; int nUserId = 0; try { ISRMUserMgr userMgr = (ISRMUserMgr) ArkContentHelper.getContentMgrOf(SRMUser.class); query = userMgr.createQuery( "SELECT * FROM {this} WHERE {this.trueName}=?", DolphinConstants.MAXSIZE_UNLIMITED); query.setString(0, sAdminName); users = query.executeQuery(); SRMUser[] aUsers = (SRMUser[]) users.toList().toArray(new SRMUser[0]); if (aUsers.length == 0) { nUserId = 0; } else if (aUsers.length == 1) { user = aUsers[0]; nUserId = user.getId(); } else { if (sDeptCode == null) { sDeptCode = _old.getStrProperty("字段1"); } String sCollege = sDeptCode.substring(0, 2); for (int i = 0; i < aUsers.length; i++) { Organization org = aUsers[i].getDepartment(); String sCode = null; if (org != null) sCode = org.getCode(); if (sCode != null && sCode.length() > 2) sCode = sCode.substring(0, 2); if (sCode != null && sCode.equals(sCollege)) { user = aUsers[i]; nUserId = user.getId(); break; } } if (user == null) { logger.error(_old.getStrProperty("成果名称") + "," + _old.getStrProperty("负责人")); user = aUsers[0]; nUserId = user.getId(); } } LocalContextHelper.currentSession().autoGenerateProperty(_new, "id"); int nProductId = _new.getIntProperty("id", -1); ObjUserMapping author = new ObjUserMapping(); author.setObjType(SRMTypes.PRODUCT); author.setUserType("1"); author.setUserId(nUserId); author.setUserName(sAdminName); author.setOrderNo(1); author.setObjId(nProductId); author.setWeightYear(WeightConstants.WEIGHT_YEAR_DEFAULT_VALUE); IObjUserMappingMgr puMgr = (IObjUserMappingMgr) ArkContentHelper.getContentMgrOf(ObjUserMapping.class); puMgr.save(author); } finally { DolphinHelper.clear(users, query); } return "" + nUserId; }
private void deleteAllDepts(ArkContent _obj) throws PureException { IObjDeptMappingMgr mgr = (IObjDeptMappingMgr) ArkContentHelper.getContentMgrOf(SRMTypes.OBJ_DEPT_MAPPING); mgr.deleteAllOfObj(_obj.getArkType(), _obj.getId()); }
/** Exports object list. */ protected ActionForward doExport() throws PureException { SearchForm thisform = (SearchForm) form; IObjects exObjs = null; try { // 1. to fetch the objects collection if (thisform.getExportMode() == SearchForm.EX_MODE_SELECTED && thisform.getExportIds() != null) { Class entityClass = thisform.getEntityMetadata().getEntityClass(); IContentMgr mgr = ArkContentHelper.getContentMgrOf(entityClass); if (!isFromTemp()) { exObjs = mgr.lookupByIds(thisform.getExportIds()); } else { String strSQL = "SELECT * FROM " + thisform.getEntityMetadata().getTempTable() + " WHERE {this.id} IN (" + thisform.getExportIds() + ")"; ISession session = LocalContextHelper.currentSession(); IStatement query = session.createQuery(strSQL, entityClass, 0); try { exObjs = query.executeQuery(); } finally { query.clear(); } } } else { exObjs = getIObjects(); } // 2. to prepare the columns ListHelper lh = new ListHelper(); lh.setSenery(getScenery()); List baseCols = thisform.getColunms(); String sClassName = exObjs.getElementClass().getName(); if (baseCols == null || baseCols.size() < 1) { baseCols = lh.prepareBase(exObjs.getElementClass().getName()); } lh.setSenery(getExportSenery()); lh.setAct("content"); List colInfos = lh.prepareColsInfo(baseCols, getInclude(), getExclude(), null, sClassName, false); String[] headers = new String[colInfos.size()]; String[] properties = new String[colInfos.size()]; SceneryContext sceneryContext = null; try { boolean bUsePropertyName = (thisform.getExportType() == ExportHelper.TYPE_XML); String sHeader; for (int i = 0; i < colInfos.size(); i++) { ColumnInfo colInfo = (ColumnInfo) colInfos.get(i); if (bUsePropertyName) { sHeader = colInfo.getOldName(); } else { sHeader = colInfo.getTitle(); if (sHeader.indexOf('$') >= 0) { if (sceneryContext == null) { IDVContextFactory factory = (IDVContextFactory) PureFactory.getBean("IDVContextFactory"); DolphinObject obj = (DolphinObject) exObjs.getElementClass().newInstance(); sceneryContext = factory.createSceneryContext(obj, getExportSenery(), "plain.default"); } sHeader = Executer.execute(ScriptReader.readBlock(sHeader), sceneryContext); } } headers[i] = sHeader.replaceAll("[\\\\\\[\\]\\?/<>]+", "_"); properties[i] = colInfo.getName(); } } catch (Exception ex) { throw new PureException(ArkExceptionTypes.EXPORT_CONTENTS, "failed to get the headers", ex); } finally { if (sceneryContext != null) { sceneryContext.clear(); } colInfos.clear(); } // 3. to prepare the data IConvertor convertor = new ExportConvertor(getExportSenery(), "content"); DolphinExportGoods goods = new DolphinExportGoods(); goods.setType(thisform.getExportType()); goods.setName(getTitle()); goods.setHeaders(headers); goods.setData(exObjs, properties, convertor); // 4. to return request.setAttribute("export", goods); return mapping.findForward("guest-export"); } finally { LocalContextHelper.closeSession(); } }
public static String getNameById(int _nId) throws PureException { IContentMgr mgr = ArkContentHelper.getContentMgrOf(Organization.class); Organization inst = (Organization) mgr.lookupById(_nId); return inst == null ? ReportHelper.ERROR_TYPE_NAME + _nId : inst.getName(); }