@RequestMapping(value = "/print") //Controller層調用Service層 public void getdmspdf(HttpServletRequest request, HttpServletResponse response)throws Exception{ InputValue<OrderprintprecheckRequestDto> inputValue=this.getInputValue(request,new TypeReference<InputValue<OrderprintprecheckRequestDto>>(){}); PrintPrecheckFormBean printPrecheckFormBean = new PrintPrecheckFormBean(); printPrecheckFormBean.setCustompage("0"); printPrecheckFormBean.setPageindex("2"); //調用precheckService指定打印第二聯 ReturnValue<Picvalue> rtnvalue = new ReturnValue<>(); Picvalue picvalue =newPrecheckService.printpdfPreOrder(request,response,DataUtil.getCurrent().getStoreid(), DataUtil.getCurrent().getStaffid(),inputValue.getReqdata().getOrderid(),printPrecheckFormBean); rtnvalue.setObject(picvalue); this.returnvalue(request,response,rtnvalue); } //Service層調用打印pdf的方法
public Picvalue printpdfPreOrder(HttpServletRequest request, HttpServletResponse response, int storeid, int userid, int orderid, PrintPrecheckFormBean printPrecheckFormBean) throws Exception { //daying String pageindex = printPrecheckFormBean.getPageindex(); String custompage = printPrecheckFormBean.getCustompage(); CheckOrderInfoDto dto = this.getCheckOrderInfo(storeid, userid, orderid, true); Picvalue picvalue = pdfPreCheckService.printpreviewthesingle(request, response, dto, pageindex,custompage); return picvalue; } //獲取pdf的內容
public CheckOrderInfoDto getCheckOrderInfo(int storeid, int userid, int orderid, boolean isforpdf) { CheckOrderInfoDto checkOrderInfoDto = new CheckOrderInfoDto(); //表頭信息 WorkOrderfororder order = increaseItemDao.getWorkOrderWithCarType(orderid); checkOrderInfoDto.setDmsno(order.getWodmsno()); //工單號 checkOrderInfoDto.setPlateall(order.getPlateall()); //車牌號 checkOrderInfoDto.setVin(order.getCvincode()); //車架號 checkOrderInfoDto.setCheckpersonname(order.getServiceadvisorname()); //服務顧問 checkOrderInfoDto.setCheckday(""); if(!Util.isEmpty(order.getWoenyardtime())){ String woenyardtime=order.getWoenyardtime().substring(0,8); StringBuilder cdate=new StringBuilder(woenyardtime); cdate.insert(4,"-"); cdate.insert(7,"-"); checkOrderInfoDto.setCdate(cdate.toString()); //日期 } checkOrderInfoDto.setCurmiles(order.getWocurmiles());//當前里程數 HealthcheckitemRequestDto healthcheckitemRequestDto = new HealthcheckitemRequestDto(); healthcheckitemRequestDto.setOrderid(orderid); HealthcheckitemResponseDto dto = healthcheckService.gethealthcheckitemlist(healthcheckitemRequestDto); checkOrderInfoDto.setCheckday(dto.getCheckdate()); List<HealthcheckDto> healthchecklist = dto.getHealthchecklist(); List<CheckItemDtoForPdf> list1 = new ArrayList<>(); //系統檢查+外觀檢查 checkOrderInfoDto.setList1(list1); CheckItemDtoForPdf pdf1 = new CheckItemDtoForPdf(); pdf1.setHciid1(2); pdf1.setHciid2(12); list1.add(pdf1); CheckItemDtoForPdf pdf2 = new CheckItemDtoForPdf(); pdf2.setHciid1(3); pdf2.setHciid2(13); list1.add(pdf2); CheckItemDtoForPdf pdf3 = new CheckItemDtoForPdf(); pdf3.setHciid1(4); //雨刷器/清洗器/大燈清洗系統 pdf3.setHciid2(14);//液位(雨刮液、冷卻液、剎車液) list1.add(pdf3); CheckItemDtoForPdf pdf4 = new CheckItemDtoForPdf(); pdf4.setHciid1(5); //離合器/換擋桿/手剎 pdf4.setHciid2(15);//減震器/飾條/蓋罩密封情況/泄漏 list1.add(pdf4); CheckItemDtoForPdf pdf5 = new CheckItemDtoForPdf(); pdf5.setHciid1(6); //PCM功能及導航更新 pdf5.setHciid2(16);//備用輪胎 / 補胎 list1.add(pdf5); CheckItemDtoForPdf pdf6 = new CheckItemDtoForPdf(); pdf6.setHciid1(7); //組合儀表/娛樂信息系統/開關 pdf6.setHciid2(17);//改裝 list1.add(pdf6); CheckItemDtoForPdf pdf7 = new CheckItemDtoForPdf(); pdf7.setHciid1(8); //機油油位 pdf7.setHciid2(0); //無 list1.add(pdf7); CheckItemDtoForPdf pdf8 = new CheckItemDtoForPdf(); pdf8.setHciid1(9); //點菸器/電源插座 pdf8.setHciid2(0);//無 list1.add(pdf8); CheckItemDtoForPdf pdf9 = new CheckItemDtoForPdf(); pdf9.setHciid1(10); //安全帶/安全帶扣 pdf9.setHciid2(0);//無 list1.add(pdf9); CheckItemDtoForPdf pdf10 = new CheckItemDtoForPdf(); pdf10.setHciid1(11); //空調系統和設置 pdf10.setHciid2(0);//無 list1.add(pdf10); List<CheckItemDtoForPdf> list2 = new ArrayList<>(); checkOrderInfoDto.setList2(list2); CheckItemDtoForPdf pdf11 = new CheckItemDtoForPdf(); pdf11.setHciid1(18); //散熱器進氣道(目測) pdf11.setHciid2(24); //輪胎磨損情況、車橋定位 list2.add(pdf11); CheckItemDtoForPdf pdf12 = new CheckItemDtoForPdf(); pdf12.setHciid1(19); //輪胎(N 標記、旋轉) pdf12.setHciid2(25); //排氣系統 list2.add(pdf12); CheckItemDtoForPdf pdf13 = new CheckItemDtoForPdf(); pdf13.setHciid1(20); //鋼圈(基本狀況) pdf13.setHciid2(26); //車底防護裝置、護板、蓋板 list2.add(pdf13); CheckItemDtoForPdf pdf14 = new CheckItemDtoForPdf(); pdf14.setHciid1(21); //制動盤(磨損、鏽蝕、損壞) pdf14.setHciid2(27); //動力傳輸、萬向節/驅動軸 list2.add(pdf14); CheckItemDtoForPdf pdf15 = new CheckItemDtoForPdf(); pdf15.setHciid1(22); //制動片(厚度) pdf15.setHciid2(28); //泄漏(液體、氣體)和車底管路 list2.add(pdf15); CheckItemDtoForPdf pdf16 = new CheckItemDtoForPdf(); pdf16.setHciid1(23); //卡鉗、軟管(目測) pdf16.setHciid2(29); //懸掛和減震器(臂、接頭、防塵套、襯套) list2.add(pdf16); List<PreCheckFile> needfiles=new ArrayList<>(); //所需文件 checkOrderInfoDto.setNeedfiles(needfiles); List<PreCheckPayType> paytypes=new ArrayList<>(); //付款方式 checkOrderInfoDto.setPaytypes(paytypes); List<PreCheckOtherService> otherservices =new ArrayList<>(); //其他服務 checkOrderInfoDto.setOtherservices(otherservices); for (HealthcheckDto healthcheckDto : healthchecklist) { if (healthcheckDto.getHealthitemtype() == 3) { //油表值 checkOrderInfoDto.setWohasfuel(new Float(healthcheckDto.getHealthitemvalue1())); } //訂單概覽 checkOrderInfoDto.setOrderinfo(0); if (healthcheckDto.getHealthitemid() == 30) { if (healthcheckDto.getHealthitemvalue1() == 1) { checkOrderInfoDto.setOrderinfo(1); } } if (healthcheckDto.getHealthitemid() == 31) { if (healthcheckDto.getHealthitemvalue1() == 1) { checkOrderInfoDto.setOrderinfo(2); } } if (healthcheckDto.getHealthitemid() == 32) { if (healthcheckDto.getHealthitemvalue1() == 1) { checkOrderInfoDto.setOrderinfo(3); } } if (healthcheckDto.getHealthitemid() == 33) { if (healthcheckDto.getHealthitemvalue1() == 1) { checkOrderInfoDto.setOrderinfo(4); } } if(healthcheckDto.getHealthitemid()==34){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //行駛證 file.setHpcfcid(1); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==35){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //客戶授權書 file.setHpcfcid(2); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==36){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //保修和保養手冊 file.setHpcfcid(3); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==37){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //車輪防盜螺栓套筒 file.setHpcfcid(4); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==38){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //駕駛證 file.setHpcfcid(5); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==39){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //延保證書 file.setHpcfcid(6); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==40){ PreCheckFile file=new PreCheckFile(); if(healthcheckDto.getHealthitemvalue1() == 1){ //交通事故認定書 file.setHpcfcid(7); needfiles.add(file); } } if(healthcheckDto.getHealthitemid()==42){ //接收車輛時客戶是否在場 if(healthcheckDto.getHealthitemvalue1() == 1){ checkOrderInfoDto.setIsinfactory(1); }else if(healthcheckDto.getHealthitemvalue1() == 2){ checkOrderInfoDto.setIsinfactory(2); } else { checkOrderInfoDto.setIsinfactory(0); } } if(healthcheckDto.getHealthitemid()==44){ //是否在遇到噪音和駕駛動態問題時進行試駕 if(healthcheckDto.getHealthitemvalue1() == 1){ checkOrderInfoDto.setHastrycar(1); }else if(healthcheckDto.getHealthitemvalue1() == 2){ checkOrderInfoDto.setHastrycar(2); } else { checkOrderInfoDto.setHastrycar(0); } } if(healthcheckDto.getHealthitemid()==46){ //現金 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckPayType type=new PreCheckPayType(); type.setHpcpcid(1); paytypes.add(type); } } if(healthcheckDto.getHealthitemid()==47){ //借記/信用卡 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckPayType type=new PreCheckPayType(); type.setHpcpcid(2); paytypes.add(type); } } if(healthcheckDto.getHealthitemid()==48){ //其他 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckPayType type=new PreCheckPayType(); type.setHpcpcid(3); paytypes.add(type); } } if (healthcheckDto.getHealthitemid() == 49) { checkOrderInfoDto.setRemark(healthcheckDto.getHealthitemvalue2()); } for (CheckItemDtoForPdf checkItemDtoForPdf : list1) { if (checkItemDtoForPdf.getHciid1() == healthcheckDto.getHealthitemid()) { checkItemDtoForPdf.setItemname1(healthcheckDto.getHealthitemname()); checkItemDtoForPdf.setItemstate1(healthcheckDto.getHealthitemvalue1()); } if (checkItemDtoForPdf.getHciid2() == healthcheckDto.getHealthitemid()) { checkItemDtoForPdf.setItemname2(healthcheckDto.getHealthitemname()); checkItemDtoForPdf.setItemstate2(healthcheckDto.getHealthitemvalue1()); } } for (CheckItemDtoForPdf checkItemDtoForPdf : list2) { if (checkItemDtoForPdf.getHciid1() == healthcheckDto.getHealthitemid()) { checkItemDtoForPdf.setItemname1(healthcheckDto.getHealthitemname()); checkItemDtoForPdf.setItemstate1(healthcheckDto.getHealthitemvalue1()); } if (checkItemDtoForPdf.getHciid2() == healthcheckDto.getHealthitemid()) { checkItemDtoForPdf.setItemname2(healthcheckDto.getHealthitemname()); checkItemDtoForPdf.setItemstate2(healthcheckDto.getHealthitemvalue1()); } } if(healthcheckDto.getHealthitemid()==50){ //加滿油液 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckOtherService service=new PreCheckOtherService(); service.setHpcscid(1); otherservices.add(service); } } if(healthcheckDto.getHealthitemid()==51){ //保留舊件 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckOtherService service=new PreCheckOtherService(); service.setHpcscid(2); otherservices.add(service); } } if(healthcheckDto.getHealthitemid()==52){ //標準清洗 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckOtherService service=new PreCheckOtherService(); service.setHpcscid(3); otherservices.add(service); } } if(healthcheckDto.getHealthitemid()==53){ //高級內飾清洗 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckOtherService service=new PreCheckOtherService(); service.setHpcscid(4); otherservices.add(service); } } if(healthcheckDto.getHealthitemid()==54){ //高級車身清洗 if(healthcheckDto.getHealthitemvalue1()==1){ PreCheckOtherService service=new PreCheckOtherService(); service.setHpcscid(5); otherservices.add(service); } } } checkOrderInfoDto.setNeedfiles(needfiles); checkOrderInfoDto.setPaytypes(paytypes); checkOrderInfoDto.setOtherservices(otherservices); HealthcheckallcarpartsproblemRequestDto healthcheckallcarpartsproblemRequestDto = new HealthcheckallcarpartsproblemRequestDto(); healthcheckallcarpartsproblemRequestDto.setOrderid(orderid); HealthcheckallcarpartsproblemResponseDto healthcheckcarpartsproblemResponseDto = healthcheckService.getallcarpartsproblemlist(healthcheckallcarpartsproblemRequestDto); if (healthcheckcarpartsproblemResponseDto.getHasimage() > 0) { checkOrderInfoDto.setPhotoinfo(1); } else { checkOrderInfoDto.setPhotoinfo(2); } List<AllcarpartsproblemDto> allcarpartsproblemlist = healthcheckcarpartsproblemResponseDto.getAllcarpartsproblemlist(); for (AllcarpartsproblemDto allcarpartsproblemDto : allcarpartsproblemlist) { if (allcarpartsproblemDto.getCarpartsid() == CarPartsEnum.CarParts1.getCode()) { checkOrderInfoDto.setTaiwen1(allcarpartsproblemDto.getCarpartstyreinfo().getWotpatterndepth() + ""); checkOrderInfoDto.setYear1(allcarpartsproblemDto.getCarpartstyreinfo().getWotypeuseyear()); } if (allcarpartsproblemDto.getCarpartsid() == CarPartsEnum.CarParts2.getCode()) { checkOrderInfoDto.setTaiwen2(allcarpartsproblemDto.getCarpartstyreinfo().getWotpatterndepth() + ""); checkOrderInfoDto.setYear2(allcarpartsproblemDto.getCarpartstyreinfo().getWotypeuseyear()); } if (allcarpartsproblemDto.getCarpartsid() == CarPartsEnum.CarParts3.getCode()) { checkOrderInfoDto.setTaiwen3(allcarpartsproblemDto.getCarpartstyreinfo().getWotpatterndepth() + ""); checkOrderInfoDto.setYear3(allcarpartsproblemDto.getCarpartstyreinfo().getWotypeuseyear()); } if (allcarpartsproblemDto.getCarpartsid() == CarPartsEnum.CarParts4.getCode()) { checkOrderInfoDto.setTaiwen4(allcarpartsproblemDto.getCarpartstyreinfo().getWotpatterndepth() + ""); checkOrderInfoDto.setYear4(allcarpartsproblemDto.getCarpartstyreinfo().getWotypeuseyear()); } } List<HcAttachmentInfo> attachmentsforsign =attachmentService.getCusSign(orderid,10); //檢測人員簽字 List<HcAttachmentInfo> attachmentsforsigncust =attachmentService.getCusSign(orderid,4); //客戶簽字 checkOrderInfoDto.setAttachmentsforsign(attachmentsforsign); checkOrderInfoDto.setAttachmentsforsigncust(attachmentsforsigncust); return checkOrderInfoDto; }
總結如下:
1.獲取具體值的方式主要是調用Dao查詢數據庫得到。
2.單選框,多選框值的主要區別就是:單選框返回的值只有一個,多選框返回的值有多個,多
選框需要找到對應的選框顯示√就需要一個數據庫字段來鎖定它,比如在本項目中使用的是itemid來判斷,所有
pdf內容項都在一個表中以itemid爲主鍵被存儲。
3.多選框的顯示可以使用ArrayList來封裝,符合某個條件,就設置一個值給它,將它添加到List中,在pdf中通過
判斷該List中的具體值來顯示√
4.單選框一般用一個屬性來封裝,每次pdf顯示都直接找這個屬性就可以。
5.單選框的判斷分爲兩種,一種是多個選項中選一個的單選,另一種是是與否之間的單選。如果是後一種,可以
通過if...else...來賦值,前一種則不方便,因爲如果以if...else...來判斷,多選一的賦值是以最後一個符合條件的值爲準,如果最後一個賦值
是符合if判斷的賦值,那麼沒問題,除此之外所有的情況最後的值都是最後一個if...else...中的else判斷的賦值。那麼這就會導致這個單選
無法顯示內容√;