干燥机配套车间生产管理系统/云平台服务端
baoshiwei
2024-10-25 a3344947e1ff54fcae8f09140ab0d05e2ba26f31
新增配方记录功能并优化相关实体和VO
已添加15个文件
已修改13个文件
979 ■■■■■ 文件已修改
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormula.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbFormulaHis.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerbInfo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/BaseParam.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbFormulaHisVo.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryHerbInfoVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formula.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/Formulas.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/OffsetParam.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/StatisticsDataVo.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/TypeParam.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/WaterParam.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryEquipmentController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHerbFormulaHisController.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryHerbFormulaHisMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryHerbFormulaHisMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryHerbFormulaHisService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryEquipmentServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryHerbFormulaHisServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jrebel-classpath-17592.jar 补丁 | 查看 | 原始文档 | blame | 历史
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")
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;
}
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 = "药用部位")
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;
    /**操作人*/
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;
}
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;
}
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 = "药用部位")
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;
}
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<>();
}
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;
}
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-------------------------*/
}
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;
}
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;
}
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);
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);
    }
    /**
     *   æ·»åŠ 
     *
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);
    }
}
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
@@ -149,6 +149,21 @@
    }
    /**
      * æ‰¹é‡ä¸‹å‘工单
      * @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
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();
        // èŽ·å–è¯·æ±‚ä¸»æœºçš„IP地址
        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);
            });
            // æŠŠvos转换成xml
        // åˆ›å»º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();
        // èŽ·å–è¯·æ±‚ä¸»æœºçš„IP地址
        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("保存成功");
    }
}
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> {
}
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>
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> {
}
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);
}
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);
}
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;
                }
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 {
}
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);
    }
}
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;
    }
}
jrebel-classpath-17592.jar
Binary files differ