APP下载

基于C#的钢板余料管理系统研究

2021-01-26徐国强

江苏船舶 2020年6期
关键词:船级社钢板管理员

徐国强

(中船澄西船舶修造有限公司,江苏 江阴 214433)

0 引言

为了缓解资金压力,降本增效的措施在造船各环节中越来越受到重视。提高钢板利用率在造船成本控制中的作用不容忽视,如果余料入库出库不能保证正确处理,将会导致人工管理费用的增加和大量钢板的浪费,影响企业的竞争力[1]。

目前,船舶余料信息化管理方面的研究严重不足。为此,本文首先对本厂船舶余料进行定义,其次建立钢板余料数据库,开发钢板余料管理系统,从而实现对钢板余料的信息化管理。

1 钢板余料的定义

在放样、套料过程中,受船体线形、板材规格、板缝线、结构形式等影响,必然会产生一定数量形状各异、大小不同且可以继续使用的板材。一般把大于1 m2的板材称为设计余料,将大于0.3 m×0.3 m的板材称为边角余料。将这些余料纳入余料管理系统,实现数据共享,加以合理管理,能极大提高钢材的利用率。

为了便于有效识别余料,余料需进行编号。编号需满足基本属性,并具有唯一性。余料编码由14位构成,其编码规则见图1。

1.1 厚度表示(3位)

板厚6 mm表示方法为:006,板厚6.5 mm表示方法为:065,板厚10 mm表示方法为:010,板厚10.5 mm表示方法为:105。

图1 余料编码规则

1.2 年月表示(2位)

年月表示方法为末位填写方法,如:2014年5月填写为45,2014年10月则填写4A,2014年11月则填写4B,2014年 12月填写4C。

1.3 序列号表示(3位)

以000至999依次排序。

1.4 船级社表示(1位)

挪威船级社(DNV): N, 美国船级社(ABS): A, 英国劳氏船级社(LR): L,韩国船级社(KR): R, 法国船级社(BV): B,中国船级社(CCS): C, 日本船级社(NK): K, 意大利船级社(RINA): I。

2 钢板余料数据库的建立

对钢板余料管理系统要实现的功能模块进行分析,利用SQLSERVER数据库相关知识[2],建立钢板余料数据库(RemainderManagerDB)。数据库包括表格管理员表、管理员角色表、管理员权限列表、工程创建表、余料数据表、日志管理表等,并设置各表格字段属性。

建表是实现信息化的第一步,建立数据库代码具体如下:

use master

go

If exists (select * from sysdatabases where

name=′RemainderManagerDB′)

drop database RemainderManagerDB

go

create database RemainderManagerDB

on primary

(

name=′RemainderManagerDB_data′,

filename=′E:DB RemainderManagerDB_data.mdf′,

size=100GB,

filegrowth=10%

)

log on

(

name=' RemainderManagerDB_log′,

filename=′E:DBRemainderManagerDB_log.mdf′,

size=500MB,

filegrowth=2MB

)

2.1 管理员表

管理员表包括存储管理员的登录账号和密码、登录编号、角色。

2.2 管理员角色表

管理员角色表为管理员配置不同角色。

(1)超级管理员:拥有系统所有权限,分配管理员权限角色。

(2)高级管理员:数放套料人员,对设计余料进行数据导入、修改、删除、更新等操作。

(3)车间管理员:对车间余料进行数据导入、修改、删除、更新等操作。

(4)一般管理员:对余料数据库拥有查询权限,通过过滤条件查询自己需要使用的余料反馈给高级管理员或车间管理员进行登记。

2.3 余料数据表

余料数据表包括余料名称、余料来自、板厚、宽、长、余料数量、余料用于、余料重量、已用数量、剩余数量等存储余料的信息,是余料管理系统主要数据信息。建表代码如下:

if exists(select * from sysobjects where

name=′Remainder′)

drop table Remainder

go

create table Remainder

(

Id int identity (1, 1) primary key not null,

ProjectId int not null,

ProjectNo varchar (20) not null,

RemName varchar (50) not null,

RemFrom varchar (100),

RemThickness varchar (20) not null,

RemMaterial varchar (20) not null,

RemLength int not null,

RemWidth int not null,

TotalQty int not null,

RemWeight numeric (18, 2),

ForBlock varchar (500),

ForUnit varchar (500),

UsedCount int not null,

RemCount int not null,

RemType varchar(20) not null,

Remark varchar(50),

Block varchar (20) not null,

Author varchar(50),

OrignSpecification varchar(50),

MaterialNo varchar(50),

RemAreacode varchar (50) not null,

UpdateTime smalldatetime not null

)

2.4 日志管理表

日志管理表是管理员的登录日志记录文件,以便查阅系统数据的准确性,方便系统的维护。

2.5 工程创建表

工程创建表为公司的每一个项目创建工程,记录工程号及工程描述信息。每一工程都与余料数据表里的信息相关联。

2.6 权限列表

权限列表存储不同角色的管理员,拥有系统功能操作的各种不同的权限。

2.7 一级菜单表

一级菜单表存储系统一级菜单的ID号和菜单的名称。

2.8 二级菜单表

二级菜单表存储系统二级菜单的ID号和菜单的名称。

2.9 角色权限表

角色权限表为中间表,存储角色、权限的ID号及角色的编号。

另外,设置各表格的主键、外键、默认值、唯一性等约束,建立各表间的联系,创建视图,方便查询。

3 利用C#语言的三层架构实现相关功能模块

3.1 ADO.NET的概述

ADO.NET[3]是一组向.NET程序开发者公开数据访问的服务类,为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据库、XML和应用程序数据的访问,是.NET Framework中不可缺少的部分。

3.2 余料管理系统的三层架构

钢板余料管理系统采用.NET的技术架构,利用C#语言的三层架构实现相关的功能模块。三层架构主要是用户界面层(UI: User Interface)、业务逻辑层(BLL: Business Logic Layer)、数据访问层(DAL: Data Access Layer)包括实体对象(Models),并建立三层架构的相互依赖关系。三层均要引用实体对象(Models),业务逻辑层要引用数据访问层,界面层还要引用业务逻辑层。

打开VS2013应用软件创建Windows项目,取名RemainderManagerPro,按C#语言的三层架构分别创建类Models、DAL、BLL并建立三层架构的引用关系,这是实现用C#语言开发钢板余料管理系统的第一步。实体对象(Models)主要就是根据创建的数据库里的各种表格创建实体类,类的各种成员变量为表格中的各字段,一般与数据库中各字段相同。实体类DAL主要是利用ADO.NET的Connection和Command对象实现对数据库的访问和对数据的查询、更新等操作。

首先在DAL命名空间下,创建一个通用数据访问类(SQLHelper),连接数据库。其次,创建各实体类的数据访问方法,一般数据方法命名是实体类+Service,如AdminService, AdminRoleService。主要方法一般是增、删、改、查等操作。

然后,创建各实体类的业务逻辑层(BLL)。一般BLL的命名是实体类+Manager,如AdminManager、AdminRoleManager等。

各种类编写完毕后,开始编写用户界面层(UI),也就是各种Windows窗体模块,即钢板余料管理系统的主要功能模块。编写各窗体模块的同时可对DAL和BLL的数据进行补充和完善。

UI是用户与系统直接交互的层,包括窗体、用户自定义的控件等,通过引用实体类以及业务逻辑类,来调用业务逻辑,展示给用户。

3.3 钢板余料管理系统主要功能模块

3.3.1 管理员登录模块

管理员根据自己的工号和密码登录系统。

(1)高级管理员:设计部数放设计人员登录系统后,根据公司现有项目创建相应工程,并将由套料软件生成的余料Excel表格,通过本系统导入到数据库。导入前需选择相应的工程号。每一项目的余料都对应相应的工程号。

(2)车间管理员:将车间的边角余料录入系统,并建立相应的钢板余料堆场,按系统里的余料信息做好余料标识,实现有效管理。

(3)一般管理员:登录系统查询相应余料信息,并通过公司通讯软件将要使用的余料反馈给高级管理员或车间管理员。高级管理员或车间管理员收到信息后,将信息更新到余料管理系统中,并指定相关配送人员将余料配送到相应位置。

3.3.2 工程创建模块

工程创建模块主要是对公司现有项目建立相应的工程号及相应的描述信息。工程创建一般由超级管理员或高级管理员、车间管理员来创建。一个项目对应唯一的工程ID,保证了项目的独立性,相关的管理员在各自的客户端操作时也不会发生冲突。

3.3.3 权限与角色管理

权限与角色管理功能模块只有超级管理员才能操作。超级管理员可以添加、修改、删除管理员,启用、禁用管理员账号,并对管理员的角色进行设置,对管理员拥有系统的权限进行设置。管理员的信息也可以通过外部Excel文件整体导入。超级管理员的角色不容许设置,一般只能对其他管理员的角色进行设置。此功能模块是钢板余料管理系统能否实现分层、有效管理的关键。

3.3.4 余料数据表字段构成和管理

3.3.4.1 余料数据表的字段构成

余料数据表是本系统的核心,也是存储余料信息的关键数据表,主要字段如下:

(1)系统ID:从1开始自动记录插入的余料数据,是本表的主键。

(2)工程ID:记录余料的工程ID,是本表的外键,与工程创建表中工程ID相关联。

(3)余料名称:是余料数据的关键字段,每一工程每一条余料信息的余料名称是唯一的。为了使高级管理员和车间管理员在入库登记时不冲突,余料名称需满足一定的编码规则。

(4)余料来自:记录产生余料的套料指令号。

(5)厚度:记录余料的板厚信息。

(6)宽度:记录余料的宽度。

(7)长度:记录余料的长度。

(8)材质:记录余料的材质。

(9)余料用于分段:记录余料的流向是用于哪个分段。

(10)余料重量:记录余料的重量信息,是计算余料利用率的重要信息。

(11)余料数量:记录余料的数量。

(12)已用数量:记录余料已使用的数量。

(13)剩余数量:记录余料剩余数量。

(14)余料类型:规则或不规则。

(15)制作单位:记录余料产生的场地,本部或分公司或其他外包场地。

(16)区域码:记录余料产生的区域,双层底或舷侧、机舱等。使用时同一区域的余料尽可能在同一区域使用,以减少余料的周转率,提高效率。

3.3.4.2 余料数据表的管理

高级管理员或车间管理员可以通过系统从外部Excel将余料信息批量导入余料数据,并保存到数据库,也可以在平台上逐条添加余料信息,对余料数据进行修改、删除、更新等操作。高级管理员和车间管理员导入数据时需按余料名称规则导入,两者之间相互不冲突。高级管理员无权限导入车间的余料数据,对其只有查询权限;同时车间管理员也无权限导入设计的余料数据,对其也只有查询权限。这样可以保证数据的独立性。

一般管理员可以按过滤条件查询自己需要的余料信息,过滤条件有工程号、余料名称、余料厚度、余料材质、剩余数量、制作单位。余料名称对于每一项目来说是唯一的。输入余料名称,就只能查询到1条信息;余料厚度可固定在某一厚度或输入范围,如:“厚度:10”表示厚度为10 mm的板,“厚度10,15”表示厚度大于等于10 mm小于等于15 mm,“剩余数量:0”表示过滤掉无剩余的余料;制作单位:按余料所在场地来查询余料。一般管理员查询到自己需要的余料后,通过公司通讯软件将信息传给相应的高级管理员或车间管理员;高级管理员或车间管理员收到信息后,在系统上对余料信息进行更新操作。钢板余料管理系统操作界面见图2。

图2 钢板余料管理系统操作界面

3.3.5 报表分析

项目结束后对每个项目的余料数据进行分析,计算余料利用率,并生成柱状图表,清晰反映每个项目余料的利用情况。

4 结论

钢板余料管理系统的研究,对造船企业有以下几个方面的意义:

(1)将钢板余料从上道设计阶段到下道生产阶段融合贯通,解决了企业中各信息系统流转不畅、无法共享的信息孤岛问题。

(2)生成的报表为领导调整经营计划等决策提供了依据和支持,完善了企业的信息化建设。

(3)钢材的利用率由原来不到90%提高到93%以上,余料的周转率由50 d缩短到7 d。

猜你喜欢

船级社钢板管理员
双钢板与锁定钢板在复杂肱骨近端骨折治疗中的疗效比较
探讨拉森钢板桩在市政工程基坑支护中的应用
从规范要求看各船级社对柴油机认可的差异化
可疑的管理员
SA—387Gr11C12钢板(6=88mm)厚压裂原因分析
IACS第74次理事会举行
骨折手术的钢板 可以不拆吗
全球各大船级社计划重返伊朗市场
让管理员管不了的名字
当小小图书管理员