From da2ad4874c91ee6e14654eb11f35676ebcd1f66b Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期四, 24 四月 2025 18:17:29 +0800 Subject: [PATCH] zjh20250424 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java | 3 ltkj-admin/src/main/resources/application-test.yml | 1 ltkj-admin/src/main/java/com/ltkj/web/config/captcha/CommonController.java | 44 ++++++++++- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java | 138 ++++++++++++++------------------- ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java | 35 ++++++++ ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/CsProVo.java | 3 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjXdtgmdjg.java | 1 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java | 13 ++- ltkj-admin/src/main/resources/application-dev.yml | 1 ltkj-admin/src/main/resources/application-prod.yml | 1 10 files changed, 148 insertions(+), 92 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/config/captcha/CommonController.java b/ltkj-admin/src/main/java/com/ltkj/web/config/captcha/CommonController.java index a480f19..eecd774 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/config/captcha/CommonController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/config/captcha/CommonController.java @@ -2,10 +2,10 @@ import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -14,6 +14,7 @@ import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.utils.SnowFlake; import com.ltkj.common.utils.uuid.UUID; +import com.ltkj.db.DataSourceContextHolder; import com.ltkj.hosp.domain.SysAttachment; import com.ltkj.hosp.service.ISysAttachmentService; import com.ltkj.system.service.ISysDictDataService; @@ -48,6 +49,9 @@ @Autowired private ServerConfig serverConfig; + + @Value("${path.xdtfilePath}") + private String value; private static final String FILE_DELIMETER = ","; @@ -274,4 +278,36 @@ } return AjaxResult.success("鍒犻櫎鎴愬姛"); } + + + + /** + * 蹇冪數鍥炬姤鍛婁笂浼犲浘鐗囨柟娉� + */ + @PostMapping("/uploadXdtFile") + @ApiOperation(value = "蹇冪數鍥炬姤鍛婁笂浼犲浘鐗囨柟娉�") + public AjaxResult uploadXdtFile(@ApiParam("鏂囦欢") @RequestPart("file") MultipartFile file, + @ApiParam("浣撴鍙�") String tjh,@ApiParam("椤圭洰id") String proId) throws Exception { + try { + // 涓婁紶鏂囦欢璺緞 + // 绗竴姝ワ細鐢熸垚鏂囦欢骞朵繚瀛� + String key = DataSourceContextHolder.getDataSourceKey(); + key = key.replace("ltkjpeis10_",""); + String filePath = value + File.separator + key + File.separator; + String outputFileName = tjh +"_" +proId; + // 涓婁紶骞惰繑鍥炴柊鏂囦欢鍚嶇О + String fileName = FileUploadUtils.upload(filePath,outputFileName, file); + String url = filePath + fileName; + Path path = Paths.get(url); + byte[] data = Files.readAllBytes(path); + String base64 = Base64.getEncoder().encodeToString(data); + AjaxResult ajax = AjaxResult.success(); + ajax.put("url", url); + ajax.put("fileName", fileName); + ajax.put("base64", base64); + return ajax; + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + } } diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java index d683c46..7890dfa 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java @@ -434,9 +434,6 @@ public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,TjReportTemplate zongJianYiShiQianMing) { AjaxResult ajaxResult = null; try { -// ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate); -// ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate); - ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing); } catch (Exception e) { e.printStackTrace(); diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java index ffbea94..b9a4e42 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java @@ -1,5 +1,10 @@ package com.ltkj.web.controller.system; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -10,6 +15,8 @@ import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.utils.SecurityUtils; +import com.ltkj.common.utils.file.FileUploadUtils; +import com.ltkj.db.DataSourceContextHolder; import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; @@ -19,7 +26,9 @@ 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.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Isolation; @@ -65,7 +74,8 @@ private LtkjExamJcbgdService jcbgdService; @Resource private LtkjExamJcsqdService jcsqdService; - + @Value("${path.xdtfilePath}") + private String value; /** * 鏌ヨ浣撴蹇冪數鍥剧鐞嗗垪琛� */ @@ -220,82 +230,6 @@ @ApiParam (value = "寮�濮嬫椂闂�") @RequestParam (required = false) String beginTime, @ApiParam (value = "缁撴潫鏃堕棿") @RequestParam (required = false) String endTime) { -// DateTime beginTimes = null; -// DateTime endTimes = null; -// if (null != beginTime && null != endTime) { -// beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime)); -// endTimes = DateUtil.endOfDay(DateUtil.parse(endTime)); -// } -// //鍒濆鍖栦綋妫�璁㈠崟琛� -// List<TjOrder> orderList = null; -// List<TjCustomer> customerList = new ArrayList<>(); -// Map<String, Object> map = new HashMap<>(); -// -// if (checkStatus == 0) -// asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes)); -// if (checkStatus == 1) -// asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes)); -// -// //鏍规嵁濮撳悕鏌ヨ -// if (null != name && !"".equals(name)) { -// List<TjCustomer> list = customerService.getTjCustomerList(name); -// if (null != list && list.size() > 0) { -// List<TjCustomer> lists = new ArrayList<>(); -// for (TjCustomer customer : list) { -// orderList = orderService.getCsTjOrderListByCusId(customer.getCusId()); -// if (null != orderList && orderList.size() > 0) { -// for (TjOrder tjOrder : orderList) { -// customer.setTjNumber(tjOrder.getTjNumber()); -// customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus())); -// customer.setOrderId(tjOrder.getOrderId()); -// customer.setTjTime(tjOrder.getCreateTime()); -// customer.setFinishTime(tjOrder.getFinishTime()); -// customer.setCusName(MatchUtils.hideCusName(customer.getCusName())); -// customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); -// customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); -// customer.setConfirmStatus(String.valueOf(tjOrder.getStatus())); -// if (tjOrder.getFirmId().equals("0")) { -// customer.setTjCompName(null); -// } else { -// customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName()); -// } -// lists.add(customer); -// } -// } -// } -// List<TjCustomer> customers = null; -// if (lists.size() > 0) { -// customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); -// } -// map.put("customers", customers); -// map.put("total", lists.size()); -// return AjaxResult.success(map); -// } -// return AjaxResult.success("鏆傛棤鏁版嵁"); -// } -// -// //鏉′欢鏌ヨ -// if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) { -// orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); -// return getResult(page, pageSize, orderList, customerList, map); -// } -// -// List<TjCustomer> customers = null; -// if (checkStatus == 0) { -// customers = redisCache.getCacheMapValue("cScheck", "ws"); -// } -// if (checkStatus == 1) { -// customers = redisCache.getCacheMapValue("cScheck", "ys"); -// } -// if (customers != null && customers.size() > 0) { -// List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); -// map.put("customers", customerLists); -// map.put("total", customers.size()); -// return AjaxResult.success(map); -// } else { -// orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); -// return getResult(page, pageSize, orderList, customerList, map); -// } Long deptId = SecurityUtils.getDeptId(); log.info("褰卞儚妫�鏌ュ垪琛�(楠ㄥ瘑搴﹀拰蹇冪數鍥�)鎺ュ彛 褰撳墠鐧诲綍浜虹瀹�"+deptId); String value = String.valueOf(compId); @@ -314,6 +248,28 @@ Long deptId = SecurityUtils.getDeptId(); log.info("褰卞儚妫�鏌ラ瀵嗗害蹇冪數鍥鹃〉闈㈢偣鍑讳綋妫�浜哄憳灞曠ず浣撴椤圭洰鎺ュ彛褰撳墠鐧诲綍浜虹瀹�"+deptId); List<CsProVo> list = remarkService.getYxJcXx(tjNumber,deptId.toString()); + if(null !=list && !list.isEmpty()){ + for (CsProVo vo : list) { + LambdaQueryWrapper<TjXdtgmdjg> wq=new LambdaQueryWrapper<>(); + wq.eq(TjXdtgmdjg::getTjh,tjNumber); + wq.eq(TjXdtgmdjg::getProId,vo.getProId()); + TjXdtgmdjg xdtgmdjg = xdtgmdjgService.getOne(wq); + if(null !=xdtgmdjg){ + if(StringUtil.isNotBlank(xdtgmdjg.getUrl())){ + Path path = Paths.get(xdtgmdjg.getUrl()); + byte[] data = null; + try { + data = Files.readAllBytes(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + String base64 = Base64.getEncoder().encodeToString(data); + if(StringUtil.isNotBlank(base64)) vo.setImageUrl(base64); + } + } + } + + } return AjaxResult.success(list); } @@ -323,7 +279,8 @@ public AjaxResult addYxJcXx(@ApiParam (value = "浣撴鍙�") @RequestParam String tjNumber, @ApiParam (value = "椤圭洰id") @RequestParam String proId, @ApiParam (value = "妫�鏌ユ墍瑙�") @RequestParam String jcsj, - @ApiParam (value = "妫�鏌ョ粨璁�") @RequestParam String jcjl) { + @ApiParam (value = "妫�鏌ョ粨璁�") @RequestParam String jcjl, + @ApiParam (value = "鍥剧墖鍦板潃") @RequestParam(required = false) String url) { try { SysUser user = SecurityUtils.getLoginUser().getUser(); TjOrder order = orderService.getOrderByTjNum(tjNumber); @@ -356,6 +313,7 @@ xdtgmdjg.setJcjl(jcjl); xdtgmdjg.setCreateBy(user.getNickName()); xdtgmdjg.setCreateId(user.getUserId().toString()); + if(StringUtil.isNotBlank(url)) xdtgmdjg.setUrl(url); xdtgmdjgService.save(xdtgmdjg); saveTjXdtgmdjgByJcbgd(xdtgmdjg); } @@ -385,7 +343,11 @@ jcbgd.setXmdm(xdtgmdjg.getProId()); jcbgd.setXmmc(xdtgmdjg.getProName()); jcbgd.setBgNr(xdtgmdjg.getJcsj()); - jcbgd.setBgUrl(""); + if(StringUtil.isNotBlank(xdtgmdjg.getUrl())){ + jcbgd.setBgUrl(xdtgmdjg.getUrl()); + }else { + jcbgd.setBgUrl(""); + } jcbgd.setShysxm(xdtgmdjg.getCreateBy()); jcbgd.setShysdm(xdtgmdjg.getCreateId()); jcbgd.setYxzd(xdtgmdjg.getJcjl()); @@ -417,7 +379,25 @@ if(null !=xdtgmdjg ){ map.put("jcsj",xdtgmdjg.getJcsj()); map.put("jcjl",xdtgmdjg.getJcjl()); + if(StringUtil.isNotBlank(xdtgmdjg.getUrl())){ + Path path = Paths.get(xdtgmdjg.getUrl()); + byte[] data = null; + try { + data = Files.readAllBytes(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + String base64 = Base64.getEncoder().encodeToString(data); + map.put("tp",base64); + }else { + map.put("tp",null); + } return AjaxResult.success(map); + }else { + TjProject tjProject = projectService.getById(proId); + map.put("jcsj",""); + map.put("jcjl",tjProject.getProDefault()==null ? "":tjProject.getProDefault()); + map.put("tp",null); } return AjaxResult.success(map); } diff --git a/ltkj-admin/src/main/resources/application-dev.yml b/ltkj-admin/src/main/resources/application-dev.yml index e97d53d..a2e4516 100644 --- a/ltkj-admin/src/main/resources/application-dev.yml +++ b/ltkj-admin/src/main/resources/application-dev.yml @@ -190,6 +190,7 @@ # 浣撴鎶ュ憡妯℃澘鍜屾姤鍛婁复鏃剁敓鎴愬瓨鍌ㄧ殑鏂囦欢澶硅矾寰� path: filePath: D:\Tjreport + xdtfilePath: C:\TjXdt # nginx鍥剧墖鏈嶅姟鍣� reportServer: https://ltpeis.xaltjdkj.cn:5516/ diff --git a/ltkj-admin/src/main/resources/application-prod.yml b/ltkj-admin/src/main/resources/application-prod.yml index f0799e2..8d5b5d1 100644 --- a/ltkj-admin/src/main/resources/application-prod.yml +++ b/ltkj-admin/src/main/resources/application-prod.yml @@ -190,6 +190,7 @@ # 浣撴鎶ュ憡妯℃澘鍜屾姤鍛婁复鏃剁敓鎴愬瓨鍌ㄧ殑鏂囦欢澶硅矾寰� path: filePath: C:\Tjreport + xdtfilePath: C:\TjXdt # nginx鍥剧墖鏈嶅姟鍣� reportServer: https://ltpeis.xaltjdkj.cn:5516/ diff --git a/ltkj-admin/src/main/resources/application-test.yml b/ltkj-admin/src/main/resources/application-test.yml index 5f82691..bf8e83a 100644 --- a/ltkj-admin/src/main/resources/application-test.yml +++ b/ltkj-admin/src/main/resources/application-test.yml @@ -190,6 +190,7 @@ # 浣撴鎶ュ憡妯℃澘鍜屾姤鍛婁复鏃剁敓鎴愬瓨鍌ㄧ殑鏂囦欢澶硅矾寰� path: filePath: C:\Tjreport + xdtfilePath: C:\TjXdt # nginx鍥剧墖鏈嶅姟鍣� reportServer: https://ltpeis.xaltjdkj.cn:5516/ diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java index 12be581..97cab76 100644 --- a/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java +++ b/ltkj-common/src/main/java/com/ltkj/common/utils/file/FileUploadUtils.java @@ -78,6 +78,14 @@ } } + public static final String upload(String baseDir,String fileName,MultipartFile file) throws IOException { + try { + return upload(baseDir,fileName, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION); + } catch (Exception e) { + throw new IOException(e.getMessage(), e); + } + } + /** * 鏂囦欢涓婁紶 * @@ -102,16 +110,38 @@ String fileName = extractFilename(file); - //String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath(); String absPath = getAbsoluteFile(baseDir, fileName).getPath(); file.transferTo(Paths.get(absPath)); return getPathFileName(baseDir, fileName); + } + + public static final String upload(String baseDir,String fileName, MultipartFile file, String[] allowedExtension) + throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException, + InvalidExtensionException { + int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length(); + if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) { + throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH); + } + + assertAllowed(file, allowedExtension); + + fileName =StringUtils.format("{}/{}.{}", DateUtils.datePath(), + fileName, getExtension(file)); + + String absPath = getAbsoluteFile(baseDir, fileName).getPath(); + file.transferTo(Paths.get(absPath)); + return fileName; } /** * 缂栫爜鏂囦欢鍚� */ public static final String extractFilename(MultipartFile file) { + return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), + FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); + } + + public static final String extractXdtFilename(MultipartFile file) { return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(), FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file)); } @@ -130,9 +160,10 @@ public static final String getPathFileName(String uploadDir, String fileName) throws IOException { int dirLastIndex = ltkjConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); - return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; + return Constants.RESOURCE_PREFIX + currentDir + "/" + fileName; } + /** * 鏂囦欢澶у皬鏍¢獙 * diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjXdtgmdjg.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjXdtgmdjg.java index 5852cff..e9f8393 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjXdtgmdjg.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjXdtgmdjg.java @@ -25,4 +25,5 @@ private String proName; private String jcsj; private String jcjl; + private String url; } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java index ec4997e..995663e 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java @@ -32,10 +32,15 @@ List<LtkjExamJcsqd> getLtkjJcsqdByTjh(String tjh); - @Insert("INSERT INTO ltkj_exam_jcsqd \n" + - "SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw,\n" + - "a.yxzd jgzt,a.yxbx jgbx,sysdate()\n" + - "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} GROUP BY a.xmmc") +// @Insert("INSERT INTO ltkj_exam_jcsqd \n" + +// "SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw,\n" + +// "a.yxzd jgzt,a.yxbx jgbx,'0',sysdate(),'0'\n" + +// "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} GROUP BY a.xmmc") +@Insert("INSERT INTO ltkj_exam_jcsqd (`tjh`, `tmh`, `jclx`, `jczlx`, `bgys`, `bgysid`, " + + "`sqsj`, `jgsj`, `jcxmmc`, `jcxmid`, `bw`, `jgzt`, `jgbx`, `lx`, `create_time`)\n" + + "SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw,\n" + + "a.yxzd jgzt,a.bg_nr jgbx,'0',sysdate()\n" + + "FROM ltkj_exam_jcbgd a WHERE a.tjh=#{tjh} and a.lx=0 GROUP BY a.xmmc") void saveLtkjExamJcsqd(String tjh); @Select("SELECT a.tjh,a.tmh,NULL jclx,NULL jczlx,a.shysxm bgys,a.shysdm bgysid,a.sqsj,a.zdsj jgsj, a.xmmc jcxmmc,a.xmdm jcxmid,a.jcbw bw," + diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/CsProVo.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/CsProVo.java index edd3dbd..d4f0deb 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/CsProVo.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/CsProVo.java @@ -61,4 +61,7 @@ private Date zhupdateTime; private Long deptId; + + @ApiModelProperty("鍥剧墖") + private String imageUrl; } -- Gitblit v1.8.0