From a3da2a6fe70e9514638ea4700c4bb2b61ecbc317 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 22 五月 2025 16:50:55 +0800 Subject: [PATCH] zjh20250522 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java | 470 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 462 insertions(+), 8 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 0087a8e..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,11 +37,15 @@ 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; @@ -41,17 +55,18 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.FileInputStream; +import javax.annotation.Resource; +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: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 @@ -61,6 +76,7 @@ @Slf4j @RestController @RequestMapping("/zhiye/order") +@Api(tags = "鑱屼笟鐥呯浉鍏虫帴鍙�") public class ZhiYeController { @Autowired private ISysUserService userService; @@ -68,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 @@ -118,6 +146,10 @@ private ISysDeptService sysDeptService; @Autowired private TjFlowingWaterHisService tjFlowingWaterHisService; + @Autowired + private ISysDictDataService dictDataService; + @Autowired + private TaskService taskService; ReentrantLock lock = new ReentrantLock(); @@ -154,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()); @@ -650,4 +697,411 @@ 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); + } + } + + + @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(); + } + } + + + + @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