From 67a0062d617c1f1ffaecf207e59e764b498bbe57 Mon Sep 17 00:00:00 2001 From: Tom Li Date: Tue, 20 Jan 2026 15:19:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=A8=E6=9C=9F=E6=80=A7=E8=AF=95=E9=AA=8C?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/basic/constant/BaseRequest.java | 4 + .../desk/basic/constant/BaseValue.java | 6 + .../desk/basic/pojo/entity/Plating.java | 237 +++++++------ .../quality/constant/CycleTestTaskConst.java | 9 +- .../desk/quality/pojo/entity/CycleTest.java | 9 + .../quality/pojo/entity/CycleTestTask.java | 17 +- .../pojo/request/CycleTestTaskSearch.java | 103 ++++++ .../request/ReviewSheetRedoScrapSearch.java | 12 +- .../desk/quality/pojo/vo/CycleTestVO.java | 3 + blade-service/blade-desk/pom.xml | 12 + .../basic/controller/PlatingController.java | 332 ++++++++++-------- .../controller/CycleTestController.java | 4 + .../controller/CycleTestTaskController.java | 38 +- .../quality/excel/CycleTestTaskExcel.java | 240 ++++--------- .../desk/quality/mapper/CycleTestMapper.xml | 1 + .../quality/mapper/CycleTestTaskMapper.java | 7 + .../quality/mapper/CycleTestTaskMapper.xml | 169 +++++++++ .../service/CycleTestTaskService2.java | 77 ++-- 18 files changed, 803 insertions(+), 477 deletions(-) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestTaskSearch.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseRequest.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseRequest.java index fb707857..31f11aec 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseRequest.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseRequest.java @@ -37,4 +37,8 @@ public interface BaseRequest { * */ String KEEP_USER_REAL_NAME = "keepUserRealName"; + /** + * status 状态集合 + */ + String STATUS_LIST = "statusList"; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java index 60f0cf0d..05091bda 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java @@ -16,6 +16,12 @@ public interface BaseValue { */ Long ADMIN_USER_ID = 1123598821738675201L; + /** + * Yes + */ Integer YES = 1; + /** + * No + */ Integer NO = 0; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Plating.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Plating.java index 05912651..c272180e 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Plating.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/Plating.java @@ -24,134 +24,143 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = true) public class Plating extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * 配置码 - */ + /** + * 配置码 + */ public static final String COL_CONFIG_NO = "CONFIG_NO"; - /** - * [镀种分类]id - */ + /** + * [镀种分类]id + */ public static final String COL_BC_ID = "BC_ID"; - /** - * 镀种 - */ + /** + * 镀种 + */ public static final String COL_PLATING = "PLATING"; - /** - * 材料 - */ + /** + * 材料 + */ public static final String COL_MATERIAL = "MATERIAL"; - /** - * 硬度 - */ + /** + * 硬度 + */ public static final String COL_HARDNESS = "HARDNESS"; - /** - * 镀层编码 - */ + /** + * 镀层编码 + */ public static final String COL_MAT_CODE = "MAT_CODE"; - /** - * 材料状态 - */ + /** + * 材料状态 + */ public static final String COL_MAT_STATE = "MAT_STATE"; - /** - * 镀种小类 - */ + /** + * 镀种小类 + */ public static final String COL_SUB_CLASS = "SUB_CLASS"; - /** - * 其他要求 - */ + /** + * 其他要求 + */ public static final String COL_MEMO = "MEMO"; - /** - * 镀层代号 - */ + /** + * 镀层代号 + */ public static final String COL_PLATE_CODE = "PLATE_CODE"; - /** - * 镀层物料 - */ + /** + * 镀层物料 + */ public static final String COL_PLATE_GOODS_CODE = "PLATE_GOODS_CODE"; - /** - * 镀层厚度 - */ + /** + * 镀层厚度 + */ public static final String COL_PLATE_THICKNESS = "PLATE_THICKNESS"; - /** - * 排序 - */ + /** + * 排序 + */ public static final String COL_SORT = "SORT"; - /** - * 备注 - */ + /** + * 备注 + */ public static final String COL_REMARK = "REMARK"; + /** + * 是否用于周期性试验 + */ + public static final String COL_FLAG_CYCLE_TEST = "FLAG_CYCLE_TEST"; - /** - * 配置码 - */ - @Schema(description = "配置码") - private String configNo; - /** - * [镀种分类]id - */ - @Schema(description = "[镀种分类]id") - private Long bcId; - /** - * 镀种 - */ - @Schema(description = "镀种") - private String plating; - /** - * 材料 - */ - @Schema(description = "材料") - private String material; - /** - * 硬度 - */ - @Schema(description = "硬度") - private String hardness; - /** - * 镀层编码 - */ - @Schema(description = "镀层编码") - private String matCode; - /** - * 材料状态 - */ - @Schema(description = "材料状态") - private String matState; - /** - * 镀种小类 - */ - @Schema(description = "镀种小类") - private Long subClass; - /** - * 其他要求 - */ - @Schema(description = "其他要求") - private String memo; - /** - * 镀层代号 - */ - @Schema(description = "镀层代号") - private String plateCode; - /** - * 镀层物料 - */ - @Schema(description = "镀层物料") - private String plateGoodsCode; - /** - * 镀层厚度 - */ - @Schema(description = "镀层厚度") - private String plateThickness; - /** - * 排序 - */ - @Schema(description = "排序") - private Long sort; - /** - * 备注 - */ - @Schema(description = "备注") - private String remark; + /** + * 配置码 + */ + @Schema(description = "配置码") + private String configNo; + /** + * [镀种分类]id + */ + @Schema(description = "[镀种分类]id") + private Long bcId; + /** + * 镀种 + */ + @Schema(description = "镀种") + private String plating; + /** + * 材料 + */ + @Schema(description = "材料") + private String material; + /** + * 硬度 + */ + @Schema(description = "硬度") + private String hardness; + /** + * 镀层编码 + */ + @Schema(description = "镀层编码") + private String matCode; + /** + * 材料状态 + */ + @Schema(description = "材料状态") + private String matState; + /** + * 镀种小类 + */ + @Schema(description = "镀种小类") + private Long subClass; + /** + * 其他要求 + */ + @Schema(description = "其他要求") + private String memo; + /** + * 镀层代号 + */ + @Schema(description = "镀层代号") + private String plateCode; + /** + * 镀层物料 + */ + @Schema(description = "镀层物料") + private String plateGoodsCode; + /** + * 镀层厚度 + */ + @Schema(description = "镀层厚度") + private String plateThickness; + /** + * 排序 + */ + @Schema(description = "排序") + private Long sort; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + /** + * 是否用于周期性试验 + */ + @Schema(description = "是否用于周期性试验") + private Integer flagCycleTest; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/CycleTestTaskConst.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/CycleTestTaskConst.java index 2a84d0d8..ad0afb1c 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/CycleTestTaskConst.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/CycleTestTaskConst.java @@ -46,5 +46,12 @@ public interface CycleTestTaskConst { */ String DICT_STATUS = "CycleTestTask-Status"; - + /** + * 临期 + */ + Integer FILTER_TYPE_APPROACH = 1; + /** + * 超期 + */ + Integer FILTER_TYPE_OUT = 2; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java index 872048b5..0c262a80 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTest.java @@ -155,6 +155,10 @@ public class CycleTest extends BaseEntity { * [镀种]名称 */ public static final String COL_PLATE_NAME = "PLATE_NAME"; + /** + * [镀种]ids + */ + public static final String COL_PLATE_IDS = "PLATE_IDS"; /** * [周期试验]编码 @@ -316,4 +320,9 @@ public class CycleTest extends BaseEntity { */ @Schema(description = "[镀种]名称") private String plateName; + /** + * [镀种]ids + */ + @Schema(description = "[镀种]ids") + private String plateIds; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java index 30672b24..3fa01448 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/CycleTestTask.java @@ -141,10 +141,18 @@ public class CycleTestTask extends BaseEntity { * [周期试验]id */ public static final String COL_CYCLE_TEST_ID = "CYCLE_TEST_ID"; - + /** + * 临期标记 + */ public static final String COL_FLAG_APPROACH = "FLAG_APPROACH"; - + /** + * 超期标记 + */ public static final String COL_FLAG_OUT = "FLAG_OUT"; + /** + * 超期原因 + */ + public static final String COl_REASON_FOR_OUT = "REASON_FOR_OUT"; /** * [周期试验任务]编码 @@ -296,4 +304,9 @@ public class CycleTestTask extends BaseEntity { */ @Schema(description = "超期标记") private Integer flagOut; + /** + * 超期原因 + */ + @Schema(description = "超期原因") + private String reasonForOut; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestTaskSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestTaskSearch.java new file mode 100644 index 00000000..697fe912 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestTaskSearch.java @@ -0,0 +1,103 @@ +package org.springblade.desk.quality.pojo.request; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springblade.desk.quality.pojo.entity.CycleTestTask; +import org.springblade.desk.util.json.deserializer.DateBeginOfDayDeserializer; +import org.springblade.desk.util.json.deserializer.DateEndOfDayDeserializer; +import org.springblade.desk.util.json.deserializer.LocalDateTimeBeginOfDayDeserializer; +import org.springblade.desk.util.json.deserializer.LocalDateTimeEndOfDayDeserializer; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CycleTestTaskSearch extends CycleTestTask { + + @Schema(description = "过滤类型 1临期2超期") + private Integer filterType = 0; + @JsonDeserialize(using = DateBeginOfDayDeserializer.class) + @Schema(description = "创建时间-开始") + private Date createTimeStart; + @JsonDeserialize(using = DateEndOfDayDeserializer.class) + @Schema(description = "创建时间-结束") + private Date createTimeEnd; + @Schema(description = "状态数组") + private List statusList; + + /** + * [周期试验项目]名称 + */ + @Schema(description = "[周期试验项目]名称") + private String cycleTestItemName; + /** + * [周期试验项目]试验条件 + */ + @Schema(description = "[周期试验项目]试验条件") + private String cycleTestItemCondition; + /** + * [周期试验标准]名称 + */ + @Schema(description = "[周期试验项目]试验标准") + private String cycleTestStandardName; + /** + * 工艺员[用户]姓名 + */ + @Schema(description = "工艺员[用户]姓名") + private String processUserName; + /** + * 一次性任务生成日期-开始 + */ + @JsonDeserialize(using = LocalDateTimeBeginOfDayDeserializer.class) + @Schema(description = "一次性任务生成日期-开始") + private LocalDateTime oneTimeGenDateStart; + /** + * 一次性任务生成日期-结束 + */ + @JsonDeserialize(using = LocalDateTimeEndOfDayDeserializer.class) + @Schema(description = "一次性任务生成日期-结束") + private LocalDateTime oneTimeGenDateEnd; + /** + * 下发时间-开始 + */ + @JsonDeserialize(using = LocalDateTimeBeginOfDayDeserializer.class) + @Schema(description = "下发时间-开始") + private LocalDateTime issueDateStart; + /** + * 下发时间-结束 + */ + @JsonDeserialize(using = LocalDateTimeEndOfDayDeserializer.class) + @Schema(description = "下发时间-结束") + private LocalDateTime issueDateEnd; + /** + * 接收时间-开始 + */ + @JsonDeserialize(using = LocalDateTimeBeginOfDayDeserializer.class) + @Schema(description = "接收时间-开始") + private LocalDateTime acceptDateStart; + /** + * 接收时间-结束 + */ + @JsonDeserialize(using = LocalDateTimeEndOfDayDeserializer.class) + @Schema(description = "接收时间-结束") + private LocalDateTime acceptDateEnd; + /** + * 完成时间-开始 + */ + @JsonDeserialize(using = LocalDateTimeBeginOfDayDeserializer.class) + @Schema(description = "完成时间-开始") + private LocalDateTime finishDateStart; + /** + * 完成时间-结束 + */ + @JsonDeserialize(using = LocalDateTimeEndOfDayDeserializer.class) + @Schema(description = "完成时间-结束") + private LocalDateTime finishDateEnd; +} + diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java index 0c0d4428..44efb008 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java @@ -25,20 +25,20 @@ public class ReviewSheetRedoScrapSearch extends ReviewSheet { /** * 使用 toReviewDate 字段 */ - @Schema(description = "创建提请时间-开始") @JsonDeserialize(using = LocalDateTimeBeginOfDayDeserializer.class) + @Schema(description = "创建提请时间-开始") private LocalDateTime createTimeStart; + @JsonDeserialize(using = DateBeginOfDayDeserializer.class) + @Schema(description = "创建时间-开始") + private Date baseCreateTimeStart; /** * 使用 toReviewDate 字段 */ - @Schema(description = "创建提请时间-结束") @JsonDeserialize(using = LocalDateTimeEndOfDayDeserializer.class) + @Schema(description = "创建提请时间-结束") private LocalDateTime createTimeEnd; - @Schema(description = "创建时间-开始") - @JsonDeserialize(using = DateBeginOfDayDeserializer.class) - private Date baseCreateTimeStart; - @Schema(description = "创建时间-结束") @JsonDeserialize(using = DateEndOfDayDeserializer.class) + @Schema(description = "创建时间-结束") private Date baseCreateTimeEnd; @Schema(description = "提请人员[用户]真名") private String createUserRealName; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java index 15b24796..59090aea 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java @@ -73,4 +73,7 @@ public class CycleTestVO extends CycleTest { */ @Schema(description = "standard") private CycleTestStandardVO standard; + + @Schema(description = "[镀种]ids") + private String plateIds; } diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index 6ab9351d..22095ad9 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -76,6 +76,12 @@ com.videasoft vwebfrk-base 1.4.6-RELEASE + + + org.olap4j + olap4j + + org.codehaus.groovy @@ -97,6 +103,12 @@ com.lowagie itext 2.1.7 + + + com.lowagie + itext + + org.springblade diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java index bdbdf420..a2a39609 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java @@ -3,8 +3,10 @@ */ package org.springblade.desk.basic.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -16,6 +18,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.CommonConstant; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; @@ -25,12 +28,14 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.constant.BAModuleConst; +import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.excel.PlatingExcel; import org.springblade.desk.basic.pojo.entity.Plating; import org.springblade.desk.basic.pojo.vo.PlatingVO; import org.springblade.desk.basic.service.IPlatingService; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.wrapper.PlatingWrapper; +import org.springblade.desk.quality.pojo.entity.ReviewDuty; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -55,184 +60,199 @@ import java.util.stream.Collectors; public class PlatingController extends BladeController { @Resource - private IPlatingService service; - - /** - * [镀种] 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 10) - @Operation(summary = "详情", description = "传入Plating Obj") - public R detail(Plating plating) { - QueryWrapper qw = Condition.getQueryWrapper(plating); - Plating detail = service.getOne(qw); - PlatingVO detailVO = PlatingWrapper.build().entityVO(detail); - service.setVOValue(detailVO); - return R.data(detailVO); - } - - /** - * [镀种] list分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 20) - @Operation(summary = "list分页", description = "传入Plating Obj") - public R> list(@Parameter(hidden = true) @RequestParam Map plating, - Query query) { + private IPlatingService service; + + /** + * [镀种] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 10) + @Operation(summary = "详情", description = "传入Plating Obj") + public R detail(Plating plating) { + QueryWrapper qw = Condition.getQueryWrapper(plating); + Plating detail = service.getOne(qw); + PlatingVO detailVO = PlatingWrapper.build().entityVO(detail); + service.setVOValue(detailVO); + return R.data(detailVO); + } + + /** + * [镀种] list分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 20) + @Operation(summary = "list分页", description = "传入Plating Obj") + public R> list(@Parameter(hidden = true) @RequestParam Map plating, + Query query) { QueryWrapper qw = Condition.getQueryWrapper(plating, Plating.class); - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = PlatingWrapper.build().pageVO(pages); - pagesVO.getRecords() - .stream() - .peek(service::setVOValue) - .collect(Collectors.toList()); - return R.data(pagesVO); - } - - - /** - * [镀种] page分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 21) - @Operation(summary = "page分页", description = "传入Plating Obj") - public R> page(PlatingVO plating, Query query) { - IPage pagesVO = service.selectPlatingPage( - Condition.getPage(query), plating - ); - return R.data(pagesVO); - } - - /** + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = PlatingWrapper.build().pageVO(pages); + pagesVO.getRecords() + .stream() + .peek(service::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); + } + + + /** + * [镀种] page分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 21) + @Operation(summary = "page分页", description = "传入Plating Obj") + public R> page(PlatingVO plating, Query query) { + IPage pagesVO = service.selectPlatingPage( + Condition.getPage(query), plating + ); + return R.data(pagesVO); + } + + /** * [镀种] list下拉选择 */ @GetMapping("/listForSelect") @ApiOperationSupport(order = 22) - @Operation(summary = "list下拉选择", description = "") + @Operation(summary = "list下拉选择", description = "") public R> listForSelect() { - List list = service.list(); - List listVO = PlatingWrapper.build().listVO(list); - return R.data(listVO); + List list = service.list(); + List listVO = PlatingWrapper.build().listVO(list); + return R.data(listVO); + } + + /** + * [镀种] list下拉选择-周期性试验专用 + */ + @GetMapping("/listForSelectCycleTest") + @ApiOperationSupport(order = 22) + @Operation(summary = "list下拉选择-周期性试验专用", description = "") + public R> listForSelectCycleTest() { + LambdaQueryWrapper qw = Wrappers.lambdaQuery(Plating.class) + .eq(Plating::getFlagCycleTest, BaseValue.YES) + .eq(Plating::getIsDeleted, CommonConstant.DELETE_FALSE); + List list = service.list(qw); + List listVO = PlatingWrapper.build().listVO(list); + return R.data(listVO); } - /** - * [镀种] 新增一条 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 30) - @Operation(summary = "新增一条", description = "传入Plating Obj") - public R save(@Valid @RequestBody Plating addOne) { - addOne.setId(null); - return R.status(service.save(addOne)); - } - - /** + /** + * [镀种] 新增一条 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 30) + @Operation(summary = "新增一条", description = "传入Plating Obj") + public R save(@Valid @RequestBody Plating addOne) { + addOne.setId(null); + return R.status(service.save(addOne)); + } + + /** * [镀种] 新增批量 */ - @PostMapping("/saveBat") - @ApiOperationSupport(order = 31) - @Operation(summary = "新增批量", description = "传入Plating List") - public R saveBat(@Valid @RequestBody List addList) { - addList.forEach(one -> { - one.setId(null); - }); - return R.status(service.saveBatch(addList)); - } - - /** - * [镀种] 修改一条 - */ - @PostMapping("/update") - @ApiOperationSupport(order = 40) - @Operation(summary = "修改一条", description = "传入Plating Obj") - public R update(@Valid @RequestBody Plating updateOne) { - return R.status(service.updateById(updateOne)); - } + @PostMapping("/saveBat") + @ApiOperationSupport(order = 31) + @Operation(summary = "新增批量", description = "传入Plating List") + public R saveBat(@Valid @RequestBody List addList) { + addList.forEach(one -> { + one.setId(null); + }); + return R.status(service.saveBatch(addList)); + } + + /** + * [镀种] 修改一条 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 40) + @Operation(summary = "修改一条", description = "传入Plating Obj") + public R update(@Valid @RequestBody Plating updateOne) { + return R.status(service.updateById(updateOne)); + } /** * [镀种] 修改批量 */ @PostMapping("/updateBat") @ApiOperationSupport(order = 41) - @Operation(summary = "修改批量", description = "传入Plating List") + @Operation(summary = "修改批量", description = "传入Plating List") public R updateBat(@Valid @RequestBody List updateList) { return R.status(service.updateBatchById(updateList)); } - /** - * [镀种] 新增或修改一条 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 50) - @Operation(summary = "新增或修改一条", description = "传入Plating Obj") - public R submit(@Valid @RequestBody Plating mergeOne) { - return R.status(service.saveOrUpdate(mergeOne)); - } - - /** + /** + * [镀种] 新增或修改一条 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 50) + @Operation(summary = "新增或修改一条", description = "传入Plating Obj") + public R submit(@Valid @RequestBody Plating mergeOne) { + return R.status(service.saveOrUpdate(mergeOne)); + } + + /** * [镀种] 新增或修改批量 */ - @PostMapping("/submitBat") - @ApiOperationSupport(order = 51) - @Operation(summary = "新增或修改批量", description = "传入Plating List") - public R submitBat(@Valid @RequestBody List mergeList) { - return R.status(service.saveOrUpdateBatch(mergeList)); - } - - /** - * [镀种] 逻辑删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 61) - @Operation(summary = "逻辑删除", description = "传入ids") - public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { - return R.status(service.deleteLogic(Func.toLongList(ids))); - } - - /** - * [镀种] 导出Excel - */ - @GetMapping("/exportExcel") - @ApiOperationSupport(order = 70) - @Operation(summary = "导出Excel", description = "传入Plating") - public void exportExcel(@Parameter(hidden = true) @RequestParam Map plating, - BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper qw = Condition.getQueryWrapper(plating, Plating.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(Plating::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(PlatingEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportPlating(qw); - ExcelUtil.export(response, "[镀种]数据" + DateUtil.time(), - "[镀种]数据表", list, PlatingExcel.class); - } - - /** + @PostMapping("/submitBat") + @ApiOperationSupport(order = 51) + @Operation(summary = "新增或修改批量", description = "传入Plating List") + public R submitBat(@Valid @RequestBody List mergeList) { + return R.status(service.saveOrUpdateBatch(mergeList)); + } + + /** + * [镀种] 逻辑删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 61) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(service.deleteLogic(Func.toLongList(ids))); + } + + /** + * [镀种] 导出Excel + */ + @GetMapping("/exportExcel") + @ApiOperationSupport(order = 70) + @Operation(summary = "导出Excel", description = "传入Plating") + public void exportExcel(@Parameter(hidden = true) @RequestParam Map plating, + BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper qw = Condition.getQueryWrapper(plating, Plating.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(Plating::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(PlatingEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = service.exportPlating(qw); + ExcelUtil.export(response, "[镀种]数据" + DateUtil.time(), + "[镀种]数据表", list, PlatingExcel.class); + } + + /** * [镀种] 下载Excel模板 */ - @GetMapping("/downloadExcelTemplate") - @ApiOperationSupport(order = 71) - @Operation(summary = "下载Excel模板", description = "") - public ResponseEntity downloadExcelTemplate() { - return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/ImportTemplate-CycleTestItem.xls", - "导入模版-周期试验项目.xls"); - } - - /** - * [镀种] 导入Excel - */ - @PostMapping("/importExcel") - @ApiOperationSupport(order = 72) - @Operation(summary = "导入Excel", description = "MultipartFile") - public R importExcel(@RequestParam("file") MultipartFile file) { - R checkR = ExcelExtUtil.importExcelCheck(file); - if (checkR != null) { - return checkR; - } - List importList = ExcelUtil.read( - file, 0, 1, Plating.class - ); - return R.status(service.saveBatch(importList)); - } + @GetMapping("/downloadExcelTemplate") + @ApiOperationSupport(order = 71) + @Operation(summary = "下载Excel模板", description = "") + public ResponseEntity downloadExcelTemplate() { + return ExcelExtUtil.downloadXlsTemplate( + "Excel/QA/ImportTemplate-CycleTestItem.xls", + "导入模版-周期试验项目.xls"); + } + + /** + * [镀种] 导入Excel + */ + @PostMapping("/importExcel") + @ApiOperationSupport(order = 72) + @Operation(summary = "导入Excel", description = "MultipartFile") + public R importExcel(@RequestParam("file") MultipartFile file) { + R checkR = ExcelExtUtil.importExcelCheck(file); + if (checkR != null) { + return checkR; + } + List importList = ExcelUtil.read( + file, 0, 1, Plating.class + ); + return R.status(service.saveBatch(importList)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java index 02b7a969..ce2bd1c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestController.java @@ -103,6 +103,10 @@ public class CycleTestController extends BladeController { @ApiOperationSupport(order = 4) @Operation(summary = "新增", description = "传入cycleTest") public R save(@Valid @RequestBody CycleTestSubmit ct) { + if (ct.getTestDuration() == null) { + // 试验时长默认是1天 + ct.setTestDuration(1); + } return service.saveSubmit(ct); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java index 523b130b..5f959018 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestTaskController.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.quality.controller; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; @@ -22,13 +23,16 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.CycleTestTaskExcel; import org.springblade.desk.quality.pojo.entity.CycleTestTask; +import org.springblade.desk.quality.pojo.request.CycleTestTaskSearch; import org.springblade.desk.quality.pojo.vo.CycleTestTaskVO; +import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO; import org.springblade.desk.quality.service.CycleTestTaskService2; import org.springblade.desk.quality.service.ICycleTestTaskService; import org.springblade.desk.quality.wrapper.CycleTestTaskWrapper; @@ -36,6 +40,7 @@ import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -85,6 +90,19 @@ public class CycleTestTaskController extends BladeController { return service.list(cycleTestTask, filterType, query); } + /** + * [周期试验任务] 多条件 分页 + */ + @PostMapping("/listSearch") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入inspectionTask") + public R> listSearch(@Valid @RequestBody CycleTestTaskSearch search, + @RequestBody Query query) { + log.info("search = {}", search); + log.info("query = {}", query); + log.info("getUserRole = {}", AuthUtil.getUserRole()); + return service.listSearch(Condition.getPage(query), search); + } /** * [周期试验任务] 自定义分页 @@ -139,20 +157,23 @@ public class CycleTestTaskController extends BladeController { /** * 导出数据 */ - @IsAdmin - @GetMapping("/export-excel") + @PostMapping("/export-excel") @ApiOperationSupport(order = 8) @Operation(summary = "导出数据", description = "传入cycleTestTask") - public void exportCycleTestTask(@Parameter(hidden = true) @RequestParam Map cycleTestTask, + public void exportCycleTestTask(@Valid @RequestBody CycleTestTaskSearch search, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(cycleTestTask, CycleTestTask.class); + // QueryWrapper queryWrapper = Condition.getQueryWrapper(cycleTestTask, CycleTestTask.class); //if (!AuthUtil.isAdministrator()) { // queryWrapper.lambda().eq(CycleTestTask::getTenantId, bladeUser.getTenantId()); //} //queryWrapper.lambda().eq(CycleTestTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = cycleTestTaskGenService.exportCycleTestTask(queryWrapper); + + + List list = service.listSearchWithoutPage(search); + // todo:excel格式 + List listExcel = BeanUtil.copyToList(list, CycleTestTaskExcel.class); ExcelUtil.export(response, "[周期试验任务]数据" + DateUtil.time(), - "[周期试验任务]数据表", list, CycleTestTaskExcel.class); + "[周期试验任务]数据表", listExcel, CycleTestTaskExcel.class); } @PostMapping("/issue-one") @@ -193,8 +214,9 @@ public class CycleTestTaskController extends BladeController { @Parameter(description = "是否进行试验-[1]:试验;[2]:不试验;", required = true) @RequestParam Integer isDone, @Parameter(description = "试验时间") @RequestParam(required = false, defaultValue = "") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate testDate, @Parameter(description = "试验结果") @RequestParam(required = false, defaultValue = "0") Long testAttachId, - @Parameter(description = "不试验原因") @RequestParam(required = false, defaultValue = "") String reasonForNo) { - return service.fill(id, isDone, testDate, testAttachId, reasonForNo); + @Parameter(description = "不试验原因") @RequestParam(required = false, defaultValue = "") String reasonForNo, + @Parameter(description = "超期原因") @RequestParam(required = false, defaultValue = "") String reasonForOut) { + return service.fill(id, isDone, testDate, testAttachId, reasonForNo, reasonForOut); } @GetMapping("/testAuto") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestTaskExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestTaskExcel.java index 67ac53b3..c84440e4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestTaskExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestTaskExcel.java @@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serial; @@ -18,6 +19,7 @@ import java.time.LocalDateTime; /** * [周期试验任务] Excel实体类 + * 和 Web页中列一致。 * * @author Tom Shuo * @since 2025-12-22 @@ -28,175 +30,73 @@ import java.time.LocalDateTime; @ContentRowHeight(18) public class CycleTestTaskExcel implements Serializable { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * [周期试验任务]编码 - */ - @ColumnWidth(20) - @ExcelProperty("[周期试验任务]编码") - private String code; - /** - * [周期试验任务]类型-[1]:周期性;[2]一次性; - */ - @ColumnWidth(20) - @ExcelProperty("[周期试验任务]类型-[1]:周期性;[2]一次性;") - private Long cycleTestTaskType; - /** - * 名称 - */ - @ColumnWidth(20) - @ExcelProperty("名称") - private String name; - /** - * 配置[班组]id - */ - @ColumnWidth(20) - @ExcelProperty("配置[班组]id") - private BigDecimal configTeamId; - /** - * 配置[外协商]id - */ - @ColumnWidth(20) - @ExcelProperty("配置[外协商]id") - private BigDecimal configOemId; - /** - * [周期性试验项目]id - */ - @ColumnWidth(20) - @ExcelProperty("[周期性试验项目]id") - private BigDecimal cycleTestItemId; - /** - * 试验件类型-[1]:零件;[2]:试片; - */ - @ColumnWidth(20) - @ExcelProperty("试验件类型-[1]:零件;[2]:试片;") - private BigDecimal testType; - /** - * 工艺员[用户]id - */ - @ColumnWidth(20) - @ExcelProperty("工艺员[用户]id") - private BigDecimal processUserId; - /** - * 试验技术员[用户]id - */ - @ColumnWidth(20) - @ExcelProperty("试验技术员[用户]id") - private BigDecimal testUserId; - /** - * 下发[班组]id - */ - @ColumnWidth(20) - @ExcelProperty("下发[班组]id") - private BigDecimal sendTeamId; - /** - * 下发[外协商]id - */ - @ColumnWidth(20) - @ExcelProperty("下发[外协商]id") - private BigDecimal sendOemId; - /** - * 下发人员[用户]id - */ - @ColumnWidth(20) - @ExcelProperty("下发人员[用户]id") - private BigDecimal sendUserId; - /** - * 数量 - */ - @ColumnWidth(20) - @ExcelProperty("数量") - private Long quantity; - /** - * [镀种]id - */ - @ColumnWidth(20) - @ExcelProperty("[镀种]id") - private String plateId; - /** - * 批次号 - */ - @ColumnWidth(20) - @ExcelProperty("批次号") - private String batchCode; - /** - * 专家描述 - */ - @ColumnWidth(20) - @ExcelProperty("专家描述") - private String expertDesc; - /** - * 评审描述 - */ - @ColumnWidth(20) - @ExcelProperty("评审描述") - private String reviewDesc; - /** - * 排序 - */ - @ColumnWidth(20) - @ExcelProperty("排序") - private Long sort; - /** - * 备注 - */ - @ColumnWidth(20) - @ExcelProperty("备注") - private String remark; - /** - * 填报附件 - */ - @ColumnWidth(20) - @ExcelProperty("填报附件") - private BigDecimal testAttachId; - /** - * 是否进行试验-[1]:试验;[2]:不试验; - */ - @ColumnWidth(20) - @ExcelProperty("是否进行试验-[1]:试验;[2]:不试验;") - private Long isDone; - /** - * 试验时间 - */ - @ColumnWidth(20) - @ExcelProperty("试验时间") - private LocalDateTime testDate; - /** - * 一次性任务生成日期 - */ - @ColumnWidth(20) - @ExcelProperty("一次性任务生成日期") - private LocalDateTime oneTimeGenDate; - /** - * 下发时间 - */ - @ColumnWidth(20) - @ExcelProperty("下发时间") - private LocalDateTime issueDate; - /** - * 接收时间 - */ - @ColumnWidth(20) - @ExcelProperty("接收时间") - private LocalDateTime acceptDate; - /** - * 完成时间 - */ - @ColumnWidth(20) - @ExcelProperty("完成时间") - private LocalDateTime finishDate; - /** - * 不试验原因 - */ - @ColumnWidth(20) - @ExcelProperty("不试验原因") - private String reasonForNo; - /** - * [周期试验]id - */ - @ColumnWidth(20) - @ExcelProperty("[周期试验]id") - private BigDecimal cycleTestId; + /** + * [周期试验任务]编码 + */ + @ColumnWidth(20) + @ExcelProperty("任务编号") + private String code; + @Schema(description = "项目名称") + @ColumnWidth(20) + @ExcelProperty("项目名称") + private String cycleTestItemName; + @Schema(description = "试验条件") + @ColumnWidth(20) + @ExcelProperty("试验条件") + private String cycleTestItemCondition; + @Schema(description = "试验标准") + @ColumnWidth(20) + @ExcelProperty("试验标准") + private String cycleTestStandardName; + /** + * 试验件类型-[1]:零件;[2]:试片; todo: + */ + @ColumnWidth(20) + @ExcelProperty("试验件") + private String testType; + /** + * 临期天数 + */ + @Schema(description = "临期天数") + @ColumnWidth(20) + @ExcelProperty("临期天数") + private String countDayToPlanedFinish; + /** + * 状态名称 + */ + @Schema(description = "状态") + @ColumnWidth(20) + @ExcelProperty("状态") + private String statusName; + /** + * 工艺员[用户]姓名 + */ + @Schema(description = "工艺员[用户]姓名") + @ColumnWidth(20) + @ExcelProperty("状态") + private String processUserName; + /** + * 任务生成时间 + */ + @Schema(description = "任务生成时间") + @ColumnWidth(20) + @ExcelProperty("任务生成时间") + private LocalDateTime genDatetime; + /** + * 接收时间 + */ + @Schema(description = "接收时间") + @ColumnWidth(20) + @ExcelProperty("接收时间") + private LocalDateTime acceptDate; + /** + * 完成时间 + */ + @Schema(description = "完成时间") + @ColumnWidth(20) + @ExcelProperty("完成时间") + private LocalDateTime finishDate; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestMapper.xml index d8d2c214..125f8a16 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestMapper.xml @@ -36,6 +36,7 @@ + @@ -62,4 +63,172 @@ SELECT * FROM QA_CYCLE_TEST_TASK ${ew.customSqlSegment} + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java index 49254328..7e0b0e87 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java @@ -3,7 +3,10 @@ package org.springblade.desk.quality.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; import jakarta.annotation.Resource; +import jakarta.validation.Valid; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -15,17 +18,22 @@ import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.config.RoleConfig; import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseValue; +import org.springblade.desk.basic.util.RoleUtil; import org.springblade.desk.quality.constant.CycleTestConst; import org.springblade.desk.quality.constant.CycleTestTaskConst; +import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.mapper.CycleTestMapper; import org.springblade.desk.quality.mapper.CycleTestTaskMapper; import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTestItem; import org.springblade.desk.quality.pojo.entity.CycleTestStandard; import org.springblade.desk.quality.pojo.entity.CycleTestTask; +import org.springblade.desk.quality.pojo.request.CycleTestTaskSearch; +import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; import org.springblade.desk.quality.pojo.request.JobExt; import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO; import org.springblade.desk.quality.pojo.vo.CycleTestTaskVO; +import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO; import org.springblade.desk.quality.util.JobExtUtil; import org.springblade.desk.quality.wrapper.CycleTestStandardWrapper; import org.springblade.desk.quality.wrapper.CycleTestTaskWrapper; @@ -36,6 +44,8 @@ import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.UserInfo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.time.*; import java.time.format.DateTimeFormatter; @@ -55,7 +65,6 @@ import java.util.stream.Collectors; * 开始临期提醒日期 = 任务计划结束日期 - 临期提醒天数(前提未完成的试验) * 临期天数 = 任务计划结束日期 - 当前日期 *

- * todo:工艺员 只能看到自己的数据。 */ @Service @Data @@ -94,26 +103,25 @@ public class CycleTestTaskService2 { */ public R> list(Map map, Integer filterType, Query query) { QueryWrapper qw = Condition.getQueryWrapper(map, CycleTestTask.class); - log.info("####map = {}", map); + // log.info("####map = {}", map); // filterType= 1 or 2 if (filterType != null && filterType != 0) { - if (filterType == 1) { - log.info("####COL_FLAG_APPROACH {}", map); // todo: + if (filterType.equals(CycleTestTaskConst.FILTER_TYPE_APPROACH)) { qw.eq(CycleTestTask.COL_FLAG_APPROACH, BaseValue.YES); } - if (filterType == 2) { - log.info("####COL_FLAG_OUT {}", map); // todo: + if (filterType.equals(CycleTestTaskConst.FILTER_TYPE_OUT)) { qw.eq(CycleTestTask.COL_FLAG_OUT, BaseValue.YES); } } // 区分角色 // 工艺员角色 只能看到自己的任务 - if (AuthUtil.getUserRole().contains(roleConfig.getProcessEngineerAlias())) { + if (RoleUtil.hasRole(roleConfig.getProcessEngineerAlias())) { qw.eq(CycleTestTask.COL_PROCESS_USER_ID, AuthUtil.getUser().getUserId()); - qw.ne(BaseCol.STATUS, CycleTestTaskConst.S_PENDING_ISSUE); + qw.in(BaseCol.STATUS, CycleTestTaskConst.S_PENDING_ACCEPT, CycleTestTaskConst.S_PENDING_TEST); } - // - qw.orderByDesc(BaseCol.ID); + // 创建时间正序 + qw.orderByAsc(BaseCol.CREATE_TIME); + // 状态正序 qw.orderByAsc(BaseCol.STATUS); IPage pages = service.page( Condition.getPage(query), qw); @@ -125,6 +133,42 @@ public class CycleTestTaskService2 { return R.data(pagesVO); } + public R> listSearch(IPage page, CycleTestTaskSearch search) { + // 区分角色 + if (RoleUtil.hasRole(roleConfig.getProcessEngineerAlias())) { + if (search == null) { + search = new CycleTestTaskSearch(); + } + // 工艺员角色 只能看到自己的任务 + search.setProcessUserId(AuthUtil.getUser().getUserId()); + // 默认显示待处理的任务 + if (search.getStatusList() == null || search.getStatusList().isEmpty()) { + search.setStatusList(List.of(CycleTestTaskConst.S_PENDING_ACCEPT, CycleTestTaskConst.S_PENDING_TEST)); + } + } + List listVO = mapper.listSearch(page, search); + for (CycleTestTaskVO oneVO : listVO) { + setVOValue(oneVO); + } + return R.data(page.setRecords(listVO)); + } + + public List listSearchWithoutPage(CycleTestTaskSearch search) { + // 区分角色 + if (RoleUtil.hasRole(roleConfig.getProcessEngineerAlias())) { + if (search == null) { + search = new CycleTestTaskSearch(); + } + // 工艺员角色 只能看到自己的任务 + search.setProcessUserId(AuthUtil.getUser().getUserId()); + } + List listVO = mapper.listSearchWithoutPage(search); + for (CycleTestTaskVO oneVO : listVO) { + setVOValue(oneVO); + } + return listVO; + } + /** * search * @@ -349,10 +393,11 @@ public class CycleTestTaskService2 { * @param testDate * @param testAttachId * @param reasonForNo + * @param reasonForOut * @return */ @Transactional - public R fill(Long id, Integer isDone, LocalDate testDate, Long testAttachId, String reasonForNo) { + public R fill(Long id, Integer isDone, LocalDate testDate, Long testAttachId, String reasonForNo, String reasonForOut) { CycleTestTask task = service.getById(id); task.setIsDone(isDone); task.setTestDate(testDate); @@ -364,6 +409,7 @@ public class CycleTestTaskService2 { } task.setFinishDate(LocalDateTime.now()); task.setReasonForNo(reasonForNo); + task.setReasonForOut(reasonForOut); return R.status(service.updateById(task)); } @@ -401,15 +447,6 @@ public class CycleTestTaskService2 { vo.setCountDayToPlanedFinish(getCountDayToOut(vo.getId())); } - /** - * 计算任务 周期性任务 下发日期/任务生成日期 - * - * @return - */ - public LocalDate cal() { - return null; - } - public String genCode() { StringBuilder sb = new StringBuilder(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");