From a6ae7c44fccca62e535c763aae0e599d2f3f73b0 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期三, 29 五月 2024 14:27:53 +0800
Subject: [PATCH] 增加通过多个base64PDF合并为一个
---
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java | 260 ++++++++++++++++++++++-----------------------------
1 files changed, 113 insertions(+), 147 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..26fafeb 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();
+ }
+ }
+ }
+ }
}
+
/**
@@ -133,42 +203,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 = "鍥綋瀵煎叆 (鏂扮増鏈�)")
+ @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 +215,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<>();
@@ -276,102 +319,6 @@
}
- @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("璇烽�夋嫨鍗曚綅淇℃伅");
- }
- 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);
-
- 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("璇烽�夋嫨浣撴鍐呭");
- }
- return AjaxResult.error("璇烽�夋嫨棰勭害瀵硅薄");
- }
-
-
/**
* 涓汉棰勭害鎺ュ彛
*/
@@ -408,7 +355,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 +377,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 +414,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 +435,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));
}
}
}
@@ -500,6 +460,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(tjReservation.getReservationTime()), DateUnit.MS)));
return AjaxResult.success("鎿嶄綔鎴愬姛");
}
return AjaxResult.error("鎿嶄綔澶辫触");
@@ -519,7 +482,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());
@@ -535,11 +498,10 @@
@PostMapping("/newReservationConfirm")
@ApiOperation(value = "鍥綋棰勭害纭鎺ュ彛 (鏂扮増鏈�)")
@Transactional
+ @RepeatSubmit
public AjaxResult newReservationConfirm(@RequestBody ConfirmDto dto) {
//棰勭害鐨勬墍鏈変汉
List<TjReservation> rightList = dto.getReservations();
-
-
//棰勭害鏃堕棿
String reservationTime = dto.getReservationTime();
@@ -577,19 +539,23 @@
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);
tjReservationService.save(reservation);
- delayService.reservation(reservation.getId());
+ taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(reservation.getReservationTime()), DateUnit.MS)));
}
LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>();
wq0.eq(TjCompPay::getCompId, dwDept.getDwId());
--
Gitblit v1.8.0