From dd9b94f61070e8620b1dd51e57771535d753c283 Mon Sep 17 00:00:00 2001 From: Tom Li Date: Wed, 21 Jan 2026 10:14:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E6=A7=BD=E6=B6=B2?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E7=BB=93=E6=9E=9C=20=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/LiquidTankTaskCopy.java | 804 +++++++++--------- ...O.java => LiquidTankWaveDrawSingleVO.java} | 22 +- .../quality/pojo/vo/LiquidTankWaveDrawVO.java | 8 +- .../LiquidTankTaskCopyController.java | 82 +- .../quality/service/CycleTestService2.java | 12 +- .../service/LiquidTankTaskSetVoService.java | 2 +- .../impl/LiquidTankTaskServiceImpl.java | 34 +- 7 files changed, 499 insertions(+), 465 deletions(-) rename blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/{LiquidTankWaveDrawItemVO.java => LiquidTankWaveDrawSingleVO.java} (69%) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java index dd8d2fce..fb72cd22 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTaskCopy.java @@ -25,208 +25,208 @@ import java.time.LocalDateTime; @EqualsAndHashCode(callSuper = true) public class LiquidTankTaskCopy extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * [槽液检测任务]编码 - */ + /** + * [槽液检测任务]编码 + */ public static final String COL_CODE = "CODE"; - /** - * 类型 - */ + /** + * 类型 + */ public static final String COL_LIQUID_TANK_TASK_TYPE = "LIQUID_TANK_TASK_TYPE"; - /** - * [作业中心]id - */ + /** + * [作业中心]id + */ public static final String COL_WORK_CENTER_ID = "WORK_CENTER_ID"; - /** - * [作业槽]id - */ + /** + * [作业槽]id + */ public static final String COL_WORK_TANK_ID = "WORK_TANK_ID"; - /** - * [槽液]id - */ + /** + * [槽液]id + */ public static final String COL_LIQUID_TANK_ID = "LIQUID_TANK_ID"; - /** - * [槽液]编号 - */ + /** + * [槽液]编号 + */ public static final String COL_LIQUID_TANK_CODE = "LIQUID_TANK_CODE"; - /** - * 化验人[用户]id - */ + /** + * 化验人[用户]id + */ public static final String COL_TEST_USER_ID = "TEST_USER_ID"; - /** - * 复检化验人[用户]id - */ + /** + * 复检化验人[用户]id + */ public static final String COL_REPEAT_TEST_USER_ID = "REPEAT_TEST_USER_ID"; - /** - * 工艺主管[用户]id - */ + /** + * 工艺主管[用户]id + */ public static final String COL_PROCESS_USER_ID = "PROCESS_USER_ID"; - /** - * 审核[用户]id - */ + /** + * 审核[用户]id + */ public static final String COL_REVIEW_USER_ID = "REVIEW_USER_ID"; - /** - * 发药[用户]id - */ + /** + * 发药[用户]id + */ public static final String COL_SEND_DRUG_USER_ID = "SEND_DRUG_USER_ID"; - /** - * 领药[用户]id - */ + /** + * 领药[用户]id + */ public static final String COL_RECEIVE_DRUG_USER_ID = "RECEIVE_DRUG_USER_ID"; - /** - * [班组]id - */ + /** + * [班组]id + */ public static final String COL_TEAM_ID = "TEAM_ID"; - /** - * 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成; - */ + /** + * 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成; + */ public static final String COL_FROM_TYPE = "FROM_TYPE"; - /** - * 名称 - */ + /** + * 名称 + */ public static final String COL_NAME = "NAME"; - /** - * 药品[物料]id - */ + /** + * 药品[物料]id + */ public static final String COL_DRUG_MATERIAL_ID = "DRUG_MATERIAL_ID"; - /** - * 药品[物料]编码 - */ + /** + * 药品[物料]编码 + */ public static final String COL_DRUG_MATERIAL_CODE = "DRUG_MATERIAL_CODE"; - /** - * 药品物料名称 - */ + /** + * 药品物料名称 + */ public static final String COL_DRUG_MATERIAL_NAME = "DRUG_MATERIAL_NAME"; - /** - * 药品名称 - */ + /** + * 药品名称 + */ public static final String COL_DRUG_NAME = "DRUG_NAME"; - /** - * 药品批次 - */ + /** + * 药品批次 + */ public static final String COL_DRUG_BAT_CODE = "DRUG_BAT_CODE"; - /** - * 添加点 - */ + /** + * 添加点 + */ public static final String COL_FILLING_LOCATION = "FILLING_LOCATION"; - /** - * 目标值 - */ + /** + * 目标值 + */ public static final String COL_TARGET_VALUE = "TARGET_VALUE"; - /** - * 目标上限 - */ + /** + * 目标上限 + */ public static final String COL_TARGET_VALUE_MAX = "TARGET_VALUE_MAX"; - /** - * 目标下限 - */ + /** + * 目标下限 + */ public static final String COL_TARGET_VALUE_MIN = "TARGET_VALUE_MIN"; - /** - * 规范上限 - */ + /** + * 规范上限 + */ public static final String COL_NORM_VALUE_MAX = "NORM_VALUE_MAX"; - /** - * 规范下限 - */ + /** + * 规范下限 + */ public static final String COL_NORM_VALUE_MIN = "NORM_VALUE_MIN"; - /** - * 体积 - */ + /** + * 体积 + */ public static final String COL_VOLUME = "VOLUME"; - /** - * 分析周期 - */ + /** + * 分析周期 + */ public static final String COL_ANALYSIS_CYCLE = "ANALYSIS_CYCLE"; - /** - * 工艺含量 - */ + /** + * 工艺含量 + */ public static final String COL_PROCESS_CONTENT = "PROCESS_CONTENT"; - /** - * 待测成分/分析项目 - */ + /** + * 待测成分/分析项目 + */ public static final String COL_TEST_ELEMENT = "TEST_ELEMENT"; - /** - * 是否合格-[1]:合格;[2]:不合格; - */ + /** + * 是否合格-[1]:合格;[2]:不合格; + */ public static final String COL_QUALIFIED = "QUALIFIED"; - /** - * 实测温度 - */ + /** + * 实测温度 + */ public static final String COL_TEMPERATURE_ACTUAL = "TEMPERATURE_ACTUAL"; - /** - * 实测PH值 - */ + /** + * 实测PH值 + */ public static final String COL_PH_ACTUAL = "PH_ACTUAL"; - /** - * 复测电导率测量值 - */ + /** + * 复测电导率测量值 + */ public static final String COL_CONDUCTIVITY_REPEAT_TEST_VALUE = "CONDUCTIVITY_REPEAT_TEST_VALUE"; - /** - * 首次电导率测量值 - */ + /** + * 首次电导率测量值 + */ public static final String COL_CONDUCTIVITY_FIRST_TEST_VALUE = "CONDUCTIVITY_FIRST_TEST_VALUE"; - /** - * 首次测量值 - */ + /** + * 首次测量值 + */ public static final String COL_FIRST_TEST_VALUE = "FIRST_TEST_VALUE"; - /** - * 复检测量值 - */ + /** + * 复检测量值 + */ public static final String COL_REPEAT_TEST_VALUE = "REPEAT_TEST_VALUE"; - /** - * 首次化验时间 - */ + /** + * 首次化验时间 + */ public static final String COL_FIRST_TEST_DATE = "FIRST_TEST_DATE"; - /** - * 复检化验时间 - */ + /** + * 复检化验时间 + */ public static final String COL_REPEAT_TEST_DATE = "REPEAT_TEST_DATE"; - /** - * 审核时间 - */ + /** + * 审核时间 + */ public static final String COL_REVIEW_DATE = "REVIEW_DATE"; - /** - * 发药时间 - */ + /** + * 发药时间 + */ public static final String COL_SEND_DRUG_DATE = "SEND_DRUG_DATE"; - /** - * 领药时间 - */ + /** + * 领药时间 + */ public static final String COL_RECEIVE_DRUG_DATE = "RECEIVE_DRUG_DATE"; - /** - * 结束时间 - */ + /** + * 结束时间 + */ public static final String COL_FINISH_DATE = "FINISH_DATE"; - /** - * 需加药量 - */ + /** + * 需加药量 + */ public static final String COL_NEED_ADD_VALUE = "NEED_ADD_VALUE"; - /** - * 实际加药量 - */ + /** + * 实际加药量 + */ public static final String COL_ACTUAL_ADD_VALUE = "ACTUAL_ADD_VALUE"; - /** - * 加药后理论值 - */ + /** + * 加药后理论值 + */ public static final String COL_AFTER_ADD_THEORY_VALUE = "AFTER_ADD_THEORY_VALUE"; - /** - * 结束原因 - */ + /** + * 结束原因 + */ public static final String COL_FINISH_REASON = "FINISH_REASON"; - /** - * 审核意见 - */ + /** + * 审核意见 + */ public static final String COL_REVIEW_OPINION = "REVIEW_OPINION"; - /** - * 审核状态-[1]:通过;[2]:不通过; - */ + /** + * 审核状态-[1]:通过;[2]:不通过; + */ public static final String COL_REVIEW_PASS = "REVIEW_PASS"; - /** - * 备注 - */ + /** + * 备注 + */ public static final String COL_REMARK = "REMARK"; /** * 撤回原因 @@ -249,256 +249,256 @@ public class LiquidTankTaskCopy extends BaseEntity { */ public static final String COL_FLAG_OUT = "FLAG_OUT"; - /** - * [槽液检测任务]编码 - */ - @Schema(description = "[槽液检测任务]编码") - private String code; - /** - * 类型 - */ - @Schema(description = "类型") - private Long liquidTankTaskType; - /** - * [作业中心]id - */ - @Schema(description = "[作业中心]id") - private BigDecimal workCenterId; - /** - * [作业槽]id - */ - @Schema(description = "[作业槽]id") - private BigDecimal workTankId; - /** - * [槽液]id - */ - @Schema(description = "[槽液]id") - private BigDecimal liquidTankId; - /** - * [槽液]编号 - */ - @Schema(description = "[槽液]编号") - private String liquidTankCode; - /** - * 化验人[用户]id - */ - @Schema(description = "化验人[用户]id") - private BigDecimal testUserId; - /** - * 复检化验人[用户]id - */ - @Schema(description = "复检化验人[用户]id") - private BigDecimal repeatTestUserId; - /** - * 工艺主管[用户]id - */ - @Schema(description = "工艺主管[用户]id") - private BigDecimal processUserId; - /** - * 审核[用户]id - */ - @Schema(description = "审核[用户]id") - private BigDecimal reviewUserId; - /** - * 发药[用户]id - */ - @Schema(description = "发药[用户]id") - private BigDecimal sendDrugUserId; - /** - * 领药[用户]id - */ - @Schema(description = "领药[用户]id") - private BigDecimal receiveDrugUserId; - /** - * [班组]id - */ - @Schema(description = "[班组]id") - private BigDecimal teamId; - /** - * 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成; - */ - @Schema(description = "来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;") - private Long fromType; - /** - * 名称 - */ - @Schema(description = "名称") - private String name; - /** - * 药品[物料]id - */ - @Schema(description = "药品[物料]id") - private BigDecimal drugMaterialId; - /** - * 药品[物料]编码 - */ - @Schema(description = "药品[物料]编码") - private String drugMaterialCode; - /** - * 药品物料名称 - */ - @Schema(description = "药品物料名称") - private String drugMaterialName; - /** - * 药品名称 - */ - @Schema(description = "药品名称") - private String drugName; - /** - * 药品批次 - */ - @Schema(description = "药品批次") - private String drugBatCode; - /** - * 添加点 - */ - @Schema(description = "添加点") - private BigDecimal fillingLocation; - /** - * 目标值 - */ - @Schema(description = "目标值") - private BigDecimal targetValue; - /** - * 目标上限 - */ - @Schema(description = "目标上限") - private BigDecimal targetValueMax; - /** - * 目标下限 - */ - @Schema(description = "目标下限") - private BigDecimal targetValueMin; - /** - * 规范上限 - */ - @Schema(description = "规范上限") - private BigDecimal normValueMax; - /** - * 规范下限 - */ - @Schema(description = "规范下限") - private BigDecimal normValueMin; - /** - * 体积 - */ - @Schema(description = "体积") - private BigDecimal volume; - /** - * 分析周期 - */ - @Schema(description = "分析周期") - private Integer analysisCycle; - /** - * 工艺含量 - */ - @Schema(description = "工艺含量") - private BigDecimal processContent; - /** - * 待测成分/分析项目 - */ - @Schema(description = "待测成分/分析项目") - private String testElement; - /** - * 是否合格-[1]:合格;[2]:不合格; - */ - @Schema(description = "是否合格-[1]:合格;[2]:不合格;") - private Short qualified; - /** - * 实测温度 - */ - @Schema(description = "实测温度") - private BigDecimal temperatureActual; - /** - * 实测PH值 - */ - @Schema(description = "实测PH值") - private BigDecimal phActual; - /** - * 复测电导率测量值 - */ - @Schema(description = "复测电导率测量值") - private BigDecimal conductivityRepeatTestValue; - /** - * 首次电导率测量值 - */ - @Schema(description = "首次电导率测量值") - private BigDecimal conductivityFirstTestValue; - /** - * 首次测量值 - */ - @Schema(description = "首次测量值") - private BigDecimal firstTestValue; - /** - * 复检测量值 - */ - @Schema(description = "复检测量值") - private BigDecimal repeatTestValue; - /** - * 首次化验时间 - */ - @Schema(description = "首次化验时间") - private LocalDateTime firstTestDate; - /** - * 复检化验时间 - */ - @Schema(description = "复检化验时间") - private LocalDateTime repeatTestDate; - /** - * 审核时间 - */ - @Schema(description = "审核时间") - private LocalDateTime reviewDate; - /** - * 发药时间 - */ - @Schema(description = "发药时间") - private LocalDateTime sendDrugDate; - /** - * 领药时间 - */ - @Schema(description = "领药时间") - private LocalDateTime receiveDrugDate; - /** - * 结束时间 - */ - @Schema(description = "结束时间") - private LocalDateTime finishDate; - /** - * 需加药量 - */ - @Schema(description = "需加药量") - private BigDecimal needAddValue; - /** - * 实际加药量 - */ - @Schema(description = "实际加药量") - private BigDecimal actualAddValue; - /** - * 加药后理论值 - */ - @Schema(description = "加药后理论值") - private BigDecimal afterAddTheoryValue; - /** - * 结束原因 - */ - @Schema(description = "结束原因") - private String finishReason; - /** - * 审核意见 - */ - @Schema(description = "审核意见") - private String reviewOpinion; - /** - * 审核状态-[1]:通过;[2]:不通过; - */ - @Schema(description = "审核状态-[1]:通过;[2]:不通过;") - private Short reviewPass; - /** - * 备注 - */ - @Schema(description = "备注") - private String remark; + /** + * [槽液检测任务]编码 + */ + @Schema(description = "[槽液检测任务]编码") + private String code; + /** + * 类型 + */ + @Schema(description = "类型") + private Long liquidTankTaskType; + /** + * [作业中心]id + */ + @Schema(description = "[作业中心]id") + private Long workCenterId; + /** + * [作业槽]id + */ + @Schema(description = "[作业槽]id") + private Long workTankId; + /** + * [槽液]id + */ + @Schema(description = "[槽液]id") + private Long liquidTankId; + /** + * [槽液]编号 + */ + @Schema(description = "[槽液]编号") + private String liquidTankCode; + /** + * 化验人[用户]id + */ + @Schema(description = "化验人[用户]id") + private Long testUserId; + /** + * 复检化验人[用户]id + */ + @Schema(description = "复检化验人[用户]id") + private Long repeatTestUserId; + /** + * 工艺主管[用户]id + */ + @Schema(description = "工艺主管[用户]id") + private Long processUserId; + /** + * 审核[用户]id + */ + @Schema(description = "审核[用户]id") + private Long reviewUserId; + /** + * 发药[用户]id + */ + @Schema(description = "发药[用户]id") + private Long sendDrugUserId; + /** + * 领药[用户]id + */ + @Schema(description = "领药[用户]id") + private Long receiveDrugUserId; + /** + * [班组]id + */ + @Schema(description = "[班组]id") + private Long teamId; + /** + * 来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成; + */ + @Schema(description = "来源类型-[1]:手动;[2]:周期自动生成;[3]:计算自动生成;") + private Integer fromType; + /** + * 名称 + */ + @Schema(description = "名称") + private String name; + /** + * 药品[物料]id + */ + @Schema(description = "药品[物料]id") + private Long drugMaterialId; + /** + * 药品[物料]编码 + */ + @Schema(description = "药品[物料]编码") + private String drugMaterialCode; + /** + * 药品物料名称 + */ + @Schema(description = "药品物料名称") + private String drugMaterialName; + /** + * 药品名称 + */ + @Schema(description = "药品名称") + private String drugName; + /** + * 药品批次 + */ + @Schema(description = "药品批次") + private String drugBatCode; + /** + * 添加点 + */ + @Schema(description = "添加点") + private Double fillingLocation; + /** + * 目标值 + */ + @Schema(description = "目标值") + private Double targetValue; + /** + * 目标上限 + */ + @Schema(description = "目标上限") + private Double targetValueMax; + /** + * 目标下限 + */ + @Schema(description = "目标下限") + private Double targetValueMin; + /** + * 规范上限 + */ + @Schema(description = "规范上限") + private Double normValueMax; + /** + * 规范下限 + */ + @Schema(description = "规范下限") + private Double normValueMin; + /** + * 体积 + */ + @Schema(description = "体积") + private Double volume; + /** + * 分析周期 + */ + @Schema(description = "分析周期") + private Integer analysisCycle; + /** + * 工艺含量 + */ + @Schema(description = "工艺含量") + private Double processContent; + /** + * 待测成分/分析项目 + */ + @Schema(description = "待测成分/分析项目") + private String testElement; + /** + * 是否合格-[1]:合格;[2]:不合格; + */ + @Schema(description = "是否合格-[1]:合格;[2]:不合格;") + private Short qualified; + /** + * 实测温度 + */ + @Schema(description = "实测温度") + private Double temperatureActual; + /** + * 实测PH值 + */ + @Schema(description = "实测PH值") + private Double phActual; + /** + * 复测电导率测量值 + */ + @Schema(description = "复测电导率测量值") + private Double conductivityRepeatTestValue; + /** + * 首次电导率测量值 + */ + @Schema(description = "首次电导率测量值") + private Double conductivityFirstTestValue; + /** + * 首次测量值 + */ + @Schema(description = "首次测量值") + private Double firstTestValue; + /** + * 复检测量值 + */ + @Schema(description = "复检测量值") + private Double repeatTestValue; + /** + * 首次化验时间 + */ + @Schema(description = "首次化验时间") + private LocalDateTime firstTestDate; + /** + * 复检化验时间 + */ + @Schema(description = "复检化验时间") + private LocalDateTime repeatTestDate; + /** + * 审核时间 + */ + @Schema(description = "审核时间") + private LocalDateTime reviewDate; + /** + * 发药时间 + */ + @Schema(description = "发药时间") + private LocalDateTime sendDrugDate; + /** + * 领药时间 + */ + @Schema(description = "领药时间") + private LocalDateTime receiveDrugDate; + /** + * 结束时间 + */ + @Schema(description = "结束时间") + private LocalDateTime finishDate; + /** + * 需加药量 + */ + @Schema(description = "需加药量") + private Double needAddValue; + /** + * 实际加药量 + */ + @Schema(description = "实际加药量") + private Double actualAddValue; + /** + * 加药后理论值 + */ + @Schema(description = "加药后理论值") + private Double afterAddTheoryValue; + /** + * 结束原因 + */ + @Schema(description = "结束原因") + private String finishReason; + /** + * 审核意见 + */ + @Schema(description = "审核意见") + private String reviewOpinion; + /** + * 审核状态-[1]:通过;[2]:不通过; + */ + @Schema(description = "审核状态-[1]:通过;[2]:不通过;") + private Integer reviewPass; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; /** * 撤回原因 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawItemVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java similarity index 69% rename from blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawItemVO.java rename to blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java index fdbf907b..de04067b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawItemVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawSingleVO.java @@ -13,37 +13,37 @@ import java.util.ArrayList; import java.util.List; /** - * [槽液曲线] 视图实体类 + * [槽液曲线] 视图实体类 单个作业槽图表VO * * @author Tom Shuo * @since 2025-12-18 */ @Data -public class LiquidTankWaveDrawItemVO implements Serializable { +public class LiquidTankWaveDrawSingleVO implements Serializable { @Serial private static final long serialVersionUID = 1L; @Schema(description = "[作业中心]id") - private Long wcId = 1000L; + private Long wcId; @Schema(description = "[作业中心]名称") - private String wcName = "作业中心A"; + private String wcName; @Schema(description = "[作业槽]id") - private Long workTankId = 1000L; + private Long workTankId; @Schema(description = "[作业槽]名称") - private String workTankName = "DDDD槽"; + private String workTankName; @Schema(description = "[槽液]id") - private Long liquidTankId = 1000L; + private Long liquidTankId; @Schema(description = "分析项目") - private String testElement = "氰化钾"; + private String testElement; @Schema(description = "日期数组") private List testDateList = new ArrayList<>(); - @Schema(description = "上限") + @Schema(description = "目标上限") private List maxList = new ArrayList<>(); - @Schema(description = "下限") + @Schema(description = "目标下限") private List minList = new ArrayList<>(); @Schema(description = "目标值") private List targetList = new ArrayList<>(); - @Schema(description = "测量值") + @Schema(description = "复测测量值") private List testList = new ArrayList<>(); } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawVO.java index c4c5fdcc..0a9d9267 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankWaveDrawVO.java @@ -5,8 +5,14 @@ import lombok.Data; import java.util.ArrayList; import java.util.List; +/** + * [槽液曲线] 视图实体类 整体作业槽图表VO + * + * @author Tom Shuo + * @since 2025-12-18 + */ @Data public class LiquidTankWaveDrawVO { - private List waveData = new ArrayList<>(); + private List waveData = new ArrayList<>(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java index 8a4daf10..77017380 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankTaskCopyController.java @@ -33,7 +33,7 @@ import org.springblade.desk.quality.excel.LiquidTankTaskCopyExcel; import org.springblade.desk.quality.pojo.entity.LiquidTankTaskCopy; import org.springblade.desk.quality.pojo.vo.LiquidTankTaskCopyVO; import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawVO; -import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawItemVO; +import org.springblade.desk.quality.pojo.vo.LiquidTankWaveDrawSingleVO; import org.springblade.desk.quality.service.ILiquidTankTaskCopyService; import org.springblade.desk.quality.wrapper.LiquidTankTaskCopyWrapper; import org.springframework.http.ResponseEntity; @@ -78,7 +78,7 @@ public class LiquidTankTaskCopyController extends BladeController { /** * [槽液报告] 查询Copy任务 list分页 */ - @GetMapping("/list") + @GetMapping("/listReport") @ApiOperationSupport(order = 20) @Operation(summary = "[槽液报告] 查询任务 list分页", description = "传入LiquidTankTaskCopy Obj") public R> list(@Parameter(hidden = true) @RequestParam Map map, @@ -90,8 +90,11 @@ public class LiquidTankTaskCopyController extends BladeController { QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); // 正常结束的,异常结束的 qw.in(BaseCol.STATUS, Arrays.asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); + // [作业中心]id qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId"))); + // [作业槽]id qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_TANK_ID), LiquidTankTaskCopy.COL_WORK_TANK_ID, Func.toLong(map.get("workTankId"))); + // 待测成分/分析项目 qw.like(map.containsKey(LiquidTankTaskCopy.COL_TEST_ELEMENT), LiquidTankTaskCopy.COL_TEST_ELEMENT, Func.toStr(map.get("testElement"))); // 范围日期 if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) { @@ -99,8 +102,9 @@ public class LiquidTankTaskCopyController extends BladeController { Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); qw.between(BaseCol.CREATE_TIME, crStart, crEnd); } - // ID 倒序 - qw.orderByDesc(BaseCol.ID); + // ID 升序 + qw.orderByAsc(BaseCol.ID); + // IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LiquidTankTaskCopyWrapper.build().pageVO(pages); pagesVO.getRecords() @@ -122,20 +126,21 @@ public class LiquidTankTaskCopyController extends BladeController { log.warn("key = {}, value = {}, type = {}", key, value, value.getClass()); } ); - // 范围日期 - Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START); - Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); QueryWrapper qw = Condition.getQueryWrapper(map, LiquidTankTaskCopy.class); - // 完成的 + // 正常结束的,异常结束的 qw.in(BaseCol.STATUS, Arrays.asList(LiquidTankTaskConst.S_FINISH_FAILED, LiquidTankTaskConst.S_FINISH_OK)); - // 日期区间 - if (crStart != null && crEnd != null) { + // [作业中心]id + qw.eq(map.containsKey(LiquidTankTaskCopy.COL_WORK_CENTER_ID), LiquidTankTaskCopy.COL_WORK_CENTER_ID, Func.toLong(map.get("workCenterId"))); + // 范围日期 + if (map.containsKey(BaseRequest.CREATE_TIME_START) && map.containsKey(BaseRequest.CREATE_TIME_END)) { + Date crStart = RequestUtil.buildDateBeginOfDay(map, BaseRequest.CREATE_TIME_START); + Date crEnd = RequestUtil.buildDateEndOfDay(map, BaseRequest.CREATE_TIME_END); qw.between(BaseCol.CREATE_TIME, crStart, crEnd); } // 排序 槽液id升序 复测化验时间升序 qw.orderByAsc( List.of( - LiquidTankTaskCopy.COL_LIQUID_TANK_ID, + BaseCol.ID, LiquidTankTaskCopy.COL_REPEAT_TEST_DATE )); IPage pages = service.page(Condition.getPage(query), qw); @@ -145,28 +150,43 @@ public class LiquidTankTaskCopyController extends BladeController { .peek(service::setVOValue) .collect(Collectors.toList()); // key 自带排序 - Map> drawMap = new TreeMap<>(); - // todo: -// drawMap.put() - - LiquidTankWaveDrawVO draw = new LiquidTankWaveDrawVO(); - { - List waveData = draw.getWaveData(); - for (int i = 0; i < 5; i++) { - LiquidTankWaveDrawItemVO item = new LiquidTankWaveDrawItemVO(); - draw.getWaveData().add(item); - for (int j = 0; j < 10; j++) { - LocalDate now = LocalDate.now(); - item.getTestDateList().add(now.plusDays(j)); - item.getMaxList().add(60.0); - item.getMinList().add(40.0); - item.getTargetList().add(50.0); - item.getTestList().add(51.1155); - } + // key: [作业槽]id + // value: 任务数据列表 + Map> treeMap = new TreeMap<>(); + // 遍历赋值到treeMap中 + pagesVO.getRecords().forEach(vo -> { + final Long wtId = vo.getWorkTankId(); + // 不包含,新建 + if (!treeMap.containsKey(wtId)) { + List list = new ArrayList<>(); + treeMap.put(wtId, list); + } + treeMap.get(wtId).add(vo); + }); + // 前端要求匹配对象 + LiquidTankWaveDrawVO allVO = new LiquidTankWaveDrawVO(); + List allChart = allVO.getWaveData(); + // 每个entry一个图表 + for (Map.Entry> entry : treeMap.entrySet()) { + Long wtId = entry.getKey(); + // 数据列表 + List list = entry.getValue(); + LiquidTankWaveDrawSingleVO singleChart = new LiquidTankWaveDrawSingleVO(); + for (LiquidTankTaskCopyVO one : list) { + singleChart.setWcId(one.getWorkCenterId()); + singleChart.setWcName(one.getWcName()); + singleChart.setWorkTankId(one.getWorkTankId()); + singleChart.setWorkTankName(one.getWorkTankName()); + singleChart.setLiquidTankId(one.getLiquidTankId()); + singleChart.setTestElement(one.getTestElement()); + singleChart.getMaxList().add(one.getTargetValueMax()); + singleChart.getMinList().add(one.getTargetValueMin()); + singleChart.getTargetList().add(one.getTargetValue()); + singleChart.getTestList().add(one.getRepeatTestValue()); } - draw.setWaveData(waveData); + allChart.add(singleChart); } - return R.data(draw); + return R.data(allVO); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java index 570002ac..11880fdf 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java @@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.Parameter; import jakarta.annotation.Resource; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; @@ -191,13 +192,18 @@ public class CycleTestService2 { ); // 多个 镀种名称 { - StringBuilder names = new StringBuilder(); - List idList = Func.toLongList(vo.getPlateIds()); + StringBuilder names = new StringBuilder(); + List idList = Func.toLongList(vo.getPlateIds()); idList.forEach(id -> { names.append(platingService.getById(id).getPlating()); names.append(","); }); - vo.setPlateNames(names.toString()); + String namesF = names.toString(); + if (StringUtils.isNotBlank(namesF) && StringUtils.endsWith(namesF, ",")) { + // 去掉结尾, + StringUtils.removeEnd(namesF, ","); + } + vo.setPlateNames(namesF); } } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java index 2b61ff5a..c5962bf7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/LiquidTankTaskSetVoService.java @@ -130,7 +130,7 @@ public class LiquidTankTaskSetVoService { // 有效期 Date validDateT = DateUtil.offsetDay(vo.getCreateTime(), vo.getAnalysisCycle()); vo.setValidDate(LocalDateTimeUtil.of(validDateT).toLocalDate()); - // 超出规范极限调整后的结果 todo: + // 超出规范极限调整后的结果 打印用 todo: vo.setOutRangeResult(""); // 槽液清理记录 todo: vo.setClearRecord(""); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java index 9f138d69..f5c313ec 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/LiquidTankTaskServiceImpl.java @@ -114,7 +114,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list) { for (LiquidTankTask task : list) { - basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW); + task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW); // todo:计算加药量,通过公式 公式尚未实现 公式计算的 需加药量。 // task.setAddUnit(1000); task.setNeedAddValue(1000.0); @@ -149,7 +149,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list) { for (LiquidTankTask task : list) { - basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW); + task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_REVIEW); basicUpdateById(task); } return R.success(); @@ -163,13 +163,13 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list) { for (LiquidTankTask task : list) { - basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_RECEIVE_DRUG); + task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_RECEIVE_DRUG); // 发药用户 task.setSendDrugUserId(AuthUtil.getUserId()); // 发药时间 @@ -215,7 +215,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list) { // todo:用户权限过滤 for (LiquidTankTask task : list) { - basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND); + task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_FILL_DATA_SECOND); // 领药人 为指定班组 班组长 // task.setReceiveDrugUserId(AuthUtil.getUserId()); Long teamId = task.getTeamId(); @@ -231,7 +231,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list) { for (LiquidTankTask task : list) { - basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK); + task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_FINISH_OK); // 复检化验时间 用户填写 // 复检填报时间 task.setRepeatFillDate(LocalDateTime.now()); @@ -256,7 +256,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl= LiquidTankTaskConst.S_PENDING_TEST) { return R.fail("已经接收,无法转派。"); } - basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_ACCEPT); + task = basicChangeStatus(task.getId(), LiquidTankTaskConst.S_PENDING_ACCEPT); task.setTestUserId(testUserId); basicUpdateById(task); return R.success("转派成功"); @@ -266,7 +266,7 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl