From 73a816fd2b1e29c25d615c85ce34b12b55c16ccf Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 20 一月 2025 13:41:45 +0800 Subject: [PATCH] zjh20250120 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | 256 ++++++++++++++++++++++++++++---------------------- 1 files changed, 144 insertions(+), 112 deletions(-) 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 63c41d8..c5f281b 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 @@ -498,13 +498,9 @@ order.setIdType(tjCustomer.getIdType()); order.setAgeUnit(tjCustomer.getAgeUnit()); order.setTjCount(String.valueOf(tjCustomer.getCusNumber())); - if (null != tjCustomer.getCompName()) { - order.setDictCompName(tjCustomer.getCompName()); - } else { - String firmId = order.getFirmId(); - if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) { - order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName()); - } + String firmName = order.getFirmName(); + if (StringUtil.isNotBlank(firmName)) { + order.setDictCompName(firmName); } if (null != order.getPacId()) { if (null != tjPackageService.getById(order.getPacId())) { @@ -1021,8 +1017,8 @@ 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.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()); @@ -1039,16 +1035,9 @@ tjOrder.setTjType("2"); } } - - if (null != tjCustomer.getCompName()) { - tjOrder.setFirmName(tjCustomer.getCompName()); - } - if (null != tjCustomer.getDictCompId()) { - tjOrder.setFirmId(String.valueOf(tjCustomer.getDictCompId())); - } else { + if(StringUtil.isBlank(tjOrder.getFirmId())){ tjOrder.setFirmId("0"); } - if (null != tjOrder.getPhoto()) { File file = new File(tjOrder.getPhoto()); @@ -1096,11 +1085,21 @@ @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED) public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) { - //鐢熸垚浣撴鍙� - String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date())); - tjOrder.setTjNumber(tjNumber); - BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())); + //鑾峰彇鎷兼帴鍓嶇紑 + String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix"); + + //鐢熸垚浣撴鍙� +// String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date())); +// if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber; + + + String tjNumber = (SecurityUtils.getUsername()+IdUtils.getTjNumber()); + if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber; + tjOrder.setTjNumber(tjNumber); + + + BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())); tjOrder.setDiscount(discount.toString()); if (tjOrderService.save(tjOrder)) { //淇濆瓨鏀惰揣鍦板潃 @@ -1235,8 +1234,8 @@ 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); +// List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); +// addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); } else { newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); @@ -1353,75 +1352,10 @@ return AjaxResult.success(tjNumber); }else { newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); + AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); + if (error != null) return error; // List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); // addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); - } - - String s = configService.selectConfigByKey("is_request_common_his_api"); - if (null != s && s.equals("Y")) { - String apiUrl = configService.selectConfigByKey("common_api_url"); - String hospbm = configService.selectConfigByKey("common_api_service_hospbm"); - HashMap<String, Object> map = new HashMap<>(); - map.put("pationId", tjCustomer.getPationId()); - map.put("cardId", tjCustomer.getHisJzkh()); - map.put("tjNum", tjFlowingWater.getTjSerialNumber()); - map.put("kaiDanKs", "7805"); - // 鏀惰垂鏍囧織 1寰呭敭璐� 2寰呴��璐� - map.put("shouTuiStatus", "1"); - - JSONArray array = JSONUtil.createArray(); - LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(TbTransition::getTjNum, tjOrder.getTjNumber()); - wrapper.eq(TbTransition::getCusId, tjCustomer.getCusIdcard()); - wrapper.eq(TbTransition::getCardId, tjCustomer.getCardId()); - wrapper.isNotNull(TbTransition::getOrdPrice); - wrapper.gt(TbTransition::getOrdPrice, 0); - - List<TbTransition> list = tbTransitionService.list(wrapper); - for (TbTransition transition : list) { - LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>(); - wrapper1.eq(TjProject::getProId, transition.getProId()); - TjProject project = projectService.getOne(wrapper1); - - LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>(); - wrapper2.eq(SysDept::getDeptId, project.getDeptId()); - SysDept dept = sysDeptService.getOne(wrapper2); - - JSONObject obj = JSONUtil.createObj(); - Integer sl = project.getSl(); - BigDecimal danjia = transition.getOrdPrice(); - BigDecimal allPrice = danjia.multiply(new BigDecimal(sl)); - obj.putOpt("danJia", danjia); - obj.putOpt("jieSuanJe", allPrice); - obj.putOpt("shuliang", sl); - obj.putOpt("zhiXingKs", dept.getDeptId()); - obj.putOpt("zhiXingKsMc", dept.getDeptName()); - obj.putOpt("shouFeiXmId", project.getHisXmbm()); - obj.putOpt("shouFeiXmMc", project.getHisXmmc()); - -// obj.putOpt("zhiXingKs","7805"); -// obj.putOpt("zhiXingKsMc","浣撴绉�"); -// obj.putOpt("shouFeiXmId","4735346"); -// obj.putOpt("shouFeiXmMc","浣撴璐�"); - array.add(obj); - } - map.put("feiYongInfoList", array); - - String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map); - JSONObject object = JSONUtil.parseObj(post); - if (object.getInt("code") == 200) { - JSONObject data = object.getJSONObject("data"); - tjFlowingWater.setHisWaterId(data.getStr("feiYongId")); - JSONArray mxList = data.getJSONArray("mxList"); - if (mxList != null && !mxList.isEmpty()) { - List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class); - tjFlowingWaterHisService.saveBatch(his); - } - tjFlowingWaterService.updateById(tjFlowingWater); - } else { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error(); - } } return AjaxResult.success(tjNumber); @@ -1432,8 +1366,80 @@ return AjaxResult.error(); } + private AjaxResult isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) { + String s = configService.selectConfigByKey("is_request_common_his_api"); + if (null != s && s.equals("Y")) { + String apiUrl = configService.selectConfigByKey("common_api_url"); + String hospbm = configService.selectConfigByKey("common_api_service_hospbm"); + HashMap<String, Object> map = new HashMap<>(); + map.put("pationId", tjCustomer.getPationId()); + map.put("cardId", tjCustomer.getHisJzkh()); + map.put("tjNum", tjFlowingWater.getTjSerialNumber()); + map.put("kaiDanKs", "7805"); + // 鏀惰垂鏍囧織 1寰呭敭璐� 2寰呴��璐� + map.put("shouTuiStatus", "1"); + + JSONArray array = JSONUtil.createArray(); + LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TbTransition::getTjNum, tjOrder.getTjNumber()); + wrapper.eq(TbTransition::getCusId, tjCustomer.getCusIdcard()); + wrapper.eq(TbTransition::getCardId, tjCustomer.getCardId()); + wrapper.isNotNull(TbTransition::getOrdPrice); + wrapper.gt(TbTransition::getOrdPrice, 0); + + List<TbTransition> list = tbTransitionService.list(wrapper); + for (TbTransition transition : list) { + LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(TjProject::getProId, transition.getProId()); + TjProject project = projectService.getOne(wrapper1); + + LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>(); + wrapper2.eq(SysDept::getDeptId, project.getDeptId()); + SysDept dept = sysDeptService.getOne(wrapper2); + + JSONObject obj = JSONUtil.createObj(); + Integer sl = project.getSl(); + BigDecimal danjia = transition.getOrdPrice(); + BigDecimal allPrice = danjia.multiply(new BigDecimal(sl)); + obj.putOpt("danJia", danjia); + obj.putOpt("jieSuanJe", allPrice); + obj.putOpt("shuliang", sl); + obj.putOpt("zhiXingKs", dept.getDeptId()); + obj.putOpt("zhiXingKsMc", dept.getDeptName()); + obj.putOpt("shouFeiXmId", project.getHisXmbm()); + obj.putOpt("shouFeiXmMc", project.getHisXmmc()); + +// obj.putOpt("zhiXingKs","7805"); +// obj.putOpt("zhiXingKsMc","浣撴绉�"); +// obj.putOpt("shouFeiXmId","4735346"); +// obj.putOpt("shouFeiXmMc","浣撴璐�"); + array.add(obj); + } + map.put("feiYongInfoList", array); + + String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map); + JSONObject object = JSONUtil.parseObj(post); + if (object.getInt("code") == 200) { + JSONObject data = object.getJSONObject("data"); + tjFlowingWater.setHisWaterId(data.getStr("feiYongId")); + JSONArray mxList = data.getJSONArray("mxList"); + if (mxList != null && !mxList.isEmpty()) { + List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class); + tjFlowingWaterHisService.saveBatch(his); + } + tjFlowingWaterService.updateById(tjFlowingWater); + } else { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + } + return null; + } + public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser, String jxbz) { String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix"); + String config = configService.selectConfigByKey("sfkqdyhis"); + Boolean lisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order); if (null != detailList && detailList1) { Date date = new Date(); String format = DateUtil.format(date, "yyMMddHHmmssSSS"); @@ -1447,14 +1453,18 @@ sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix)); sampling.setSpecimenTypeCode(project.getSpecimenType()); sampling.setSpecimenType(dictLabel); - sampling.setJyxmdm(project.getProId().toString()); + if (config.equals("Y") && lisAndPacsRegister) + sampling.setJyxmdm(project.getLisXmbm()); + else sampling.setJyxmdm(project.getProId().toString()); } else { TjProject project1 = projectService.getById(proParentId); sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix)); sampling.setSpecimenTypeCode(project1.getSpecimenType()); sampling.setSpecimenType(dictLabel); - sampling.setJyxmdm(project.getProId().toString()); + if (config.equals("Y") && lisAndPacsRegister) + sampling.setJyxmdm(project1.getLisXmbm()); + else sampling.setJyxmdm(project1.getProId().toString()); } sampling.setSamplingNumber(format); @@ -1477,7 +1487,6 @@ samplingService.save(sampling); } } - String config = configService.selectConfigByKey("sfkqdyhis"); if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) { AjaxResult ajaxResult = lisApiMethod.getJyFlHb(); if (ajaxResult.get("code").toString().equals("200")) { @@ -3040,9 +3049,11 @@ // } if (null != order.getFinishTime()) return AjaxResult.error("璇ヤ汉鍛樺凡绛剧,涓嶅彲鎾ら攢!!!"); + Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order); + String s = configService.selectConfigByKey("is_request_common_his_api"); // if (null != s && s.equals("Y") && "2".equals(order.getTjType())) { - if (null != s && s.equals("Y")) { + if (null != s && s.equals("Y") && !useLisAndPacsRegister) { String apiUrl = configService.selectConfigByKey("common_api_url"); String hospbm = configService.selectConfigByKey("common_api_service_hospbm"); @@ -3391,8 +3402,9 @@ } } String s = configService.selectConfigByKey("is_request_common_his_api"); + Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order); // if (null != s && s.equals("Y") && "2".equals(order.getTjType())) { - if (null != s && s.equals("Y")) { + if (null != s && s.equals("Y") && !useLisAndPacsRegister) { ArrayList<TjFlowingWater> weizhifu = new ArrayList<>(); ArrayList<TjFlowingWater> yizhifu = new ArrayList<>(); for (String bldh : dto.getBldhs()) { @@ -3492,24 +3504,26 @@ log.info("閫�璐圭敵璇� 鍏ュ弬 -> {}", JSONUtil.toJsonStr(map)); String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map); log.info("閫�璐圭敵璇� 杩斿洖 -> {}", JSONUtil.toJsonStr(post)); - JSONObject jsonObject = JSONUtil.parseObj(post); - if (jsonObject.getStr("code").equals("200")) { - // hisTfWaterId - String tfid = jsonObject.getJSONObject("data").getStr("feiYongId"); - water.setHisTfWaterId(tfid); - tjFlowingWaterService.updateById(water); - if (isDelete) { - for (TjFlowingWater water1 : yizhifu) { - String bldh1 = water1.getJxbz(); - remarkService.deleteTjOrderDetailByjxbz(bldh1); - tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh1); - tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh1); - transitionService.deleteTjOrderDetailByjxbz(bldh1); - blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh1)); - tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh1); + if(null !=post){ + JSONObject jsonObject = JSONUtil.parseObj(post); + if (jsonObject.getStr("code").equals("200")) { + // hisTfWaterId + String tfid = jsonObject.getJSONObject("data").getStr("feiYongId"); + water.setHisTfWaterId(tfid); + tjFlowingWaterService.updateById(water); + if (isDelete) { + for (TjFlowingWater water1 : yizhifu) { + String bldh1 = water1.getJxbz(); + remarkService.deleteTjOrderDetailByjxbz(bldh1); + tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh1); + tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh1); + transitionService.deleteTjOrderDetailByjxbz(bldh1); + blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh1)); + tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh1); + } } - } - } else return AjaxResult.error(); + } else return AjaxResult.error(); + } } } return null; @@ -3736,6 +3750,14 @@ } 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())); + } + } + } } @@ -3779,6 +3801,7 @@ 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)))); @@ -3787,6 +3810,15 @@ transition.setDiscount(new BigDecimal(dto.getDiscount())); transitionService.updateById(transition); } + 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()){ + TbTransition tbTransition = transitionList.get(0); + tbTransition.setNowPrice(dxzj); + transitionService.updateById(tbTransition); + } + } } } } -- Gitblit v1.8.0