From a3344947e1ff54fcae8f09140ab0d05e2ba26f31 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 25 十月 2024 15:17:36 +0800
Subject: [PATCH] 新增配方记录功能并优化相关实体和VO

---
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java                  |    2 
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java   |   30 +
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryHerbFormulaHisMapper.xml         |    5 
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java           |    3 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbInfo.java                        |    6 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/BaseParam.java                              |   35 ++
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryHerbFormulaHisMapper.java            |   17 +
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java          |    8 
 jrebel-classpath-17592.jar                                                                                               |    0 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/OffsetParam.java                            |   24 +
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbInfoVo.java                          |    6 
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java         |    1 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formula.java                                |   24 +
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java      |  132 +++++++
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/StatisticsDataVo.java                       |   87 +++++
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java             |   17 
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java      |    1 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/TypeParam.java                              |   20 +
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaHisController.java    |  178 ++++++++++
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryHerbFormulaHisServiceImpl.java |   19 +
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryHerbFormulaHisService.java         |   14 
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaController.java       |    1 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java                           |    3 
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbFormulaHisVo.java                    |   94 +++++
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formulas.java                               |   17 +
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java                     |   37 +
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/WaterParam.java                             |   55 +++
 jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormulaHis.java                  |  145 ++++++++
 28 files changed, 958 insertions(+), 23 deletions(-)

diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java
index 5c4c4aa..6a3d545 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java
@@ -36,20 +36,32 @@
 	@TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "id")
     private String id;
+    /**閰嶆柟缂栧彿*/
+    @Excel(name = "閰嶆柟缂栧彿", width = 15)
+    @ApiModelProperty(value = "閰嶆柟缂栧彿")
+    private String code;
 	/**鑽潗id*/
-	@Excel(name = "鑽潗id", width = 15, dictTable = "dry_herb", dicText = "name", dicCode = "id")
-	@Dict(dictTable = "dry_herb", dicText = "name", dicCode = "id")
+	@Excel(name = "鑽潗id", width = 15, dictTable = "dry_herb_info", dicText = "name", dicCode = "id")
+	@Dict(dictTable = "dry_herb_info", dicText = "name", dicCode = "id")
     @ApiModelProperty(value = "鑽潗id")
     private String herbId;
-	/**鑽潗鍚嶇О*/
-	@Excel(name = "鑽潗鍚嶇О", width = 15)
-    @ApiModelProperty(value = "鑽潗鍚嶇О")
-    private String herbName;
+	/**閰嶆柟鍚嶇О*/
+	@Excel(name = "閰嶆柟鍚嶇О", width = 15)
+    @ApiModelProperty(value = "閰嶆柟鍚嶇О")
+    private String name;
+    /**鑽潗鎷奸煶*/
+    @Excel(name = "鑽潗鎷奸煶", width = 15)
+    @ApiModelProperty(value = "鑽潗鎷奸煶")
+    private String pinyin;
 	/**璁惧绫诲瀷*/
 	@Excel(name = "璁惧绫诲瀷", width = 15, dictTable = "dry_eqp_type", dicText = "name", dicCode = "id")
 	@Dict(dictTable = "dry_eqp_type", dicText = "name", dicCode = "id")
     @ApiModelProperty(value = "璁惧绫诲瀷")
     private String eqpType;
+    /**閰嶆柟鍒嗙被*/
+    @Excel(name = "閰嶆柟鍒嗙被", width = 15)
+    @ApiModelProperty(value = "閰嶆柟鍒嗙被")
+    private String category;
 	/**鐩爣鍚按鐜�*/
 	@Excel(name = "鐩爣鍚按鐜�", width = 15)
     @ApiModelProperty(value = "鐩爣鍚按鐜�")
@@ -66,6 +78,10 @@
 	@Excel(name = "鐑娓╁害", width = 15)
     @ApiModelProperty(value = "鐑娓╁害")
     private Double windTemp;
+    /**鍒濆椋庢満棰戠巼*/
+    @Excel(name = "鍒濆椋庢満棰戠巼", width = 15)
+    @ApiModelProperty(value = "鍒濆椋庢満棰戠巼")
+    private Integer fanSpeed;
 	/**鐜娓╁害*/
 	@Excel(name = "鐜娓╁害", width = 15)
     @ApiModelProperty(value = "鐜娓╁害")
@@ -82,6 +98,15 @@
 	@Excel(name = "缈绘枡娆℃暟", width = 15)
     @ApiModelProperty(value = "缈绘枡娆℃暟")
     private Integer turn;
+    /**鍚按鐜囪ˉ鍋�*/
+    @Excel(name = "鍚按鐜囪ˉ鍋�", width = 15)
+    @ApiModelProperty(value = "鍚按鐜囪ˉ鍋�")
+    private Double moisOffset;
+
+    /**鍐烽鏃堕暱*/
+    @Excel(name = "鍐烽鏃堕暱", width = 15)
+    @ApiModelProperty(value = "鍐烽鏃堕暱")
+    private Integer coolingDuration;
 	/**绉熸埛id*/
 	@Excel(name = "绉熸埛id", width = 15)
     @ApiModelProperty(value = "绉熸埛id")
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormulaHis.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormulaHis.java
new file mode 100644
index 0000000..2de7e1c
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormulaHis.java
@@ -0,0 +1,145 @@
+package org.jeecg.modules.dry.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 閰嶆柟璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2024-08-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("dry_herb_formula_his")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="dry_herb_formula_his瀵硅薄", description="閰嶆柟璁板綍")
+public class DryHerbFormulaHis implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    private String id;
+	/**璁惧*/
+    @Excel(name = "璁惧", width = 15, dictTable = "dry_equipment", dicText = "name", dicCode = "id")
+    @Dict(dictTable = "dry_equipment", dicText = "name", dicCode = "id")
+    @ApiModelProperty(value = "璁惧")
+    private String eqpId;
+	/**宸ュ崟鍙�*/
+	@Excel(name = "宸ュ崟鍙�", width = 15)
+    @ApiModelProperty(value = "宸ュ崟鍙�")
+    private String orderCode;
+	/**宸ュ崟鏃堕棿*/
+	@Excel(name = "宸ュ崟鏃堕棿", width = 15, format = "yyyy-MM-dd")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "宸ュ崟鏃堕棿")
+    private Date orderTime;
+	/**绱㈠紩*/
+	@Excel(name = "绱㈠紩", width = 15)
+    @ApiModelProperty(value = "绱㈠紩")
+    private String formulaIndex;
+	/**缂栫爜*/
+	@Excel(name = "缂栫爜", width = 15)
+    @ApiModelProperty(value = "缂栫爜")
+    private String code;
+	/**鍚嶇О*/
+	@Excel(name = "鍚嶇О", width = 15)
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+	/**绫诲瀷*/
+	@Excel(name = "绫诲瀷", width = 15)
+    @ApiModelProperty(value = "绫诲瀷")
+    private String typ;
+	/**ab*/
+	@Excel(name = "ab", width = 15)
+    @ApiModelProperty(value = "ab")
+    private String ab;
+	/**鎶曟枡閲忥紙绛愶級*/
+	@Excel(name = "鎶曟枡閲忥紙绛愶級", width = 15)
+    @ApiModelProperty(value = "鎶曟枡閲忥紙绛愶級")
+    private Double weight1;
+	/**鍒濆閲嶉噺*/
+	@Excel(name = "鍒濆閲嶉噺", width = 15)
+    @ApiModelProperty(value = "鍒濆閲嶉噺")
+    private Double weight2;
+    /**骞茬嚗鎬绘椂闂�*/
+    @ApiModelProperty(value = "骞茬嚗鎬绘椂闂�")
+    private Integer times;
+	/**鐑娓╁害*/
+	@Excel(name = "鐑娓╁害", width = 15)
+    @ApiModelProperty(value = "鐑娓╁害")
+    private Double temp1;
+	/**鐜娓╁害*/
+	@Excel(name = "鐜娓╁害", width = 15)
+    @ApiModelProperty(value = "鐜娓╁害")
+    private Double temp2;
+	/**鐜婀垮害*/
+	@Excel(name = "鐜婀垮害", width = 15)
+    @ApiModelProperty(value = "鐜婀垮害")
+    private Double temp3;
+	/**鑽℃枡寤舵椂ms*/
+	@Excel(name = "鑽℃枡寤舵椂ms", width = 15)
+    @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
+    private Double delay;
+	/**缈绘枡娆℃暟*/
+	@Excel(name = "缈绘枡娆℃暟", width = 15)
+    @ApiModelProperty(value = "缈绘枡娆℃暟")
+    private Integer turntime;
+	/**鍒濆鍚按鐜�*/
+	@Excel(name = "鍒濆鍚按鐜�", width = 15)
+    @ApiModelProperty(value = "鍒濆鍚按鐜�")
+    private Double moisture1;
+	/**鐩爣鍚按鐜�*/
+	@Excel(name = "鐩爣鍚按鐜�", width = 15)
+    @ApiModelProperty(value = "鐩爣鍚按鐜�")
+    private Double moisture3;
+	/**鑽潗鍒嗙被*/
+	@Excel(name = "鑽潗鍒嗙被", width = 15)
+    @ApiModelProperty(value = "鑽潗鍒嗙被")
+    private Integer mtype;
+	/**鍚按鐜囪ˉ鍋�*/
+	@Excel(name = "鍚按鐜囪ˉ鍋�", width = 15)
+    @ApiModelProperty(value = "鍚按鐜囪ˉ鍋�")
+    private Double moisoffset;
+	/**鍐烽鏃堕暱*/
+	@Excel(name = "鍐烽鏃堕暱", width = 15)
+    @ApiModelProperty(value = "鍐烽鏃堕暱")
+    private Double coldwind;
+	/**绉熸埛id*/
+	@Excel(name = "绉熸埛id", width = 15)
+    @ApiModelProperty(value = "绉熸埛id")
+    private Integer tenantId;
+	/**鍒涘缓浜�*/
+    @ApiModelProperty(value = "鍒涘缓浜�")
+    private String createBy;
+	/**鍒涘缓鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+	/**鏇存柊浜�*/
+    @ApiModelProperty(value = "鏇存柊浜�")
+    private String updateBy;
+	/**鏇存柊鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbInfo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbInfo.java
index b808768..8725ed9 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbInfo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbInfo.java
@@ -9,6 +9,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -49,6 +50,11 @@
 	@Excel(name = "鑻辨枃鍚�", width = 15)
     @ApiModelProperty(value = "鑻辨枃鍚�")
     private String english;
+    /**鑽潗鍒嗙被*/
+    @Excel(name = "鑽潗鍒嗙被", width = 15, dictTable = "dry_herb_type", dicText = "name", dicCode = "id")
+    @Dict(dictTable = "dry_herb_type", dicText = "name", dicCode = "id")
+    @ApiModelProperty(value = "鑽潗鍒嗙被")
+    private String type;
 	/**鑽敤閮ㄤ綅*/
 	@Excel(name = "鑽敤閮ㄤ綅", width = 15)
     @ApiModelProperty(value = "鑽敤閮ㄤ綅")
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
index 33cd2e2..29ac2c8 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
@@ -48,7 +48,7 @@
     private String code;
 	/**鑽潗*/
 	@Excel(name = "鑽潗", width = 15, dictTable = "dry_herb", dicText = "name", dicCode = "id")
-	@Dict(dictTable = "dry_herb", dicText = "name", dicCode = "id")
+	@Dict(dictTable = "dry_herb_formula", dicText = "name", dicCode = "id")
     @ApiModelProperty(value = "鑽潗")
     private String herbId;
     /**鑽潗*/
@@ -138,6 +138,7 @@
     private Date updateTime;
 	/**宸ュ崟鐘舵��*/
 	@Excel(name = "宸ュ崟鐘舵��", width = 15)
+    @Dict(dicCode = "dry_order_status")
     @ApiModelProperty(value = "宸ュ崟鐘舵��")
     private Integer orderStatus;
 	/**鎿嶄綔浜�*/
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/BaseParam.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/BaseParam.java
new file mode 100644
index 0000000..4cd16e5
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/BaseParam.java
@@ -0,0 +1,35 @@
+package org.jeecg.modules.dry.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Data
+@XmlRootElement(name = "BaseParam")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class BaseParam {
+    /**绱㈠紩*/
+    @XmlElement(name = "index")
+    @ApiModelProperty(value = "绱㈠紩")
+    private String index;
+    /**缂栫爜*/
+    @XmlElement(name = "code")
+    @ApiModelProperty(value = "缂栫爜")
+    private String code;
+    /**鍚嶇О*/
+    @XmlElement(name = "name")
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+    /**绫诲瀷*/
+    @XmlElement(name = "typ")
+    @ApiModelProperty(value = "绫诲瀷")
+    private String typ;
+    /**ab*/
+    @XmlElement(name = "ab")
+    @ApiModelProperty(value = "ab")
+    private String ab;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbFormulaHisVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbFormulaHisVo.java
new file mode 100644
index 0000000..9a619ba
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbFormulaHisVo.java
@@ -0,0 +1,94 @@
+package org.jeecg.modules.dry.vo;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.jeecg.modules.dry.entity.DryHerbFormula;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+@Data
+@NoArgsConstructor
+@ApiModel(value="dry_herb_formula_his vo瀵硅薄", description="閰嶆柟璁板綍VO")
+public class DryHerbFormulaHisVo implements Serializable {
+
+	/**璁惧*/
+    @ApiModelProperty(value = "璁惧")
+    private String eqp;
+	/**宸ュ崟鍙�*/
+    @ApiModelProperty(value = "宸ュ崟鍙�")
+    private String orderCode;
+	/**宸ュ崟鏃堕棿*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    @ApiModelProperty(value = "宸ュ崟鏃堕棿")
+    private Date orderTime;
+	/**绱㈠紩*/
+    @ApiModelProperty(value = "绱㈠紩")
+    private String index;
+	/**缂栫爜*/
+    @ApiModelProperty(value = "缂栫爜")
+    private String code;
+	/**鍚嶇О*/
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+	/**绫诲瀷*/
+    @ApiModelProperty(value = "绫诲瀷")
+    private String typ;
+	/**ab*/
+    @ApiModelProperty(value = "ab")
+    private String ab;
+	/**鎶曟枡閲忥紙绛愶級*/
+    @ApiModelProperty(value = "鎶曟枡閲忥紙绛愶級")
+    private Double weight1;
+	/**鍒濆閲嶉噺*/
+    @ApiModelProperty(value = "鍒濆閲嶉噺")
+    private Double weight2;
+    /**骞茬嚗鎬绘椂闂�*/
+    @ApiModelProperty(value = "骞茬嚗鎬绘椂闂�")
+    private Integer times;
+	/**鐑娓╁害*/
+    @ApiModelProperty(value = "鐑娓╁害")
+    private Double temp1;
+	/**鐜娓╁害*/
+    @ApiModelProperty(value = "鐜娓╁害")
+    private Double temp2;
+	/**鐜婀垮害*/
+    @ApiModelProperty(value = "鐜婀垮害")
+    private Double temp3;
+	/**鑽℃枡寤舵椂ms*/
+    @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
+    private Double delay;
+	/**缈绘枡娆℃暟*/
+    @ApiModelProperty(value = "缈绘枡娆℃暟")
+    private Integer turntime;
+	/**鍒濆鍚按鐜�*/
+    @ApiModelProperty(value = "鍒濆鍚按鐜�")
+    private Double moisture1;
+	/**鐩爣鍚按鐜�*/
+    @ApiModelProperty(value = "鐩爣鍚按鐜�")
+    private Double moisture3;
+	/**鑽潗鍒嗙被*/
+    @ApiModelProperty(value = "鑽潗鍒嗙被")
+    private Integer mtype;
+	/**鍚按鐜囪ˉ鍋�*/
+    @ApiModelProperty(value = "鍚按鐜囪ˉ鍋�")
+    private Double moisoffset;
+	/**鍐烽鏃堕暱*/
+    @ApiModelProperty(value = "鍐烽鏃堕暱")
+    private Double coldwind;
+	/**绉熸埛id*/
+    @ApiModelProperty(value = "绉熸埛id")
+    private Integer tenantId;
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbInfoVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbInfoVo.java
index 886bfaa..1f2af1c 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbInfoVo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbInfoVo.java
@@ -6,6 +6,7 @@
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.ToString;
+import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -39,6 +40,11 @@
     @Excel(name = "鑻辨枃鍚�", width = 15)
     @ApiModelProperty(value = "鑻辨枃鍚�")
     private String english;
+    /**鑽潗鍒嗙被*/
+    @Excel(name = "鑽潗鍒嗙被", width = 15, dictTable = "dry_herb_type", dicText = "name", dicCode = "id")
+    @Dict(dictTable = "dry_herb_type", dicText = "name", dicCode = "id")
+    @ApiModelProperty(value = "鑽潗鍒嗙被")
+    private String type;
     /**鑽敤閮ㄤ綅*/
     @Excel(name = "鑽敤閮ㄤ綅", width = 15)
     @ApiModelProperty(value = "鑽敤閮ㄤ綅")
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formula.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formula.java
new file mode 100644
index 0000000..40d59b3
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formula.java
@@ -0,0 +1,24 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Data
+@XmlRootElement(name = "Formula")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class Formula {
+    @XmlElement(name = "BaseParam")
+    private BaseParam baseParam;
+    @XmlElement(name = "WaterParam")
+    private WaterParam waterParam;
+    @XmlElement(name = "TypeParam")
+    private TypeParam typeParam;
+    @XmlElement(name = "OffsetParam")
+    private OffsetParam offsetParam;
+
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formulas.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formulas.java
new file mode 100644
index 0000000..46b8439
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formulas.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.xml.bind.annotation.*;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@XmlRootElement(name = "Formulas")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class Formulas {
+    @XmlElement(name = "Formula")
+    private List<Formula> dryFormulaList = new ArrayList<>();
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/OffsetParam.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/OffsetParam.java
new file mode 100644
index 0000000..3f103c6
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/OffsetParam.java
@@ -0,0 +1,24 @@
+package org.jeecg.modules.dry.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Data
+@XmlRootElement(name = "OffsetParam")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class OffsetParam {
+
+    /**鍚按鐜囪ˉ鍋�*/
+    @XmlElement(name = "moisoffset")
+    @ApiModelProperty(value = "鍚按鐜囪ˉ鍋�")
+    private Double moisoffset;
+    /**鍐烽鏃堕暱*/
+    @XmlElement(name = "coldwind")
+    @ApiModelProperty(value = "鍐烽鏃堕暱")
+    private Double coldwind;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/StatisticsDataVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/StatisticsDataVo.java
new file mode 100644
index 0000000..9d696b6
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/StatisticsDataVo.java
@@ -0,0 +1,87 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+import lombok.ToString;
+import org.jeecg.modules.dry.entity.DryEquipment;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Data
+@ToString
+public class StatisticsDataVo {
+
+    /**宸ュ崟ID*/
+    private String orderId;
+    /**宸ュ崟鍙�*/
+    private String workorder;
+    /**閰嶆柟绱㈠紩*/
+    private Integer index;
+    /**鑽潗鍚嶇О*/
+    private String name;
+
+    /**绉熸埛ID*/
+    private Integer tenantid;
+    /**璁惧缂栧彿*/
+    private String machineid;
+
+    /**鏁呴殰**/
+    private String eqp_fault;
+
+    /**璁惧鎶ヨ**/
+    private String eqp_warning;
+
+    /**---------------------鐢熶骇璁板綍鐩稿叧瀛楁瀹氫箟---s-------------------------*/
+
+    private Boolean report_flag;       // 鎻愪氦鏍囧織
+
+    private String report_head_name;         // 鍝佸悕
+    private String report_head_batch   ;     //鎵规
+    private String report_head_num     ;     //鏁伴噺--16妗�/355.8Kg
+    private String report_head_machine ;     //璁惧
+    private String report_head_accepter;     //鎺ユ枡浜�
+    private Date report_head_date    ;     //鐢熶骇鏃ユ湡
+    private String report_head_leader  ;     //鐝粍闀�
+    private String report_head_techer  ;     //宸ヨ壓鍛�
+    //妫�鏌�
+    private Boolean report_check_field ;    //鐢熶骇鐜板満
+    private Boolean report_check_file  ;    //鎵ц鏂囦欢
+    private Boolean report_check_tag   ;    //鐗╂枡鏍囩ず
+    private Boolean report_check_tool  ;    //绉伴噺鍣ㄥ叿
+    private String report_check_man   ;    //妫�鏌ヤ汉
+    private Boolean report_check_status;    //妫�鏌ユ儏鍐�
+    private String report_check_qa ;     //QA
+    private String report_check_record    ;     //寮傚父璁板綍
+    //鐢熶骇
+    private Boolean report_product_view    ;    //澶栬妫�鏌�
+    private Boolean report_product_wind    ;    //鍚归
+    private Boolean report_product_sun     ;    //鏅�
+    private Boolean report_product_low_dry ;    //浣庢俯骞茬嚗
+    private Boolean report_product_dry     ;    //骞茬嚗
+    private String  report_product_start   ;     //寮�濮嬫椂闂�
+    private String  report_product_end     ;     //缁撴潫鏃堕棿
+    private Integer report_product_total   ;    //骞茬嚗鎬绘椂闂�
+    private Boolean report_product_check   ;    //骞茬嚗妫�鏌�
+    private String  report_product_man1    ;     //鎿嶄綔浜�
+    private String  report_product_man2    ;     //澶嶆牳浜�
+    private Double  report_product_weight  ;     //鎿嶄綔鍚庨噸閲�
+    private Double  report_product_waste   ;     //搴熸枡鏁伴噺
+    private Double  report_product_use     ;     //鏀剁巼
+    private String  report_product_qa      ;     //QA
+    //娓呭満
+    private Boolean report_clean_machine   ;    //璁惧娓呯悊
+    private Boolean report_clean_waste     ;    //搴熸枡娓呯悊
+    private Boolean report_clean_tool      ;    //宸ュ叿娓呯悊
+    private Boolean report_clean_door      ;    //闂ㄧ獥娓呯悊
+    private Boolean report_clean_box       ;    //绠变綋娓呯悊
+    private Boolean report_clean_record    ;    //鐢熶骇璁板綍娓呯悊
+    private Date report_clean_date      ;     //娓呭満鏃ユ湡
+    private String report_clean_man       ;     //娓呭満浜�
+    private Boolean report_clean_confirm   ;    //娓呭満纭
+    private String report_clean_qa        ;     //QA
+
+    /**---------------------鐢熶骇璁板綍鐩稿叧瀛楁瀹氫箟---e-------------------------*/
+
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/TypeParam.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/TypeParam.java
new file mode 100644
index 0000000..877286b
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/TypeParam.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.dry.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Data
+@XmlRootElement(name = "TypeParam")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class TypeParam {
+
+    /**鑽潗鍒嗙被*/
+    @XmlElement(name = "mtype")
+    @ApiModelProperty(value = "鑽潗鍒嗙被")
+    private Integer mtype;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/WaterParam.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/WaterParam.java
new file mode 100644
index 0000000..fbac2b7
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/WaterParam.java
@@ -0,0 +1,55 @@
+package org.jeecg.modules.dry.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Data
+@XmlRootElement(name = "WaterParam")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class WaterParam {
+    /**鎶曟枡閲忥紙绛愶級*/
+    @XmlElement(name = "weight1")
+    @ApiModelProperty(value = "鎶曟枡閲忥紙绛愶級")
+    private Double weight1;
+    /**鍒濆閲嶉噺*/
+    @XmlElement(name = "weight2")
+    @ApiModelProperty(value = "鍒濆閲嶉噺")
+    private Double weight2;
+    /**骞茬嚗鎬绘椂闂�*/
+    @XmlElement(name = "times")
+    @ApiModelProperty(value = "骞茬嚗鎬绘椂闂�")
+    private Integer times;
+    /**鐑娓╁害*/
+    @XmlElement(name = "temp1")
+    @ApiModelProperty(value = "鐑娓╁害")
+    private Double temp1;
+    /**鐜娓╁害*/
+    @XmlElement(name = "temp2")
+    @ApiModelProperty(value = "鐜娓╁害")
+    private Double temp2;
+    /**鐜婀垮害*/
+    @XmlElement(name = "temp3")
+    @ApiModelProperty(value = "鐜婀垮害")
+    private Double temp3;
+    /**鑽℃枡寤舵椂ms*/
+    @XmlElement(name = "delay")
+    @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
+    private Double delay;
+    /**缈绘枡娆℃暟*/
+    @XmlElement(name = "turntime")
+    @ApiModelProperty(value = "缈绘枡娆℃暟")
+    private Integer turntime;
+    /**鍒濆鍚按鐜�*/
+    @XmlElement(name = "moisture1")
+    @ApiModelProperty(value = "鍒濆鍚按鐜�")
+    private Double moisture1;
+    /**鐩爣鍚按鐜�*/
+    @XmlElement(name = "moisture3")
+    @ApiModelProperty(value = "鐩爣鍚按鐜�")
+    private Double moisture3;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java
index 44bed1e..550479b 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java
@@ -151,6 +151,7 @@
 	@RequiresPermissions("dry:dry_equipment:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> edit(@RequestBody DryEquipment dryEquipment) {
+		// 鍒犻櫎redis缂撳瓨
 		redisUtil.del(CacheConstants.RedisKeyEnum.EQP_MAP.getCode());
 		dryEquipmentService.updateById(dryEquipment);
 
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaController.java
index b9e46df..d6cc2c8 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaController.java
@@ -81,6 +81,7 @@
 		return Result.OK(pageList);
 	}
 
+
 	/**
 	 *   娣诲姞
 	 *
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaHisController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaHisController.java
new file mode 100644
index 0000000..24b54e0
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaHisController.java
@@ -0,0 +1,178 @@
+package org.jeecg.modules.dry.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.dry.entity.DryHerbFormulaHis;
+import org.jeecg.modules.dry.service.IDryHerbFormulaHisService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 閰嶆柟璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2024-08-19
+ * @Version: V1.0
+ */
+@Api(tags="閰嶆柟璁板綍")
+@RestController
+@RequestMapping("/dry/dryHerbFormulaHis")
+@Slf4j
+public class DryHerbFormulaHisController extends JeecgController<DryHerbFormulaHis, IDryHerbFormulaHisService> {
+	@Autowired
+	private IDryHerbFormulaHisService dryHerbFormulaHisService;
+	
+	/**
+	 * 鍒嗛〉鍒楄〃鏌ヨ
+	 *
+	 * @param dryHerbFormulaHis
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "閰嶆柟璁板綍-鍒嗛〉鍒楄〃鏌ヨ")
+	@ApiOperation(value="閰嶆柟璁板綍-鍒嗛〉鍒楄〃鏌ヨ", notes="閰嶆柟璁板綍-鍒嗛〉鍒楄〃鏌ヨ")
+	@GetMapping(value = "/list")
+	public Result<IPage<DryHerbFormulaHis>> queryPageList(DryHerbFormulaHis dryHerbFormulaHis,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<DryHerbFormulaHis> queryWrapper = QueryGenerator.initQueryWrapper(dryHerbFormulaHis, req.getParameterMap());
+		Page<DryHerbFormulaHis> page = new Page<DryHerbFormulaHis>(pageNo, pageSize);
+		IPage<DryHerbFormulaHis> pageList = dryHerbFormulaHisService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+	
+	/**
+	 *   娣诲姞
+	 *
+	 * @param dryHerbFormulaHis
+	 * @return
+	 */
+	@AutoLog(value = "閰嶆柟璁板綍-娣诲姞")
+	@ApiOperation(value="閰嶆柟璁板綍-娣诲姞", notes="閰嶆柟璁板綍-娣诲姞")
+	@RequiresPermissions("dry:dry_herb_formula_his:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody DryHerbFormulaHis dryHerbFormulaHis) {
+		dryHerbFormulaHisService.save(dryHerbFormulaHis);
+		return Result.OK("娣诲姞鎴愬姛锛�");
+	}
+	
+	/**
+	 *  缂栬緫
+	 *
+	 * @param dryHerbFormulaHis
+	 * @return
+	 */
+	@AutoLog(value = "閰嶆柟璁板綍-缂栬緫")
+	@ApiOperation(value="閰嶆柟璁板綍-缂栬緫", notes="閰嶆柟璁板綍-缂栬緫")
+	@RequiresPermissions("dry:dry_herb_formula_his:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody DryHerbFormulaHis dryHerbFormulaHis) {
+		dryHerbFormulaHisService.updateById(dryHerbFormulaHis);
+		return Result.OK("缂栬緫鎴愬姛!");
+	}
+	
+	/**
+	 *   閫氳繃id鍒犻櫎
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "閰嶆柟璁板綍-閫氳繃id鍒犻櫎")
+	@ApiOperation(value="閰嶆柟璁板綍-閫氳繃id鍒犻櫎", notes="閰嶆柟璁板綍-閫氳繃id鍒犻櫎")
+	@RequiresPermissions("dry:dry_herb_formula_his:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		dryHerbFormulaHisService.removeById(id);
+		return Result.OK("鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 *  鎵归噺鍒犻櫎
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "閰嶆柟璁板綍-鎵归噺鍒犻櫎")
+	@ApiOperation(value="閰嶆柟璁板綍-鎵归噺鍒犻櫎", notes="閰嶆柟璁板綍-鎵归噺鍒犻櫎")
+	@RequiresPermissions("dry:dry_herb_formula_his:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.dryHerbFormulaHisService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+	}
+	
+	/**
+	 * 閫氳繃id鏌ヨ
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "閰嶆柟璁板綍-閫氳繃id鏌ヨ")
+	@ApiOperation(value="閰嶆柟璁板綍-閫氳繃id鏌ヨ", notes="閰嶆柟璁板綍-閫氳繃id鏌ヨ")
+	@GetMapping(value = "/queryById")
+	public Result<DryHerbFormulaHis> queryById(@RequestParam(name="id",required=true) String id) {
+		DryHerbFormulaHis dryHerbFormulaHis = dryHerbFormulaHisService.getById(id);
+		if(dryHerbFormulaHis==null) {
+			return Result.error("鏈壘鍒板搴旀暟鎹�");
+		}
+		return Result.OK(dryHerbFormulaHis);
+	}
+
+    /**
+    * 瀵煎嚭excel
+    *
+    * @param request
+    * @param dryHerbFormulaHis
+    */
+    @RequiresPermissions("dry:dry_herb_formula_his:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, DryHerbFormulaHis dryHerbFormulaHis) {
+        return super.exportXls(request, dryHerbFormulaHis, DryHerbFormulaHis.class, "閰嶆柟璁板綍");
+    }
+
+    /**
+      * 閫氳繃excel瀵煎叆鏁版嵁
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    @RequiresPermissions("dry:dry_herb_formula_his:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, DryHerbFormulaHis.class);
+    }
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
index 1a2c405..c88e53a 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
@@ -148,7 +148,22 @@
 		return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
 	}
 
-	/**
+	 /**
+	  * 鎵归噺涓嬪彂宸ュ崟
+	  * @param ids
+	  * @return
+	  */
+	 @AutoLog(value = "骞茬嚗宸ュ崟-鎵归噺涓嬪彂")
+	 @ApiOperation(value="骞茬嚗宸ュ崟-鎵归噺涓嬪彂", notes="骞茬嚗宸ュ崟-鎵归噺涓嬪彂")
+	 @RequiresPermissions("dry:dry_order:edit")
+	 @PostMapping(value = "/sendBatch")
+	 public Result<String> sendBatch(@RequestParam(name="ids",required=true) String ids) {
+		 this.dryOrderService.sendByIds(Arrays.asList(ids.split(",")));
+		 return Result.OK("鎵归噺涓嬪彂鎴愬姛!");
+	 }
+
+
+	 /**
 	 * 閫氳繃id鏌ヨ
 	 *
 	 * @param id
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
index b261d83..ff98cb4 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -4,24 +4,34 @@
 import ai.djl.modality.Classifications;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 
-import org.jeecg.modules.dry.entity.DryHerbInfo;
+import org.jeecg.common.config.TenantContext;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.IpUtils;
+import org.jeecg.common.util.SpringContextUtils;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
+import org.jeecg.modules.dry.entity.*;
 import org.jeecg.modules.dry.service.*;
 
 //import org.jeecg.modules.dry.util.HerbUtil;
-import org.jeecg.modules.dry.vo.CommandMessageVo;
-import org.jeecg.modules.dry.vo.DryHerbInfoVo;
-import org.jeecg.modules.dry.vo.RealTimeDataVo;
+import org.jeecg.modules.dry.vo.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
 import java.io.InputStream;
+import java.io.StringWriter;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -36,11 +46,27 @@
     @Autowired
     private IDryRealTimeDataService dryRealTimeDataService;
 
+    @Autowired
+    private IDryHerbFormulaService dryHerbFormulaService;
+
+    @Autowired
+    private IDryHerbInfoService dryHerbInfoService;
+
+    @Autowired
+    private IDryEqpTypeService dryEqpTypeService;
+
 //    @Autowired
 //    private HerbUtil herbUtil;
 
     @Autowired
     private IDryHerbInfoService herbInfoService;
+
+    @Autowired
+    private IDryHerbFormulaHisService dryHerbFormulaHisService;
+
+    @Autowired
+    private IDryEquipmentService dryEquipmentService;
+
 
 
     @ApiOperation(value="娴嬭瘯", notes="杩斿洖Hello")
@@ -123,5 +149,103 @@
 //            return Result.error("AI璇嗗埆鏈嶅姟寮傚父");
 //        }
 //    }
+    @ApiOperation(value="骞茬嚗閰嶆柟鑾峰彇", notes="骞茬嚗閰嶆柟涓嬪彂")
+    @GetMapping(value = "/queryFormula")
+    public Result<String> queryFormulaByEqpType(Integer tenantId, String eqpCode) throws JAXBException {
+        //鑾峰彇request
+        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
+        // 鑾峰彇璇锋眰涓绘満鐨処P鍦板潃
+        String ip = IpUtils.getIpAddr(request);
+        DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(tenantId+ "", eqpCode);
+        if (dryEquipment != null) {
+            if (dryEquipment.getIp().equals(ip)) {
+            } else {
+                return Result.error("璁惧IP鍦板潃鏈厤缃細" + ip);
+            }
+        } else {
+            return Result.error("璁惧涓嶅瓨鍦�");
+        }
+            LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
+            queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
+                    .eq(DryHerbFormula::getTenantId, tenantId);
+            List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
+            Formulas formulas = new Formulas();
+            list.forEach(item -> {
+                DryHerbInfo byId = dryHerbInfoService.getById(item.getHerbId());
+                if (byId!=null) {
+                    item.setPinyin(byId.getPinyin());
+                    item.setName(byId.getName());
+                }
+                Formula formula = new Formula();
+                BaseParam baseParam = new BaseParam();
+                WaterParam waterParam = new WaterParam();
+                TypeParam typeParam = new TypeParam();
+                OffsetParam offsetParam = new OffsetParam();
+                baseParam.setCode(item.getCode());
+                baseParam.setIndex(item.getCode());
+                baseParam.setName(item.getName());
+                baseParam.setAb(item.getName());
+                baseParam.setTyp(item.getCategory());
+                waterParam.setDelay(Double.valueOf(item.getDelay()));
+                waterParam.setMoisture3(item.getTarget());
+                waterParam.setWeight1(Double.valueOf(item.getFeed()));
+                waterParam.setTimes(item.getEt());
+                waterParam.setTemp1(item.getWindTemp());
+                waterParam.setTemp2(item.getEnvTemp());
+                waterParam.setTemp3(item.getEnvHum());
+                waterParam.setTurntime(item.getTurn());
+                typeParam.setMtype(Integer.valueOf(item.getCategory()));
+                offsetParam.setMoisoffset(item.getMoisOffset());
+                offsetParam.setColdwind(Double.valueOf(item.getCoolingDuration()));
+
+                formula.setBaseParam(baseParam);
+                formula.setWaterParam(waterParam);
+                formula.setTypeParam(typeParam);
+                formula.setOffsetParam(offsetParam);
+                formulas.getDryFormulaList().add(formula);
+            });
+            // 鎶妚os杞崲鎴恱ml
+        // 鍒涘缓JAXBContext瀹炰緥
+        JAXBContext jaxbContext = JAXBContext.newInstance(Formulas.class);
+
+        // 鍒涘缓Marshaller瀹炰緥
+        Marshaller marshaller = jaxbContext.createMarshaller();
+
+        // 璁剧疆鏄惁鏍煎紡鍖栬緭鍑�
+        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
+
+        // 灏嗗璞″簭鍒楀寲鍒板瓧绗︿覆
+        StringWriter writer = new StringWriter();
+        marshaller.marshal(formulas, writer);
+
+            return Result.OK("璇锋眰鎴愬姛",writer.toString());
+
+
+    }
+
+    @ApiOperation(value="骞茬嚗閰嶆柟涓婃姤", notes="骞茬嚗閰嶆柟璁板綍涓婃姤")
+    @PostMapping(value = "/sendFormulaHistory")
+    public Result<?> sendFormulaHistory(DryHerbFormulaHisVo hisVo) {
+        //鑾峰彇request
+        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
+        // 鑾峰彇璇锋眰涓绘満鐨処P鍦板潃
+        String ip = IpUtils.getIpAddr(request);
+        DryHerbFormulaHis his = new DryHerbFormulaHis();
+        BeanUtil.copyProperties(hisVo, his);
+        his.setFormulaIndex(hisVo.getIndex());
+        DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(hisVo.getTenantId() + "", hisVo.getEqp());
+        if (dryEquipment != null) {
+            if (dryEquipment.getIp().equals(ip)) {
+                his.setEqpId(dryEquipment.getId());
+            } else {
+                return Result.error("璁惧IP鍦板潃鏈厤缃細" + ip);
+            }
+
+        } else {
+            return Result.error("璁惧涓嶅瓨鍦�");
+        }
+        dryHerbFormulaHisService.save(his);
+        return Result.OK("淇濆瓨鎴愬姛");
+    }
 
 }
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryHerbFormulaHisMapper.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryHerbFormulaHisMapper.java
new file mode 100644
index 0000000..469294b
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryHerbFormulaHisMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.dry.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.dry.entity.DryHerbFormulaHis;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 閰嶆柟璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2024-08-19
+ * @Version: V1.0
+ */
+public interface DryHerbFormulaHisMapper extends BaseMapper<DryHerbFormulaHis> {
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryHerbFormulaHisMapper.xml b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryHerbFormulaHisMapper.xml
new file mode 100644
index 0000000..6344655
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryHerbFormulaHisMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.dry.mapper.DryHerbFormulaHisMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryHerbFormulaHisService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryHerbFormulaHisService.java
new file mode 100644
index 0000000..a5c6995
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryHerbFormulaHisService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.dry.service;
+
+import org.jeecg.modules.dry.entity.DryHerbFormulaHis;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 閰嶆柟璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2024-08-19
+ * @Version: V1.0
+ */
+public interface IDryHerbFormulaHisService extends IService<DryHerbFormulaHis> {
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
index 455da56..b71fbff 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
@@ -21,4 +21,6 @@
     List<String> queryMonthOverview(String month, int tenantId);
 
     void queryRecentOrderAvg(DryOrderVo orderVo);
+
+    void sendByIds(List<String> list);
 }
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
index e977ced..713ad91 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
@@ -3,6 +3,7 @@
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.dry.vo.CommandMessageVo;
 import org.jeecg.modules.dry.vo.RealTimeDataVo;
+import org.jeecg.modules.dry.vo.StatisticsDataVo;
 
 public interface IDryRealTimeDataService {
     Result<?> realTimeDataHandle(RealTimeDataVo realTimeDataVo);
@@ -12,4 +13,6 @@
     Result<?> sendSocketMsg(CommandMessageVo msgVo);
 
     Result<?> queryWorkshopStatistics(RealTimeDataVo realTimeDataVo);
+
+    Result<?> statisticsDataHandle(StatisticsDataVo statsDataVo);
 }
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java
index 794a923..9644a12 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java
@@ -31,6 +31,7 @@
             List<DryEquipment> list = this.list();
             for (DryEquipment equipment : list) {
                 redisUtil.hset(CacheConstants.RedisKeyEnum.EQP_MAP.getCode(),equipment.getTenantId()+equipment.getCode(),equipment);
+                // 璁剧疆杩囨湡鏃堕棿
                 if ((equipment.getTenantId()+equipment.getCode()).equals(tenantId + equipmentId)) {
                     dryEquipment = equipment;
                 }
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryHerbFormulaHisServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryHerbFormulaHisServiceImpl.java
new file mode 100644
index 0000000..cc993c6
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryHerbFormulaHisServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.dry.service.impl;
+
+import org.jeecg.modules.dry.entity.DryHerbFormulaHis;
+import org.jeecg.modules.dry.mapper.DryHerbFormulaHisMapper;
+import org.jeecg.modules.dry.service.IDryHerbFormulaHisService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 閰嶆柟璁板綍
+ * @Author: jeecg-boot
+ * @Date:   2024-08-19
+ * @Version: V1.0
+ */
+@Service
+public class DryHerbFormulaHisServiceImpl extends ServiceImpl<DryHerbFormulaHisMapper, DryHerbFormulaHis> implements IDryHerbFormulaHisService {
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
index a14f1e9..5f7b69b 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.dry.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.util.RedisUtil;
@@ -58,4 +59,11 @@
         }
 
     }
+
+    @Override
+    public void sendByIds(List<String> list) {
+        LambdaUpdateWrapper<DryOrder> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.in(DryOrder::getId,list).set(DryOrder::getOrderStatus,1);
+        baseMapper.update(null,wrapper);
+    }
 }
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
index fa4ac48..c2c7ff0 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
@@ -49,6 +49,9 @@
     private IDryHerbService herbService;
 
     @Autowired
+    private IDryHerbFormulaService dryHerbFormulaService;
+
+    @Autowired
     private IDryEquipmentService equipmentService;
 
     @Autowired
@@ -233,13 +236,13 @@
     private DryOrderVo saveNewOrder(RealTimeDataVo realTimeDataVo) {
         DryOrderVo orderVo;
         // 鏌ヨ鑽潗
-        DryHerb herb =  queryHerbByIndexTenant(realTimeDataVo);
+        DryHerbFormula herbFormula =  queryHerbByIndexTenant(realTimeDataVo);
         // 鏌ヨ璁惧
         DryEquipment equ = queryEquipmentByCodeTenant(realTimeDataVo);
 
         // 鍒涘缓鏂板伐鍗�
         orderVo = new DryOrderVo(realTimeDataVo);
-        orderVo.setHerbId(herb.getId());
+        orderVo.setHerbId(herbFormula.getId());
         orderVo.setEquId(equ.getId());
         DryOrder dryOrder = BeanUtil.toBean(orderVo, DryOrder.class);
         boolean save = dryOrderService.save(dryOrder);
@@ -269,15 +272,15 @@
      * @param realTimeDataVo
      * @return
      */
-    private DryHerb queryHerbByIndexTenant(RealTimeDataVo realTimeDataVo) {
-        LambdaQueryWrapper<DryHerb> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(DryHerb::getTenantId, realTimeDataVo.getTenantid());
-        queryWrapper.eq(DryHerb::getCode, realTimeDataVo.getIndex());
-        DryHerb one = herbService.getOne(queryWrapper);
-        if (one == null) {
-            one = new DryHerb(realTimeDataVo);
-            herbService.save(one);
-        }
+    private DryHerbFormula queryHerbByIndexTenant(RealTimeDataVo realTimeDataVo) {
+        LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(DryHerbFormula::getTenantId, realTimeDataVo.getTenantid());
+        queryWrapper.eq(DryHerbFormula::getCode, realTimeDataVo.getIndex());
+        DryHerbFormula one = dryHerbFormulaService.getOne(queryWrapper);
+//        if (one == null) {
+//            one = new DryHerb(realTimeDataVo);
+//            herbService.save(one);
+//        }
         return one;
     }
 
@@ -431,4 +434,9 @@
         //redisUtil.get(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode()
         return Result.OK(orderVo);
     }
+
+    @Override
+    public Result<?> statisticsDataHandle(StatisticsDataVo statsDataVo) {
+        return null;
+    }
 }
diff --git a/jrebel-classpath-17592.jar b/jrebel-classpath-17592.jar
new file mode 100644
index 0000000..66f179e
--- /dev/null
+++ b/jrebel-classpath-17592.jar
Binary files differ

--
Gitblit v1.9.3