From 971162978842f8cf87d34f99da8c529e2e945da8 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期二, 15 四月 2025 08:46:57 +0800 Subject: [PATCH] zjh20250415 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java | 576 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 291 insertions(+), 285 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 0004245..82e0ab3 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 @@ -2,31 +2,24 @@ import java.io.*; import java.math.BigDecimal; -import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; -import java.time.OffsetTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.List; import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; -import java.util.stream.Stream; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.codec.Base64; import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.crypto.symmetric.DES; import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; @@ -34,10 +27,7 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.fasterxml.jackson.databind.BeanProperty; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.ltkj.common.annotation.RepeatSubmit; @@ -54,12 +44,10 @@ import com.ltkj.hosp.dto.QianDaoDto; import com.ltkj.hosp.dto.TjProBlDto; 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; import com.ltkj.hosp.service.*; import com.ltkj.hosp.sqlDomain.LtkjMiddleDetail; import com.ltkj.hosp.sqlDomain.LtkjMiddleHead; @@ -76,24 +64,19 @@ import com.ltkj.mall.service.IMallOrderService; import com.ltkj.system.domain.TjDjdDyjl; import com.ltkj.system.service.*; +import com.ltkj.hosp.idutil.IdUtils; import com.ltkj.web.controller.his.*; import com.ltkj.web.controller.lis.LisApiMethod; import com.ltkj.web.controller.pacs.PacsApiMethodService; -import com.ltkj.web.controller.service.TjSysAsyncServiceImpl; import com.ltkj.web.wxUtils.HttpClientUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.time.DateFormatUtils; -import org.aspectj.weaver.ast.Var; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.http.HttpRequest; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -1086,6 +1069,7 @@ return result; } }catch (Exception e){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error(String.valueOf(e)); } finally { @@ -1094,7 +1078,8 @@ return AjaxResult.error(); } - @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED) +// @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED) + @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) { //鑾峰彇鎷兼帴鍓嶇紑 @@ -1107,10 +1092,38 @@ //鐢熸垚浣撴鍙� // String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date())); // if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber; +// String tjNumber = (SecurityUtils.getUsername() + idUtils.getTjNumber()); +// String tjNumber = idUtils.getTjNumber(); + String tjNumber = null; + int a =0; + while (tjNumber ==null){ + if(a>3){ + throw new RuntimeException("鍓嶆柟鎷ユ尋,璇风◢绛�!!!"); + } + try { + String newTjNumberRedisLockAndMysql = idUtils.getNewTjNumberRedisLockAndMysql(); + if (StringUtil.isNotBlank(makeLisTmhPrefix)){ + String tjh= makeLisTmhPrefix + newTjNumberRedisLockAndMysql; + int countByTjNum = tjOrderService.getOrderCountByTjNum(tjh); + if(countByTjNum==0){ + tjNumber=tjh; + } + }else { + int countByTjNum = tjOrderService.getOrderCountByTjNum(newTjNumberRedisLockAndMysql); + if(countByTjNum==0){ + tjNumber=newTjNumberRedisLockAndMysql; + } + } + } catch (Exception e) { + log.error(e.getMessage()); + }finally { + a++; + } + } - String tjNumber = (SecurityUtils.getUsername() + idUtils.getTjNumber()); - if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber; + if(StringUtil.isBlank(tjNumber)) return AjaxResult.error("鐧昏澶辫触 閲嶆柊鎿嶄綔"); + tjOrder.setTjNumber(tjNumber); @@ -1223,7 +1236,8 @@ hisApiMethod.ZfHisApiMethod(jzh.toString()); } log.info("璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId()); - return AjaxResult.error("鎸傚彿澶辫触!" + result.get("msg").toString()); +// return AjaxResult.error("鎸傚彿澶辫触!" + result.get("msg").toString()); + throw new IllegalStateException("鎸傚彿澶辫触!" + result.get("msg").toString()); } log.info("璇ョ櫥璁颁汉鐨刪is灏辫瘖鍙锋槸: " + tjOrder.getCardId()); @@ -1238,30 +1252,35 @@ newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); }*/ // 鏌ヨ 瀵规帴Lis銆丳acs鐢宠濡傛灉绫诲瀷鍖呭惈鍦ㄩ厤缃唴鍒欎娇鐢ㄥ鎺is銆乸acs - if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { - log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ヤ綋妫�浜哄憳涓嶆敹璐�:"+tjOrder.getTjNumber()); - // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 - tjFlowingWater.setPayStasus(1L); - newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); - AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result); - if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult; - 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); - log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ユ柟娉曟墽琛屽畬姣�"); - } else { - log.info("璋冪敤his寮�鍚� 杩涘叆鏀惰垂鏂规硶 璇ヤ綋妫�浜哄憳涓嶆敹璐�:"+tjOrder.getTjNumber()); - newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); - List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); - addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); - String isUseMx = configService.selectConfigByKey("jcxhis_is_use_mx"); - if (isUseMx.equalsIgnoreCase("Y")) - hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId()); - else hisApiMethod.tijianshenqingJinchuanNew(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId()); + try { + if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { + log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ヤ綋妫�浜哄憳涓嶆敹璐�:"+tjOrder.getTjNumber()); + // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 + tjFlowingWater.setPayStasus(1L); + newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); + AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result); + if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult; + 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); + log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ユ柟娉曟墽琛屽畬姣�"); + } else { + log.info("璋冪敤his寮�鍚� 杩涘叆鏀惰垂鏂规硶 璇ヤ綋妫�浜哄憳涓嶆敹璐�:"+tjOrder.getTjNumber()); + newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); + List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); + addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); + String isUseMx = configService.selectConfigByKey("jcxhis_is_use_mx"); + if (isUseMx.equalsIgnoreCase("Y")) + hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId()); + else hisApiMethod.tijianshenqingJinchuanNew(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId()); + } + } catch (Exception e) { + log.error(e.getMessage()); + throw new IllegalStateException(); } return AjaxResult.success(tjNumber); } else { @@ -1360,24 +1379,36 @@ log.info("绛惧埌鐧昏鎺ュ彛璇ヤ汉鍛�: "+tjOrder.getTjNumber()+" 鐨勪綋妫�绫诲瀷鏄�:"+tjOrder.getTjType()); if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { - log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏杩涘叆鏈敹璐规柟娉�"); - // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 - tjFlowingWater.setPayStasus(1L); - newSaveextracted(tjOrder, tjCustomer, discount, 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()); - log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏:閲囨牱鏁版嵁鏌ヨ涓暟"+detailList.size()); - addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); - return AjaxResult.success(tjNumber); + try { + log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏杩涘叆鏈敹璐规柟娉�"); + // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 + tjFlowingWater.setPayStasus(1L); + newSaveextracted(tjOrder, tjCustomer, discount, 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()); + log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏:閲囨牱鏁版嵁鏌ヨ涓暟"+detailList.size()); + addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); + return AjaxResult.success(tjNumber); + } catch (Exception e) { + log.error(e.getMessage()); + throw new IllegalStateException(e); + } } else { - log.info(tjOrder.getTjNumber()+"else绛惧埌鐧昏杩涘叆鏀惰垂鏂规硶"); - newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); - AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); - if (error != null) return error; + try { + log.info(tjOrder.getTjNumber()+"else绛惧埌鐧昏杩涘叆鏀惰垂鏂规硶"); + newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); + isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); + } catch (Exception e) { +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("processOrderWithTransaction 鏂规硶寮傚父"+e.getMessage()); + throw new RuntimeException("璋冪敤鍏叡鏂规硶澶辫触 寮哄埗瑙﹀彂鍥炴粴"); +// return AjaxResult.error(); + } +// if (error != null) return error; // List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId()); // addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); } @@ -1386,11 +1417,12 @@ // pacsApiMethodService.OrderAdd(tjCustomer,tjOrder); // return AjaxResult.success(tjNumber); } - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + throw new RuntimeException("浣撴璁板綍淇濆瓨澶辫触 寮哄埗瑙﹀彂鍥炴粴"); } - private AjaxResult isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) { + @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 + public void 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"); @@ -1452,95 +1484,104 @@ } tjFlowingWaterService.updateById(tjFlowingWater); } else { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("isRequestCommonHisApi 鏂规硶寮傚父"); + throw new RuntimeException("is_request_common_his_api 寮哄埗瑙﹀彂鍥炴粴"); +// return AjaxResult.error(); } } - return null; +// return null; } + @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 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"); - for (TjOrderDetail detail : detailList) { - TjSampling sampling = new TjSampling(); - if (null == projectService.getById(detail.getProId())) continue; - TjProject project = projectService.getById(detail.getProId()); - Long proParentId = project.getProParentId(); - String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType()); - if (null != proParentId && proParentId == 0) { - sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix)); - sampling.setSpecimenTypeCode(project.getSpecimenType()); - sampling.setSpecimenType(dictLabel); - 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); - if (config.equals("Y") && lisAndPacsRegister) - sampling.setJyxmdm(project1.getLisXmbm()); - else sampling.setJyxmdm(project1.getProId().toString()); - - } - sampling.setSamplingNumber(format); - sampling.setTjNum(order.getTjNumber()); - sampling.setCusId(String.valueOf(order.getUserId())); - if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) { - sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName()); - } - sampling.setApplicationTime(date); - sampling.setTjTime(order.getCreateTime()); - sampling.setProId(String.valueOf(detail.getProId())); - sampling.setProName(projectService.getById(detail.getProId()).getProName()); - sampling.setCreateBy(sysUser.getNickName()); - sampling.setCreateTime(date); - sampling.setUpdateBy(sysUser.getNickName()); - sampling.setUpdateTime(date); - sampling.setCreateId(String.valueOf(sysUser.getUserId())); - sampling.setUpdateId(String.valueOf(sysUser.getUserId())); - sampling.setJxbz(jxbz); - samplingService.save(sampling); - } - } - if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) { - AjaxResult ajaxResult = lisApiMethod.getJyFlHb(); - if (ajaxResult.get("code").toString().equals("200")) { - String str = ajaxResult.get("data").toString(); - str = str.replace("=", ":"); - JSONArray array = JSONUtil.parseArray(str); - for (Object o : array) { - JSONObject object = (JSONObject) o; - LisJyflhb lisJyflhb = new LisJyflhb(); - lisJyflhb.setHbhxm(object.getStr("hbhxm")); - lisJyflhb.setFlmc(object.getStr("flmc")); - lisJyflhb.setMc(object.getStr("mc")); - lisJyflhb.setFlbm(object.getStr("flbm")); - LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(LisJyflhb::getFlbm, lisJyflhb.getFlbm()); - LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper); - if (jyflhb == null) { - lisJyflhb.setId(IdUtil.getSnowflake().nextId()); - lisJyflhbService.save(lisJyflhb); + try { + 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"); + for (TjOrderDetail detail : detailList) { + int i = samplingService.isExistProId(order.getTjNumber(), String.valueOf(detail.getProId())); + if(i>0) continue; + TjSampling sampling = new TjSampling(); + if (null == projectService.getById(detail.getProId())) continue; + TjProject project = projectService.getById(detail.getProId()); + Long proParentId = project.getProParentId(); + String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType()); + if (null != proParentId && proParentId == 0) { + sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix)); + sampling.setSpecimenTypeCode(project.getSpecimenType()); + sampling.setSpecimenType(dictLabel); + if (config.equals("Y") && lisAndPacsRegister) + sampling.setJyxmdm(project.getLisXmbm()); + else sampling.setJyxmdm(project.getProId().toString()); } else { - lisJyflhb.setId(jyflhb.getId()); - lisJyflhbService.updateById(lisJyflhb); + TjProject project1 = projectService.getById(proParentId); + sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix)); + + sampling.setSpecimenTypeCode(project1.getSpecimenType()); + sampling.setSpecimenType(dictLabel); + if (config.equals("Y") && lisAndPacsRegister) + sampling.setJyxmdm(project1.getLisXmbm()); + else sampling.setJyxmdm(project1.getProId().toString()); + + } + sampling.setSamplingNumber(format); + sampling.setTjNum(order.getTjNumber()); + sampling.setCusId(String.valueOf(order.getUserId())); + if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) { + sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName()); + } + sampling.setApplicationTime(date); + sampling.setTjTime(order.getCreateTime()); + sampling.setProId(String.valueOf(detail.getProId())); + sampling.setProName(projectService.getById(detail.getProId()).getProName()); + sampling.setCreateBy(sysUser.getNickName()); + sampling.setCreateTime(date); + sampling.setUpdateBy(sysUser.getNickName()); + sampling.setUpdateTime(date); + sampling.setCreateId(String.valueOf(sysUser.getUserId())); + sampling.setUpdateId(String.valueOf(sysUser.getUserId())); + sampling.setJxbz(jxbz); + samplingService.save(sampling); + } + } + if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) { + AjaxResult ajaxResult = lisApiMethod.getJyFlHb(); + if (ajaxResult.get("code").toString().equals("200")) { + String str = ajaxResult.get("data").toString(); + str = str.replace("=", ":"); + JSONArray array = JSONUtil.parseArray(str); + for (Object o : array) { + JSONObject object = (JSONObject) o; + LisJyflhb lisJyflhb = new LisJyflhb(); + lisJyflhb.setHbhxm(object.getStr("hbhxm")); + lisJyflhb.setFlmc(object.getStr("flmc")); + lisJyflhb.setMc(object.getStr("mc")); + lisJyflhb.setFlbm(object.getStr("flbm")); + LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(LisJyflhb::getFlbm, lisJyflhb.getFlbm()); + LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper); + if (jyflhb == null) { + lisJyflhb.setId(IdUtil.getSnowflake().nextId()); + lisJyflhbService.save(lisJyflhb); + } else { + lisJyflhb.setId(jyflhb.getId()); + lisJyflhbService.updateById(lisJyflhb); + } } } - } - } - 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())); + } + } catch (Exception e) { + log.error(e.getMessage()); } } @@ -1578,12 +1619,17 @@ if (null != cusIds && !cusIds.isEmpty()) { ExecutorService threadPools = Executors.newFixedThreadPool(cusIds.size()); for (String cusId : cusIds) { - threadPools.execute(new Runnable() { - @Override - public void run() { - getAjaxResults(cusId); - } - }); + +// threadPools.execute(new Runnable() { +// @Override +// public void run() { + try { + getAjaxResults(cusId); + } catch (Exception e) { + + } +// } +// }); } LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>(); wq.in(TjCustomer::getCusIdcard, cusIds); @@ -1694,7 +1740,7 @@ map.put("errtjh",errTjh); return AjaxResult.success("浠ヤ笂浜哄憳绛惧埌澶辫触",map); } - return AjaxResult.success(); + return AjaxResult.error(); } // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error(); @@ -1773,51 +1819,59 @@ tjReservationService.updateById(tjReservation); // return AjaxResult.error("瀵逛笉璧锋偍鐨勯绾﹀凡瓒呮椂璇烽噸鏂伴绾�"); }*/ - LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); - qw.eq(TjCustomer::getCusIdcard, cusIdcard); - TjCustomer tjCustomer1 = tjCustomerService.getOne(qw); - if (tjCustomer1 != null) { - tjCustomer1.setTjType(tjReservation.getTjType()); - tjCustomer1.setCusName(tjReservation.getName()); - tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex())); - tjCustomer1.setCusBrithday(tjReservation.getBirthday()); - tjCustomer1.setCusPhone(tjReservation.getPhoe()); - tjCustomer1.setCusEmail(tjReservation.getEmail()); - tjCustomer1.setCusAddr(tjReservation.getAddress()); - tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); - tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation())); - tjCustomer1.setIdType(tjReservation.getIdType()); - tjCustomer1.setAge(tjReservation.getAge()); - tjCustomer1.setAgeUnit(tjReservation.getAgeUnit()); - tjCustomer1.setCareer(tjReservation.getCareer()); - tjCustomerService.updateById(tjCustomer1); - } else { - TjCustomer tjCustomer = new TjCustomer(); - tjCustomer.setCusIdcard(tjReservation.getIdCard()); - tjCustomer.setCusName(tjReservation.getName()); - tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex())); - tjCustomer.setCusBrithday(tjReservation.getBirthday()); - tjCustomer.setCusPhone(tjReservation.getPhoe()); - tjCustomer.setCusEmail(tjReservation.getEmail()); - tjCustomer.setCusAddr(tjReservation.getAddress()); - tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); - tjCustomer.setCusNational(String.valueOf(tjReservation.getNation())); - tjCustomer.setIdType(tjReservation.getIdType()); - tjCustomer.setAge(tjReservation.getAge()); - tjCustomer.setAgeUnit(tjReservation.getAgeUnit()); - tjCustomer.setCareer(tjReservation.getCareer()); - tjCustomer.setDwPhone(tjReservation.getDwPhone()); - tjCustomer.setCardId(tjReservation.getCardId()); - tjCustomer.setIndexCard(tjReservation.getIndexCard()); - //鎴彇瀵嗙爜鑷姩鐢熸垚set杩涘幓 - String substring = cusIdcard.substring(cusIdcard.length() - 6); - substring = DigestUtils.md5DigestAsHex(substring.getBytes()); - tjCustomer.setCusPassword(substring); - tjCustomer.setTjType(tjReservation.getTjType()); - tjCustomerService.save(tjCustomer); + try { + LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>(); + qw.eq(TjCustomer::getCusIdcard, cusIdcard); + TjCustomer tjCustomer1 = tjCustomerService.getOne(qw); + if (tjCustomer1 != null) { + tjCustomer1.setTjType(tjReservation.getTjType()); + tjCustomer1.setCusName(tjReservation.getName()); + tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex())); + tjCustomer1.setCusBrithday(tjReservation.getBirthday()); + tjCustomer1.setCusPhone(tjReservation.getPhoe()); + tjCustomer1.setCusEmail(tjReservation.getEmail()); + tjCustomer1.setCusAddr(tjReservation.getAddress()); + tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); + tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation())); + tjCustomer1.setIdType(tjReservation.getIdType()); + tjCustomer1.setAge(tjReservation.getAge()); + tjCustomer1.setAgeUnit(tjReservation.getAgeUnit()); + tjCustomer1.setCareer(tjReservation.getCareer()); + tjCustomerService.updateById(tjCustomer1); + } else { + TjCustomer tjCustomer = new TjCustomer(); + tjCustomer.setCusIdcard(tjReservation.getIdCard()); + tjCustomer.setCusName(tjReservation.getName()); + tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex())); + tjCustomer.setCusBrithday(tjReservation.getBirthday()); + tjCustomer.setCusPhone(tjReservation.getPhoe()); + tjCustomer.setCusEmail(tjReservation.getEmail()); + tjCustomer.setCusAddr(tjReservation.getAddress()); + tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage())); + tjCustomer.setCusNational(String.valueOf(tjReservation.getNation())); + tjCustomer.setIdType(tjReservation.getIdType()); + tjCustomer.setAge(tjReservation.getAge()); + tjCustomer.setAgeUnit(tjReservation.getAgeUnit()); + tjCustomer.setCareer(tjReservation.getCareer()); + tjCustomer.setDwPhone(tjReservation.getDwPhone()); + tjCustomer.setCardId(tjReservation.getCardId()); + tjCustomer.setIndexCard(tjReservation.getIndexCard()); + //鎴彇瀵嗙爜鑷姩鐢熸垚set杩涘幓 + String substring = cusIdcard.substring(cusIdcard.length() - 6); + substring = DigestUtils.md5DigestAsHex(substring.getBytes()); + tjCustomer.setCusPassword(substring); + tjCustomer.setTjType(tjReservation.getTjType()); + tjCustomerService.save(tjCustomer); + } + } catch (Exception e) { + throw new RuntimeException(e); } + }else { + throw new RuntimeException(); } + }else { + throw new RuntimeException(); } } @@ -1909,7 +1963,9 @@ //鑾峰彇鎷兼帴鍓嶇紑 String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix"); - String tjNumber = (sysUser.getUserName() + idUtils.getTjNumber()); +// String tjNumber = (sysUser.getUserName() + idUtils.getTjNumber()); +// String tjNumber = idUtils.getTjNumber(); + String tjNumber = idUtils.getNewTjNumberRedisLockAndMysql(); if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber; @@ -2153,9 +2209,11 @@ transitionService.saveRedisTransitionByPacId(cusId, cardId, pacId); //琛ュ樊浠� - List<Map<String, Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId); + List<Map<String, Object>> cjMaps = transitionService.addTbhuoquxiangmuchajia(pacId.toString(), cusId); if (null != cjMaps && !cjMaps.isEmpty()) { + log.info("璇ュ椁�"+pacId+"涓湁宸环:"+cjMaps.size()+"涓�"); for (Map<String, Object> cjMap : cjMaps) { + log.info("娣诲姞涓存椂琛ㄥ椁愭暟鎹椂鎵�閫夌殑宸环涓�:"+ cjMap.get("cj").toString()); transitionService.buxiangmuchajia(cusId, pacId.toString(), cjMap.get("xmid").toString(), new BigDecimal(cjMap.get("cj").toString())); } } @@ -2845,46 +2903,51 @@ } + @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) { - tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId())); - if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) { - tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), - String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber())); - } else { - tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId()); - } + try { + tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId())); + if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) { + tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), + String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber())); + } else { + tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId()); + } - tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId()); + tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId()); - //娣诲姞remark琛ㄦ暟鎹� - if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) { - remarkService.saveJSYTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId())); + //娣诲姞remark琛ㄦ暟鎹� + if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) { + remarkService.saveJSYTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId())); - } else { - remarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId())); + } else { + remarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId())); - } - //鍒ゆ柇鏄惁浜ら挶 - if ("1".equals(tjOrder.getTjType())) { - if (null != tjReservation && tjReservation.getPayType() == 1) { + } + //鍒ゆ柇鏄惁浜ら挶 + if ("1".equals(tjOrder.getTjType())) { + if (null != tjReservation && tjReservation.getPayType() == 1) { + 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); + } + } + if (tjFlowingWater.getPayStasus() == 1L) { tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber())); + tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn()); + tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith()); + tjFlowingWater.setPayType(4L); + tjFlowingWaterService.updateById(tjFlowingWater); remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString()); + // asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser); List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber()); xdPictureService.saveBatch(xdPictureList); } - } - if (tjFlowingWater.getPayStasus() == 1L) { - tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()), - sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber())); - tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn()); - tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith()); - tjFlowingWater.setPayType(4L); - tjFlowingWaterService.updateById(tjFlowingWater); - remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString()); -// asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser); - List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber()); - xdPictureService.saveBatch(xdPictureList); + } catch (Exception e) { + throw new RuntimeException(e); } } @@ -3070,8 +3133,8 @@ tjReport.setTjNumber(String.valueOf(tjNumber)); tjReport.setPath(urlValue + outputFileName1); String outputPath1 = value + File.separator; - String pdfBinary = getPDFBinary(outputPath1 + outputFileName1); - tjReport.setReport(pdfBinary); +// String pdfBinary = getPDFBinary(outputPath1 + outputFileName1); +// tjReport.setReport(pdfBinary); tjReport.setType("浣撴鎶ュ憡"); tjReport.setPrint("pdf"); tjReportService.save(tjReport); @@ -4005,10 +4068,7 @@ log.info("鍓嶇浼犻�掔殑浠锋牸锛歿}",yhj.toString()); BigDecimal cj = yhj.subtract(dxzj); log.info("璁$畻鐨勫樊浠凤細{}",cj.toString()); -// int index1 = 0; for (TbTransition transition : list) { -// BigDecimal ordPrice = transition.getOrdPrice(); -// BigDecimal multiply = ordPrice.multiply((new BigDecimal(dto.getDiscount()).divide(BigDecimal.valueOf(10)))); BigDecimal result = transition.getNowPrice().add(cj); log.info("琛ヤ笂宸环鍓嶇殑浠锋牸涓猴細{}",transition.getNowPrice().toString()); if (result.compareTo(BigDecimal.ZERO)>0 && !flag && cj.compareTo(BigDecimal.ZERO) != 0){ @@ -4018,61 +4078,7 @@ flag = true; break; } -// if (index1 == 0 ){ -// log.info("淇敼灏忛」 {}{} 鍘熸湰浠锋牸:{}",transition.getProId(),transition.getProName(),multiply.toString()); -// multiply = multiply.add(cj); -// log.info("澧炲姞宸环鍚庯細{}",multiply.toString()); -// } -// index1++; -// log.info("鍚庣璁$畻鐨勯噾棰�: " + multiply.toString()); -//// log.info("鍓嶇浼犻�掔殑閲戦: " + dto.getYhj()); -// transition.setNowPrice(multiply); -// transition.setDiscount(new BigDecimal(dto.getDiscount())); -// transitionService.updateById(transition); } - -// log.info("dxzj:{}",dxzj.toString()); -// if (index == dtos.size()){ -// BigDecimal yhj = dto.getYhj(); -// log.info("鍓嶇浼犻�掔殑浠锋牸锛歿}",yhj.toString()); -// BigDecimal cj = yhj.subtract(dxzj); -// log.info("璁$畻鐨勫樊浠凤細{}",cj.toString()); -// int index1 = 0; -// for (TbTransition transition : list) { -// BigDecimal ordPrice = transition.getOrdPrice(); -// BigDecimal multiply = ordPrice.multiply((new BigDecimal(dto.getDiscount()).divide(BigDecimal.valueOf(10)))); -// if (index1 == 0 ){ -// log.info("淇敼灏忛」 {}{} 鍘熸湰浠锋牸:{}",transition.getProId(),transition.getProName(),multiply.toString()); -// multiply = multiply.add(cj); -// log.info("澧炲姞宸环鍚庯細{}",multiply.toString()); -// } -// index1++; -// log.info("鍚庣璁$畻鐨勯噾棰�: " + multiply.toString()); -//// log.info("鍓嶇浼犻�掔殑閲戦: " + dto.getYhj()); -// transition.setNowPrice(multiply); -// transition.setDiscount(new BigDecimal(dto.getDiscount())); -// transitionService.updateById(transition); -// } -// }else { -// for (TbTransition transition : list) { -// BigDecimal ordPrice = transition.getOrdPrice(); -// BigDecimal multiply = ordPrice.multiply((new BigDecimal(dto.getDiscount()).divide(BigDecimal.valueOf(10)))); -// log.info("鍚庣璁$畻鐨勯噾棰�: " + multiply.toString()); -//// log.info("鍓嶇浼犻�掔殑閲戦: " + dto.getYhj()); -// transition.setNowPrice(multiply); -// 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