软件的设计与架构(好石油集团工程管理系统)
1. 项目目的
针对在好石油集团的工程项目全流程管理开发工程项目的管理系统,主要包含以下几个方面的需求:
1. 通过系统优化和固化工程项目的管理流程。
2. 通过系统规避不合规的操作流程。
3. 通过系统提高工作人员的工作效率
4. 通过系统实现项目的全流程跟踪
5. 通过系统自动生成各类统计报表,为项目管理决策提供依据。
2. 需求分析(以派工管理为例)
1. **现状分析**:工程项目管理参与的项目单位较多,主要包括建设单位,施工单位,监理单位,检测单位等,其中建设单位管理所涉及的职能部门相对较多。以下是对工程管理在本公司涉及到的主体业务流程现状:
1. 项目管理没有一个标准化的流程,导致各部门的职责不够明确。
2. 业务涉及的层面较多,关联部门较多,统计与分析存在困难
3. 数据采用纸质的文档不利用保存,不利于后期工作的开展。
4. 管理人员查看不够直观,操作不够便捷。
2. **需求分析**:
1. **业务主体分析**,在目前的派工管理中,业务主载体包括为
1. 华油公司相关职能部室,如信息管理部、基建工程管理部
2. 基层燃气公司(项目建设单位)相关职能部室,工程技术部
3. 项目其他参建单位,如项目施工单位、监理单位、检测单位。
2. **月度派工单生成**: 度派工单由基层天燃气公司在每月25日(指定日期或时间段)前根据需要随时填报项目信息制定项目计划,并拟定承包商,然后报本公司工程部审批通过后形成派工计划汇总表向集团申报。
3. **季度项目群(打包)派工单** : 季度或者指定时间段对费用不超过3万元(指定数额)的项目在拟定承包商时选择项目类型为打包,根据各承包商剩余额度确定相应的打包号,然后报本公司工程部审批通过后形成相应的打包汇总表。
4. **临时派工单** : 对于那些不能纳入正常申报与打包流程中的临时或紧急项目,进入临时派工流程。该流程与正常申报流程类似,但是不受正常流程中的各时间节点约束。
3. 类的设计
1. 用例图设计
- 类图设计
4. 界面设计
5. 数据建模(PowerDesigner)
6. 接口函数设计(上报项目查询,利用SSM框架)
-
实体类
public class Item_pre_plan { private String proj_name; private String const_unit; private String proj_type; private String proj_nature; private String pred_cost; private Date pre_start_time; private Date pred_finish_time; private String content_scorp; private String remark; }
-
接口层
public interface ItemPrePlanDao { public List<Item_pre_plan> findDetail(Long item_pre_plan_id); }
-
Controller层
public class ItemPrePlanController { @Autowired private ItemPrePlanDao itemPrePlan; @ApiOperation("项目申报_查询") @GetMapping("/project_appliction_query/{user_id}/{item_id}/{proj_name}") public List<project_appliction> findByid_y(@PathVariable("user_id") Long user_id,@PathVariable("item_id") Long item_id,@PathVariable("proj_name") String proj_name){ return projectApplicationDao.findByid_y(user_id,item_id,proj_name); } }
-
Mybatis
<mapper namespace="com.shuang.dao.dispatchManager.personage.ProjectApplicationDao"> <select id="findByid_y" resultType="com.shuang.domain.Personage.project_appliction"> select item_id,proj_name,constr_test_state,test_big_time_g,group_test_state,whether_order from item_table,group_user_table where user_id =#{user_id} and item_id = #{item_id} and proj_name = #{proj_name}; </select> </mapper>