具体实施方式
本发明所提供的一种基于硬件电路原理图生成物料清单表的方法及***,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的一种基于硬件电路原理图生成物料清单表的方法,采用B/S(Browser/Server浏览器和服务器)的架构,一切功能都在服务器完成。
用户通过账号密码登记进入本***中,然后会看到左边显示用户所能进行的所有操作,另边为对应左边某一项的详细显示。通过右边的操作便可以继续深入***的每一步操作。本发明实施例中由java的SSH(struts,spring,hibernate)三大架构开发而成,数据库为Mssql。
如图1所示,所述基于硬件电路原理图生成物料清单表的方法主要包括以下步骤:
步骤S100、接收并导入从硬件电路原理图导出的原始数据文件;并将该原始数据文件保存在服务器中生成原始数据文件副本。
本发明实施例中,接收导入的数据量大,且为winter 09 Protel***的导出数据,所以本***采用导入文件的方式输入数据。而导入的文件都是采用逗号隔开的csv文件,即纯文本格式。
为了兼容,本发明中做了两种导入文件格式的兼容,一种是单数据文件,一种是单位号文件,具体见下面分析。方便用户不管导入哪一种,都可以正常工作。
其中,即所述原始数据文件包括单数据文件,单位号文件。
其中,第一种单数据文件里保存的每一行数据都为一条物料数据,且所有行的物料为不同物料;如下:
Comment,Description,Designator,Footprint,LibRef,Quantity
"0.1uF-0402","","C26, C106, C175","C0402N","C, CAP NP","3"
"10pF-0402","","C32, C110","C0402N","CAP NP","2"
"10uF-0805","","C49, C92, C153, C156","C0805","CAP NP","4"
第2种单位号文件里保存的每一行数据的位号是一个。如下:
"Part Type","Designator","Footprint"
"0.01uF-0402-X7R-±10%-50V","C176","C0402N"
"0.01uF-0402-X7R-±10%-50V","C183","C0402N"
"0.01uF-0402-X7R-±10%-50V","C198","C0402N"
"0.01uF-0402-X7R-±10%-50V","C348","C0402N"
"0.01uF-0402-X7R-±10%-50V","C32","C0402N"
"0.1uF-0402-Y5V-+80%-20%-25V","C351","C0402N"
"0.1uF-0402-Y5V-+80%-20%-25V","C63","C0402N"
"0.1uF-0402-Y5V-+80%-20%-25V","C66","C0402N"
"0.1uF-0402-Y5V-+80%-20%-25V","C341","C0402N"
以上两种导入的格式都是由硬件电路原理图winter 09 Protel***导出的原始数据文件。
如图2所示的实施例S10,接收用户的操作导入原始数据文件A,并保存用户上传的原始数据文件A生成原始数据文件A的副本B。该实施例中,原始数据文件A由winter 09 Protel***导出,包括单数据文件,者单位号文件。原始数据文件A的副本B为A的复制,它们的关系为A在用户的本地电脑,B是用户把A上传时,保存在服务器的文件副本。
从***接口中接到用户导入的原努数据文件A,即为上面提到的(单数据文件或者单位号文件),会先用一个文件把它们全部保存起来叫做B,即用户上传的原数据文件的副本。然后进入步骤S200。
步骤S200、将该原始数据文件副本进行处理转换成统一格式的中间数据文件;其中,所述中间数据文件为固定格式的列数据文件。
本步骤中,参见图2所示的S20,将该原始数据文件副本进行简单处理转换成统一格式的中间数据文件C,即不管通过单数据文件上传还是单位号文件上传的原始数据文件B,都统一处理为***方便处理的格式,转换成一个单独的带统一格式的中间数据文件C保存在服务器中。这个中间数据文件C就是一个固定格式的列数据文件,作为最重要的中间保存数据,供以后查询用到。
本实施例的中间数据文件C的数据由如下组成:
"ID","Comment","Description","Designator","FootPrint","LibRef","Quantity","WhichBom","BomName","BomCode","Unit","LinkType"
参考数据如下:
"ID","Comment","Description","Designator","FootPrint","LibRef","Quantity","WhichBom","BomName","BomCode","Unit","LinkType"
"0","CKX3-3.5-11-G","","AV1 ","PHONE5","","1","","","","0","H"
"1","AV6-8.4-13D(上绿蓝红,下黄红白)","","AV2 ","AV6-8.4-13","","1","","","","0","H"
"2","AV-8.4-5(橙)","","AV3 ","AV-05","","1","","","","0","H"
"3","NC/AV3-8.4-06(黄、红、白)-U","","AV5 ","AV3-05-4","","1","","","","",""
"4","CKS3.5-KJ25","","AV6 ","PHONE17","","1","","","","0","H"
"5","NC/100pF-0402-NPO-±5%-50V","","C1 C121 C125 C131 C133 C164 C175 C189 C190 C191 C192 C195 C196 C210 ","C0402N","","14","","","","",""
"6","NC/10uF-0805-X5R-±10%-6.3V","","C2 ","C0805","","1","","","","",""
"7","0.1uF-0402-Y5V-+80%-20%-25V","","C3 C4 C5 C6 C7 C8 C10 C11 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C27 C28 C29 C30 C31 C33 C34 C35 C36 C37 C38 C39 C40 C41 C42 C43 C44 C45 C46 C47 C49 C50 C51 C52 C53 C54 C55 C56 C57 C58 C59 C60 C61 C62 C64 C65 C66 C67 C68 C69 C70 C71 C72 C75 C76 C77 C78 C79 C80 C81 C82 C83 C84 C85 C86 C87 C90 C91 C92 C93 C94 C97 C98 C99 C100 C101 C102 C103 C105 C107 C109 C111 C112 C113 C114 C116 C117 C119 C120 C122 C123 C124 C134 C147 C158 C159 C160 C161 C162 C168 C180 C193 C213 C218 C222 C228 C229 C246 C253 C261 C262 C263 C264 C274 C276 C283 C284 C285 C286 C287 C288 C289 C290 C291 C292 C293 C294 C295 C298 C299 C300 C317 C318 C319 ","C0402N","","144","","","","100000","S"
"8","NC/0.1uF-0402-Y5V-+80%-20%-25V","","C9 C26 C73 C89 C106 C183 ","C0402N","","6", "","","","",""
"9","NC/0.01uF-0402-X7R-±10%-50V","","C12 ","C0402N","","1","","","","",""
"10","1500pF-0402-X7R-±10%-50V","","C25 C165 C306 ","C0402N","","3","","","","1500","S"
"11","NC/1000pF-0402-X7R-±10%-50V","","C32 C320 C321 ","C0402N","","3","","","","",""
本实施例中,中间数据文件C的列是固定的,它把原始数据文件A的副本B中单数据和单位号两种格式的列统一成一种。所以***使用它时,就不用再判断它是单数据文件还是单位号文件了,且可以直接知道它的哪一列是什么内容。中间数据文件C的作用是作数据中转用。因为后面还要进入数据检索和对BOM表(物料清单表)进行排序,都是在中间数据文件C的基础上进行的。然后进入步骤S300。
步骤S300、通过调用该中间数据文件查询数据库,将该中间数据文件里的每个物料与数据库中最新的物料数据进行匹配,用数据库中最新的物料数据补全该中间数据文件中的每一条物料的名称和物料的代码,生成最终数据文件。本实施例中最终数据文件为保存在服务器***中csv格式文件,同时链接路径保存在数据库中。
本发明实施例中,服务器数据库中的数据是实时更新的,通过接收用户的操作指令实时更新数据库中的物料信息。最终数据文件在每次使用完成后自动删除。
本发明实施例中,如果用户想看其上传的原始数据文件A生成的bom表(物料清单表),就可以调出存在***的中间数据文件C去查数据库了。由于每个物料在数据库的信息都是会时不时更新的,比如供应商变了,比如换新物料了,比如换替换物料了。因此***每次都会调出中间数据文件C再去匹配数据库中的最新数据,生成最终数据文件D(也叫临时文件),再显示出来给用户看,所以每次用户看到的结果都是最新的结果。也因此每次看到的结果有可能不一致。
如图2中的S30,把中间数据文件C数据里的每个物料去划数据库,组装数据生成最终数据文件D,且最终数据文件D会在每次用户查看的过程中会自动重新去更新查询数据库得到最新的最终数据文件D。本实施例中最终数据文件D在每次使用完成后自动删除,节约了存储空间。
其中,所述步骤S300具体包括:
C1、调用该中间数据文件中的每一条记录的Comment值,去查询数据库中最新的物料数据,以得到相匹配的物料数据;
C2、用得到的相匹配的物料数据补全到该中间数据文件中的每一条物料的名称和物料的代码,得到与所述中间数据文件格式和列都相同的最终数据文件。
即,本实施例中由中间数据文件C生成最终数据文件D经过的步骤如下:
取中间数据文件C中的每一条记录的Comment值,去查数据库,以得到相匹配的物料数据,数据库里的数据都是实时更新的,数据都是最新的,比如对同一个物料,如果物料的供应商变了,换新物料了或者换替换物料了,就会在数据库中更新数据。所以即时去查数据库就可以得到的当前最新的结果。
然后,把用得到的相匹配的物料数据补全到该中间数据文件C中的每一条物料的名称和物料的代码,得到与所述中间数据文件D格式和列都相同的最终数据文件D,所以最终数据文件D的格式和列都同中间数据文件C一样,唯一不同的是最终数据文件D的数据比中间数据文件C的数据更全面,补充了每一条物料的名称和物料的代码。
上面处理中间数据文件C的数据得到最终数据文件D后数据如下所示:
"ID","Comment","Description","Designator","FootPrint","LibRef","Quantity","WhichBom","BomName","BomCode","Unit","LinkType"
"0","NC/0ohm-0402-±5%-1/16W","","AHMU AMMU R191 R306 R307 R308 R323 ","R0603N","","7","","","","",""
"1","0ohm-0603-±5%-1/10W","","ARMU R62 R82 R83 R84 R85 R90 R103 R142 R147 R162 R190 R192 R193 R196 R268 R269 R277 R280 R311 R321 R322 R324 ","R0603N","","23","","贴片电阻", "R.C.000J10-0603-G00","0","S"
"2","AV6-8.4-13D(上绿蓝红,下绿蓝红)","","AV1 ","AV6-8.4-13","","1","","6位AV端子", "J.A.68R413DL24-G00","0","H"
"3","AV6-8.4-13D(上黄红白,下黄红白)","","AV3 ","AV6-8.4-13","","1","","6位AV端子", "J.A.68413DXL27-G00","0","H"
"4","0.1uF-0603-Y5V-+80%-20%-50V","","C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C23 C24 C25 C26 C27 C28 C29 C30 C31 C32 C33 C35 C36 C37 C38 C39 C40 C41 C42 C43 C45 C46 C47 C48 C49 C50 C51 C69 C72 C75 C79 C108 C116 C117 C119 C127 C128 C131 C139 C173 C189 C199 C200 C202 C203 C204 C210 C211 C212 C218 C234 C240 CB3 CB4 CB5 CB6 CB8 CB9 CB16 CB17 CB18 CB19 CB21 CD6 CD7 CI1 ","C0603N","","87","","贴片电容", "C.C.104Z44-0603-G00","100000","S"
"5","10uF-0805-Y5V-+80%-20%-10V","","C34 C103 C104 C105 C106 C107 C124 C129 C206 CB23 CB24 CD10 CD11 CD12 ","C0805","","14","","贴片电容","C.C.106Z41-0805-G00","10000000","S"
"6","1000pF-0603-X7R-±10%-50V","","C44 C78 C153 C190 C197 C198 C239 ","C0603N","","7","","贴片电容","C.C.102K24-0603-G00","1000","S"
"7","0.01uF-0603-X7R-±10%-50V","","C52 C53 C54 C55 C56 C57 C58 C132 C134 C140 C142 C143 C147 C148 C150 C156 C162 C163 C164 C165 C168 C169 C170 C171 C172 C179 C180 C181 C182 ", "C0603N","","29","","贴片电容","C.C.103K24-0603-G00","10000","S"
"8","22pF-0603-NPO-±5%-50V","","C73 C74 C114 C115 C185 C186 C187 C188 C235 C236 C237 C238 ","C0603N","","12","","贴片电容","C.C.220J14-0603-G00","22","S"
"9","NC/1000pF-0603-X7R-±10%-50V","","C76 C184 ","C0603N","","2","","","","",""
"10","NC/22pF-0603-NPO-±5%-50V","","C77 ","C0603N","","1","","","","",""
"11","1uF-0603-Y5V-+80%-20%-10V","","C80 C81 C82 C83 C84 C85 C88 C89 C92 C93 C98 C99 C100 C101 C102 C111 C113 C120 C121 C122 C123 C125 C126 C208 C220 C257 CB28 CB29 CB30 ", "C0603N","","29","","贴片电容","C.C.105Z41-0603-G00","1000000","S"
然后进入步骤S400。
步骤S400、把最终数据文件中的数据生成PDF文档和/或把最终数据文件D中的数据转换成可直接导入到ERP***数据中的excel文件。
本实施例中,用中间数据文件C去查数据库得到的结果保存成可以给用户方便看的最终数据文件D。其中,该最终数据文件D采用方便***管理的csv格式保存在***中,同时链接路径保存在数据库中。最终数据文件D的数据就是最终的数据了。
参见图2,用户查看时,会用中间数据文件C去查数库生成最终数据文件D,并显示出来给用户查看。为了显示给用户看,如图2中的S32,本实施例中会把最终数据文件D的数据用PDF文档给用户下载查看,和/或把最终数据文件D的数据转成excel文件提供给用户下载使用。Excel文件可以直接导入到ERP***数据库中,生成物料清单表(BOM表)。
上述本发明实施例中,用户通过***管理列表进入到某一份BOM点生成BOM就可以进入预览界面。预览界面以列表的形式把数据显示给用户看。包括的项有:序号,代码,名称,材料规格,数量,位置,unit,和修改项。
同时对有特别属性的物料进行颜色标记,例如包括:深蓝,红色,绿色,蓝色。本实施例中,预定深蓝表示正常使用的物料,红色表示禁用物料,绿色表示即将使用物料,蓝色表示逐步淘汰物料。
本实施例中,做有接口,允许用户对***处理过的数据进行人工再修改。修改方法有两种:
1. 手动修改一条数据。
在预览列表里,每条数据后面都有一个修改项,只要用户点击就能进入修改这一条数据。就可以进入修改页面对所点的那条数据进行修改。修改好后,点击保存就行。点取消不保存
2. 导入补丁文件批量修改。
为了方便用户对多条数据进行修改,***有一个导入补丁的接口。首先在管理列表中找到某一份bom物料。如果想修改它里面的多行数据,那么可以点击添加补丁。所添加的补丁会自动应用在所选的文件上,且会自动生成另一份新bom。在管理列表中可以看到会多出一列。
其中,补丁文件的格式为:
2 0.1uF-0402-Y5V-+80%-20%-25V C311 C312
1 0ohm-0402-±5%-1/16W R99 R72 R79 R276 R277 R276 R277
7 4*33ohm-0402-±5%-1/16W RP7 RP9 RP10 RP11 RP12 RP13 RP14
7 4K7ohm-0402-±5%-1/16W R25 R62 R63 R64 R63 R64 R81 R82 R189
上述补丁文件的格式中,第一列表示数量,第二列表示材料规格,第三列表示位号。
因为有了补丁文件的修改,所以***还做了一个功能,可以查看当前bom表究竟是那些bom表加了那些补丁组成,***通过一个递归树表从源头一直列到最后一份来显示出来,方便用户观看。且每份都有原始数据备份,方便数据不对时可以核查。
其中,本发明实施例的PDF格式化数据输出,是通过前面的步骤实现了数据的输入,数据的***处理和人工修改后,就可以保存为最后的文件,然后通过***生成PDF文件来打印了。
PDF的数据格式为同预览一样的格式且上面的数据排序也是一样的。生成PDF文件后,***会把PDF文件存档。方法是用户自己点击功能:保存为生产。保存为生产的PDF文件,不会再被修改,且同时会保存一份原始数据,方便用户查看之前的上传数据是什么。
保存为生产文件的功能主要是因为前面每次生产预览时看到的数据都会去更新数据,这样对已经定义为生产的bom就不好了,因为不能知道当初生产时用的是那个物料,所以要记住,不能再变。因为设置了这个功能。只要用户觉得某份bom是最终的了,要生产了,就可以把它保存为生产bom。这样那时的数据就可以永久保存在***中,方便以后查阅。
而本发明实施例的数据保存有三种,一种是生成的PDF文件,一种是生成的excel文件导入ERP数据库用,一种是保存为生产的PDF文件。
生成的PDF文件,***会有一个临时存放的地方,生成后给链接用户下载,且用完就删除。
生成的excel文件也是给用户下载的,即换一种格式保存数据,对应ERP数据库排好数据,方便用户下载后可以直接导入到ERP数据库***中。
保存为生产的PDF文件。永久保存记住何时生产时的某份bom的详细记录。
由上可见,本发明实施例的基于硬件电路原理图生成物料清单表的方法,其可自动生成物料清单表,且生成效率高,准确性好。
基于上述实施例,本发明实施例还提供了一种基于硬件电路原理图生成物料清单表的***,本发明实施例中的***采用B/S(Browser/Server浏览器和服务器)的架构,所以用户不用安装任何软件即可以使用本***的所有功能。一切功能都在服务器完成。
用户通过账号密码登记进入本***中,然后会看到左边显示用户所能进行的所有操作,另边为对应左边某一项的详细显示。通过右边的操作便可以继续深入***的每一步操作。
本发明实施例的***开发由java的SSH(struts,spring,hibernate)三大架构开发而成。数据库为Mssql。
其中,如图3所示,所述基于硬件电路原理图生成物料清单表的***包括:
接收存储模块510,用于接收并导入从硬件电路原理图导出的原始数据文件;并将该原始数据文件保存在服务器中生成原始数据文件副本;具体如上述步骤S100所述。
转换模块520,用于将该原始数据文件副本进行处理转换成统一格式的中间数据文件;具体如上述步骤S200所述。
数据处理与生成模块530,用于通过调用该中间数据文件查询数据库,将该中间数据文件里的每个物料与数据库中最新的物料数据进行匹配,用数据库中最新的物料数据补全该中间数据文件中的每一条物料的名称和物料的代码,生成最终数据文件;具体如上述步骤S300所述。
输出模块540,用于把最终数据文件中的数据生成PDF文档和/或把最终数据文件中的数据转换成可直接导入到ERP***数据中的excel文件;具体如上述步骤S400所述。
其中,所述数据处理与生成模块530包括:
调用单元,用于调用该中间数据文件中的每一条记录的Comment值,去查询数据库中最新的物料数据,以得到相匹配的物料数据,具体如上所述。
数据匹配单元,用于将得到的相匹配的物料数据补全到该中间数据文件中的每一条物料的名称和物料的代码,得到与所述中间数据文件格式和列都相同的最终数据文件,具体如上所述。
综上所述,本发明所提供的基于硬件电路原理图生成物料清单表的方法及***,由于采用了接收并导入从硬件电路原理图导出的原始数据文件;并将该原始数据文件保存在服务器中生成原始数据文件副本;以及将该原始数据文件副本进行处理转换成统一格式的中间数据文件;、通过调用该中间数据文件查询数据库,将该中间数据文件里的每个物料与数据库中最新的物料数据进行匹配,用数据库中最新的物料数据补全该中间数据文件中的每一条物料的名称和物料的代码,生成最终数据文件。其使一切功能都在服务器完成,其提高了生成物料清单表的效率,且准确性好。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。