From 246d78931aa779d0ea2ae6a262cd23494476e80b Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期二, 10 六月 2025 15:58:53 +0800 Subject: [PATCH] zjh20250610 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java | 796 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 616 insertions(+), 180 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java index 816ef09..a84dfa2 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java @@ -1,7 +1,9 @@ package com.ltkj.web.controller.system; import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.pinyin.PinyinUtil; @@ -9,11 +11,19 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.base.Joiner; +import com.ltkj.common.annotation.RepeatSubmit; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.core.domain.entity.SysDept; +import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.core.domain.entity.SysUser; +import com.ltkj.common.excelConfig.ExcelUtils; +import com.ltkj.common.task.TaskService; import com.ltkj.common.utils.SecurityUtils; +import com.ltkj.common.utils.StringUtils; +import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.*; +import com.ltkj.hosp.dto.ConfirmDto; import com.ltkj.hosp.idutil.IdUtils; import com.ltkj.hosp.mapper.TjSamplingMapper; import com.ltkj.hosp.service.*; @@ -27,34 +37,36 @@ import com.ltkj.system.service.ISysDeptService; import com.ltkj.system.service.ISysDictDataService; import com.ltkj.system.service.ISysUserService; +import com.ltkj.web.config.pdfutils.PDFBinaryUtil; +import com.ltkj.web.config.task.TjReservationTask; import com.ltkj.web.controller.his.HisApiMethod; import com.ltkj.web.controller.his.HisApiMethodService; import com.ltkj.web.controller.lis.LisApiMethod; 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.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.NoTransactionException; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; -import java.io.FileInputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.math.BigDecimal; +import java.net.URL; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import java.util.stream.Collectors; /** * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 @@ -64,6 +76,7 @@ @Slf4j @RestController @RequestMapping("/zhiye/order") +@Api(tags = "鑱屼笟鐥呯浉鍏虫帴鍙�") public class ZhiYeController { @Autowired private ISysUserService userService; @@ -71,16 +84,28 @@ private ITjCustomerService tjCustomerService; @Autowired private ITjReservationService tjReservationService; + @Resource + private ITjDwGroupingService dwGroupingService; + @Resource + private ITjGroupingProService groupingProService; @Autowired private IMallOrderService mallOrderService; - @Autowired - private ITjDwGroupingService dwGroupingService; @Autowired private ITbTransitionService transitionService; @Autowired private ITjOrderService tjOrderService; @Autowired private ISysConfigService configService; + @Resource + private IDictCompService compService; + @Resource + private ITjDwDeptService dwDeptService; + @Resource + private TjAsyncService asyncService; + @Resource + private ITjCompPayService compPayService; + @Resource + private ITjTeamSelectRecordService selectRecordService; @Autowired private IdUtils idUtils; @Autowired @@ -121,6 +146,10 @@ private ISysDeptService sysDeptService; @Autowired private TjFlowingWaterHisService tjFlowingWaterHisService; + @Autowired + private ISysDictDataService dictDataService; + @Autowired + private TaskService taskService; ReentrantLock lock = new ReentrantLock(); @@ -135,6 +164,7 @@ wq.eq(TjCustomer::getCusId, tjOrder.getUserId()); TjCustomer tjCustomer = tjCustomerService.getOne(wq); if (tjCustomer == null) return AjaxResult.error("璇ュ鎴锋湭鐧昏"); + TjFlowingWater tjFlowingWater = new TjFlowingWater(); LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjReservation::getIdCard, tjCustomer.getCusIdcard()); @@ -156,6 +186,21 @@ if (null != tjReservation.getJobNo()) tjOrder.setFirmWorkId(tjReservation.getJobNo()); if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId()); if (null != tjReservation.getTjCategory()) tjOrder.setTjCategory(tjReservation.getTjCategory()); + + if (null != tjReservation.getZhiyeJhgln()) tjOrder.setZhiyeJhgln(tjReservation.getZhiyeJhgln()); + if (null != tjReservation.getZhiyeJhgly()) tjOrder.setZhiyeJhgly(tjReservation.getZhiyeJhgly()); + if (null != tjReservation.getZhiyeKsjhrq()) tjOrder.setZhiyeKsjhrq(tjReservation.getZhiyeKsjhrq()); + if (null != tjReservation.getZhiyeGh()) tjOrder.setZhiyeGh(tjReservation.getZhiyeGh()); + if (null != tjReservation.getZhiyeGz()) tjOrder.setZhiyeGz(tjReservation.getZhiyeGz()); + if (null != tjReservation.getZhiyeZgln()) tjOrder.setZhiyeZgln(tjReservation.getZhiyeZgln()); + if (null != tjReservation.getZhiyeZgly()) tjOrder.setZhiyeZgly(tjReservation.getZhiyeZgly()); + if (null != tjReservation.getZhiyeJhys()) tjOrder.setZhiyeJhys(tjReservation.getZhiyeJhys()); + if (null != tjReservation.getZhiyeRzsj()) tjOrder.setZhiyeRzsj(tjReservation.getZhiyeRzsj()); + if (null != tjReservation.getZhiyeScdw()) tjOrder.setZhiyeScdw(tjReservation.getZhiyeScdw()); + if (null != tjReservation.getZhiyeZysksrq()) tjOrder.setZhiyeZysksrq(tjReservation.getZhiyeZysksrq()); + if (null != tjReservation.getZhiyeZysjsrq()) tjOrder.setZhiyeZysjsrq(tjReservation.getZhiyeZysjsrq()); + if (null != tjReservation.getZhiyeZysszdw()) tjOrder.setZhiyeZysszdw(tjReservation.getZhiyeZysszdw()); + if (null != tjReservation.getGroupingId()) { TjDwGrouping dwGrouping = dwGroupingService.getById(tjReservation.getGroupingId()); tjOrder.setGroupId(tjReservation.getGroupingId()); @@ -163,7 +208,7 @@ } tjReservation.setIsExpire(1); tjReservationService.updateById(tjReservation); - if (null != tjReservation.getTeamNo()) { + if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) { tjOrder.setTjType("1"); } else if (tjOrder.getTjType().equals("2")) { tjOrder.setTjType("2"); @@ -213,7 +258,8 @@ } }catch (Exception e){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - log.error(String.valueOf(e)); + log.error(String.valueOf(e),e.getMessage()); + e.printStackTrace(); } finally { lock.unlock(); @@ -221,15 +267,12 @@ return AjaxResult.error(); } - @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 + + @Transactional(propagation = Propagation.REQUIRED) public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) { + //鑾峰彇鎷兼帴鍓嶇紑 - String sfkqtjhqz = configService.selectConfigByKey("sfkqtjhqz"); - String makeLisTmhPrefix = ""; - if(sfkqtjhqz.equalsIgnoreCase("Y")){ - makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix"); - } - //鐢熸垚浣撴鍙� + String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix"); String tjNumber = null; int a =0; while (tjNumber ==null){ @@ -252,12 +295,14 @@ } } catch (Exception e) { log.error(e.getMessage()); + throw new IllegalStateException(); }finally { a++; } } - if(StringUtil.isBlank(tjNumber)) return AjaxResult.error("鐧昏澶辫触 閲嶆柊鎿嶄綔"); + tjOrder.setTjNumber(tjNumber); + BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount())); tjOrder.setDiscount(discount.toString()); if (tjOrderService.save(tjOrder)) { @@ -346,38 +391,27 @@ /*璋冪敤his鎺ュ彛*/ String config = configService.selectConfigByKey("sfkqdyhis"); if (null != config && config.equals("Y")) { - if(tjCustomer.getPationId().equals("0")){ - AjaxResult result = controller.Outpincreateapply(tjCustomer); - String result1 = getAjaxResult(result); - JSONObject object = getJSONObject(result1); - String code = object.getStr("ResultCode"); - if (code.equals("0")) { - JSONArray resultDatass = object.getJSONArray("ResultData"); - Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0); - if (null != resultData && !resultData.isEmpty()) { - String pationid = resultData.get("PationId").toString(); - if (null != pationid) { - tjCustomer.setPationId(pationid); - tjCustomerService.updateById(tjCustomer); - } + AjaxResult result = null; + try { + result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder); + if (!result.get("code").toString().equals("200")) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + Object jzh = result.get("jzh"); + if (null != jzh && null != jzh.toString()) { + hisApiMethod.ZfHisApiMethod(jzh.toString()); } + log.info("璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId()); + return AjaxResult.error("鎸傚彿澶辫触!" + result.get("msg").toString()); } + } catch (NoTransactionException e) { + log.error(e.getMessage()); + throw new RuntimeException(e); } - AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder); - if (!result.get("code").toString().equals("200")) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - Object jzh = result.get("jzh"); - if (null != jzh && null != jzh.toString()) { - hisApiMethod.ZfHisApiMethod(jzh.toString()); - } - log.info("璇ョ櫥璁颁汉鎸傚彿澶辫触, 灏辫瘖鍙蜂负: " + tjOrder.getCardId()); - throw new IllegalStateException("鎸傚彿澶辫触!" + result.get("msg").toString()); - } + log.info("璇ョ櫥璁颁汉鐨刪is灏辫瘖鍙锋槸: " + tjOrder.getCardId()); // 鏌ヨ 瀵规帴Lis銆丳acs鐢宠濡傛灉绫诲瀷鍖呭惈鍦ㄩ厤缃唴鍒欎娇鐢ㄥ鎺is銆乸acs try { if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { - log.info("璋冪敤his寮�鍚� 杩涘叆涓嶆敹璐规柟娉� 璇ヤ綋妫�浜哄憳涓嶆敹璐�:"+tjOrder.getTjNumber()); // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 tjFlowingWater.setPayStasus(1L); newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); @@ -388,24 +422,17 @@ 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()); + hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId()); } + return AjaxResult.success(tjNumber); } catch (Exception e) { log.error(e.getMessage()); - throw new IllegalStateException(); + throw new RuntimeException(e); } - return AjaxResult.success(tjNumber); } else { tjCustomer.setCardId(tjOrder.getTjNumber()); tjCustomerService.updateById(tjCustomer); @@ -413,45 +440,38 @@ tjOrder.setCardId(tjOrder.getTjNumber()); tjOrderService.updateById(tjOrder); } + String drrysfsf = configService.selectConfigByKey("drrysfsf"); + try { + if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { + if(StringUtil.isNotBlank(drrysfsf) && drrysfsf.equalsIgnoreCase("Y")){ + if(null != tjReservation){ + return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber); + }else { + newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); + AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); + if (error != null) return error; - // 鏌ヨ 瀵规帴Lis銆丳acs鐢宠濡傛灉绫诲瀷鍖呭惈鍦ㄩ厤缃唴鍒欎娇鐢ㄥ鎺is銆乸acs - log.info("绛惧埌鐧昏鎺ュ彛璇ヤ汉鍛�: "+tjOrder.getTjNumber()+" 鐨勪綋妫�绫诲瀷鏄�:"+tjOrder.getTjType()); - if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) { - try { - log.info(tjOrder.getTjNumber()+"绛惧埌鐧昏杩涘叆鏈敹璐规柟娉�"); - // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 - tjFlowingWater.setPayStasus(1L); + return AjaxResult.success(tjNumber); + } + } + return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber); + + } else { 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); + AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); + if (error != null) return error; } - } else { - try { - log.info(tjOrder.getTjNumber()+"else绛惧埌鐧昏杩涘叆鏀惰垂鏂规硶"); - newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater); - isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater); - } catch (Exception e) { - log.error("processOrderWithTransaction 鏂规硶寮傚父"+e.getMessage()); - throw new RuntimeException("璋冪敤鍏叡鏂规硶澶辫触 寮哄埗瑙﹀彂鍥炴粴"); - } + } catch (Exception e) { + log.error(e.getMessage()); + throw new RuntimeException(e); } return AjaxResult.success(tjNumber); } - throw new RuntimeException("浣撴璁板綍淇濆瓨澶辫触 寮哄埗瑙﹀彂鍥炴粴"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); } - @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) { try { tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId())); @@ -495,104 +515,120 @@ xdPictureService.saveBatch(xdPictureList); } } catch (Exception e) { + log.error(e.getMessage()); throw new RuntimeException(e); } } - @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser, String jxbz) { - 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()); + 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 { + 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 { - 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); - } + 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())); - } - } catch (Exception e) { - log.error(e.getMessage()); + } + 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())); } } - @Transactional(propagation = Propagation.REQUIRED) // 鍏变韩浜嬪姟 - public void isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) { + private AjaxResult isUseLisAndPacsRegister(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, SysUser sysUser, BigDecimal discount, String tjNumber) { + try { + log.info("绛惧埌鐧昏杩涘叆鏈敹璐规柟娉�"); + // 杩欐槸涓婇潰涓汉鏂规硶寮曞叆鏁版嵁 + 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("绛惧埌鐧昏:閲囨牱鏁版嵁鏌ヨ涓暟"+detailList.size()); + addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null); + return AjaxResult.success(tjNumber); + } catch (Exception e) { + log.error(e.getMessage()); + throw new RuntimeException(e); + } + } + + 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"); @@ -625,6 +661,7 @@ SysDept dept = sysDeptService.getOne(wrapper2); JSONObject obj = JSONUtil.createObj(); +// Integer sl = project.getSl(); int sl = 1; BigDecimal danjia = transition.getNowPrice(); BigDecimal allPrice = danjia.multiply(new BigDecimal(sl)); @@ -653,19 +690,418 @@ } tjFlowingWaterService.updateById(tjFlowingWater); } else { - log.error("isRequestCommonHisApi 鏂规硶寮傚父"); - throw new RuntimeException("is_request_common_his_api 寮哄埗瑙﹀彂鍥炴粴"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); } + } + return null; + } + + + + @PostMapping("/importTemplate") + @ApiOperation(value = "瀵煎嚭excel琛ㄦā鏉�") + public void importTemplate(HttpServletResponse response) { + String value = configService.selectConfigByKey("path_filePath"); + //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙� + try { + String base64String = PDFBinaryUtil.getPDFBinary(value + File.separator + "瑗垮畨璺嘲鏈虹數绉戞妧鏈夐檺鍏徃.xls"); + if (null != base64String) { + PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + File.separator + "鍥綋棰勭害Excel妯$増.xls"); + String filePath = value + File.separator + "鍥綋棰勭害Excel妯$増.xls"; + File f = new File(filePath); + 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 (true) { + // 鍦ㄧ嚎鎵撳紑鏂瑰紡 + URL u = new URL("file:///" + filePath); + //System.out.println(u); + String contentType = u.openConnection().getContentType(); + response.setContentType(contentType); + response.setHeader("Content-Disposition", "inline;filename=鍥綋棰勭害Excel妯$増.xls"); + } else { + // 绾笅杞芥柟寮� + response.setContentType("application/x-msdownload"); + response.setContentType("application/pdf;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=鍥綋棰勭害Excel妯$増.xls"); + } + out = response.getOutputStream(); + while ((len = br.read(bs)) > 0) { + out.write(bs, 0, len); + } + 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(); + } + } + } + } + } catch (Exception e) { + ExcelUtils.exportTemplate(response,"鍥綋棰勭害Excel妯$増",TjReservation.class); + throw new RuntimeException(e); } } - public String getAjaxResult(AjaxResult result) { - return result.get("data").toString(); + + @PostMapping("/newExcelImportNotDwDeptId") + @ApiOperation(value = "鍥綋excel琛ㄥ鍏� (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)") + @Transactional + public AjaxResult newExcelImportNotDwDeptId(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file, + @RequestParam @ApiParam(value = "鍗曚綅id") String dwId) { + List<TjReservation> tjReservations = null; + try { + tjReservations = ExcelUtils.readMultipartFile(file, TjReservation.class); + } catch (Exception e) { + return AjaxResult.error("瀵煎叆鏂囦欢鏈夎璇锋鏌ュ鍏ユ枃浠�!"); + } + int grouping = dwGroupingService.selectTjDwGroupingByDwId(dwId); + + if (grouping == 0) { + return AjaxResult.error("璇锋鏌ヨ鍗曚綅鏄惁瀛樺惁瀛樺湪椤圭洰!"); + } + + List<String> wrongList = new ArrayList<>(); + List<TjReservation> rightList = new ArrayList<>(); + List<String> yyList = new ArrayList<>(); + Map<String, Object> map = new HashMap<>(); + List<TjDwGrouping> groupingMans = null;//鐢� + List<TjDwGrouping> groupingWoMans = null;//濂� + List<TjDwGrouping> groupingWzs = null;//鏈煡(涓嶅垎鎬у埆) + try { + groupingMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId) + .eq(TjDwGrouping::getSex, 0)); + groupingWoMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId) + .eq(TjDwGrouping::getSex, 1)); + groupingWzs = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId) + .eq(TjDwGrouping::getSex, 2)); + } catch (Exception e) { + return AjaxResult.error("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!"); + } + + try { + String sfjysfzh = configService.selectConfigByKey("sfjysfzh"); + String sfjysjh = configService.selectConfigByKey("sfjysjh"); + + //璁$畻鍚堣 + BigDecimal hjMoney = new BigDecimal("0.00"); + //鐢风粍閲戦 + BigDecimal manMoney = new BigDecimal("0.00"); + //濂崇粍閲戦 + BigDecimal woManMoney = new BigDecimal("0.00"); + int count = 0;//鎬昏浜烘暟 + int manCount = 0;//鐢风粍浜烘暟 + int woManCount = 0;//濂崇粍浜烘暟 + List<String> ids = new ArrayList<>(); + +// String errMsg = ""; + for (TjReservation tjReservation : tjReservations) { + String name = tjReservation.getName(); + String idCard = tjReservation.getIdCard(); + String phoe = tjReservation.getPhoe(); + name = name.replaceAll("[',锛�;.銆� 鈥樷�淽", "").replaceAll(" ", ""); + phoe = phoe.replaceAll("[',锛�;.銆� 鈥樷�淽", "").replaceAll(" ", ""); + idCard = idCard.replaceAll("[',锛�;.銆� 鈥樷�淽", "").replaceAll(" ", ""); + + if (!StringUtils.isBlank(idCard) || !StringUtils.isBlank(phoe) || null != tjReservation.getDwxm()) { + //灏嗙瀛﹁鏁扮殑鎵嬫満鍙疯浆鎹㈡垚鏂囨湰褰㈠紡 + phoe = MatchUtils.translateToPlainStr(tjReservation.getPhoe()); + + if (!ids.isEmpty() && ids.contains(idCard)) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("姝よ韩浠借瘉鍙�: " + tjReservation.getIdCard() + " 閲嶅,璇锋牳瀵瑰悗涓婁紶!"); + } + + ids.add(idCard); + + if (!Objects.equals(tjReservation.getSex(), MatchUtils.getSexByIdCard(idCard))){ + wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"浠ヤ笅浜哄憳鎬у埆 涓嶅噯纭�"); + log.info(tjReservation.getName() + " " + idCard); + } + + if ((sfjysfzh.equalsIgnoreCase("Y") && !MatchUtils.isIdCard(idCard)) || + (sfjysjh.equalsIgnoreCase("Y") && !MatchUtils.isMobileNO(phoe))) { + wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"韬唤璇佸彿/鎵嬫満鍙� 鏍煎紡涓嶅噯纭�"); +// errMsg = "韬唤璇佸彿/鎵嬫満鍙� 鏍煎紡涓嶅噯纭�"; + log.info(tjReservation.getName() + " " + idCard + MatchUtils.isIdCard(idCard) + " " + phoe + " " + MatchUtils.isMobileNO(phoe)); + } +// else { + + tjReservation.setPhoe(phoe); + + tjReservation.setName(name); + + tjReservation.setIdCard(idCard); + + //骞撮緞 + tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard().replaceAll(" ", "")))); + //鍑虹敓鏃ユ湡 + try { + tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", ""))); + } catch (Exception e) { +// return AjaxResult.error("韬唤璇佸彿涓嶆纭�"); + } + + TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>(). + eq(TjDwDept::getDwDeptName, tjReservation.getDwxm().trim()).eq(TjDwDept::getDwId,dwId)); + if (null != dwDept) { + for (TjDwGrouping groupingMan : groupingMans) { + if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingMan.getDwDeptId().equals(dwDept.getId())) { + tjReservation.setGroupingId(groupingMan.getId()); + tjReservation.setGroupingName(groupingMan.getGroupingName()); + tjReservation.setYsPrice(groupingMan.getYsPrice()); + //鍚堣 + hjMoney = hjMoney.add(groupingMan.getYsPrice()); + count += 1; + //鐢风粍浜烘暟 + manMoney = manMoney.add(groupingMan.getYsPrice()); + manCount += 1; + } + } + + for (TjDwGrouping groupingWoMan : groupingWoMans) { + if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingWoMan.getDwDeptId().equals(dwDept.getId())) { + tjReservation.setGroupingId(groupingWoMan.getId()); + tjReservation.setGroupingName(groupingWoMan.getGroupingName()); + tjReservation.setYsPrice(groupingWoMan.getYsPrice()); + //鍚堣 + hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); + count += 1; + woManMoney = woManMoney.add(groupingWoMan.getYsPrice()); + woManCount += 1; + } + } + for (TjDwGrouping groupingWz : groupingWzs) { + if (null != groupingWz && groupingWz.getDwDeptId().equals(dwDept.getId())) { + tjReservation.setGroupingId(groupingWz.getId()); + tjReservation.setGroupingName(groupingWz.getGroupingName()); + tjReservation.setYsPrice(groupingWz.getYsPrice()); + //鍚堣 + hjMoney = hjMoney.add(groupingWz.getYsPrice()); + count += 1; + if (tjReservation.getSex() == 0) { + manMoney = manMoney.add(groupingWz.getYsPrice()); + manCount += 1; + } + if (tjReservation.getSex() == 1) { + woManMoney = woManMoney.add(groupingWz.getYsPrice()); + woManCount += 1; + } + + } + } + LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>(); + wq.eq(TjReservation::getIdCard, tjReservation.getIdCard()); + wq.eq(TjReservation::getIsExpire, 2); + TjReservation one = tjReservationService.getOne(wq); + if (null != one) { + yyList.add(one.getName() + " " + tjReservation.getIdCard()); + } else { + rightList.add(tjReservation); + } + + } else { + wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"鎵�濉啓鐨勫椁愬垎绫诲悕 涓嶆纭�"); + } +// } + + } + else { + wrongList.add(tjReservation.getName()+"韬唤璇佸彿/鎵嬫満鍙�/濂楅鍒嗙被鍚嶅悕涓虹┖"); + } + } + + + if (!yyList.isEmpty()) { + map.put("list", yyList); + map.put("hjMoney", hjMoney); + return AjaxResult.error("鎿嶄綔澶辫触,浠ヤ笂浜哄憳宸茬粡棰勭害鏃犻渶瀵煎叆!!!", map); + } + + if (!wrongList.isEmpty()) { + map.put("list", wrongList); + map.put("hjMoney", hjMoney); + return AjaxResult.error("鎿嶄綔澶辫触, 璇疯鐪熸牳瀵归敊璇俊鎭悗閲嶆柊瀵煎叆!!!", map); + } else { + map.put("list", rightList); + map.put("count", count); + map.put("hjMoney", hjMoney); + map.put("manCount", manCount); + map.put("manMoney", manMoney); + map.put("woManCount", woManCount); + map.put("woManMoney", woManMoney); + return AjaxResult.success("鎿嶄綔鎴愬姛", map); + } + } catch (NoTransactionException e) { +// throw new RuntimeException(e); + log.error(String.valueOf(e), e.getMessage()); + return AjaxResult.error(); + } } - public JSONObject getJSONObject(String builder) { - String Response = JSONUtil.parseObj(builder).getStr("Response"); - return JSONUtil.parseObj(Response); + + + @PostMapping("/newReservationConfirmxbb") + @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)") + @Transactional + @RepeatSubmit + public AjaxResult newReservationConfirmxbb(@RequestBody ConfirmDto dto) { + //棰勭害鐨勬墍鏈変汉 + List<TjReservation> rightList = dto.getReservations(); + + //棰勭害鏃堕棿 + String reservationTime = dto.getReservationTime(); + if (null == reservationTime) { + return AjaxResult.error("璇烽�夋嫨棰勭害鏃堕棿!"); + } + + Date date = new Date(); + + //寮傛鏁版嵁 +// asyncService.addNewReservationConfirm(rightList); + asyncService.saveNewReservationConfirm(rightList); + + //浣撴鍗曚綅閮ㄩ棬 + DictComp comp = compService.getById(dto.getDwId()); + + String teamNo = PinyinUtil.getFirstLetter(comp.getCnName(), "") + DateUtil.format(date, "yyMMddHHmmss"); + + //鍥綋浜烘暟鍚堣浠锋牸 + BigDecimal compPay = new BigDecimal("0.00"); + + String payTypeGlTjType = configService.selectConfigByKey("reservation_pay_type_gl_tj_type"); + JSONObject parseObj = JSONUtil.parseObj(payTypeGlTjType); + if (null != rightList && !rightList.isEmpty()) { + + List<String> ids=new ArrayList<>(); + + for (TjReservation reservation : rightList) { + + if(!ids.isEmpty() && ids.contains(reservation.getIdCard())){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("姝よ韩浠借瘉鍙�: "+reservation.getIdCard()+" 閲嶅,璇锋牳瀵瑰悗涓婁紶!"); + + } + reservation.setName(reservation.getName().replaceAll("銆�","").replaceAll(" ","")); + ids.add(reservation.getIdCard()); + + TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId()); + + if(null !=dwGrouping){ + TjDwDept dwDept = dwDeptService.getById(dwGrouping.getDwDeptId()); + + LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>(); + wq.eq(TjReservation::getIdCard, reservation.getIdCard()); + wq.eq(TjReservation::getIsExpire, 2); + TjReservation one = tjReservationService.getOne(wq); + if (null != one) { + continue; + } + LambdaQueryWrapper<TjGroupingPro> wq1 = new LambdaQueryWrapper<>(); + wq1.eq(TjGroupingPro::getGroupingId, reservation.getGroupingId()); + List<String> proIds = groupingProService.list(wq1).stream().map(TjGroupingPro::getProId).collect(Collectors.toList()); + reservation.setProIds(Joiner.on(",").join(proIds)); + reservation.setReservationTime(DateUtil.parse(reservationTime, "yyyy-MM-dd")); + reservation.setCompanyId(dwGrouping.getDwId()); + reservation.setCompany(dwGrouping.getDwName()); + reservation.setPayType(Long.valueOf(dwGrouping.getPayType())); + LambdaQueryWrapper<SysDictData> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysDictData::getDictType, "reservation_pay_type"); + wrapper.eq(SysDictData::getDictValue, reservation.getPayType()); + SysDictData dictData = dictDataService.getOne(wrapper); + for (Map.Entry<String, Object> entry : parseObj.entrySet()) { + String[] split = entry.getValue().toString().split("-"); + if (split[0].equals(String.valueOf(dictData.getDictCode()))) { + reservation.setTjType(dictDataService.selectDictDataById(Long.valueOf(split[1])).getDictValue()); + } + } + + + reservation.setPacId(dwDept.getId()); + compPay = compPay.add(dwGrouping.getYsPrice()); +// reservation.setTjType(String.valueOf(1)); + reservation.setTeamNo(teamNo); + reservation.setYxts(dto.getYxts()); + tjReservationService.save(reservation); + taskService.addTask(new TjReservationTask(reservation.getId(), + DateUtil.between(date, DateUtil.endOfDay(DateUtil.offsetDay(reservation.getReservationTime(), dto.getYxts())), DateUnit.MS))); + } + } + + LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>(); + wq0.eq(TjCompPay::getCompId, dto.getDwId()); + wq0.eq(TjCompPay::getTeamNo, teamNo); + TjCompPay one = compPayService.getOne(wq0); + if (null != one) { + one.setCopeWith(compPay); + one.setSerialNumber(SecurityUtils.getUsername() + DateUtil.format(date, "yyMMddHHmmssSSS")); + one.setInvoiceNo("FP" + DateUtil.format(date, "yyMMddHHmmssSSS")); + one.setPaidIn(new BigDecimal("0.00")); + compPayService.updateById(one); + } else { + TjCompPay tjCompPay = new TjCompPay(); + tjCompPay.setCompId(dto.getDwId()); + tjCompPay.setTeamNo(teamNo); + tjCompPay.setCopeWith(compPay); + tjCompPay.setSerialNumber(SecurityUtils.getUsername() + DateUtil.format(date, "yyMMddHHmmssSSS")); + tjCompPay.setInvoiceNo("FP" + DateUtil.format(date, "yyMMddHHmmssSSS")); + tjCompPay.setPaidIn(new BigDecimal("0.00")); + tjCompPay.setDifference(tjCompPay.getCopeWith().subtract(BigDecimal.valueOf(0.00))); + compPayService.save(tjCompPay); + } + +// .filter(a-> null != a.getPacId()) + + Map<String, List<TjReservation>> collect = rightList.stream().collect(Collectors.groupingBy(TjReservation::getPacId)); + + if (!collect.isEmpty()) { + for (Map.Entry<String, List<TjReservation>> entry : collect.entrySet()) { + LambdaQueryWrapper<TjTeamSelectRecord> wq = new LambdaQueryWrapper<>(); + wq.eq(TjTeamSelectRecord::getTeamNo, teamNo); + wq.eq(TjTeamSelectRecord::getCompId, dto.getDwId()); + TjTeamSelectRecord recordServiceOne = selectRecordService.getOne(wq); + if (null != recordServiceOne) { + recordServiceOne.setPacId(entry.getKey()); + recordServiceOne.setCompId(dto.getDwId()); + recordServiceOne.setTeamNo(teamNo); + recordServiceOne.setTransactionAmount(new BigDecimal("0.00")); + recordServiceOne.setCount(entry.getValue().size()); + recordServiceOne.setDifference(compPay); + selectRecordService.updateById(recordServiceOne); + } else { + TjTeamSelectRecord selectRecord = new TjTeamSelectRecord(); + selectRecord.setCompId(dto.getDwId()); + selectRecord.setPacId(entry.getKey()); + selectRecord.setTeamNo(teamNo); + selectRecord.setTransactionAmount(new BigDecimal("0.00")); + selectRecord.setCount(entry.getValue().size()); + selectRecord.setDifference(compPay); + selectRecordService.save(selectRecord); + } + } + } + return AjaxResult.success("棰勭害鎴愬姛"); + } + return AjaxResult.error("璇烽�夋嫨棰勭害瀵硅薄"); } } -- Gitblit v1.8.0