From b5286f21559b057f4240ae1e903beaf1fa314a5d Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期六, 08 二月 2025 18:08:46 +0800 Subject: [PATCH] zjh20250208 --- ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java | 9 + ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java | 6 ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java | 2 ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java | 2 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | 327 +++++++++++++++++++++++++++++++--------------- ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java | 2 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java | 2 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java | 62 +++++++- ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java | 2 9 files changed, 289 insertions(+), 125 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java index a57c3a0..8afaf78 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java @@ -1414,7 +1414,7 @@ if (samplings.size() >= 2) { // 杩涜鍚堝苟 List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList()); - log.info("鎻愬彇id ->{}",stringList); +// log.info("鎻愬彇id ->{}",stringList); for (int i = 0; i < stringList.size(); i++) { String s = stringList.get(i); if (tjSamplingService.isMergeItem(s) != 0) { diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java index 51a3e4c..c489848 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java @@ -1809,7 +1809,7 @@ if (samplings.size() >= 2){ // 杩涜鍚堝苟 List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList()); - log.info("鎻愬彇id ->{}",stringList); +// log.info("鎻愬彇id ->{}",stringList); for (int i = 0; i < stringList.size(); i++) { String s = stringList.get(i); if (tjSamplingService.isMergeItem(s) != 0) { diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java index cfe7bce..82c2df8 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java @@ -56,6 +56,7 @@ import com.ltkj.hosp.dto.UpdateTransitionnewPriceDto; import com.ltkj.hosp.hisDto.OutpinimpapplyDto; import com.ltkj.hosp.hisDto.OutpinmedicapplyDto; +import com.ltkj.hosp.mapper.TbTransitionMapper; import com.ltkj.hosp.mapper.TestMapper; import com.ltkj.hosp.mapper.TjSamplingMapper; import com.ltkj.hosp.pacsDto.SavePacsApply; @@ -236,6 +237,8 @@ private ITjXdPictureService xdPictureService; @Autowired private TjOrderYcxmService ycxmService; + @Autowired + private TbTransitionMapper tbTransitionMapper; //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡 public JSONObject getJSONObject(String builder) { @@ -1037,7 +1040,7 @@ tjOrder.setTjType("2"); } } - if(StringUtil.isBlank(tjOrder.getFirmId())){ + if (StringUtil.isBlank(tjOrder.getFirmId())) { tjOrder.setFirmId("0"); } @@ -1096,8 +1099,8 @@ // if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber; - String tjNumber = (SecurityUtils.getUsername()+IdUtils.getTjNumber()); - if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber; + String tjNumber = (SecurityUtils.getUsername() + IdUtils.getTjNumber()); + if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber; tjOrder.setTjNumber(tjNumber); @@ -1144,10 +1147,10 @@ tjFlowingWater.setDiscount(discount.toString()); BigDecimal subtract = paidIn.subtract(copeWith.multiply(discount.divide(BigDecimal.valueOf(10)))); - log.info("绛惧埌鐧昏浣撴浜�: "+tjOrder.getTjNumber()+" 搴斾粯: "+copeWith); - log.info("绛惧埌鐧昏浣撴浜�: "+tjOrder.getTjNumber()+" 鎶樻墸: "+discount); - log.info("绛惧埌鐧昏浣撴浜�: "+tjOrder.getTjNumber()+" 瀹炰粯: "+paidIn); - log.info("绛惧埌鐧昏浣撴浜�: "+tjOrder.getTjNumber()+" 鐩稿樊: "+subtract); + log.info("绛惧埌鐧昏浣撴浜�: " + tjOrder.getTjNumber() + " 搴斾粯: " + copeWith); + log.info("绛惧埌鐧昏浣撴浜�: " + tjOrder.getTjNumber() + " 鎶樻墸: " + discount); + log.info("绛惧埌鐧昏浣撴浜�: " + tjOrder.getTjNumber() + " 瀹炰粯: " + paidIn); + log.info("绛惧埌鐧昏浣撴浜�: " + tjOrder.getTjNumber() + " 鐩稿樊: " + subtract); if (isPay.equals("true")) { if (null != mallOrder) { @@ -1181,7 +1184,7 @@ //淇敼姣忛」鐨勫師浠风幇浠� // transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), discount, tjOrder.getTjNumber()); //淇敼涓存椂琛ㄤ綋妫�鍙� - transitionService.updateTbTransitionTjNumByCusId(tjCustomer.getCusIdcard(),tjOrder.getTjNumber()); + transitionService.updateTbTransitionTjNumByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber()); //琛ュ樊浠� /* if(subtract.compareTo(BigDecimal.ZERO)>0){ tjFlowingWater.setPaidIn(paidIn.add(subtract)); @@ -1352,7 +1355,7 @@ List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); return AjaxResult.success(tjNumber); - }else { + } else { newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); if (error != null) return error; @@ -1511,21 +1514,22 @@ } } - if (StrUtil.isNotBlank(jxbz)){ - tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(),sysUser.getNickName(), String.valueOf(sysUser.getUserId()),jxbz); - }else { - tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(),sysUser.getNickName(), String.valueOf(sysUser.getUserId())); + if (StrUtil.isNotBlank(jxbz)) { + tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), jxbz); + } else { + tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId())); } } @PostMapping("/addPlOrderAndDetail") @ApiOperation(value = "浣撴鎵归噺绛惧埌鐧昏鎺ュ彛") - @Transactional //(鍒囨崲鏁版嵁搴撳嚭閿欙紝鎵�浠ユ敞閲�) +// @Transactional //(鍒囨崲鏁版嵁搴撳嚭閿欙紝鎵�浠ユ敞閲�) public AjaxResult addPlOrderAndDetail(@RequestBody QianDaoDto daoDto, HttpServletResponse response) { SysUser sysUser = UserHoder.getLoginUser().getUser(); List<String> cusIds = daoDto.getCusIds(); ArrayList<String> tjNumbers = new ArrayList<>(); + ArrayList<String> errTjh = new ArrayList<>(); if (null != cusIds && !cusIds.isEmpty()) { ExecutorService threadPools = Executors.newFixedThreadPool(cusIds.size()); for (String cusId : cusIds) { @@ -1554,69 +1558,105 @@ // } // } // }); + String tjh = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date())); + + + + String finalTjh = tjh; Future<AjaxResult> future = executor.submit(new Callable<AjaxResult>() { @Override public AjaxResult call() throws Exception { - return getAjaxResult(aLong, sysUser, daoDto.getTjCategory()); + return getAjaxResult(aLong, sysUser, daoDto.getTjCategory(), finalTjh); } }); try { AjaxResult result = future.get(); - String tjNumber = result.get("tjNumber").toString(); - tjNumbers.add(tjNumber); + String code = result.get("code").toString(); + if (code.equals("200")) { + String tjNumber = result.get("tjNumber").toString(); + tjNumbers.add(tjNumber); + }else { + String userId = result.get("userId").toString(); + errTjh.add(userId); + } } catch (InterruptedException | ExecutionException e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); e.printStackTrace(); } } threadPools.shutdown(); } - } - // TODO 鍥犱负鏈変綋妫�鍙蜂細鏌ュ嚭绌烘暟鎹� 鍏堜娇鐢ㄦ鏁版嵁 - tjNumbers = new ArrayList<>(); - tjNumbers.add("02095240229171627"); - tjNumbers.add("02095240229173104"); - tjNumbers.add("10001240524172002"); - tjNumbers.add("10001240304124410"); - tjNumbers.add("00325240304160123"); - tjNumbers.add("02095240304162044"); - tjNumbers.add("02095240304162152"); - tjNumbers.add("10001240304163505"); - Map<String, Object> map = null; - try { - map = PDFDocumentUtil.getDocument(); - Document document = (Document) map.get("document"); - for (int i = 0; i < tjNumbers.size(); i++) { + // TODO 鍥犱负鏈変綋妫�鍙蜂細鏌ュ嚭绌烘暟鎹� 鍏堜娇鐢ㄦ鏁版嵁 鎵撳嵃瀵艰瘖鍗� + if (!tjNumbers.isEmpty()) { + Map<String, Object> map = null; try { - List<Map<String, String>> djdInfos = tjOrderService.selectDjdInfo(tjNumbers.get(i)); - Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNumbers.get(i)); - LocalDateTime tjsj = (LocalDateTime) userInfo.get("tjsj"); - DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); - String time = null; - if (tjsj != null) { - time = dateFormat.format(tjsj); + map = PDFDocumentUtil.getDocument(); + Document document = (Document) map.get("document"); +// for (int i = 0; i < tjNumbers.size(); i++) { + int i = 0; + for (String tjNumber : tjNumbers) { + try { + List<Map<String, Object>> djdInfos = tjOrderService.selectDjdInfo(tjNumber); + Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNumber); + if(null !=userInfo && null !=djdInfos && !djdInfos.isEmpty()){ + LocalDateTime tjsj = (LocalDateTime) userInfo.get("tjsj"); + DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + String time = null; + if (tjsj != null) { + time = dateFormat.format(tjsj); + } + PDFDocumentUtil.makeUserInfoTable(document, (String) userInfo.get("tjname"), (String) userInfo.get("sex") + , (String) userInfo.get("tjh"), (String) userInfo.get("lxdh"), (String) userInfo.get("tjname"), time); + PDFDocumentUtil.makeTjInfo(document, djdInfos); + // 澶氭潯鍒欐崲椤� + if (i + 1 < tjNumbers.size()) { + document.newPage(); + } + } + + } catch (DocumentException | IOException e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + //杩欓噷鍒犻櫎鐨勬槸杩欎釜浜烘墍鏈夐」鐩寘鎷ˉ褰曢」鐩� + TjOrder order = tjOrderService.getOrderByTjNum(tjNumber); + tjOrderService.deleteTjOrderByOrderId(order.getOrderId()); + tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId())); + remarkService.deletedOrderRemarkByTjNum(tjNumber); + tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId())); +// transitionService.deletedTbTransitionByTjNum(tjNum); + tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId()); + + TjReservation reservation = tjReservationService.getById(order.getReservationId()); + if(null !=reservation){ + reservation.setIsExpire(2); + tjReservationService.updateById(reservation); + transitionService.updateTbTransitionByTjNum(tjNumber); + } + e.printStackTrace(); + } } - PDFDocumentUtil.makeUserInfoTable(document, (String) userInfo.get("tjname"), (String) userInfo.get("sex") - , (String) userInfo.get("tjh"), (String) userInfo.get("lxdh"), (String) userInfo.get("tjname"), time); - PDFDocumentUtil.makeTjInfo(document, djdInfos); - // 澶氭潯鍒欐崲椤� - if (i + 1 < tjNumbers.size()) { - document.newPage(); - } - } catch (DocumentException | IOException e) { + +// } + document.close(); + ByteArrayOutputStream outputStream = (ByteArrayOutputStream) map.get("stream"); + String encodeToString = java.util.Base64.getEncoder().encodeToString(outputStream.toByteArray()); + return AjaxResult.success().put("file", encodeToString); + } catch (IOException | DocumentException e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); e.printStackTrace(); } + return AjaxResult.success("鎿嶄綔鎴愬姛"); } - document.close(); - ByteArrayOutputStream outputStream = (ByteArrayOutputStream) map.get("stream"); - String encodeToString = java.util.Base64.getEncoder().encodeToString(outputStream.toByteArray()); - return AjaxResult.success().put("file", encodeToString); - } catch (IOException | DocumentException e) { - e.printStackTrace(); + if (!errTjh.isEmpty()){ + return AjaxResult.success("浠ヤ笂浜哄憳绛惧埌澶辫触",errTjh); + } + return AjaxResult.success(); } - return AjaxResult.success("鎿嶄綔鎴愬姛"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); } - private void getAjaxResults(String cusIdcard) { +// @Transactional + public void getAjaxResults(String cusIdcard) { if (!"".equals(cusIdcard) && cusIdcard != null) { //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); @@ -1750,25 +1790,13 @@ DynamicDataSourceContextHolder.clearDataSourceType(); } - private AjaxResult getAjaxResult(Long userId, SysUser sysUser, String tjCategory) throws IOException { +// @Transactional + public AjaxResult getAjaxResult(Long userId, SysUser sysUser, String tjCategory,String tjh) throws IOException { LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); wq.eq(TjCustomer::getCusId, userId); TjCustomer tjCustomer = tjCustomerService.getOne(wq); if (tjCustomer == null) return AjaxResult.error("璇ュ鎴锋湭鐧昏鎴栦笉瀛樺湪"); - -// LambdaQueryWrapper<TjOrder> wqq = new LambdaQueryWrapper<>(); -// wqq.eq(TjOrder::getUserId, userId); -// wqq.eq(TjOrder::getCheckStatus, 0); -// wqq.isNull(TjOrder::getFinishTime); -// if (!tjCustomer.getCardId().equals("0")) { -// wqq.eq(TjOrder::getCardId, tjCustomer.getCardId()); -// } -// TjOrder order = tjOrderService.getOne(wqq); -// if (null != order) { -// transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(), tjCustomer.getCardId()); -// return AjaxResult.error("涓嶅彲閲嶅鐧昏"); -// } TjOrder tjOrder = new TjOrder(); Date date = new Date(); tjOrder.setCreateTime(date); @@ -1785,16 +1813,17 @@ if (tjReservation != null) { tjOrder.setReservationId(tjReservation.getId()); mallOrder = mallOrderService.getOne(new LambdaQueryWrapper<MallOrder>().eq(MallOrder::getReservationId, tjReservation.getId())); - if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { - return AjaxResult.error("鏈埌棰勭害鏃堕棿"); - } - if (DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { - tjReservation.setIsExpire(1); - tjReservationService.updateById(tjReservation); - return AjaxResult.error("瀵逛笉璧锋偍鐨勯绾﹀凡瓒呮椂璇烽噸鏂伴绾�"); - } +// if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) { +// return AjaxResult.error("鏈埌棰勭害鏃堕棿"); +// } +// if (DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) { +// tjReservation.setIsExpire(1); +// tjReservationService.updateById(tjReservation); +// return AjaxResult.error("瀵逛笉璧锋偍鐨勯绾﹀凡瓒呮椂璇烽噸鏂伴绾�"); +// } if (null != tjReservation.getTeamNo()) tjOrder.setTeamNo(tjReservation.getTeamNo()); if (null != tjReservation.getCompanyId()) tjOrder.setFirmId(tjReservation.getCompanyId()); + if (null != tjReservation.getCompany()) tjOrder.setFirmName(tjReservation.getCompany()); if (null != tjReservation.getDepartment()) tjOrder.setFirmDeptName(tjReservation.getDepartment()); if (null != tjReservation.getJobNo()) tjOrder.setFirmWorkId(tjReservation.getJobNo()); if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId()); @@ -1805,13 +1834,28 @@ } tjReservation.setIsExpire(1); tjReservationService.updateById(tjReservation); + if (null != tjReservation.getTeamNo()) { + tjOrder.setTjType("1"); + } else{ + tjOrder.setTjType("2"); + } + + if (StringUtil.isBlank(tjOrder.getFirmId())) { + tjOrder.setFirmId("0"); + } +// +// tjReservation.setIsExpire(1); +// tjReservationService.updateById(tjReservation); //鐢熸垚浣撴鍙� String tjNumber = (sysUser.getUserName() + new SimpleDateFormat("yyMMddHHmmss").format(new Date())); tjNumber = tjNumber.replaceAll(".{4}$", userId.toString().substring(userId.toString().length() - 4)); - tjOrder.setTjNumber(tjNumber); + tjh = tjh.replaceAll(".{4}$", userId.toString().substring(userId.toString().length() - 4)); + +// tjOrder.setTjNumber(tjNumber); + tjOrder.setTjNumber(tjh); if (null != tjOrder.getPhoto()) { File file = new File(tjOrder.getPhoto()); if (file.isFile()) { @@ -1851,6 +1895,17 @@ tjCustomer.setCusNumber(cusNumber); // BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())).divide(BigDecimal.valueOf(10)); TjFlowingWater tjFlowingWater = new TjFlowingWater(); + tjFlowingWater.setCreateTime(date); + tjFlowingWater.setCreateTime(date); + tjFlowingWater.setUpdateTime(date); + tjFlowingWater.setCreateBy(sysUser.getNickName()); + tjFlowingWater.setUpdateBy(sysUser.getNickName()); + tjFlowingWater.setCopeWith(tbTransitionMapper.sumTbTransitionOrdPriceByTjNum(tjOrder.getTjNumber())); + tjFlowingWater.setPaidIn(tbTransitionMapper.sumTbTransitionNowPriceByTjNum(tjOrder.getTjNumber())); + tjFlowingWater.setDiscount(String.valueOf(10)); + tjFlowingWater.setPayStasus(1L); + tjFlowingWater.setPayType(3L); + tjFlowingWater.setPayStasus(0L); if ("1".equals(tjOrder.getTjType())) { if (tjReservation.getPayType() == 1) { @@ -1899,18 +1954,38 @@ if (tjFlowingWaterService.save(tjFlowingWater)) { tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber())); tjOrderService.updateById(tjOrder); - - } - asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater); + transitionService.updateTbTransitionTjNumByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber()); + tjCustomer.setCardId(tjOrder.getTjNumber()); + tjCustomerService.updateById(tjCustomer); + transitionService.updateCardIdByTjNumAndIdCard(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), tjOrder.getTjNumber()); + tjOrder.setCardId(tjOrder.getTjNumber()); + tjOrderService.updateById(tjOrder); +// asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater); + + if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { + // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 + tjFlowingWater.setPayStasus(1L); + tjOrder.setTjFlowingWater(tjFlowingWater); + newSaveextracted(tjOrder, tjCustomer, BigDecimal.valueOf(10), sysUser, tjReservation, tjFlowingWater); + tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()), + sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber())); + remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString()); + List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber()); + xdPictureService.saveBatch(xdPictureList); + List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); + addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); +// return AjaxResult.success(tjNumber); + } tjCustomer.setCardId("0"); tjCustomerService.updateById(tjCustomer); return AjaxResult.success().put("tjNumber", tjNumber); } } - return AjaxResult.error(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error().put("userId",userId); } @@ -2000,10 +2075,10 @@ transitionService.saveRedisTransitionByPacId(cusId, cardId, pacId); //琛ュ樊浠� - List<Map<String,Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId); - if(null !=cjMaps && !cjMaps.isEmpty()){ + List<Map<String, Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId); + if (null != cjMaps && !cjMaps.isEmpty()) { for (Map<String, Object> cjMap : cjMaps) { - transitionService.buxiangmuchajia(cusId,pacId.toString(),cjMap.get("xmid").toString(),new BigDecimal(cjMap.get("cj").toString())); + transitionService.buxiangmuchajia(cusId, pacId.toString(), cjMap.get("xmid").toString(), new BigDecimal(cjMap.get("cj").toString())); } } @@ -3217,7 +3292,7 @@ for (int i = 0; i < tjNumbers.size(); i++) { String tjNumber = tjNumbers.get(i).getTjNumber(); try { - List<Map<String, String>> djdInfos = tjOrderService.selectDjdInfo(tjNumber); + List<Map<String, Object>> djdInfos = tjOrderService.selectDjdInfo(tjNumber); Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNumber); LocalDateTime tjsj = (LocalDateTime) userInfo.get("tjsj"); DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @@ -3511,7 +3586,7 @@ log.info("閫�璐圭敵璇� 鍏ュ弬 -> {}", JSONUtil.toJsonStr(map)); String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map); log.info("閫�璐圭敵璇� 杩斿洖 -> {}", JSONUtil.toJsonStr(post)); - if(null !=post){ + if (null != post) { JSONObject jsonObject = JSONUtil.parseObj(post); if (jsonObject.getStr("code").equals("200")) { // hisTfWaterId @@ -3701,7 +3776,7 @@ } } } - if(!list.isEmpty()) { + if (!list.isEmpty()) { int i = tjReportService.deleteTjReportByReIds(list.toArray(new Long[]{})); if (i == 0) { return AjaxResult.error("鎾ゅ洖澶辫触锛�"); @@ -3757,14 +3832,14 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("鎿嶄綔澶辫触! 浠ヤ笅椤圭洰宸插瓨鍦�: " + string); } - transitionService.ttsaveTemoTransitionByGroupingId(cusId, cardId, pacId.toString()) ; - //琛ュ樊浠� - List<Map<String,Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId); - if(null !=cjMaps && !cjMaps.isEmpty()){ - for (Map<String, Object> cjMap : cjMaps) { - transitionService.buxiangmuchajia(cusId,pacId.toString(),cjMap.get("xmid").toString(),new BigDecimal(cjMap.get("cj").toString())); - } + transitionService.ttsaveTemoTransitionByGroupingId(cusId, cardId, pacId.toString()); + //琛ュ樊浠� + List<Map<String, Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId); + if (null != cjMaps && !cjMaps.isEmpty()) { + for (Map<String, Object> cjMap : cjMaps) { + transitionService.buxiangmuchajia(cusId, pacId.toString(), cjMap.get("xmid").toString(), new BigDecimal(cjMap.get("cj").toString())); } + } } } @@ -3799,7 +3874,7 @@ // } // } // } - List<TbTransition> list= transitionService.newgetTransitionList(cusId); + List<TbTransition> list = transitionService.newgetTransitionList(cusId); return AjaxResult.success(list); } @@ -3808,30 +3883,30 @@ @Transactional public AjaxResult updateTransitionnewPrice(@RequestBody List<UpdateTransitionnewPriceDto> dtos) { - if(null !=dtos && !dtos.isEmpty()){ + if (null != dtos && !dtos.isEmpty()) { for (UpdateTransitionnewPriceDto dto : dtos) { - LambdaQueryWrapper<TbTransition> wq=new LambdaQueryWrapper<>(); - wq.eq(TbTransition::getCusId,dto.getCusIdCard()); - wq.eq(TbTransition::getParentProId,dto.getParentProId()); + LambdaQueryWrapper<TbTransition> wq = new LambdaQueryWrapper<>(); + wq.eq(TbTransition::getCusId, dto.getCusIdCard()); + wq.eq(TbTransition::getParentProId, dto.getParentProId()); wq.isNull(TbTransition::getTjNum); List<TbTransition> list = transitionService.list(wq); - log.info("淇敼鐨勫鎴疯韩浠借瘉鍙蜂负: "+dto.getCusIdCard()); - log.info("鐖堕」鐩甶d涓�: "+dto.getParentProId()); - log.info("鎶樻墸涓�: "+new BigDecimal(dto.getDiscount())); - if(null !=list && !list.isEmpty()){ - BigDecimal dxzj = transitionService.getTbTransitionPriceAndOrdPrice(dto.getCusIdCard(),dto.getParentProId()); + log.info("淇敼鐨勫鎴疯韩浠借瘉鍙蜂负: " + dto.getCusIdCard()); + log.info("鐖堕」鐩甶d涓�: " + dto.getParentProId()); + log.info("鎶樻墸涓�: " + new BigDecimal(dto.getDiscount())); + if (null != list && !list.isEmpty()) { + BigDecimal dxzj = transitionService.getTbTransitionPriceAndOrdPrice(dto.getCusIdCard(), dto.getParentProId()); for (TbTransition transition : list) { BigDecimal ordPrice = transition.getOrdPrice(); BigDecimal multiply = ordPrice.multiply((new BigDecimal(dto.getDiscount()).divide(BigDecimal.valueOf(10)))); - log.info("鍚庣璁$畻鐨勯噾棰�: "+multiply); + log.info("鍚庣璁$畻鐨勯噾棰�: " + multiply); transition.setNowPrice(multiply); transition.setDiscount(new BigDecimal(dto.getDiscount())); transitionService.updateById(transition); } - if(null !=dto.getYhj() && dto.getYhj().compareTo(BigDecimal.ZERO)>=0){ + if (null != dto.getYhj() && dto.getYhj().compareTo(BigDecimal.ZERO) >= 0) { List<TbTransition> transitionList = list.stream().filter(a -> - transitionService.getTbTransitionPriceAndOrdPrice(dto.getCusIdCard(),dto.getParentProId()).subtract(dto.getYhj()).compareTo(BigDecimal.ZERO) >= 0).collect(Collectors.toList()); - if(!transitionList.isEmpty()){ + transitionService.getTbTransitionPriceAndOrdPrice(dto.getCusIdCard(), dto.getParentProId()).subtract(dto.getYhj()).compareTo(BigDecimal.ZERO) >= 0).collect(Collectors.toList()); + if (!transitionList.isEmpty()) { TbTransition tbTransition = transitionList.get(0); tbTransition.setNowPrice(dxzj); transitionService.updateById(tbTransition); @@ -3844,5 +3919,37 @@ } + + @PostMapping("/huifuyuyuejilu") + @ApiOperation(value = "浣撴璁板綍椤甸潰鎭㈠棰勭害璁板綍鎺ュ彛") + @Transactional + public AjaxResult huifuyuyuejilu(@RequestBody List<String> tjNUms) { + + if (null != tjNUms && !tjNUms.isEmpty()) { + for (String tjNUm : tjNUms) { + TjOrder order = tjOrderService.getOrderByTjNum(tjNUm); + if(null !=order && StringUtil.isNotBlank(order.getReservationId())){ + //杩欓噷鍒犻櫎鐨勬槸杩欎釜浜烘墍鏈夐」鐩寘鎷ˉ褰曢」鐩� + tjOrderService.deleteTjOrderByOrderId(order.getOrderId()); + tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId())); + remarkService.deletedOrderRemarkByTjNum(tjNUm); + tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId())); +// transitionService.deletedTbTransitionByTjNum(tjNum); + tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId()); + + TjReservation reservation = tjReservationService.getById(order.getReservationId()); + if(null !=reservation){ + reservation.setIsExpire(2); + tjReservationService.updateById(reservation); + transitionService.updateTbTransitionByTjNum(tjNUm); + } + + } + } + + return AjaxResult.success(); + } + return AjaxResult.error(); + } } diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java index c3e82e4..b79cc5f 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java @@ -364,7 +364,7 @@ if (list.size() >= 2) { // 杩涜鍚堝苟 List<String> stringList = list.stream().map(TjSampling::getId).collect(Collectors.toList()); - log.info("鎻愬彇id ->{}",stringList); +// log.info("鎻愬彇id ->{}",stringList); for (String s : stringList) { if (tjSamplingService.isMergeItem(s) != 0) { list.removeIf(item -> Objects.equals(item.getId(), s)); diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java b/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java index 7bef253..76d185a 100644 --- a/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java +++ b/ltkj-common/src/main/java/com/ltkj/common/utils/PDFDocumentUtil.java @@ -243,7 +243,7 @@ * @throws DocumentException * @throws IOException */ - public static void makeTjInfo(Document document,List<Map<String ,String>> data) throws DocumentException, IOException { + public static void makeTjInfo(Document document,List<Map<String ,Object>> data) throws DocumentException, IOException { PdfPTable table1 = new PdfPTable(7); table1.setWidthPercentage(100); float[] columnWidths = {1.5f, 3, 3, 6, 1.5f, 3, 3}; diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java index ddb735e..6078b93 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java @@ -76,7 +76,8 @@ public boolean delTbBycusCardIdAndProId(@Param("cdId") String cdId,@Param("proId")String proId); @Update("UPDATE tb_transition a SET "+ - "a.tj_num=null" + + "a.tj_num=null," + + "a.card_id=0" + " WHERE a.tj_num=#{tjNum}") boolean updateTbTransitionByTjNum(String tjNum); @@ -376,4 +377,10 @@ @Select("SELECT SUM(a.ord_price) FROM tb_transition a WHERE a.tj_num=#{tjNum} AND a.parent_pro_id=#{proId}") BigDecimal getTbTransitionOrdPriceByTjNumAndParentId(@Param("tjNum")String tjNum,@Param("proId")String proId); + + @Select("SELECT SUM(a.ord_price) FROM tb_transition a WHERE a.tj_num=#{tjNum}") + BigDecimal sumTbTransitionOrdPriceByTjNum(@Param("tjNum")String tjNum); + + @Select("SELECT SUM(a.now_price) FROM tb_transition a WHERE a.tj_num=#{tjNum}") + BigDecimal sumTbTransitionNowPriceByTjNum(@Param("tjNum")String tjNum); } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java index 51dcd8e..e9e0070 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java @@ -221,21 +221,67 @@ * @param tjNumber 浣撴鍗曞彿 * @return */ - @Select("SELECT @num := @num + 1 AS xh, d.dept_name ksmc, d.official_web ksdz, e.tjxm FROM sys_dept d JOIN ( select aa.ksmc,GROUP_CONCAT( DISTINCT aa.pro_name ORDER BY aa.pro_name DESC SEPARATOR ';' ) tjxm from ( SELECT (case when f.ksmc in ('涓存瀹�','鍖栭獙瀹�','','') or c.pro_name like '%娴嬪畾%' then '妫�楠岀' when c.pro_name like '%蹇冪數鍥�%' then '蹇冪數鍥惧' when f.ksmc='x鍏夊' or c.pro_name like '%X绾挎憚褰�%' then '鏀惧皠绉�' when c.pro_name like '%鑹茶%' then '鐪肩' \t\t\t\twhen c.pro_name like '%瓒�%' or c.pro_name like '%澶氭櫘鍕�%' then 'B瓒呭' when (replace(f.ksmc,' ','')='' or f.ksmc is null) and c.dept_id<>'100' then d.dept_name when c.pro_name like '%CT%' then 'CT瀹�' else '浣撴涓績' end ) ksmc, c.pro_name FROM tj_order a JOIN tj_order_detail b ON b.order_id = a.order_id JOIN tj_project c ON c.pro_id = b.pro_id left join his_mxfyxm e on e.mxfyxmbm=c.his_xmbm left join ltkj_his_dept f on f.ksbm = CONCAT('00',(case when e.hsks is null then '' else e.hsks end)) join sys_dept d on d.dept_id=c.dept_id WHERE a.tj_number = #{tjNumber} ) aa GROUP BY ksmc ) e ON e.ksmc = d.dept_name , (SELECT @num := 0) a WHERE d.parent_id = '100' ORDER BY xh") - List<Map<String ,String >> selectDjdInfo(@Param("tjNumber")String tjNumber); +// @Select("SELECT @num := @num + 1 AS xh, d.dept_name ksmc, d.official_web ksdz, e.tjxm FROM sys_dept d JOIN " + +// "( select aa.ksmc,GROUP_CONCAT( DISTINCT aa.pro_name ORDER BY aa.pro_name DESC SEPARATOR ';' ) tjxm from " + +// "( SELECT (case when f.ksmc in ('涓存瀹�','鍖栭獙瀹�','','') or c.pro_name like '%娴嬪畾%' then '妫�楠岀' " + +// " when c.pro_name like '%蹇冪數鍥�%' then '蹇冪數鍥惧' when f.ksmc='x鍏夊' or c.pro_name like '%X绾挎憚褰�%' then '鏀惧皠绉�' when c.pro_name like '%鑹茶%' then '鐪肩' " + +// "\t\t\t\twhen c.pro_name like '%瓒�%' or c.pro_name like '%澶氭櫘鍕�%' then 'B瓒呭' when (replace(f.ksmc,' ','')='' or f.ksmc is null) and c.dept_id<>'100' then " + +// " d.dept_name when c.pro_name like '%CT%' then 'CT瀹�' else '浣撴涓績' end ) ksmc, c.pro_name FROM tj_order a JOIN tj_order_detail b ON b.order_id = a.order_id " + +// "JOIN tj_project c ON c.pro_id = b.pro_id left join his_mxfyxm e on e.mxfyxmbm=c.his_xmbm left join ltkj_his_dept f on f.ksbm = CONCAT('00'," + +// "(case when e.hsks is null then '' else e.hsks end)) join sys_dept d on d.dept_id=c.dept_id WHERE a.tj_number = #{tjNumber} ) aa GROUP BY ksmc ) e ON e.ksmc = " + +// "d.dept_name , (SELECT @num := 0) a WHERE d.parent_id = '100' ORDER BY xh") +// List<Map<String ,String >> selectDjdInfo(@Param("tjNumber")String tjNumber); + + + @Select("SELECT \n" + + " '1' AS xh, " + + " REPLACE(d.dept_name, '闂ㄨ瘖', '') AS ksmc,\n" + + " d.official_web AS ksdz,\n" + + " e.tjxm,\n" + + " e.tjjg\n" + + "FROM sys_dept d\n" + + "JOIN (\n" + + " SELECT\n" + + " c.dept_id,\n" + + " GROUP_CONCAT(DISTINCT c1.pro_name ORDER BY c1.pro_name DESC SEPARATOR ';') AS tjxm,\n" + + " SUM(b.ord_price) AS tjjg\n" + + " FROM tb_transition b\n" + + " JOIN tj_project c ON c.pro_id = b.parent_pro_id\n" + + " JOIN tj_project c1 ON c1.pro_id = b.parent_pro_id\n" + + " WHERE trim(b.tj_num) = #{tjNumber} \n" + + " AND c.pro_parent_id = 0\n" + + " AND c1.pro_name NOT IN ('涓讳换鍖诲笀璇婃煡', '(tj)浣撴璐�(鐗╃悊妫�鏌�)')\n" + + " AND c1.pro_name NOT LIKE '%涓讳换鍖诲笀璇婃煡%'\n" + + " GROUP BY c.dept_id\n" + + ") e ON e.dept_id = d.dept_id\n" + + "ORDER BY d.djd_num") + List<Map<String ,Object >> selectDjdInfo(@Param("tjNumber")String tjNumber); /** * 鏌ヨ瀵兼鍗曠敤鎴蜂俊鎭� * @param tjNumber * @return */ - @Select("select c.tj_number tjh,a.cus_name tjname, b.dict_label sex,a.create_time tjsj,ifnull(d.cn_name,'') dwmc,a.cus_phone lxdh\n" + + @Select("select c.tj_number tjh,a.cus_name tjname, b.dict_label sex,c.create_time tjsj,ifnull(c.firm_name,'') dwmc,a.cus_phone lxdh,ifnull(c.firm_dept_name,'') dwbm,\n" + + "ifnull((select dict_label from sys_dict_data where dict_type ='dict_team' and status=0 and dict_value=c.tj_type),'') tjlx,\n" + + "( (\n" + + " SELECT\n" + + " sum( b1.ord_price ) \n" + + " FROM\n" + + " tb_transition b1\n" + + " JOIN tj_project c1 ON c1.pro_id = b1.parent_pro_id \n" + + " AND c1.pro_parent_id = 0 \n" + + " WHERE\n" + + " b1.tj_num = c.tj_number \n" + + " )*(IFNULL(c.discount,10)/10)) tjze,c.card_id ,CONCAT(cast(a.age as char),e.dict_label) nl,(SELECT tb.pac_name FROM tb_transition tb" + + " WHERE tb.tj_num = c.tj_number GROUP BY tb.pac_id)tcmc,a.his_jzkh\n" + "from tj_order c \n" + - " join tj_customer a on a.cus_id= c.user_id \n" + - " join (select dict_value,dict_label from sys_dict_data where dict_type='sys_user_sex') b on b.dict_value = a.cus_sex\n" + - " left join dict_comp d on d.drug_manufacturer_id = c.firm_id\n" + - "where c.tj_number=#{tjNumber}") - Map<String ,Object > selectDjdUserInfo(@Param("tjNumber")String tjNumber); + "\tjoin tj_customer a on a.cus_id= c.user_id \n" + + " join (select dict_value,dict_label from sys_dict_data where dict_type='sys_user_sex') b on b.dict_value = a.cus_sex\n" + + "\tleft join dict_comp d on d.drug_manufacturer_id = c.firm_id\n" + + "join (select dict_label,dict_value from sys_dict_data where dict_type='dict_ageunit') e on e.dict_value = a.age_unit\n" + + "where trim(c.tj_number)=#{tjNumber}") + Map<String ,Object > selectDjdUserInfo(@Param("tjNumber") String tjNumber); @Select("SELECT a.sqdh FROM ltkj_jianchajianyan_tree a WHERE a.card_id=#{cardId} AND a.type='妫�鏌�' GROUP BY a.sqdh") diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java index 817fe9e..6d78e52 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java @@ -138,7 +138,7 @@ String isPayByTjNum(String orderId); - List<Map<String ,String >> selectDjdInfo(String tjNumber); + List<Map<String ,Object >> selectDjdInfo(String tjNumber); Map<String ,Object > selectDjdUserInfo(String tjNumber); diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java index 349778c..04bc44d 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java @@ -11,6 +11,7 @@ import com.ltkj.hosp.service.ITjOrderService; import com.ltkj.hosp.service.ITjPackageService; import com.ltkj.hosp.vodomain.LineChartsVo; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ltkj.hosp.mapper.TjOrderMapper; @@ -23,6 +24,7 @@ * @date 2022-11-21 */ @Service +@Slf4j public class TjOrderServiceImpl extends ServiceImpl<TjOrderMapper, TjOrder> implements ITjOrderService { @Autowired private TjOrderMapper tjOrderMapper; @@ -277,12 +279,14 @@ } @Override - public List<Map<String, String>> selectDjdInfo(String tjNumber) { + public List<Map<String, Object>> selectDjdInfo(String tjNumber) { + log.info("浼犻�掕繘鏉ョ殑浣撴鍙蜂负: "+tjNumber); return tjOrderMapper.selectDjdInfo(tjNumber); } @Override public Map<String, Object> selectDjdUserInfo(String tjNumber) { + log.info("浼犻�掕繘鏉ョ殑浣撴鍙蜂负: "+tjNumber); return tjOrderMapper.selectDjdUserInfo(tjNumber); } -- Gitblit v1.8.0