From 7d702f59202496e28a80582b4aeeab2a9b9da76d Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期一, 14 十月 2024 15:05:16 +0800 Subject: [PATCH] 修改判断是否需要lis、pacs --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java | 241 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 188 insertions(+), 53 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 584dc8d..d5e1209 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 @@ -2,10 +2,10 @@ import java.io.*; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.text.NumberFormat; +import java.text.SimpleDateFormat; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -20,7 +20,6 @@ import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import com.itextpdf.text.pdf.draw.LineSeparator; -import com.ltkj.common.annotation.Log; import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.utils.DateUtils; import com.ltkj.common.utils.PDFDocumentUtil; @@ -29,20 +28,20 @@ import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; -import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo; import com.ltkj.mall.mallOrderUtils.TjConstants; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDictDataService; import com.ltkj.system.service.ISysUserService; import com.ltkj.web.config.pdfutils.MergePdf; -import com.ltkj.web.config.pdfutils.MyHeaderFooter; import com.ltkj.web.config.pdfutils.PDFBinaryUtil; import com.ltkj.web.config.pdfutils.PdfUtils; +import com.ltkj.web.controller.his.HisPDFUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; @@ -97,9 +96,10 @@ private ISysDictDataService dictDataService; @Resource private ITbTransitionService transitionService; - @Autowired private ITjBigPositiveService tjBigPositiveService; + @Autowired + private HisPDFUtil hisPDFUtil; @GetMapping("/savePdf") @ApiOperation(value = "浠庢湰鍦板瓨鍌ㄦā鏉垮埌鏁版嵁搴�") @@ -271,7 +271,7 @@ @ApiOperation(value = "鎵撳嵃浣撴鎶ュ憡涓簆df") @Transactional public AjaxResult toPdf(@PathVariable("TjNumber") @ApiParam(value = "浣撴鍙�") String tjNumber) { - AjaxResult error = null; + // AjaxResult error = null; // 涔嬪墠鐨勪唬鐮� 浼樺寲閫熷害 // System.out.println("----------------------------------oldFun寮�濮�-------------------------------------------------------"); // error = oldFun(tjNumber); @@ -287,15 +287,172 @@ // remarkVo.setProId("1633660948860522555"); // updateOrderRemarkVos.add(remarkVo); // tjCheckController.checkUpdateOrderRemark(updateOrderRemarkVos); - System.out.println("---------------------------------------newFun寮�濮�--------------------------------------------------"); - error = newFun(tjNumber); - System.out.println("-------------------------------------------缁撴潫----------------------------------------------"); +// System.out.println("---------------------------------------newFun寮�濮�--------------------------------------------------"); + // 浠ュ墠娴嬭瘯pdf鏂规硶 +// error = newFun(tjNumber); +// System.out.println("-------------------------------------------缁撴潫----------------------------------------------"); // 鎾ら攢 // revocationReport(tjNumber); - if (error != null) { - return error; +// if (error != null) { +// return error; +// } +// return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�"); + int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); + if (num > 0) { + return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!"); } - return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�"); + +// String configByKey = configService.selectConfigByKey("sfkqdyhis"); + String configByKey = "Y"; + LambdaQueryWrapper<TjOrder> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(TjOrder::getTjNumber, tjNumber); + TjOrder tjOrder = tjOrderService.getOne(queryWrapper); + if (null != tjOrder) { + + //鍒ゆ柇琛ㄤ腑鏈夋病鏈夎浣撴鎶ュ憡 涓嶈兘閲嶅鐢熸垚 + LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>(); + wqa.eq(TjReport::getTjNumber, tjNumber); + wqa.eq(TjReport::getType, "浣撴鎶ュ憡"); + Integer count = tjReportService.getSelectCount(wqa); + + if (tjOrder.getReportTime() !=null || count != 0 ) { + return AjaxResult.error("璇ュ鎴锋姤鍛婂凡鐢熸垚锛佷笉鑳介噸澶嶇敓鎴愶紒鍙洿鎺ラ瑙堟垨鎵撳嵃锛�"); + } + + LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>(); + tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); + tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); + TjReportTemplate reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); +// if (tjOrder.getTjCategory() != null) { +// //鏌ヨ瀛楀吀 +// LambdaQueryWrapper<SysDictData> wqq = new LambdaQueryWrapper<>(); +// wqq.eq(SysDictData::getDictType, "dict_tjtype"); +// wqq.eq(SysDictData::getDictValue, tjOrder.getTjCategory()); +// SysDictData one = dictDataService.getOne(wqq); +// if (one != null) { +// //鏌ヨ瀛楀吀 +// LambdaQueryWrapper<SysDictData> wqq1 = new LambdaQueryWrapper<>(); +// wqq1.eq(SysDictData::getDictType, "report_template_type"); +// wqq1.eq(SysDictData::getDictLabel, one.getDictLabel()); +// SysDictData one1 = dictDataService.getOne(wqq1); +// if (one1 != null) { +// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, one1.getDictValue()); +// } else { +// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); +// } +// } else { +// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1); +// } +// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); +// reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper); +// } else { +// tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0); +// reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2); +// } + Integer checkStatus = tjOrder.getCheckStatus(); + if (checkStatus == 1) { + 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 hisRegistrationId = tjOrder.getCardId(); + Date createTime = tjOrder.getCreateTime(); + Date finishTime = tjOrder.getFinishTime(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String ksrq = dateFormat.format(createTime); + String jsrq = dateFormat.format(new Date()); + HashMap<String, Object> params = new HashMap<>(); + params.put("his_registration_id", hisRegistrationId); + params.put("ksbm", ""); + params.put("pationid", ""); + params.put("ksrq", ksrq); + params.put("jsrq", jsrq); + params.put("pagecount", 100); + params.put("page", 1); + LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>(); + wq1.eq(TjCustomer::getCusId, tjOrder.getUserId()); + TjCustomer tjCustomer = tjCustomerService.getOne(wq1); + try { + return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate); + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + e.printStackTrace(); + // 璋冪敤鎾ら攢 +// tjReportController.backOnlyCheckType(tjNumber); + logger.error("鐢熸垚鎶ュ憡寮傚父"); + return AjaxResult.error("鐢熸垚鎶ュ憡澶辫触"); + } + } else { + return AjaxResult.error("璇峰厛鎬绘"); + } + } + return AjaxResult.error(); + } + + public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) throws Exception { + AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate); + if (!ajaxResult.get("code").toString().equals("200")) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } else { + Long userId = tjCustomer.getCusId(); + String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_鎶ュ憡.pdf"; + TjReport tjReport = new TjReport(); + tjReport.setTjNumber(String.valueOf(tjNumber)); + tjReport.setPath(urlValue + outputFileName1); + String outputPath1 = value + "\\"; + String pdfBinary = getPDFBinary(outputPath1 + outputFileName1); + tjReport.setReport(pdfBinary); + tjReport.setType("浣撴鎶ュ憡"); + tjReport.setPrint("pdf"); + tjReportService.save(tjReport); + Date date = new Date(); + // LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); +// updateWrapper.eq(TjOrder::getTjNumber, tjNumber); +// updateWrapper.set(TjOrder::getReportTime, date); +// updateWrapper.set(TjOrder::getPrintLastTime, date); +// updateWrapper.set(TjOrder::getDownloadLastTime,date); +// updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); + tjOrder.setStatus(TjConstants.TJ_END); + tjOrder.setReportTime(date); + tjOrder.setPrintLastTime(date); + tjOrder.setDownloadLastTime(date); + tjOrderService.updateById(tjOrder); + } + return ajaxResult; + } + + + /** + * 鎾ら攢 + * @param tjNumber + */ + @Transactional(propagation = Propagation.REQUIRES_NEW) + public void backOnlyCheckType(String tjNumber) { + QueryWrapper<TjOrder> wq2 = new QueryWrapper<>(); + wq2.eq("tj_number", tjNumber); + TjOrder one = tjOrderService.getOne(wq2); + one.setCheckStatus(0); + String config = configService.selectConfigByKey("tj_confirm"); + if ("Y".equals(config)) { + one.setStatus(TjConstants.TJ_CHECK); + } else { + one.setStatus(TjConstants.TJ_CONFIRM); + } + //灏嗙姸鎬佹敼涓烘湭瀹℃牳 + tjOrderService.updateById(one); } private AjaxResult newFun(String tjNumber) { @@ -466,7 +623,7 @@ for (String key : data.keySet()) { form.setField(key, data.get(key).toString()); } - System.out.println("pdf濉厖琛ㄥ崟鏁版嵁鑰楁椂锛�"+(System.currentTimeMillis() - pdfMkStart)); + System.out.println("pdf濉厖琛ㄥ崟鏁版嵁鑰楁椂锛�" + (System.currentTimeMillis() - pdfMkStart)); //璁剧疆涓烘棤娉曠紪杈� ps.setFormFlattening(true); ps.close(); @@ -535,8 +692,8 @@ } } long fujianEnd = System.currentTimeMillis(); - System.out.println("闄勪欢鏌ヨ鑰楁椂锛�"+(fujianEnd - fujianStart)); - System.out.println("鏂囦欢淇濆瓨鍓嶈�楁椂锛�"+(fujianEnd - pdfMkStart)); + System.out.println("闄勪欢鏌ヨ鑰楁椂锛�" + (fujianEnd - fujianStart)); + System.out.println("鏂囦欢淇濆瓨鍓嶈�楁椂锛�" + (fujianEnd - pdfMkStart)); // 淇濆瓨pdf鏂囦欢 copy.close(); String outputPath1 = value + "\\"; @@ -1259,7 +1416,7 @@ e.printStackTrace(); return AjaxResult.success("PDF瀵煎嚭澶辫触"); } finally { - transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(), tjOrder.getCardId()); +// transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(), tjOrder.getCardId()); } } } @@ -1321,35 +1478,12 @@ //鍒涘缓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); + List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.addHuaYanAndCgTable(tjNumber); + + List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.addHuaYanAndCgTable(tjNumber); for (TjOrderRemark tjOrderRemark : tjOrderRemarks) { printReport.put(tjOrderRemark, null); } @@ -1357,7 +1491,7 @@ 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())) { + if (entry.getKey().getProsId().equals(tjOrderDetail.getProsId())) { TjPdfVO tjPdfVO = new TjPdfVO(); tjPdfVO.setProName(tjOrderDetail.getProName()); if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) { @@ -1372,7 +1506,7 @@ } } printReport.put(entry.getKey(), tjPdfVOS); - if (tjPdfVOS.size() == 0) { + if (tjPdfVOS.isEmpty()) { toRemoveKeys.add(entry.getKey()); } } @@ -1462,7 +1596,7 @@ }); List<Long> proIds = tjOrderDetails.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()); LambdaQueryWrapper<TjProject> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(TjProject::getProId,proIds); + queryWrapper.in(TjProject::getProId, proIds); List<TjProject> projectList = projectService.list(queryWrapper); for (TjOrderDetail tjOrderDetail : tjOrderDetails) { TjProject tjProject = projectList.stream().filter(item -> item.getProId().equals(tjOrderDetail.getProId())).collect(Collectors.toList()).get(0); @@ -1473,11 +1607,11 @@ System.out.println("'''''''''''''''''''''''''''''''''''" + tjOrderDetail.getOrderDetailId()); } // 鍒ゆ柇鍦╟ollect涓槸鍚﹀瓨鍦� - if (collect.contains(tjOrderDetail.getProject().getProParentId())){ + if (collect.contains(tjOrderDetail.getProject().getProParentId())) { LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>(); wq6.eq(TjStandard::getProId, tjOrderDetail.getProId()); List<TjStandard> list2 = tjStandardService.list(wq6); - if (list2.size() == 0) { + if (list2.isEmpty()) { TjStandard s = new TjStandard(); s.setCompany(" "); s.setTjStandardLtValue(" "); @@ -1527,9 +1661,9 @@ tjPdfVOS.add(tjPdfVO); } } - printReport.entrySet().stream().forEach(item->{ + printReport.entrySet().stream().forEach(item -> { List<TjPdfVO> pdfVOS = hashMap.get(item.getKey().getProId()); - printReport.put(item.getKey(),pdfVOS); + printReport.put(item.getKey(), pdfVOS); }); } @@ -1649,22 +1783,23 @@ @PostMapping("/preview/batch") @ApiOperation(value = "鎵归噺浣撴鎶ュ憡") @Transactional - public AjaxResult preview(@RequestBody String data){ + public AjaxResult preview(@RequestBody String data) { String is_batch_report_use_sql = configService.selectConfigByKey("is_batch_report_use_sql"); List<String> tjNumbers = Arrays.stream(data.split(",")).collect(Collectors.toList()); if ("true".equals(is_batch_report_use_sql)) { return tjReportService.makeBatchReport(tjNumbers); - }else { + } else { return makeReport(tjNumbers); } } /** * 閫氳繃sql 閲嶆暣鏁版嵁妯℃澘 鍏ㄩ儴閲嶆柊鐢熸垚 + * * @param tjNumbers * @return */ - private AjaxResult makeReport(List<String > tjNumbers) { + private AjaxResult makeReport(List<String> tjNumbers) { ArrayList<String> base64Pdfs = new ArrayList<>(); for (String tjNumber : tjNumbers) { LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); @@ -1878,7 +2013,7 @@ // outputStream.flush(); // outputStream.close(); String s = Base64.getEncoder().encodeToString(mergePDFs); - return AjaxResult.success().put("file",s); + return AjaxResult.success().put("file", s); } catch (DocumentException | IOException e) { e.printStackTrace(); return AjaxResult.error("鎵归噺鐢熸垚澶辫触"); -- Gitblit v1.8.0