前言:
首先客戶信息,敏感信息根據(jù)公司要求已經(jīng)隱藏。筆者3年前玩過一個(gè)項(xiàng)目的Camstar,由于各種原因,到半年之前再未玩過Camstar。如今再次接觸到Camstar項(xiàng)目,加上這幾年MES系統(tǒng)開發(fā)的經(jīng)驗(yàn),對Camstar有了一個(gè)顛覆性的認(rèn)識,相比UA,Camstar真香!今天我們要說的是本人自己開發(fā)的基于Camstar桌面客戶端的開發(fā)經(jīng)歷。由于項(xiàng)目上本人的工作已經(jīng)做完,寫這篇文章一是記錄總結(jié)一下項(xiàng)目從開始到結(jié)束的開發(fā)歷程,總結(jié)一下自己。二是給有這方面需求的同事朋友一個(gè)幫助性的文檔,在技術(shù)選型,軟件設(shè)計(jì),操作方面希望對讀者有所幫助。廢話不多說,我們來正文。
我們來說說我們基于Camstar實(shí)現(xiàn)的客戶端功能:單點(diǎn)登錄,自動(dòng)更新(更新包打包成Zip),登錄,換膚,日志管理,【界面:生產(chǎn)準(zhǔn)備,生產(chǎn)進(jìn)度報(bào)表,實(shí)物BOM記錄報(bào)表】,綜合作業(yè)視圖(Operational View),任務(wù)接收(MoveIn),執(zhí)行工步(Eprocedure電子流程),零件裝備(物料裝配),零件拆卸(物料拆卸),工序報(bào)工(MoveStd),日常點(diǎn)檢(設(shè)備點(diǎn)檢),批次完工(Close),外廠上傳檢驗(yàn)記錄,入庫關(guān)聯(lián)質(zhì)量過程。由于客戶網(wǎng)絡(luò)限制,不允許客戶端直連數(shù)據(jù)庫,同時(shí)也為了項(xiàng)目架構(gòu)考慮,整個(gè)項(xiàng)目分為客戶端和接口前后端分離。同時(shí)我們還封裝了可以復(fù)用的公共組件,其他界面需要,便可一個(gè)拖動(dòng),即實(shí)現(xiàn)功能。(封裝的公共組件包括,導(dǎo)入組件,導(dǎo)出組件,下載模版,Container組件,Employee組件【支持單選,多選】,Resource組件,WorkFlowStep組件【提供給并行工序使用】),具體演示可以看文章最后面的視頻。從開始開發(fā)到目前已開發(fā)功能UAT完成共兩個(gè)半月。
一:登錄,單點(diǎn)登錄,自動(dòng)更新,日志提示信息管控
1: 登錄:通過獲取到的用戶名和密碼,調(diào)用Camstar的創(chuàng)建session方法(createsession)進(jìn)行登錄,通過Camstar校驗(yàn)登錄的用戶密碼。同時(shí)項(xiàng)目使用域控管理,我們還封裝了通過指定域名稱來登錄的方式。
2:單點(diǎn)登錄:客戶通過一種USB-KEY的方式來管理集團(tuán)單點(diǎn)登錄用戶信息,插上這種類似U盾的KEY即可登錄集團(tuán)中所有接入單點(diǎn)登錄的系統(tǒng)。當(dāng)使用KEY的用戶插上這種USB-KEY,在所有的HTTP,HTTPS請求中頭文件里會(huì)塞入用戶信息和session信息。我們在接口程序中封裝了一個(gè)一般處理程序提供給客戶端進(jìn)行調(diào)用,當(dāng)獲取到用戶信息的時(shí)候直接進(jìn)行登錄。
3:自動(dòng)更新:首先我們的自動(dòng)更新是強(qiáng)制自動(dòng)更新??紤]到用戶數(shù)據(jù)的一直性,接口的一致性,所以采用強(qiáng)制自動(dòng)更新是非常有必要的。整個(gè)實(shí)現(xiàn)的邏輯和大多數(shù)自動(dòng)更新一致。服務(wù)器端配置文件存入一個(gè)當(dāng)前最新版本,客戶端的配置文件為用戶當(dāng)前版本。每次運(yùn)行程序向服務(wù)器端發(fā)起是否版本變更,檢測到新版本的話,會(huì)自動(dòng)下載服務(wù)器端文件夾中最新版本的Zip包。通過封裝的Zip解壓庫自動(dòng)解壓并且殺死用戶打開的EXE進(jìn)程,重新打開新版本的EXE執(zhí)行程序。
4:日志,提示信息管控:我們在客戶端本地引入了Log4NET用來記錄日志,用以處理系統(tǒng)可能的報(bào)錯(cuò)信息。關(guān)于客戶端中的提示信息我們使用了兩種,一種是在右上角的提示信息,這種信息一般是成功的信息,比如導(dǎo)入成功,導(dǎo)出成功等,3秒之后自動(dòng)消失,無需用戶點(diǎn)擊確認(rèn),關(guān)閉等。還有一種信息提示錯(cuò)誤信息提示,包括catch到的異常,Camstar返回的執(zhí)行失敗等信息,會(huì)在中間彈出。這種信息需要用戶進(jìn)一步確認(rèn),同時(shí)我們提供給用戶兩個(gè)選擇,點(diǎn)擊確認(rèn),直接把錯(cuò)誤信息復(fù)制到剪切板,可以直接發(fā)送給信息中心技術(shù)人員,點(diǎn)擊取消,則不處理,繼續(xù)業(yè)務(wù)操作。
二:計(jì)劃管理
計(jì)劃管理模塊我們目前只是畫了一些界面,沒有做數(shù)據(jù)填充,業(yè)務(wù)操作等。所以這里不做說明,只是給大家截一些圖。整個(gè)界面的區(qū)域都是可拖動(dòng)的。比如某個(gè)樹節(jié)點(diǎn)名稱很長,可以把當(dāng)前組件拖寬,便可看到所有信息。
三:現(xiàn)場作業(yè)
我們在設(shè)計(jì)現(xiàn)場作業(yè)模塊的時(shí)候,保持著跟Camstar一個(gè)操作邏輯的原則,下面大家可以看到Container的篩選,帶出信息,不僅可以模糊搜索,可以選擇,還可以掃碼槍掃入,均可自動(dòng)帶出Container信息。而且保持和Camtar一致,根據(jù)Employee上的Operation信息進(jìn)行過濾。
1:綜合作業(yè)視圖(Operational View):
綜合作業(yè)視圖對應(yīng)Camstar的Operational View,上方為一個(gè)批次選擇,訂單,可以進(jìn)行查詢,下方分別為待接收,已接收,待檢驗(yàn)的任務(wù)列表。右側(cè)為跳轉(zhuǎn)功能菜單,三個(gè)質(zhì)量檢驗(yàn)相關(guān)動(dòng)作,一個(gè)篩選批次(用來篩選當(dāng)前登錄人相關(guān)的批次),刷新按鈕的作用是當(dāng)Camstar接受的一個(gè)Container的時(shí)候,無需關(guān)閉頁簽,直接刷新重新加載。整個(gè)綜合作業(yè)視圖最大的亮點(diǎn)在于使用前端開發(fā)中的雙向綁定的思想,即當(dāng)物料批次號,待接收,已接收的列表隨便選擇一個(gè)批次點(diǎn)擊右側(cè)的跳轉(zhuǎn)按鈕(任務(wù)接收,執(zhí)行工步,裝配,拆卸,報(bào)工)即可自動(dòng)帶入到界面中,這個(gè)是我們自己實(shí)現(xiàn)的,當(dāng)然和那種VUE的雙向綁定實(shí)現(xiàn)邏輯不能比,但是這個(gè)思路最少能讓用戶少點(diǎn)五次,最少。具體演示可以看文章最后面的視頻。另外三個(gè)質(zhì)量相關(guān)的按鈕動(dòng)作,因?yàn)槭潜容^關(guān)鍵的動(dòng)作,所以在動(dòng)作執(zhí)行之前我們加入了讓用戶進(jìn)一步確認(rèn)的提示。
2:任務(wù)接收(MoveIn)
對應(yīng)這Camstar的MoveIn動(dòng)作,功能沒有什么需要詳細(xì)說的。這里我們使用Resouce選擇的自己封裝的控件。并且開發(fā)了組件配套單打印的功能,支持打印預(yù)覽,打印設(shè)置,直接打印,導(dǎo)入等各種動(dòng)作。
3:執(zhí)行工步(Eprocedure電子流程)
執(zhí)行工步是整個(gè)客戶端最復(fù)雜的一部分,同時(shí)電子流程在Camstar中也是相當(dāng)復(fù)雜一個(gè)功能,我們?yōu)榱吮3趾虲amstar的原汁原味,可謂費(fèi)勁心思,同時(shí)客戶在這個(gè)界面也二開了很多功能。在執(zhí)行工步中我們實(shí)現(xiàn)了工序檢測信息在實(shí)測值,結(jié)果值中輸入不合法的數(shù)值直接單元格變紅的動(dòng)作,和Camstar一致。在不合格審理中,根據(jù)表格中的值,自動(dòng)生成備注信息,同時(shí)調(diào)用LPM接口直接進(jìn)行不合格審理的單據(jù)發(fā)起。查看質(zhì)量記錄,是調(diào)用外部HTML的Web界面,查看工藝指導(dǎo)是調(diào)用TeamCenter的工藝指導(dǎo)界面(HTML5支持)。由于WinForm自帶的WebBrowser瀏覽器內(nèi)核為IE內(nèi)核,無法打開TeamCenter界面,我們引用了Webkit內(nèi)核的瀏覽器,成功解決了這一問題。保存就是把工藝檢測信息的輸入值直接保存在臨時(shí)表中,以解決用戶無法一天就把當(dāng)前所有檢測信息提交(生產(chǎn)環(huán)境檢測信息多的有幾百條)。選擇檢驗(yàn)員就是用戶選擇公共組件,選擇之后,當(dāng)前Container會(huì)帶入綜合作業(yè)視圖待檢驗(yàn)網(wǎng)格。導(dǎo)出選擇卡即是導(dǎo)出用戶填寫的信息,同時(shí)導(dǎo)出的Excel模版下拉列表中數(shù)值可供用戶選擇,防止用戶記不住工號,填入非法的值等。同時(shí)提供導(dǎo)入功能。所以這里我們執(zhí)行工步的信息填寫方式又出現(xiàn)了一種,即是先把所有的檢測信息導(dǎo)出,在Excel填寫(Excel中可以批量輸入),再導(dǎo)入。由于幾百條記錄,還有的一體機(jī)沒有網(wǎng)絡(luò),所以我們提供了這種把數(shù)據(jù)錄入到Excel中,再拿到有網(wǎng)絡(luò)的地方進(jìn)行導(dǎo)入的方式。
4:工序報(bào)工,批次完工,日常點(diǎn)檢
基本上都是Camstar的標(biāo)準(zhǔn)功能,界面設(shè)計(jì)大家可以參考。這里說一下工序報(bào)工中的用戶選擇公共組件。首先這個(gè)用戶選擇是多選的,用戶可以進(jìn)行勾選,并且在報(bào)工的操作者選擇中,選擇的順序是需要記錄的,原因涉及到第一負(fù)責(zé)人,第二負(fù)責(zé)人,第三負(fù)責(zé)人等。所以我們在用戶選擇模塊中加入了sequence,用來記錄選擇的用戶順序,進(jìn)一步用來確認(rèn)負(fù)責(zé)人的順序。同時(shí)用戶選擇組件支持用戶名和姓名的模糊搜索。
5: 零件裝配,零件拆卸
零件裝配和零件拆卸界面和功能都很像,我們放在一起。裝配是BOM清單聯(lián)動(dòng)裝配明細(xì),拆卸是裝配記錄聯(lián)動(dòng)拆卸明細(xì)。裝配可以把掛了當(dāng)前物料按數(shù)量裝配到批次上,并且在Camstar中添加了4個(gè)裝配時(shí)的字段。點(diǎn)擊裝配可以把信息直接保存在網(wǎng)格中,存在客戶端。點(diǎn)擊重拆可以把裝配在客戶端的,還未提交的數(shù)據(jù)拆下,零件拆卸同理。零件拆卸多了一個(gè)未裝配的物料進(jìn)行拆卸的動(dòng)作,直接保存在Camstar自建表中。
6: 上傳檢驗(yàn)記錄
上傳檢驗(yàn)記錄提供文件選擇,模版下載,導(dǎo)入的進(jìn)度條,導(dǎo)入預(yù)覽,導(dǎo)入數(shù)據(jù),關(guān)閉等動(dòng)作。選擇的Excel的時(shí)候會(huì)檢驗(yàn)用戶是不是把這個(gè)Excel在PC上打開了,如果打開了,會(huì)提示需要關(guān)閉,關(guān)閉之后導(dǎo)入通過校驗(yàn)的數(shù)據(jù),在數(shù)據(jù)網(wǎng)格中可以預(yù)覽數(shù)據(jù),預(yù)覽沒問題點(diǎn)擊導(dǎo)入數(shù)據(jù),根據(jù)數(shù)據(jù)導(dǎo)入的進(jìn)度,進(jìn)度條變化。當(dāng)導(dǎo)入Excel后,數(shù)據(jù)校驗(yàn)不通過,也可以進(jìn)行數(shù)據(jù)預(yù)覽,但是導(dǎo)入按鈕無法進(jìn)行點(diǎn)擊。具體操作歡迎觀看下方的視頻【如果看不到視頻預(yù)覽,直接點(diǎn)擊下方空白處,即可觀看視頻,電腦觀看效果更佳】。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。