From 1b7ed7edb09aaecf68ddf3396ee007bc6eadf52a Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 30 十二月 2024 17:04:09 +0800 Subject: [PATCH] zjh202412030 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java | 547 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 478 insertions(+), 69 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 6f9f6e7..8a384d3 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,16 @@ 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.druid.sql.visitor.functions.Isnull; 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,16 +33,20 @@ 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; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; 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.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; import com.ltkj.common.core.controller.BaseController; import com.ltkj.common.core.domain.AjaxResult; @@ -55,6 +63,7 @@ @RestController @RequestMapping("/reservation/reservation") @Api(tags = "浣撴棰勭害绠$悊鎺ュ彛") +@Slf4j public class TjReservationController extends BaseController { @Resource private ITjReservationService tjReservationService; @@ -80,12 +89,12 @@ private ITjGroupingProService groupingProService; @Resource private TjAsyncService asyncService; -// @Resource -// private OrderDelayService delayService; @Autowired private TaskService taskService; - @Resource - private ITjReportTemplateService reportTemplateService; + @Autowired + private ISysDictDataService dictDataService; + @Autowired + private ISysConfigService configService; @Value("${path.filePath}") private String value; @@ -94,10 +103,10 @@ @ApiOperation(value = "瀵煎嚭excel琛ㄦā鏉�") public void importTemplate(HttpServletResponse response) { //鍘熸潵鐨勪笅杞芥ā鏉胯皟鐢ㄦ帴鍙� - String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\瑗垮畨璺嘲鏈虹數绉戞妧鏈夐檺鍏徃.xls"); - if(null !=base64String){ - PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + "\\" + "鍥綋棰勭害Excel妯$増.xls"); - String filePath = value + "\\" + "鍥綋棰勭害Excel妯$増.xls"; + String base64String = PDFBinaryUtil.getPDFBinary(configService.selectConfigByKey("default_excelTemplate")); + 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; @@ -148,7 +157,6 @@ } - /** * 鏌ヨ浣撴棰勭害鍒楄〃 */ @@ -157,14 +165,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); } @@ -176,12 +185,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 +213,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, @@ -217,8 +226,8 @@ } int grouping = dwGroupingService.selectTjDwGroupingByDwDeptId(dwDeptId); - if(grouping==0){ - return AjaxResult.error("璇锋鏌ラ儴闂ㄥ垎缁勬垨鍒嗙粍涓槸鍚﹀瓨鍦ㄩ」鐩�!"); + if (grouping == 0) { + return AjaxResult.error("璇锋鏌ラ儴闂ㄤ腑鏄惁瀛樺湪鍒嗙粍鎴栧垎缁勪腑鏄惁瀛樺湪椤圭洰!"); } List<String> wrongList = new ArrayList<>(); @@ -229,12 +238,12 @@ TjDwGrouping groupingWoMan = null;//濂� TjDwGrouping groupingWz = null;//鏈煡(涓嶅垎鎬у埆) try { - groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) - .eq(TjDwGrouping::getDwDeptId,dwDeptId).eq(TjDwGrouping::getSex, 0)); - groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) - .eq(TjDwGrouping::getDwDeptId,dwDeptId).eq(TjDwGrouping::getSex, 1)); - groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId) - .eq(TjDwGrouping::getDwDeptId,dwDeptId).eq(TjDwGrouping::getSex, 2)); + groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId) + .eq(TjDwGrouping::getDwDeptId, dwDeptId).eq(TjDwGrouping::getSex, 0)); + groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId) + .eq(TjDwGrouping::getDwDeptId, dwDeptId).eq(TjDwGrouping::getSex, 1)); + groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId, dwId) + .eq(TjDwGrouping::getDwDeptId, dwDeptId).eq(TjDwGrouping::getSex, 2)); } catch (Exception e) { return AjaxResult.error("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!"); } @@ -244,25 +253,36 @@ BigDecimal manMoney = new BigDecimal("0.00"); //濂崇粍閲戦 BigDecimal woManMoney = new BigDecimal("0.00"); - int count=0;//鎬昏浜烘暟 - int manCount=0;//鐢风粍浜烘暟 - int woManCount=0;//濂崇粍浜烘暟 + 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 (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)); + if (idCard.isEmpty() || phoe.isEmpty()) { wrongList.add(tjReservation.getName()); } else { + String str = MatchUtils.translateToPlainStr(tjReservation.getPhoe()); + + tjReservation.setPhoe(str); + //骞撮緞 + 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()); tjReservation.setGroupingName(groupingMan.getGroupingName()); tjReservation.setYsPrice(groupingMan.getYsPrice()); //鍚堣 - hjMoney = hjMoney.add(groupingMan.getYsPrice()); count+=1; + hjMoney = hjMoney.add(groupingMan.getYsPrice()); + count += 1; //鐢风粍浜烘暟 - manMoney=manMoney.add(groupingMan.getYsPrice()); manCount+=1; + manMoney = manMoney.add(groupingMan.getYsPrice()); + manCount += 1; } else if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex()))) { @@ -270,8 +290,10 @@ tjReservation.setGroupingName(groupingWoMan.getGroupingName()); tjReservation.setYsPrice(groupingWoMan.getYsPrice()); //鍚堣 - hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); count+=1; - woManMoney=woManMoney.add(groupingWoMan.getYsPrice());woManCount+=1; + 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()))) { @@ -279,7 +301,8 @@ tjReservation.setGroupingName(groupingWz.getGroupingName()); tjReservation.setYsPrice(groupingWz.getYsPrice()); //鍚堣 - hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=1; + hjMoney = hjMoney.add(groupingWz.getYsPrice()); + count += 1; } @@ -320,6 +343,246 @@ /** + * 瀵煎叆鍥綋浣撴棰勭害鍒楄〃 + */ + @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<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("鍒嗙粍淇℃伅鏈夎璇烽噸鏂板垎缁�!"); + } + + 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<>(); + + for (TjReservation tjReservation : tjReservations) { + String idCard = tjReservation.getIdCard(); + String phoe = tjReservation.getPhoe(); + idCard= idCard.replaceAll("[',锛�;.銆� 鈥樷�淽",""); + + if (!StringUtils.isBlank(idCard) || !StringUtils.isBlank(phoe) || null != tjReservation.getDwxm()) { + //灏嗙瀛﹁鏁扮殑鎵嬫満鍙疯浆鎹㈡垚鏂囨湰褰㈠紡 + phoe = MatchUtils.translateToPlainStr(tjReservation.getPhoe()); + + if(!ids.isEmpty() && ids.contains(tjReservation.getIdCard())){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("姝よ韩浠借瘉鍙�: "+tjReservation.getIdCard()+" 閲嶅,璇锋牳瀵瑰悗涓婁紶!"); + } + + ids.add(tjReservation.getIdCard()); + +// if (sfjysfzh.equalsIgnoreCase("Y") || sfjysjh.equalsIgnoreCase("Y")) { + if ((sfjysfzh.equalsIgnoreCase("Y") && !MatchUtils.isIdCard(idCard)) || + (sfjysjh.equalsIgnoreCase("Y") && !MatchUtils.isMobileNO(phoe))) { + wrongList.add(tjReservation.getName()); + log.info(tjReservation.getName()+idCard+MatchUtils.isIdCard(idCard)+MatchUtils.isMobileNO(phoe)); + }else { + + + tjReservation.setPhoe(phoe); + + //骞撮緞 + 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 { +// //灏嗙瀛﹁鏁扮殑鎵嬫満鍙疯浆鎹㈡垚鏂囨湰褰㈠紡 +// String str = MatchUtils.translateToPlainStr(tjReservation.getPhoe()); +// tjReservation.setPhoe(str); +// +// //骞撮緞 +// 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); + } + } + + + /** * 涓汉棰勭害鎺ュ彛 */ @PostMapping("/addTjReservation") @@ -328,18 +591,18 @@ if (null == tjReservation) return AjaxResult.error(); if (null == tjReservation.getName()) return AjaxResult.error("濮撳悕涓嶈兘涓虹┖"); if (null == tjReservation.getReservationTime()) return AjaxResult.error("璇烽�夋嫨棰勭害鏃堕棿"); - boolean b=true; - if(null !=tjReservation.getIdType()){ - if(tjReservation.getIdType().equals("1")){ - b = MatchUtils.isIdCard(tjReservation.getIdCard()); - }else { - b = MatchUtils.cardValidate(tjReservation.getIdCard(), tjReservation.getIdType()); + boolean b = true; + if (null != tjReservation.getIdType()) { + if (tjReservation.getIdType().equals("1")) { + b = MatchUtils.isIdCard(tjReservation.getIdCard()); + } else { + b = MatchUtils.cardValidate(tjReservation.getIdCard(), tjReservation.getIdType()); } - }else { + } else { return AjaxResult.error("璇烽�夋嫨璇佷欢绫诲瀷"); } - if(!b) return AjaxResult.error("璇佷欢鍙锋湁璇�"); + if (!b) return AjaxResult.error("璇佷欢鍙锋湁璇�"); LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>(); wq.eq(TjReservation::getIdCard, tjReservation.getIdCard()); wq.eq(TjReservation::getIsExpire, 2); @@ -357,12 +620,12 @@ if (tjReservationService.save(tjReservation)) { // delayService.reservation(tjReservation.getId()); taskService.addTask(new TjReservationTask(tjReservation.getId(), - DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS))); + DateUtil.between(new Date(), DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS))); return AjaxResult.success("棰勭害鎴愬姛!!!"); } - LambdaQueryWrapper<TbTransition> remove=new LambdaQueryWrapper<>(); - remove.between(TbTransition::getCreateTime,DateUtil.offsetMinute(transitionService.getTbTransitionCreateTimeByCusId(tjReservation.getIdCard()),-1),new Date()); - remove.eq(TbTransition::getCusId,tjReservation.getIdCard()); + LambdaQueryWrapper<TbTransition> remove = new LambdaQueryWrapper<>(); + remove.between(TbTransition::getCreateTime, DateUtil.offsetMinute(transitionService.getTbTransitionCreateTimeByCusId(tjReservation.getIdCard()), -1), new Date()); + remove.eq(TbTransition::getCusId, tjReservation.getIdCard()); transitionService.remove(remove); return AjaxResult.error("棰勭害澶辫触"); } @@ -378,12 +641,12 @@ if (null != tjReservation) { if (null != tjReservation.getPacId()) { TjPackage aPackage = packageService.getById(tjReservation.getPacId()); - if(null !=aPackage){ + if (null != aPackage) { tjReservation.setPacName(aPackage.getPacName()); } TjDwDept dwDept = dwDeptService.getById(tjReservation.getPacId()); - if(null !=dwDept){ + if (null != dwDept) { tjReservation.setPacName(dwDept.getDwName()); } @@ -434,7 +697,8 @@ TjReservation reservation = tjReservationService.getById(id); if (null != reservation && reservation.getIsExpire() == 2) { if (tjReservationService.removeById(id)) { - transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard())); + transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard()) + .isNull(TbTransition::getTjNum)); taskService.removeTask(new TjReservationTask(id)); } } @@ -450,6 +714,7 @@ */ @PostMapping("/tjReappoint") @ApiOperation(value = "浣撴棰勭害淇敼鎺ュ彛") + @Transactional public AjaxResult tjReappoint(@RequestBody TjReservation tjReservation) { TjReservation reservation = tjReservationService.getById(tjReservation.getId()); @@ -462,7 +727,7 @@ if (tjReservationService.updateById(tjReservation)) { taskService.removeTask(new TjReservationTask(tjReservation.getId())); taskService.addTask(new TjReservationTask(tjReservation.getId(), - DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS))); + DateUtil.between(new Date(), DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(), reservation.getYxts())), DateUnit.MS))); return AjaxResult.success("鎿嶄綔鎴愬姛"); } return AjaxResult.error("鎿嶄綔澶辫触"); @@ -476,15 +741,15 @@ @ApiOperation(value = "鏍规嵁鍗曚綅id鍜屽洟闃熺紪鍙疯幏鍙栭绾﹁鎯�") public AjaxResult getSelectRecordByTeamNo(@RequestParam @ApiParam(value = "鍒嗙粍id") String groupingId) { LambdaQueryWrapper<TjGroupingPro> wq = new LambdaQueryWrapper<>(); - wq.eq(TjGroupingPro::getGroupingId,groupingId); + wq.eq(TjGroupingPro::getGroupingId, groupingId); List<TjGroupingPro> proList = groupingProService.list(wq); - if(null !=proList && proList.size()>0){ + if (null != proList && !proList.isEmpty()) { for (TjGroupingPro groupingPro : proList) { TjProject project = projectService.getById(groupingPro.getProId()); - if(null !=project){ - if (project.getProType()==null || project.getProType().equals("")) { + if (null != project) { + if (project.getProType() == null || project.getProType().isEmpty()) { groupingPro.setProType("2"); - }else { + } else { groupingPro.setProType(project.getProType()); } groupingPro.setProCheckMethod(project.getProCheckMethod()); @@ -496,7 +761,7 @@ @PostMapping("/newReservationConfirm") - @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)") + @ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛") @Transactional @RepeatSubmit public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) { @@ -517,10 +782,10 @@ asyncService.saveNewReservationConfirm(rightList); //鍥綋浜烘暟鍚堣浠锋牸 - BigDecimal compPay=new BigDecimal("0.00"); + BigDecimal compPay = new BigDecimal("0.00"); //鍥綋浜烘暟 - int tramNum=0; + int tramNum = 0; if (null != rightList && rightList.size() > 0) { String teamNo = PinyinUtil.getFirstLetter(dwDept.getDwName(), "") + DateUtil.format(new Date(), "yyMMddHHmmss"); for (TjReservation reservation : rightList) { @@ -539,7 +804,7 @@ 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")){ @@ -550,12 +815,13 @@ // }else { // reservation.setTjType(String.valueOf(2)); // } - compPay=compPay.add(dwGrouping.getYsPrice()); - tramNum+=1; + compPay = compPay.add(dwGrouping.getYsPrice()); + tramNum += 1; reservation.setTjType(String.valueOf(1)); reservation.setTeamNo(teamNo); + reservation.setYxts(dto.getYxts()); tjReservationService.save(reservation); - taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(reservation.getReservationTime()), DateUnit.MS))); + 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()); @@ -590,7 +856,7 @@ recordServiceOne.setCount(tramNum); recordServiceOne.setDifference(compPay); selectRecordService.updateById(recordServiceOne); - }else { + } else { TjTeamSelectRecord selectRecord = new TjTeamSelectRecord(); selectRecord.setCompId(dwDept.getDwId()); selectRecord.setPacId(dwDept.getId()); @@ -605,4 +871,147 @@ 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()); + + 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