名词介绍:
快反会议:是一个接近生产现场、站立的30分钟左右的例会,是一个基于数据和目视化看板的沟通会议。
8D:是一个处理及解决问题的方法,的是在识别出一再出现的问题,并且要矫正并消除此问题,有助于产品及制程的提升。依照PDCA的循环。
PDCA:Plan(计划)、Do(执行)、Check(检查) 和 Act(处理)。
PFMEA:过程潜在失效模式及影响分析(Process Failure Mode and Effects Analysis)
快反面板:在快反会议中展示上板的8D问题。
质量Q图:由小三角形组成的大三角,每个小三角代表一天,颜色代表当天状态。
需求分析/企业痛点:
1、现场调研与总结经验显示,产品出现重大质量问题之前,往往在上游环节就出现质量恶化的早期征兆和表现,上下游部门之间信息不流通,导致了问题不能及时分析和解决。
2、会议的召开前需要专门的人员维护,调查问题的处理阶段,整合问题信息,统计参会人员签到情况,追踪后期问题解决情况,花费大量精力。
3、这些质量问题在本部门往往被忽视,没有得到及时的遏制和干预。
4、表示问题解决的方式无法量化,往往转化为负责该问题工人的经验,不能实现问题的横向展开与经验总结。
5、针对不同车间、不同区域的问题,无法量化归档、形成统一的知识库与解决遏制措施。
6、员工培训、考核,检查工作要求,业绩考评,经验标准化等无法形成统一的标准进行管控和实施。
针对措施:
1、采用8D处理流程,能够展现问题的发生地点、发生事件、当前处理状态等,下游人员可以第一时间查看问题,提前应对可能发生的问题。
2、通过“质量快反系统”将问题与会议串联起来,实现数据之间的沟通,节省追踪与整理的时间;会议根据签到情况自动生成签到记录,节省人力。
3、当出现问题并新建后,会在各个部门指定解决小组、责任人、监督人,只有审批通过才能关闭该问题,防止该问题在发生区域被忽视,并根据流程提供断点。
4、质量快反系统具有统计分析和高级查询功能,可以根据不同的逻辑查询问题,并找到该问题当时的遏制措施与经验总结,形成可靠的知识库。
5、质量快反系统实现了针对不同区域、时间、零件、产品的定位与追溯,并按照流程获得对应遏制措施与解决方法。
6、根据经验总结,将效果验证所需要的文件归为以下类别:过程流程图、PFMEA、控制计划、作业指导书、检查指导书、防错验证、分层审核、培训、过程能力。
业务场景:
以生产计划部门为中心,进行跨部门的信息沟通与协调解决。
每个工作日一次,进行签到,统计记录。
实现目标:
1、能够根据“8D流程”新建一个问题,并进行每一步的操作
2、创建后的8D问题,能在一个单独的大屏面板上展示,并提供额外的参数
3、会议有签到功能,签到时间、人员单独维护,生成签到统计表
4、统计分析报告,针对问题的类型、问题是否关闭等信息生成表格
5、生成一个以三角形构造的“质量Q图”,表示某年某月的问题出现情况
数据库实现:
根据业务逻辑,将8D拆分成一张主表qrc_8d_question,与8张子表,通过qrcid进行关联;主表中存放问题类型、是否关闭、是否上板等主要信息;再根据实际需求 ,解决小组qrc_solution_team、遏制措施qrc_contain_measure、根本原因qrc_root_cause要实现一对多的关系,需在下级再设子表。
代码实现:
实体类:dao
在项目应用中,VO对应于页面上需要显示的数据(表单)
DO对应于数据库中存储的数据(数据表)
DTO对应于除二者之外需要进行传递的数据。
@Data (实现get、set等)
@TableName("qrc_8d_question") (对应表名)
private static final long serialVersionUID = -1;
//自增 => @TableId(type = IdType.AUTO)
@TableId(type = IdType.ASSIGN_ID)//主键表示
@ApiModelProperty(value="字段说明 ",name="重写属性名字 ")//字段解释
@DateTimeFormat(pattern = "yyyy-MM-dd") //格式化时间参数
@JsonFormat(pattern = "yyyy-MM-dd")
@TableField(exist = false) //非数据表中字段
@TableField(updateStrategy = FieldStrategy.IGNORED) //mybatis对空字段不会进行更新,加入该注解会更新null
控制类controller
后端接口定义
负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程。
@AllArgsConstructor //该构造函数含有所有已声明字段属性参数,即服务类实体化
@RestController //@Controller + @ResponseBody
@RequestMapping("/一级地址") //该控制类的接口路径
@Api(tags = "名称") //控制类api名称
@GetMapping("/二级地址") //查询
@PostMapping("/add") //新增
@PutMapping("/update") //修改
@ApiOperation(value = "名称") //该接口api名称
服务层service
主要负责业务模块的应用逻辑应用设计
先设计接口,再编写实现类
@Service("名称")
@Override
@Transactional(rollbackFor = Exception.class) //异常回滚
@AllArgsConstructor //添加一个构造函数,该构造函数含有所有已声明字段属性参数
逻辑代码
Service.getOne(new LambdaQueryWrapper<实体类>().eq(实体类::字段,值));
Optional.ofNullable().orElseThrow(()->new ParseException("异常",500));
// 获取当前用户人信息
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//时间
LocalDate date = LocalDate.now();
Calendar now = Calendar.getInstance();
now.get(Calendar.YEAR)
now.get(Calendar.MONTH) + 1
now.get(Calendar.DAY_OF_MONTH)