ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -629,147 +629,19 @@ @ApiOperation(value = "体检报告页面——体检记录列表") public AjaxResult getOrderListOO(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum, @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize, @ApiParam(value = "打印未打印状态 0未打印 1已打印") @RequestParam(defaultValue = "0") Integer dyzt, @ApiParam(value = "打印未打印状态 0未打印 1已打印") @RequestParam(required = false) Integer dyzt, @ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum, @ApiParam(value = "姓名)") @RequestParam(required = false) String name, @ApiParam(value = "单位") @RequestParam(required = false) String dw, @ApiParam(value = "报告开始时间") @RequestParam(required = false) String djbeginTime, @ApiParam(value = "报告结束时间") @RequestParam(required = false) String djendTime) { Map<String, Object> map = new HashMap<>(); /* Map<String, Object> map = new HashMap<>(); List<Long> cusIds = null; if (StringUtil.isNotBlank(name)) { LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>(); wqq.like(TjCustomer::getCusName, name); cusIds = tjCustomerService.list(wqq).stream().map(TjCustomer::getCusId).collect(Collectors.toList()); // if (null != customerList && !customerList.isEmpty()) { // List<TjOrder> list = new ArrayList<>(); // for (TjCustomer customer : customerList) { // LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); // wq.eq(TjOrder::getUserId, customer.getCusId()); // if (dyzt == 0) { // wq.isNull(TjOrder::getPrintLastTime); // wq.eq(TjOrder::getHeshouStatus, 1); // } else { // wq.isNotNull(TjOrder::getPrintLastTime); // } // list.addAll(tjOrderService.list(wq)); // } // List<TjOrder> collect = null; // if (!list.isEmpty()) { // // for (int i = 0; i < list.size(); i++) { // TjCustomer tjCustomer = tjCustomerService.getById(list.get(i).getUserId()); // if (null == tjCustomer) { // list.remove(list.get(i)); // continue; // } // list.get(i).setTjCustomerSex(tjCustomer.getCusSex()); // list.get(i).setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday())); // list.get(i).setTjCustomerName(tjCustomer.getCusName()); // list.get(i).setTjCustomerPhone(tjCustomer.getCusPhone()); // list.get(i).setTjCusIdCard(tjCustomer.getCusIdcard()); // // if (null != tjCustomer.getCompName()) { // list.get(i).setDictCompName(tjCustomer.getCompName()); // } else { // String firmId = list.get(i).getFirmId(); // if (firmId != null && null != iDictCompService.getById(String.valueOf(list.get(i).getFirmId()))) { // list.get(i).setDictCompName(iDictCompService.getById(String.valueOf(list.get(i).getFirmId())).getCnName()); // } // } // // if (null != list.get(i).getPacId()) { // if (null != tjPackageService.getById(list.get(i).getPacId())) { // list.get(i).setPacName(tjPackageService.getById(list.get(i).getPacId()).getPacName()); // } // if (null != dwDeptService.getById(list.get(i).getPacId())) { // list.get(i).setPacName(dwDeptService.getById(list.get(i).getPacId()).getDwDeptName()); // } // } // } // collect = list.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // } // if (null != collect) { // map.put("total", collect.size()); // } else { // map.put("total", 0); // } // if (collect == null) collect = new ArrayList<>(); // map.put("list", collect); // return AjaxResult.success(map); // } } // if (StringUtil.isNotBlank(dw)) { // LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>(); // wqq.like(TjCustomer::getCompName, dw); // List<TjCustomer> customerList = tjCustomerService.list(wqq); // List<TjOrder> list = new ArrayList<>(); // if (null != customerList && !customerList.isEmpty()) { // for (TjCustomer customer : customerList) { // LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); // wq.eq(TjOrder::getUserId, customer.getCusId()); // if (dyzt == 0) { // wq.isNull(TjOrder::getPrintLastTime); // wq.eq(TjOrder::getHeshouStatus, 1); // } else { // wq.isNotNull(TjOrder::getPrintLastTime); // } // list.addAll(tjOrderService.list(wq)); // } // } // List<String> dwIds = iDictCompService.getdwIdByDwName(dw); // // LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); // wq.in(TjOrder::getFirmId, dwIds); // list.addAll(tjOrderService.list(wq)); // List<TjOrder> collect = null; // if (!list.isEmpty()) { // List<TjOrder> orders = list.stream().distinct().collect(Collectors.toList()); // for (int i = 0; i < orders.size(); i++) { // TjCustomer tjCustomer = tjCustomerService.getById(list.get(i).getUserId()); // if (null == tjCustomer) { // list.remove(list.get(i)); // continue; // } // list.get(i).setTjCustomerSex(tjCustomer.getCusSex()); // list.get(i).setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday())); // list.get(i).setTjCustomerName(tjCustomer.getCusName()); // list.get(i).setTjCustomerPhone(tjCustomer.getCusPhone()); // list.get(i).setTjCusIdCard(tjCustomer.getCusIdcard()); // // if (null != tjCustomer.getCompName()) { // list.get(i).setDictCompName(tjCustomer.getCompName()); // } else { // String firmId = list.get(i).getFirmId(); // if (firmId != null && null != iDictCompService.getById(String.valueOf(list.get(i).getFirmId()))) { // list.get(i).setDictCompName(iDictCompService.getById(String.valueOf(list.get(i).getFirmId())).getCnName()); // } // } // // if (null != list.get(i).getPacId()) { // if (null != tjPackageService.getById(list.get(i).getPacId())) { // list.get(i).setPacName(tjPackageService.getById(list.get(i).getPacId()).getPacName()); // } // if (null != dwDeptService.getById(list.get(i).getPacId())) { // list.get(i).setPacName(dwDeptService.getById(list.get(i).getPacId()).getDwDeptName()); // } // } // } // collect = list.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // } // if (null != collect) { // map.put("total", collect.size()); // } else { // map.put("total", 0); // } // map.put("list", collect); // return AjaxResult.success(map); // // // } Page<TjOrder> page1 = new Page<>(pageNum, pageSize); LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>(); if (dyzt == 0) { @@ -837,7 +709,11 @@ } } map.put("list", list); map.put("total", page2.getTotal()); map.put("total", page2.getTotal());*/ if (djbeginTime == null) djbeginTime = ""; if (djendTime == null) djendTime = ""; Map<String, Object> map= tjOrderService.getTjBgdyList(pageNum,pageSize,dyzt,tjNum,name,dw,djbeginTime,djendTime); return AjaxResult.success(map); } @@ -3403,5 +3279,32 @@ } @PostMapping("/heshouchexiao") @ApiOperation(value = "核收撤销接口") @Transactional public AjaxResult heshouchexiao(@RequestBody List<String> tjNUms) { if(null !=tjNUms && !tjNUms.isEmpty()){ for (String tjNUm : tjNUms) { TjOrder order = tjOrderService.getOrderByTjNum(tjNUm); if(null !=order){ order.setHeshouStatus(0); order.setHeshouTime(null); order.setHeshouDoctor(null); order.setPrintLastTime(null); order.setStatus(TjConstants.TJ_WAIT); if (!tjOrderService.updateById(order)) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("操作失败"); } } } return AjaxResult.success("操作成功"); } return AjaxResult.error(); } } ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -305,26 +305,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("该客户报告已生成!不能重复生成!可直接预览或打印!"); } @@ -379,7 +385,6 @@ } 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()); @@ -403,8 +408,12 @@ } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error(String.valueOf(e)); // 调用撤销 // tjReportController.backOnlyCheckType(tjNumber); tjOrder.setReportTime(null); tjOrder.setCheckTime(null); tjOrder.setCheckStatus(0); tjOrder.setPrintLastTime(null); tjOrderService.updateById(tjOrder); logger.error("生成报告异常"); return AjaxResult.error("生成报告失败"); } @@ -1719,26 +1728,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); Date date = new Date(); // LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>(); // wq1.eq(TjOrder::getTjNumber, tjNumber); // TjOrder tjOrder = tjOrderService.getOne(wq1); TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber); // LambdaQueryWrapper<TjCustomer> wq2 = new LambdaQueryWrapper<>(); // wq2.eq(TjCustomer::getCusId, tjOrder.getUserId()); TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId()); LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>(); we.eq(TjReport::getTjNumber, tjNumber); we.eq(TjReport::getType, "体检报告"); @@ -1746,10 +1737,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()) { @@ -1784,7 +1773,92 @@ while ((len = br.read(bs)) > 0) { out.write(bs, 0, len); } if(null !=tjOrder.getHeshouTime() && tjOrder.getHeshouStatus()==1){ // 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()); @@ -1792,6 +1866,7 @@ print.setPrintStatus("已打印"); if (printService.save(print)) { tjOrder.setPrintLastTime(date); tjOrder.setStatus(TjConstants.TJ_END); tjOrderService.updateById(tjOrder); } } @@ -2066,35 +2141,34 @@ 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); one.setCheckTime(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)) { return AjaxResult.success("撤回成功!"); } } return AjaxResult.error("撤回失败!"); ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java
@@ -150,6 +150,7 @@ */ @Excel(name = "总检医生", defaultValue = "无") @ApiModelProperty(value = "总检医生") @TableField(fill = FieldFill.INSERT_UPDATE) private String checkDoctor; /** @@ -407,11 +408,13 @@ */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "核收时间") @TableField(fill = FieldFill.UPDATE) private Date heshouTime; /** * 核收人 */ @ApiModelProperty(value = "核收人") @TableField(fill = FieldFill.UPDATE) private String heshouDoctor; /** ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
@@ -328,4 +328,7 @@ void tjQiandaodengji(Map<String,Object> map); void tjLispacstongbujianyi(Map<String, Object> map); List<List<?>> getTjBgdyList(Map<String, Object> map); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
@@ -184,4 +184,6 @@ void tjQiandaodengji(String tjNum); void tjLispacstongbujianyi(String tjNumber, Long deptId,String nickName, Long userId); Map<String, Object> getTjBgdyList(Integer pageNum, Integer pageSize, Integer dyzt, String tjNum, String name, String dw, String djbeginTime, String djendTime); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -420,4 +420,24 @@ map.put("ysid",userId.toString()); tjOrderMapper.tjLispacstongbujianyi(map); } @Override public Map<String, Object> getTjBgdyList(Integer pageNum, Integer pageSize, Integer dyzt, String tjNum, String name, String dw, String djbeginTime, String djendTime) { Map<String, Object> map = new HashMap<>(); map.put("page",pageNum); map.put("pageSize",pageSize); map.put("dyzt",dyzt.toString()); map.put("tjNumber",tjNum); map.put("dw",dw); map.put("tjname",name); map.put("beginTime",djbeginTime); map.put("endTime",djendTime); // map.put("total",userId.toString()); List<List<?>> list = tjOrderMapper.getTjBgdyList(map); Map<String,Object> map1=new HashMap<>(); map1.put("list",list); map1.put("total",map.get("total")); return map1; } } ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml
@@ -396,4 +396,19 @@ #{ysid,mode=IN,jdbcType=VARCHAR} )} </select> <select id="getTjBgdyList" parameterType="java.util.Map" statementType="CALLABLE" resultType="java.util.Map"> {call tj_bgdy_list( #{page,mode=IN,jdbcType=VARCHAR}, #{pageSize,mode=IN,jdbcType=VARCHAR}, #{dyzt,mode=IN,jdbcType=VARCHAR}, #{tjNumber,mode=IN,jdbcType=VARCHAR}, #{dw,mode=IN,jdbcType=VARCHAR}, #{tjname,mode=IN,jdbcType=VARCHAR}, #{beginTime,mode=IN,jdbcType=VARCHAR}, #{endTime,mode=IN,jdbcType=VARCHAR}, #{total,mode=OUT,jdbcType=INTEGER} )} </select> </mapper>