From fe9f16a02c89eb6c5264c06bf76e748a0d809647 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期五, 01 十一月 2024 18:03:58 +0800 Subject: [PATCH] 2024-11-01 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java | 260 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 208 insertions(+), 52 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java index 6e0525c..a2db689 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java @@ -13,12 +13,15 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.extra.pinyin.PinyinUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.Joiner; import com.ltkj.common.annotation.RepeatSubmit; +import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.excelConfig.ExcelUtils; import com.ltkj.common.task.TaskService; import com.ltkj.common.utils.SecurityUtils; @@ -29,6 +32,8 @@ import com.ltkj.hosp.dto.ExcelImportDto; import com.ltkj.hosp.service.*; import com.ltkj.mall.mallOrderUtils.TjConstants; +import com.ltkj.system.service.ISysConfigService; +import com.ltkj.system.service.ISysDictDataService; import com.ltkj.web.config.pdfutils.PDFBinaryUtil; import com.ltkj.web.config.redis.OrderDelayService; import com.ltkj.web.config.task.TjReservationTask; @@ -86,6 +91,10 @@ private TaskService taskService; @Resource private ITjReportTemplateService reportTemplateService; + @Autowired + private ISysDictDataService dictDataService; + @Autowired + private ISysConfigService configService; @Value("${path.filePath}") private String value; @@ -157,6 +166,7 @@ @ApiOperation(value = "鏌ヨ浣撴棰勭害鍒楄〃鎺ュ彛(榛樿)") public TableDataInfo list(TjReservation tjReservation) { startPage(); + tjReservation.setIsExpire(2); List<TjReservation> list = tjReservationService.selectTjReservationList(tjReservation); // if(null !=list && list.size()>0){ // for (TjReservation reservation : list) { @@ -176,12 +186,12 @@ public TableDataInfo selectTjReservationByDelete(TjReservation tjReservation) { startPage(); List<TjReservation> list = tjReservationService.selectTjReservationByDelete(tjReservation); - if(null !=list && list.size()>0){ - for (TjReservation reservation : list) { - reservation.setName(MatchUtils.hideCusName(reservation.getName())); - reservation.setPhoe(MatchUtils.hidePhoneNum(reservation.getPhoe())); - reservation.setIdCard(MatchUtils.hideIdCardNum(reservation.getIdCard())); - } + if(null !=list && !list.isEmpty()){ +// for (TjReservation reservation : list) { +// reservation.setName(MatchUtils.hideCusName(reservation.getName())); +// reservation.setPhoe(MatchUtils.hidePhoneNum(reservation.getPhoe())); +// reservation.setIdCard(MatchUtils.hideIdCardNum(reservation.getIdCard())); +// } } return getDataTable(list); } @@ -204,7 +214,7 @@ * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃 */ @PostMapping("/newExcelImport") - @ApiOperation(value = "鍥綋瀵煎叆 (鏂扮増鏈�)") + @ApiOperation(value = "鍥綋excel琛ㄥ鍏�") @Transactional public AjaxResult newExcelImport(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file, @RequestParam @ApiParam(value = "鍗曚綅id") String dwId, @@ -329,7 +339,7 @@ * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃 */ @PostMapping("/newExcelImportNotDwDeptId") - @ApiOperation(value = "鍥綋瀵煎叆 (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)") + @ApiOperation(value = "鍥綋excel琛ㄥ鍏� (鏂扮増鏈笉浼犲崟浣嶉儴闂╥d)") @Transactional public AjaxResult newExcelImportNotDwDeptId(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file, @RequestParam @ApiParam(value = "鍗曚綅id") String dwId) { @@ -349,15 +359,15 @@ List<TjReservation> rightList = new ArrayList<>(); List<TjReservation> yyList = new ArrayList<>(); Map<String, Object> map = new HashMap<>(); - TjDwGrouping groupingMan = null;//鐢� - TjDwGrouping groupingWoMan = null;//濂� - TjDwGrouping groupingWz = null;//鏈煡(涓嶅垎鎬у埆) + List<TjDwGrouping> groupingMans = null;//鐢� + List<TjDwGrouping> groupingWoMans = null;//濂� + List<TjDwGrouping> groupingWzs = null;//鏈煡(涓嶅垎鎬у埆) try { - groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) + groupingMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) .eq(TjDwGrouping::getSex, 0)); - groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) + groupingWoMans = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) .eq(TjDwGrouping::getSex, 1)); - groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) + groupingWzs = dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) .eq(TjDwGrouping::getSex, 2)); } catch (Exception e) { return AjaxResult.error("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!"); @@ -376,7 +386,7 @@ String phoe = tjReservation.getPhoe(); if (null != idCard && null != phoe) { // if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) { - if (idCard.isEmpty() || phoe.isEmpty()) { + if (idCard.isEmpty() || phoe.isEmpty() || null==tjReservation.getDwxm()) { wrongList.add(tjReservation.getName()); } else { //骞撮緞 @@ -384,58 +394,73 @@ //鍑虹敓鏃ユ湡 tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd")); - if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex()))) { + TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().eq(TjDwDept::getDwDeptName, tjReservation.getDwxm())); + 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; + } + } - 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; + } - } else if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex()))) { - - 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; - - } else if (null != groupingWz && groupingWz.getSex().equals(String.valueOf(tjReservation.getSex()))) { - - tjReservation.setGroupingId(groupingWz.getId()); - tjReservation.setGroupingName(groupingWz.getGroupingName()); - tjReservation.setYsPrice(groupingWz.getYsPrice()); - //鍚堣 - hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=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); + } + rightList.add(tjReservation); + }else { + wrongList.add(tjReservation.getName()); } - 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); - } - rightList.add(tjReservation); } } else { wrongList.add(tjReservation.getName()); } } - if (yyList.size() > 0) { + if (!yyList.isEmpty()) { map.put("list", yyList); map.put("hjMoney", hjMoney); return AjaxResult.error("鎿嶄綔澶辫触,浠ヤ笂浜哄憳宸茬粡棰勭害鏃犻渶瀵煎叆!!!", map); } - if (wrongList.size() > 0) { + if (!wrongList.isEmpty()) { map.put("list", wrongList); map.put("hjMoney", hjMoney); - return AjaxResult.error("鎿嶄綔澶辫触, 璇锋牳瀵逛俊鎭悗閲嶆柊瀵煎叆!!!", map); + return AjaxResult.error("鎿嶄綔澶辫触, 璇疯鐪熸牳瀵逛俊鎭悗閲嶆柊瀵煎叆!!!", map); } else { map.put("list", rightList); map.put("count", count); @@ -627,7 +652,7 @@ @PostMapping("/newReservationConfirm") - @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)") + @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛") @Transactional @RepeatSubmit public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) { @@ -737,4 +762,135 @@ 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()) { + + for (TjReservation reservation : rightList) { + + TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId()); + + 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); + } + + 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