欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年(详设模板)卷包车间物料消耗精细化核算系统详细.doc

    • 资源ID:69364123       资源大小:3.08MB        全文页数:95页
    • 资源格式: DOC        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年(详设模板)卷包车间物料消耗精细化核算系统详细.doc

    卷包车间物料(滤棒)耗费精细化核算系统详细设计分析说明书 编 号: 0001 版 本: 1.0 发行日期: 2012 年 6 月 13 日编 写 者:JT3802工程组编写日期:2012年6月12日质量会签:陈继良,陈丁丁会签日期: 年 月 日审 核 者:全体工程成员审核日期: 年 月 日批 准 者:批准日期: 年 月 日目录1.总述41.1.软件名称与简介41.2.编写目的41.3.预期读者42.需求背景52.1.目前情况52.2.建立目的52.3.应用范围52.4.提出单位52.5.预期用户52.6开发单位53.系统功能63.1.系统构造图63.2.运转环境63.3.机台产量治理子系统63.3.1.卷接机台日产量登记63.3.1.1背景63.3.1.2业务流程63.3.1.3详细设计73.3.1.4功能103.4.根底数据维护子系统113.4.1.挡车工信息维护123.4.1.1.功能要求123.4.1.2.详细设计123.4.2.机台信息维护173.4.2.1.功能要求173.4.2.2.详细设计183.4.3.仓库信息维护213.4.3.1.功能要求213.4.3.2.详细设计223.4.4.滤棒信息维护263.4.4.1.功能要求263.4.4.2.详细设计263.4.5.系统自动排班293.4.5.1.功能要求293.4.5.2.详细设计303.4.6.机台挡车工对应关系323.4.6.1.功能要求323.4.6.2.详细设计343.4.7.产质量奖单价与系数维护383.4.7.1.功能要求383.4.7.2.详细设计383.4.8.用户信息维护413.4.8.1.功能要求413.4.8.2.详细设计423.5.滤棒治理子系统463.5.1.滤棒入库473.5.1.1.功能要求473.5.1.2.详细设计483.5.2.滤棒移库503.5.2.1.功能要求503.5.2.2.详细设计503.5.3.机台领用录入543.5.3.1.功能要求543.5.3.2.详细设计543.5.4.机台退料录入603.5.4.1.功能要求603.5.4.2.详细设计603.5.5.机台结存录入663.5.5.1.功能要求663.5.5.2.详细设计663.5.6.机台耗费计算713.5.6.1.功能要求713.5.6.2.详细设计723.5.7.废烟支录入753.5.7.1.功能要求753.5.7.2.详细设计753.5.8.包装机产量计算793.5.8.1.功能要求793.5.8.2.详细设计803.5.9.库存查询833.5.9.1.功能要求833.5.9.2.详细设计833.5.10.库存盘点843.5.10.1.功能要求843.5.10.2.详细设计853.5.11.产质量奖计算883.5.11.1.功能要求883.5.11.2.详细设计883.6.绘制关联图903.7.建立需求模型903.8.可行性903.9.技术构架903.10.功能实现903.11.运转环境913.12.外部资源利用913.13.数据字典913.14.数据库设计规则913.15.设计数据库表933.16.施行步骤943.17.系统实现主要步骤943.18.方案报价963.19.参考文献961.总述1.1.软件名称与简介软件名称:卷包车间物料(滤棒)耗费精细化核算软件简介:为提高办公效率、优化资源,方便排班,员工奖金计算而开发的系统。1.2.编写目的本需求说明旨在对卷包车间物料(滤棒)耗费精细化核算系统的整个系统的软件构架及子系统的业务需求、用户需求、功能需求做逐一分析;并对各系统接口、运转环境、功能需求做出可行方案;本需求分析为开发人员、维护人员、客户之间提供共同的协议而创立根底,对短信统一平台功能的实现作使命描绘,是系统开发的依照,也是用户检验本系统运转的依照。1.3.预期读者1、 需求方业务人员2、 软件开发人员3、 工程施行人员4、 系统维护人员5、 与本系统相关的公司、部门2.需求背景2.1.目前情况2.2.建立目的2.3.应用范围龙岩卷烟厂2.4.提出单位烟厂消费部2.5.预期用户1、 烟厂治理员2、 烟厂员工3、 部门或单位领导4、 应用系统用户2.6开发单位JT38第二小组3.系统功能3.1.系统构造图系统功能模块3.2.运转环境3.3.机台产量治理子系统3.3.1.卷接机台日产量登记3.3.1.1背景机台产量治理子系统是负责 卷接机台日产量的登记。在整个卷包车间物料(滤棒)耗费精细化核算系统中扮演着滤棒提供者的职能,数据录入提交后自动插入滤棒入库表。3.3.1.2业务流程¨ 采购业务:卷接机台日产量登记数据录入提交后自动插入到滤棒入库表:卷接机台日产量登记流程示意图如下:¨ 目的要求实现卷接机台日产量登记,数据录入提交后自动插入滤棒入库表¨ 功能需求机台产量治理子系统的功能视图如下所示:需求模型视图如下所示:3.3.1.3详细设计² 建立卷接机消费表:JT3802T_LB_PRODUCT字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(20)not null主键D消费日期DATEnot null消费日期CODE卷接机台号NVARCHAR2(10)not null卷接机台号NAME卷接机名称NVARCHAR2(20)not null卷接机名称LBCODE滤棒号NVARCHAR2(10)not null滤棒号LBNAME滤棒名NVARCHAR2(20)not null滤棒名STYLE滤棒规格NVARCHAR2(20)not null滤棒规格NUMR滤棒产量NUMBERnot null滤棒产量CKNUMBER仓库号VARCHAR2(10)not null仓库号CKNAME仓库名称VARCHAR2(10)not null仓库名称² 接口设计:public interface LbscDAO public Vector query(String d, String name);public String add(LbscVO vo);public String update(LbscVO vo, int idKey);public String delete(int id_key);public LbscVO queryOnly(int id_key);public String commit(String date);² 实现类设计:public class LbscImpl implements LbscDAO public Vector query(String d, String name)public String add(LbscVO vo)public String update(LbscVO vo, int idKey)public String delete(int id_key)public LbscVO queryOnly(int id_key)public String commit(String date)² VO设计:public class LbscVO private String id_key;/id_keyprivate Date d;/日期private String code;/机台号private String name;/机台名private String lbcode;/滤棒号private String lbname;/滤棒名private String style;/滤棒规格private int num;/产量private String cknumber;/仓库号private String ckname;/仓库名public LbscVO(String idKey, Date d, String code, String name, String lbcode,String lbname, String style, int num,String cknumber,String ckname) id_key = idKey;this.d = d;this.code = code;this.name = name;this.lbcode = lbcode;this.lbname = lbname;this.style = style;this.num = num;this.cknumber=cknumber;this.ckname=ckname;² 页面设计:卷接机消费界面:数据新增界面:数据修正界面:数据删除界面:3.3.1.4功能¨ 精度:本子系统涉及到数据,对商品的编辑和查询、报表的设置计算都要求有相当的精度,数字为正整数;本子系统与财务部门之间的接口是凭证的生成与传送,本子系统将跟踪整个过程;¨ 时间特性要求本系统的所有报表及汇总都是建立在时间段的根底之上的,因而在数据库设计上要充分表达所有的时间段信息,便于以后的治理和统计;考虑到对发生时间的要求,我们的时间特别精确¨ 时间特性要求本系统不管是在录入方面,依然在系统操作方面都尽可能满足用户的操作要求,让系统的表达在系统设计的各个方面¨ 系统响应时间本系统采纳面向对象的构造化设计方法,程序设计采纳多线程机制,数据库采纳数据连接池技术,数据库的操作全部采纳标准的SQL语句,这将使系统的整体反响时间大大提高,应该是秒级的¨ 接口需求¨ 与其他外部系统的接口与滤棒治理系统发生滤棒库存查询任务¨ 与本系统其他子系统的接口¨ 需求硬件环境硬件环境由硬件集成商提供,本系统对硬件无特别要求¨ 需求分析软件环境效劳器操作系统由系统集成商提供3.4.根底数据维护子系统¨ 背景根底数据是此系统中的实体。作为主要的被操纵对象,具有多种多样的属性。这些根底数据需要人为地去创立。并为这些数据类型提供增删改查的根本功能。¨ 业务流程¨ 目的要求3.4.1.挡车工信息维护3.4.1.1.功能要求求挡车工时,先进入挡车工信息维护界面,在条件框中输入需要查找的挡车工条件,然后提交当雇佣新挡车工时,首先进入挡车工信息维护界面,输入相应新挡车工的信息,包括:职工号,姓名,性别,岗位,部门,班组,工龄,联络方式,并点击提交。当挡车工的已录入的信息有变动时,输入需要变动的挡车工工号,提交后查询到该挡车工的记录,然后进展修正,修正后点击保存。当有挡车工离任时,输入该挡车工职工号后,点击删除后点击提交挡车工信息维护流程示意图如下:3.4.1.2.详细设计² 挡车工信息维护表:JT3802T_STAFF_INFO字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(11) not null主键DCG_NUM职工号VARCHAR2(20)not null挡车工编号,主键DCG_NAME姓名VARCHAR2(2)not null挡车工姓名DCG_SEX性别VARCHAR2(20)not null挡车工性别DCG_BUMEN部门VARCHAR2(20)not null挡车工部门DCG_CLASS班组VARCHAR2(30)not null挡车工班组DCG_LIANXIFS联络方式VARCHAR2(30)挡车工联络方式DCG_LIANXIDZNUMBER(1)挡车工DCG_USE_CODE启用标识NUMBER(11) not null挡车工信息是否启用² 界面设计挡车工信息维护界面:新增界面:修正界面:删除界面:² 接口设计public interface EmployeeDAO public Vector query(String dcg_num, String dcg_name);public String insert(EmployeeVo vo);public EmployeeVo queryOnly(int id_key);public String update(EmployeeVo vo, int id_key);public String delete(int id_key);² 实现类设计public class EmployeeImpl implements EmployeeDAO public Vector query(String dcg_num, String dcg_name)public String insert(EmployeeVo vo)public EmployeeVo queryOnly(int id_key)public String update(EmployeeVo vo, int id_key)public String delete(int id_key)² Vo设计public class EmployeeVo private String id_key;private String dcg_num;private String dcg_name;private String dcg_sex;private String dcg_bumen;private String dcg_class;private String dcg_lianxifs;private String dcg_lianxidz;private String dcg_use_code;public EmployeeVo(String idKey, String dcgNum, String dcgName, String dcgSex,String dcgBumen, String dcgClass, String dcgLianxifs,String dcgLianxidz, String dcgUseCode) id_key = idKey;dcg_num = dcgNum;dcg_name = dcgName;dcg_sex = dcgSex;dcg_bumen = dcgBumen;dcg_class = dcgClass;dcg_lianxifs = dcgLianxifs;dcg_lianxidz = dcgLianxidz;dcg_use_code = dcgUseCode;3.4.2.机台信息维护3.4.2.1.功能要求当需要查找符合要求机台时,先进入机台信息维护界面,在条件框中输入需要查找的机台条件,然后提交。当新进包装机台时,首先进入机台信息维护界面,输入相应新机台的信息,包括:包括:机台号,机台名称,消费商,定额产量,并点击提交。当机台的已录入的信息有变动时,输入需要变动机台号,提交后查询到需变更的机台记录,然后进展修正,修正后点击保存。当有机台被淘汰时,输入被淘汰的机台号后,点击删除后点击提交机台信息维护流程示意图如下:3.4.2.2.详细设计² 机台信息维护表:JT3802T_BZJT_XINXI字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(11) not null主键BZJT_NUM职工号VARCHAR2(20)not null包装机台编号BZJT_NAME姓名VARCHAR2(20)not null包装机台名称BZJT_SCS性别VARCHAR2(100)not null包装机台消费商BZJT_DECL部门VARCHAR2(20)not null包装机台定额产量BZJT_USE_CODE班组VARCHAR2(1)not null包装机台启用标识,1,是,0,否² 界面设计机台信息维护界面:新增界面:修正界面:删除界面:² 接口设计public interface DeviceDAO public Vector query(String bzjt_num, String bzjt_name);public String insert(DeviceVo vo);public DeviceVo queryOnly(int id_key);public String update(DeviceVo vo, int id_key);public String delete(int id_key);² 实现类设计public class DeviceImpl implements DeviceDAO public Vector query(String bzjt_num, String bzjt_name)public String insert(DeviceVo vo)public DeviceVo queryOnly(int id_key)public String update(DeviceVo vo, int id_key)public String delete(int id_key)² Vo设计public class DeviceVo private String id_key;private String bzjt_num;private String bzjt_name;private String bzjt_scs;private String bzjt_decl;private String bzjt_use_code;public DeviceVo(String idKey, String bzjtNum, String bzjtName,String bzjtScs, String bzjtDecl, String bzjtUseCode) super();id_key = idKey;bzjt_num = bzjtNum;bzjt_name = bzjtName;bzjt_scs = bzjtScs;bzjt_decl = bzjtDecl;bzjt_use_code = bzjtUseCode;3.4.3.仓库信息维护3.4.3.1.功能要求仓库查询:1. 输入仓库代码,点击“查询”,使系统能够按照仓库代码搜索相关仓库信息;2. 输入仓库名称,点击“查询”,使系统能够按照仓库代码搜索相关仓库信息;3. 假设无输入直截了当查询,则查询全部信息。添加新仓库:1. 单击“添加新仓库”,输入相关数据,点击“提交”,添加新仓库信息。删除已弃用的仓库:2. 选定行,单击“删除仓库”,点击“提交”,删除所选仓库信息。修正仓库信息:3. 选定行,单击“修正仓库信息”,修正信息,点击“提交”,删修正所选仓库信息。仓库信息维护流程示意图如下:3.4.3.2.详细设计² 仓库信息维护表:JT3802T_CKGL字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(6) not null主键CKDM仓库代码VARCHAR2(30)not null仓库代码CKMC仓库名称VARCHAR2(20)not null仓库名称CKLX仓库类型VARCHAR2(50)not null仓库类型CKDZ仓库地址VARCHAR2(100)not null仓库地址CKGLY仓库治理员VARCHAR2(8)not null仓库治理员LXFS仓库联络方式NUMBER(11)仓库联络方式² 界面设计仓库信息维护界面:新增界面:修正界面:删除界面:² 接口设计public interface CkglDAO public String insert(CkglVo vo);/插入新的仓库信息public Vector select(String ckdm,String ckmc); /按照仓库代号查询仓库public String delete(int id_key); /依照ID_KEY删除信息public String update(CkglVo vo,int id_key); /更新仓库信息public CkglVo queryOnly(int id_key);/查询一笔记录(用于修正,删除)² 实现类设计public class CkglImpl implements CkglDAO /查询仓库治理表信息public Vector select(String ckdm, String ckmc)/删除仓库治理表信息public String delete(int idkey)/查询一条记录,用于删除和修正public CkglVo queryOnly(int idKey)/修正仓库治理表信息public String update(CkglVo vo, int id_key)/插入仓库治理表信息public String insert(CkglVo vo)² Vo设计public class CkglVo private String id_key;private String ckdm;private String ckmc;private String cklx;private String ckdz;private String ckgly;private String lxfs;public CkglVo(String idKey, String ckdm, String ckmc, String cklx,String ckdz, String ckgly, String lxfs) super();id_key = idKey;this.ckdm = ckdm;this.ckmc = ckmc;this.cklx = cklx;this.ckdz = ckdz;this.ckgly = ckgly;this.lxfs = lxfs;3.4.4.滤棒信息维护3.4.4.1.功能要求滤棒查询:1.输入滤棒代码,点击“查询”,使系统能够按照滤棒代码搜索相关滤棒信息;2.输入滤棒名称,点击“查询”,使系统能够按照滤棒名称搜索相关滤棒信息;3.假设无输入直截了当查询,则查询全部信息。添加新研发的滤棒:1. 单击“添加新滤棒”,输入相关数据,点击“提交”,添加新滤棒信息。删除已弃用的滤棒:1选定行,单击“删除滤棒信息”,点击“提交”,删除所选滤棒信息。修正滤棒信息:1选定行,单击“修正滤棒信息”,修正信息,点击“提交”,删修正所选滤棒信息滤棒信息维护流程示意图如下:3.4.4.2.详细设计² 滤棒信息维护表:JT3802T_LBGL字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(6) not null主键LBDM滤棒代码VARCHAR2(30)not null滤棒代码LBMC滤棒名称VARCHAR2(20)not null滤棒名称GG仓库名称VARCHAR2(50)not null仓库名称DJ等级VARCHAR2(100)not null等级² 界面设计滤棒信息维护界面:新增界面:修正界面:删除界面:² 接口设计public interface LbglDAO/查询public Vector query(String lbdm,String lbmc);/新增public String insert(LbglVo vo);/查询一笔(用于修正,删除)public LbglVo queryOnly(int id_key);/修正public String update(LbglVo vo,int id_key);/删除public String delete(int id_key);² 实现类设计public class LbglImpl implements LbglDAO /查询public Vector query(String lbdm,String lbmc)/新增public String insert(LbglVo vo)/查询一笔(用于修正,删除)public LbglVo queryOnly(int id_key)/修正public String update(LbglVo vo,int id_key)/删除public String delete(int id_key)² Vo设计public class LbglVo private String id_key;private String lvdm;/滤棒代码private String lvmc;/滤棒名称private String gg;/滤棒规格private String dj;/滤棒等级public LbglVo(String idKey, String lvdm, String lvmc, String gg,String dj) id_key = idKey;this.lvdm = lvdm;this.lvmc = lvmc;this.gg = gg;this.dj = dj;3.4.5.系统自动排班3.4.5.1.功能要求排班人员通过生成排班信息按钮生成某段时间内的排班信息;班次为每天四班,早班从早上6:0012:00,晚班从12:0018:00,小夜班从18:0024:00,大夜班从00:006:00;一月为一个循环,计算每个月的第一天的星期数,获得每周的起讫日期,班次的安排以周为单位,当前周的下一周自动把当前周的早班调为大夜班,晚班调为早班,小夜班调;为晚班,大夜班调为小夜班,以此类推。班次接受按天部分的调整,方便在部分员工在不便的情况下调整当班时间系统自动排班流程示意图如下:3.4.5.2.详细设计² 系统自动排班表:JT3802T_BANCIGL字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(6) not null主键BANDATE年月日VARCHAR2(20)not null年月日ZAOBAN早班VARCHAR2(6)not null早班WANBAN晚班VARCHAR2(6)not null晚班XIAOYEBAN小夜班VARCHAR2(6)not null小夜班DAYEBAN大夜班VARCHAR2(6)not null大夜班² 界面设计系统自动排班界面:修正界面:删除界面:² 接口设计public interface BanciglDAO public Vector query(String bandate);/按选择的日期查询public String insert(String date,StringBuffer banci);/按起始天插入一个月的排班计划public String queryOnly(int id_key);/查询一笔(修正,删除用)public String update(String s,int id_key);/修正指定id_key的值班班级public String delete(int id_key);/删除制定id_key的排班信息² 实现类设计public class BanciglImpl implements BanciglDAO /按选择的日期查询public Vector query(String bandate)/按起始天插入一个月的排班计划public String insert(String date,StringBuffer banci) /查询一笔(修正,删除用)public String queryOnly(int id_key) /修正指定id_key的值班班级public String update(String s,int id_key) /删除制定id_key的排班信息public String delete(int id_key)3.4.6.机台挡车工对应关系3.4.6.1.功能要求·机台挡车工对应关系系统的功能视图如下所示:见下页图(暂无)·机台挡车工对应关系系统是一个相对独立的子系统,主要援用了是建立职工与机台之间的对应关系,方便其他子系统的援用查询·功能详细分为:建立职工号、姓名与机台号、机台姓名、起日期、讫日期的对应关系 客户通过该系统查询机台挡车工对应关系:a. 查询职工所对应的机台号、机台姓名b. 查询职工所工作的起讫日期客户通过该系统增加机台挡车工对应关系a. 增加职工号、职工姓名、机台号、机台姓名、起讫日期对应关系客户通过该系统删除机台挡车工对应关系a. 删除职工号、职工姓名、机台号、机台姓名、起讫日期对应关系客户通过该系统修正机台挡车工对应关系a. 修正职工号、职工姓名b. 修正机台号、机台姓名c. 修正起讫日期机台挡车工对应关系流程示意图如下:3.4.6.2.详细设计² 机台挡车工对应关系表:JT3802T_STAFF_MACHINE字段名字段内容数据类型相关约束备注ID_KEY主键NUMBER(6) not null主键STAFF_ID职工号VARCHAR2(50)not null职工号STAFF_NAME姓名VARCHAR2(50)not null姓名JQ_ID机台代码VARCHAR2(50)not null机台代码JQ_NAME机台VARCHAR2(50)not null机台START_DATE起日期DATEnot nul起日期END_DATE止日期DATEnot nul止日期² 界面设计机台挡车工对应关系维护界面:新增界面:修正界面:删除界面:² 接口设计/* * 接口,声明增删改查方法 */public interface Staff_MachineDAO /查询职工public Vector staffquery(String staff_id,String staff_name);/查询机台public Vector machinequery(String jq_id,String jq_name);/查询职工、机台public Vector query(String staff_id,String staff_name,String jq_id,String jq_name);/查询全部机台挡车工关系public Vector smqueryAll();/新增public String insert(Staff_Machine vo);/查询一笔(修正,删除用)public Staff_Machine queryOnly(int id_key);/修正public String update(Staff_Machine vo,int id_key);/删除public String delete(int id_key); ² 实现类设计/* * 实现类,实现数据的增删改查方法 */ public class Staff_MachineImpl implements Staff_MachineDAO /查询职工public Vector staffquery(String staff_id,String staff_name)

    注意事项

    本文(2022年(详设模板)卷包车间物料消耗精细化核算系统详细.doc)为本站会员(de****x)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开