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-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java | 82 +++++++ ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java | 60 +++- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java | 2 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java | 15 + ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java | 470 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 597 insertions(+), 32 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java index 9275dea..fbb30fa 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java @@ -153,12 +153,12 @@ @ApiParam(value = "椤电爜鏁�(榛樿1)") @RequestParam(defaultValue = "1") Integer page, @ApiParam(value = "鏄剧ず鏉℃暟(榛樿10)") @RequestParam(defaultValue = "10") Integer pageSize) { String userId = SecurityUtils.getLoginUser().getUserId(); - Integer ksId = null; + String ksId = null; SysUser sysUser = null; if (null != userId) { sysUser = userService.getById(Long.valueOf(userId)); if (null != sysUser) { - ksId = Math.toIntExact(sysUser.getDeptId()); + ksId = sysUser.getDeptId().toString(); } } if (ksId == null) { @@ -167,34 +167,52 @@ //鏍规嵁褰撳墠鐧婚檰鐨勪汉鐨勭瀹d锛岃幏鍙栬绉戝涓嬬殑鎵�鏈夐」鐩� List<Long> postIds = sysUser.getPostIds(); List<Long> ksproList = null; - if (postIds != null) { - for (Long postId : postIds) { - LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>(); - wq111.eq(SysUserPost::getPostId, postId); - SysUserPost one = userPostService.getOne(wq111); - if (one != null) { - SysPost byId = postService.getById(one.getPostId()); - if (byId.getPostName().equals("褰曞叆鍛�")) { - ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId)); - } - } + + String byKey =null; + +// if (postIds != null) { +// for (Long postId : postIds) { +// LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>(); +// wq111.eq(SysUserPost::getPostId, postId); +// SysUserPost one = userPostService.getOne(wq111); +// if (one != null) { +// SysPost byId = postService.getById(one.getPostId()); +// if (byId.getPostName().equals("褰曞叆鍛�")) { +// ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId)); +// } +// if (byId.getPostName().equals("鍓嶅彴")) { +// byKey = configService.selectConfigByKey("qt_kjksid"); +// +// } +// } +// } +// } else { +// ksproList = projectService.getKsTjProjectIdList(); +// } +// +// if (ksproList == null || ksproList.isEmpty()) { +// return AjaxResult.error("璇峰畬鍠勭瀹ら」鐩俊鎭�"); +// } + + List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles(); + if (null != roles && !roles.isEmpty()) { + List<SysRole> list = roles.stream().filter(item -> item.getRoleName().contains("鍓嶅彴")).collect(Collectors.toList()); + if (!list.isEmpty()) { + byKey = configService.selectConfigByKey("qt_kjksid"); } - } else { - ksproList = projectService.getKsTjProjectIdList(); } - if (ksproList == null || ksproList.isEmpty()) { - return AjaxResult.error("璇峰畬鍠勭瀹ら」鐩俊鎭�"); - } - List<TjCustomer> customerLis = new ArrayList<>(); if (null == name) name = ""; if (null == tjNumber) tjNumber = ""; Map<String, Object> map = null; + if ( StringUtil.isNotBlank(byKey)) { + ksId+=(","+byKey); + } if (type == 0) { - map = deptService.getSysDeptYjWjCustomerList13(String.valueOf(ksId), name, tjNumber, 0, page, pageSize); + map = deptService.getSysDeptYjWjCustomerList13(ksId, name, tjNumber, 0, page, pageSize); } if (type == 1) { - map = deptService.getSysDeptYjWjCustomerList13(String.valueOf(ksId), name, tjNumber, 1, page, pageSize); + map = deptService.getSysDeptYjWjCustomerList13(ksId, name, tjNumber, 1, page, pageSize); } return AjaxResult.success(map); diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java index 130f15c..b83e6c2 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProjectController.java @@ -692,7 +692,7 @@ } - @GetMapping("/updateProByBblx") + @PostMapping("/updateProByBblx") @ApiOperation(value = "淇敼鎵�閫夐」鐩殑鏍囨湰绫诲瀷") @Transactional public AjaxResult updateProByBblx(@ApiParam(value = "椤圭洰ID闆嗗悎")@RequestParam(required = false) List<String> proIds, 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("璇烽�夋嫨棰勭害瀵硅薄"); + } + } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java index fb77648..b9c5257 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java @@ -126,7 +126,6 @@ private String firmName; - /** * 閮ㄩ棬鍚� */ @@ -471,7 +470,7 @@ /** * 寮�濮嬫帴瀹虫棩鏈� */ - private Date zhiyeKsjhrq; + private String zhiyeKsjhrq; /** * 宸ュ彿 @@ -493,6 +492,18 @@ */ private String zhiyeJg; + + private String zhiyeGz; + private String zhiyeZgln; + private String zhiyeZgly; + private String zhiyeJhys; + private String zhiyeRzsj; + private String zhiyeScdw; + private String zhiyeZysksrq; + private String zhiyeZysjsrq; + private String zhiyeZysszdw; + + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java index 6ba258a..15fa84b 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReservation.java @@ -353,6 +353,88 @@ @ApiModelProperty("鏈夋晥澶╂暟") private Integer yxts; + /** + * 鎺ュ宸ラ緞骞� + */ + @ExcelImport("鎺ュ宸ラ緞骞�") + @ApiModelProperty("鎺ュ宸ラ緞骞�") + private String zhiyeJhgln; + + /** + * 鎺ュ宸ラ緞鏈� + */ + @ExcelImport("鎺ュ宸ラ緞鏈�") + @ApiModelProperty("鎺ュ宸ラ緞鏈�") + private String zhiyeJhgly; + + /** + * 寮�濮嬫帴瀹虫棩鏈� + */ + @ExcelImport("寮�濮嬫帴瀹虫棩鏈�") + @ApiModelProperty("寮�濮嬫帴瀹虫棩鏈�") + private String zhiyeKsjhrq; + + /** + * 宸ュ彿 + */ + @ExcelImport("宸ュ彿") + @ApiModelProperty("宸ュ彿") + private String zhiyeGh; + + /** + * 杞﹂棿 + */ + @ApiModelProperty("杞﹂棿") + private String zhiyeCj; + + /** + * 鑱屼笟缁撹 + */ + @ApiModelProperty("鑱屼笟缁撹") + private String zhiyeJl; + + /** + * 鑱屼笟缁撴灉 + */ + @ApiModelProperty("鑱屼笟缁撴灉") + private String zhiyeJg; + + @ExcelImport("宸ョ") + @ApiModelProperty("宸ョ") + private String zhiyeGz; + + @ExcelImport("鎬诲伐榫勫勾") + @ApiModelProperty("鎬诲伐榫勫勾") + private String zhiyeZgln; + + @ExcelImport("鎬诲伐榫勬湀") + @ApiModelProperty("鎬诲伐榫勬湀") + private String zhiyeZgly; + + @ExcelImport("鎺ュ鍥犵礌") + @ApiModelProperty("鎺ュ鍥犵礌") + private String zhiyeJhys; + + @ExcelImport("鍏ヨ亴鏃堕棿") + @ApiModelProperty("鍏ヨ亴鏃堕棿") + private String zhiyeRzsj; + + @ExcelImport("鎵�澶勫崟浣�") + @ApiModelProperty("鎵�澶勫崟浣�") + private String zhiyeScdw; + + @ExcelImport("鑱屼笟鍙插紑濮嬫棩鏈�") + @ApiModelProperty("鑱屼笟鍙插紑濮嬫棩鏈�") + private String zhiyeZysksrq; + + @ExcelImport("鑱屼笟鍙茬粨鏉熸棩鏈�") + @ApiModelProperty("鑱屼笟鍙茬粨鏉熸棩鏈�") + private String zhiyeZysjsrq; + + @ExcelImport("鑱屼笟鍙叉墍鍦ㄥ崟浣�") + @ApiModelProperty("鑱屼笟鍙叉墍鍦ㄥ崟浣�") + private String zhiyeZysszdw; + @Override -- Gitblit v1.8.0