当前位置:网站首页>internship:数据库表和建立的实体类及对应的枚举类之间的联系示例
internship:数据库表和建立的实体类及对应的枚举类之间的联系示例
2022-08-02 03:53:00 【ahyo】
数据库表:
发现tunnel_id和duan字段存在相同的情况,这是为了处理一种情况 同一类有多个分类 且分类又有分支。比如隧道是一类别事物 那么隧道有多个有命名存在的实体 每个实体又有各自的属性类别。这样便可以开始业务的内容。
依据表建类:
注意注解的使用 该类是能复用的。
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("表名")
@ApiModel(value="对象", description="信息")
public class BizTunnelConfig extends Model<BizTunnelConfig> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "所属隧道id")
@TableField("tunnel_id")
private Integer tunnelId;
@ApiModelProperty(value = "区域名称")
@TableField("name")
private String name;
@ApiModelProperty(value = "enter/exit/pdx/pdd/xjx/xjd")
@TableField("duan")
private String duan;
@ApiModelProperty(value = "left/right")
@TableField("direction")
private String direction;
/** * 隧道固有属性 */
@ApiModelProperty(value = "桩号前缀")
@TableField("mark_prefix")
private String markPrefix;
@ApiModelProperty(value = "隧道长度")
@TableField("tunnel_length")
private Double tunnelLength;
@ApiModelProperty(value = "当前掌子面总进尺")
@TableField("zzm_jinchi")
private Double zzmJinchi;
@ApiModelProperty(value = "最新掌子面桩号")
@TableField("zzm_mark")
private Double zzmMark;
@ApiModelProperty(value = "")
@TableField(exist = false)
private String zzmMarkStr;
@ApiModelProperty(value = "掌子面进尺/洞长的比例,百分数0-100")
@TableField("zzm_percent")
private Double zzmPercent;
@ApiModelProperty(value = "当前进尺")
@TableField("erc_jinchi")
private Double ercJinchi;
@ApiModelProperty(value = "")
@TableField("erc_mark")
private Double ercMark;
@ApiModelProperty(value = "")
@TableField(exist = false)
private String ercMarkStr;
@ApiModelProperty(value = "二衬进尺/洞长的比例,百分数0-100")
@TableField("erc_percent")
private Double ercPercent;
}
对应实体属性类别 类:
package com.hyd.daring.model.index;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/** * 首页施工进度model * * @author */
@Data
@Accessors(chain = true)
public class ScheduleModelDemo {
@ApiModelProperty(value = "隧道id")
private Integer tunnelId;
@ApiModelProperty(value = "隧道名称")
private String tunnelName;
@ApiModelProperty(value = "隧道总长")
private Double length;
@ApiModelProperty(value = "类别1...")
private Double ZzmJinchi ;
@ApiModelProperty(value = "类别1....")
private Double ErcJinchi ;
@ApiModelProperty(value = "类别1...完成率")
private Double ZzmRatio ;
@ApiModelProperty(value = "类别1...完成率")
private Double ErcRatio ;
@ApiModelProperty(value = "类别2...进尺")
private Double OtherZzmJinchi ;
@ApiModelProperty(value = "类别2...进尺")
private Double OtherErcJinchi ;
@ApiModelProperty(value = "类别2...完成率")
private Double OtherZzmRatio ;
@ApiModelProperty(value = "类别2...完成率")
private Double OtherErcRatio ;
}
枚举类:
这里的枚举类是依据 数据库表格 字段duan的 pdx pdd xjx…建立的,意味着枚举类的建立是多个的。以下是举例:
package com.hyd.daring.enums;
/** * 平导大小里程枚举 * @author yyp */
public enum DXlichengDemo {
PDX("PDX","平导小里程"),
PDD("PDD", "平导大里程");
private final String key;
private final String value;
public String getKey() {
return key;
}
public String getValue() {
return value;
}
DXlichengDemo(String key, String value) {
this.key = key;
this.value = value;
}
public static String getValueByKey(String key) {
DXlichengDemo[] enums = DXlichengDemo.values();
for (int i = 0; i < enums.length; i++) {
if (enums[i].getKey().equals(key)) {
return enums[i].getValue();
}
}
return "";
}
}
实现类:
public Object scheduleInfo(Integer tunnelId) {
BizTunnel tunnel = tunnelMapper.selectById(tunnelId);
List<BizTunnelConfig> tunnelConfigs = this.list(new QueryWrapper<BizTunnelConfig>().eq("tunnel_id", tunnelId));
ScheduleModelDemo scheduleModel = new ScheduleModelDemo()
.setTunnelId(tunnel.getId())
.setTunnelName(tunnel.getName());
if(tunnel.getName().equals("隧道平导"))
{
//按照项目id分组
for (BizTunnelConfig tunnelConfig : tunnelConfigs) {
//隧道总长
scheduleModel.setLength(tunnelConfig.getTunnelLength()/1000);
if (tunnelConfig.getDuan().equals(DXlichengDemo.PDX.getKey())) {
//平导小里程
scheduleModel
.setZzmJinchi(tunnelConfig.getZzmJinchi())
.setZzmRatio(tunnelConfig.getZzmPercent())
.setErcJinchi(tunnelConfig.getErcJinchi())
.setErcRatio(tunnelConfig.getErcPercent());
} else {
//平导大里程
scheduleModel
.setOtherZzmJinchi(tunnelConfig.getZzmJinchi())
.setOtherZzmRatio(tunnelConfig.getZzmPercent())
.setOtherErcJinchi(tunnelConfig.getErcJinchi())
.setOtherErcRatio(tunnelConfig.getErcPercent());
}
}
return scheduleModel;
}
else if(tunnel.getName().equals("隧道斜井"))
{
for (BizTunnelConfig tunnelConfig : tunnelConfigs) {
//隧道总长
scheduleModel.setLength(tunnelConfig.getTunnelLength()/1000);
if (tunnelConfig.getDuan().equals(XJDXlichengDemo.XJX.getKey())) {
//斜井小里程
scheduleModel
.setZzmJinchi(tunnelConfig.getZzmJinchi())
.setZzmRatio(tunnelConfig.getZzmPercent())
.setErcJinchi(tunnelConfig.getErcJinchi())
.setErcRatio(tunnelConfig.getErcPercent());
} else {
//斜井大里程
scheduleModel
.setOtherZzmJinchi(tunnelConfig.getZzmJinchi())
.setOtherZzmRatio(tunnelConfig.getZzmPercent())
.setOtherErcJinchi(tunnelConfig.getErcJinchi())
.setOtherErcRatio(tunnelConfig.getErcPercent());
}
}
return scheduleModel;
}
else {
//按照项目id分组
for (BizTunnelConfig tunnelConfig : tunnelConfigs) {
//隧道总长
scheduleModel.setLength(tunnelConfig.getTunnelLength() / 1000);
if (tunnelConfig.getDuan().equals(Duan.ENTER.getKey())) {
//进口端
scheduleModel
.setZzmJinchi(tunnelConfig.getZzmJinchi())
.setZzmRatio(tunnelConfig.getZzmPercent())
.setErcJinchi(tunnelConfig.getErcJinchi())
.setErcRatio(tunnelConfig.getErcPercent());
} else {
//出口端
scheduleModel
.setOtherZzmJinchi(tunnelConfig.getZzmJinchi())
.setOtherZzmRatio(tunnelConfig.getZzmPercent())
.setOtherErcJinchi(tunnelConfig.getErcJinchi())
.setOtherErcRatio(tunnelConfig.getErcPercent());
}
return scheduleModel;
}
}
传参数 封装成类 再引用作为判断条件 对其进行赋值。
边栏推荐
猜你喜欢
batch_size of deep learning foundation
普氏分析法-MATLAB工具箱函数
jetracer_pro_2GB AI Kit系统安装使用说明
3D object detection dataset
多主复制下处理写冲突(1)-同步与异步冲突检测及避免冲突
EasyCVR视频广场切换通道,视频播放协议异常的问题修复
Research Notes (6) Indoor Path Planning Method Based on Environment Perception
Liunx服务环境部署
Reinforcement Learning (Chapter 16 of the Watermelon Book) Mind Map
Kubernetes中Pod对象学习笔记
随机推荐
BOM学习
this指向问题
树莓派4B设置双网卡静态IP、网卡优先级、查看系统多少位
ScholarOne Manuscripts submits journal LaTeX file and cannot convert PDF successfully!
SCI writing strategy - with common English writing sentence patterns
v-bind动态绑定
ES6中变量的使用及结构赋值
从事功能测试1年,裸辞1个月,找不到工作的“我”怎么办?
吴恩达机器学习系列课程笔记——第九章:神经网络的学习(Neural Networks: Learning)
Scalar value for argument ‘color‘ is not numeric错误处理
高等数学(第七版)同济大学 总习题三(后10题) 个人解答
C# Thread IsBackground作用
并发性,时间和相对性(1)-确定前后关系
ESP32-C5 简介:乐鑫首款双频 Wi-Fi 6 MCU
多主复制下处理写冲突(1)-同步与异步冲突检测及避免冲突
多主复制下处理写冲突(4)-多主复制拓扑
3D object detection dataset
Excel skills daquan
计算属性的学习
多主复制的适用场景(1)-多IDC