diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/TemperatureDetailController.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/TemperatureDetailController.java
new file mode 100644
index 0000000..ba87b61
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/controller/TemperatureDetailController.java
@@ -0,0 +1,44 @@
+package com.ecell.internationalize.system.controller;
+import com.ecell.internationalize.common.core.utils.locale.LocaleUtil;
+import com.ecell.internationalize.common.core.web.domain.AjaxResult;
+import com.ecell.internationalize.common.system.constant.FieldConstant;
+import com.ecell.internationalize.system.service.HeartTemperatureRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ *
+ * 前端控制器
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+@Api(value="设备体温",tags={"设备体温接口"})
+@RestController
+@RequestMapping("/temperature_detail")
+public class TemperatureDetailController {
+ @Autowired
+ private HeartTemperatureRecordService heartTemperatureRecordService;
+ /**
+ * 设备体温条件分页查询
+ * @Author liy
+ * @Date 2022/7/11 15:38
+ * @param map 分页条件查询体
+ * @Return AjaxResult
+ */
+ @ApiOperation("条件分页查询设备体温")
+ @PostMapping("temperature/detail/list")
+ public AjaxResult queryAll(@RequestBody Map map){
+ map.put("type","2");
+ return AjaxResult.success(LocaleUtil.getMessage(FieldConstant.MESSAGES_SUCCESS),heartTemperatureRecordService.findAllByPage(map));
+ }
+}
+
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/TemperatureDetail.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/TemperatureDetail.java
new file mode 100644
index 0000000..0b193ca
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/TemperatureDetail.java
@@ -0,0 +1,74 @@
+package com.ecell.internationalize.system.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ *
+ *
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("temperature_detail")
+public class TemperatureDetail{
+
+private static final long serialVersionUID=1L;
+
+ /**
+ * 主键Id
+ */
+ @TableId("id")
+ private String id;
+
+ /**
+ * 设备iMei
+ */
+ @TableField("i_mei")
+ private String mei;
+
+ /**
+ * 体温数据
+ */
+ private Double temperature;
+
+ /**
+ * 姓名
+ */
+ @TableField(exist = false)
+ private String name;
+
+ /**
+ * 创建人
+ */
+ private String createUser;
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time",fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**
+ * 修改人
+ */
+ private String updateUser;
+ /**
+ * 修改时间
+ */
+ @TableField(value = "update_time",fill = FieldFill.UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/TempPage.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/TempPage.java
new file mode 100644
index 0000000..e7576ad
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/TempPage.java
@@ -0,0 +1,31 @@
+package com.ecell.internationalize.system.entity.api.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Title: ApiOutwardPage
+ * @Author: liy
+ * @Date: 2023/3/8 14:56
+ * @Description:
+ * @Version:1.0
+ */
+@Data
+public class TempPage {
+ @ApiModelProperty(example = "设备IMEI")
+ private String imei;
+
+ @ApiModelProperty(example = "开始日期")
+ private String startDate;
+
+ @ApiModelProperty(example = "结束日期")
+ private String endDate;
+
+// @ApiModelProperty(example = "每页展示的条数")
+// private Integer pageSize;
+//
+// @ApiModelProperty(example = "当前的页码")
+// private Integer current;
+
+}
+
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/UpdateDeviceAlarmDto.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/UpdateDeviceAlarmDto.java
new file mode 100644
index 0000000..c9038b5
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/api/dto/UpdateDeviceAlarmDto.java
@@ -0,0 +1,40 @@
+package com.ecell.internationalize.system.entity.api.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 闹钟设置表
+ *
+ *
+ * @author liy
+ * @since 2022-09-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class UpdateDeviceAlarmDto implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+ @ApiModelProperty(example = "主键Id")
+ private String id;
+
+ @ApiModelProperty(example = "标签")
+ private String tag;
+
+ @ApiModelProperty(example = "响铃时间")
+ private String alarmTime;
+
+ @ApiModelProperty(example = "重复星期数为'0', '1'组成的7位长度字符串, 表示周一至周日是否有效,eg: '0000011'为周六日有效, '1110000'为周一二三有效")
+ private String alarmWeek;
+
+ @ApiModelProperty(example = "设备imei")
+ private String imei;
+
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/dto/TotalTypeDto.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/dto/TotalTypeDto.java
new file mode 100644
index 0000000..f286a0e
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/dto/TotalTypeDto.java
@@ -0,0 +1,28 @@
+package com.ecell.internationalize.system.entity.dto;
+import com.ecell.internationalize.common.system.entity.VersionRatioHistory;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Title: TotalTypeDto
+ * @Author: liy
+ * @Date: 2022/11/2 15:24
+ * @Description:
+ * @Version:1.0
+ */
+@Data
+public class TotalTypeDto {
+ @ApiModelProperty(example = "统计类型(1:注册总数,2:今日注册数,3:今日活跃数,4:前一个月用户活跃数,5:前一个月每天的注册数)")
+ private String type;
+
+ @ApiModelProperty(example="数量")
+ private Integer total;
+
+ @ApiModelProperty(example="历史用户活跃数(type为4时存在该值)")
+ private List list;
+
+ @ApiModelProperty(example="前一个月每天的注册数(type为5时存在该值)")
+ private List registerList;
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/dto/TrackDTO.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/dto/TrackDTO.java
new file mode 100644
index 0000000..78f2e0a
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/dto/TrackDTO.java
@@ -0,0 +1,15 @@
+package com.ecell.internationalize.system.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @author borui
+ */
+@Data
+public class TrackDTO {
+ private String imei;
+ private String start;
+ private String firmId;
+ private String agentId;
+
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/vo/TrackVO.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/vo/TrackVO.java
new file mode 100644
index 0000000..93280cf
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/vo/TrackVO.java
@@ -0,0 +1,13 @@
+package com.ecell.internationalize.system.entity.vo;
+
+import lombok.Data;
+
+/**
+ * @author borui
+ */
+@Data
+public class TrackVO {
+ private String imei;
+ private String longitude;
+ private String latitude;
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/vo/TreeNode.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/vo/TreeNode.java
new file mode 100644
index 0000000..b4179c5
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/entity/vo/TreeNode.java
@@ -0,0 +1,38 @@
+package com.ecell.internationalize.system.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Title: TreeNode
+ * @Author: liy
+ * @Date: 2022/7/19 9:20
+ * @Description:
+ * @Version:1.0
+ */
+@Data
+@ApiModel(value = "树形节点")
+public class TreeNode {
+ @ApiModelProperty(value = "当前节点id")
+ protected String id;
+
+ @ApiModelProperty(value = "父节点id")
+ protected String parentId;
+
+ @ApiModelProperty(value = "子节点列表")
+ protected List children ;
+
+ /**
+ * 是否包含子节点
+ *
+ * @since 3.7
+ */
+ private Boolean hasChildren;
+
+ public void add(TreeNode node) {
+ children.add(node);
+ }
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/TemperatureDetailMapper.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/TemperatureDetailMapper.java
new file mode 100644
index 0000000..ec2799e
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/mapper/TemperatureDetailMapper.java
@@ -0,0 +1,28 @@
+package com.ecell.internationalize.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ecell.internationalize.system.entity.TemperatureDetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+public interface TemperatureDetailMapper extends BaseMapper {
+ /**
+ * 体温条件分页查询
+ * @Author liy
+ * @Date 2022/7/11 15:42
+ * @param page 分页
+ * @param map 查询条件
+ * @return Page
+ */
+ Page getList(@Param("page") Page page, @Param("map") Map map);
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/TemperatureConfigService.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/TemperatureConfigService.java
new file mode 100644
index 0000000..10b5ac6
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/TemperatureConfigService.java
@@ -0,0 +1,16 @@
+package com.ecell.internationalize.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ecell.internationalize.system.entity.TemperatureConfig;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+public interface TemperatureConfigService extends IService {
+
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/TemperatureDetailService.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/TemperatureDetailService.java
new file mode 100644
index 0000000..f386fe0
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/TemperatureDetailService.java
@@ -0,0 +1,28 @@
+package com.ecell.internationalize.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ecell.internationalize.system.entity.TemperatureDetail;
+
+import java.util.Map;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+public interface TemperatureDetailService extends IService {
+ /**
+ * 设备体温条件分页查询
+ * @Author liy
+ * @Date 2022/7/11 15:42
+ * @param map 分页查询体
+ * @return IPage
+ */
+ IPage findAllByPage(Map map);
+
+
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/UserService.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/UserService.java
new file mode 100644
index 0000000..9c0259e
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/UserService.java
@@ -0,0 +1,45 @@
+package com.ecell.internationalize.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ecell.internationalize.common.system.entity.User;
+import com.ecell.internationalize.common.system.entity.VersionRatioHistory;
+import com.ecell.internationalize.system.entity.dto.RegisterDto;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * 用户 服务类
+ *
+ * @author liy
+ * @since 2022-07-07
+ */
+public interface UserService extends IService {
+ /**
+ * 用户信息条件分页查询
+ * @Author liy
+ * @Date 2022/7/7 16:42
+ * @param map 分页查询体
+ * @return IPage
+ */
+ IPage queryList(Map map);
+ /**
+ * 用户操作条件分页查询
+ * @Author liy
+ * @Date 2022/7/8 16:42
+ * @param map 分页查询体
+ * @return IPage
+ */
+ IPage queryOperatorList(Map map);
+
+ List queryChannel();
+
+ int activeCount(Date startTime, Date endTime);
+
+ List monthActiveCount(String currentDate, String preMonthDate);
+
+ List monthRegisterCount(String currentDate, String preMonthDate);
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/TemperatureConfigServiceImpl.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/TemperatureConfigServiceImpl.java
new file mode 100644
index 0000000..d9bcf33
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/TemperatureConfigServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ecell.internationalize.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ecell.internationalize.system.entity.TemperatureConfig;
+import com.ecell.internationalize.system.mapper.TemperatureConfigMapper;
+import com.ecell.internationalize.system.service.TemperatureConfigService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+@Service
+public class TemperatureConfigServiceImpl extends ServiceImpl implements TemperatureConfigService {
+
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/TemperatureDetailServiceImpl.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/TemperatureDetailServiceImpl.java
new file mode 100644
index 0000000..10ec9a7
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/TemperatureDetailServiceImpl.java
@@ -0,0 +1,39 @@
+package com.ecell.internationalize.system.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ecell.internationalize.common.system.constant.FieldConstant;
+import com.ecell.internationalize.system.entity.TemperatureDetail;
+import com.ecell.internationalize.system.mapper.TemperatureDetailMapper;
+import com.ecell.internationalize.system.service.TemperatureDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author liy
+ * @since 2022-07-11
+ */
+@Service
+public class TemperatureDetailServiceImpl extends ServiceImpl implements TemperatureDetailService {
+ @Autowired
+ private TemperatureDetailMapper temperatureDetailMapper;
+ /**
+ * 设备体温条件分页查询
+ * @Author liy
+ * @Date 2022/7/11 15:42
+ * @param map 分页查询体
+ * @return IPage
+ */
+ @Override
+ public IPage findAllByPage(Map map) {
+ Page page=new Page<>(Integer.parseInt(map.get(FieldConstant.CURRENT).toString()),Integer.parseInt(map.get(FieldConstant.SIZE).toString()));
+ return temperatureDetailMapper.getList(page,map);
+ }
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/UserServiceImpl.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..b742f9d
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/service/impl/UserServiceImpl.java
@@ -0,0 +1,95 @@
+package com.ecell.internationalize.system.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ecell.internationalize.common.system.constant.FieldConstant;
+import com.ecell.internationalize.common.system.entity.User;
+import com.ecell.internationalize.common.system.entity.VersionRatioHistory;
+import com.ecell.internationalize.system.entity.dto.RegisterDto;
+import com.ecell.internationalize.system.mapper.UserMapper;
+import com.ecell.internationalize.system.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ *
+ * 用户 服务实现类
+ *
+ * @author liy
+ * @since 2022-07-07
+ */
+@Service
+public class UserServiceImpl extends ServiceImpl implements UserService {
+ @Autowired
+ private UserMapper userMapper;
+ /**
+ * 用户信息条件分页查询
+ * @Author liy
+ * @Date 2022/7/7 16:42
+ * @param map 分页查询体
+ * @return IPage
+ */
+ @Override
+ public IPage queryList(Map map) {
+ Page page=new Page<>(Integer.parseInt(map.get(FieldConstant.CURRENT).toString()),Integer.parseInt(map.get(FieldConstant.SIZE).toString()));
+ return userMapper.getList(page, map);
+ }
+ /**
+ * 用户操作条件分页查询
+ * @Author liy
+ * @Date 2022/7/8 16:42
+ * @param map 分页查询体
+ * @return IPage
+ */
+ @Override
+ public IPage queryOperatorList(Map map) {
+ Page page=new Page<>(Integer.parseInt(map.get(FieldConstant.CURRENT).toString()),Integer.parseInt(map.get(FieldConstant.SIZE).toString()));
+ return userMapper.getList(page, map);
+ }
+
+ @Override
+ public List queryChannel() {
+ return userMapper.queryChannel();
+ }
+
+ @Override
+ public int activeCount(Date startTime, Date endTime) {
+ return userMapper.activeCount(startTime,endTime);
+ }
+
+ @Override
+ public List monthActiveCount(String currentDate, String preMonthDate) {
+ return userMapper.monthActiveCount(currentDate,preMonthDate);
+ }
+
+ @Override
+ public List monthRegisterCount(String currentDate, String preMonthDate) {
+ return userMapper.monthRegisterCount(currentDate,preMonthDate);
+ }
+ /**
+ * 多条件查询
+ * @Author: liy
+ * @Date: 2022/7/8 17:39
+ */
+// private LambdaQueryWrapper conditionMap(Map map){
+// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+// if (map.containsKey(FieldConstant.PHONE)&&null!=map.get(FieldConstant.PHONE).toString()){
+// queryWrapper.eq(User::getPhone,map.get(FieldConstant.PHONE).toString());
+// }
+// if (map.containsKey(FieldConstant.I_MEI)&&null!=map.get(FieldConstant.I_MEI).toString()){
+// queryWrapper.eq(User::getIMei,map.get(FieldConstant.I_MEI).toString());
+// }
+// if (map.containsKey(FieldConstant.CHANNEL)&&null!=map.get(FieldConstant.CHANNEL).toString()){
+// queryWrapper.eq(User::getChannel,map.get(FieldConstant.CHANNEL).toString());
+// }
+// if (map.containsKey(FieldConstant.STATUS)&&null!=map.get(FieldConstant.STATUS).toString()){
+// queryWrapper.eq(User::getStatus,map.get(FieldConstant.STATUS).toString());
+// }
+// return queryWrapper;
+// }
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/utils/TreeUtil.java b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/utils/TreeUtil.java
new file mode 100644
index 0000000..828ab5a
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/java/com/ecell/internationalize/system/utils/TreeUtil.java
@@ -0,0 +1,68 @@
+package com.ecell.internationalize.system.utils;
+
+import com.ecell.internationalize.system.entity.FirmManage;
+import com.ecell.internationalize.system.entity.vo.FirmTree;
+import com.ecell.internationalize.system.entity.vo.TreeNode;
+import lombok.experimental.UtilityClass;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Title: TreeUtil
+ * @Author: liy
+ * @Date: 2022/7/19 9:16
+ * @Description:
+ * @Version:1.0
+ */
+@UtilityClass
+public class TreeUtil {
+ /**
+ * 两层循环实现建树
+ * @param treeNodes 传入的树节点列表
+ * @return
+ */
+ public List build(List treeNodes, Object root) {
+
+ List trees = new ArrayList<>();
+
+ for (T treeNode : treeNodes) {
+
+ if (root.equals(treeNode.getParentId())) {
+ trees.add(treeNode);
+ }
+
+ for (T it : treeNodes) {
+ if (it.getParentId().equals(treeNode.getId())) {
+ if (treeNode.getChildren() == null) {
+ treeNode.setChildren(new ArrayList<>());
+ }
+ //treeNode.setHasChildren(true);
+ treeNode.add(it);
+ }
+ }
+ }
+ return trees;
+ }
+
+ /**
+ * 通过FirmManage创建树形节点
+ * @param firmManages
+ * @param root
+ * @return
+ */
+ public List buildFirmTree(List firmManages, String root) {
+ List trees = new ArrayList<>();
+ FirmTree node;
+ for (FirmManage firmManage : firmManages) {
+ node = new FirmTree();
+ node.setId(firmManage.getFirmId());
+ node.setParentId(firmManage.getParentId());
+ node.setFirmName(firmManage.getFirmName());
+ node.setCreateTime(firmManage.getCreateTime());
+ node.setHasChildren(false);
+ trees.add(node);
+ }
+ return TreeUtil.build(trees, root);
+ }
+}
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/TemperatureConfigMapper.xml b/ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/TemperatureConfigMapper.xml
new file mode 100644
index 0000000..2827ba6
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/TemperatureConfigMapper.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/TemperatureDetailMapper.xml b/ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/TemperatureDetailMapper.xml
new file mode 100644
index 0000000..4cb7e1a
--- /dev/null
+++ b/ecell-internationalize/ecell-internationalize-system/src/main/resources/com/ecell/internationalize/system/mapper/TemperatureDetailMapper.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+