diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/CycleTestTaskGenOneTimeProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/CycleTestTaskGenOneTimeProcessor.java deleted file mode 100644 index c243dd3c..00000000 --- a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/CycleTestTaskGenOneTimeProcessor.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.springblade.job.processor.quality; - -import jakarta.annotation.Resource; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import org.springblade.desk.quality.feign.ICycleTestTaskClient; -import org.springframework.stereotype.Component; -import tech.powerjob.worker.core.processor.ProcessResult; -import tech.powerjob.worker.core.processor.TaskContext; -import tech.powerjob.worker.core.processor.sdk.BasicProcessor; - -@Component -@Data -@Slf4j -public class CycleTestTaskGenOneTimeProcessor implements BasicProcessor { - - @Resource - private ICycleTestTaskClient client; - - @Override - public ProcessResult process(TaskContext context) throws Exception { - client.generateOneTime(); - return new ProcessResult(true); - } -} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaAviatorConst.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaAviatorConst.java new file mode 100644 index 00000000..9314357a --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaAviatorConst.java @@ -0,0 +1,17 @@ +package org.springblade.desk.basic.constant; + +public interface FormulaAviatorConst { + + /** + * 添加点 + */ + String ADD = "add"; + /** + * 测量值 + */ + String TEST = "test"; + /** + * 体积 + */ + String VOL = "vol"; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaConst.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaConst.java index 47905fa5..54be7051 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaConst.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/FormulaConst.java @@ -5,9 +5,9 @@ public interface FormulaConst { /** * */ - final Integer TYPE_1 = 1; + Integer TYPE_1 = 1; /** * */ - final Integer TYPE_2 = 2; + Integer TYPE_2 = 2; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/PlatingVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/PlatingVO.java index e7cb10ea..ab4cfbd6 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/PlatingVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/PlatingVO.java @@ -3,6 +3,7 @@ */ package org.springblade.desk.basic.pojo.vo; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.basic.pojo.entity.Plating; @@ -21,4 +22,14 @@ public class PlatingVO extends Plating { @Serial private static final long serialVersionUID = 1L; + /** + * [镀种分类]Name + */ + @Schema(description = "[镀种分类]Name") + private Long bcName; + /** + * [镀种小类]Name + */ + @Schema(description = "[镀种小类]Name") + private Long subClassName; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/InspectionTaskConst.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/InspectionTaskConst.java index b26d920f..d1d76b9b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/InspectionTaskConst.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/InspectionTaskConst.java @@ -6,7 +6,6 @@ public interface InspectionTaskConst { * 热表 */ Integer FROM_TYPE_RB = 1; - /** * 烧结 */ @@ -28,4 +27,9 @@ public interface InspectionTaskConst { * NA */ Integer CHECK_RESULT_NA = 3; + + /** + * 烧结包装防护 + */ + String PROCESS_NAME_SJBZFH = "烧结包装防护"; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ICycleTestTaskClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ICycleTestTaskClient.java index b5bd2480..9e76d31b 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ICycleTestTaskClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ICycleTestTaskClient.java @@ -13,8 +13,6 @@ public interface ICycleTestTaskClient { String GENERATE_AUTO = API_PREFIX + "/generate-auto"; - String GENERATE_ONE_TIME = API_PREFIX + "/generate-one-time"; - String CHECK_REMIND = API_PREFIX + "/check-redmind"; String CHECK_OUT = API_PREFIX + "/check-out"; @@ -22,9 +20,6 @@ public interface ICycleTestTaskClient { @GetMapping(GENERATE_AUTO) void generateAuto(); - @GetMapping(GENERATE_ONE_TIME) - void generateOneTime(); - @GetMapping(CHECK_REMIND) void checkRemind(); diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ILquidTankTaskClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ILquidTankTaskClient.java index a27fb4a3..6528587e 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ILquidTankTaskClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/feign/ILquidTankTaskClient.java @@ -13,13 +13,18 @@ public interface ILquidTankTaskClient { String API_PREFIX = "/feign/client/qa/lquid-tank-task"; - String GENERATE = API_PREFIX + "/generate"; + String GENERATE_AUTO = API_PREFIX + "/generate-auto"; - String TIMEOUT = API_PREFIX + "/timeout"; + String CHECK_REMIND = API_PREFIX + "/check-redmind"; - @GetMapping(GENERATE) - public List generate(); + String CHECK_OUT = API_PREFIX + "/check-out"; - @GetMapping(TIMEOUT) - public List timeout(); + @GetMapping(GENERATE_AUTO) + void generateAuto(); + + @GetMapping(CHECK_REMIND) + void checkRemind(); + + @GetMapping(CHECK_OUT) + void checkOut(); } 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 3fa01448..e0d08c2b 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 @@ -309,4 +309,14 @@ public class CycleTestTask extends BaseEntity { */ @Schema(description = "超期原因") private String reasonForOut; + /** + * 临期天数 + */ + @Schema(description = "临期天数") + private Integer dayToPlanedFinish; + /** + * 超期天数 + */ + @Schema(description = "超期天数") + private Integer dayToOut; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java index 3d41a690..9505fba6 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java @@ -167,6 +167,10 @@ public class InspectionTask extends BaseEntity { * 接收日期 */ public static final String COL_RECEIVE_DATE = "RECEIVE_DATE"; + /** + * [工序]名称 + */ + public static final String COL_PROCESS_NAME = "PROCESS_NAME"; /** * [检验任务]编码 @@ -343,4 +347,9 @@ public class InspectionTask extends BaseEntity { */ @Schema(description = "接收日期") private LocalDateTime receiveDate; + /** + * 工序名称 + */ + @Schema(description = "工序名称") + private String processName; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestSearch.java new file mode 100644 index 00000000..150c0a08 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/CycleTestSearch.java @@ -0,0 +1,14 @@ +package org.springblade.desk.quality.pojo.request; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springblade.desk.quality.pojo.entity.CycleTest; +import org.springblade.desk.quality.pojo.vo.CycleTestVO; + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CycleTestSearch extends CycleTestVO { + +} 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 index 697fe912..3cd52023 100644 --- 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 @@ -30,7 +30,6 @@ public class CycleTestTaskSearch extends CycleTestTask { private Date createTimeEnd; @Schema(description = "状态数组") private List statusList; - /** * [周期试验项目]名称 */ @@ -63,6 +62,18 @@ public class CycleTestTaskSearch extends CycleTestTask { @JsonDeserialize(using = LocalDateTimeEndOfDayDeserializer.class) @Schema(description = "一次性任务生成日期-结束") private LocalDateTime oneTimeGenDateEnd; + /** + * 一次性任务生成日期-开始 + */ + @JsonDeserialize(using = DateBeginOfDayDeserializer.class) + @Schema(description = "生成日期-开始") + private Date genDatetimeStart; + /** + * 一次性任务生成日期-结束 + */ + @JsonDeserialize(using = DateEndOfDayDeserializer.class) + @Schema(description = "生成日期-结束") + private Date genDatetimeEnd; /** * 下发时间-开始 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/JobExt.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/JobExt.java index 1c9e3110..198fba6a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/JobExt.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/JobExt.java @@ -2,17 +2,28 @@ package org.springblade.desk.quality.pojo.request; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.ToString; @Data @EqualsAndHashCode +@ToString public class JobExt { + /** + * 周 + */ public static final Integer WEEK = 1; - + /** + * 月 + */ public static final Integer MONTH = 2; - + /** + * 年 + */ public static final Integer YEAR = 3; - + /** + * 自定义CRON + */ public static final Integer CUSTOM = 4; /** diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestTaskVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestTaskVO.java index 1eb91fe6..013bd255 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestTaskVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestTaskVO.java @@ -3,10 +3,12 @@ */ package org.springblade.desk.quality.pojo.vo; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.CycleTestTask; +import org.springblade.desk.util.json.serializer.IntegerAllToStringSerializer; import java.io.Serial; import java.time.LocalDateTime; @@ -61,8 +63,9 @@ public class CycleTestTaskVO extends CycleTestTask { /** * 临期天数 */ + @JsonSerialize(using = IntegerAllToStringSerializer.class) @Schema(description = "临期天数") - private String countDayToPlanedFinish; + private Integer countDayToPlanedFinish; /** * 填报[附件]附件地址 */ 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 08829e4e..1bd0587e 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 @@ -6,6 +6,7 @@ package org.springblade.desk.quality.pojo.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springblade.desk.quality.pojo.entity.CycleTest; import java.io.Serial; @@ -18,61 +19,34 @@ import java.io.Serial; */ @Data @EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) public class CycleTestVO extends CycleTest { @Serial private static final long serialVersionUID = 1L; - /** - * [周期试验项目]名称 - */ @Schema(description = "[周期试验项目]名称") private String cycleTestItemName; - /** - * [周期试验项目]试验条件 - */ @Schema(description = "[周期试验项目]试验条件") private String cycleTestItemCondition; - /** - * [周期试验标准]id - */ @Schema(description = "[周期试验标准]id") private Long cycleTestStandardId; - /** - * [周期试验标准]名称 - */ @Schema(description = "[周期试验标准]名称") private String cycleTestStandardName; - /** - * [周期试验标准][附件]id - */ @Schema(description = "[周期试验标准][附件]id") private Long cycleTestStandardAttachId; - /** - * 工艺员[用户]姓名 - */ @Schema(description = "工艺员[用户]姓名") private String processUserName; - /** - * 试验技术员[用户]姓名 - */ @Schema(description = "试验技术员[用户]姓名") private String testUserName; - /** - * 更新[用户]姓名 - */ @Schema(description = "更新[用户]姓名") private String updateUserName; - /** - * 试验件类型 名称 - */ @Schema(description = "试验件类型 名称") private String testTypeName; - /** - * [周期试验标准] - */ - @Schema(description = "standard") + @Schema(description = "[周期试验标准]") private CycleTestStandardVO standard; @Schema(description = "[镀种]多个名称") private String plateNames; + @Schema(description = "试验周期") + private String jobExtShowText; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java index ac62b12b..1c281589 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java @@ -28,12 +28,6 @@ public class InspectionTaskDetailVO extends InspectionTask { @Serial private static final long serialVersionUID = 1L; - /** - * todo: - */ - @Schema(description = "工序名称") - private String processName = "工序名称A"; - private InspectionTaskListVO orderInfo; private List remindMsgList; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportDetailVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportDetailVO.java new file mode 100644 index 00000000..e92c6602 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportDetailVO.java @@ -0,0 +1,31 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.quality.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.quality.pojo.entity.LiquidTankReport; +import org.springblade.desk.quality.pojo.entity.LiquidTankTaskCopy; + +import java.io.Serial; +import java.util.List; + +/** + * [槽液报告] 视图实体类 + * + * @author Tom Shuo + * @since 2025-12-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class LiquidTankReportDetailVO extends LiquidTankReport { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "维护人") + private String updateUserRealName; + @Schema(description = "复制槽液任务列表") + private List copyList; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportVO.java index 997e435e..8dc4b533 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankReportVO.java @@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; import org.springblade.desk.quality.pojo.entity.LiquidTankReport; import java.io.Serial; +import java.util.List; /** * [槽液报告] 视图实体类 @@ -19,9 +20,9 @@ import java.io.Serial; @Data @EqualsAndHashCode(callSuper = true) public class LiquidTankReportVO extends LiquidTankReport { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - @Schema(description = "维护人") - private String updateUserRealName; + @Schema(description = "维护人") + private String updateUserRealName; } diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index 1c8f7f5d..1c079e18 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -110,6 +110,14 @@ org.springblade blade-scheduling-api + + + + + com.googlecode.aviator + aviator + 5.4.3 + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/config/AviatorConfig.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/config/AviatorConfig.java new file mode 100644 index 00000000..4f1ac762 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/config/AviatorConfig.java @@ -0,0 +1,29 @@ +package org.springblade.desk.basic.aviator.config; + +import com.googlecode.aviator.AviatorEvaluator; +import com.googlecode.aviator.AviatorEvaluatorInstance; +import com.googlecode.aviator.Options; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class AviatorConfig { + + @Bean + public AviatorEvaluatorInstance aviatorEvaluatorInstance() { + AviatorEvaluatorInstance instance = AviatorEvaluator.newInstance(); + // 核心配置项 + instance.setOption(Options.USE_USER_ENV_AS_TOP_ENV_DIRECTLY, true); // 环境变量透传 + // instance.setOption(Options.MAX_CACHE_SIZE, 2000); // 表达式缓存大小 + instance.setOption(Options.TRACE_EVAL, false); // 生产环境关闭追踪 + + // JDK17+ 优化配置 + instance.setOption(Options.OPTIMIZE_LEVEL, AviatorEvaluator.EVAL); // 优化级别 + // 开启表达式缓存,提升性能 + instance.setCachedExpressionByDefault(true); + // 注册自定义函数(如有) + // instance.addFunction(new YourCustomFunction()); + return instance; + } +} + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/func/CustomFunctionRegistry.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/func/CustomFunctionRegistry.java new file mode 100644 index 00000000..a7f323ee --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/func/CustomFunctionRegistry.java @@ -0,0 +1,46 @@ +package org.springblade.desk.basic.aviator.func; + +import com.googlecode.aviator.AviatorEvaluatorInstance; +import com.googlecode.aviator.runtime.function.AbstractFunction; +import com.googlecode.aviator.runtime.type.AviatorObject; +import com.googlecode.aviator.runtime.type.AviatorString; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +@Data +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = false) +@Slf4j +public class CustomFunctionRegistry implements InitializingBean { + + @Resource + private AviatorEvaluatorInstance aviatorEvaluator; + + @Override + public void afterPropertiesSet() throws Exception { + // 注册自定义函数 + // 此时 aviatorEvaluator 已被注入 + aviatorEvaluator.addFunction(new AbstractFunction() { + @Override + public String getName() { + return "myCustomFunc"; + } + + @Override + public AviatorObject call(Map env, AviatorObject arg1) { + String value = (String) arg1.getValue(env); + return new AviatorString("自定义结果: " + value); + } + }); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/service/AviatorService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/service/AviatorService.java new file mode 100644 index 00000000..38a5aef2 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/aviator/service/AviatorService.java @@ -0,0 +1,32 @@ +package org.springblade.desk.basic.aviator.service; + +import com.googlecode.aviator.AviatorEvaluatorInstance; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service +@Data +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@ToString(callSuper = false) +@Slf4j +public class AviatorService { + + @Resource + private AviatorEvaluatorInstance aviatorEvaluator; + + public Object evaluateExpression(String expression, Map variables) { + try { + return aviatorEvaluator.execute(expression, variables); + } catch (Exception e) { + throw new RuntimeException("表达式执行失败: " + e.getMessage(), e); + } + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/AviatorController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/AviatorController.java new file mode 100644 index 00000000..4e2e8023 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/AviatorController.java @@ -0,0 +1,60 @@ +package org.springblade.desk.basic.controller; + +import com.googlecode.aviator.AviatorEvaluatorInstance; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.basic.aviator.service.AviatorService; +import org.springblade.desk.basic.constant.BAModuleConst; +import org.springframework.web.bind.annotation.*; + +import java.util.Collections; +import java.util.Map; + +@RestController +@RequestMapping(BAModuleConst.CONTROLLER_PREFIX + "/Aviator") +@Data +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@Slf4j +@Tag(name = "Aviator", description = "Aviator接口") +public class AviatorController { + + @Resource + private AviatorService aviatorService; + @Resource + private AviatorEvaluatorInstance aviatorEvaluator; + + /** + * { + * "expression": "a + b * (c - d)", + * "variables": { + * "a": 5, + * "b": 2, + * "c": 10, + * "d": 3 + * } + * } + * + * @param request + * @return + */ + @PostMapping("/evaluate") + public Object evaluate(@RequestBody Map request) { + String expression = (String) request.get("expression"); + Map variables = (Map) request.get("variables"); + return aviatorService.evaluateExpression(expression, variables); + } + + @GetMapping("/customFunc") + public Object customFunc() { + // 直接使用注册的自定义函数 + return aviatorEvaluator.execute( + "myCustomFunc('Hello')", + Collections.emptyMap() + ); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java index d13d0e08..4cbfed1f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java @@ -18,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; @@ -116,6 +117,7 @@ public class BasicClazzController extends BladeController { public R> listForSelectPlatingAssort() { LambdaQueryWrapper qw = Wrappers.lambdaQuery(); qw.eq(BasicClazz::getBizType, BasicClazzConst.TYPE_PLATING_ASSORT); + qw.eq(BasicClazz::getIsDeleted, CommonConstant.DELETE_FALSE); List list = service.list(qw); List listVO = BasicClazzWrapper.build().listVO(list); return R.data(listVO); 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 a2a39609..690d7e2c 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 @@ -35,7 +35,6 @@ 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; @@ -46,7 +45,7 @@ import java.util.stream.Collectors; /** * [镀种] 控制器 - * + * mes v1: bs_plating * @author Tom Shuo * @since 2026-01-05 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/ProdMarkController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/ProdMarkController.java index 8b5289ab..e2af9250 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/ProdMarkController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/ProdMarkController.java @@ -41,6 +41,7 @@ import java.util.stream.Collectors; /** * [生产标识] 控制器 + * mes v1: * * @author Tom Shuo * @since 2025-12-22 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/RelTeamSetUserController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/RelTeamSetUserController.java index 1fdbf61a..e89a38ca 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/RelTeamSetUserController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/RelTeamSetUserController.java @@ -41,6 +41,7 @@ import java.util.stream.Collectors; /** * [班组用户关联] 控制器 + * mes v1: 二期新加 * * @author Tom Shuo * @since 2026-01-13 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java index ecf254cb..9a3c8cd0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java @@ -40,6 +40,7 @@ import java.util.Map; /** * [班组] 控制器 * mes v1: bs_team_set + * * @author Tom Shuo * @since 2025-12-16 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java index c8a1030a..353a8187 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java @@ -40,6 +40,7 @@ import java.util.Map; /** * [作业中心] 控制器 * mes v1: bs_work_center + * * @author Tom Shuo * @since 2025-12-16 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java index c8a0ccd5..e093a085 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java @@ -40,6 +40,7 @@ import java.util.Map; /** * [作业槽] 控制器 * mes v1: + * * @author Tom Shuo * @since 2025-12-16 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java index 16e84470..0ca67d39 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java @@ -84,7 +84,6 @@ public class AuditFileController extends BladeController { Query query) { // QueryWrapper qw = Condition.getQueryWrapper(map, AuditFile.class); AuditFileSearch search = BeanUtil.toBeanIgnoreError(map, AuditFileSearch.class); - log.info("search = " + search); IPage pages = service.listSearch(Condition.getPage(query), search); IPage pagesVO = AuditFileWrapper.build().pageVO(pages); pagesVO.getRecords() 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 ce2bd1c3..16528460 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 @@ -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; @@ -27,8 +28,10 @@ import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.CycleTestExcel; +import org.springblade.desk.quality.pojo.entity.AuditFile; import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.request.CycleTestBatUpdateCycle; +import org.springblade.desk.quality.pojo.request.CycleTestSearch; import org.springblade.desk.quality.pojo.request.CycleTestSubmit; import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.service.CycleTestService2; @@ -41,6 +44,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * [周期试验] 控制器 @@ -49,11 +53,11 @@ import java.util.Map; * @since 2025-11-17 */ @RestController +@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/CycleTest") @Data @AllArgsConstructor @EqualsAndHashCode(callSuper = true) @Slf4j -@RequestMapping(QAModuleConst.CONTROLLER_PREFIX + "/CycleTest") @Tag(name = "[QA][周期试验]", description = "[周期试验]接口") public class CycleTestController extends BladeController { @@ -81,9 +85,17 @@ public class CycleTestController extends BladeController { @GetMapping("/list") @ApiOperationSupport(order = 2) @Operation(summary = "list分页", description = "传入cycleTest") - public R> list(@Parameter(hidden = true) @RequestParam Map cycleTest, + public R> list(@Parameter(hidden = true) @RequestParam Map map, Query query) { - return service2.list(cycleTest, query); + // 填充bean + CycleTestSearch search = BeanUtil.toBeanIgnoreError(map, CycleTestSearch.class); + log.info("search = " + search); + IPage pagesVO = service.listSearch(Condition.getPage(query), search); + pagesVO.getRecords() + .stream() + .peek(service2::setVOValue) + .collect(Collectors.toList()); + return R.data(pagesVO); } /** @@ -186,16 +198,22 @@ public class CycleTestController extends BladeController { @GetMapping("/export-excel") @ApiOperationSupport(order = 8) @Operation(summary = "导出数据", description = "传入cycleTest") - public void exportCycleTest(@Parameter(hidden = true) @RequestParam Map cycleTest, + public void exportCycleTest(@Parameter(hidden = true) @RequestParam Map map, BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper queryWrapper = Condition.getQueryWrapper(cycleTest, CycleTest.class); + // QueryWrapper queryWrapper = Condition.getQueryWrapper(cycleTest, CycleTest.class); //if (!AuthUtil.isAdministrator()) { // queryWrapper.lambda().eq(CycleTest::getTenantId, bladeUser.getTenantId()); //} //queryWrapper.lambda().eq(CycleTestEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportCycleTest(queryWrapper); + CycleTestSearch search = BeanUtil.toBeanIgnoreError(map, CycleTestSearch.class); + log.info("search = " + search); + List listVO = service.listSearchWithoutPage(search); + listVO.stream() + .peek(service2::setVOValue) + .collect(Collectors.toList()); + List listExcel = BeanUtil.copyToList(listVO, CycleTestExcel.class); ExcelUtil.export(response, "[周期试验]数据" + DateUtil.time(), - "[周期试验]数据表", list, CycleTestExcel.class); + "[周期试验]数据表", listExcel, CycleTestExcel.class); } @PostMapping("/update-process-user-bat") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestItemController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestItemController.java index 5fb1214a..713ad309 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestItemController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/CycleTestItemController.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; @@ -80,8 +81,7 @@ public class CycleTestItemController extends BladeController { @ApiOperationSupport(order = 2) @Operation(summary = "list分页", description = "传入cycleTestItem") public R> list( - @Parameter(hidden = true) @RequestParam Map cycleTestItem, - Query query) { + @Parameter(hidden = true) @RequestParam Map cycleTestItem, Query query) { return service2.list(cycleTestItem, query); } @@ -151,9 +151,11 @@ public class CycleTestItemController extends BladeController { // queryWrapper.lambda().eq(CycleTestItem::getTenantId, bladeUser.getTenantId()); //} //queryWrapper.lambda().eq(CycleTestItemEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportCycleTestItem(queryWrapper); + + List listVO = service2.listWithoutPage(cycleTestItem); + List listExcel = BeanUtil.copyToList(listVO, CycleTestItemExcel.class); ExcelUtil.export(response, "[周期试验项目]数据" + DateUtil.time(), - "[周期试验项目]数据表", list, + "[周期试验项目]数据表", listExcel, CycleTestItemExcel.class); } 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 5f959018..323b4c94 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 @@ -168,9 +168,8 @@ public class CycleTestTaskController extends BladeController { //} //queryWrapper.lambda().eq(CycleTestTaskEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.listSearchWithoutPage(search); - // todo:excel格式 + // excel 导出字段 List listExcel = BeanUtil.copyToList(list, CycleTestTaskExcel.class); ExcelUtil.export(response, "[周期试验任务]数据" + DateUtil.time(), "[周期试验任务]数据表", listExcel, CycleTestTaskExcel.class); @@ -219,10 +218,10 @@ public class CycleTestTaskController extends BladeController { return service.fill(id, isDone, testDate, testAttachId, reasonForNo, reasonForOut); } - @GetMapping("/testAuto") + @GetMapping("/generateAuto") @ApiOperationSupport(order = 12) - @Operation(summary = "testAuto", description = "") - public R testAuto() { + @Operation(summary = "generateAuto", description = "") + public R generateAuto() { service.generateAuto(); return R.success(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java index f4d8d143..92290c42 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankReportController.java @@ -28,8 +28,11 @@ import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.excel.LiquidTankReportExcel; import org.springblade.desk.quality.pojo.entity.LiquidTankReport; +import org.springblade.desk.quality.pojo.vo.LiquidTankReportDetailVO; import org.springblade.desk.quality.pojo.vo.LiquidTankReportVO; import org.springblade.desk.quality.service.ILiquidTankReportService; +import org.springblade.desk.quality.service.ILiquidTankTaskCopyService; +import org.springblade.desk.quality.wrapper.LiquidTankReportDetailWrapper; import org.springblade.desk.quality.wrapper.LiquidTankReportWrapper; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -54,179 +57,183 @@ import java.util.Map; public class LiquidTankReportController extends BladeController { @Resource - private ILiquidTankReportService service; - - /** - * [槽液报告] 详情 - */ - @GetMapping("/detail") - @ApiOperationSupport(order = 10) - @Operation(summary = "详情", description = "传入LiquidTankReport Obj") - public R detail(LiquidTankReport liquidTankReport) { - QueryWrapper qw = Condition.getQueryWrapper(liquidTankReport); - LiquidTankReport detail = service.getOne(qw); - LiquidTankReportVO detailVO = LiquidTankReportWrapper.build().entityVO(detail); - return R.data(detailVO); - } - - /** - * [槽液报告] list分页 - */ - @GetMapping("/list") - @ApiOperationSupport(order = 20) - @Operation(summary = "list分页", description = "传入LiquidTankReport Obj") - public R> list(@Parameter(hidden = true) @RequestParam Map liquidTankReport, - Query query) { + private ILiquidTankReportService service; + @Resource + private ILiquidTankTaskCopyService liquidTankTaskCopyService; + + /** + * [槽液报告] 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 10) + @Operation(summary = "详情", description = "传入LiquidTankReport Obj") + public R detail(LiquidTankReport liquidTankReport) { + QueryWrapper qw = Condition.getQueryWrapper(liquidTankReport); + LiquidTankReport detail = service.getOne(qw); + LiquidTankReportDetailVO detailVO = LiquidTankReportDetailWrapper.build().entityVO(detail); + // 直接查询明细列表 + detailVO.setCopyList(liquidTankTaskCopyService.getListByLiquidTankReportId(detailVO.getId())); + return R.data(detailVO); + } + + /** + * [槽液报告] list分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 20) + @Operation(summary = "list分页", description = "传入LiquidTankReport Obj") + public R> list(@Parameter(hidden = true) @RequestParam Map liquidTankReport, + Query query) { QueryWrapper qw = Condition.getQueryWrapper(liquidTankReport, LiquidTankReport.class); - IPage pages = service.page(Condition.getPage(query), qw); - IPage pagesVO = LiquidTankReportWrapper.build().pageVO(pages); - return R.data(pagesVO); - } - - - /** - * [槽液报告] page分页 - */ - @GetMapping("/page") - @ApiOperationSupport(order = 21) - @Operation(summary = "page分页", description = "传入LiquidTankReport Obj") - public R> page(LiquidTankReportVO liquidTankReport, Query query) { - IPage pagesVO = service.selectLiquidTankReportPage( - Condition.getPage(query), liquidTankReport - ); - return R.data(pagesVO); - } - - /** + IPage pages = service.page(Condition.getPage(query), qw); + IPage pagesVO = LiquidTankReportWrapper.build().pageVO(pages); + return R.data(pagesVO); + } + + + /** + * [槽液报告] page分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 21) + @Operation(summary = "page分页", description = "传入LiquidTankReport Obj") + public R> page(LiquidTankReportVO liquidTankReport, Query query) { + IPage pagesVO = service.selectLiquidTankReportPage( + Condition.getPage(query), liquidTankReport + ); + 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 = LiquidTankReportWrapper.build().listVO(list); - return R.data(listVO); + List list = service.list(); + List listVO = LiquidTankReportWrapper.build().listVO(list); + return R.data(listVO); + } + + /** + * [槽液报告] 新增一条 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 30) + @Operation(summary = "新增一条", description = "传入LiquidTankReport Obj") + public R save(@Valid @RequestBody LiquidTankReport addOne) { + addOne.setId(null); + return R.status(service.save(addOne)); } - /** - * [槽液报告] 新增一条 - */ - @PostMapping("/save") - @ApiOperationSupport(order = 30) - @Operation(summary = "新增一条", description = "传入LiquidTankReport Obj") - public R save(@Valid @RequestBody LiquidTankReport addOne) { - addOne.setId(null); - return R.status(service.save(addOne)); - } - - /** + /** * [槽液报告] 新增批量 */ - @PostMapping("/saveBat") - @ApiOperationSupport(order = 31) - @Operation(summary = "新增批量", description = "传入LiquidTankReport 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 = "传入LiquidTankReport Obj") - public R update(@Valid @RequestBody LiquidTankReport updateOne) { - return R.status(service.updateById(updateOne)); - } + @PostMapping("/saveBat") + @ApiOperationSupport(order = 31) + @Operation(summary = "新增批量", description = "传入LiquidTankReport 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 = "传入LiquidTankReport Obj") + public R update(@Valid @RequestBody LiquidTankReport updateOne) { + return R.status(service.updateById(updateOne)); + } /** * [槽液报告] 修改批量 */ @PostMapping("/updateBat") @ApiOperationSupport(order = 41) - @Operation(summary = "修改批量", description = "传入LiquidTankReport List") + @Operation(summary = "修改批量", description = "传入LiquidTankReport List") public R updateBat(@Valid @RequestBody List updateList) { return R.status(service.updateBatchById(updateList)); } - /** - * [槽液报告] 新增或修改一条 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 50) - @Operation(summary = "新增或修改一条", description = "传入LiquidTankReport Obj") - public R submit(@Valid @RequestBody LiquidTankReport mergeOne) { - return R.status(service.saveOrUpdate(mergeOne)); - } - - /** + /** + * [槽液报告] 新增或修改一条 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 50) + @Operation(summary = "新增或修改一条", description = "传入LiquidTankReport Obj") + public R submit(@Valid @RequestBody LiquidTankReport mergeOne) { + return R.status(service.saveOrUpdate(mergeOne)); + } + + /** * [槽液报告] 新增或修改批量 */ - @PostMapping("/submitBat") - @ApiOperationSupport(order = 51) - @Operation(summary = "新增或修改批量", description = "传入LiquidTankReport 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 = "传入LiquidTankReport") - public void exportExcel(@Parameter(hidden = true) @RequestParam Map liquidTankReport, - BladeUser bladeUser, HttpServletResponse response) { - QueryWrapper qw = Condition.getQueryWrapper(liquidTankReport, LiquidTankReport.class); - //if (!AuthUtil.isAdministrator()) { - // queryWrapper.lambda().eq(LiquidTankReport::getTenantId, bladeUser.getTenantId()); - //} - //queryWrapper.lambda().eq(LiquidTankReportEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); - List list = service.exportLiquidTankReport(qw); - ExcelUtil.export(response, "[槽液报告]数据" + DateUtil.time(), - "[槽液报告]数据表", list, LiquidTankReportExcel.class); - } - - /** + @PostMapping("/submitBat") + @ApiOperationSupport(order = 51) + @Operation(summary = "新增或修改批量", description = "传入LiquidTankReport 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 = "传入LiquidTankReport") + public void exportExcel(@Parameter(hidden = true) @RequestParam Map liquidTankReport, + BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper qw = Condition.getQueryWrapper(liquidTankReport, LiquidTankReport.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(LiquidTankReport::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(LiquidTankReportEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = service.exportLiquidTankReport(qw); + ExcelUtil.export(response, "[槽液报告]数据" + DateUtil.time(), + "[槽液报告]数据表", list, LiquidTankReportExcel.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, LiquidTankReport.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, LiquidTankReport.class + ); + return R.status(service.saveBatch(importList)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java index 76763dad..33558b2c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java @@ -8,12 +8,14 @@ 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; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.Date; /** @@ -28,193 +30,49 @@ import java.time.LocalDateTime; @ContentRowHeight(18) public class CycleTestExcel implements Serializable { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * [周期试验]编码 - */ - @ColumnWidth(20) - @ExcelProperty("[周期试验]编码") - private String code; - /** - * [周期试验]类型 - */ - @ColumnWidth(20) - @ExcelProperty("[周期试验]类型") - private Long cycleTestType; - /** - * 名称 - */ - @ColumnWidth(20) - @ExcelProperty("名称") - private String name; - /** - * [班组]id - */ - @ColumnWidth(20) - @ExcelProperty("[班组]id") - private BigDecimal teamId; - /** - * [供应商]id - */ - @ColumnWidth(20) - @ExcelProperty("[供应商]id") - private BigDecimal supplierId; - /** - * [周期试验项目]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 plateId; - /** - * 生成任务说明 - */ - @ColumnWidth(20) - @ExcelProperty("生成任务说明") - private String descGenTask; - /** - * 临期提醒说明 - */ - @ColumnWidth(20) - @ExcelProperty("临期提醒说明") - private String descRemind; - /** - * 提醒文本 - */ - @ColumnWidth(20) - @ExcelProperty("提醒文本") - private String remindText; - /** - * 排序 - */ - @ColumnWidth(20) - @ExcelProperty("排序") - private Long sort; - /** - * 备注 - */ - @ColumnWidth(20) - @ExcelProperty("备注") - private String remark; - /** - * 上次试验日期 - */ - @ColumnWidth(20) - @ExcelProperty("上次试验日期") - private LocalDateTime lastTestDate; - /** - * 生成任务JobId - */ - @ColumnWidth(20) - @ExcelProperty("生成任务JobId") - private String jobIdsGenTask; - /** - * 临期提醒JobId - */ - @ColumnWidth(20) - @ExcelProperty("临期提醒JobId") - private String jobIdsRemind; - /** - * 试验时长(天) - */ - @ColumnWidth(20) - @ExcelProperty("试验时长(天)") - private Long testDuration; - /** - * 提前下发(天) - */ - @ColumnWidth(20) - @ExcelProperty("提前下发(天)") - private Long genBefore; - /** - * 临期提醒(天) - */ - @ColumnWidth(20) - @ExcelProperty("临期提醒(天)") - private Long remind; - /** - * 定时类型-[1]:WEEK;[2]:MONTH;[3]:YEAR;[4]:CUSTOM; - */ - @ColumnWidth(20) - @ExcelProperty("定时类型-[1]:WEEK;[2]:MONTH;[3]:YEAR;[4]:CUSTOM;") - private Long jobType; - /** - * 定时WEEK值 - */ - @ColumnWidth(20) - @ExcelProperty("定时WEEK值") - private String jobTypeWeekValue; - /** - * 定时MONTH值 - */ - @ColumnWidth(20) - @ExcelProperty("定时MONTH值") - private String jobTypeMonthValue; - /** - * 定时YEAR值 - */ - @ColumnWidth(20) - @ExcelProperty("定时YEAR值") - private String jobTypeYearValue; - /** - * 定时CUSTOM值 - */ - @ColumnWidth(20) - @ExcelProperty("定时CUSTOM值") - private String jobTypeCustomValue; - /** - * 生成任务 json config - */ - @ColumnWidth(20) - @ExcelProperty("生成任务 json config") - private String jsonConfigGenTask; - /** - * 临期提醒 json config - */ - @ColumnWidth(20) - @ExcelProperty("临期提醒 json config") - private String jsonConfigRemind; - /** - * 是否顺延-[1]:是;[0]:否; - */ - @ColumnWidth(20) - @ExcelProperty("是否顺延-[1]:是;[0]:否;") - private Long isPutOff; - /** - * 最小试验数量 - */ - @ColumnWidth(20) - @ExcelProperty("最小试验数量") - private Long minDoTestCount; - /** - * 试验件材料 - */ - @ColumnWidth(20) - @ExcelProperty("试验件材料") - private String testMat; + @Schema(description = "[镀种]多个名称") + @ColumnWidth(20) + @ExcelProperty("镀种") + private String plateNames; + @Schema(description = "[周期试验项目]名称") + @ColumnWidth(20) + @ExcelProperty("试验项目") + private String cycleTestItemName; + @Schema(description = "[周期试验项目]试验条件") + @ColumnWidth(20) + @ExcelProperty("试验条件") + private String cycleTestItemCondition; + @Schema(description = "[周期试验标准]名称") + @ColumnWidth(20) + @ExcelProperty("试验标准") + private String cycleTestStandardName; + @Schema(description = "试验件类型 名称") + @ColumnWidth(20) + @ExcelProperty("试验件") + private String testTypeName; + @Schema(description = "试验件材料") + @ColumnWidth(20) + @ExcelProperty("试验件材料") + private String testMat; + @Schema(description = "试验周期") + @ColumnWidth(20) + @ExcelProperty("试验周期") + private String jobExtShowText; + @Schema(description = "最小试验数量") + @ColumnWidth(20) + @ExcelProperty("最小试验数量") + private Integer minDoTestCount; + @Schema(description = "提前下发天数") + @ColumnWidth(20) + @ExcelProperty("提前下发天数") + private Integer genBefore; + @ColumnWidth(20) + @ExcelProperty("超期提醒天数") + private Integer remind; + @ColumnWidth(20) + @ExcelProperty("更新时间") + private Date updateTime; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java index 13dfafd8..31a45b79 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java @@ -45,6 +45,6 @@ public class CycleTestItemExcel implements Serializable { * 试验标准 */ @ColumnWidth(20) - @ExcelProperty("试验标准") - private String standard; + @ExcelProperty("执行标准") + private String cycleTestStandardName; } 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 c84440e4..6c4b3988 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 @@ -76,7 +76,7 @@ public class CycleTestTaskExcel implements Serializable { */ @Schema(description = "工艺员[用户]姓名") @ColumnWidth(20) - @ExcelProperty("状态") + @ExcelProperty("工艺员") private String processUserName; /** * 任务生成时间 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/CycleTestTaskClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/CycleTestTaskClient.java index 564e8a19..11fe29e5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/CycleTestTaskClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/CycleTestTaskClient.java @@ -17,11 +17,6 @@ public class CycleTestTaskClient implements ICycleTestTaskClient { service.generateAuto(); } - @Override - public void generateOneTime() { - service.generateOneTime(); - } - @Override public void checkRemind() { service.checkRemind(); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/LiquidTankTaskClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/LiquidTankTaskClient.java index 57eddfeb..f19869af 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/LiquidTankTaskClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/feign/LiquidTankTaskClient.java @@ -3,6 +3,9 @@ package org.springblade.desk.quality.feign; import io.swagger.v3.oas.annotations.Hidden; import jakarta.annotation.Resource; import org.springblade.desk.quality.pojo.entity.LiquidTankTask; +import org.springblade.desk.quality.service.ILiquidTankService; +import org.springblade.desk.quality.service.ILiquidTankTaskService; +import org.springblade.desk.quality.service.LiquidTankService2; import org.springblade.desk.quality.service.LiquidTankTaskService222; import org.springframework.web.bind.annotation.RestController; @@ -13,16 +16,21 @@ import java.util.List; public class LiquidTankTaskClient implements ILquidTankTaskClient { @Resource - private LiquidTankTaskService222 service; + private ILiquidTankTaskService service; @Override - public List generate() { - return null;// todo: + public void generateAuto() { + service.generateAuto(); } @Override - public List timeout() { - return service.timeout(); + public void checkRemind() { + service.checkRemind(); + } + + @Override + public void checkOut() { + service.checkOut(); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestItemMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestItemMapper.xml index 8999cb92..5d837c36 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestItemMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestItemMapper.xml @@ -18,7 +18,7 @@ SELECT * FROM QA_CYCLE_TEST - WHERE is_deleted = 0 + WHERE IS_DELETED = 0 AND CYCLE_TEST_ITEM_ID = #{q.cycleTestItemId} @@ -54,4 +54,78 @@ SELECT * FROM QA_CYCLE_TEST ${ew.customSqlSegment} + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestTaskMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestTaskMapper.xml index edc65115..4573c5fa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestTaskMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/CycleTestTaskMapper.xml @@ -37,6 +37,8 @@ + + @@ -187,12 +204,21 @@ AND t.CREATE_TIME <= #{q.createTimeEnd} + + AND t.CREATE_TIME >= #{q.genDatetimeStart} + + + AND t.CREATE_TIME <= #{q.genDatetimeEnd} + AND t.TEST_TYPE = #{q.testType} AND t.CODE LIKE '%' || #{q.code} || '%' + + AND item.ID = #{q.cycleTestItemId} + AND item.NAME LIKE '%' || #{q.cycleTestItemName} || '%' @@ -229,6 +255,12 @@ AND t.FINISH_DATE <= #{q.finishDateEnd} + + AND t.DAY_TO_PLANED_FINISH = #{q.dayToPlanedFinish} + + + AND t.DAY_TO_OUT = #{q.dayToOut} + ORDER BY t.STATUS ASC,t.CREATE_TIME ASC diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java index 46196390..87a7bdc9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestItemService2.java @@ -47,9 +47,7 @@ public class CycleTestItemService2 { * @param query * @return */ - public R> list(@Parameter(hidden = true) @RequestParam Map map, - Query query) { - + public R> list(Map map, Query query) { QueryWrapper qw = Condition.getQueryWrapper(map, CycleTestItem.class); qw.orderByDesc(BaseCol.ID); IPage pages = service.page(Condition.getPage(query), qw); @@ -61,6 +59,23 @@ public class CycleTestItemService2 { return R.data(pagesVO); } + /** + * list 不分页 + * + * @param map + * @return + */ + public List listWithoutPage(Map map) { + QueryWrapper qw = Condition.getQueryWrapper(map, CycleTestItem.class); + qw.orderByDesc(BaseCol.ID); + List pages = service.list(qw); + List pagesVO = CycleTestItemWrapper.build().listVO(pages); + pagesVO.stream() + .peek(this::setVOValue) + .collect(Collectors.toList()); + return pagesVO; + } + /** * search * 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 11880fdf..923f6c1d 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 @@ -1,5 +1,6 @@ package org.springblade.desk.quality.service; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Parameter; @@ -19,9 +20,11 @@ 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.request.CycleTestBatUpdateCycle; +import org.springblade.desk.quality.pojo.request.CycleTestSearch; import org.springblade.desk.quality.pojo.request.JobExt; import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.pojo.vo.CycleTestStandardVO; +import org.springblade.desk.quality.util.JobExtUtil; import org.springblade.desk.quality.wrapper.CycleTestStandardWrapper; import org.springblade.desk.quality.wrapper.CycleTestWrapper; import org.springblade.resource.feign.IAttachClient; @@ -128,20 +131,18 @@ public class CycleTestService2 { } /** - * list + * list 不分页 * * @param cycleTest - * @param query * @return */ - public R> list(@Parameter(hidden = true) @RequestParam Map cycleTest, - Query query) { - IPage pages = service.page(Condition.getPage(query), - Condition.getQueryWrapper(cycleTest, CycleTest.class).orderByAsc(BaseCol.ID) - ); - IPage pagesVO = CycleTestWrapper.build().pageVO(pages); - pagesVO.getRecords().stream().peek(this::setVOValue).collect(Collectors.toList()); - return R.data(pagesVO); + public List listWithoutPage(Map cycleTest) { + QueryWrapper qw = Condition.getQueryWrapper(cycleTest, CycleTest.class); + qw.orderByAsc(BaseCol.ID); + List pages = service.list(qw); + List pagesVO = CycleTestWrapper.build().listVO(pages); + pagesVO.stream().peek(this::setVOValue).collect(Collectors.toList()); + return pagesVO; } /** @@ -194,16 +195,22 @@ public class CycleTestService2 { { StringBuilder names = new StringBuilder(); List idList = Func.toLongList(vo.getPlateIds()); - idList.forEach(id -> { - names.append(platingService.getById(id).getPlating()); - names.append(","); - }); - String namesF = names.toString(); - if (StringUtils.isNotBlank(namesF) && StringUtils.endsWith(namesF, ",")) { - // 去掉结尾, - StringUtils.removeEnd(namesF, ","); + // 循环拼接 + for (int i = 0; i < idList.size(); i++) { + names.append(platingService.getById(idList.get(i)).getPlating()); + if (i != idList.size() - 1) { // 去掉结尾, + names.append(","); + } + } + vo.setPlateNames(names.toString()); + } + // + { + if (vo.getJobType() != null && vo.getJobType() != 0) { + JobExt je = new JobExt(); + BeanUtil.copyProperties(vo, je); + vo.setJobExtShowText(JobExtUtil.getShowText(je)); } - vo.setPlateNames(namesF); } } } 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 7e0b0e87..fa8070c2 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 @@ -278,10 +278,6 @@ public class CycleTestTaskService2 { return true; } - public void generateOneTime() { - List ctList = cycleTestService.list(); - } - /** * 手动生成 * @@ -472,15 +468,10 @@ public class CycleTestTaskService2 { .toInstant(); return mapper.selectCount( new LambdaQueryWrapper() - .between(CycleTestTask::getCreateTime, - Date.from(leftInstant), Date.from(rightInstant)) + .between(CycleTestTask::getCreateTime, Date.from(leftInstant), Date.from(rightInstant)) ); } - private LocalDate issueDate(CycleTestTask t) { - return null; - } - /** * 任务计划结束日期/超期日期 * @@ -514,7 +505,7 @@ public class CycleTestTaskService2 { } /** - * 临期天数 + * 计算临期天数 * 临期天数 ≤ 0时,红色 * 临期天数 0~7 时,橙色 * 临期天数 >= 7时,黄色 @@ -526,18 +517,18 @@ public class CycleTestTaskService2 { * @param id * @return */ - public String getCountDayToOut(Long id) { + public Integer getCountDayToOut(Long id) { CycleTestTask task = service.getById(id); if (Objects.equals(task.getStatus(), CycleTestTaskConst.S_PENDING_ACCEPT) || Objects.equals(task.getStatus(), CycleTestTaskConst.S_PENDING_TEST)) { LocalDate outLD = getOutDate(id); if (outLD == null) { - return ""; + return 0; } long daysDiff = ChronoUnit.DAYS.between(LocalDate.now(), outLD); - return "" + (int) daysDiff; + return (int) daysDiff; } - return ""; + return 0; } /** @@ -563,9 +554,12 @@ public class CycleTestTaskService2 { if (todayLD.isEqual(remindLD) || (todayLD.isAfter(remindLD) && todayLD.isBefore(outLD))) { task.setFlagOut(BaseValue.NO); task.setFlagApproach(BaseValue.YES); - // 更新状态 - service.updateById(task); + // todo:消息中心 进行临期提醒 } + // 设置临期天数 + task.setDayToPlanedFinish(getCountDayToOut(task.getId())); + // 更新状态 + service.updateById(task); } } @@ -591,6 +585,7 @@ public class CycleTestTaskService2 { if (todayLD.isEqual(outLD) || todayLD.isAfter(outLD)) { task.setFlagOut(BaseValue.YES); task.setFlagApproach(BaseValue.NO); + // todo:消息中心 进行超期提醒 // 更新状态 service.updateById(task); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ICycleTestService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ICycleTestService.java index 99569c4c..f7913791 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ICycleTestService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ICycleTestService.java @@ -10,6 +10,7 @@ import org.springblade.core.tool.api.R; import org.springblade.desk.quality.excel.CycleTestExcel; import org.springblade.desk.quality.excel.CycleTestExcelImport; import org.springblade.desk.quality.pojo.entity.CycleTest; +import org.springblade.desk.quality.pojo.request.CycleTestSearch; import org.springblade.desk.quality.pojo.request.CycleTestSubmit; import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springframework.web.multipart.MultipartFile; @@ -41,6 +42,10 @@ public interface ICycleTestService extends BaseService { */ List exportCycleTest(Wrapper queryWrapper); + IPage listSearch(IPage page, CycleTestSearch search); + + List listSearchWithoutPage(CycleTestSearch search); + /** * VO * diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankReportService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankReportService.java index c6a0ea1a..d1bd5bd3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankReportService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankReportService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.desk.quality.excel.LiquidTankReportExcel; import org.springblade.desk.quality.pojo.entity.LiquidTankReport; +import org.springblade.desk.quality.pojo.vo.LiquidTankReportDetailVO; import org.springblade.desk.quality.pojo.vo.LiquidTankReportVO; import java.util.List; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java index e3dafa3f..b1de266c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskCopyService.java @@ -45,4 +45,6 @@ public interface ILiquidTankTaskCopyService extends BaseService list); R generateWave(@Valid @RequestBody List list); + + List getListByLiquidTankReportId(Long liquidTankReportId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java index c5b58bd4..04f1b783 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/ILiquidTankTaskService.java @@ -66,4 +66,10 @@ public interface ILiquidTankTaskService extends BaseService { R finishFail(Long id, String finishReason); void setVOValue(LiquidTankTaskVO vo); + + void generateAuto(); + + void checkRemind(); + + void checkOut(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IRelTankReportItemService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IRelTankReportItemService.java index 1406a03d..6f17daba 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IRelTankReportItemService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IRelTankReportItemService.java @@ -19,20 +19,22 @@ import java.util.List; * @since 2025-12-18 */ public interface IRelTankReportItemService extends BaseService { - /** - * 自定义分页 - * - * @param page 分页参数 - * @param relTankReportItem 查询参数 - * @return IPage - */ - IPage selectRelTankReportItemPage(IPage page, RelTankReportItemVO relTankReportItem); - /** - * 导出数据 - * - * @param queryWrapper 查询条件 - * @return List - */ - List exportRelTankReportItem(Wrapper queryWrapper); + /** + * 自定义分页 + * + * @param page 分页参数 + * @param relTankReportItem 查询参数 + * @return IPage + */ + IPage selectRelTankReportItemPage(IPage page, + RelTankReportItemVO relTankReportItem); + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportRelTankReportItem(Wrapper queryWrapper); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/CycleTestServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/CycleTestServiceImpl.java index 32d1a3bf..35fae867 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/CycleTestServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/CycleTestServiceImpl.java @@ -14,6 +14,8 @@ import lombok.EqualsAndHashCode; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.config.RoleConfig; @@ -23,6 +25,7 @@ import org.springblade.desk.quality.excel.listener.in.CycleTestListener; import org.springblade.desk.quality.mapper.CycleTestMapper; import org.springblade.desk.quality.pojo.entity.CycleTest; import org.springblade.desk.quality.pojo.entity.CycleTestItem; +import org.springblade.desk.quality.pojo.request.CycleTestSearch; import org.springblade.desk.quality.pojo.request.CycleTestSubmit; import org.springblade.desk.quality.pojo.vo.CycleTestVO; import org.springblade.desk.quality.service.ICycleTestItemService; @@ -35,6 +38,8 @@ import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * [周期试验] 服务实现类 @@ -73,6 +78,16 @@ public class CycleTestServiceImpl extends BaseServiceImpl listSearch(IPage page, CycleTestSearch search) { + return page.setRecords(baseMapper.listSearch(page, search)); + } + + @Override + public List listSearchWithoutPage(CycleTestSearch search) { + return baseMapper.listSearchWithoutPage(search); + } + @Override public void setVOValue(CycleTestVO vo) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java index c9e48175..92db073e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java @@ -169,6 +169,12 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl implements ILiquidTankReportService { +public class LiquidTankReportServiceImpl extends BaseServiceImpl + implements ILiquidTankReportService { + + @Resource + private IRelTankReportItemService relTankReportItemService; @Resource private IUserClient userClient; @@ -53,6 +62,8 @@ public class LiquidTankReportServiceImpl extends BaseServiceImpl implements ILiquidTankTaskCopyService { + @Resource + private IWorkCenterService workCenterService; + @Resource private ILiquidTankReportService reportService; @Resource @@ -53,8 +60,7 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl selectLiquidTankTaskCopyPage(IPage page, LiquidTankTaskCopyVO liquidTankTaskCopy) { @@ -86,7 +92,7 @@ public class LiquidTankTaskCopyServiceImpl extends BaseServiceImpl getListByLiquidTankReportId(Long liquidTankReportId) { + LambdaQueryWrapper qw = Wrappers.lambdaQuery(); + qw.eq(RelTankReportItem::getLiquidTankReportId, liquidTankReportId); + List relList = relReportItemService.list(qw); + List copyList = new ArrayList<>(); + for (RelTankReportItem relOne : relList) { + Long taskId = relOne.getLiquidTankTaskId(); + LiquidTankTaskCopy copy = getById(taskId); + LiquidTankTaskCopyVO copyVO = LiquidTankTaskCopyWrapper.build().entityVO(copy); + setVOValue(copyVO); + copyList.add(copyVO); + } + return copyList; } } 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 f5c313ec..2aa3425b 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 @@ -293,17 +293,18 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl generateAuto() { + public void generateAuto() { log.info("========generate========start"); - // 如果是节假日,则跳过生成。 + // 如果是节假日,则跳过生成。 todo: if (false) { log.info("节假日,则跳过生成。"); - return null; + return; } // 查询所有启用的槽液。 List tankList = liquidTankService.list( @@ -327,7 +328,16 @@ public class LiquidTankTaskServiceImpl extends BaseServiceImpl list = Func.toIntList(je.getJobTypeWeekValue()); + sb.append(list.size()); + sb.append("次/周"); + } else if (type.equals(MONTH)) { + if (StringUtils.isBlank(je.getJobTypeMonthValue())) { + return ""; + } + List list = Func.toStrList(je.getJobTypeMonthValue()); + sb.append(list.size()); + sb.append("次/月"); + } else if (type.equals(YEAR)) { + if (StringUtils.isBlank(je.getJobTypeYearValue())) { + return ""; + } + List list = Func.toStrList(je.getJobTypeYearValue()); + sb.append(list.size()); + sb.append("次/年"); + } + return sb.toString(); + } + /** * 测试执行 * diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/LiquidTankReportDetailWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/LiquidTankReportDetailWrapper.java new file mode 100644 index 00000000..273bf55b --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/LiquidTankReportDetailWrapper.java @@ -0,0 +1,37 @@ +/** + * Author: Tom Shuo + */ +package org.springblade.desk.quality.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.quality.pojo.entity.LiquidTankReport; +import org.springblade.desk.quality.pojo.vo.LiquidTankReportDetailVO; +import org.springblade.desk.quality.pojo.vo.LiquidTankReportVO; + +import java.util.Objects; + +/** + * [槽液报告] 包装类,返回视图层所需的字段 + * + * @author Tom Shuo + * @since 2025-12-18 + */ +public class LiquidTankReportDetailWrapper extends BaseEntityWrapper { + + public static LiquidTankReportDetailWrapper build() { + return new LiquidTankReportDetailWrapper(); + } + + @Override + public LiquidTankReportDetailVO entityVO(LiquidTankReport liquidTankReport) { + LiquidTankReportDetailVO VO = Objects.requireNonNull(BeanUtil.copyProperties(liquidTankReport, LiquidTankReportDetailVO.class)); + + //User createUser = UserCache.getUser(liquidTankReport.getCreateUser()); + //User updateUser = UserCache.getUser(liquidTankReport.getUpdateUser()); + //liquidTankReportVO.setCreateUserName(createUser.getName()); + //liquidTankReportVO.setUpdateUserName(updateUser.getName()); + + return VO; + } +}