From 1c3dcab0db50e561b51bd1c1a53afdb85a859695 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Tue, 15 Oct 2024 17:44:57 +0800 Subject: [PATCH 1/7] =?UTF-8?q?1=E3=80=81bug#565=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BC=98=E5=8C=96=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1=E5=8F=AA=E5=9C=A8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=89=8B=E6=9C=BA=E6=97=B6=E6=A0=A1=E9=AA=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=99=BB=E5=BD=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/template/ReportTemplateController.java | 3 ++- .../admin/template/vo/ReportTemplateSaveReqVO.java | 4 ++++ .../module/system/service/auth/AdminAuthServiceImpl.java | 3 +-- .../imes/module/system/service/sms/SmsCodeServiceImpl.java | 6 +++--- 4 files changed, 10 insertions(+), 6 deletions(-) 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 5c5f2621c..3a8909693 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 @@ -42,6 +42,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Size; import java.io.OutputStream; import java.util.HashMap; @@ -106,7 +107,7 @@ public class ReportTemplateController { @GetMapping("/templates") @Operation(summary = "获取报表模板信息列表") @PreAuthorize("@ss.hasPermission('report:design')") - public CommonResult> getTemplatePage(@RequestParam(value = "name", required = false) String name) { + public CommonResult> getTemplatePage(@RequestParam(value = "name", required = false) @Size(max = 64, message = "模板名称长度不能超过64个字符") String name) { ReportTemplateReqVO reqVO = new ReportTemplateReqVO(name, null); return success(BeanUtils.toBean(templateService.getReportTemplateList(reqVO), ReportTemplateRespVO.class)); } 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 ceb5d597a..88cd39c41 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 @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; import java.util.Set; /** @@ -33,11 +34,14 @@ public class ReportTemplateSaveReqVO { private String content; @Schema(description = "备注", example = "该模板仅供生产使用") + @Length(max = 64, message = "备注长度不能超过64个字符") private String remark; @Schema(description = "数据源id列表") + @Size(max = 20, message = "数据源数量不能超过20个") private Set datasourceIds; @Schema(description = "数据集id列表") + @Size(max = 20, message = "数据集数量不能超过20个") private Set datasetIds; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java index a1cea439e..267b21e66 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java @@ -105,8 +105,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { // 校验机构有效性 organService.validOrgan(user.getOrganId()); // 校验密码 - String userPassword = user.getPassword(); - if (StringUtils.isNotEmpty(userPassword) && !userService.isPasswordMatch(password, userPassword)) { + if (!userService.isPasswordMatch(password, user.getPassword())) { createLoginLog(user.getId(), username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); throw ServiceExceptionUtil.exception(ErrorCodeConstants.AUTH_LOGIN_BAD_CREDENTIALS); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java index daae816e6..5cab9520f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/sms/SmsCodeServiceImpl.java @@ -60,9 +60,6 @@ public class SmsCodeServiceImpl implements SmsCodeService { public void sendSmsCode(SmsCodeSendReqDTO reqDTO) { AdminUserDO user = userService.getUserByUsernameAndOrganId(reqDTO.getMobile(), null); LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - if (ObjectUtil.isNull(loginUser)) { - throw new ServiceException(GlobalErrorCodeConstants.UNAUTHORIZED); - } // 更新手机号场景检查 if (ObjectUtil.equal(SmsSceneEnum.USER_UPDATE_MOBILE.getScene(), reqDTO.getScene())) { userUpdateMobileValid(user, loginUser); @@ -89,6 +86,9 @@ public class SmsCodeServiceImpl implements SmsCodeService { * @param loginUser */ private void userUpdateMobileValid(AdminUserDO user, LoginUser loginUser) { + if (ObjectUtil.isNull(loginUser)) { + throw new ServiceException(GlobalErrorCodeConstants.UNAUTHORIZED); + } if (ObjectUtil.isNotNull(user)) { if (ObjectUtil.equal(user.getId(), loginUser.getId())) { // 手机号没有改变无需验证码 From e73eca67622f6371a29a9d9b0b775a2ec3fccf30 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Tue, 15 Oct 2024 18:05:03 +0800 Subject: [PATCH 2/7] =?UTF-8?q?1=E3=80=81bug#565=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BC=98=E5=8C=96=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1=E5=8F=AA=E5=9C=A8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=89=8B=E6=9C=BA=E6=97=B6=E6=A0=A1=E9=AA=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=99=BB=E5=BD=95=EF=BC=9B3=E3=80=81=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=85=A5=E5=8F=82=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E5=AE=8C=E5=96=84=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cf/imes/module/system/service/auth/AdminAuthServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java index 267b21e66..c20648bab 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/auth/AdminAuthServiceImpl.java @@ -9,7 +9,6 @@ import com.cf.imes.framework.common.util.servlet.ServletUtils; import com.cf.imes.framework.common.util.validation.ValidationUtils; import com.cf.imes.module.system.api.logger.dto.LoginLogCreateReqDTO; import com.cf.imes.module.system.api.sms.SmsCodeApi; -import com.cf.imes.module.system.api.sms.dto.code.SmsCodeUseReqDTO; import com.cf.imes.module.system.api.social.dto.SocialUserBindReqDTO; import com.cf.imes.module.system.api.social.dto.SocialUserRespDTO; import com.cf.imes.module.system.controller.admin.auth.vo.AuthLoginReqVO; From 94908e01eb7b605df27e453bee895077ddf64ee3 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 16 Oct 2024 11:08:31 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E8=AE=BE=E8=AE=A1=E3=80=81=E6=9C=BA=E5=8F=B0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E5=85=A5=E5=8F=82=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/auth/vo/AuthLoginReqVO.java | 4 --- .../admin/dept/vo/post/PostPageReqVO.java | 6 ++++ .../admin/dept/vo/post/PostSaveReqVO.java | 6 ++-- .../admin/label/LabelController.java | 3 +- .../admin/label/vo/LabelPageReqVO.java | 4 +++ .../admin/label/vo/LabelSaveReqVO.java | 6 ++-- .../admin/machine/MachineController.java | 3 +- .../admin/machine/vo/CuttingSaveReqVO.java | 4 +++ .../machine/vo/CuttingTemplateSaveReqVO.java | 4 +++ .../admin/machine/vo/MachinePageReqVO.java | 6 +++- .../machine/vo/MachineTemplateBrandReqVO.java | 4 +++ .../admin/machine/vo/OrganMachinePage.java | 4 ++- .../validation/machine/MachineTypeValid.java | 32 +++++++++++++++++++ .../machine/MachineTypeValidator.java | 28 ++++++++++++++++ 14 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValid.java create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValidator.java diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/auth/vo/AuthLoginReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/auth/vo/AuthLoginReqVO.java index 55574c421..5c17b3c3b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/auth/vo/AuthLoginReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/auth/vo/AuthLoginReqVO.java @@ -1,6 +1,5 @@ package com.cf.imes.module.system.controller.admin.auth.vo; -import cn.hutool.core.util.ObjectUtil; import com.cf.imes.framework.common.validation.InEnum; import com.cf.imes.module.system.enums.social.SocialTypeEnum; import io.swagger.v3.oas.annotations.media.Schema; @@ -33,9 +32,6 @@ public class AuthLoginReqVO { @NotEmpty(message = "密码不能为空") private String password; - @Schema(description = "组织名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰科技") - private String organName; - // ========== 图片验证码相关 ========== @Schema(description = "验证码,验证码开启时,需要传递", requiredMode = Schema.RequiredMode.REQUIRED, diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostPageReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostPageReqVO.java index aa6f20457..4afd65576 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostPageReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostPageReqVO.java @@ -1,22 +1,28 @@ package com.cf.imes.module.system.controller.admin.dept.vo.post; import com.cf.imes.framework.common.pojo.PageParam; +import com.cf.imes.module.system.validation.common.CommonStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import javax.validation.constraints.Size; + @Schema(description = "管理后台 - 岗位分页 Request VO") @Data @EqualsAndHashCode(callSuper = true) public class PostPageReqVO extends PageParam { @Schema(description = "岗位编码,模糊匹配", example = "chenfeng") + @Size(max = 64, message = "岗位编码长度不能超过64个字符") private String code; @Schema(description = "岗位名称,模糊匹配", example = "晨丰") + @Size(max = 50, message = "岗位名称长度不能超过50个字符") private String name; @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") + @CommonStatus private Integer status; private Long organId; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java index 4b42a1eaf..a4c2b75cb 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostSaveReqVO.java @@ -1,7 +1,6 @@ package com.cf.imes.module.system.controller.admin.dept.vo.post; -import com.cf.imes.framework.common.enums.CommonStatusEnum; -import com.cf.imes.framework.common.validation.InEnum; +import com.cf.imes.module.system.validation.common.CommonStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -31,10 +30,11 @@ public class PostSaveReqVO { private Integer sort; @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @InEnum(CommonStatusEnum.class) + @CommonStatus private Integer status; @Schema(description = "备注", example = "快乐的备注") + @Size(max = 256, message = "备注长度不能超过256个字符") private String remark; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/LabelController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/LabelController.java index 2f6976d6c..5f95727fe 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/LabelController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/LabelController.java @@ -12,6 +12,7 @@ import com.cf.imes.module.system.controller.admin.label.vo.LabelRespVO; import com.cf.imes.module.system.controller.admin.label.vo.LabelSaveReqVO; import com.cf.imes.module.system.dal.dataobject.lable.LabelDO; import com.cf.imes.module.system.service.lable.LabelService; +import com.cf.imes.module.system.validation.label.LabelTemplateTypeValid; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -87,7 +88,7 @@ public class LabelController { @Parameter(name = "type", description = "类型", required = false, example = "1024") //@PreAuthorize("@ss.hasPermission('system:label:query')") @OperateLog(enable = false) - public CommonResult> getList(@RequestParam("type") String type) { + public CommonResult> getList(@RequestParam("type") @LabelTemplateTypeValid String type) { return success(BeanUtils.toBean(labelService.list(type), LabelRespVO.class)); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelPageReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelPageReqVO.java index e0780943b..ff27391d9 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelPageReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelPageReqVO.java @@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.Size; import java.time.LocalDateTime; import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -18,12 +19,15 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH public class LabelPageReqVO extends PageParam { @Schema(description = "标签类型", example = "2") + @Size(max = 32, message = "标签类型长度不能超过32个字符") private String type; @Schema(description = "标签名称", example = "王五") + @Size(max = 50, message = "标签名称长度不能超过50个字符") private String name; @Schema(description = "备注", example = "你猜") + @Size(max = 255, message = "备注长度不能超过255个字符") private String remark; @Schema(description = "宽度") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelSaveReqVO.java index 173d1dd08..c70b50e5d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/label/vo/LabelSaveReqVO.java @@ -1,12 +1,11 @@ package com.cf.imes.module.system.controller.admin.label.vo; -import co.elastic.clients.elasticsearch.watcher.DeactivateWatchRequest; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; -import java.util.List; +import javax.validation.constraints.Size; @Schema(description = "管理后台 - 标签模板新增/修改 Request VO") @Data @@ -17,14 +16,17 @@ public class LabelSaveReqVO { @Schema(description = "标签类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "标签类型不能为空") + @Size(max = 32, message = "标签类型长度不能超过32个字符") private String type; @Schema(description = "标签名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "标签名称不能为空") + @Size(max = 50, message = "标签名称长度不能超过50个字符") private String name; @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") @NotEmpty(message = "备注不能为空") + @Size(max = 255, message = "备注长度不能超过255个字符") private String remark; @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java index 804f7b01a..4533f4bef 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java @@ -10,6 +10,7 @@ import com.cf.imes.module.system.controller.admin.machine.vo.*; import com.cf.imes.module.system.dal.dataobject.machine.MachineDO; import com.cf.imes.module.system.service.machine.MachineService; import com.cf.imes.module.system.service.machine.MachineTemplateService; +import com.cf.imes.module.system.validation.machine.MachineTypeValid; import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -119,7 +120,7 @@ public class MachineController { @GetMapping("getBrandAndModel") @Operation(summary = "获得机台的品牌跟型号") //@PreAuthorize("@ss.hasPermission('machine::query')") - public CommonResult> getBrandAndModel(@RequestParam Integer type) { + public CommonResult> getBrandAndModel(@RequestParam @MachineTypeValid Integer type) { return success(machineService.getBrandAndModel(type)); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java index 3dbd60976..209d9506f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java @@ -2,11 +2,13 @@ package com.cf.imes.module.system.controller.admin.machine.vo; import com.alibaba.fastjson.JSONObject; import com.cf.imes.framework.es.core.valid.UpdateGroup; +import com.cf.imes.module.system.validation.machine.MachineTypeValid; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; /** * @author there @@ -21,10 +23,12 @@ public class CuttingSaveReqVO { @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "名称不能为空") + @Size(max = 100, message = "名称长度不能超过100个字符") private String name; @Schema(description = "1开料机台设备 2钻孔机台设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "1开料机台设备 2钻孔机台设备 不能为空") + @MachineTypeValid private Integer machineType; @Schema(description = "标签id") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java index 0d520ae2a..84221b682 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java @@ -2,11 +2,13 @@ package com.cf.imes.module.system.controller.admin.machine.vo; import com.alibaba.fastjson.JSONObject; import com.cf.imes.framework.es.core.valid.UpdateGroup; +import com.cf.imes.module.system.validation.machine.MachineTypeValid; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; /** * @author there @@ -19,10 +21,12 @@ public class CuttingTemplateSaveReqVO { @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") @NotEmpty(message = "名称不能为空") + @Size(max = 100, message = "名称长度不能超过100个字符") private String name; @Schema(description = "1开料机台设备 2钻孔机台设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "1开料机台设备 2钻孔机台设备 不能为空") + @MachineTypeValid private Integer machineType; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachinePageReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachinePageReqVO.java index 281038454..9c82ea96f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachinePageReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachinePageReqVO.java @@ -1,10 +1,12 @@ package com.cf.imes.module.system.controller.admin.machine.vo; +import com.cf.imes.module.system.validation.machine.MachineTypeValid; import lombok.*; -import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; import com.cf.imes.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.Size; import java.time.LocalDateTime; import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -16,9 +18,11 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH public class MachinePageReqVO extends PageParam { @Schema(description = "名称", example = "王五") + @Size(max = 100, message = "名称长度不能超过100个字符") private String name; @Schema(description = "1机台设备 2CNC设备", example = "2") + @MachineTypeValid private Integer machineType; @Schema(description = "创建时间") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineTemplateBrandReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineTemplateBrandReqVO.java index 97a4d852d..c647cc0c4 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineTemplateBrandReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineTemplateBrandReqVO.java @@ -1,10 +1,12 @@ package com.cf.imes.module.system.controller.admin.machine.vo; +import com.cf.imes.module.system.validation.machine.MachineTypeValid; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.util.List; @Data @@ -16,6 +18,7 @@ public class MachineTemplateBrandReqVO { @Schema(description = "1开料机台设备 2钻孔机台设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "1开料机台设备 2钻孔机台设备 不能为空") + @MachineTypeValid private Integer machineType; @Schema(description = "机台的品牌ID") @@ -24,6 +27,7 @@ public class MachineTemplateBrandReqVO { @Schema(description = "机台的品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "品牌名称不能为空") + @Size(max = 64, message = "品牌名称长度不能超过64个字符") private String brand; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java index bdb5fc381..cbb4a48ba 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/OrganMachinePage.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.machine.vo; import com.cf.imes.framework.common.pojo.PageParam; +import com.cf.imes.module.system.validation.common.CommonStatus; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -10,10 +11,11 @@ import lombok.Data; @Data public class OrganMachinePage extends PageParam { - @Schema(description = "组织名称") + @Schema(description = "组织编号") private Long organId; @Schema(description = "组织状态(0正常 1停用)") + @CommonStatus private Integer status; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValid.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValid.java new file mode 100644 index 000000000..80f5f6899 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValid.java @@ -0,0 +1,32 @@ +package com.cf.imes.module.system.validation.machine; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 机台类型校验注解 + * + * @author Gqr + * @since 2024/10/16 10:20 + */ +@Target({ + ElementType.PARAMETER, + ElementType.FIELD, +}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Constraint( + validatedBy = {MachineTypeValidator.class} +) +public @interface MachineTypeValid { + String message() default "机台类型类型不合法"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValidator.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValidator.java new file mode 100644 index 000000000..e6fc27cb7 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/validation/machine/MachineTypeValidator.java @@ -0,0 +1,28 @@ +package com.cf.imes.module.system.validation.machine; + +import cn.hutool.core.util.ObjectUtil; +import com.cf.imes.framework.common.enums.MachineTypeEnum; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + +/** + * 机台类型校验器 + * + * @author Gqr + * @since 2024/10/16 10:21 + */ +public class MachineTypeValidator implements ConstraintValidator { + @Override + public boolean isValid(Integer value, ConstraintValidatorContext context) { + if (ObjectUtil.isNull(value)) { + return true; + } + for (MachineTypeEnum typeEnum : MachineTypeEnum.values()) { + if (ObjectUtil.equal(typeEnum.getType(), value)) { + return true; + } + } + return false; + } +} From 266e11c202e934f25397bf7ef5d8efface6c3ac1 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Wed, 16 Oct 2024 14:52:16 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=9C=BA=E5=8F=B0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=85=A5=E5=8F=82=E6=A3=80=E6=9F=A5=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/machine/vo/CuttingSaveReqVO.java | 2 ++ .../machine/vo/CuttingTemplateSaveReqVO.java | 5 ++-- .../admin/machine/vo/MachineOrgAuthReq.java | 8 ++++++ .../machine/MachineTemplateServiceImpl.java | 28 ++++++++++++++++--- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java index 209d9506f..22e9d9b4d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java @@ -32,6 +32,7 @@ public class CuttingSaveReqVO { private Integer machineType; @Schema(description = "标签id") + @NotNull(message = "标签id不能空") private Long labelId; // // 新的机台逻辑需要删除 @@ -40,6 +41,7 @@ public class CuttingSaveReqVO { // private Long templateId; @Schema(description = "品牌ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "品牌ID不能为空") private Long brandId; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java index 84221b682..da55d19c5 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingTemplateSaveReqVO.java @@ -31,10 +31,11 @@ public class CuttingTemplateSaveReqVO { @Schema(description = "当前品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "当前品牌ID不能为空") private Long nowBrandId; - @Schema(description = "引用的品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @Schema(description = "引用的品牌ID", example = "2") private Long brandId; @@ -54,7 +55,7 @@ public class CuttingTemplateSaveReqVO { // private String model; - @Schema(description = "机台的型号-机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @Schema(description = "机台的型号-机台ID", example = "2") private Long machineId; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java index bda650983..ea41595a9 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineOrgAuthReq.java @@ -3,6 +3,8 @@ package com.cf.imes.module.system.controller.admin.machine.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import javax.validation.constraints.NotNull; + /** * @author Beal */ @@ -10,26 +12,32 @@ import lombok.Data; public class MachineOrgAuthReq { @Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "组织id不能为空") private Long organId; @Schema(description = "开料机授权数量") + @NotNull(message = "开料机授权数量不能为空") private Integer cutLimit; @Schema(description = "钻孔机授权数量") + @NotNull(message = "钻孔机授权数量不能为空") private Integer drillLimit; @Schema(description = "贴标机授权数量") + @NotNull(message = "贴标机授权数量不能为空") private Integer labelLimit; @Schema(description = "裁板锯授权数量") + @NotNull(message = "裁板锯授权数量不能为空") private Integer sawLimit; @Schema(description = "封边机授权数量") + @NotNull(message = "封边机授权数量不能为空") private Integer sealedgeLimit; diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java index 607e70544..b7d7c0fc2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.service.machine; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import co.elastic.clients.elasticsearch.ElasticsearchClient; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cf.imes.framework.common.enums.CommonStatusEnum; @@ -148,7 +149,11 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { // MachineBrandDO machineBrandDO = machineBrandMapper.selectById(reqVO.getId()); - List machineTemplateDOS = machineTemplateMapper.selectByBrand(reqVO.getId()); + Long brandId = reqVO.getId(); + // 校验品牌是否存在 + validateBrandExistes(brandId); + + List machineTemplateDOS = machineTemplateMapper.selectByBrand(brandId); if (!machineTemplateDOS.isEmpty()) { // throw exception(MACHINE_TEMPLATE_NOT_EXISTS); @@ -160,7 +165,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { } - machineBrandMapper.deleteById(reqVO.getId()); + machineBrandMapper.deleteById(brandId); return Boolean.TRUE; } @@ -281,8 +286,8 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { public void updateMachineTemplateBrand(MachineTemplateBrandReqVO reqVO) { // MachineBrandDO machineBrandDO = machineBrandMapper.selectBrand(reqVO.getBrand(), reqVO.getMachineType()); - - MachineBrandDO machineBrandDO = machineBrandMapper.selectById(reqVO.getId()); + // 校验机台品牌是否存在 + MachineBrandDO machineBrandDO = validateBrandExistes(reqVO.getId()); machineBrandDO.setBrand(reqVO.getBrand()); @@ -291,6 +296,21 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { } + + /** + * 校验机台品牌是否存在 + * + * @param id + */ + private MachineBrandDO validateBrandExistes(Long id) { + MachineBrandDO machineBrandDO = machineBrandMapper.selectById(id); + if (ObjectUtil.isNull(machineBrandDO)) { + throw exception(THE_CURRENT_BRAND); + } + return machineBrandDO; + } + + @Override public TemplateAutoResp getTemplateAuth(Long organId) { From 4ceb952bf03c54dd642b005f86806ce06dd71386 Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Wed, 16 Oct 2024 16:05:17 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E7=A6=85=E9=81=93Bug416=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/plan/vo/OrderPageReqVOCopy.java | 10 +++++----- .../cf-module-prod-manage-biz/pom.xml | 3 +-- .../controller/admin/machine/vo/CuttingSaveReqVO.java | 1 + 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OrderPageReqVOCopy.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OrderPageReqVOCopy.java index 179594cba..f9ed1e9a7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OrderPageReqVOCopy.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OrderPageReqVOCopy.java @@ -6,10 +6,10 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.time.LocalDateTime; +import java.time.LocalDate; import java.util.List; -import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; /** * @author there @@ -42,9 +42,9 @@ public class OrderPageReqVOCopy extends PageParam { private Boolean twoDimensionalToolPath; @Schema(description = "门板") private Boolean isDoor; - @Schema(description = "生产单订单日期", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; + @Schema(description = "生产单订单日期", example = "[2022-07-01 ,2022-07-01]") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) + private LocalDate[] createTime; @Schema(description = "长 小范围") private BigDecimal longMinRang; @Schema(description = "长 大范围") diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml index dc0612047..777b99b49 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/pom.xml @@ -177,8 +177,7 @@ com.cf.imes cf-module-prod-executor-api - 2.0.0-jdk8-snapshot - compile + ${revision} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java index 22e9d9b4d..0dcbbb6c1 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java @@ -53,6 +53,7 @@ public class CuttingSaveReqVO { @Schema(description = "机台的型号-机台的ID") + @NotNull(message = "机台型号不能为空") private Long machineId; 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 6/7] =?UTF-8?q?1=E3=80=81=E6=8A=A5=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=85=A5=E5=8F=82=E6=A3=80=E6=9F=A5=E5=AE=8C=E5=96=84?= =?UTF-8?q?=EF=BC=9B2=E3=80=81executor-api=E3=80=81report-api=E7=9B=B8?= =?UTF-8?q?=E4=BA=92=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()); - } - /** * 模板生成文件类型校验 * From 70ab1cf90ebabde2f56bde096f7b0a7bccfb03b6 Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Wed, 16 Oct 2024 18:01:21 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=9C=BA=E5=8F=B0=E5=9E=8B=E5=8F=B7?= =?UTF-8?q?=E9=9D=9E=E7=A9=BA=E5=88=A4=E6=96=AD=E5=BF=BD=E7=95=A5=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/admin/machine/vo/CuttingSaveReqVO.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java index 0dcbbb6c1..03c149494 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/CuttingSaveReqVO.java @@ -1,6 +1,7 @@ package com.cf.imes.module.system.controller.admin.machine.vo; import com.alibaba.fastjson.JSONObject; +import com.cf.imes.framework.es.core.valid.CreateGroup; import com.cf.imes.framework.es.core.valid.UpdateGroup; import com.cf.imes.module.system.validation.machine.MachineTypeValid; import io.swagger.v3.oas.annotations.media.Schema; @@ -53,7 +54,7 @@ public class CuttingSaveReqVO { @Schema(description = "机台的型号-机台的ID") - @NotNull(message = "机台型号不能为空") + @NotNull(message = "机台型号不能为空",groups = CreateGroup.class) private Long machineId;