diff --git a/DataBase/hjglDB_7_2024.05.12(本机).bak b/DataBase/hjglDB_7_2024.05.12(本机).bak new file mode 100644 index 0000000..6b321a8 Binary files /dev/null and b/DataBase/hjglDB_7_2024.05.12(本机).bak differ diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index c6b5c5f..75e7396 100644 Binary files a/HJGL/.vs/HJGL/v17/.suo and b/HJGL/.vs/HJGL/v17/.suo differ diff --git a/HJGL/FineUIPro.Web/Doc/操作说明书.docx b/HJGL/FineUIPro.Web/Doc/操作说明书.docx index cde0b52..e6317ec 100644 --- a/HJGL/FineUIPro.Web/Doc/操作说明书.docx +++ b/HJGL/FineUIPro.Web/Doc/操作说明书.docx @@ -1,271 +1,228 @@ - 管道焊接管理操作说明 + 诺必达管道焊接管理操作说明 + 目录 +一、登录软件 2 +二、综合平台 2 +三、进入项目 3 +1.基础设置 3 +2.系统设置 4 +3.项目设置 6 +四、公共信息: 8 +1.基础信息 8 +2.文档控制 8 +五、现场管道焊接管理 9 +1.焊接管理 9 +2. NDE管理 13 +3.热处理/硬度管理 17 +4.PMI检测管理 20 +5.试压包 20 +6. 通用导入 21 +7.焊接报表 22 - 总体框架(综合平台): - 首页呈现:包括项目图片,焊工名次(查看明细),焊工工作量,拍片工作量,过期焊工提醒,承包商报表(查看明细)。 - - 在综合平台的上方:公共信息,现场管道安装可自由切换,快捷菜单为预留功能以后可扩展。进入现场管道安装要先选择项目(选择好以后就默认),皮肤为本软件的呈现风格,动画为软件运行时加载大量数据时等待动画, - 最右边中英文切换的下拉选择。 + +一、登录软件 + 1、访问地址:http://47.104.145.164:8899/ +二、综合平台 +1、首页:包括项目图片,焊工名次(查看明细),焊工工作量,拍片工作量,过期焊工提醒,承包商报表(查看明细)。 +2、在综合平台的上方:公共信息,现场管道安装可自由切换,快捷菜单为预留功能以后可扩展。进入现场管道安装要先选择项目(选择好以后就默认),皮肤为本软件的呈现风格,动画为软件运行时加载大量数据时等待动画,最右边中英文切换的下拉选择。 + - - -选择项目 - +三、进入项目 +进入现场管道安装首次要选择项目 + +如后面有多个项目则可从这里切换 + 说明:一个新项目开始,要按下面顺序进行操作。 -包括:基础设置:项目类型,项目信息,单位信息,焊工信息,首页定制等 - 系统设置:角色管理,用户管理,修改密码,角色授权,日志管理等 - 项目设置:项目的参与单位、参与用户,参与焊工,项目装置,系统环境变量,项目图片等。 - +包括:基础设置:项目信息,单位信息,焊工信息等 + 系统设置:角色管理,用户管理,修改密码,角色授权,日志管理等 + 项目设置:项目的参与单位,参与用户,参与焊工,项目装置,系统环境变量,项目图片等。 1.基础设置 -项目类型:主要是区分项目是大项目还是小项目,和焊工业绩统计施工进度和质量统计有关,有增加、删除、修改等功能 - -项目信息:维护所有项目信息,有增加、删除、修改,查询等功能 - - +项目信息:维护所有项目信息,有增加、删除、修改,查询等功能,可按项目编号,项目名称,是否完工来查询,点增加,右键可编辑,删除(没有业务才可删除),查看 + 单位信息:所有和项目有关的单位库,有增加、删除、修改、查询等功能,后面项目的参与单位就从这里选择。 -焊工信息:项目上所有焊工信息库,包括焊工焊接资质,焊工在所有项目上业 -绩,有增加、删除、修改、查询、导入等,说明:焊工资质和上交焊接记录有逻辑关系。后面项目上参与焊工就从这个焊工库中选择,"焊工号"自动生成。规则:小项目字母:A~J开头后跟3位流水数字;大项目字母K~Z开头后跟3位流水数字 - - - - -焊工资质 - - - - - +焊工信息:项目上所有焊工信息库,包括焊工焊接资质,焊工在所有项目上业绩,有增加、删除、修改、查询、导入,导出等,说明:焊工资质和上交焊接记录有逻辑关系。后面项目上参与焊工就从这个焊工库中选择,WPS中可焊焊工也是从中选择。 + +焊工资质:录入合格项目代号后,点击资质分析,可判断这个焊工能焊接的材质类型,焊接方法,焊接位置,外径和壁厚范围等,从而可判断这个焊工有没有焊接某焊缝的资质。 + 2.系统设置 角色管理:操作系统的用户角色,每种角色权限也不一样,有增加、删除、修改、查询等功能。 - - + 角色授权:用户根据角色设置权限,用来操作具有权限的模块(设置到按钮权限) - - - -用户管理和密码修改:所有登陆系统的用户的管理包括增加、删除、修改、查询等功能,用户能修改自己的密码,管理员能重置所有用户的密码。后面项目上参与用户就从中选择。 -说明:用户可具有多种角色。 - - + +用户管理和密码修改:所有登陆系统的用户的管理包括增加、删除、修改、查询等功能, +可根据姓名、单位、是否在岗联合查询,新用户的初始密码为:abc.1234,如果密码输入错误10次则账户锁定,8小时后可自动解锁,管理员有权限解锁。后面项目上参与用户就从中选择。说明:用户可具有多种角色。 + +用户能修改自己的密码,管理员能重置所有用户的密码。说明:安全要求密码为不小于8位的由字母数字和特殊字符组成 + 日志管理:记录用户对软件进行的操作,不能删除。 - - - + 3.项目设置 -项目的参与单位,参与用户,参与焊工都属于项目上的信息设置,设置参与该项目的单位、用户、焊工。如下图:参与单位:先从单位库选择参与单位,再双击可编辑参与单位的组织机构和班组信息,用户和焊工与单位设置一样,不再说明。 - -选择单位: - -双击编辑单位信息和班组 - - +项目的参与单位,参与用户,参与焊工都属于项目上的信息设置,设置参与该项目的单位、用户、焊工。如下图:参与单位:先从单位库选择参与单位,设置单位类型,点击确定。再从列表页面双击可编辑参与单位的组织机构和班组信息,用户和焊工与单位设置一样,不再说明。 + +双击编辑单位信息和班组,焊工资质是否启用如勾选,录入焊接日报是会验证焊工资质 + 项目上参与用户的选择并在这里分配角色,用户根据自己的角色来操作分配给他的任务。 - - - - - - - -项目焊工:根据参与项目的单位来选择参与的焊工。 - - -项目装置:先进行装置的设置,再点击区域设置进行工作区的设置。项目装置和区域设置都具有增加、删除、修改、查询等功能 - - -环境变量设置:对一些项目可能有一些有别与其它项目的特殊要求,可在这里设置,我们暂未用到,不再说明 - + +项目焊工:根据参与项目的单位来选择参与的焊工。同时选择焊工所在班组。 + +项目装置:先进行装置的设置,再点击区域设置进行工作区的设置。项目装置和区域设置都具有增加、删除、修改、查询等功能,区域里设置该区域的施工单位和监理单位。 + +环境变量设置:对一些项目可能有一些有别与其它项目的特殊要求,检测周期是批批次里比例未达到要求而时间已达到设定的周期这时会触发自动点口,点口待办提醒周期是指批次里待办的口超过设定的周期就提醒,点口待办提醒比例是指批次里待办口的比例达到设定的提醒比例里会在点口提醒中显示。如:如点口待办提醒比例设置为50%,5%比例检测,那就是20个口的50%为10个口就提醒。 + 项目图片设置:上传和项目相关的图片,首页滚动显示设置为显示的最近的5张图片。 项目图片设置具有增加、删除、修改、等功能。 + - 公共信息:主要包括通用的基础信息,焊接工艺评定查询,文件控制,过程控制资料。 -1.基础信息:焊接耗材,探伤类型,探伤比例,焊缝类型,管道等级,安装组件,焊接方法,坡口类型,材质定义,介质定义,直径寸径对照表,缺陷性质等。 +四、公共信息: +主要包括通用的基础信息,文件控制。 +1.基础信息 + 包括:焊接耗材,探伤类型,探伤比例,焊缝类型,管道等级,压力管道分级,安装组件,焊接方法,坡口类型,材质定义,介质定义,直径寸径对照表,缺陷性质等,试压类型。 举例说明其中之一,其它不再说明。如下图探伤类型的维护操作:点击增加,录入数据点提交即可完成。选中记录项点击即可删除,如提交即完成修改。如后面管理焊口信息中业务用到则删除不了。 - 说明:基础信息都是后面焊接现场管理的一些统一标准,在进行管线设置、焊口信息设置等会大量用到,所以要事先进行维护。 - +说明:基础信息都是后面焊接现场管理的一些统一标准,在进行管线设置、焊口信息设置等会大量用到,所以要事先进行维护。 +这里重点说下直径寸径对照表:在焊口信息中系统会根据对照表中的寸径和美标壁厚自动得出外径,壁厚,规格等。对非美标的也做相应的设置。 + +2.文档控制 + 包括:可维护和上传国内外焊接管理的一些法律法规和标准规范,便于项目上参考和查看,有增加、删除、修改、查询等功能,这里不再说明。 + +五、现场管道焊接管理 + 进入现场管道焊接:首页也分为六个部分(都是所选项目的数据):焊接工作量、拍片工作量、点口待处理提醒,点口未委托焊口,委托未检测的焊口、返修未委托的焊口。 + 包括模块:焊接管理,热处理硬度管理,PMI检测管理,NDE 管理,试压管理,焊接报表,通用导入。 + +1.焊接管理 + 包括:焊接工艺规程,管线信息管理,焊口信息管理,焊接日报 + 焊接工艺规程:有增加、删除、修改,导入、查询等功能。焊口中的信息要和选定的WPS里信息一至,其中注意可焊焊工的选择,在提交日报时需验证该焊工是否具有焊接该工艺的资质 + -这里重点说下管道等级的设置,管道等级录入好后要进行条件设置,在进行管线信息的设置时选择管道等级,则相应的组批条件会带出来。 - -管道等级的条件设置 - - -2.焊接工艺评定:根据焊口的参数而采用什么焊接工艺评定提供相应的参考,有增加、删除、修改、查询,导入,导出等功能。 - - -3.文档控制:可维护和上传国内外焊接管理的一些法律法规和标准规范,便于项目上参考和查看,有增加、删除、修改、查询等功能,这里不再说明。 - -4.过程控制资料:包括焊接数据统计(日、周、月),施工单位焊接统计,焊接质量月统计报表,焊工名次,项目焊接质量状态,最终存档数据。 - -焊接数据统计(日、周、月):根据起始时间进行分项目进行统计,并可导出统计结果。 - - - -施工单位焊接统计:根据项目类型和起始时间分单位进行统计,并可导出统计结果。 - -焊接质量月统计报表:根据项目和年份分月进行统计,并可导出统计结果。 - - -焊工名次:根据项目类型和年份分焊工进行统计,并可导出统计结果。 - - -项目焊接质量状态:根据起始时间(周)进行分总的和周来进行统计,并可导出统计结果。 - - -最终存档数据:对选择的项目的焊接情况和检测结果进行统计,并可导出统计结果。 - - 现场管道焊接管理 - 进入现场管道焊接:首页也分为六个部分(都是所选项目的数据):焊接工作量、拍片工作量、点口未委托焊口,委托未检测的焊口、检测未审核的焊口、返修未委托的焊口。 - - - 焊接管理: - 管线信息,有增加、删除、修改,查询等功能,也可导入(在通用导入模块),根据用户需要设置要显示的列。 -列表页面 - -编辑页面:这里根据管道等级可设置组批条件(默认根据管道等级条件设置带出) - - 焊口信息设置:有增加、批量增加,删除、修改,导出、查询等功能,用户可根据需求选择要显示的列,也可导入(在通用导入模块),根据用户需要显示用户关心的信息,打印焊接工作记录,根据条件查询所需信息。说明:批量增加的焊口信息一至,如有不一至可到编辑页面修改。 - -编辑页面: - -选择要显示的列 - - 焊接记录上交:显示当前月份的焊接日报,也可查询所有月份的日报,有增加、删除、修改功能,根据焊工资质系统自动判断有没有焊接资质并给于提示,根据单位加载日报信息,展开显示日报明细信息 注意:日报的焊口如已检测则不能删除。 - 日报提交会根据设置的组批条件自动组批。 - - - -录入日报时根据选择的单位装置查找所有未焊的焊口(范围逐渐缩小),提交时要录入日报编号。列表里信息可进行编辑。提交后对应焊口信息也改变。 - - - - - - - - -选择所焊的口并选择焊工后提交。 - - - + (1)管线信息,有增加、删除、修改,查询等功能,也可导入(在通用导入模块),根据用户需要设置要显示的列。这里要特别注意的属性是探伤比例,我们的自动点口分段,点口数量和些属性有关, + + (2)焊口信息设置:有增加、批量增加,删除、修改,导出、查询等功能,用户可根据需求选择要显示的列,也可导入(在通用导入模块),根据用户需要显示用户关心的信息,打印焊接工作记录,根据条件查询所需信息。说明:批量增加的焊口信息一至,如有不一至可到编辑页面修改。注意:WPS选择焊口信息会比较WPS信息只有一至才能显示,可能探伤类型为多选,比如选择RT和PT,则提交日报时会分别进入RT的批和PT的批进行RT和PT检测。根据寸径和美标壁厚自动带出外径,壁厚,规格 + + 日报编辑页面: + + (3)焊接记录上交:显示当前月份的焊接日报,也可查询所有月份的日报,有增加、删除、修改功能,焊工资质双验证:根据焊工资质系统自动判断有没有焊接资质并给于提示,根据WPS验证焊工有没有资质并给于提示,根据单位加载日报信息,展开显示日报明细信息注意:日报的焊口如已检测则不能删除。 + 日报提交会根据设置的组批条件自动组批和点口。 + 说明:本系统是按管线来组批。点口根据焊线的检测比例和焊口设置的检测类型进行点口 + a、RT探伤的规则 + 1、焊工首三件:焊工进入这个单元所焊的首三口,必点 + 2、外径大于等于500的焊口必点 + 3、黄金焊口:黄金焊口必点 + 4、分段随机点口规则:如管线的探伤比例为20% 的 按焊工也就是5个焊口为一段,系统会在这个焊工焊的第(1-5,6-10....)随机点一个口,如比例10%,系统会在这个焊工焊的第(1-10,11-20,21-30....)随机点一个口。 + 5、时间段:系统设置时间(如未设置按15天来算),如焊工在所设置的时间段焊接没有达到比例的数量,比如10%在设置的时间段焊接数量没有达到10个口,如只焊接5个口,系统会在这5个口中随机点一个口并关闭这个段(注:这个规则会造成检测比例大于管线设置的检测比例)。 + 6、固定口比例:系统在随机点口时会优先点固定口,以确保固定口检测比例大于或等于40%。 + b、非RT探伤的规则 + 1、分段随机点口规则:同RT + 2、时间段:同RT + c、手动点口: + 根据特殊需要或因检测条件受限需要换口检测时可手动进行点口,有权限控制。 + 日报显示页面如下: + + 手动录入日报时根据选择的单位装置查找所有未焊的焊口(范围逐渐缩小),提交时要录入日报编号(目前为自动生成)。列表里信息可进行编辑。如焊口属性,焊接位置等提交后对应焊口信息也改变。 + + 选择所焊的口并选择焊工后提交。 + + 日报也有导入功能,按下载的模板进入录入后并导入,并和基础数据相互验证,不一至不能提交 2. NDE管理 - 点口管理:也是焊接记录上交时即生成检验批:根据单位、装置、焊缝类型、探伤类型、探伤比例、介质、材质、焊工等条件组批,包括批手动点口关闭(当批超过一定时间,如半个月,还未关闭,这时可手动点口关闭),打开重新点口(当批中自动点的口不能满足检测要求时可打开重新点口),手动结束批(当批点口关闭后这是批如还没结束时可手动结束批),重新选择扩口(当批中扩透口不能满足检测要求时可打开重新择扩口),生成(根据要求生成委托单),打印(委托单打印),点口单查询(可根据批的状态,委托的状态,焊工,月份等查询)等功能。 - 颜色标记说明:批没有关闭:粉色,没有委托:深黄色,存在返修: 蓝色,当天批:红包 - - - 无损委托单:即点口时生成委托单(按项目、单位、装置、区域、检测方法、管线来生成。委托单号生成规则:项目号-->单位号-->检测方法-->区域编号(WBS号)-->流水号-->扩口或返修口标记(正常的不用标记)),有查看、打印等功能,左边树可按月份、委托单号来查询。 - -列表页面如下图: - - - - 检测单录入包括: 新增、导入、编辑、审核、删除等功能。左边树可按月份、检测单号来查询。 - - - - - - - -点击新增:可按单位、装置、探伤类型、管线号来查询还未检测的委托单。再点击要检测的委托单,则会加载委托单的明细,录入数据(探伤单号自动带出即委托单号)和必填字段探伤单号、探伤日期、检测单位等后保存。 - - - -检测单导入导入:先下载模板,录入检测结果,浏览选择文件后先审核数据,再导入。 -模板中红色标记的字段必填。注意:必须和无损委托单及其明细对应。 - - - - -点编辑页面:如委托单有的明细还未选择录入,或者录入后未审核,则可进行编辑修改。 - - -点击审核:对录入的数据进行审核。审核后的数据做不能修改,删除等操作。审核后的数据也可取消审核。 - - -如有返修则在其对应的批中自动点扩透口,这时返修口后加R1(一次返修),扩透口加K1 -也可重新选择扩透口。 - + 包括:点口管理,点口等审核,无损委托单,无损委托单打印,无损检测报警,无损委托单查询,检测单录入,返修/扩透 + (1)点口管理:也是焊接记录上交时即生成检验批,功能包括: + a.生成委托单(根据要求自动分组(按装置,区域,焊接方法,坡口类型,是否首焊,探伤类型等分组)生成委托单。 + b.手动生成委托单:勾选点口并已通过审核的焊口生成委托单,所选焊口生成一张委托,不分组,单勾选的焊口必须是焊接方法,坡口类型,是否首焊保持一至 + c.打开重新点口(当批中自动点的口不能满足检测要求时可打开重新点口) + d.手动点口关闭(当批超过一定时间,如半个月,还未关闭,这时可手动点口关闭) + e.右键功能:右键点击要操作的焊口可取消点口,取消扩透,修改首焊,切除焊口等。 + + (2)点口待审核:列出所有点口待审核的焊口,可按要审核的主体,检测方法,点口日期进行查询,直接勾选需要审核的焊口一键审核 + + + (3)无损委托单:即点口时生成委托单,委托单号生成规则:检测方法-->单位编号-->区域编号-->PI-->流水号-->扩口或返修口标记(正常的不用标记)),有查看、委托单打印等功能,左边树可按月份、管线号、委托单号来查询。如下图: + + (4)无损委托单打印:根据条件查出无损委托单,勾选需要打印的委托单一键打印 + + (5)无损委托单报警:根据条件查询未检测的委托单,大于5天还未检测的委托单红色报警,大于3天小于等于5天还未检测的委托单黄色预警 + + (6)无损委托单查询:根据条件查询无损委托单并导出 + + (7)检测单录入包括: 新增、导入、编辑、审核、删除等功能。左边树可按月份、检测单号来查询。 + + 点击新增:可按单位、装置、探伤类型、管线号来查询还未检测的委托单。再点击要检测的委托单,则会加载委托单的明细,录入数据(探伤单号自动带出即委托单号)和必填字段探伤单号、探伤日期、检测单位等勾选检测的焊口后保存。 + + 检测单导入导入:先下载模板,录入检测结果,浏览选择文件后先审核数据,再导入。 + 模板中红色标记的字段必填。注意:必须和无损委托单及其明细对应。 + + + 点编辑:如委托单有的明细还未选择录入,或者录入后未审核,则可进行编辑修改。 + 点击审核:对录入的数据进行审核(系统默认检测单录入或导入后是已审核状态)。审核后的数据做不能修改,删除等操作。审核后的数据也可取消审核。 + 点生成返修通知单:只有检测不合格的并已审核的焊口才能下返修通知单,选中不合格的焊口点击生成返修能和在弹出页面提交后即生成 + + 返修通知单 + + (8)生成返修通知单后自动加载到返修/扩透菜单,点击单号根据勾选条件自动加载需扩透的焊口(一返为两个扩透口),可选择返修焊工(默认为初始焊接的焊工),点击保存-->生成,这时会生成一个返修单委托单和一个扩透委托单。 + + 在无损委托单处理一个返修单委托单和一个扩透委托单。 + 3.热处理/硬度管理 -1)热处理委托及数据录入:有新增、编辑、删除等功能。 - 右键可录入热处理报告。可上传报告。 + (1)热处理委托及数据录入:有新增、编辑、删除等功能。 + 右键可录入热处理报告。可上传报告。 + + 热处理报告 + + 点击新增:根据装置、单位查找需要热处理但还没有进行热处理的焊口,填写委托单号和日期保存即可。查找页面左边树可按管线号查询,列表页面分全部、已焊、未焊查找。如还没有进行硬度委托,则可对这个热处理委托单进行编辑和删除操作。 + + (2)热处理反馈及硬度委托:勾选是否完成再保存,热处理委托完成可进行硬度委托。 + + (3)硬度委托及数据录入: 有新增、编辑、删除等功能。 + 点击硬度报告可录入报告内容和上传报告 + + 硬度报告录入 + + 点击新增:根据装置、单位查找热处理已完成的焊口,填写委托单号和委托日期等必填字段后保存即可。查找页面左边树可按管线号查询。 + + 4)硬度检验结果反馈:勾选合格或不合格结果反馈再保存。 + +4.PMI检测管理 + (1)PMI委托:有新增、编辑、删除等功能。 + 点击新增按钮:弹出新增窗口,在窗口中录入委托单号、检测日期、装置名称、单位名称、检测标准、制表人、备注等信息,弹出窗的下部分点击查找可以选择管线信息弹出。 + 明细可编辑质量证明文件和制造/验收标准等。 + 先选择要修改的PMI委托然后点击修改按钮:弹出修改界面将页面信息修改完成之后点击保存按钮保存数据; + -热处理报告 + (2)PMI检测录入:此功能是查看PMI委托信息,在委托明细中可编辑检测日期,报告日期,报告编号,是否合格等信息 + +5.试压包 + 包括:试压包录入,试压前尾项A检测,试压包审核,试压后尾项B检测,试压包完成 +试压包录入可导入和增加,选择管线组成试压包 + + 录入试压包各管线的尾项A检查: + + 试压包审核:审核试压包内管线是否完成焊接,检测比例是否达到,检测是否合格,焊工是否覆盖等信息,并可打印该试压包交工资料。 + + 最后进行试压后尾项B检测,试压包完成。 +6. 通用导入 + 包括:主要是管线、焊口信息的导入,有审核提交,删除临时表数据,模板下载,导入说明等功能。 + (1)下载模板:按模板字段录入内容,红色为必填项。 + + 浏览数据-上传保存到临时表中 + + 审核提交:数据审核后没问题的数据提交成功,有问题的数据将鼠标移到焊口片提示原因。 + + 可在焊口处点击修改,修改后再进行审核提交操作,注意:这里有个是否批量修改,如勾选则临时表数据中所有记录都修改,否则只修改当前记录。 + + 说明:如导入信息有误,点击更新导入会覆盖之前数据,如已焊接则原则上只能覆盖部分信息 +7.焊接报表 + 包括:根据一定的条件分组统计用户所需要的,用列表或图形的形式呈现。数据可导出到Excel。包括:单位工区进度分析,单位工区质量分析,焊接日报导出,焊工业绩分析,周焊工焊接量统计,焊工返修记录,焊工RT统计表,管线综合分析,探伤综合报告,焊口综合信息,NDE积压汇总表,NDE积压焊口一览表,未焊焊口清单,焊接信息,焊口业务未处理清单。 + 如单位工区进度分析:按单位、装置、区域、钢材类型、日期为条件,按单位、装置、区域分组统计。以列表的形式呈现, + + 焊接日报导出 + + 焊工业绩分析 + - - - - - -点击新增:根据装置、单位查找需要热处理但还没有进行热处理的焊口,填写委托单号和日期保存即可。查找页面左边树可按管线号查询,列表页面分全部、已焊、未焊查找。如还没有进行硬度委托,则可对这个热处理委托单进行编辑和删除操作。 - - - -2)热处理反馈及硬度委托:勾选是否完成再保存,热处理委托完成可进行硬度委托。 - - - - -3)硬度委托及数据录入: 有新增、编辑、删除等功能。 - 点击硬度报告可录入报告内容和上传报告 - -硬度报告录入 - - - - - -点击新增:根据装置、单位查找热处理已完成的焊口,填写委托单号和委托日期等必填字段后保存即可。查找页面左边树可按管线号查询。 - - - - -4)硬度检验结果反馈:勾选合格或不合格结果反馈再保存。 - - - - - - - - -4. 通用导入:主要是管线、焊口信息的导入,有审核提交,删除临时表数据,模板下载,导入说明等功能。 - 1)下载模板:按模板字段录入内容,红色为必填项。 - - -浏览数据-上传保存到临时表中 - - -审核提交:数据审核后没问题的数据提交成功,有问题的数据将鼠标移到焊口片提示原因。 - - - -可在焊口处点击修改,修改后再进行审核提交操作,注意:这里有个是否批量修改,如勾选则临时表数据中所有记录都修改,否则只修改当前记录。 - - -更新导入是一样的,这里不再说明 - - - - - - - - - -5.焊接报表:根据一定的条件分组统计用户所需要的,用列表或图形的形式呈现。数据可导出到Excel。 -如单位工区进度分析:按单位、装置、区域、钢材类型、日期为条件,按单位、装置、区域分组统计。以列表的形式呈现, - - -如积压焊口:按单位、时间段、检测方法为条件来统计一段时间里的积压焊口,以列表和图表的形式呈现。 - - -所有焊接报表统计都是一样的操作,这里就不再一一说明了。 + 所有焊接报表统计都是一样的操作,这里就不再一一说明了。 diff --git a/HJGL/FineUIPro.Web/Doc/操作说明书.rar b/HJGL/FineUIPro.Web/Doc/操作说明书.rar index 08b9e53..b7e50e4 100644 Binary files a/HJGL/FineUIPro.Web/Doc/操作说明书.rar and b/HJGL/FineUIPro.Web/Doc/操作说明书.rar differ diff --git a/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 8d0cdf2..0baedd9 100644 --- a/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -2,7 +2,7 @@ ProjectFiles - Debug|Any CPU + Release|Any CPU true diff --git a/HJGL/FineUIPro.Web/Web.config b/HJGL/FineUIPro.Web/Web.config index baa8804..8868ed3 100644 --- a/HJGL/FineUIPro.Web/Web.config +++ b/HJGL/FineUIPro.Web/Web.config @@ -51,7 +51,7 @@ - + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/JointComprehensive.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/JointComprehensive.aspx.cs index 7fabb4c..d69f4c6 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/JointComprehensive.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/JointComprehensive.aspx.cs @@ -74,8 +74,8 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport Grid1.DataBind(); var distinctPipelineCode = tb.AsEnumerable().GroupBy(row => row.Field("PipelineCode")).Select(group => group.First()); - var backingWelder = tb.AsEnumerable().GroupBy(row => row.Field("BackingWelderCode")).Select(group => group.First()); - var coverWelder = tb.AsEnumerable().GroupBy(row => row.Field("CoverWelderCode")).Select(group => group.First()); + var backingWelder = tb.AsEnumerable().Where(row => row.Field("BackingWelderCode")!=null).GroupBy(row => row.Field("BackingWelderCode")).Select(group => group.First()); + var coverWelder = tb.AsEnumerable().Where(row => row.Field("CoverWelderCode")!= null).GroupBy(row => row.Field("CoverWelderCode")).Select(group => group.First()); var jotNum = from x in tb.AsEnumerable() group x by new { pipe = x.Field("PipelineCode"), jot = x.Field("WeldJointCode"), Size = x.Field("JOT_Size") } into g diff --git a/HJGL/FineUIPro.Web/default.aspx b/HJGL/FineUIPro.Web/default.aspx index e49e67d..ac1324e 100644 --- a/HJGL/FineUIPro.Web/default.aspx +++ b/HJGL/FineUIPro.Web/default.aspx @@ -344,7 +344,7 @@ // 点击标题栏工具图标 - 查看源代码 function onToolSourceCodeClick(event) { - window.open('Doc/操作说明书.rar', '_blank'); + window.open('Doc/操作说明书.docx', '_blank'); } // 点击标题栏工具图标 - 刷新 diff --git a/HJGL/Model/Model.cs b/HJGL/Model/Model.cs index d7b7bc6..e3f8ab1 100644 --- a/HJGL/Model/Model.cs +++ b/HJGL/Model/Model.cs @@ -29,6 +29,10 @@ namespace Model #region 可扩展性方法定义 partial void OnCreated(); + partial void OnCreated() + { + this.CommandTimeout = 600; + } partial void InsertAttachFile(AttachFile instance); partial void UpdateAttachFile(AttachFile instance); partial void DeleteAttachFile(AttachFile instance); diff --git a/HJGL/WebApi/WebApi.csproj.user b/HJGL/WebApi/WebApi.csproj.user index 6db81e9..33091aa 100644 --- a/HJGL/WebApi/WebApi.csproj.user +++ b/HJGL/WebApi/WebApi.csproj.user @@ -8,7 +8,7 @@ - Debug|Any CPU + Release|Any CPU FolderProfile diff --git a/HJGL/WebApi/obj/Release/WebApi.csproj.AssemblyReference.cache b/HJGL/WebApi/obj/Release/WebApi.csproj.AssemblyReference.cache index 278ca91..0f8d702 100644 Binary files a/HJGL/WebApi/obj/Release/WebApi.csproj.AssemblyReference.cache and b/HJGL/WebApi/obj/Release/WebApi.csproj.AssemblyReference.cache differ diff --git a/HJGLPackFile/版本日志/HJGLDB_2024.05.12.sql b/HJGLPackFile/版本日志/HJGLDB_2024.05.12.sql new file mode 100644 index 0000000..f0570d5 --- /dev/null +++ b/HJGLPackFile/版本日志/HJGLDB_2024.05.12.sql @@ -0,0 +1,289 @@ +-- ߺ Ƿ PMI +alter table Pipeline_WeldJoint add isPMI bit NULL +GO +update Pipeline_WeldJoint set isPMI=0 +GO + +ALTER VIEW [dbo].[View_Pipeline_WeldJoint] +AS +/************Ϣͼ*****************/ +SELECT WeldJoint.WeldJointId, +WeldJoint.ProjectId, +WeldJoint.PipelineId, +WeldJoint.WeldJointCode, +dbo.Fun_GetParseInt(WeldJoint.WeldJointCode) AS ConvertWeldJoint, +WeldJoint.WeldTypeId, +WeldJoint.Material1Id, +WeldJoint.Material2Id, +WeldJoint.ANSISCH, +WeldJoint.Thickness, +WeldJoint.Dia, +WeldJoint.Size, +WeldJoint.JointAttribute, +WeldJoint.JointArea, +WeldJoint.WeldingMethodId, +WeldJoint.IsHotProess, +WeldJoint.WeldingLocationId, +WeldJoint.WeldMatId, +WeldJoint.WeldSilkId, +WeldJoint.GrooveTypeId, +WeldJoint.PipeSegment, +WeldJoint.PipeAssembly1Id, +WeldJoint.PipeAssembly2Id, +WeldJoint.PipeAssemblyCount, +WeldJoint.HeartNo1, +WeldJoint.HeartNo2, +WeldJoint.LastTemp, +WeldJoint.CellTemp, +WeldJoint.PrepareTemp, +WeldJoint.Electricity, +WeldJoint.SystemNumber, +WeldJoint.Remark, +WeldJoint.DoneDin, +WeldJoint.Voltage, +WeldJoint.TestPackageNo, +WeldJoint.WeldingDailyCode, +WeldJoint.WeldingDailyId, +WeldJoint.BackingWelderId, +WeldJoint.CoverWelderId, +WeldJoint.PipingClassId, +WeldJoint.Specification, +WeldJoint.CancelResult, +Project.ProjectCode, +Project.ProjectName, +Pipeline.PipelineCode, +Pipeline.InstallationId, +Pipeline.UnitId, +Pipeline.SingleNumber, +Pipeline.WorkAreaId, +WeldType.WeldTypeCode, +Material1.MaterialCode AS Material1Code, +Material2.MaterialCode AS Material2Code, +WeldingMethod.WeldingMethodCode, +WeldingLocation.WeldingLocationCode, +WeldMat.ConsumablesCode AS WeldMatCode, +--WeldSilk.ConsumablesCode AS WeldSilkCode, +'' AS WeldSilkCode, +GrooveType.GrooveTypeCode, +CASE WHEN WeldJoint.WeldingDailyId IS NULL THEN '' ELSE '' END AS Is_hjName, +CASE WHEN WeldJoint.IsHotProess=1 THEN '' ELSE '' END AS IsHotProessStr, +Components1.ComponentsCode AS ComponentsCode1, +Components2.ComponentsCode AS ComponentsCode2, +BackingWelder.WelderCode AS BackingWelderCode, +BackingWelder.WelderName AS BackingWelderName, +CoverWelder.WelderCode AS CoverWelderCode, +CoverWelder.WelderName AS CoverWelderName, +(CASE WHEN CoverWelder.WelderCode IS NOT NULL AND BackingWelder.WelderCode IS NOT NULL + THEN CoverWelder.WelderCode + '/' + BackingWelder.WelderCode + ELSE (ISNULL(CoverWelder.WelderCode,'') + ISNULL(BackingWelder.WelderCode,'')) END) AS WelderCode, -- + (CASE WHEN Material1.MaterialCode IS NOT NULL AND Material2.MaterialCode IS NOT NULL + THEN Material1.MaterialCode + '/' + Material2.MaterialCode + ELSE (ISNULL(Material1.MaterialCode,'') + ISNULL(Material2.MaterialCode,'')) END) AS MaterialCode, -- +pipingClass.PipingClassCode,pip.PIPClassCode, +CONVERT(VARCHAR(100), WeldingDaily.WeldingDate, 23) AS WeldingDate, +WeldJoint.IsCancel, +WeldJoint.IsPMI, +WeldJoint.IsGoldJoint, +WeldJoint.WPQId,wps.WPQCode, +WeldJoint.DetectionType, +WeldJoint.PageNum +FROM Pipeline_WeldJoint AS WeldJoint +LEFT JOIN Base_Project AS Project ON Project.ProjectId=WeldJoint.ProjectId +LEFT JOIN Pipeline_Pipeline AS Pipeline ON Pipeline.PipelineId = WeldJoint.PipelineId +LEFT JOIN Base_WeldType AS WeldType ON WeldType.WeldTypeId=WeldJoint.WeldTypeId +LEFT JOIN Base_Material AS Material1 ON Material1.MaterialId = WeldJoint.Material1Id +LEFT JOIN Base_Material AS Material2 ON Material2.MaterialId = WeldJoint.Material2Id +LEFT JOIN Base_WeldingMethod AS WeldingMethod ON WeldingMethod.WeldingMethodId=WeldJoint.WeldingMethodId +LEFT JOIN Base_WeldingLocation AS WeldingLocation ON WeldingLocation.WeldingLocationId=WeldJoint.WeldingLocationId +LEFT JOIN Base_Consumables AS WeldMat ON WeldMat.ConsumablesId=WeldJoint.WeldMatId +--LEFT JOIN Base_Consumables AS WeldSilk ON WeldSilk.ConsumablesId=WeldJoint.WeldSilkId +LEFT JOIN Base_GrooveType AS GrooveType ON GrooveType.GrooveTypeId=WeldJoint.GrooveTypeId +LEFT JOIN Base_Components AS Components1 ON Components1.ComponentsId = WeldJoint.PipeAssembly1Id +LEFT JOIN Base_Components AS Components2 ON Components2.ComponentsId = WeldJoint.PipeAssembly2Id +LEFT JOIN Welder_Welder AS BackingWelder ON BackingWelder.WelderId=WeldJoint.BackingWelderId +LEFT JOIN Welder_Welder AS CoverWelder ON CoverWelder.WelderId=WeldJoint.CoverWelderId +LEFT JOIN Pipeline_WeldingDaily AS WeldingDaily ON WeldingDaily.WeldingDailyId=WeldJoint.WeldingDailyId +LEFT JOIN Base_PipingClass AS pipingClass ON pipingClass.PipingClassId=WeldJoint.PipingClassId +LEFT JOIN dbo.Base_PIPClass pip ON pip.PIPClassId = Pipeline.PIPClassId +LEFT JOIN dbo.WPQ_WPQList wps ON wps.WPQId=WeldJoint.WPQId + + + +GO + + + + +ALTER PROC [dbo].[sp_rpt_JointComprehensive] + @projectId NVARCHAR(50), + @workAreaId NVARCHAR(50)=NULL, + @pipelineIds NVARCHAR(MAX) = NULL + +AS +/**********ۺϢ**********/ +SELECT + weldJoint.WeldJointId, + weldJoint.ProjectId, + WorkArea.WorkAreaId, + WorkArea.WorkAreaCode, + weldJoint.SystemNumber, + weldJoint.TestPackageNo, + pipeline.SingleNumber, + pipeline.PipelineCode, + pipeline.DrawingsNum, + pipingClass.PipingClassCode,pip.PIPClassCode, + weldJoint.PageNum, + weldJoint.PipeSegment,--ܶ + weldJoint.WeldJointCode, + weldType.WeldTypeCode, + weldJoint.JointAttribute, + wl.WeldingLocationCode, + weldJoint.Dia, + weldJoint.Thickness,--ں + weldJoint.HeartNo1, + weldJoint.HeartNo2, + com1.ComponentsName AS PipeAssembly1, + com2.ComponentsName AS PipeAssembly2, + --material.MaterialCode, + mat1.MaterialCode AS MaterialCode1, + mat2.MaterialCode AS MaterialCode2, + cw.WelderCode AS CoverWelderCode, + fw.WelderCode AS BackingWelderCode, + WeldMethod.WeldingMethodName, + medium.MediumName, + weldingDaily.WeldingDate, + weldingDaily.WeldingDailyCode, + trust.TrustBatchCode, + --TrustBatchCode.DetectionRateCode, + --TrustBatchCode.AcceptLevel, + (CASE WHEN weldJoint.IsHotProess=1 THEN '' ELSE '' END) AS IsHotProess, + null as TrustBatchCode, + null as DetectionRateCode, + null as AcceptLevel, + nde.NDEDate AS CHT_CHECKDATE, + ndeItem.NDEReportNo, + CAST(CAST(ISNULL(weldJoint.Size,0) AS REAL) AS NVARCHAR(8)) AS JOT_Size, + WeldMaterialMat.ConsumablesCode AS WMT_MatCode, + WeldMaterialMat.ConsumablesName AS WMT_Matname, + weldJoint.WeldSilkId, + --WeldMaterialSilk.ConsumablesCode AS hsCode, + --WeldMaterialSilk.ConsumablesName AS hsname, + --WeldMaterialSilk.UserFlux, + weldJoint.Specification, + wps.WPQCode,ndttype.DetectionTypeCode,NULL AS HotReportCode, + (CASE WHEN (PointBatchItem.PointState='1' OR PointBatchItem.PointState='2') + THEN (CASE WHEN PointBatchItem.IsWelderFirst=1 THEN '' ELSE '' END) ELSE '' END) AS if_dk +FROM Pipeline_WeldJoint AS weldJoint + LEFT JOIN Pipeline_Pipeline AS pipeline ON pipeline.PipelineId = weldJoint.PipelineId + LEFT JOIN Project_WorkArea AS WorkArea ON WorkArea.WorkAreaId = pipeline.WorkAreaId + LEFT JOIN Base_Material AS mat1 ON mat1.MaterialId = weldJoint.Material1Id + LEFT JOIN Base_Material AS mat2 ON mat2.MaterialId = weldJoint.Material2Id + LEFT JOIN Base_WeldingMethod AS WeldMethod ON WeldMethod.WeldingMethodId = weldJoint.WeldingMethodId + LEFT JOIN dbo.Base_WeldType weldType ON weldType.WeldTypeId = weldJoint.WeldTypeId + LEFT JOIN dbo.Base_WeldingLocation wl ON wl.WeldingLocationId = weldJoint.WeldingLocationId + LEFT JOIN Base_Medium AS medium ON medium.MediumId = pipeline.MediumId + LEFT JOIN Base_Components com1 ON com1.ComponentsId=weldJoint.PipeAssembly1Id + LEFT JOIN Base_Components com2 ON com2.ComponentsId=weldJoint.PipeAssembly2Id + LEFT JOIN Base_PipingClass AS pipingClass ON pipingClass.PipingClassId=WeldJoint.PipingClassId + LEFT JOIN dbo.Base_PIPClass pip ON pip.PIPClassId = Pipeline.PIPClassId + LEFT JOIN Pipeline_WeldingDaily AS weldingDaily ON weldingDaily.WeldingDailyId = weldJoint.WeldingDailyId + LEFT JOIN dbo.WPQ_WPQList wps ON wps.WPQId = weldJoint.WPQId + left join Welder_Welder AS fw on weldJoint.BackingWelderId = fw.WelderId + left join Welder_Welder AS cw on weldJoint.CoverWelderId = cw.WelderId + LEFT JOIN Base_Consumables AS WeldMaterialMat ON WeldMaterialMat.ConsumablesId =weldJoint.WeldMatId + --LEFT JOIN Base_Consumables AS WeldMaterialSilk ON WeldMaterialSilk.ConsumablesId =weldJoint.WeldSilkId + LEFT JOIN Batch_PointBatchItem AS PointBatchItem ON PointBatchItem.WeldJointId =weldJoint.WeldJointId + LEFT JOIN dbo.Batch_PointBatch point ON point.PointBatchId = PointBatchItem.PointBatchId + LEFT JOIN dbo.Base_DetectionType ndttype ON ndttype.DetectionTypeId = point.DetectionTypeId + LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId = PointBatchItem.PointBatchItemId + LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = trustItem.TrustBatchId + LEFT JOIN dbo.Batch_NDEItem ndeItem ON ndeItem.TrustBatchItemId = trustItem.TrustBatchItemId + LEFT JOIN dbo.Batch_NDE nde ON nde.NDEID = ndeItem.NDEID + + WHERE weldJoint.ProjectId=@projectId + AND(pipeline.WorkAreaId=@workAreaId OR @workAreaId IS NULL) + AND (CHARINDEX(weldJoint.PipelineId,@pipelineIds)>0 or @pipelineIds IS NULl) + --AND(pipeline.PipelineCode=@pipelineCode OR @pipelineCode IS NULl) + + GO + +UPDATE dbo.Template_Files SET title=REPLACE(title,cast(sortindex as nvarchar(50))+'-','') +GO + +UPDATE dbo.Template_Files SET SortIndex=SortIndex+1 where SortIndex>24 +GO + +INSERT INTO [dbo].[Template_Files]([id],[title],[filePath],[SortIndex]) +VALUES('95125974-3DD4-4E16-B4F0-A9D9C9A1406D','ܵӽͷPMIȷϱ','',25) +GO + +-- PMIί +create table PMI_Delegation +( + Id nvarchar(50) not null primary key, + DelegationNo nvarchar(50) not null, + DelegationDate datetime, + ProjectId nvarchar(50) not null, + InstallationId nvarchar(50), + UnitId nvarchar(50), + DetectionStandard nvarchar(50), + Tabler nvarchar(50), + Remark nvarchar(255), + CreatedTime datetime default getdate() +) +go +---- PMIί ϸ +create table PMI_DelegationDetails +( + Id nvarchar(50) not null primary key, + PMIId nvarchar(50) not null, + JointId nvarchar(50) not null, + QualityNo nvarchar(255), + Acceptance nvarchar(255), + Status int not null, + CreatedTime datetime default getdate() +) +go + + +-- PMIίв˵ +insert into Sys_Menu values('A6FB44C3-0920-4F77-862F-D814FD5E5D23','PMI','PMI detection management','',21,0,3,NUll,1) +insert into Sys_Menu values(NEWID(),'PMIί','PMI delegation','/WeldingProcess/PMI/PMIDelegation.aspx',1,'A6FB44C3-0920-4F77-862F-D814FD5E5D23',3,NULL,1) +insert into Sys_Menu values(NEWID(),'PMI¼','PMI detection entry','/WeldingProcess/PMI/PMIDetectionEntry.aspx',2,'A6FB44C3-0920-4F77-862F-D814FD5E5D23',3,NULL,1) +GO + + +/*******PMIίϸͼ***********/ + +ALTER VIEW [dbo].[View_PMI_DelegationDetails] +AS +/********ȴϸ********/ +SELECT +TrustItem.Id, +TrustItem.Acceptance, +TrustItem.CreatedTime, +TrustItem.JointId as WeldJointId, +TrustItem.status, +TrustItem.QualityNo, +TrustItem.PMIId, +Trust.ProjectId, +Trust.DelegationNo, +Trust.DelegationDate, +WeldJoint.WeldJointCode, +Pipeline.PipelineCode, +WeldJoint.Specification, +Material.MaterialCode, +Pipeline.WorkAreaId +FROM PMI_DelegationDetails AS TrustItem +LEFT JOIN PMI_Delegation AS Trust ON Trust.Id=TrustItem.PMIId +LEFT JOIN Pipeline_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=TrustItem.JointId +LEFT JOIN Pipeline_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId +LEFT JOIN Base_Material AS Material ON Material.MaterialId=WeldJoint.Material1Id +GO + + + + + + + diff --git a/HJGLPackFile_2024.05.12.rar b/HJGLPackFile_2024.05.12.rar new file mode 100644 index 0000000..00b6c52 Binary files /dev/null and b/HJGLPackFile_2024.05.12.rar differ