From 9155df2aeab5b0d95c89dd928dbaefbfbaeae9d1 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 05 九月 2024 17:10:35 +0800 Subject: [PATCH] zjh 2024-09-05 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java | 545 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 388 insertions(+), 157 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 cf0bcb3..62a1fc7 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 @@ -1,19 +1,26 @@ package com.ltkj.web.controller.system; +import java.io.*; import java.math.BigDecimal; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.extra.pinyin.PinyinUtil; 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.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; @@ -21,11 +28,15 @@ import com.ltkj.hosp.dto.ConfirmDto; import com.ltkj.hosp.dto.ExcelImportDto; import com.ltkj.hosp.service.*; +import com.ltkj.mall.mallOrderUtils.TjConstants; +import com.ltkj.web.config.pdfutils.PDFBinaryUtil; import com.ltkj.web.config.redis.OrderDelayService; +import com.ltkj.web.config.task.TjReservationTask; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -69,14 +80,73 @@ private ITjGroupingProService groupingProService; @Resource private TjAsyncService asyncService; +// @Resource +// private OrderDelayService delayService; + @Autowired + private TaskService taskService; @Resource - private OrderDelayService delayService; + private ITjReportTemplateService reportTemplateService; + + @Value("${path.filePath}") + private String value; @PostMapping("/importTemplate") @ApiOperation(value = "瀵煎嚭excel琛ㄦā鏉�") public void importTemplate(HttpServletResponse response) { - ExcelUtils.exportTemplate(response, "浣撴棰勭害Excel妯℃澘", TjReservation.class); + //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙� + String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\瑗垮畨璺嘲鏈虹數绉戞妧鏈夐檺鍏徃.xls"); + if(null !=base64String){ + PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + "\\" + "鍥綋棰勭害Excel妯$増.xls"); + String filePath = value + "\\" + "鍥綋棰勭害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(); + } + } + } + } } + /** @@ -87,14 +157,15 @@ @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) { - reservation.setName(MatchUtils.hideCusName(reservation.getName())); - reservation.setPhoe(MatchUtils.hidePhoneNum(reservation.getPhoe())); - reservation.setIdCard(MatchUtils.hideIdCardNum(reservation.getIdCard())); - } - } +// 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())); +// } +// } return getDataTable(list); } @@ -106,12 +177,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); } @@ -133,42 +204,9 @@ /** * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃 */ - @PostMapping("/excelImport") - @ApiOperation(value = "鍥綋瀵煎叆 (鏃х増鏈�)") - public AjaxResult excelImport(@RequestPart(value = "file") @ApiParam(value = "Excel鏂囦欢") MultipartFile file) { - List<TjReservation> tjReservations = null; - try { - tjReservations = ExcelUtils.readMultipartFile(file, TjReservation.class); - } catch (Exception e) { - return AjaxResult.error("瀵煎叆鏂囦欢鏈夎璇锋鏌ュ鍏ユ枃浠�!"); - } - List<String> wrongList = new ArrayList<>(); - List<TjReservation> rightList = new ArrayList<>(); - for (TjReservation tjReservation : tjReservations) { - String idCard = tjReservation.getIdCard(); - String phoe = tjReservation.getPhoe(); - if (null != idCard && null != phoe) { - if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) { - wrongList.add(tjReservation.getName()); - } else { - rightList.add(tjReservation); - } - } else { - wrongList.add(tjReservation.getName()); - } - } - if (wrongList.size() > 0) { - return AjaxResult.success("鎿嶄綔澶辫触", wrongList); - } else { - return AjaxResult.success("鎿嶄綔鎴愬姛",rightList); - } - } - - /** - * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃 - */ @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, @RequestParam @ApiParam(value = "鍗曚綅閮ㄩ棬id") String dwDeptId) { @@ -178,6 +216,12 @@ } catch (Exception e) { return AjaxResult.error("瀵煎叆鏂囦欢鏈夎璇锋鏌ュ鍏ユ枃浠�!"); } + int grouping = dwGroupingService.selectTjDwGroupingByDwDeptId(dwDeptId); + + if(grouping==0){ + return AjaxResult.error("璇锋鏌ラ儴闂ㄤ腑鏄惁瀛樺湪鍒嗙粍鎴栧垎缁勪腑鏄惁瀛樺湪椤圭洰!"); + } + List<String> wrongList = new ArrayList<>(); List<TjReservation> rightList = new ArrayList<>(); List<TjReservation> yyList = new ArrayList<>(); @@ -208,9 +252,15 @@ String idCard = tjReservation.getIdCard(); String phoe = tjReservation.getPhoe(); if (null != idCard && null != phoe) { - if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) { +// if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) { + if (idCard.isEmpty() || phoe.isEmpty()) { wrongList.add(tjReservation.getName()); } else { + //骞撮緞 + tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard()))); + //鍑虹敓鏃ユ湡 + tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd")); + if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex()))) { tjReservation.setGroupingId(groupingMan.getId()); @@ -276,99 +326,142 @@ } - @PostMapping("/reservationConfirm") - @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏃х増鏈�)") - public AjaxResult reservationConfirm(@RequestBody Map<String, Object> map) { - List<TjReservation> rightLists = (List<TjReservation>) map.get("rightList"); - String pacId = map.get("pacId").toString(); - String copeWith = map.get("copeWith").toString(); - String[] proIds = (String[]) map.get("proIds"); - Object compId1 = map.get("compId"); - if (null == compId1 || compId1.equals("")) { - return AjaxResult.error("璇烽�夋嫨鍗曚綅淇℃伅"); + /** + * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃 + */ + @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("瀵煎叆鏂囦欢鏈夎璇锋鏌ュ鍏ユ枃浠�!"); } - String compId = map.get("compId").toString(); - Object reservationTime1 = map.get("reservationTime"); - if (null == reservationTime1) { - return AjaxResult.error("璇烽�夋嫨棰勭害鏃堕棿!"); - } - String reservationTime = map.get("reservationTime").toString(); - String payType = map.get("payType").toString(); - String jsonString = JSON.toJSONString(rightLists); - List<TjReservation> rightList = JSON.parseArray(jsonString, TjReservation.class); + int grouping = dwGroupingService.selectTjDwGroupingByDwId(dwId); - if (null != rightList) { - if (null != pacId || null != proIds && proIds.length > 0) { - String teamNo = PinyinUtil.getFirstLetter(compService.getById(compId).getCnName(), "") + DateUtil.format(new Date(), "yyMMddHHmmss"); - for (TjReservation reservation : rightList) { - 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; - } - if (null != pacId) { - reservation.setPacId(pacId); - } - if (null != proIds && proIds.length > 0) { - reservation.setProIds(Joiner.on(",").join(proIds)); - } - reservation.setReservationTime(DateUtil.parse(reservationTime, "yyyy-MM-dd")); - reservation.setCompanyId(compId); - reservation.setCompany(compService.getById(compId).getCnName()); - reservation.setPayType(Long.valueOf(payType)); - reservation.setTjType(String.valueOf(1)); - reservation.setTeamNo(teamNo); - tjReservationService.save(reservation); - delayService.reservation(reservation.getId()); - } - LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>(); - wq0.eq(TjCompPay::getCompId, compId); - wq0.eq(TjCompPay::getTeamNo, teamNo); - TjCompPay one = compPayService.getOne(wq0); - if (null != one) { - one.setCopeWith(new BigDecimal(copeWith)); - one.setSerialNumber(SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS")); - one.setInvoiceNo("FP" + DateUtil.format(new Date(), "yyMMddHHmmssSSS")); - one.setPaidIn(new BigDecimal("0.00")); - compPayService.updateById(one); - } else { - TjCompPay tjCompPay = new TjCompPay(); - tjCompPay.setCompId(compId); - tjCompPay.setTeamNo(teamNo); - tjCompPay.setCopeWith(new BigDecimal(copeWith)); - tjCompPay.setSerialNumber(SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS")); - tjCompPay.setInvoiceNo("FP" + DateUtil.format(new Date(), "yyMMddHHmmssSSS")); - tjCompPay.setPaidIn(new BigDecimal("0.00")); - tjCompPay.setDifference(tjCompPay.getCopeWith().subtract(BigDecimal.valueOf(0.00))); - compPayService.save(tjCompPay); - } - LambdaQueryWrapper<TjTeamSelectRecord> wq = new LambdaQueryWrapper<>(); - wq.eq(TjTeamSelectRecord::getTeamNo, teamNo); - wq.eq(TjTeamSelectRecord::getCompId, compId); - TjTeamSelectRecord recordServiceOne = selectRecordService.getOne(wq); - if (null != recordServiceOne) { - if (null != pacId) recordServiceOne.setPacId(pacId); - recordServiceOne.setProIds(Joiner.on(";").join(proIds != null ? proIds : new String[0])); - recordServiceOne.setTeamNo(teamNo); - recordServiceOne.setTransactionAmount(new BigDecimal("0.00")); - recordServiceOne.setCount(rightList.size()); - selectRecordService.updateById(recordServiceOne); - } - TjTeamSelectRecord selectRecord = new TjTeamSelectRecord(); - selectRecord.setCompId(compId); - if (null != pacId) selectRecord.setPacId(pacId); - selectRecord.setProIds(Joiner.on(";").join(proIds != null ? proIds : new String[0])); - selectRecord.setTeamNo(teamNo); - selectRecord.setTransactionAmount(new BigDecimal("0.00")); - selectRecord.setCount(rightList.size()); - selectRecordService.save(selectRecord); - return AjaxResult.success("棰勭害鎴愬姛"); - } - return AjaxResult.error("璇烽�夋嫨浣撴鍐呭"); + if(grouping==0){ + return AjaxResult.error("璇锋鏌ヨ鍗曚綅鏄惁瀛樺惁瀛樺湪椤圭洰!"); } - return AjaxResult.error("璇烽�夋嫨棰勭害瀵硅薄"); + + List<String> wrongList = new ArrayList<>(); + List<TjReservation> rightList = new ArrayList<>(); + List<TjReservation> 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("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!"); + } + //璁$畻鍚堣 + 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;//濂崇粍浜烘暟 + for (TjReservation tjReservation : tjReservations) { + String idCard = tjReservation.getIdCard(); + String phoe = tjReservation.getPhoe(); + if (null != idCard && null != phoe) { +// if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) { + if (idCard.isEmpty() || phoe.isEmpty() || null==tjReservation.getDwxm()) { + wrongList.add(tjReservation.getName()); + } else { + //骞撮緞 + tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard()))); + //鍑虹敓鏃ユ湡 + tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd")); + + 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; + } + } + + 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); + } + rightList.add(tjReservation); + }else { + wrongList.add(tjReservation.getName()); + } + + } + } 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); + } } @@ -408,7 +501,9 @@ tjReservation.setIsExpire(2); tjReservation.setTjType(String.valueOf(2)); if (tjReservationService.save(tjReservation)) { - delayService.reservation(tjReservation.getId()); +// delayService.reservation(tjReservation.getId()); + taskService.addTask(new TjReservationTask(tjReservation.getId(), + DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS))); return AjaxResult.success("棰勭害鎴愬姛!!!"); } LambdaQueryWrapper<TbTransition> remove=new LambdaQueryWrapper<>(); @@ -428,7 +523,16 @@ TjReservation tjReservation = tjReservationService.selectTjReservationById(id); if (null != tjReservation) { if (null != tjReservation.getPacId()) { - tjReservation.setPacName(packageService.getById(tjReservation.getPacId()).getPacName()); + TjPackage aPackage = packageService.getById(tjReservation.getPacId()); + if(null !=aPackage){ + tjReservation.setPacName(aPackage.getPacName()); + } + TjDwDept dwDept = dwDeptService.getById(tjReservation.getPacId()); + + if(null !=dwDept){ + tjReservation.setPacName(dwDept.getDwName()); + } + } if (null != tjReservation.getProIds()) { List<String> proNames = new ArrayList<>(); @@ -456,6 +560,7 @@ if (null != reservation && reservation.getIsExpire() == 2) { if (tjReservationService.removeById(id)) { transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard())); + taskService.removeTask(new TjReservationTask(id)); return AjaxResult.success("鎾ら攢鎴愬姛"); } return AjaxResult.error("鎾ら攢澶辫触"); @@ -476,6 +581,7 @@ if (null != reservation && reservation.getIsExpire() == 2) { if (tjReservationService.removeById(id)) { transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard())); + taskService.removeTask(new TjReservationTask(id)); } } } @@ -490,6 +596,7 @@ */ @PostMapping("/tjReappoint") @ApiOperation(value = "浣撴棰勭害淇敼鎺ュ彛") + @Transactional public AjaxResult tjReappoint(@RequestBody TjReservation tjReservation) { TjReservation reservation = tjReservationService.getById(tjReservation.getId()); @@ -500,6 +607,9 @@ tjReservation.setPhoe(reservation.getPhoe()); tjReservation.setName(reservation.getName()); if (tjReservationService.updateById(tjReservation)) { + taskService.removeTask(new TjReservationTask(tjReservation.getId())); + taskService.addTask(new TjReservationTask(tjReservation.getId(), + DateUtil.between(new Date(),DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(),reservation.getYxts())), DateUnit.MS))); return AjaxResult.success("鎿嶄綔鎴愬姛"); } return AjaxResult.error("鎿嶄綔澶辫触"); @@ -519,7 +629,7 @@ for (TjGroupingPro groupingPro : proList) { TjProject project = projectService.getById(groupingPro.getProId()); if(null !=project){ - if (project.getProType().equals("") || project.getProType()==null) { + if (project.getProType()==null || project.getProType().equals("")) { groupingPro.setProType("2"); }else { groupingPro.setProType(project.getProType()); @@ -533,13 +643,12 @@ @PostMapping("/newReservationConfirm") - @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)") + @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛") @Transactional + @RepeatSubmit public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) { //棰勭害鐨勬墍鏈変汉 List<TjReservation> rightList = dto.getReservations(); - - //棰勭害鏃堕棿 String reservationTime = dto.getReservationTime(); @@ -577,19 +686,24 @@ reservation.setProIds(Joiner.on(",").join(proIds)); reservation.setReservationTime(DateUtil.parse(reservationTime, "yyyy-MM-dd")); reservation.setCompanyId(dwGrouping.getDwId()); - reservation.setCompany(dwGrouping.getDwName()); + reservation.setCompany(dwGrouping.getDwDeptName()); reservation.setPayType(Long.valueOf(dwGrouping.getPayType())); reservation.setPacId(dwDept.getId()); - if(dwGrouping.getPayType().equals("1")){ - compPay=compPay.add(dwGrouping.getYsPrice()); - tramNum+=1; - reservation.setTjType(String.valueOf(1)); - reservation.setTeamNo(teamNo); - }else { - reservation.setTjType(String.valueOf(2)); - } +// if(dwGrouping.getPayType().equals("1")){ +// compPay=compPay.add(dwGrouping.getYsPrice()); +// tramNum+=1; +// reservation.setTjType(String.valueOf(1)); +// reservation.setTeamNo(teamNo); +// }else { +// reservation.setTjType(String.valueOf(2)); +// } + compPay=compPay.add(dwGrouping.getYsPrice()); + tramNum+=1; + reservation.setTjType(String.valueOf(1)); + reservation.setTeamNo(teamNo); + reservation.setYxts(dto.getYxts()); tjReservationService.save(reservation); - delayService.reservation(reservation.getId()); + taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(DateUtil.offsetDay(reservation.getReservationTime(),dto.getYxts())), DateUnit.MS))); } LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>(); wq0.eq(TjCompPay::getCompId, dwDept.getDwId()); @@ -639,4 +753,121 @@ 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"); + + 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())); + 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