From de0ec350bd1848bbedf8480c25d2187305fb6992 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 16 Oct 2024 17:10:25 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=8A=A5=E8=A1=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=85=A5=E5=8F=82=E6=A3=80=E6=9F=A5=E5=AE=8C=E5=96=84=EF=BC=9B?= =?UTF-8?q?2=E3=80=81executor-api=E3=80=81report-api=E7=9B=B8=E4=BA=92?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E7=A7=BB=E9=99=A4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/datasource/OrderDatasourceApi.java | 26 -- .../datasource/OrderPartDatasourceApi.java | 33 --- .../datasource/OrderPlateDatasourceApi.java | 33 --- .../executor/api/datasource/dto/OrderDTO.java | 78 ----- .../api/datasource/dto/PartGoodsRespDTO.java | 80 ----- .../api/datasource/dto/PlateGoodsRespDTO.java | 179 ----------- .../cf-module-prod-executor-biz/pom.xml | 9 - .../datasource/OrderDatasourceApiImpl.java | 32 -- .../OrderPartDatasourceApiImpl.java | 42 --- .../OrderPlateDatasourceApiImpl.java | 42 --- .../rpc/config/RpcConfiguration.java | 3 +- .../api/template/ReportTemplateApi.java | 26 -- .../dto/ReportTemplateGenerateReqDTO.java | 26 -- cf-module-report/cf-module-report-biz/pom.xml | 10 - .../dataset/ReportDatasetController.java | 2 +- .../dataset/vo/ReportDatasetFieldVO.java | 2 + .../dataset/vo/ReportDatasetParameterVO.java | 3 + .../dataset/vo/ReportDatasetSaveReqVO.java | 6 + .../ReportDatasourceController.java | 23 +- .../vo/ReportDatasourceParameterVO.java | 42 +++ .../vo/ReportDatasourcePreviewReqVO.java | 38 +++ .../vo/ReportDatasourceSaveReqVO.java | 3 + .../vo/ReportDatasourceTestConnReqVO.java | 21 +- .../template/ReportTemplateController.java | 41 +-- ...ReportTemplatePreviewPageParametersVO.java | 18 -- .../vo/ReportTemplatePreviewParametersVO.java | 48 --- .../vo/ReportTemplatePreviewReqVO.java | 47 +++ .../template/vo/ReportTemplateSaveReqVO.java | 4 +- .../rpc/config/RpcConfiguration.java | 12 - .../bean/OrderSummaryBeanDatasource.java | 278 ------------------ .../template/ReportTemplateService.java | 19 +- .../template/ReportTemplateServiceImpl.java | 37 +-- 32 files changed, 189 insertions(+), 1074 deletions(-) delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApi.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApi.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApi.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/OrderDTO.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PartGoodsRespDTO.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PlateGoodsRespDTO.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApiImpl.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApiImpl.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApiImpl.java delete mode 100644 cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/ReportTemplateApi.java delete mode 100644 cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/dto/ReportTemplateGenerateReqDTO.java create mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceParameterVO.java create mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java delete mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewPageParametersVO.java delete mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewParametersVO.java create mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewReqVO.java delete mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/rpc/config/RpcConfiguration.java delete mode 100644 cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/ureport/bean/OrderSummaryBeanDatasource.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApi.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApi.java deleted file mode 100644 index c1b4c97e2..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApi.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.cf.imes.module.executor.api.datasource; - -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.module.executor.api.datasource.dto.OrderDTO; -import com.cf.imes.module.executor.enums.ApiConstants; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; - -/** - * @author Gqr - * @since 2024/7/22 17:56 - */ -@FeignClient(name = ApiConstants.NAME) -@Tag(name = "RPC 服务 - 订单报表数据源") -public interface OrderDatasourceApi { - String PREFIX = ApiConstants.PREFIX + "/order"; - - @GetMapping(PREFIX +"/info") - @Operation(summary = "获取生产单信息") - @Parameter(name = "orderId", description = "生产单id", required = true, example = "1") - CommonResult getOrderInfo(@RequestParam("orderId") Long orderId); -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApi.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApi.java deleted file mode 100644 index b647c6859..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApi.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.cf.imes.module.executor.api.datasource; - -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.module.executor.api.datasource.dto.PartGoodsRespDTO; -import com.cf.imes.module.executor.enums.ApiConstants; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; - -import java.util.List; - -/** - * @author Gqr - * @since 2024/7/30 9:22 - */ -@FeignClient(name = ApiConstants.NAME) -@Tag(name = "RPC 服务 - 配件报表数据源") -public interface OrderPartDatasourceApi { - String PREFIX = ApiConstants.PREFIX + "/order-part"; - - @GetMapping(PREFIX + "/detail") - @Operation(summary = "配件明细") - @Parameter(name = "orderId", description = "生产单id", required = true, example = "1") - CommonResult> selectPartDetail(@RequestParam("orderId") Long orderId); - - @GetMapping(PREFIX + "/summary") - @Operation(summary = "配件汇总") - @Parameter(name = "orderId", description = "生产单id", required = true, example = "1") - CommonResult> selectPartAll(@RequestParam("orderId") Long orderId); -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApi.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApi.java deleted file mode 100644 index b711de35d..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApi.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.cf.imes.module.executor.api.datasource; - -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.module.executor.api.datasource.dto.PlateGoodsRespDTO; -import com.cf.imes.module.executor.enums.ApiConstants; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestParam; - -import java.util.List; - -/** - * @author Gqr - * @since 2024/7/19 12:00 - */ -@FeignClient(name = ApiConstants.NAME) -@Tag(name = "RPC 服务 - 板材报表数据源") -public interface OrderPlateDatasourceApi { - String PREFIX = ApiConstants.PREFIX + "/order-plate"; - - @GetMapping(PREFIX + "/summary") - @Operation(summary = "板材汇总") - @Parameter(name = "orderId", description = "生产单id", required = true, example = "1") - CommonResult> selectPlateGoodsListSummary(@RequestParam("orderId") Long orderId); - - @GetMapping(PREFIX + "/detail") - @Operation(summary = "板材明细") - @Parameter(name = "orderId", description = "生产单id", required = true, example = "1") - CommonResult> selectPlateGoodsList(@RequestParam("orderId") Long orderId); -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/OrderDTO.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/OrderDTO.java deleted file mode 100644 index b7fa64aec..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/OrderDTO.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.cf.imes.module.executor.api.datasource.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serial; -import java.io.Serializable; -import java.time.LocalDateTime; - -/** - * @author Gqr - * @since 2024/7/22 17:54 - */ -@Schema(description = "管理后台 - 生产单表 RPC Response DTO") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class OrderDTO implements Serializable { - - @Serial - private static final long serialVersionUID = 3574973837176279383L; - - @Schema(description = "生产单号") - private Long id; - - @Schema(description = "父单号") - private Long parentNo; - - @Schema(description = "源生产单号") - private String apiOrderId; - - @Schema(description = "生产单日期", requiredMode = Schema.RequiredMode.REQUIRED) - private LocalDateTime orderDate; - - @Schema(description = "交付日期", requiredMode = Schema.RequiredMode.REQUIRED) - private LocalDateTime deliveryDate; - - @Schema(description = "生产单类型,1主单 2子单", example = "1") - private Integer orderType; - - @Schema(description = "生产单排序号") - private Integer orderSort; - - @Schema(description = "CAD数据类型,1CAD 2WebCAD 3Excel", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Integer dataType; - - @Schema(description = "订单状态,订单状态,0空订单1新单2生产中3生产完成", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - private Integer status; - - @Schema(description = "自定义单号") - private String customOrderNo; - - @Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED) - private String customer; - - @Schema(description = "客户地址", requiredMode = Schema.RequiredMode.REQUIRED) - private String address; - - @Schema(description = "客户电话", requiredMode = Schema.RequiredMode.REQUIRED) - private String phoneNumber; - - @Schema(description = "经销商", requiredMode = Schema.RequiredMode.REQUIRED) - private String dealer; - - @Schema(description = "经销商电话", requiredMode = Schema.RequiredMode.REQUIRED) - private String dealerPhoneNumber; - - @Schema(description = "业务员") - private String salesman; - - @Schema(description = "拆单员") - private String splitter; - - @Schema(description = "备注", example = "你猜") - private String remark; -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PartGoodsRespDTO.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PartGoodsRespDTO.java deleted file mode 100644 index 1c22bcf34..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PartGoodsRespDTO.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.cf.imes.module.executor.api.datasource.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -@Schema(description = "管理后台 - 配件对应板材信息 Resp DTO") -public class PartGoodsRespDTO { - - @Schema(description = "柜体号", example = "11087") - private Long bodyId; - - @Schema(description = "柜体名称", example = "11087") - private String bodyName; - - @Schema(description = "房间号", example = "11087") - private Long roomId; - - @Schema(description = "房间名称", example = "11087") - private String roomName; - - @Schema(description = "配件 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29347") - private Long id; - - @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) - private Long orderId; - - @Schema(description = "商品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1195") - private String goodsId; - - @Schema(description = "配件名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰") - private String name; - - @Schema(description = "材质", requiredMode = Schema.RequiredMode.REQUIRED) - private String material; - - @Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") - private String type; - - @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED) - private String model; - - @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED) - private String spec; - - @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED) - private String brand; - - @Schema(description = "厂家", requiredMode = Schema.RequiredMode.REQUIRED) - private String factory; - - @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED) - private String unit; - - @Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "29507") - private Double price; - - @Schema(description = "是否复合部件:0 否 1 是", requiredMode = Schema.RequiredMode.REQUIRED) - private Boolean isComposite; - - @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") - private String remark; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - private LocalDateTime createTime; - - @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "29507") - private Double num; - - @Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "29507") - private Double totalPrice; -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PlateGoodsRespDTO.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PlateGoodsRespDTO.java deleted file mode 100644 index 6f65f2735..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/datasource/dto/PlateGoodsRespDTO.java +++ /dev/null @@ -1,179 +0,0 @@ -package com.cf.imes.module.executor.api.datasource.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.springframework.format.annotation.DateTimeFormat; - -import java.math.BigDecimal; -import java.time.LocalDateTime; - -import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -@Schema(description = "管理后台 - 板件对应板材信息 Response DTO") -public class PlateGoodsRespDTO { - - @Schema(description = "柜体号", example = "11087") - private Long bodyId; - - @Schema(description = "柜体名称", example = "11087") - private String bodyName; - - @Schema(description = "房间号", example = "11087") - private Long roomId; - - @Schema(description = "房间名称", example = "11087") - private String roomName; - - @Schema(description = "板id", example = "11087") - private Long id; - - @Schema(description = "板数量", example = "11087") - private Integer count = 1; - - @Schema(description = "生产单号", example = "11087") - private Long orderId; - - @Schema(description = "板名称", example = "晨丰") - private String name; - - @Schema(description = "自定义板编号,设计有板编号,则保留设计板编号;设计没有且在机台设置中设置了自定义板编号规则,则按规则自动生成") - private String plateNo; - - @Schema(description = "板类型,0 层板 1 立板 2 背板", example = "1") - private Integer type; - - @Schema(description = "商品 ID", example = "14195") - private String goodsId; - - @Schema(description = "商品名称", example = "西西") - private String goodsName; - - @Schema(description = "商品材质", example = "颗粒板") - private String material; - - @Schema(description = "商品颜色", example = "白色") - private String color; - - @Schema(description = "商品宽度", example = "14195") - private BigDecimal goodsWidth; - - @Schema(description = "商品高度", example = "14195") - private BigDecimal goodsHeight; - - @Schema(description = "商品厚度", example = "14195") - private BigDecimal goodsThickness; - - @Schema(description = "商品价格", example = "14195") - private BigDecimal price; - - @Schema(description = "商品品牌", example = "柏柏") - private String brand; - - @Schema(description = "商品规格", example = "14195*21") - private String spec; - - @Schema(description = "宽度") - private BigDecimal width; - - @Schema(description = "高度") - private BigDecimal height; - - @Schema(description = "厚度") - private BigDecimal thickness; - - @Schema(description = "拆单宽度") - private BigDecimal splitWidth; - - @Schema(description = "拆单高度") - private BigDecimal splitHeight; - - @Schema(description = "拆单厚度") - private BigDecimal splitThickness; - - @Schema(description = "左封边厚度") - private BigDecimal sealLeft; - - @Schema(description = "右封边厚度") - private BigDecimal sealRight; - - @Schema(description = "上封边厚度") - private BigDecimal sealUp; - - @Schema(description = "下封边厚度") - private BigDecimal sealDown; - - @Schema(description = "面积") - private BigDecimal area; - - @Schema(description = "纹路类型,0 正纹 1 可翻转 2 反纹") - private Integer texture; - - @Schema(description = "孔面类型,0 正面 1 反面 2 侧面") - private Integer holeFace; - - @Schema(description = "排孔类型,0 正纹 1 反面 2 随意面") - private Integer holeArrange; - - @Schema(description = "异型孔数量", example = "28477") - private Short unregularPointCount; - - @Schema(description = "正面孔数量", example = "20823") - private Short frontHoleCount; - - @Schema(description = "背面孔数量", example = "3441") - private Short backHoleCount; - - @Schema(description = "侧面孔数量", example = "25509") - private Short sideHoleCount; - - @Schema(description = "正面造型量", example = "31547") - private Short frontModelCount; - - @Schema(description = "背面造型量", example = "26725") - private Short backModelCount; - - @Schema(description = "是否门板") - private Boolean isDoor; - - @Schema(description = "开门类型,0 无 1 左 2 右 3 上 4 下", example = "2") - private Integer openDoorType; - - @Schema(description = "异型偏移 x") - private Double offsetX; - - @Schema(description = "异型偏移 y") - private Double offsetY; - - @Schema(description = "是否孤形对角") - private Boolean isArcAcross; - - @Schema(description = "是否异形") - private Boolean isSpecialShaped; - - @Schema(description = "是否造型") - private Boolean isSculpt; - - @Schema(description = "模块类型 ID", example = "12800") - private Long moduleTypeId; - - @Schema(description = "排单过滤类型,1 有挖穿造型 2 有挖穿孔 4 有二维刀路 8 可叠", example = "1") - private String filterType; - - @Schema(description = "备注", example = "你说的对") - private String remark; - - @Schema(description = "是否作废") - private Boolean isCancel; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml index d16009736..d460c91dc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml @@ -151,11 +151,6 @@ uk.co.jemos.podam podam - - com.cf.imes - cf-module-report-api - ${revision} - @@ -188,10 +183,6 @@ com.cf.imes cf-module-prod-executor-api - - com.cf.imes - cf-module-report-api - com.cf.imes cf-module-system-api diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApiImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApiImpl.java deleted file mode 100644 index 583533207..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderDatasourceApiImpl.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.cf.imes.module.executor.api.datasource; - -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.framework.common.util.object.BeanUtils; -import com.cf.imes.framework.organ.core.context.OrganContextHolder; -import com.cf.imes.module.executor.api.datasource.dto.OrderDTO; -import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; -import com.cf.imes.module.executor.dal.mysql.order.OrderMapper; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @author Gqr - * @since 2024/7/22 17:57 - */ -@RestController // 提供 RESTful API 接口,给 Feign 调用 -@Validated -public class OrderDatasourceApiImpl implements OrderDatasourceApi { - - @Resource - private OrderMapper orderMapper; - - @Override - public CommonResult getOrderInfo(Long orderId) { - // 查询生产单 - OrderDO orderDO = orderMapper.selectOrderOne(orderId, OrganContextHolder.getOrganId()); - OrderDTO orderDTO = BeanUtils.toBean(orderDO, OrderDTO.class); - return CommonResult.success(orderDTO); - } -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApiImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApiImpl.java deleted file mode 100644 index 195050ed9..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPartDatasourceApiImpl.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cf.imes.module.executor.api.datasource; - -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.framework.common.util.object.BeanUtils; -import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; -import com.cf.imes.module.executor.api.datasource.dto.PartGoodsRespDTO; -import com.cf.imes.module.executor.controller.admin.orderParts.vo.PartGoodsRespVO; -import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper; -import com.cf.imes.module.executor.enums.OrderDeletedEnum; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @author Gqr - * @since 2024/7/30 9:21 - */ -@RestController // 提供 RESTful API 接口,给 Feign 调用 -@Validated -public class OrderPartDatasourceApiImpl implements OrderPartDatasourceApi { - - @Resource - private OrderPartsMapper orderPartsMapper; - - @Override - public CommonResult> selectPartDetail(Long orderId) { - Integer notDeletedStatus = OrderDeletedEnum.NOT_DELETED.getStatus(); - // 查询明细列表 - List partGoodsRespVOS = orderPartsMapper.selectPartDetail(orderId, SecurityFrameworkUtils.getLoginUser().getOrganId(), notDeletedStatus); - return CommonResult.success(BeanUtils.toBean(partGoodsRespVOS, PartGoodsRespDTO.class)); - } - - @Override - public CommonResult> selectPartAll(Long orderId) { - Integer notDeletedStatus = OrderDeletedEnum.NOT_DELETED.getStatus(); - // 查询明细列表 - List partGoodsRespVOS = orderPartsMapper.selectPartAll(orderId, SecurityFrameworkUtils.getLoginUser().getOrganId(), notDeletedStatus); - return CommonResult.success(BeanUtils.toBean(partGoodsRespVOS, PartGoodsRespDTO.class)); - } -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApiImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApiImpl.java deleted file mode 100644 index 82808ab93..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/datasource/OrderPlateDatasourceApiImpl.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cf.imes.module.executor.api.datasource; - -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.framework.common.util.object.BeanUtils; -import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; -import com.cf.imes.module.executor.api.datasource.dto.PlateGoodsRespDTO; -import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO; -import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; -import com.cf.imes.module.executor.enums.OrderDeletedEnum; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @author Gqr - * @since 2024/7/19 14:26 - */ -@RestController // 提供 RESTful API 接口,给 Feign 调用 -@Validated -public class OrderPlateDatasourceApiImpl implements OrderPlateDatasourceApi { - @Resource - private PlateMapper plateMapper; - - - @Override - public CommonResult> selectPlateGoodsListSummary(Long orderId) { - // 查询分组统计 - Integer notDeletedStatus = OrderDeletedEnum.NOT_DELETED.getStatus(); - List plateGoodsRespVOS = plateMapper.selectPlateGoodsListSummary(orderId, SecurityFrameworkUtils.getLoginUser().getOrganId(), notDeletedStatus); - return CommonResult.success(BeanUtils.toBean(plateGoodsRespVOS, PlateGoodsRespDTO.class)); - } - - @Override - public CommonResult> selectPlateGoodsList(Long orderId) { - // 查询分组列表 - Integer notDeletedStatus = OrderDeletedEnum.NOT_DELETED.getStatus(); - List plateGoodsRespVOS = plateMapper.selectPlateGoodsList(orderId, SecurityFrameworkUtils.getLoginUser().getOrganId(), notDeletedStatus); - return CommonResult.success(BeanUtils.toBean(plateGoodsRespVOS, PlateGoodsRespDTO.class)); - } -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java index b48efa051..fbfab77bf 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java @@ -1,7 +1,6 @@ package com.cf.imes.module.executor.framework.rpc.config; import com.cf.imes.module.infra.api.file.FileApi; -import com.cf.imes.module.report.api.template.ReportTemplateApi; import com.cf.imes.module.system.api.application.ApplicationApi; import com.cf.imes.module.system.api.dataSource.DataSourceApi; import com.cf.imes.module.system.api.machine.MachineApi; @@ -18,6 +17,6 @@ import org.springframework.context.annotation.Configuration; */ @Configuration(proxyBeanMethods = false) @EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, DictDataApi.class,AdminUserApi.class, - FileApi.class, ProcessGroupApi.class, FileApi.class, DataSourceApi.class, ApplicationApi.class, ProcessApi.class, ReportTemplateApi.class, OrganApi.class}) + FileApi.class, ProcessGroupApi.class, FileApi.class, DataSourceApi.class, ApplicationApi.class, ProcessApi.class, OrganApi.class}) public class RpcConfiguration { } diff --git a/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/ReportTemplateApi.java b/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/ReportTemplateApi.java deleted file mode 100644 index 4d556e147..000000000 --- a/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/ReportTemplateApi.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.cf.imes.module.report.api.template; - -import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO; -import com.cf.imes.module.report.enums.ApiConstants; -import feign.Response; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -/** - * 报表模板feign service - * - * @author Gqr - * @since 2024/7/19 11:31 - */ -@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory = -@Tag(name = "RPC 服务 - 报表模板") -public interface ReportTemplateApi { - String PREFIX = ApiConstants.PREFIX + "/template"; - - @PostMapping(value = PREFIX + "/export") - @Operation(summary = "下载模板excel") - Response excel(@RequestBody ReportTemplateGenerateReqDTO reqDTO); -} diff --git a/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/dto/ReportTemplateGenerateReqDTO.java b/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/dto/ReportTemplateGenerateReqDTO.java deleted file mode 100644 index b4595eae0..000000000 --- a/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/api/template/dto/ReportTemplateGenerateReqDTO.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.cf.imes.module.report.api.template.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.Map; - -/** - * @author Gqr - * @since 2024/7/19 15:03 - */ -@Schema(description = "RPC 服务 - 报表模板生成 Request DTO") -@Data -public class ReportTemplateGenerateReqDTO { - @Schema(description = "模板id") - @NotNull(message = "模板id不能为空") - private Long templateId; - - @Schema(description = "参数集合") - private Map params; - - @Schema(description = "生成文件类型,pdf/word/excel") - @NotNull(message = "生成文件类型不能为空") - private String producerType; -} diff --git a/cf-module-report/cf-module-report-biz/pom.xml b/cf-module-report/cf-module-report-biz/pom.xml index 68e7d72d1..eded7e7c2 100644 --- a/cf-module-report/cf-module-report-biz/pom.xml +++ b/cf-module-report/cf-module-report-biz/pom.xml @@ -134,12 +134,6 @@ commons-text ${commons-text.version} - - - com.cf.imes - cf-module-prod-executor-api - ${revision} - org.apache.poi @@ -185,10 +179,6 @@ com.cf.imes cf-module-infra-api - - com.cf.imes - cf-module-prod-executor-api - com.cf.imes cf-module-report-api diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/ReportDatasetController.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/ReportDatasetController.java index 64f26c501..782fa836f 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/ReportDatasetController.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/ReportDatasetController.java @@ -60,7 +60,7 @@ public class ReportDatasetController { } @GetMapping("/dataset/{id}") - @Operation(summary = "获得报表数据集") + @Operation(summary = "获取报表数据集") @Parameter(name = "id", description = "数据集id", required = true, example = "1") @PreAuthorize("@ss.hasPermission('report:design')") public CommonResult getDataset(@PathVariable("id") Long id) { diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetFieldVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetFieldVO.java index e2eeef6bf..6133e0e95 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetFieldVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetFieldVO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotBlank; import java.io.Serial; import java.io.Serializable; @@ -22,5 +23,6 @@ public class ReportDatasetFieldVO implements Serializable { * 字段名称 */ @Schema(description = "字段名称") + @NotBlank(message = "字段名称不能为空") private String name; } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetParameterVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetParameterVO.java index b78774a24..40c9bcd55 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetParameterVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetParameterVO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import javax.validation.constraints.NotBlank; import java.io.Serial; import java.io.Serializable; @@ -22,12 +23,14 @@ public class ReportDatasetParameterVO implements Serializable { * 参数名称 */ @Schema(description = "参数名称") + @NotBlank(message = "参数名称不能为空") private String name; /** * 类型 */ @Schema(description = "参数类型") + @NotBlank(message = "参数类型不能为空") private String type; /** diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java index 1a3ea848e..f653bcbf2 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/dataset/vo/ReportDatasetSaveReqVO.java @@ -7,8 +7,10 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.io.Serial; import java.io.Serializable; import java.util.ArrayList; @@ -47,8 +49,12 @@ public class ReportDatasetSaveReqVO implements Serializable { private String method; @Schema(description = "参数列表") + @Size(max = 30, message = "参数列表数量不能超过30个") + @Valid private List parameters = new ArrayList<>(); @Schema(description = "字段列表") + @Size(max = 30, message = "字段列表数量不能超过30个") + @Valid private List fields = new ArrayList<>(); } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java index 17196ae32..30a62b9b4 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/ReportDatasourceController.java @@ -8,8 +8,10 @@ import com.bstek.ureport.definition.dataset.Field; import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.report.controller.admin.datasource.vo.ReportBeanDatasourceRespVO; +import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourcePreviewReqVO; import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceRespVO; import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceSaveReqVO; +import com.cf.imes.module.report.controller.admin.datasource.vo.ReportDatasourceTestConnReqVO; import com.cf.imes.module.report.dal.dataobject.datasource.ReportDatasourceDO; import com.cf.imes.module.report.service.datasource.ReportDatasourceService; import io.swagger.v3.oas.annotations.Operation; @@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Size; import java.util.List; import java.util.Map; @@ -99,7 +102,7 @@ public class ReportDatasourceController { @Operation(summary = "获取springbean数据源返回对象") @Parameter(name = "clazz", description = "返回对象类路径全名不能为空", required = true) @PreAuthorize("@ss.hasPermission('report:design')") - public List springbeanFieldList(@RequestParam(value = "clazz") @NotEmpty(message = "类路径全名不能为空") String clazz) { + public List springbeanFieldList(@RequestParam(value = "clazz") @NotEmpty(message = "类路径全名不能为空") @Size(max = 100, message = "类路径全名不能超过100个字符") String clazz) { return datasourceService.getSpringBeanResultFieldList(clazz); } @@ -107,7 +110,7 @@ public class ReportDatasourceController { @Operation(summary = "获取springbean数据源方法类表") @Parameter(name = "beanId", description = "springbeanId", required = true) @PreAuthorize("@ss.hasPermission('report:design')") - public CommonResult> getBeanDatasourceList(@RequestParam(value = "beanId") @NotEmpty(message = "beanId不能为空") String beanId) { + public CommonResult> getBeanDatasourceList(@RequestParam(value = "beanId") @NotEmpty(message = "beanId不能为空") @Size(max = 100, message = "beanId不能超过100个字符") String beanId) { return success(datasourceService.loadBeanMethods(beanId)); } @@ -115,29 +118,29 @@ public class ReportDatasourceController { @PostMapping("/datasource/connect") @Operation(summary = "测试数据源连接") @PreAuthorize("@ss.hasPermission('report:design')") - public CommonResult testDatasourceConnect(@RequestBody DataSourceInfo info) { - String success = MultipleJdbcTemplate.testConnection(info); + public CommonResult testDatasourceConnect(@RequestBody @Valid ReportDatasourceTestConnReqVO reqVO) { + String success = MultipleJdbcTemplate.testConnection(BeanUtils.toBean(reqVO, DataSourceInfo.class)); return Objects.equals("success", success) ? success(true) : error(DATASOURCE_CONNECT_FAIL); } @PostMapping("/datasource/tables") @Operation(summary = "获取数据库表列表") @PreAuthorize("@ss.hasPermission('report:design')") - public CommonResult>> getDatasourceTables(@RequestBody DataSourceInfo info) { - return success(ureportDataSourceService.selectTableList(info)); + public CommonResult>> getDatasourceTables(@RequestBody @Valid ReportDatasourceTestConnReqVO reqVO) { + return success(ureportDataSourceService.selectTableList(BeanUtils.toBean(reqVO, DataSourceInfo.class))); } @PostMapping("/datasource/table/fields") @Operation(summary = "获取数据源表字段") @PreAuthorize("@ss.hasPermission('report:design')") - public CommonResult> getDatasourceTableFields(@RequestBody PreviewParams previewParams) { - return success(datasourceService.getTableFields(previewParams)); + public CommonResult> getDatasourceTableFields(@RequestBody @Valid ReportDatasourcePreviewReqVO reqVO) { + return success(datasourceService.getTableFields(BeanUtils.toBean(reqVO, PreviewParams.class))); } @PostMapping("/datasource/preview") @Operation(summary = "数据源预览") @PreAuthorize("@ss.hasPermission('report:design')") - public CommonResult> previewData(@RequestBody PreviewParams previewParams) { - return success(ureportDataSourceService.previewData(previewParams)); + public CommonResult> previewData(@RequestBody @Valid ReportDatasourcePreviewReqVO reqVO) { + return success(ureportDataSourceService.previewData(BeanUtils.toBean(reqVO, PreviewParams.class))); } } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceParameterVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceParameterVO.java new file mode 100644 index 000000000..848580a44 --- /dev/null +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceParameterVO.java @@ -0,0 +1,42 @@ +package com.cf.imes.module.report.controller.admin.datasource.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serial; +import java.io.Serializable; + +/** + * @author Gqr + * @since 2024/7/8 11:36 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(description = "管理后台 - 报表数据源查询参数 Request VO") +public class ReportDatasourceParameterVO implements Serializable { + @Serial + private static final long serialVersionUID = 2752387952196201725L; + /** + * 参数名称 + */ + @Schema(description = "参数名称") + @NotBlank(message = "参数名称不能为空") + private String name; + + /** + * 类型 + */ + @Schema(description = "参数类型") + @NotBlank(message = "参数类型不能为空") + private String type; + + /** + * 默认值 + */ + @Schema(description = "参数默认值") + private String defaultValue; +} diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java new file mode 100644 index 000000000..c533acbbd --- /dev/null +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourcePreviewReqVO.java @@ -0,0 +1,38 @@ +package com.cf.imes.module.report.controller.admin.datasource.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.List; + +/** + * @author Gqr + * @since 2024/10/16 16:39 + */ +@Schema(description = "管理后台 - 报表数据源预览 Request VO") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ReportDatasourcePreviewReqVO { + @Schema(description = "数据源连接信息") + @NotNull + @Valid + private ReportDatasourceTestConnReqVO info; + + @Schema(description = "查询语句") + @NotBlank(message = "查询语句不能为空") + private String sql; + + @Schema(description = "查询参数列表") + @Size(max = 30, message = "查询参数列表数量不能超过30个") + @Valid + private List parameters; +} diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceSaveReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceSaveReqVO.java index daf1de1de..9013593a9 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceSaveReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceSaveReqVO.java @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.io.Serial; import java.io.Serializable; import java.util.List; @@ -65,8 +66,10 @@ public class ReportDatasourceSaveReqVO implements Serializable { private String password; @Schema(description = "备注", example = "该模板仅供生产使用") + @Length(max = 64, message = "备注长度不能超过64个字符") private String remark; @Schema(description = "请求头参数") + @Size(max = 30, message = "请求头参数数量不能超过30个") private List> headers; } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceTestConnReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceTestConnReqVO.java index c51e5afe9..0bbb512a1 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceTestConnReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/datasource/vo/ReportDatasourceTestConnReqVO.java @@ -1,14 +1,12 @@ package com.cf.imes.module.report.controller.admin.datasource.vo; -import com.cf.imes.module.report.controller.admin.dataset.vo.ReportDatasetParameterVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; +import javax.validation.constraints.NotBlank; /** * @author Gqr @@ -21,24 +19,19 @@ import java.util.List; @NoArgsConstructor public class ReportDatasourceTestConnReqVO { - @Schema(description = "数据源驱动类",example = "com.mysql.cj.jdbc.Driver") - private String driver; + @Schema(description = "数据源驱动类", example = "com.mysql.cj.jdbc.Driver") + @NotBlank(message = "数据源驱动类不能为空") + private String driverClassName; @Schema(description = "数据源地址", example = "https://www.cf.com") + @NotBlank(message = "数据源地址不能为空") private String url; @Schema(description = "数据源用户名", example = "晨丰") + @NotBlank(message = "数据源用户名不能为空") private String userName; @Schema(description = "数据源密码", example = "晨丰") + @NotBlank(message = "数据源密码不能为空") private String password; - - @Schema(description = "数据源id", example = "1") - private Long datasourceId; - - @Schema(description = "数据库语句") - private String sql; - - @Schema(description = "参数列表") - private List parameters = new ArrayList<>(); } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java index 3a8909693..4903eaf50 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java @@ -1,23 +1,18 @@ package com.cf.imes.module.report.controller.admin.template; -import com.bstek.designer.bean.PreviewParameters; import com.bstek.designer.bean.ReportDefinitionWrapper; import com.bstek.designer.excel.ExcelParserUtils; import com.bstek.ureport.definition.ReportDefinition; import com.bstek.ureport.dsl.ReportParserLexer; import com.bstek.ureport.dsl.ReportParserParser; -import com.bstek.ureport.exception.ReportException; -import com.bstek.ureport.export.ExportUtils; -import com.bstek.ureport.export.ProducerEnum; import com.bstek.ureport.export.html.HtmlReport; import com.bstek.ureport.expression.ErrorInfo; import com.bstek.ureport.expression.ScriptErrorListener; -import com.bstek.ureport.model.Report; import com.bstek.ureport.utils.StringUtils; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.util.object.BeanUtils; -import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO; +import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO; @@ -30,7 +25,6 @@ import lombok.extern.slf4j.Slf4j; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.tree.TerminalNode; -import org.apache.commons.io.IOUtils; import org.apache.http.HttpStatus; import org.apache.ibatis.annotations.Param; import org.springframework.security.access.prepost.PreAuthorize; @@ -41,10 +35,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; -import java.io.OutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -115,41 +109,22 @@ public class ReportTemplateController { @PostMapping("/template/preview") @Operation(summary = "模板预览") @PreAuthorize("@ss.hasPermission('report:preview')") - public CommonResult preview(@RequestBody PreviewParameters params) { - return success(templateService.preview(params)); + public CommonResult preview(@RequestBody ReportTemplatePreviewReqVO reqVO) { + return success(templateService.preview(reqVO)); } @PostMapping("/template/print") @Operation(summary = "模板预览打印") @PreAuthorize("@ss.hasPermission('report:preview')") - public void print(@RequestBody PreviewParameters reportParameters, HttpServletResponse response) { - templateService.print(reportParameters, response); + public void print(@RequestBody ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) { + templateService.print(reqVO, response); } @PostMapping("/template/download/{type}") @Operation(summary = "模板预览下载") @PreAuthorize("@ss.hasPermission('report:preview')") - public void print(@PathVariable @Valid @ReportTemplateProducerTypeInEnum String type, @RequestBody PreviewParameters reportParameters, HttpServletResponse response) { - templateService.download(type, reportParameters, response); - } - - @PostMapping("/template/export") - @Operation(summary = "模板导出") - @PreAuthorize("@ss.hasPermission('report:design')") - public void generateTemplate(@Valid @RequestBody ReportTemplateGenerateReqDTO reqDTO, HttpServletResponse response) { - OutputStream out = null; - try { - Report report = templateService.generateReport(reqDTO); - out = response.getOutputStream(); - ProducerEnum p = ProducerEnum.valueOf(reqDTO.getProducerType().toUpperCase()); - ExportUtils.export(out, report, p); - } catch (ReportException rex) { - throw rex; - } catch (Exception ex) { - log.error("[generateExcel] 报表模板生成excel异常", ex); - } finally { - IOUtils.closeQuietly(out); - } + public void print(@PathVariable @ReportTemplateProducerTypeInEnum @NotBlank(message = "模板下载类型不能为空") String type, @RequestBody ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) { + templateService.download(type, reqVO, response); } @PostMapping("/template/excel/import") diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewPageParametersVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewPageParametersVO.java deleted file mode 100644 index 8875547af..000000000 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewPageParametersVO.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.cf.imes.module.report.controller.admin.template.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -/** - * @author Gqr - * @since 2024/7/19 9:22 - */ -@Data -@Schema(description = "管理后台 - 报表模板预览分页参数 Request VO") -public class ReportTemplatePreviewPageParametersVO { - @Schema(description = "页码",example = "1") - private int pageIndex; - - @Schema(description = "预览参数") - private ReportTemplatePreviewParametersVO params; -} \ No newline at end of file diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewParametersVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewParametersVO.java deleted file mode 100644 index 429024e9e..000000000 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewParametersVO.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.cf.imes.module.report.controller.admin.template.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import javax.validation.constraints.NotNull; -import java.util.HashMap; -import java.util.Map; - -/** - * @author Gqr - * @since 2024/7/19 9:22 - */ -@Schema(description = "管理后台 - 报表模板预览参数 Request VO") -@Data -public class ReportTemplatePreviewParametersVO { - /** - * 报表内容 - */ - @Schema(description = "报表内容") - @NotNull(message = "预览报表内容不能为空") - private String content; - - /** - * 报表名称 - */ - @Schema(description = "报表名称") - private String reportName; - - /** - * 表单参数 - */ - @Schema(description = "表单参数") - private Map query = new HashMap<>(); - - /** - * 表单对应组件唯一标识 - */ - @Schema(description = "表单对应组件唯一标识") - private Map component = new HashMap<>(); - - /** - * 图表图片目前用于PDF导出 - */ - @Schema(description = "图表图片目前用于PDF导出") - private Map chartImages = new HashMap<>(); - -} diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewReqVO.java new file mode 100644 index 000000000..019377c35 --- /dev/null +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplatePreviewReqVO.java @@ -0,0 +1,47 @@ +package com.cf.imes.module.report.controller.admin.template.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.Map; + +/** + * @author Gqr + * @since 2024/7/19 9:22 + */ +@Data +@Schema(description = "管理后台 - 报表模板预览请求参数 Request VO") +public class ReportTemplatePreviewReqVO { + @Schema(description = "页码",example = "1") + @Min(value = 1, message = "页码最小值为 1") + private int pageIndex; + + @Schema(description = "报表内容") + @NotNull(message = "预览报表内容不能为空") + private String content; + + /** + * 表单参数 + */ + @Schema(description = "表单参数") + @Size(max = 30, message = "表单参数数量不能超过30个") + private Map query; + + /** + * 表单对应组件唯一标识 + */ + @Schema(description = "表单对应组件唯一标识") + @Size(max = 30, message = "表单对应组件唯一标识数量不能超过30个") + private Map component; + + /** + * 图表图片目前用于PDF导出 + */ + @Schema(description = "图表图片") + @Size(max = 30, message = "图表图片数量不能超过30个") + private Map chartImages; + +} \ No newline at end of file diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java index 88cd39c41..030bcaff0 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateSaveReqVO.java @@ -38,10 +38,10 @@ public class ReportTemplateSaveReqVO { private String remark; @Schema(description = "数据源id列表") - @Size(max = 20, message = "数据源数量不能超过20个") + @Size(max = 30, message = "数据源数量不能超过30个") private Set datasourceIds; @Schema(description = "数据集id列表") - @Size(max = 20, message = "数据集数量不能超过20个") + @Size(max = 30, message = "数据集数量不能超过30个") private Set datasetIds; } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/rpc/config/RpcConfiguration.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/rpc/config/RpcConfiguration.java deleted file mode 100644 index ae0cb28d0..000000000 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/rpc/config/RpcConfiguration.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.cf.imes.module.report.framework.rpc.config; - -import com.cf.imes.module.executor.api.datasource.OrderDatasourceApi; -import com.cf.imes.module.executor.api.datasource.OrderPartDatasourceApi; -import com.cf.imes.module.executor.api.datasource.OrderPlateDatasourceApi; -import org.springframework.cloud.openfeign.EnableFeignClients; -import org.springframework.context.annotation.Configuration; - -@Configuration(proxyBeanMethods = false) -@EnableFeignClients(clients = {OrderPlateDatasourceApi.class, OrderDatasourceApi.class, OrderPartDatasourceApi.class}) -public class RpcConfiguration { -} diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/ureport/bean/OrderSummaryBeanDatasource.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/ureport/bean/OrderSummaryBeanDatasource.java deleted file mode 100644 index 48863dc71..000000000 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/framework/ureport/bean/OrderSummaryBeanDatasource.java +++ /dev/null @@ -1,278 +0,0 @@ -package com.cf.imes.module.report.framework.ureport.bean; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.module.executor.api.datasource.OrderDatasourceApi; -import com.cf.imes.module.executor.api.datasource.OrderPartDatasourceApi; -import com.cf.imes.module.executor.api.datasource.OrderPlateDatasourceApi; -import com.cf.imes.module.executor.api.datasource.dto.OrderDTO; -import com.cf.imes.module.executor.api.datasource.dto.PartGoodsRespDTO; -import com.cf.imes.module.executor.api.datasource.dto.PlateGoodsRespDTO; -import com.cf.imes.module.executor.enums.OrderPlateOpenDoorTypeEnum; -import com.cf.imes.module.report.framework.ureport.annotation.CfReportSpringbeanDatasource; -import lombok.extern.slf4j.Slf4j; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author Gqr - * @since 2024/7/19 14:41 - */ -@CfReportSpringbeanDatasource(value = "OrderSummaryBeanDatasource", name = "生产单导出统计数据源") -@Slf4j -public class OrderSummaryBeanDatasource { - - @Resource - private OrderPlateDatasourceApi orderPlateDatasourceApi; - - @Resource - private OrderDatasourceApi orderDatasourceApi; - - @Resource - private OrderPartDatasourceApi orderPartDatasourceApi; - - // 常用的字段key - private static final String ORDER_ID_FIELD_NAME = "orderId"; - private static final String BODY_NAME_FIELD_NAME = "bodyName"; - private static final String ROOM_NAME_FIELD_NAME = "roomName"; - private static final String REMARK_FIELD_NAME = "remark"; - - /** - * 生产单信息 - * - * @param dsName - * @param datasetName - * @param parameters - * @return - */ - public List> orderInfo(String dsName, String datasetName, Map parameters) { - log.info("报表数据源[OrderSummaryBeanDatasource][orderInfo][{}][{}]调用开始", dsName, datasetName); - List> resultList = new ArrayList<>(); - - Object orderId = parameters.get(ORDER_ID_FIELD_NAME); - if (ObjectUtil.isNull(orderId)) { - - return resultList; - } - - CommonResult commonResult = orderDatasourceApi.getOrderInfo(Long.parseLong(orderId.toString())); - OrderDTO orderDTO = commonResult.getData(); - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - if (orderDTO != null) { - HashMap resultMap = new HashMap<>(); - // 构造报表所需结构 - resultMap.put(ORDER_ID_FIELD_NAME, orderDTO.getId()); - resultMap.put("customOrderNo", orderDTO.getCustomOrderNo()); - resultMap.put("dealer", orderDTO.getDealer()); - LocalDateTime orderDate = orderDTO.getOrderDate(); - resultMap.put("orderDate", ObjectUtil.isNotNull(orderDate) ? formatter.format(orderDate) : null); - LocalDateTime deliveryDate = orderDTO.getDeliveryDate(); - resultMap.put("deliveryDate", ObjectUtil.isNotNull(deliveryDate) ? formatter.format(deliveryDate) : null); - resultMap.put("customer", orderDTO.getCustomer()); - resultMap.put("phoneNumber", orderDTO.getPhoneNumber()); - resultList.add(resultMap); - } - log.info("报表数据源[OrderSummaryBeanDatasource][orderInfo][{}][{}]调用结束", dsName, datasetName); - return resultList; - } - - /** - * 板材汇总 - * - * @param dsName - * @param datasetName - * @param parameters - * @return - */ - public List> orderPlateGoodsSummary(String dsName, String datasetName, Map parameters) { - log.info("报表数据源[OrderSummaryBeanDatasource][orderPlateGoodsSummary][{}][{}]调用开始", dsName, datasetName); - List> resultList = new ArrayList<>(); - - Object orderId = parameters.get(ORDER_ID_FIELD_NAME); - // 查询统计信息 - CommonResult> commonResult = orderPlateDatasourceApi.selectPlateGoodsListSummary(Long.parseLong(orderId.toString())); - List plateGoodsRespDTOS = commonResult.getData(); - - if (CollUtil.isNotEmpty(plateGoodsRespDTOS)) { - plateGoodsRespDTOS.forEach(p -> { - Map resultMap = new HashMap<>(); - BigDecimal area = p.getArea(); - Integer count = p.getCount(); - // 构造报表所需结构 - resultMap.put(ROOM_NAME_FIELD_NAME, p.getRoomName()); - resultMap.put(BODY_NAME_FIELD_NAME, p.getBodyName()); - resultMap.put("thickness", stripTrailingZeros(p.getThickness())); - resultMap.put("name", p.getName()); - resultMap.put("height", stripTrailingZeros(p.getHeight())); - resultMap.put("width", stripTrailingZeros(p.getWidth())); - resultMap.put("count", count); - resultMap.put("area", stripTrailingZeros(area)); - resultMap.put("openDoorType", OrderPlateOpenDoorTypeEnum.getDescFromCode(p.getOpenDoorType())); - resultMap.put("material", p.getMaterial()); - resultMap.put("color", p.getColor()); - resultMap.put(REMARK_FIELD_NAME, p.getRemark()); - resultMap.put("areaAll", stripTrailingZeros(area.multiply(BigDecimal.valueOf(count)))); - resultList.add(resultMap); - }); - } - log.info("报表数据源[OrderSummaryBeanDatasource][orderPlateGoodsSummary][{}][{}]调用结束", dsName, datasetName); - return resultList; - } - - /** - * 板材明细 - * - * @param dsName - * @param datasetName - * @param parameters - * @return - */ - public List> orderPlateGoodsList(String dsName, String datasetName, Map parameters) { - log.info("报表数据源[OrderSummaryBeanDatasource][orderPlateGoodsList][{}][{}]调用开始", dsName, datasetName); - List> resultList = new ArrayList<>(); - - Object orderId = parameters.get(ORDER_ID_FIELD_NAME); - // 查询统计信息 - CommonResult> commonResult = orderPlateDatasourceApi.selectPlateGoodsList(Long.parseLong(orderId.toString())); - List plateGoodsRespDTOS = commonResult.getData(); - - if (CollUtil.isNotEmpty(plateGoodsRespDTOS)) { - plateGoodsRespDTOS.forEach(p -> { - Map resultMap = new HashMap<>(); - BigDecimal area = p.getArea(); - Integer count = p.getCount(); - // 构造报表所需结构 - resultMap.put("goodsName", p.getGoodsName()); - resultMap.put("name", p.getName()); - resultMap.put("material", p.getMaterial()); - resultMap.put("color", p.getColor()); - resultMap.put("goodsThickness", p.getGoodsThickness()); - resultMap.put("count", p.getCount()); - resultMap.put(ROOM_NAME_FIELD_NAME, p.getRoomName()); - resultMap.put(BODY_NAME_FIELD_NAME, p.getBodyName()); - resultMap.put("plateNo", p.getPlateNo()); - resultMap.put("height", stripTrailingZeros(p.getHeight())); - resultMap.put("width", stripTrailingZeros(p.getWidth())); - resultMap.put("thickness", stripTrailingZeros(p.getThickness())); - resultMap.put("area", stripTrailingZeros(area)); - resultMap.put(REMARK_FIELD_NAME, p.getRemark()); - resultMap.put("isSpecialShaped", getBooleanString(p.getIsSpecialShaped())); - resultMap.put("isSculpt", getBooleanString(p.getIsSculpt())); - resultMap.put("openDoorType", OrderPlateOpenDoorTypeEnum.getDescFromCode(p.getOpenDoorType())); - resultMap.put("seal", String.join(",", stripTrailingZeros(p.getSealLeft()), stripTrailingZeros(p.getSealRight()), stripTrailingZeros(p.getSealUp()), stripTrailingZeros(p.getSealDown()))); - resultMap.put("areaAll", stripTrailingZeros(area.multiply(BigDecimal.valueOf(count)))); - resultList.add(resultMap); - }); - } - log.info("报表数据源[OrderSummaryBeanDatasource][orderPlateGoodsList][{}][{}]调用结束", dsName, datasetName); - return resultList; - } - - /** - * 配件明细 - * - * @param dsName - * @param datasetName - * @param parameters - * @return - */ - public List> orderPartDetailList(String dsName, String datasetName, Map parameters) { - log.info("报表数据源[OrderSummaryBeanDatasource][orderPartDetailList][{}][{}]调用开始", dsName, datasetName); - List> resultList = new ArrayList<>(); - - Object orderId = parameters.get(ORDER_ID_FIELD_NAME); - CommonResult> commonResult = orderPartDatasourceApi.selectPartDetail(Long.parseLong(orderId.toString())); - List partGoodsRespDTOS = commonResult.getData(); - - if (CollUtil.isNotEmpty(partGoodsRespDTOS)) { - partGoodsRespDTOS.forEach(p -> { - Map resultMap = new HashMap<>(); - // 构造报表所需结构 - resultMap.put(ROOM_NAME_FIELD_NAME, p.getRoomName()); - resultMap.put(BODY_NAME_FIELD_NAME, p.getBodyName()); - resultMap.put("name", p.getName()); - resultMap.put("brand", p.getBrand()); - resultMap.put("factory", p.getFactory()); - resultMap.put("model", p.getModel()); - resultMap.put("spec", p.getSpec()); - resultMap.put("num", p.getNum()); - resultMap.put("unit", p.getUnit()); - resultMap.put("price", p.getPrice()); - resultMap.put("totalPrice", p.getTotalPrice()); - resultMap.put(REMARK_FIELD_NAME, p.getRemark()); - resultList.add(resultMap); - }); - } - - log.info("报表数据源[OrderSummaryBeanDatasource][orderPartDetailList][{}][{}]调用结束", dsName, datasetName); - return resultList; - } - - /** - * 配件汇总 - * - * @param dsName - * @param datasetName - * @param parameters - * @return - */ - public List> orderPartSummary(String dsName, String datasetName, Map parameters) { - log.info("报表数据源[OrderSummaryBeanDatasource][orderPartSummary][{}][{}]调用开始", dsName, datasetName); - List> resultList = new ArrayList<>(); - - Object orderId = parameters.get(ORDER_ID_FIELD_NAME); - CommonResult> commonResult = orderPartDatasourceApi.selectPartAll(Long.parseLong(orderId.toString())); - List partGoodsRespDTOS = commonResult.getData(); - - if (CollUtil.isNotEmpty(partGoodsRespDTOS)) { - partGoodsRespDTOS.forEach(p -> { - Map resultMap = new HashMap<>(); - // 构造报表所需结构 - resultMap.put("name", p.getName()); - resultMap.put("model", p.getModel()); - resultMap.put("spec", p.getSpec()); - resultMap.put("num", p.getNum()); - resultMap.put("unit", p.getUnit()); - resultMap.put("brand", p.getBrand()); - resultMap.put(REMARK_FIELD_NAME, p.getRemark()); - resultList.add(resultMap); - }); - } - - log.info("报表数据源[OrderSummaryBeanDatasource][orderPartSummary][{}][{}]调用结束", dsName, datasetName); - return resultList; - } - - /** - * 移除尾数的0,600.000 -> 600 - * - * @param data - * @return - */ - private String stripTrailingZeros(BigDecimal data) { - if (ObjectUtil.isNotNull(data)) { - return data.stripTrailingZeros().toPlainString(); - } else { - return ""; - } - } - - /** - * 布尔值转是否 - * - * @param b - * @return - */ - private String getBooleanString(Boolean b) { - return b ? "是" : "否"; - } -} diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java index e5f7693ba..ca80fb02d 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java @@ -1,10 +1,8 @@ package com.cf.imes.module.report.service.template; -import com.bstek.designer.bean.PreviewParameters; import com.bstek.designer.bean.ReportDefinitionWrapper; import com.bstek.ureport.export.html.HtmlReport; -import com.bstek.ureport.model.Report; -import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO; +import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO; @@ -80,21 +78,12 @@ public interface ReportTemplateService { * @param params * @return */ - HtmlReport preview(PreviewParameters params); - - - /** - * 构造生成报表report对象 - * - * @param dto - * @return - */ - Report generateReport(ReportTemplateGenerateReqDTO dto); + HtmlReport preview(ReportTemplatePreviewReqVO reqVO); /** * 模版预览打印 */ - void print(PreviewParameters params, HttpServletResponse response); + void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response); /** * 模版预览下载 @@ -103,5 +92,5 @@ public interface ReportTemplateService { * @param params * @param response */ - void download(String type, PreviewParameters params, HttpServletResponse response); + void download(String type, ReportTemplatePreviewReqVO reqVO, HttpServletResponse response); } diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java index d9fc5ccf9..f5fb34878 100644 --- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java +++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java @@ -34,8 +34,8 @@ import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; -import com.cf.imes.module.report.api.template.dto.ReportTemplateGenerateReqDTO; import com.cf.imes.module.report.config.CfReportProperties; +import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateSaveReqVO; @@ -353,7 +353,9 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { } @Override - public HtmlReport preview(PreviewParameters params) { + public HtmlReport preview(ReportTemplatePreviewReqVO reqVO) { + // 自定义请求vo转ureport对象 + PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class); Long userOrganId = SecurityFrameworkUtils.getUserOrganId(); HtmlProducer htmlProducer = new HtmlProducer(); @@ -391,7 +393,10 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { } @Override - public void print(PreviewParameters params, HttpServletResponse response) { + public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) { + // 自定义请求vo转ureport对象 + PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class); + long start = System.currentTimeMillis(); ReportRender reportRender = new ReportRender(); ReportDefinition reportDefinition = getReportDefinition(reportRender, params); @@ -416,7 +421,10 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { } @Override - public void download(String type, PreviewParameters params, HttpServletResponse response) { + public void download(String type, ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) { + // 自定义请求vo转ureport对象 + PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class); + ReportRender reportRender = new ReportRender(); ReportDefinition reportDefinition = getReportDefinition(reportRender, params); Report report = reportRender.render(reportDefinition, params.getQuery()); @@ -469,27 +477,6 @@ public class ReportTemplateServiceImpl implements ReportTemplateService { return reportDefinition; } - - @Override - public Report generateReport(ReportTemplateGenerateReqDTO reqDTO) { - // 校验生成文件类型 - validateProducerType(reqDTO.getProducerType()); - Long templateId = reqDTO.getTemplateId(); - // 校验模板 - ReportTemplateDO template = validateTemplateExists(templateId); - String xmlContent = template.getContent(); - ReportRender reportRender = new ReportRender(); - // 解析xml - ReportDefinition reportDefinition = reportRender.getReportDefinition(xmlContent, CharsetUtil.UTF_8); - // 查询数据源 - queryDatasource(template, reportDefinition); - // 设置参数 - PreviewParameters previewParameters = new PreviewParameters(); - previewParameters.setQuery(reqDTO.getParams()); - - return reportRender.render(reportDefinition, previewParameters.getQuery()); - } - /** * 模板生成文件类型校验 *