Compare commits

..

No commits in common. "a2855b373a043dae7320c2ce72de7f0e33eb6bf3" and "a487501c1f98d08e70a472d549ddecd9f031f315" have entirely different histories.

12 changed files with 47 additions and 193 deletions

View File

@ -52,11 +52,6 @@
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
</dependency>
<dependency>
<groupId>com.czlis</groupId>
<artifactId>lisresources</artifactId>
</dependency>
</dependencies>

View File

@ -4,20 +4,16 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BarCodeParam {
public class MZBarCodeParam {
private String sqh;
private String brxm;
private String brxb;
private String nl;
private String sfxmmc;
private String ksmc;
private Date sqsj;
private String brdh;

View File

@ -4,12 +4,10 @@ import com.czlis.common.config.RuoYiConfig;
import lombok.extern.slf4j.Slf4j;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.engine.util.JRSaver;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.export.SimpleExporterInput;
import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
import net.sf.jasperreports.export.SimplePrintServiceExporterConfiguration;
@ -18,7 +16,6 @@ import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.util.HashMap;
import java.util.List;
@ -434,48 +431,6 @@ public class JasperReportUtil {
}
}
/**
* 生成PDF报表
* @param templatePath JRXML模板文件路径
* @param outputPath 生成的PDF文件保存路径
* @param parameters 报表参数
* @param dataSource 报表数据源
* @throws JRException JasperReports异常
*/
public static void generatePdf(String templatePath, String outputPath,
Map<String, Object> parameters,
JRDataSource dataSource) throws Exception {
// 检查模板文件是否存在 + 是否为文件(避免误传目录路径)
File templateFile = new File(templatePath);
if (!templateFile.exists() || !templateFile.isFile()) {
throw new IllegalArgumentException("模板文件不存在或路径非法!模板路径:" + templatePath);
}
File outputFile = new File(outputPath);
File outputParentDir = outputFile.getParentFile(); // 获取PDF的父目录(如:C:/output/report.pdf → 父目录是C:/output)
// 若父目录不存在,则创建(mkdirs()支持创建多级目录,比mkdir()更实用)
if (outputParentDir != null && !outputParentDir.exists()) {
boolean isDirCreated = outputParentDir.mkdirs();
// 校验目录是否创建成功(防止权限不足等问题导致创建失败)
if (!isDirCreated) {
throw new IOException("PDF输出目录创建失败!请检查路径权限。输出目录:" + outputParentDir.getAbsolutePath());
}
System.out.println("已自动创建PDF输出目录:" + outputParentDir.getAbsolutePath());
}
// 加载JRXML模板
JasperDesign jasperDesign = JRXmlLoader.load(templatePath);;
// 编译模板
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
// 填充报表数据
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);
// 导出为PDF
JasperExportManager.exportReportToPdfFile(jasperPrint, outputPath);
}
}

View File

@ -3,33 +3,33 @@ package com.czlis.interfaceCommon.utils;
import cn.hutool.core.bean.BeanUtil;
import com.czlis.common.config.RuoYiConfig;
import com.czlis.common.core.domain.Result;
import com.czlis.common.utils.ip.IpUtils;
import com.czlis.interfaceCommon.mapper.BackPaperMapper;
import com.czlis.interfaceCommon.pojo.entity.BackPaperDetail;
import com.czlis.interfaceCommon.pojo.entity.BackPaperParam;
import com.czlis.interfaceCommon.pojo.entity.LabRptgetruledetailCX;
import com.czlis.interfaceCommon.pojo.entity.BarCodeParam;
import com.czlis.interfaceCommon.pojo.entity.MZBarCodeParam;
import lombok.extern.slf4j.Slf4j;
import net.sf.jasperreports.engine.JREmptyDataSource;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.printing.Orientation;
import org.apache.pdfbox.printing.PDFPrintable;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.MediaSizeName;
import java.awt.print.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.*;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.printing.Scaling;
import org.apache.pdfbox.pdmodel.PDPage;
import javax.print.attribute.standard.OrientationRequested;
@ -42,13 +42,8 @@ public class ReportUtil {
@Autowired
BackPaperMapper backPaperMapper;
@Value("${server.port:}")
private String port;
@Value("${czlis.printURL:}")
String printURL;
public void printBarCode(BarCodeParam mzBarCodeParam) {
public void printBarCode(MZBarCodeParam mzBarCodeParam) {
try {
//构造数据
Map parameters = new HashMap();
@ -226,29 +221,6 @@ public class ReportUtil {
}
public Result printToPdf(BarCodeParam barCodeParam, String pdfName){
String templatePath = RuoYiConfig.getProfile()+"/templates/barcode_zy.jrxml"; // 模板文件路径
String outputPath = RuoYiConfig.getProfile()+"/config/static/"+pdfName+".pdf"; // PDF输出路径(多级目录会自动创建)
log.info("打印输入输出地址:{},{}",templatePath,outputPath);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(barCodeParam);
try {
JasperReportUtil.generatePdf(templatePath,outputPath,stringObjectMap,new JREmptyDataSource());
} catch (Exception e) {
e.printStackTrace();
log.error("打印条码失败,参数{}",barCodeParam,e);
}
String httpPath = "";
if(printURL == null || printURL.equals("")){
httpPath = "http://"+ IpUtils.getHostIp() +":" + port + "/"+pdfName+".pdf";
}else{
httpPath = "http://"+ printURL +":" + port + "/"+pdfName+".pdf";
}
log.info("传给前端的pdf地址:{}",httpPath);
return new Result("0","打印成功!",httpPath);
}
/*** 获取服务器当前的数据库连接事务对象
* 通过@Qualifier获取实际当前连接事务对象,一般是DynamicDataSource
* 传递服务器获取连接(使用 Spring 工具类确保连接与事务同步)

View File

@ -78,10 +78,11 @@ public class ComDictServiceImpl implements ComDictService {
}
comDict.setZjf(pinyin);
comDict.setZdbz("N");
comDictMapper.insertComDict(comDict);
List<ComDict> comDictList = commonUtil.getComDictList(comDict.getZdlb());
commonUtil.setDictCache(comDict.getZdlb(), comDictList);
int row = comDictMapper.insertComDict(comDict);
if (row > 0) {
List<ComDict> comDictList = commonUtil.getComDictList(comDict.getZdlb());
commonUtil.setDictCache(comDict.getZdlb(), comDictList);
}
return new Result("0", "新增字典成功!");
}

View File

@ -8,7 +8,7 @@ import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.common.utils.SecurityUtils;
import com.czlis.common.utils.ip.IpUtils;
import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants;
import com.czlis.interfaceCommon.pojo.entity.BarCodeParam;
import com.czlis.interfaceCommon.pojo.entity.MZBarCodeParam;
import com.czlis.interfaceCommon.pojo.inter.DayMessage;
import com.czlis.interfaceCommon.pojo.inter.GetReqInterface;
import com.czlis.interfaceCommon.utils.CommonUtil;
@ -94,7 +94,7 @@ public class MZCXServiceImpl implements MZCXService {
public Result printSQD(String sqh) {
LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh);
//List<LabReqdetail> labReqdetailList = commonUtil.getLabReqdetailList(sqh);
BarCodeParam mzBarCodeParam = new BarCodeParam();
MZBarCodeParam mzBarCodeParam = new MZBarCodeParam();
mzBarCodeParam.setSqh(sqh);
Map<String, String> ageFromBirthDay = LisUtil.getAgeFromBirthDay(DateUtil.format(labReqmainOne.getBrsr(), "yyyy-MM-dd HH:mm:ss"));
String age = ageFromBirthDay.get("age");

View File

@ -6,7 +6,6 @@ import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.common.core.page.TableDataInfo;
import com.czlis.interfaceCommon.utils.LisInterfaceUtil;
import com.czlis.zycx.pojo.Web_getBarcode;
import com.czlis.zycx.service.ZycxService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -34,51 +33,35 @@ public class ZycxController extends BaseController {
@GetMapping("/query")
@Anonymous
//@PreAuthorize("@ss.hasPermi('zycx:interface:query')")
public Result getSQDInfo(String dept,String userid,String st,String et,String yljg){
log.info("查询申请单,zyreq/query:{},{},{},{},{}",dept,userid,st,et,yljg);
List<Web_getBarcode> sqdInfoList = zycxService.getSQDInfo(dept,userid,st,et,yljg);
return new Result("0","查询成功!",sqdInfoList);
public TableDataInfo getSQDInfo(LabReqmain labReqmain){
startPage();
List<LabReqmain> sqdInfoList = zycxService.getSQDInfo(labReqmain);
return getDataTable(sqdInfoList);
}
@ApiOperation("生成条码")
@GetMapping("/add")
@Anonymous
public Result createSQD(String dept,String userid,String st,String et,String yljg){
log.info("调用生成条码接口,zyreq/add:{},{},{},{},{}",dept,userid,st,et,yljg);
log.info("调用生成条码接口:{},{},{},{},{}",dept,userid,st,et,yljg);
return zycxService.createSQD(dept,userid,st,et,yljg);
}
@ApiOperation("执行条码")
@GetMapping("/exec")
@GetMapping("/print")
@Anonymous
public Result execSQD(String[] sqh,String userid,String status,String yljg){
log.info("执行条码接口,zyreq/print:{},{},{},{}",sqh,userid,status,yljg);
log.info("执行条码接口:{},{},{},{}",sqh,userid,status,yljg);
return zycxService.execSQD(sqh,userid,status,yljg);
}
@ApiOperation("获取申请单明细数据")
@GetMapping("/detail")
@Anonymous
public Result getSQDDetail(String sqh){
log.info("获取申请单明细数据,zyreq/detail:{}",sqh);
return zycxService.getSQDDetail(sqh);
}
@Anonymous
@ApiOperation("获取申请单主表数据")
@GetMapping("/reqmain")
public Result getSQDMain(LabReqmain labReqmain){
log.info("获取申请单主表数据,zyreq/reqmain:{}",labReqmain);
return zycxService.getSQDMain(labReqmain);
}
@Anonymous
@GetMapping("/test1")
public Result test1(String sqh){
return zycxService.test1(sqh);
}
// @GetMapping("/test1")
// public Result test1(String inValue){
// log.info("测试的数据:{}",inValue);
// return lisInterfaceUtil.invokeSP(inValue);
// }

View File

@ -1,7 +1,6 @@
package com.czlis.zycx.mapper;
import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.zycx.pojo.Web_getBarcode;
import java.util.List;
import java.util.Map;
@ -9,7 +8,7 @@ import java.util.Map;
public interface ZycxMapper {
List<Web_getBarcode> getSQDInfo(Web_getBarcode webGetBarcode);
List<LabReqmain> getSQDInfo(LabReqmain labReqmain);
void createSQD(Map<String, Object> map);

View File

@ -24,7 +24,6 @@ public class Web_getBarcode {
private String brdh;
private String brxm;
private String brxb;
private String brxbname;
private Date brsr;
private String bz1;
private String bz2;
@ -34,7 +33,6 @@ public class Web_getBarcode {
private String ch;
private String yblx;
private String zxys;
private String zxysname;
private Date zxsj;
private String bgddh;
private BigDecimal costs;
@ -51,7 +49,6 @@ public class Web_getBarcode {
private String contactman;
private String cyr;
private String bbsjr;
private String bbsjrname;
private Date bbsjsj;
private String refused;
private Date confirmtime;
@ -70,7 +67,4 @@ public class Web_getBarcode {
private String ksname;
private String sqysname;
private String jsysname;
private Date st;
private Date et;
private String jymd;
}

View File

@ -2,20 +2,13 @@ package com.czlis.zycx.service;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.zycx.pojo.Web_getBarcode;
import java.util.List;
public interface ZycxService {
List<Web_getBarcode> getSQDInfo(String dept, String userid, String st, String et, String yljg);
List<LabReqmain> getSQDInfo(LabReqmain labReqmain);
Result createSQD(String dept, String userid, String st, String et, String yljg);
Result execSQD(String[] sqh,String userid,String status,String yljg );
Result getSQDDetail(String sqh);
Result getSQDMain(LabReqmain labReqmain);
Result test1(String sqh);
}

View File

@ -2,18 +2,17 @@ package com.czlis.zycx.service.impl;
import cn.hutool.core.date.DateUtil;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.LabReqdetail;
import com.czlis.common.core.domain.entity.lis.LabReqmain;
import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants;
import com.czlis.interfaceCommon.pojo.entity.BarCodeParam;
import com.czlis.interfaceCommon.pojo.entity.MZBarCodeParam;
import com.czlis.interfaceCommon.pojo.inter.GetReqInterface;
import com.czlis.interfaceCommon.pojo.inter.SetReqStatus;
import com.czlis.interfaceCommon.service.LisInterfaceType;
import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.interfaceCommon.utils.LisInterfaceUtil;
import com.czlis.interfaceCommon.utils.LisUtil;
import com.czlis.interfaceCommon.utils.ReportUtil;
import com.czlis.zycx.mapper.ZycxMapper;
import com.czlis.zycx.pojo.Web_getBarcode;
import com.czlis.zycx.service.ZycxService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -42,14 +41,8 @@ public class ZycxServiceImpl implements ZycxService {
@Override
public List<Web_getBarcode> getSQDInfo(String dept, String userid, String st, String et, String yljg) {
Web_getBarcode webGetBarcode = new Web_getBarcode();
webGetBarcode.setKsdh(dept);
webGetBarcode.setSt(DateUtil.parse(st,"yyyy-MM-dd HH:mm:ss"));
webGetBarcode.setEt(DateUtil.parse(et,"yyyy-MM-dd HH:mm:ss"));
webGetBarcode.setYljg(yljg);
webGetBarcode.setBrly("3");
return zycxMapper.getSQDInfo(webGetBarcode);
public List<LabReqmain> getSQDInfo(LabReqmain labReqmain) {
return zycxMapper.getSQDInfo(labReqmain);
}
@Override
@ -84,24 +77,6 @@ public class ZycxServiceImpl implements ZycxService {
}
@Override
public Result getSQDDetail(String sqh) {
List<LabReqdetail> labReqdetailList = commonUtil.getLabReqdetailList(sqh);
return new Result("0","获取数据成功!",labReqdetailList);
}
@Override
public Result getSQDMain(LabReqmain labReqmain) {
String sqh = labReqmain.getSqh();
LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh);
return new Result("0","获取数据成功!",labReqmainOne);
}
@Override
public Result test1(String sqh) {
return printBarCode(sqh);
}
public Result createSQDExecSP(String dept, String userid, String st, String et, String yljg){
Map<String, Object> map = new HashMap<>();
@ -165,14 +140,14 @@ public class ZycxServiceImpl implements ZycxService {
public Result printBarCode(String sqh){
LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh);
//List<LabReqdetail> labReqdetailList = commonUtil.getLabReqdetailList(sqh);
BarCodeParam barCodeParam = new BarCodeParam();
barCodeParam.setSqh(sqh);
MZBarCodeParam mzBarCodeParam = new MZBarCodeParam();
mzBarCodeParam.setSqh(sqh);
Map<String, String> ageFromBirthDay = LisUtil.getAgeFromBirthDay(DateUtil.format(labReqmainOne.getBrsr(), "yyyy-MM-dd HH:mm:ss"));
String age = ageFromBirthDay.get("age");
String unit = ageFromBirthDay.get("unit");
barCodeParam.setNl(age + unit);
barCodeParam.setBrxm(labReqmainOne.getBrxm());
mzBarCodeParam.setNl(age + unit);
mzBarCodeParam.setBrxm(labReqmainOne.getBrxm());
String brxb = labReqmainOne.getBrxb();
switch (brxb) {
case "1":
@ -185,10 +160,9 @@ public class ZycxServiceImpl implements ZycxService {
brxb = "";
}
barCodeParam.setBrxb(brxb);
barCodeParam.setSfxmmc(labReqmainOne.getJymd());
log.info("传给打印的数据为:{},{}",barCodeParam,sqh);
reportUtil.printToPdf(barCodeParam,sqh);
mzBarCodeParam.setBrxb(brxb);
mzBarCodeParam.setSfxmmc(labReqmainOne.getJymd());
reportUtil.printBarCode(mzBarCodeParam);
return new Result("0", "打印成功!");
}

View File

@ -5,28 +5,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.czlis.zycx.mapper.ZycxMapper">
<sql id="selectLabReqmainVo">
select a.*,b.sflbmc as bgddhname,b.sampletips,b.bkcolor,
(case rtrim(a.brxb) when '1' then '男' when '2' then '女' else '' end) as brxbname,
(select zdmc from com_dict where zdlb = 'SRD' AND zddh = a.sqys) as sqysname,
(select zdmc from com_dict where zdlb = 'SRD' AND zddh = a.bbsjr) as bbsjrname,
(select yhxm from com_usr where yhdh = a.zxys) as zxysname,
(select yhxm from com_usr where yhdh = a.jsys) as jsysname,
(select zdmc from com_dict where zdlb = 'DP' AND zddh = a.ksdh) as ksname
from lab_reqmain a,lab_feeitemclass b where a.bgddh = b.sflbdh
select a.*,b.sflbmc,b.sampletips from lab_reqmain a,lab_feeitemclass b where a.bgddh = b.sflbdh
</sql>
<select id="getSQDInfo" parameterType="com.czlis.zycx.pojo.Web_getBarcode" resultType="com.czlis.zycx.pojo.Web_getBarcode">
<select id="getSQDInfo" parameterType="com.czlis.common.core.domain.entity.lis.LabReqmain" resultType="com.czlis.common.core.domain.entity.lis.LabReqmain">
<include refid="selectLabReqmainVo"></include>
<if test="sqh != null and sqh != ''"> and a.sqh = #{sqh}</if>
<if test="zt != null and zt != ''"> and a.zt = #{zt}</if>
<if test="ksdh != null and ksdh != ''"> and a.ksdh = #{ksdh}</if>
<if test="brly != null and brly != ''"> and a.brly = #{brly}</if>
<if test="yljg != null and yljg != ''"> and a.yljg = #{yljg}</if>
<if test="st != null"><!-- 开始时间检索 -->
AND a.sqsj &gt;= CONVERT(varchar(100), #{st}, 120)
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND a.sqsj &gt;= CONVERT(varchar(100), #{params.beginTime}, 120)
</if>
<if test="et != null"><!-- 结束时间检索 -->
AND a.sqsj &lt;= CONVERT(varchar(100), #{et}, 120)
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND a.sqsj &lt;= CONVERT(varchar(100), #{params.endTime}, 120)
</if>
</select>