From 01e85e31bef040a5bbca4966872467736c25a53b Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 01 四月 2024 16:44:12 +0800 Subject: [PATCH] zjh 2024/04/01-1 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java | 184 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 166 insertions(+), 18 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java index f18f962..bb3e3be 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java @@ -77,6 +77,8 @@ private ITjReportTemplateService reportTemplateService; @Value("${path.filePath}") private String value; + @Value("${path.reportServer}") + private String urlValue; @Resource private ISysUserService userService; @Resource @@ -98,10 +100,10 @@ @ApiOperation(value = "浠庢湰鍦板瓨鍌ㄦā鏉垮埌鏁版嵁搴�") public AjaxResult savePdf() { //浠庢枃浠跺湴鍧�璇诲叆PDF鏂囦欢 浠呭瓨鍌ㄤ竴娆� - String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\浣撴妯℃澘4.pdf"); + String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\浣撴妯℃澘5.pdf"); TjReportTemplate tem = new TjReportTemplate(); - tem.setName("浣撴鎶ュ憡妯℃澘4"); - tem.setRemark("浣撴鎶ュ憡妯℃澘4"); + tem.setName("浣撴鎶ュ憡妯℃澘5"); + tem.setRemark("浣撴鎶ュ憡妯℃澘5"); tem.setTemplate(base64String); tem.setFlag("1"); tem.setOpen("0"); @@ -297,11 +299,10 @@ tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2); } - String template = reportTemplate.getTemplate(); - String userId = SecurityUtils.getLoginUser().getUsername(); - PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf"); - // --------浠ヤ笂------- 鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢 杞琾df 鍒涘缓鏂囦欢澶� 灏唒df鏀捐繘鏈湴鏂囦欢澶� + + + //鍒ゆ柇琛ㄤ腑鏈夋病鏈夎浣撴鎶ュ憡 涓嶈兘閲嶅鐢熸垚 LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>(); @@ -315,6 +316,35 @@ Integer checkStatus = tjOrder.getCheckStatus(); if (checkStatus == 1) { + //鍒ゆ柇鎶ュ憡鐢熸垚 淇濆瓨绫诲瀷 2024/2/29 + if ("鎶ヨ〃".equals(reportTemplate.getPrint())){ + TjReport tjReport = new TjReport(); + tjReport.setTjNumber(String.valueOf(tjNumber)); + tjReport.setPath(reportTemplate.getUrl()+"?tjNum="+tjNumber); + tjReport.setType("浣撴鎶ュ憡"); + tjReport.setPrint("鎶ヨ〃"); + tjReportService.save(tjReport); + //淇敼order琛ㄤ腑鐨勬墦鍗版姤鍛婃椂闂翠负褰撳墠鏃堕棿 + LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(TjOrder::getTjNumber, tjNumber); + updateWrapper.set(TjOrder::getReportTime, new Date()); + updateWrapper.set(TjOrder::getPrintLastTime, new Date()); + updateWrapper.set(TjOrder::getDownloadLastTime, new Date()); + updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); + tjOrderService.update(updateWrapper); + return AjaxResult.success("宸茬敓鎴愭姤鍛婏紒鍙洿鎺ョ偣鍑婚瑙堬紒"); + } + + + + String template = reportTemplate.getTemplate(); + String userId = SecurityUtils.getLoginUser().getUsername(); + if (template!=null){ + PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf"); + } + // --------浠ヤ笂------- 鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢 杞琾df 鍒涘缓鏂囦欢澶� 灏唒df鏀捐繘鏈湴鏂囦欢澶� + + LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjCustomer::getCusId, tjOrder.getUserId()); TjCustomer tjCustomer = tjCustomerService.getOne(wq1); @@ -469,17 +499,20 @@ Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkObjectMap = addTable(tjNumber); + Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkListMap = addHuaYanTable(tjNumber); + tjOrderRemarkObjectMap.putAll(tjOrderRemarkListMap); for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : tjOrderRemarkObjectMap.entrySet()) { List<TjPdfVO> value = entry.getValue(); LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>(); wqqq.eq(TjProject::getProId, entry.getKey().getProId()); TjProject one11 = projectService.getOne(wqqq); //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛� - if ("N".equals(one11.getNeedReport())){ + if (null !=one11 && "N".equals(one11.getNeedReport())){ continue; } - if ("1".equals(one11.getResultType())) { - String titleName = one11.getProName(); + String titleName =null; + if (null !=one11 && "1".equals(one11.getResultType())) { + titleName =one11.getProName(); // 璁剧疆鏍囬瀛椾綋鏍峰紡 Font titleFonts = PdfUtils.setFont(9); Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName); @@ -543,7 +576,12 @@ LineSeparator objectName = new LineSeparator(); document.add(objectName); } else { - String titleName = one11.getProName(); + if(null !=one11){ + titleName = one11.getProName(); + }else { + titleName = entry.getKey().getProName(); + } + // 璁剧疆鏍囬瀛椾綋鏍峰紡 Font titleFonts = PdfUtils.setFont(9); Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName); @@ -666,10 +704,11 @@ TjReport tjReport = new TjReport(); tjReport.setTjNumber(String.valueOf(tjNumber)); - tjReport.setPath(outputPath1 + outputFileName1); + tjReport.setPath(urlValue + outputFileName1); String pdfBinary = getPDFBinary(outputPath1 + outputFileName1); tjReport.setReport(pdfBinary); tjReport.setType("浣撴鎶ュ憡"); + tjReport.setPrint("pdf"); tjReportService.save(tjReport); //FileUtil.del(value + "\\" + tjNumber + "浣撴鎶ュ憡.pdf"); @@ -700,21 +739,25 @@ } return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�"); } - + //闈炲寲楠岄」鐩姤鍛� public Map<TjOrderRemark, List<TjPdfVO>> addTable(String tjNumber) { //鍒涘缓map 閿负鐖堕」鐩� 鍊间负瀛愰」鐩泦鍚� - Map<TjOrderRemark, List<TjPdfVO>> printReport = new HashMap<>(); + Map<TjOrderRemark, List<TjPdfVO>> printReport = new LinkedHashMap<>(); //鏌ュ埌璇ュ鎴风殑浣撴璁板綍 LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjOrder::getTjNumber, tjNumber); TjOrder one = tjOrderService.getOne(wq1); +/* //鎷垮埌浣撴璁板綍鐨刼rderid锛屾煡鍑洪」鐩缁嗕俊鎭� LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>(); wq.eq(TjOrderDetail::getOrderId, one.getOrderId()); //20230323鍒ゆ柇椤圭洰宸叉 wq.ne(TjOrderDetail::getTjStatus, 0); + wq.ne(TjOrderDetail::getProId,projectService.getHuaYanProId()); + wq.eq(TjOrderDetail::getProId,projectService.getNotCcCtXdtProId()); +// wq.notIn(TjOrderDetail::getProId,projectService.getNneedReprotProId()); List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.list(wq); //閬嶅巻浣撴璁板綍 灏嗛」鐩殑鍏蜂綋淇℃伅 @@ -725,27 +768,106 @@ tjOrderDetail.setProject(tjProject); } } +*/ LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>(); wq22.eq(TjCustomer::getCusId, one.getUserId()); TjCustomer customer = tjCustomerService.getOne(wq22); LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>(); wqq.eq(TjOrderRemark::getTjNumber, tjNumber); + wqq.ne(TjOrderRemark::getDeptId,"241"); + wqq.in(TjOrderRemark::getDeptId,"269","270","253","254","255","257","251","271"); + wqq.notIn(TjOrderRemark::getProId,projectService.getNneedReprotProId()); List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { - printReport.put(tjOrderRemark, null); + + printReport.put(tjOrderRemark,null); } + extracted(printReport,one, customer); + return printReport; + } + + + //鍖栭獙椤圭洰鎶ュ憡 + public Map<TjOrderRemark, List<TjPdfVO>> addHuaYanTable(String tjNumber) { + //鍒涘缓map 閿负鐖堕」鐩� 鍊间负瀛愰」鐩泦鍚� + Map<TjOrderRemark, List<TjPdfVO>> printReport = new LinkedHashMap<>(); + //鏌ュ埌璇ュ鎴风殑浣撴璁板綍 +// LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); +// wq1.eq(TjOrder::getTjNumber, tjNumber); +// TjOrder one = tjOrderService.getOne(wq1); + + //鎷垮埌浣撴璁板綍鐨刼rderid锛屾煡鍑洪」鐩缁嗕俊鎭� +// LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>(); +// wq.eq(TjOrderDetail::getOrderId, one.getOrderId()); +// //20230323鍒ゆ柇椤圭洰宸叉 +// wq.ne(TjOrderDetail::getTjStatus, 0); +// wq.eq(TjOrderDetail::getProId,projectService.getHuaYanProId()); +// List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.list(wq); + List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.addHuaYanTable(tjNumber); + //閬嶅巻浣撴璁板綍 灏嗛」鐩殑鍏蜂綋淇℃伅 + //閬嶅巻瀹㈡埛鎵�閫夌殑椤圭洰(鍖呭惈瀛愰」鐖堕」) +// for (TjOrderDetail tjOrderDetail : tjOrderDetails) { +// TjProject tjProject = projectService.getById(tjOrderDetail.getProId()); +// if (null != tjProject) { +// tjOrderDetail.setProject(tjProject); +// } +// } + +// LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>(); +// wq22.eq(TjCustomer::getCusId, one.getUserId()); +// TjCustomer customer = tjCustomerService.getOne(wq22); +// LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>(); +// wqq.eq(TjOrderRemark::getTjNumber, tjNumber); +// wqq.eq(TjOrderRemark::getDeptId,"241"); +// List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq); + List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.addHuaYanTable(tjNumber); + + for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { + printReport.put(tjOrderRemark,null); + } + List<Object> toRemoveKeys = new ArrayList<>(); for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { List<TjPdfVO> tjPdfVOS = new ArrayList<>(); for (TjOrderDetail tjOrderDetail : tjOrderDetails) { + if(entry.getKey().getProId().equals(tjOrderDetail.getProId())){ + TjPdfVO tjPdfVO = new TjPdfVO(); + tjPdfVO.setProName(tjOrderDetail.getProName()); + if(null !=tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")){ + tjPdfVO.setProResult(tjOrderDetail.getProResult()+" ["+tjOrderDetail.getYcbz()+"]"); + }else { + tjPdfVO.setProResult(tjOrderDetail.getProResult()); + } + tjPdfVO.setExc(tjOrderDetail.getExceptionDesc()); + tjPdfVO.setStandardValue(tjOrderDetail.getStanId()); + tjPdfVO.setCompany(tjOrderDetail.getProAdvice()); + tjPdfVOS.add(tjPdfVO); + } + } + printReport.put(entry.getKey(), tjPdfVOS); + if(tjPdfVOS.size()==0) + {toRemoveKeys.add(entry.getKey());} + } + toRemoveKeys.forEach(printReport::remove); + return printReport; + } + + private void extracted(Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) { + for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) { + List<TjPdfVO> tjPdfVOS = new ArrayList<>(); +// TjOrder one = tjOrderService.getOrderByTjNum(entry.getKey().getTjNumber()); + List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.getDetailByOrderIdAndParId(one.getOrderId(),entry.getKey().getProId()); + for (TjOrderDetail tjOrderDetail : tjOrderDetails) { + TjProject tjProject = projectService.getById(tjOrderDetail.getProId()); + if (null != tjProject) { + tjOrderDetail.setProject(tjProject); + } if (null == tjOrderDetail.getProject()) { System.out.println("'''''''''''''''''''''''''''''''''''" + tjOrderDetail.getOrderDetailId()); } - if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId())) { - LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>(); wq6.eq(TjStandard::getProId, tjOrderDetail.getProId()); List<TjStandard> list2 = tjStandardService.list(wq6); @@ -800,8 +922,33 @@ } printReport.put(entry.getKey(), tjPdfVOS); } - return printReport; } + + + @GetMapping("/isPdfOrJimu") + @ApiOperation(value = "鍒ゆ柇鎶ュ憡鎵撳紑绫诲瀷") + public AjaxResult isPdfOrJimu(String tjNumber) { + Map<String,String> res=new HashMap<>(); + LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>(); + we.eq(TjReport::getTjNumber, tjNumber); + we.eq(TjReport::getType, "浣撴鎶ュ憡"); + TjReport one = tjReportService.getOne(we); + if (one==null){ + return AjaxResult.error("鏆傛棤浣撴鎶ュ憡"); + } + if ("pdf".equals(one.getPrint())){ + res.put("flag","0"); + return AjaxResult.success(res); + }else if ("鎶ヨ〃".equals(one.getPrint())){ + res.put("flag","1"); + res.put("url",one.getPath()); + return AjaxResult.success(res); + }else { + return AjaxResult.error("鏆傛棤浣撴鎶ュ憡"); + } + + } + @GetMapping("/preview/{flag}/{TjNumber}") @@ -833,6 +980,7 @@ if (one == null) { return; } + String userId = SecurityUtils.getLoginUser().getUsername(); PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf"); //String filePath = one.getPath(); -- Gitblit v1.8.0