diff --git a/api-admin/.gitignore b/api-admin/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/api-admin/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/api-admin/pom.xml b/api-admin/pom.xml
index 00c1970..954a1e5 100644
--- a/api-admin/pom.xml
+++ b/api-admin/pom.xml
@@ -210,6 +210,55 @@
poi-ooxml
RELEASE
+
+
+
+
+
+
+ net.sf.barcode4j
+ barcode4j
+ 2.1
+
+
+ net.sf.jasperreports
+ jasperreports
+ 6.5.1
+
+
+ net.sf.jasperreports
+ jasperreports-fonts
+ 6.0.0
+
+
+
+ com.itextpdf
+ itext-pdfa
+ 5.5.0
+
+
+
+ cn.lesper
+ iTextAsian
+ 3.0
+
+
+
+
+
+ org.apache.xmlgraphics
+ batik-bridge
+ 1.11
+
+
+
+ org.apache.xmlgraphics
+ batik-dom
+ 1.11
+
+
+
+
@@ -258,7 +307,7 @@
true
-
+
Generate MyBatis Artifacts
generate
@@ -275,7 +324,6 @@
-
diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockQRCodeTextController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockQRCodeTextController.java
index c2b7218..a7908ad 100644
--- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockQRCodeTextController.java
+++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockQRCodeTextController.java
@@ -1,12 +1,29 @@
package com.glxp.sale.admin.controller.inout;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
import com.github.pagehelper.PageInfo;
-import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
-import com.glxp.sale.admin.entity.inout.*;
+import com.glxp.sale.admin.entity.inout.StockOrderDetailEntity;
+import com.glxp.sale.admin.entity.inout.StockOrderEntity;
+import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity;
+import com.glxp.sale.admin.entity.inout.StockQRCodeTextEntity;
import com.glxp.sale.admin.entity.param.SystemPDFModuleEntity;
import com.glxp.sale.admin.entity.param.SystemPDFTemplateEntity;
import com.glxp.sale.admin.req.inout.DeleteRequest;
-import com.glxp.sale.admin.req.inout.StockOrderDetailFilterRequest;
import com.glxp.sale.admin.req.inout.StockQRCodeTextFilterRequest;
import com.glxp.sale.admin.req.itextpdf.InspectionPDFTemplateRequest;
import com.glxp.sale.admin.req.itextpdf.StockQRCodeTextPDFTemplateRequest;
@@ -14,25 +31,19 @@ import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.service.basic.BussinessTypeService;
import com.glxp.sale.admin.service.basic.UdiInfoService;
import com.glxp.sale.admin.service.basic.UdiRelevanceService;
-import com.glxp.sale.admin.service.inout.*;
+import com.glxp.sale.admin.service.inout.StockOrderDetailService;
+import com.glxp.sale.admin.service.inout.StockOrderDetailTempService;
+import com.glxp.sale.admin.service.inout.StockOrderService;
+import com.glxp.sale.admin.service.inout.StockQRCodeTextService;
import com.glxp.sale.admin.service.param.SystemPDFModuleService;
import com.glxp.sale.admin.service.param.SystemPDFTemplateService;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.thread.IoTransInoutService;
import com.glxp.sale.admin.util.ITextPDFUtils;
+import com.glxp.sale.admin.util.JasperUtils;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
@RestController
public class StockQRCodeTextController {
@@ -113,6 +124,8 @@ public class StockQRCodeTextController {
@RequestBody StockQRCodeTextPDFTemplateRequest stockQRCodeTextPDFTemplateRequest,
HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+
StockQRCodeTextEntity stockQRCodeTextEntity = stockQRCodeTextService.findOne(stockQRCodeTextPDFTemplateRequest.getId());
if (stockQRCodeTextEntity == null) {
return;
@@ -161,6 +174,8 @@ public class StockQRCodeTextController {
@RequestBody StockQRCodeTextPDFTemplateRequest stockQRCodeTextPDFTemplateRequest,
HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ /*
StockOrderEntity stockOrderEntity =
stockOrderService.findById(stockQRCodeTextPDFTemplateRequest.getId());
if (stockOrderEntity == null) {
@@ -189,11 +204,21 @@ public class StockQRCodeTextController {
ITextPDFUtils.exportStockOrderPDFFromTemplateFile(
stockQRCodeTextPDFTemplateRequest, stockOrderEntity, stockOrderDetailEntityList, request, response);
-
- StockOrderEntity updateStockOrderEntity = new StockOrderEntity();
- updateStockOrderEntity.setId(stockOrderEntity.getId());
- updateStockOrderEntity.setPrintStatus("102");
- stockOrderService.updateById(updateStockOrderEntity);
+ */
+ /*打印订单*/
+ List list = stockOrderService.listOrderPrint(stockQRCodeTextPDFTemplateRequest.getId());
+ if(list!=null&&list.size()>0) {
+ StockOrderEntity updateStockOrderEntity = new StockOrderEntity();
+ updateStockOrderEntity.setId(stockQRCodeTextPDFTemplateRequest.getId());
+ updateStockOrderEntity.setPrintStatus("102");
+ stockOrderService.updateById(updateStockOrderEntity);
+
+
+ Map data = new HashMap();
+ data.put("data", list);
+ JasperUtils.jasperReport(request, response, data, "aspers/order_print_1.jasper", "pdf");
+
+ }
}
diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java
index 89889aa..f07ef0f 100644
--- a/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java
+++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/inout/StockOrderDao.java
@@ -1,16 +1,14 @@
package com.glxp.sale.admin.dao.inout;
-import com.glxp.sale.admin.entity.inout.OrderEntity;
-import com.glxp.sale.admin.entity.inout.StockOrderEntity;
-import com.glxp.sale.admin.entity.inout.WarehouseEntity;
-import com.glxp.sale.admin.req.inout.OrderFilterRequest;
-import com.glxp.sale.admin.req.inout.OrderQueryRequest;
-import com.glxp.sale.admin.req.inout.StockOrderFilterRequest;
-import com.glxp.sale.admin.req.inout.StockOrderQueryRequest;
+import java.util.List;
+
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
-import java.util.List;
+import com.glxp.sale.admin.entity.inout.StockOrderEntity;
+import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity;
+import com.glxp.sale.admin.req.inout.StockOrderFilterRequest;
+import com.glxp.sale.admin.req.inout.StockOrderQueryRequest;
@Mapper
public interface StockOrderDao {
@@ -32,4 +30,6 @@ public interface StockOrderDao {
List filterListOr(StockOrderFilterRequest stockOrderFilterRequest);
StockOrderEntity findOne(StockOrderFilterRequest stockOrderFilterRequest);
+
+ List listOrderPrint(StockOrderFilterRequest stockOrderFilterRequest);
}
diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderPrintEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderPrintEntity.java
new file mode 100644
index 0000000..4c3305f
--- /dev/null
+++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderPrintEntity.java
@@ -0,0 +1,23 @@
+package com.glxp.sale.admin.entity.inout;
+
+import lombok.Data;
+
+@Data
+public class StockOrderPrintEntity extends StockOrderDetailEntity {
+
+ private String id;
+ private String billNo;
+ private String billdate;
+ private String corpId;
+ private String corpName;
+ private String billType;
+ private String billFlag;
+ private String thirdSysFk;
+ private String status;
+ private String statusInfo;
+ private String type;
+ private String sourceType;
+ private String printStatus;
+ private String unitIdFk;
+ private String customerId;
+}
diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/StockOrderService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/StockOrderService.java
index 49c779f..648d6ba 100644
--- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/StockOrderService.java
+++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/StockOrderService.java
@@ -1,12 +1,12 @@
package com.glxp.sale.admin.service.inout;
+import java.util.List;
+
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
-import com.glxp.sale.admin.entity.inout.WarehouseEntity;
+import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity;
import com.glxp.sale.admin.req.inout.StockOrderFilterRequest;
import com.glxp.sale.admin.req.inout.StockOrderQueryRequest;
-import java.util.List;
-
public interface StockOrderService {
List listStockOrders(StockOrderQueryRequest stockOrderQueryRequest);
@@ -30,4 +30,6 @@ public interface StockOrderService {
StockOrderEntity findOne(StockOrderFilterRequest stockOrderFilterRequest);
StockOrderEntity findById(String orderId);
+
+ List listOrderPrint(String orderId);
}
diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java
index 222248f..5c1bc73 100644
--- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java
+++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java
@@ -1,22 +1,19 @@
package com.glxp.sale.admin.service.inout.impl;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
import com.github.pagehelper.PageHelper;
-import com.glxp.sale.admin.dao.inout.OrderDao;
import com.glxp.sale.admin.dao.inout.StockOrderDao;
-import com.glxp.sale.admin.dao.inout.WarehouseDao;
-import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
-import com.glxp.sale.admin.entity.inout.WarehouseEntity;
-import com.glxp.sale.admin.req.inout.OrderFilterRequest;
+import com.glxp.sale.admin.entity.inout.StockOrderPrintEntity;
import com.glxp.sale.admin.req.inout.StockOrderFilterRequest;
import com.glxp.sale.admin.req.inout.StockOrderQueryRequest;
-import com.glxp.sale.admin.service.inout.OrderService;
import com.glxp.sale.admin.service.inout.StockOrderService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.Collections;
-import java.util.List;
@Service
public class StockOrderServiceImpl implements StockOrderService {
@@ -97,5 +94,11 @@ public class StockOrderServiceImpl implements StockOrderService {
return stockOrderDao.findOne(stockOrderFilterRequest);
}
+ @Override
+ public List listOrderPrint(String orderId) {
+ StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest();
+ stockOrderFilterRequest.setId(orderId);
+ return stockOrderDao.listOrderPrint(stockOrderFilterRequest);
+ }
}
diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/JasperUtils.java b/api-admin/src/main/java/com/glxp/sale/admin/util/JasperUtils.java
new file mode 100644
index 0000000..a7b86c2
--- /dev/null
+++ b/api-admin/src/main/java/com/glxp/sale/admin/util/JasperUtils.java
@@ -0,0 +1,86 @@
+package com.glxp.sale.admin.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.stereotype.Component;
+
+import com.alibaba.fastjson.JSON;
+
+import net.sf.jasperreports.engine.JRException;
+import net.sf.jasperreports.engine.JasperExportManager;
+import net.sf.jasperreports.engine.JasperFillManager;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.engine.JasperReport;
+import net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
+import net.sf.jasperreports.engine.query.JsonQueryExecuterFactory;
+import net.sf.jasperreports.engine.util.JRLoader;
+import net.sf.jasperreports.export.SimpleExporterInput;
+import net.sf.jasperreports.export.SimpleOutputStreamExporterOutput;
+
+/**
+ * Jasperreport工具类
+ * @author chenqf
+ * @date 2021-11-10 22:23
+ */
+@Component
+public class JasperUtils {
+ private static Logger logger = LoggerFactory.getLogger(JasperUtils.class);
+
+ public static final String PDF_TYPE="pdf";
+ public static final String WORD_TYPE="word";
+ public static final String EXCEL_TYPE="excel";
+ public static final String HTML_TYPE="html";
+ /*
+ * data 传入报表数据
+ * jasperResource 模板文件路径
+ */
+ public static void jasperReport(HttpServletRequest request, HttpServletResponse response,Map data,String jasperResource,String type) throws IOException, JRException {
+ try {
+ HashMap map = new HashMap();
+ InputStream is = new ByteArrayInputStream(JSON.toJSONString(data).getBytes("UTF-8"));
+ map.put("JSON_INPUT_STREAM", is); //填充报表数据
+ map.put(JsonQueryExecuterFactory.JSON_LOCALE, Locale.ENGLISH);
+
+ ClassPathResource resource = new ClassPathResource(jasperResource);
+
+ InputStream jasperStream = resource.getInputStream();
+
+ JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
+ //报表填充
+ JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map);
+ String fileName = new String("export.pdf".getBytes("GBK"), "ISO8859_1");
+ ServletOutputStream os = response.getOutputStream();
+ response.setDateHeader("Expires", 0);
+ response.setHeader("Content-disposition","attachment; filename="+fileName);
+ if(type!=null&&WORD_TYPE.equals(type)) {
+ response.setContentType("appliction/msword; charset=utf-8");
+ JRDocxExporter exporter = new JRDocxExporter();
+ exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
+ exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(os));
+ exporter.exportReport();
+ } else {
+ response.setContentType("application/pdf; charset=utf-8");
+ JasperExportManager.exportReportToPdfStream(jasperPrint,os);
+ os.flush();
+ os.close();
+ }
+ } catch (Exception e) {
+
+ e.printStackTrace();
+
+ }
+ }
+
+}
diff --git a/api-admin/src/main/resources/fonts/STSONG.TTF b/api-admin/src/main/resources/fonts/STSONG.TTF
new file mode 100644
index 0000000..3870605
Binary files /dev/null and b/api-admin/src/main/resources/fonts/STSONG.TTF differ
diff --git a/api-admin/src/main/resources/fonts/fonts.xml b/api-admin/src/main/resources/fonts/fonts.xml
new file mode 100644
index 0000000..789638f
--- /dev/null
+++ b/api-admin/src/main/resources/fonts/fonts.xml
@@ -0,0 +1,15 @@
+
+
+
+ fonts/STSONG.TTF
+ fonts/STSONG.TTF
+ fonts/STSONG.TTF
+ fonts/STSONG.TTF
+ Identity-H
+ true
+
+ '华文宋体', Arial, Helvetica, sans-serif
+ '华文宋体', Arial, Helvetica, sans-serif
+
+
+
\ No newline at end of file
diff --git a/api-admin/src/main/resources/jasperreports_extension.properties b/api-admin/src/main/resources/jasperreports_extension.properties
new file mode 100644
index 0000000..3ff6e4a
--- /dev/null
+++ b/api-admin/src/main/resources/jasperreports_extension.properties
@@ -0,0 +1,2 @@
+net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
+net.sf.jasperreports.extension.simple.font.families.lobstertwo=fonts/fonts.xml
diff --git a/api-admin/src/main/resources/jaspers/isn_print_1.jasper b/api-admin/src/main/resources/jaspers/isn_print_1.jasper
new file mode 100644
index 0000000..e94ceed
Binary files /dev/null and b/api-admin/src/main/resources/jaspers/isn_print_1.jasper differ
diff --git a/api-admin/src/main/resources/jaspers/isn_print_1.jrxml b/api-admin/src/main/resources/jaspers/isn_print_1.jrxml
new file mode 100644
index 0000000..01a6f12
--- /dev/null
+++ b/api-admin/src/main/resources/jaspers/isn_print_1.jrxml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api-admin/src/main/resources/jaspers/order_print_1.jasper b/api-admin/src/main/resources/jaspers/order_print_1.jasper
new file mode 100644
index 0000000..fd5ae4a
Binary files /dev/null and b/api-admin/src/main/resources/jaspers/order_print_1.jasper differ
diff --git a/api-admin/src/main/resources/jaspers/order_print_1.jrxml b/api-admin/src/main/resources/jaspers/order_print_1.jrxml
new file mode 100644
index 0000000..2b77567
--- /dev/null
+++ b/api-admin/src/main/resources/jaspers/order_print_1.jrxml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml
index 139a44d..e59e150 100644
--- a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml
+++ b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml
@@ -161,5 +161,35 @@
limit 1
+
\ No newline at end of file
diff --git a/api-common/.gitignore b/api-common/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/api-common/.gitignore
@@ -0,0 +1 @@
+/target/