版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、新CRM技术笔记1. 部署新系统1.1. 准备Ø 源代码贵州版本:Ø 拷贝.classpath、.project两个文件至工程根目录;Ø 创建目录htmlWEB-INFlib;将newcrm_gzlib下各个子目录中的jar拷贝至htmlWEB-INFlib;Ø 把defaults.xml拷贝至config/system/service/defaults.xml;Ø TNS准备#贵州CRM测试库 base/base#123GZCRM225_TEST=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTO
2、COL = TCP)(HOST = 25)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = gzcrm) ) )1.2. 导入EclipseØ importØ 选择exitsing projects into workspaceØ 选中工程右键进入config build pathØ libraries中检查jre设置是否正确,建议这里设置为1.6或1.6以上Ø java compiler中Compiler compliance level设置为1.61.3. 编译Ø pr
3、oject->build project或者cleanØ 编译之后工程存在error,不要紧,只要不是致命的导致整个工程未全编的error可忽略1.4. 设置tomcat设置Ø window->preferences->tomcat选择version6.xØ window->preferences->tomcat->JVM Settings,jre选择1.6Ø 设置启动内存:-Xms256m -Xmx512m -Xss16M -XX:MaxPermSize=512mØ tomcat下面外链工程:参考serve
4、r.xml修改tomcatconf下的server.xml<Context path="/newcrm" docBase="D:/Program Files/workspace/ainbs2/html"指向你的源代码下的HTML1.5. 启动验证地址:http:/localhost:8080/newcrm登录用户名/密码:9996026/password11.6. 参考提示信息管理、申告单类型配置、用户备注变更、密码重置、担保信息变更、预占号码释放2. 常用表2.1. 操作员select t.*,t.rowid from sec.sec_opera
5、tor t where operator_id in (9996026,85300159,95550702,95550001,95550700,95550000,95550004);非超级管理员查询select t.*,t.rowid from sec.sec_operator t where password = '7c6a180b36896a0a8c02787eeafb0e4c' and (is_admin is null or is_admin != 'Y');2.2. 用户号码表select t.*,t.rowid from so1其中so1表示一个分中
6、心,853代表地市,地市位于so1分中心下。2.3. 分中心配置分中心即把数据库按中心来划分,来减轻需要频繁访问数据库的压力(如营业库、帐管库)。select t.*,t.rowid from base.bs_district t where t.district_type_id = 2 t.district_id >= 930 and t.district_id <= 936;select t.*,t.rowid from base.bs_district t where t.region_id = 931;该配置将地市和分中心映射起来。2.4. 分表配置select t.*,t
7、.rowid from base.cfg_table_split t;select t.*,t.rowid from base.cfg_table_split_mapping t;首页的客户信息TAB是通过数据库配置而来,使用了动态表单技术。2.5. 首页客户信息配置select t.*,t.rowid from base.of_cust_info_item t where item_label in ('证件号码','受理号码');JSP是:custInfoForSubscriberView.jsp2.6. 菜单配置方法select t.*,t.rowid f
8、rom sec.sec_function t where name like '%集团日常%'select t.*,t.rowid from sec.sec_role_grant t where 1=1 and t.ent_id = 80000662 and t.role_id = 99999;2.7. 枚举、数据字典、静态数据base.bs_static_data一般在SET中配置,JSP页面中不用特别配置,如:2.8. 国际化SELECT t.* FROM base.bs_i18n_resource t; 2.9. 表与序列关系表 SELECT t.* FROM base.
9、cfg_id_generator t;2.10. ftp配置 SELECT t.* FROM base.bs_ftp; SELECT t.* FROM base.bs_ftp_path t; 3. 代码跟踪新系统的菜单一般是以JSP作为入口,而老系统则使用Action的showMain方法作为入口。3.1. 代码结构和配置src,config,lib,htmldefaults.xml:配置数据源、分中心,密码既支持密文也支持明文。加密工具:perties:较少涉及,SecImpl(secframe框架,加载新系统等)和XGImpl(加载新
10、系统缓存等)perties:如果不掉后台OBD时该配置不起效果,若需要调用老系统OBD,则需要配置该文件。新系统采用MVC结构:Web:Action(如action处在目录结构下:)Service:(可以是jsp或者web层和service交互,service也可调用service,service控制事务,service采用工厂模式创建,不能直接创建)Dao:Bo:Bean和Engine,Engine封装query、insert、update等,bean对应实体。Ivalues:(放置接口,不在层次中)一般访问顺序:Jsp>action>service>d
11、ao>bean注意,Js尽量从jsp中抽离出来,这样可只加载一次。3.2. 快速跟踪地址:http:/localhost:8080/gz/crm/support/party/CmSupportTypeList.jsp?funcId=30011013&verifyType=&psptReadSerialId=&psptVerifySerialId=定位菜单:搜索菜单(需要超级管理员权限),查询菜单表后台查询语句执行时,需要加schema用户名。日志:perties,配置log4j.rootLogger=debug,console,否则控制台无法打印
12、。例子:申告单类型配置,CmSupportTypeList.jsp页面的table中jsp直接和service交互,如:<ai:table setname="com.asiainfo.crm.support.party.web.SETCmSupportType" tableid="tblList" tablemodel="com.ai.appframe2.web.datamodel.MethodModelForService"implservice_name="com.asiainfo.crm.support.part
13、erfaces.ICmSupportTypeSV" implservice_querymethod此处和js的doQuery方法的参数要一致。="query(String appealType,String appealName,String processType,String appealPriority, int $STARTROWINDEX,int $ENDROWINDEX)" implservice_countmethod="count(String appealType,String appealName,Strin
14、g processType,String appealPriority)" initial="false" editable="false" needrefresh="true" multiselect="true" ondbclick="doView" pagesize="20" width="100%" height="300" ondblink="" onresize="true"
15、> <ai:col fieldname="APPEAL_TYPE" visible="true" title="申告单类型" width="8%"></ai:col> <ai:col fieldname="APPEAL_NAME" visible="true" title="申告单类型名称" width="10%"></ai:col> . <ai:col fieldname=&
16、quot;EXPIRE_REMIND_INFO" visible="true" title="超时提醒" width="12%"></ai:col> <ai:col fieldname="REMARK" visible="true" title="备注" width="16%"></ai:col> </ai:table> /查询 function doQuery() var qryRowSet
17、 = getRowSet(); var condi = "" condi += "&appealType="+qryRowSet.getValue("APPEAL_TYPE"); condi += "&appealName="+qryRowSet.getValue("APPEAL_NAME"); condi += "&processType="+qryRowSet.getValue("PROCESS_TYPE"); condi +=
18、 "&appealPriority="+qryRowSet.getValue("APPEAL_PRIORITY"); getTable().refresh(condi); 新CRM使用多个数据源,如资源库使用的数据源是res,营业库使用的是socenter,公共库使用的数据源是base。调用数据源时会根据dao的包名设置其对应的数据源(原理就是动态代理),这个关系配置是在defaults.xml的<mapping>元素下定义。Dao的三种实现方式:1. BO*Engine(使用ConfigTools工具生成,建议使用)2. 使用Dat
19、aStore(无事务控制)Conn = ServiceManager.getSession().getConnection();DataStore dataStore = ServiceManager.getDataStore();3. 使用jdbcNotice:尽量少用ServiceManager.getSession().getNewConnection(),因为这样获取的链接不受事务控制,如果使用了必须手动关闭链接。 访问Action时,如果对分中心有要求,需要加上:“&CenterType=RegionId&CenterValue=”+regionId4. 进程进程分为
20、TF进程和TASK进程。Jh_web项目/com/asiainfo/crm/jh/exe/taskTASK为调度任务进程,非实时;TF为实时进程(比如后台导入)Select t.*,t.rowid from base.cfg_task t;5. 开发规范参考:基础类-9-贵州新crm技术开发规范.doc5.1. 目录结构html、src、lib、config。1) SRCcommon:基础文件,如日志、公共的web方法、公共的静态数据类channel:未使用,已单独部署形成一个产品线so:营业模块,如:营业受理、业务订购、业务变更ams:账务管理res:资源管理,如:号码管理、号卡管理、终端管
21、理market:未使用,如:集团客户管理,营销活动管理inter:接口模块,CRM对外提供的接口,如:电子渠道、网厅、短厅crm,包括:账务接口子模块、开通接口子模块、CBOSS接口子模块cust:客户管理模块sec:已将权限独立打包成secframe.jar,该模块不会使用report:报表product:产品管理,已打包成pce.jar使用memcache配置缓存,该模块不会使用具体模块划分:bo:存放数据库操作的Engine和Bean。dao:数据访问层ivalues:(接口定义)表信息描述类service:服务层valuebean:(自定义javabean)web:存放Action类目
22、录名字包含example、test的类生产上不会被编译发布,例如test/*/*.*、*/test/*.* 、example/*/*.* 接口开发需要提供给第三方的类,需要放在third目录下,否则不会发布给第三方系统调用,例如Remote服务提供给外围系统的POJO依赖类:comasiainfocrmsecexeremotethirdOpInfoBean.java2) HTMLbce:存放bce页面,后台已打包成bce.jarjsv2:appframe使用的JS、HTM文件secframe:权限页面,后台已打包成secframe.jarwebframe:负责登录框架以及主页上部、左侧、底部的
23、展示,后台打成oneframe.jar注:SVN不允许开发人员修改webapp、jsv2、bce等公共模块,若需修改时需申请权限。3) ConfigConfig目录中存放系统配置文件及针对数据库表操作的配置文件,针对数据库表操作的配置文件由Appframe配置工具ConfigTools自动生成,包括bo文件(数据操作引擎资源文件)、set文件(DBGRID、DBFORM使用资源文件)、ds文件(下拉框资源文件)。remote/perties:对外围提供的接口的配置socket/perties:对外围提供的Socket接口system/cache/cach
24、e.xml:缓存配置system/service/defaults.xml:配置数据源、分中心基础数据库,营业数据库, 如:贵州5个地市1个数据库,4个地市一个数据库system/service/omframe-service.xml:配置服务具体的实现类,如果公共组件的实现,提供可自定义业务编程的入口task/perties:配置后台进程TaskFrameWork,如TF重启事件等perties:产品数据配置如开户用全球通、全球通58、全球通120等产品的产品数据量很大,单纯数据查询或者缓存到本地的内存消耗大,新系统统一放到memcached中,开发
25、时设置is_use_db=true(不用缓存),利于开发时定位问题。4) LIBappframe:crm系统的组件服务等,提供基础开发包,如:表格、树、数据库事务控制、获取服务(EJB,本地)、提供监控运行状态、排查问题时查看调用哪些服务、服务运行状态时间等。bce.jar:业务配置工具comframe30.jar:流程调度Easymem.jar:memcached相关omframe.jar:订单框架oneframe.jar:pce.jar/pce-ext.jar:产品管理,提供接口给其他受理模块调用。至于采取mem方式还是读数据库方式,就由Mperties控制secf
26、rame.jar:权限注:一般没有权限提交lib下的Jar包。5.2. 分层开发规范Jsp>Action>Svr>DaoJsp>Svr>DaoJsp>Svr>Svr>Dao禁止未经过Svr直接访问Dao(无事务控制或者取不到数据源),事务位于Svr层。获取业务服务对象可以采用getService和getCrossCenterService两种方式:普通服务对象获取采用getService方法,对于涉及到跨中心数据操作访问的服务对象获取,必须使用平台提供的getCrossCenterService方法,示例如下:ICommonSV commonSV
27、 = (ICommonSV)ServiceFactory.getService(ICommonSV.class);commonSV.saveOrdSoLogDataInfo();比如:so1只能写so1的数据,so2只能写so2的数据。但是有个公共中心,可写so1和so2,可通过getcrosscenterservice获得。getCrossCenterService方法在服务内部禁止使用,必须在接口、web段或进程主程序中调用,使用方式如下: boolean flag = CrossCenterStoreHelper.isSameCenter(); /判断是否同一个中心 if(flag)ge
28、tService(); 5.3. 与其他层的交互规则 ACTION 层:1、不能调用DAO类,只能调用本package下的sv类2、禁止连接数据库做任何操作3、禁止调用BO类set、get、transfer外方法5.4. 业务模块间调用原则上2个目录的sv不能互相调用,假设res要提供接口给so调用,需要在res的teaminvoke目录的out.service去定义接口做实现。然后so在teaminvoke里的in.service中引起来,in中引用的接口要确保是其他out中的接口。接口命名是务必按照规范命名,否则serviceFactory无法获取到服务。所有的服务接口类必须抛出异常。5.
29、5. 其他注意事项业务逻辑层开发时,所有的服务接口类必须抛出,因为在发布后,sv会发布成EJB服务,根据EJB规范要求,必须抛出RemoteException异常。import java.rmi.RemoteException;public interface IUserInfoFSV public IInsProdValue getInsProdByBillId(String BillId) throws Exception, RemoteException;需要注意的是,采用获取数据库连接方式,数据存取层在通过平台提供的方法获取到数据库连接后,禁止对数据库进行Commit和Rollback
30、操作,另外,对于数据库连接及通过数据库连接创建的PreparedStatement和ResultSet,必须在使用完毕后进行关闭,关闭在finally进行,按照ResultSet、Statement、Connection次序进行关闭,关闭时,需要进行对象是否为空以及是否已关闭的判断,对象不为空且未关闭的情况下才可执行。5.6. Sequence在base.cfg_id_generator中配置步长,如果在cfg_id_generator中配置了历史表(HIS_TABLE_NAME),在修改当前表的时候会自动将数据同步到历史表中去。配置的目的是放置ID浪费和冲突。5.7. 命名规范l Dao接口
31、类名:*.erfaces.I*DAO实现类名:*.dao.impl.*DAOImpl l Service接口类名:*.erfaces.I*SV,实现类名:*.service.impl.*SVImpl*的内容必须对应一致!l Action命名:*.*Action继承:BaseAction方法声明必须满足格式(返回void,2个固定参数,抛出异常,methodname任意):public void downLoadImsiFile(HttpServletRequest request,HttpServletResponse response) throws Ex
32、ception;调用:一般是在jsp页面上调用js方法PostAction(url,xml)url字符串格式:context/business/Action全限定名?action=action_method如果对分中心有要求,还要加上"&CenterType=RegionId&CenterValue=“+regionId Xml: 由页面标签的js API生成,用于提供aitable,aiform的数据至Action。5.8. 工厂模式DAO与Service都是通过下面的API获取实例:IDoneCodeSV doneCodeSV = (IDoneCodeSV) Se
33、rviceFactory.getService(IDoneCodeSV.class); 5.9. 设置分中心在发送请求时设置中心 在调用PostInfo(url),aitable.refresh(cond)方法时,在url,cond上添加请求参数"&CenterType=RegionId&CenterValue=" + getRegionId();2. 在service层手动设置中心 CenterFactory.setCenterInfoByTypeAndValue(CenterConst.REGION_ID, "852");Center
34、Factory.CenterFactory.setCenterInfoByTypeAndValue(CenterConst.ACC_ID, "accout id");CenterFactory.setCenterInfoByTypeAndValue(CenterConst.USER_ID, "user id");这种方法有个前提,必须在Action层调用以下方法来获取service的代理对象: com.ai.appframe2.service.ServiceFactory.getCrossCenterService(Class)5.10. 进程开发进程的
35、实现类必须实现接口.exefr进程的配置表: SELECT t.* FROM base.cfg_task t ;5.11. 权限管理在权限管理模块中,权限控制的主要有三个对象:菜单、实体、行为。而开发人员只需要关注菜单和实体就可以了。 1. 菜单配置表 SELECT t.* FROM sec.sec_function t; 2. 实体配置表 SELECT t.* FROM sec.sec_entity t; 在页面添加权限控制: <%String addBtn=String.valueOf(SecframeClient.checkEntityPermission(opId, ResCon
36、st.PHONEGROUP_IMSI_ADD_ENTITY, 2, true);%> 5.12. 国际化国际化配置表 :SELECT t.* FROM base.bs_i18n_resource t; 国际化调用方式 :页面标签的方式: <i18n:message>Js方式: crm_i18n_msg("SOC2001541")Java方式: CrmLocaleFactory.getResource("RSS0008053")mon.util.ExceptionUtil.throwBusinessException(String key
37、, Object params)5.13. 开发流程需求接收:SCCB新CRM项目使用的是SVN版本控制,共有3个代码分支: 开发分支: RM分支: http:/wcrm_gz Release分支: 开发分支提供给开发人员代码共享、协同合作的环境,RM分支主要用于联调环境的发布。 每月上线前12个礼拜会对开发分支和RM分支封码,在此期间提交代码需要发送申请邮件。在封码的时候,会把RM分支的代码全量更新到release分支,release分支主要用于发布UAT环境和生产环境。 5.14. 其他1. BCE(Business Creation Environment) 配置业务操作对应的前台展示、
38、数据提交、数据解析、后台处理等等。优势在于通过配置及模板生成页面,减少编码量,适合处理流程化,提供完整的业务视图,方便业务的理解和问题排查 2. BP提供文件批处理能力,最大支持单个文件10W记录。 3. OmFrame 订单管理框架,实现营业受理的产品订购、产品退订、产品变更等核心功能的产品化开发 还有comframe,exeframe等的框架,这些资源都可以在svn找到: 产品库/新CRM项目/贵州新CRM项目/09.培训文档 6. 单表代码生成数据源选择贵州party。7. 开发代码常见问题7.1. 慎用ServiceManager.getSession().getNewConnecti
39、on()举例: AutoRollAccountTask.java原因:这种方法只有在后台需要另外起事务的时候才会使用,在APP层不要使用getNewConnection(),否则可能引起内存泄漏,AppFrame不会接管这个连接,从而也不会自动关闭连接,需要在业务代码中手工进行关闭。参考:Mybase新CRM业务资料代码常见问题和示例AppFrame的getNewConnection()注意事项以及Oracle绑定变量的章节。7.2. 慎用BO*Engine.getBeansFromSql举例:QReceivableDetailDAOImpl.java、CmSupportTypeEngine.
40、java .retrieveByResultLevel(Connection aConn, String strSql, Map aParameterList, int resultLevel),发现DataStoreImpl里的stmt没有在finally中关闭,因此需要用BO*Engine.getBeans来替代。 public static BOCmSupportTypeBean getBeansFromSql(String sql,Map parameter) throws ExceptionConnection conn = null;ResultSet resultset = nu
41、ll;try conn = ServiceManager.getSession().getConnection();resultset =ServiceManager.getDataStore().retrieve(conn,sql,parameter);return (BOCmSupportTypeBean)ServiceManager.getDataStore().crateDtaContainerFromResultSet(BOCmSupportTypeBean.class,BOCmSupportTypeBean.getObjectTypeStatic(),resultset,null,
42、true);catch(Exception e)throw e;finallyif(resultset!=null)resultset.close();if (conn != null)conn.close();7.3. 查看SQL执行计划一般使用绑定变量提高SQL执行效率。Oracle语句解析时分软解析和硬解析。7.4. 页面的静态引用和动态引用l 动态引用<jsp:include page=”included.jsp” flush=”true”/>会检查所包含页面的变化,可以带参数,适合用于包含动态页面。l 静态引用<%include file=”included.jsp
43、”%>不会检查所包含页面的变化,适合用于包含静态页面。8. BCE视频笔记参考:基础类-8-BCE培训教材.pptx8.1. BCE 模型介绍Business Creation EnvironmentBCE:把功能点、业务、规则通过配置方式进行拼装。BCE就前后台串联起来。业务系统的传统开发与维护方式:老版本:如所有的业务办理前都校验用户是性别从而提示对应信息。业务变更、新开机等,老系统有些有公共查询头的可配置,没有公共查询头的就需要硬编码。新版本:若使用BCE,只要做一个规则,将规则配置到所有业务受理的功能上。页面展示、业务规则、业务流程、数据保存、业务试图。BCE:构建业务组件(前台
44、页面、后台流程、规则),将业务组件组装成功能点。通过配置把不同的页面拼凑起来,并且应用不同的业务规则和业务流程,就组装为一个功能点。页面可以是一个页面,可应用到不同的功能点,规则也类似的。首先要实现原子业务,比如:过户、业务变更,代办人信息等页面可以公共,规则如检查停开机状态。BCE服务模板:组装页面、流程、业务规则,多个菜单可对应到同一个模板。比如开户,手机用户开户,固话客户都走开户,大致流程一样,就可以把开户做成一个模板,如果有细微差别,可通过特殊参数配置,如果宽带开户、手机开户区别很大的话,就不适合。不同的功能点(不同的菜单)可以对应同一个模板。页面流程:把页面窜起来形成流程规则框架:数
45、据:展现数据、搜集数据业务过程:数据搜集后的后台流程单点功能:增删改查,单独的一个功能,不需要多个页面串联,就可使用该功能)版本控制:未使用入口:菜单、动态表单 模块,页面流程,规则框架,数据,业务过程,单点功能,版本控制 入口:菜单,动态查询 -> 页面流程:页面组,单个页面 -> 规则事件:规则校验,事件动作 -> 数据提交:数据或数据集 -> 数据解析:将前台提交的数据转换为后台处理的对象 -> 后台处理:业务过程,服务8.2. BCE处理流程业务规则校验:初始化、事件触发、提交校验。转变为订单大对象后就走后台的处理流程。8.3. 核心模型实体模型描述 功能
46、点BCE的核心,配置业务操作对应的前台展示、数据提交、数据解析、后台处理等一系列相关内容 页面流程 页面框架 配置功能点前台展示的一系列页面及其组织方式、数据的提前、触发的规则集等。一个页面流程可被多个功能点公用。 页面 规则框架 规则 具体的js及java规则所在的文件,方法,参数列表 规则集 定义一组规则的集合,以关联到具体业务 规则集包含的规则 配置规则在某个规则集中的触发方式,校验类型(警告、拒绝),参数,执行顺序等 数据集 配置提交时使用哪个方法获取当前页面的哪个数据集 单点功能 单点功能配置 配置要保存的数据集ID;订单实例分别所在的数据源,BO;后续处理的流程或服务 字段映射 配
47、置报文中的字段与订单实例的映射关系 自动页面 配置DBGrid,DBForm,Tab页,按钮等的具体信息 功能点对应到BCE_FRAMESELECT t.* FROM base.bce_frame t where bce_frame_id=50102;作用:把前台页面、操作、数据解析类、后台处理流程配置起来拼装到功能点。business_id:功能操作param_data:由于多个菜单可以对应到同一个business_id,比如:普通用户的用户变更、固话用户的用户变更都对应同一个business_id,但如果流程不一样可通过param_data找到不同的处理流程。如Param_data:PRO
48、D_SPEC_ID=271000000001即普通用户的规格,也可定义其他参数标记。PAGE_FRAME_ID是页面流程,标识某个业务包含哪些页面。DATA_PARSER:将前台提交的数据统一转成后台流程可处理的订单大对象。DEAL_SERVICE:处理类,基本上不会有太大改变,一般很少用到。WORKFLOW_CODE:定义流程模板,即用什么流程模板处理业务,有专门的流程模板工具(AppframeStudio)来拼装流程。PRINT_TEMPLATE_ID:免责单打印模板IS_SAVE_ORDER_INFO:是否保存订单明细,即前台搜集信息是否保存到表里,如上线初期可打开来查找问题。页面流程定
49、义select * from base.bce_page_frame where page_frame_id=50080;FRAME_TYPE:表明式页面还是平铺式页面。页面流程关联的子页面select * from base.bce_page_frame_page where page_frame_id = 50080;页面定义select * from base.bce_page;PAGE_RULESET_ID挂规则集IS_GET_PAGE_DATA标识是否需要取数据,对应数据集模块规则集Select * from base.bce_ruleset;规则集可包含很多规则,一个页面至多可挂一
50、个规则集。Java规则集:select * from base.bce_frame_java_ruleset_rel where bce_frame_id=10102 and state=1;规则集还可以针对整个bce_frame/功能点定义,上表也有个RULESET_ID。规则Select * from base.bce_ruleset_rule;规则集和规则定义之间的关联关系,RULE_TRIGGER_TYPE触发类型分为:1、2、3(初始化、事件触发、提交校验)。OBJ_NAME规则定义Select * from base.bce_rule;规则:JS规则、JAVA规则。RULE_TYPE标识规则类型。开始>初始化>业务规则(JS、JAVA规则),事件(业务操作、业务规则触发)基本上应用JS规则。后台提交时(JS、java规则),先定义规则,然后将多个规则定义到规则集中。数据集:配置提交时使用哪个方法获取当前页面的哪个数据集,配置哪些页面需要搜集数据配置功能点(BCE_FRAME_ID)从哪个FORM(FORM_ID) 取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区教育工作计划
- 七年级语文下册 第三单元教学设计 新人教版
- 高中语文 第二单元 议论文 7《红楼梦》的情节波澜(节选)教学设计 粤教版必修4
- 2026下半年四川自贡事业单位考试聘用人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026下半年四川甘孜州招聘事业单位急需紧缺专业人才135人易考易错模拟试题(共500题)试卷后附参考答案
- 2026下半年四川凉山冕宁县考试招聘教师86人易考易错模拟试题(共500题)试卷后附参考答案
- 2026上海申通地铁集团限公司运营维护保障专业人员招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2026《中国能源报》社限公司招聘11人易考易错模拟试题(共500题)试卷后附参考答案
- 足球脚内侧传接球 教学设计-2025-2026学年高一上学期体育与健康人教版必修第一册
- 九年级化学下册 第8单元《课题3 金属资源的利用和保护》教学设计 (新版)新人教版
- JGJ52-2006 普通混凝土用砂、石质量及检验方法标准
- (高清版)DZT 0284-2015 地质灾害排查规范
- 欧怡毛纺厂规章制度KA样本
- 房颤导管消融的适应症课件
- 经济思想史讲义兰州大学
- 房产测量作业指导书
- 金融专业英语PPT完整全套教学课件
- Lao She老舍英文介绍
- 某医院改扩建工程施工组织设计
- 绝缘子的污闪与防治
- JJG 703-2003光电测距仪
评论
0/150
提交评论