王賢平 杜春紅 顧正天 陳會(huì)娟
(上海西派埃智能化系統(tǒng)有限公司 上海 200233)
工業(yè)4.0[1]和工業(yè)互聯(lián)網(wǎng)是在新工業(yè)革命背景下分別產(chǎn)生于德國和美國的未來工業(yè)發(fā)展模式,“中國制造2025”也應(yīng)運(yùn)而生。工業(yè)互聯(lián)網(wǎng)整合了工業(yè)革命與網(wǎng)絡(luò)革命兩大優(yōu)勢(shì)[2],將工業(yè)革命成果及其帶來的機(jī)器、機(jī)組和物理網(wǎng)絡(luò)與近年發(fā)展迅速的互聯(lián)網(wǎng)革命及其成果——智能設(shè)備、智能網(wǎng)絡(luò)和智能決策融合到一起[3-4]。玻璃蓋板行業(yè),作為手機(jī)行業(yè)發(fā)展的技術(shù)支撐,其智能化與網(wǎng)絡(luò)化的生產(chǎn)管理實(shí)現(xiàn)顯得迫在眉睫。
目前,國內(nèi)的玻璃蓋板生產(chǎn)行業(yè),面臨著許多生產(chǎn)癥結(jié),比如無法準(zhǔn)確捕捉良率不達(dá)標(biāo)原因,生產(chǎn)計(jì)劃更改無法及時(shí)傳達(dá)到生產(chǎn)和物料采購和使用混亂延誤生產(chǎn)等。本文根據(jù)當(dāng)前玻璃蓋板生產(chǎn)行業(yè)的智能生產(chǎn)轉(zhuǎn)型,總結(jié)了玻璃蓋板的基本生產(chǎn)業(yè)務(wù)流程,在Spring、SpringMVC、Mybatis[8-9]框架的基礎(chǔ)上,集成了Activiti流程引擎[5-7],實(shí)現(xiàn)了PDM(Product Data Management)生產(chǎn)流程的動(dòng)態(tài)引入,實(shí)現(xiàn)了從計(jì)劃到生產(chǎn)的業(yè)務(wù)流程的編碼設(shè)計(jì)與開發(fā),同時(shí)完成前端Web頁面[10]的設(shè)計(jì)與開發(fā)。在廣東某玻璃蓋板生產(chǎn)企業(yè)的運(yùn)營測試發(fā)現(xiàn),本設(shè)計(jì)能正常、高效地支持并指導(dǎo)現(xiàn)場生產(chǎn),具有很高的實(shí)用性。
由于玻璃蓋板行業(yè)產(chǎn)品的多樣性,導(dǎo)致每種產(chǎn)品的生產(chǎn)流程幾乎都有所差別,但基本工序幾乎不變。針對(duì)這種特性,本文采用Activiti動(dòng)態(tài)編輯功能,針對(duì)不同產(chǎn)品,配置不同生產(chǎn)流程,從產(chǎn)品維度設(shè)計(jì)代碼與功能,指導(dǎo)整個(gè)生產(chǎn)運(yùn)營。
Activiti官方文檔提供了集成Spring的方法,本文不多做介紹。本文集成Activiti依賴Mybatis作為持久層,通過net.sourceforge.jtds.jdbc.Driver鏈接Sqlsever數(shù)據(jù)庫。主要配置了SpringProcessEngineConfiguration、ProcessEngineFactoryBean及7大service。配置代碼如下所示:
class="org.activiti.spring.SpringProcessEngineConfiguration"> //數(shù)據(jù)源配置信息…
class= "org.activiti.spring.ProcessEngineFactoryBean"> ref="processEngineConfiguration" />
factory-method="getRepositoryService" /> factory-method="getRuntimeService" /> factory-method="getTaskService" /> factory-method="getHistoryService" /> factory-method="getManagementService" /> factory-method="getIdentityService" /> factory-method="getFormService"/> 本文將玻璃蓋板生產(chǎn)工藝流程通過Activiti流程定義表達(dá),指導(dǎo)現(xiàn)場生產(chǎn)走向。系統(tǒng)通過遠(yuǎn)程數(shù)據(jù)庫連接方式與PDM系統(tǒng)進(jìn)行流程同步,在系統(tǒng)導(dǎo)入ERP任務(wù)單時(shí)完成流程導(dǎo)入。首先獲取流程名稱及流程節(jié)點(diǎn),匹配工序庫中預(yù)設(shè)工序,自動(dòng)生成整個(gè)產(chǎn)品的生產(chǎn)工藝模型TaskModel。主要方法代碼如下所示: List =processConfigService.selectListsByMastrCode(code); //處理PDM導(dǎo)入的數(shù)據(jù) List //自動(dòng)生成流程模型,返回模型id, String modelid=autoImport(data); Activiti生產(chǎn)的工藝模型圖如圖1所示。生成的工藝模型可審核后部署為流程定義ProcessDefinition。 圖1 Activiti生產(chǎn)工藝模型圖 本文將玻璃蓋板從計(jì)劃編制到審核,再到工單下發(fā)、報(bào)工和結(jié)轉(zhuǎn)結(jié)合為基本的業(yè)務(wù)流程,預(yù)先定義整個(gè)基本流程為: public final static String processDefKey="System_Produce"; //生產(chǎn)指導(dǎo)流程key, 流程設(shè)計(jì)圖如圖2所示。 圖2 業(yè)務(wù)主流程設(shè)計(jì)圖 在計(jì)劃創(chuàng)建時(shí),啟動(dòng)該流程,生成流程實(shí)例,自動(dòng)將任務(wù)分配給計(jì)劃編制人員。代碼采用業(yè)務(wù)信息與流程信息雙向綁定,在流程實(shí)例中添加了業(yè)務(wù)ID,在業(yè)務(wù)實(shí)例中也保存了實(shí)例ID,計(jì)劃人員完成任務(wù)量、人和機(jī)配置后提交審核,流程進(jìn)入審核節(jié)點(diǎn),流程流轉(zhuǎn)時(shí)使用了Spring注解回滾,使得業(yè)務(wù)和流程任意一方出現(xiàn)問題,整個(gè)操作都會(huì)進(jìn)行回滾。具體代碼如下: @Transactional @Override public int save(DailyPlan dailyPlan) { try{ dailyPlan.setWorkorderid(CommUtil.getUUID()); //生成日計(jì)劃同時(shí)生成對(duì)應(yīng)工單的id,這樣即可將計(jì)劃與 //工單中的設(shè)備、人員分配進(jìn)行同步 int res=0; Map ProcessInstance processInstance=workflowService.startWorkflow(dailyPlan.getId(), dailyPlan.getInsuser(), processDefKey,variables); if(processInstance!=null){ dailyPlan.setWforderid(processInstance.getId()); res=this.dailyPlanDao.insert(dailyPlan); } return res; }catch(Exception e){ throw new RuntimeException(); } } 登錄用戶可以根據(jù)登錄ID查看當(dāng)前待辦,先獲取當(dāng)前人的任務(wù)列表,然后將任務(wù)及實(shí)例存入ToDoTask實(shí)體中,在統(tǒng)計(jì)當(dāng)前待辦時(shí),可集中查看任務(wù)和流程實(shí)例信息。代碼如下所示: TaskQuery taskQuery=taskService.createTaskQuery().taskCandidateOrAssigned(userId); List TodoTask todoTask=new TodoTask(); todoTask.setProcessInstance(processInstance); ProcessDefinition processDefinition=getProcessDefinition(processInstance.getProcessDefinitionId()); todoTask.setProcessDefinition(processDefinition); 整個(gè)生產(chǎn)流程所有工單完成結(jié)轉(zhuǎn)后,生產(chǎn)流程結(jié)束。得到多個(gè)產(chǎn)品訂單生產(chǎn)進(jìn)度統(tǒng)計(jì)及某日計(jì)劃的統(tǒng)計(jì)結(jié)果,如圖3和圖4所示(檢驗(yàn)工序著重顯示)。 圖3 多個(gè)產(chǎn)品訂單生產(chǎn)進(jìn)度統(tǒng)計(jì) 圖4 某產(chǎn)品訂單某日工序的計(jì)劃與實(shí)際產(chǎn)量 該系統(tǒng)以產(chǎn)品為主線,從ERP、PDM等系統(tǒng)獲取生產(chǎn)任務(wù),按業(yè)務(wù)流程指導(dǎo)用戶完成任務(wù)單切割、日計(jì)劃編制、工單生產(chǎn)及生產(chǎn)反饋,使業(yè)務(wù)人員能及時(shí)了解生產(chǎn)訂單的生產(chǎn)詳情,準(zhǔn)確指導(dǎo)生產(chǎn)人員生產(chǎn)。并且可以從工序、產(chǎn)品訂單等多個(gè)維度統(tǒng)計(jì)分析生產(chǎn)情況,從而及時(shí)準(zhǔn)確調(diào)整生產(chǎn)情況,極大地節(jié)約了人力,有效地提高了生產(chǎn)效率與生產(chǎn)良率,對(duì)玻璃蓋板的精益生產(chǎn)起到很好的推動(dòng)作用。 本文根據(jù)玻璃蓋板智能化轉(zhuǎn)型的業(yè)務(wù)需求,在SSM框架的基礎(chǔ)上,集成了Activiti工作流,實(shí)現(xiàn)了PDM生產(chǎn)流程的動(dòng)態(tài)引入,實(shí)現(xiàn)了從計(jì)劃到生產(chǎn)的業(yè)務(wù)流程的編碼設(shè)計(jì)與開發(fā)。最后得到了計(jì)劃生產(chǎn)流程下的生產(chǎn)統(tǒng)計(jì),實(shí)現(xiàn)了生產(chǎn)和控制的網(wǎng)絡(luò)化,克服了傳統(tǒng)生產(chǎn)的實(shí)時(shí)響應(yīng)差的缺點(diǎn)。動(dòng)態(tài)生產(chǎn)工藝流程及計(jì)劃生產(chǎn)流程方便了用戶在生產(chǎn)中及時(shí)調(diào)整產(chǎn)品工藝,執(zhí)行生產(chǎn)過程等操作?,F(xiàn)場的運(yùn)營測試也證明了本文設(shè)計(jì)具有很高的實(shí)用性。1.2 生產(chǎn)流程動(dòng)態(tài)引入
1.3 業(yè)務(wù)流程
2 實(shí)施效果
3 結(jié) 語