day杰信商貿(mào)1課前04貨運(yùn)模塊_第1頁
day杰信商貿(mào)1課前04貨運(yùn)模塊_第2頁
day杰信商貿(mào)1課前04貨運(yùn)模塊_第3頁
day杰信商貿(mào)1課前04貨運(yùn)模塊_第4頁
day杰信商貿(mào)1課前04貨運(yùn)模塊_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

北京傳智播客教育項(xiàng)目實(shí)訓(xùn)1920-9520-78北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~流程1:購銷合同購銷合同客戶簽單后,杰信公司向廠家下達(dá)購銷合同,包括貨物的具體要求和交期。合同按不同廠家打印購銷合同單。貨物、附件各自打印,由公司駐當(dāng)?shù)劁N售人員分發(fā)到各工廠。項(xiàng)目的核心,難點(diǎn)北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同知識(shí)點(diǎn):用戶需求分析結(jié)果考核點(diǎn)1實(shí)現(xiàn)合同的維護(hù)增刪改復(fù)雜表CRUD2合同貨物信息維護(hù),一個(gè)合同下包含多個(gè)貨物信息;一個(gè)貨物下包含多個(gè)附件信息;合同和貨物為主從結(jié)構(gòu),貨物和附件為主從結(jié)構(gòu);對(duì)合同添加其貨物,對(duì)貨物添加其附件主從從信息3合同在未上報(bào)時(shí),只能銷售部門看到,只有當(dāng)上報(bào)以后,報(bào)運(yùn)業(yè)務(wù)的專責(zé)才可以看到。上報(bào)后未進(jìn)行報(bào)運(yùn)前,可以取消,進(jìn)行修改后,再上報(bào)。流程:上報(bào)、取消;流程控制4列表頁面顯示貨物數(shù)、附件數(shù)、總金額貨物、附件的生產(chǎn)廠家SQL統(tǒng)計(jì)SQL統(tǒng)計(jì)5合同、貨物、級(jí)聯(lián)刪除myBatis級(jí)聯(lián)刪除,層層調(diào)用SQL6查看查查看SQL及頁面項(xiàng)目實(shí)訓(xùn)~購銷合同設(shè)計(jì)規(guī)范:表名加業(yè)務(wù)后綴,_C業(yè)務(wù)表_B基礎(chǔ)表_P權(quán)限表,表名全大寫,多個(gè)單詞用下劃線隔開主鍵名稱為表名去掉業(yè)務(wù)后綴,加_ID;主表主鍵映射為id,方便頁面統(tǒng)一處理;從表采用自身主鍵名稱,因?yàn)閙ybatis的結(jié)果集字段名稱不能相同。映射文件中,如果數(shù)據(jù)庫字段使用了關(guān)鍵字,例如request,如何映射?C+NAME初始化,字段設(shè)置默認(rèn)值。冗余列金額怎么計(jì)算?什么時(shí)候計(jì)算?金額=數(shù)量*單價(jià)數(shù)據(jù)為多行文本時(shí),頁面怎樣展現(xiàn)換行?<pre></pre>北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):從表貨物在CRUD時(shí)和主表合同CRUD時(shí)有什么不同?從從表附件在CRUD時(shí)和主表合同CRUD時(shí)有什么不同?和從表CURD時(shí)有何不同?隱藏域name和value對(duì)應(yīng)whichmodel的規(guī)則?動(dòng)態(tài)下拉列表(生產(chǎn)廠家)和靜態(tài)下列列表(包裝單位)查看合同,同時(shí)可以看到合同下的貨物信息,貨物下的附件信息,兩層嵌套如何在列表頁面顯示每個(gè)合同的貨物數(shù),附件數(shù)?購銷合同復(fù)雜報(bào)表打印,打印技巧:數(shù)據(jù)分離,LOGO圖片,畫線等等文件下載,直接輸出response。北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):下拉框數(shù)據(jù)回顯?<tdclass="columnTitle_mustbe">生產(chǎn)廠家:</td><tdclass="tableContentAuto"><selectname="factoryId"> <optionvalue="">--請選擇--</option> <c:forEachitems="${factoryList}"var="f"> <optionvalue="${f.id}" <c:iftest="${obj.factoryId==f.id}">selected</c:if> >${f.factoryName}</option> </c:forEach></select></td>北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):如何映射布爾型的屬性?在xxx.hbm.xml中映射布爾類型<propertyname="accessories"type="boolean"column="ACCESSORIES"/>注意:1、數(shù)據(jù)庫沒有布爾型,都會(huì)映射為整數(shù)類型,不要被sqlYog等編輯工具所欺騙;例如:mysql中會(huì)轉(zhuǎn)換為tinyint,其他數(shù)據(jù)類同2、PDM數(shù)據(jù)庫建模時(shí)字段類型用bit//contract_product_cSQLSERVER2000為tinyint,MYSQL5.0為二進(jìn)制字段3、PO對(duì)象中布爾型變量還有g(shù)et和set方法嗎?

如果是Boolean,則是get,setprivatebooleanaccessories;publicbooleanisAccessories(){ returnaccessories;}publicvoidsetAccessories(booleanaccessories){ this.accessories=accessories;}北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):如何實(shí)現(xiàn)默認(rèn)值設(shè)置?程序中設(shè)置記錄的默認(rèn)值?@RequestMapping("/cargo/contract/insert.action")publicStringinsert(Contractcontract){ contract.setState(0); //新增狀態(tài)默認(rèn)為0-草稿

contractService.insert(contract); return"redirect:/cargo/contract/list.action";}寫SQL時(shí)默認(rèn)主鍵調(diào)用數(shù)據(jù)的UUID,缺點(diǎn),其他數(shù)據(jù)庫不通用<insertid="insert"parameterType="cn.itcast.jk.domain.Contract"> insertintocontract_c (CONTRACT_ID,OFFEROR,CONTRACT_NO,STATE) values (uuid(),#{offeror},#{contractNo},#{state})</insert>北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):列表頁面中的字段怎么來的?業(yè)務(wù)中表的字段很多,列表中無法全部顯示,就需要取舍,放哪些字段,哪些不放,怎么確定呢?通常是用戶提供,通過和用戶的交流確定。也可根據(jù)經(jīng)驗(yàn)來先行編寫,之后再跟用戶確定。通常的原則是:1、重要的字段,客戶最想看到的內(nèi)容放頁面上2、如果是大段文字的字段,不放在列表頁面上。如果客戶需要,則進(jìn)行截?cái)囡@示。例如:要顯示:產(chǎn)品與封樣無明顯差異,嘜頭、標(biāo)簽及包裝質(zhì)量務(wù)必符合公司要求。只顯示:“產(chǎn)品與封樣無明顯差異…”,鼠標(biāo)移動(dòng)到文字上時(shí),顯示全部內(nèi)容北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):從表:貨物新增時(shí),如何知道是為哪個(gè)合同添加貨物?怎樣傳遞參數(shù)?方法有三種方法:1、通過po對(duì)象,利用springmvc的封裝參數(shù),作為Controller方法的參數(shù)2、在action中聲明屬性(推薦)3、直接從request中獲?。ㄔ迹┖贤琷ContractList.jsp列表頁面在每條合同信息后增加下面的按鈕:<ahref="${ctx}/cargo/contractproduct/tocreate.action?contractId=${o.id}">[貨物]</a>Controller中接參:@RequestMapping("/cargo/contractproduct/tocreate.action")publicStringtocreate(ContractProductcontractProduct,Modelmodel){//傳遞主表的ID,同時(shí)作為查詢條件

model.addAttribute(“contractId”,contractProduct.getContractId());傳遞給頁面隱藏域,否則保存時(shí)取不到這個(gè)值}北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):金額無需用戶錄入,自動(dòng)計(jì)算?contractProduct.setId(UUID.randomUUID().toString()); //程序產(chǎn)生UUIDif(contractProduct.getCnumber()!=null&&contractProduct.getPrice()!=null){ Aritharith=newArith(); //java精度工具類

contractProduct.setAmount(arith.mul(contractProduct.getCnumber(),contractProduct.getPrice())); }北京傳智播客教育信息并不都從頁面中來注意java運(yùn)算的精度問題項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):如何統(tǒng)計(jì)合同下貨物和附件數(shù)據(jù)量?SELECT( SELECTCOUNT(*)FROMcontract_product_cWHEREcontract_id=c.contract_id)cpnum,( SELECTCOUNT(*)FROMext_cproduct_cWHEREcontract_product_idIN ( SELECTcontract_product_idFROMcontract_product_c WHEREcontract_id=c.contract_id ))epnum,c.*FROMcontract_cc北京傳智播客教育利用SQL語句實(shí)現(xiàn)貨物數(shù)、附件數(shù)注意,大數(shù)據(jù)量時(shí)不推薦,性能將直接下降。SQL基礎(chǔ)1)單值結(jié)果集可以作為一個(gè)字段,2)可以動(dòng)態(tài)獲取當(dāng)前行中某列的當(dāng)前值。項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):合同的查看,對(duì)象關(guān)聯(lián),VO?<resultMapid="contractViewRM"type="cn.itcast.jk.vo.Contract"> <idproperty="id"column="CONTRACT_ID"/> <resultproperty="contractNo"column="CONTRACT_NO"/> <!--貨物信息--> <collectionproperty="contractProducts"ofType="cn.itcast.jk.vo.ContractProduct"> <idproperty="contractProductId"column="CONTRACT_PRODUCT_ID"/> <resultproperty="productNo"column="PRODUCT_NO"/> <!--貨物廠家--> <associationproperty="factory"javaType="cn.itcast.jk.domain.Factory"> <resultproperty="factoryName"column="FACTORY_NAME"/> </association> <!--附件信息--> <collectionproperty="extCproducts"ofType="cn.itcast.jk.vo.ExtCproduct"> <idproperty="extCproductId"column="EXT_CPRODUCT_ID"/> <resultproperty="productNo"column="EXT_PRODUCT_NO"/> <!--貨物廠家--> <associationproperty="factory"javaType="cn.itcast.jk.domain.Factory"> <resultproperty="factoryName"column="EXT_FACTORY_NAME"/> </association> </collection> </collection></resultMap>北京傳智播客教育<tdclass=“tableHeader”>貨物數(shù)/附件數(shù)</td>項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):級(jí)聯(lián)刪除publicvoiddelete(Serializableid){ extCproductDao.deleteByContractId(id); //刪除當(dāng)前合同下的貨物下的附件

contractProductDao.deleteByContractId(id); //刪除當(dāng)前合同下的貨物

contractDao.delete(id); //刪除合同}publicvoiddelete(Serializable[]ids){ for(Serializableid:ids){ extCproductDao.deleteByContractId(id); } for(Serializableid:ids){ contractProductDao.deleteByContractId(id); } contractDao.delete(ids);}注:在hibernate中,級(jí)聯(lián)很簡潔;映射文件中配置,只需配置其和父對(duì)象、子對(duì)象之間的關(guān)系。其他不用關(guān)心。而這里需要所有的。北京傳智播客教育項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):POI打印步驟操作步驟:打開一個(gè)excel文件打開當(dāng)前工作簿創(chuàng)建行對(duì)象指定列,創(chuàng)建單元格對(duì)象寫入內(nèi)容設(shè)置樣式:字體、大小、顏色、位置、表格線、換行、格式(字符、數(shù)字)關(guān)閉保存excel文件特殊操作:合并單元格、公式、合計(jì)、訪問其它工作簿中的內(nèi)容【財(cái)務(wù)】單元格自定義:加上$前導(dǎo)符,KG后綴符插入圖片、插入線、分頁【購銷合同】頁眉頁腳、標(biāo)題頭【出貨表】原理:Poiexcel打印就是操作單元格,設(shè)樣式POI缺點(diǎn):不能批量設(shè)置樣式,只要一點(diǎn)不同,例如其它字體、大小、對(duì)齊、表格線,就一個(gè)斜體,一個(gè)正常,就必須重新創(chuàng)建一個(gè)新樣式。導(dǎo)致代碼量超大,都是無用功。示例:test/java/TestExcelPoiPrint.java項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):打印程序設(shè)計(jì)技巧技巧好處實(shí)例模板將靜態(tài)內(nèi)容利用模板,方便修改,易于維護(hù)。同時(shí)減少大量代碼。全部報(bào)表動(dòng)態(tài)定位不是寫死行列,而是變?yōu)閯?dòng)態(tài)相對(duì)位置,這樣需求變更增加,如增加了一行,增加了一列,不會(huì)影響后面的位置全部報(bào)表高效組織數(shù)據(jù)如何減少數(shù)據(jù)多次從數(shù)據(jù)庫、關(guān)聯(lián)對(duì)象中取值【合同】中先構(gòu)造所有數(shù)據(jù),每頁存在一個(gè)MAP中,所有頁存在一個(gè)LIST集合中,打印時(shí),只需讀取每個(gè)MAP,就不需在和數(shù)據(jù)庫、對(duì)象打交道。業(yè)務(wù)邏輯也變得簡單,打印時(shí),只關(guān)心打印的位置和樣式,不需再關(guān)心數(shù)據(jù)。減少內(nèi)容的交叉和復(fù)雜度,有利開發(fā)人員理解和操作。項(xiàng)目實(shí)訓(xùn)~購銷合同技術(shù)要點(diǎn):報(bào)表的組成區(qū)域項(xiàng)目實(shí)訓(xùn)~購銷合同打印–模板打印要求:程序可以完成一切,但靜態(tài)內(nèi)容,行高,列高等如果全由程序控制,代碼量大。用戶要修改其中一項(xiàng),還需修改代碼。維護(hù)性不好。解決思路:模板,事先調(diào)整好行高、列寬靜動(dòng)分離,靜態(tài)的內(nèi)容,表頭、標(biāo)題等可先在模板中設(shè)置為何要使用模板項(xiàng)目實(shí)訓(xùn)~購銷合同打印–數(shù)據(jù)和打印代碼分離要求:poi的機(jī)制是一個(gè)一個(gè)單元格進(jìn)行寫入并設(shè)置樣式,導(dǎo)致代碼量超多,但邏輯簡單。業(yè)務(wù)代碼和數(shù)據(jù)代碼混雜解決思路:將內(nèi)容緩存在map中,poi寫單元格信息,就直接從map中讀取//OfferornRow=sheet.createRow((short)curRow-1);nRow.setHeightInPoints(20);nCell=nRow.createCell((short)(1));nCell.setCellValue(printMap.get("Offeror"));nCell.setCellStyle(pioUtil.titlev12(wb,blackFont));項(xiàng)目實(shí)訓(xùn)~購銷合同打印–用戶配置要求:一個(gè)頁面打印1款貨2款貨物由用戶指定解決思路:設(shè)定變量,并且存儲(chǔ)表中,否則用戶下次需同樣方式打印時(shí),不知道上次是何設(shè)定項(xiàng)目實(shí)訓(xùn)~購銷合同打印–公式要求:指定單元格類型設(shè)置公式,利用程序拼接動(dòng)態(tài)內(nèi)容,對(duì)程序來說就是拼字符串nCell.setCellType(HSSFCell.CELL_TYPE_FORMULA);兩列值相乘:nCell.setCellFormula("F"+String.valueOf(curRow)+"*H"+String.valueOf(curRow)+")");兩列合計(jì):nCell.setCellFormula("SUM(I"+String.valueOf(curRow-4)+":I"+String.valueOf(curRow-1)+")");項(xiàng)目實(shí)訓(xùn)~購銷合同打印–

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論