From 5e15f28db8bf83cc19697e1ce2bd0078cd9cdfb8 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 23 一月 2025 17:07:51 +0800 Subject: [PATCH] zjh20250123 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java | 281 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 195 insertions(+), 86 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 5441cdd..a360ec8 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 @@ -39,6 +39,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Propagation; @@ -56,6 +57,7 @@ * @author ltkj * @date 2022-12-06 */ +@Slf4j @RestController @RequestMapping("/system/report") @Api(tags = "AAAA_浣撴鎶ュ憡") @@ -100,6 +102,12 @@ private ITjBigPositiveService tjBigPositiveService; @Autowired private HisPDFUtil hisPDFUtil; + @Autowired + private IDictHospService dictHospService; + @Autowired + private ITjReportPrintService printService; + @Autowired + private TjOrderYcxmService ycxmService; @GetMapping("/savePdf") @ApiOperation(value = "浠庢湰鍦板瓨鍌ㄦā鏉垮埌鏁版嵁搴�") @@ -299,26 +307,32 @@ // return error; // } // return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�"); + + TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber); + if (null != tjOrder) { String config = configService.selectConfigByKey("sfjcwjhyqxm"); if(null != config && config.equalsIgnoreCase("Y")){ int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); - if (num > 0) return AjaxResult.error("瀛樺湪鏈鎴栧欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!"); + if (num > 0) { + tjOrder.setReportTime(null); + tjOrder.setCheckTime(null); + tjOrder.setCheckStatus(0); + tjOrder.setPrintLastTime(null); + tjOrderService.updateById(tjOrder); + return AjaxResult.error("瀛樺湪鏈鎴栧欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!"); + } } - -// 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 ) { +// tjOrder.setReportTime(null); +// tjOrder.setCheckTime(null); +// tjOrder.setCheckStatus(0); +// tjOrder.setPrintLastTime(null); +// tjOrderService.updateById(tjOrder); return AjaxResult.error("璇ュ鎴锋姤鍛婂凡鐢熸垚锛佷笉鑳介噸澶嶇敓鎴愶紒鍙洿鎺ラ瑙堟垨鎵撳嵃锛�"); } @@ -365,36 +379,43 @@ 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::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); +// String hisRegistrationId = tjOrder.getCardId(); +// Date createTime = tjOrder.getCreateTime(); +// 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); + LambdaQueryWrapper<TjReportTemplate> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TjReportTemplate::getFlag,"4"); + wrapper.eq(TjReportTemplate::getOpen,"1"); + TjReportTemplate zongJianYiShiQianMing = reportTemplateService.getOne(wrapper); try { - return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate); + return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing); } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - e.printStackTrace(); - // 璋冪敤鎾ら攢 -// tjReportController.backOnlyCheckType(tjNumber); + log.error(String.valueOf(e)); + tjOrder.setReportTime(null); + tjOrder.setCheckTime(null); + tjOrder.setCheckStatus(0); + tjOrder.setPrintLastTime(null); + tjOrderService.updateById(tjOrder); + logger.error("鐢熸垚鎶ュ憡寮傚父"); return AjaxResult.error("鐢熸垚鎶ュ憡澶辫触"); } @@ -405,8 +426,17 @@ return AjaxResult.error(); } - public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) throws Exception { - AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate); + public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,TjReportTemplate zongJianYiShiQianMing) { + AjaxResult ajaxResult = null; + try { +// ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate); +// ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate); + + ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing); + } catch (Exception e) { + e.printStackTrace(); + log.error(String.valueOf(e)); + } if (!ajaxResult.get("code").toString().equals("200")) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } else { @@ -430,8 +460,8 @@ // updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); tjOrder.setStatus(TjConstants.TJ_END); tjOrder.setReportTime(date); - tjOrder.setPrintLastTime(date); - tjOrder.setDownloadLastTime(date); +// tjOrder.setPrintLastTime(date); +// tjOrder.setDownloadLastTime(date); tjOrderService.updateById(tjOrder); } return ajaxResult; @@ -898,7 +928,8 @@ // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙� Font textFont = PdfUtils.setFont(9); //鍒涘缓琛ㄦ牸 灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘� - PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value); + DictHosp dictHosp = dictHospService.list().get(0); + PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")); document.add(paragraph); document.add(table); //鍒ゆ柇澶囨敞鏄惁涓虹┖ 绌轰笉鑳芥樉绀簄ull @@ -952,6 +983,7 @@ } private AjaxResult oldFun(String tjNumber) { + DictHosp dictHosp = dictHospService.list().get(0); long startTime = System.currentTimeMillis(); int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!"); @@ -1278,7 +1310,7 @@ // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙� Font textFont = PdfUtils.setFont(9); //鍒涘缓琛ㄦ牸 灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘� - PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value); + PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")); document.add(paragraph); document.add(table); @@ -1698,25 +1730,8 @@ @GetMapping("/preview/{flag}/{TjNumber}") @ApiOperation(value = "涓嬭浇浣撴鎶ュ憡") public void preview(HttpServletResponse response, @PathVariable("flag") boolean flag, @PathVariable("TjNumber") String tjNumber) { - //淇敼order琛ㄤ腑鐨勪笅杞芥姤鍛婃椂闂翠负褰撳墠鏃堕棿 - LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(TjOrder::getTjNumber, tjNumber); - updateWrapper.set(TjOrder::getPrintLastTime, new Date()); - updateWrapper.set(TjOrder::getDownloadLastTime, new Date()); - updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END); - tjOrderService.update(updateWrapper); - - - LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); - wq1.eq(TjOrder::getTjNumber, tjNumber); - TjOrder tjOrder = tjOrderService.getOne(wq1); - - - LambdaQueryWrapper<TjCustomer> wq2 = new LambdaQueryWrapper<>(); - wq2.eq(TjCustomer::getCusId, tjOrder.getUserId()); - TjCustomer tjCustomer = tjCustomerService.getOne(wq2); - - + TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber); + TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId()); LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>(); we.eq(TjReport::getTjNumber, tjNumber); we.eq(TjReport::getType, "浣撴鎶ュ憡"); @@ -1724,10 +1739,8 @@ if (one == null) { return; } - String userId = SecurityUtils.getLoginUser().getUsername(); PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf"); - //String filePath = one.getPath(); String filePath = value + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf"; File f = new File(filePath); if (filePath.isEmpty()) { @@ -1761,6 +1774,103 @@ out = response.getOutputStream(); while ((len = br.read(bs)) > 0) { out.write(bs, 0, len); + } +// if(null !=tjOrder.getHeshouTime() && tjOrder.getHeshouStatus()==1){ +// TjReportPrint print=new TjReportPrint(); +// print.setTjNumber(tjNumber); +// print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName()); +// print.setPrintTime(date); +// print.setPrintStatus("宸叉墦鍗�"); +// if (printService.save(print)) { +// tjOrder.setPrintLastTime(date); +// tjOrderService.updateById(tjOrder); +// } +// } + out.flush(); + out.close(); + br.close(); + fileInputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + //System.out.println("pdf澶勭悊鏂囦欢寮傚父" + e); + } finally { + if (out != null) { + try { + out.close(); + br.close(); + fileInputStream.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + @GetMapping("/previewprint/{flag}/{TjNumber}/{sfdy}") + @ApiOperation(value = "涓嬭浇浣撴鎶ュ憡") + public void previewprint(HttpServletResponse response, @PathVariable("flag") boolean flag, @PathVariable("TjNumber") String tjNumber,@PathVariable("sfdy") String sfdy) { + + Date date = new Date(); + TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber); + + TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId()); + + LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>(); + we.eq(TjReport::getTjNumber, tjNumber); + we.eq(TjReport::getType, "浣撴鎶ュ憡"); + TjReport one = tjReportService.getOne(we); + if (one == null) { + return; + } + + String userId = SecurityUtils.getLoginUser().getUsername(); + PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf"); + String filePath = value + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf"; + File f = new File(filePath); + if (filePath.isEmpty()) { + System.out.println("鏂囦欢涓嶅瓨鍦紒"); + return; + } + BufferedInputStream br = null; + OutputStream out = null; + FileInputStream fileInputStream = null; + try { + fileInputStream = new FileInputStream(f); + br = new BufferedInputStream(fileInputStream); + byte[] bs = new byte[1024]; + int len = 0; + response.reset(); // 闈炲父閲嶈 + if (flag) { + // 鍦ㄧ嚎鎵撳紑鏂瑰紡 + URL u = new URL("file:///" + filePath); + //System.out.println(u); + String contentType = u.openConnection().getContentType(); + response.setContentType(contentType); + response.setHeader("Content-Disposition", "inline;filename=" + + userId + tjNumber + ".pdf"); + } else { + // 绾笅杞芥柟寮� + response.setContentType("application/x-msdownload"); + response.setContentType("application/pdf;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + + userId + tjNumber + ".pdf"); + } + out = response.getOutputStream(); + while ((len = br.read(bs)) > 0) { + out.write(bs, 0, len); + } + if(null !=sfdy && sfdy.equals("1")){ + TjReportPrint print=new TjReportPrint(); + print.setTjNumber(tjNumber); + print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName()); + print.setPrintTime(date); + print.setPrintStatus("宸叉墦鍗�"); + if (printService.save(print)) { + tjOrder.setPrintLastTime(date); + tjOrder.setStatus(TjConstants.TJ_END); + tjOrderService.updateById(tjOrder); + } } out.flush(); out.close(); @@ -2033,34 +2143,35 @@ wq1.eq("type", "浣撴鎶ュ憡"); TjReport tjReport = tjReportService.getOne(wq1); if (null != tjReport) { -// if (!tjReportService.remove(wq1)) { -// return AjaxResult.error("鎾ゅ洖澶辫触锛�"); -// } // 涓嶅湪浣跨敤閫昏緫鍒犻櫎 閫昏緫鍒犻櫎瀵艰嚧鎵撳嵃鎶ュ憡鐢熸垚 鏌ヨsql缂撴參 int i = tjReportService.deleteTjReportByReId(tjReport.getReId()); if (i == 0) { return AjaxResult.error("鎾ゅ洖澶辫触锛�"); } } - 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); - } - one.setReportTime(null); - //灏嗙姸鎬佹敼涓烘湭瀹℃牳 -// UpdateWrapper updateWrapper=new UpdateWrapper(); -// updateWrapper.eq("tj_number",tjNumber); -// updateWrapper.set("check_status",0); - boolean update = tjOrderService.updateById(one); - if (update) { - return AjaxResult.success("鎾ゅ洖鎴愬姛锛�"); + TjOrder one = tjOrderService.getOrderByTjNum(tjNumber); + if(null !=one){ + if(null !=one.getHeshouTime() && one.getHeshouStatus()==1)return AjaxResult.error("鎶ュ憡宸叉牳鏀朵笉鍙挙鍥�!!!"); + one.setCheckStatus(0); + String config = configService.selectConfigByKey("tj_confirm"); + if ("Y".equals(config)) { + one.setStatus(TjConstants.TJ_CHECK); + } else { + one.setStatus(TjConstants.TJ_CONFIRM); + } + one.setReportTime(null); + one.setCheckTime(null); + one.setCheckDoctor(null); + one.setHeshouStatus(0); + one.setHeshouTime(null); + one.setHeshouDoctor(null); + one.setPrintLastTime(null); + one.setDownloadLastTime(null); + if (tjOrderService.updateById(one)) { +// ycxmService.delOrderYcXmJyByTjh(tjNumber); + return AjaxResult.success("鎾ゅ洖鎴愬姛锛�"); + } } return AjaxResult.error("鎾ゅ洖澶辫触锛�"); @@ -2112,8 +2223,8 @@ LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>(); wq2.eq(TjOrder::getFirmId, firmId); wq2.eq(TjOrder::getFirmDeptId, firmDeptId); - wq2.eq(TjOrder::getTjType, "1"); - wq2.in(TjOrder::getStatus, 401, 402); + wq2.ne(TjOrder::getTjType, "2"); +// wq2.in(TjOrder::getStatus, 401, 402); final List<TjOrder> list = tjOrderService.list(wq2); for (TjOrder tjOrder : list) { @@ -2472,16 +2583,14 @@ @GetMapping("/tuanDuiYiChangBySex") @ApiOperation(value = "鐢熸垚鍥㈤槦浣撴鎶ュ憡鈥斺�旂敺濂冲紓甯哥粨鏋滅粺璁�") - public Map<String, List<Map<String, Object>>> tuanDuiYiChangBySex(@ApiParam(value = "鍗曚綅") @RequestParam String firmId, - @ApiParam(value = "閮ㄩ棬") @RequestParam String firmDeptId) { + public Map<String, List<Map<String, Object>>> tuanDuiYiChangBySex(@ApiParam(value = "鍗曚綅") @RequestParam String dwname) { Map<String, List<Map<String, Object>>> all = new HashMap<>(); LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>(); - wq2.eq(TjOrder::getFirmId, firmId); - wq2.eq(TjOrder::getFirmDeptId, firmDeptId); - wq2.eq(TjOrder::getTjType, "1"); - wq2.in(TjOrder::getStatus, 401, 402); + wq2.eq(TjOrder::getFirmName,dwname); + wq2.ne(TjOrder::getTjType, "2"); +// wq2.in(TjOrder::getStatus, 401, 402); final List<TjOrder> list = tjOrderService.list(wq2); List<String> tjNumberList = list.stream().map(TjOrder::getTjNumber).collect(Collectors.toList()); -- Gitblit v1.8.0