Explorar o código

解决困扰多日的swagger报错

wukai hai 2 meses
pai
achega
a74a5e11dd

+ 3 - 1
jjt-admin/src/main/java/com/jjt/web/core/config/SwaggerConfig.java

@@ -58,7 +58,9 @@ public class SwaggerConfig {
                 // 扫描所有有注解的api,用这种方式更灵活
                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                 // 扫描指定包中的swagger注解
-                // .apis(RequestHandlerSelectors.basePackage("com.jjt.project.tool.swagger"))
+                .apis(RequestHandlerSelectors.basePackage("com.jjt"))
+                // 排除特定包的扫描
+                .paths(PathSelectors.ant("/order/**").negate())
                 // 扫描所有 .apis(RequestHandlerSelectors.any())
                 .paths(PathSelectors.any())
                 .build()

+ 9 - 6
jjt-biz/src/main/java/com/jjt/order/utils/OrderExportUtil.java

@@ -2,14 +2,15 @@ package com.jjt.order.utils;
 
 import com.jjt.biz.vo.GramMassDetail;
 import com.jjt.calc.domain.TwinCalcDay;
-import com.jjt.calc.domain.TwinFormulaInfo;
 import com.jjt.common.utils.DateUtils;
 import com.jjt.common.utils.StringUtils;
+import com.jjt.common.utils.bean.BeanUtils;
 import com.jjt.order.domain.TwinOrder;
 import com.jjt.order.domain.TwinOrderDetail;
 import com.jjt.order.domain.VmsStock;
 import com.jjt.order.vo.BomVO;
 import com.jjt.order.vo.SkuVO;
+import com.jjt.order.vo.TwinOrderVO;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xddf.usermodel.chart.*;
@@ -113,13 +114,15 @@ public class OrderExportUtil {
                 sku.setQty(0f);
             }
             sku.setXql(bom.getXql());
-            List<TwinOrder> skuOrder = new ArrayList<>();
+            List<TwinOrderVO> skuOrder = new ArrayList<>();
             //按订单分组
             Map<Long, List<TwinOrderDetail>> map = todList.stream().collect(Collectors.groupingBy(TwinOrderDetail::getOderId, LinkedHashMap::new, Collectors.toList()));
             for (Long oid : map.keySet()) {
                 TwinOrder to = orderMap.get(oid);
-                to.setTwinOrderDetailList(map.get(oid));
-                skuOrder.add(to);
+                TwinOrderVO vo = new TwinOrderVO();
+                BeanUtils.copyBeanProp(vo, to);
+                vo.setTwinOrderDetailList(map.get(oid));
+                skuOrder.add(vo);
             }
             sku.setOrderList(skuOrder);
             bom.setOrderList(skuOrder);
@@ -284,7 +287,7 @@ public class OrderExportUtil {
             cells[6].setCellValue(sku.getBomName());
             cells[7].setCellValue(sku.getBomSpec());
             boolean out = false;
-            for (TwinOrder order : sku.getOrderList()) {
+            for (TwinOrderVO order : sku.getOrderList()) {
                 if (out) {
                     row = sheet.createRow(num.getAndIncrement());
                     cells = new Cell[18];
@@ -355,7 +358,7 @@ public class OrderExportUtil {
             cells[6].setCellValue(obj.getYcl());
 
             boolean out = false;
-            for (TwinOrder order : obj.getOrderList()) {
+            for (TwinOrderVO order : obj.getOrderList()) {
                 if (out) {
                     row = sheet.createRow(num.getAndIncrement());
                     cells = new Cell[18];

+ 9 - 5
jjt-biz/src/main/java/com/jjt/order/utils/OrderGsmExportUtil.java

@@ -4,11 +4,13 @@ import com.jjt.biz.vo.GramMassDetail;
 import com.jjt.calc.domain.TwinCalcDay;
 import com.jjt.common.utils.DateUtils;
 import com.jjt.common.utils.StringUtils;
+import com.jjt.common.utils.bean.BeanUtils;
 import com.jjt.order.domain.TwinOrder;
 import com.jjt.order.domain.TwinOrderDetail;
 import com.jjt.order.domain.VmsStock;
 import com.jjt.order.vo.BomVO;
 import com.jjt.order.vo.SkuVO;
+import com.jjt.order.vo.TwinOrderVO;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xddf.usermodel.chart.*;
@@ -114,13 +116,15 @@ public class OrderGsmExportUtil {
                 sku.setGsm(BigDecimal.ZERO);
             }
             sku.setXql(bom.getXql());
-            List<TwinOrder> skuOrder = new ArrayList<>();
+            List<TwinOrderVO> skuOrder = new ArrayList<>();
             //按订单分组
             Map<Long, List<TwinOrderDetail>> map = todList.stream().collect(Collectors.groupingBy(TwinOrderDetail::getOderId, LinkedHashMap::new, Collectors.toList()));
             for (Long oid : map.keySet()) {
                 TwinOrder to = orderMap.get(oid);
-                to.setTwinOrderDetailList(map.get(oid));
-                skuOrder.add(to);
+                TwinOrderVO vo = new TwinOrderVO();
+                BeanUtils.copyBeanProp(vo, to);
+                vo.setTwinOrderDetailList(map.get(oid));
+                skuOrder.add(vo);
             }
             sku.setOrderList(skuOrder);
             bom.setOrderList(skuOrder);
@@ -288,7 +292,7 @@ public class OrderGsmExportUtil {
             cells[8].setCellValue(sku.getBomSpec());
             cells[9].setCellValue(CalcUtil.calcGsm(sku.getBomSpec()).doubleValue());
             boolean out = false;
-            for (TwinOrder order : sku.getOrderList()) {
+            for (TwinOrderVO order : sku.getOrderList()) {
                 if (out) {
                     row = sheet.createRow(num.getAndIncrement());
                     cells = new Cell[20];
@@ -360,7 +364,7 @@ public class OrderGsmExportUtil {
             cells[7].setCellValue(obj.getYcl());
 
             boolean out = false;
-            for (TwinOrder order : obj.getOrderList()) {
+            for (TwinOrderVO order : obj.getOrderList()) {
                 if (out) {
                     row = sheet.createRow(num.getAndIncrement());
                     cells = new Cell[19];

+ 6 - 4
jjt-biz/src/main/java/com/jjt/order/vo/BomVO.java

@@ -1,7 +1,6 @@
 package com.jjt.order.vo;
 
 import com.jjt.biz.vo.GramMassDetail;
-import com.jjt.order.domain.TwinOrder;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -56,9 +55,12 @@ public class BomVO {
 
     @ApiModelProperty(name = "平方米克重")
     private BigDecimal gsm;
-
-    @ApiModelProperty(name = "订单信息")
-    private List<TwinOrder> orderList;
+    /**
+     * 订单列表
+     * // 添加JsonBackReference注解来解决循环引用问题
+     */
+    @ApiModelProperty(value = "订单信息")
+    private List<TwinOrderVO> orderList;
 
     @ApiModelProperty(name = "匹配设备")
     private List<GramMassDetail> deviceList;

+ 1 - 1
jjt-biz/src/main/java/com/jjt/order/vo/SkuVO.java

@@ -37,5 +37,5 @@ public class SkuVO {
     @ApiModelProperty(name = "平方米克重")
     private BigDecimal gsm;
     @ApiModelProperty(name = "订单信息")
-    private List<TwinOrder> orderList;
+    private List<TwinOrderVO> orderList;
 }

+ 67 - 0
jjt-biz/src/main/java/com/jjt/order/vo/TwinOrderVO.java

@@ -0,0 +1,67 @@
+package com.jjt.order.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jjt.common.annotation.Excel;
+import com.jjt.common.core.domain.BaseEntity;
+import com.jjt.order.domain.TwinOrderDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 销售订单信息对象 TWIN_ORDER
+ *
+ * @author wukai
+ * @date 2025-01-16
+ */
+@ApiModel(value = "TwinOrder", description = "销售订单信息")
+@Data
+public class TwinOrderVO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单ID
+     */
+    @ApiModelProperty("订单ID")
+    private Long oderId;
+
+    /**
+     * 订单编号
+     */
+    @ApiModelProperty("订单编号")
+    private String orderCode;
+
+    /**
+     * 客户号
+     */
+    @ApiModelProperty("客户号")
+    private String customerCode;
+
+    /**
+     * 客户名称
+     */
+    @ApiModelProperty("客户名称")
+    private String customerName;
+
+    /**
+     * 订单日期
+     */
+    @ApiModelProperty("订单日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date orderDate;
+    /**
+     * 销售订单明细信息信息
+     */
+    private List<TwinOrderDetail> twinOrderDetailList;
+
+    /**
+     * 总重量
+     */
+    private BigDecimal totalWeight;
+
+}