fix: 修改数据库字段的一些BUG,由于不能自动下划线转驼峰,导致字段读取的错误 #3

Merged
admin merged 1 commits from feature/simcards_checker into develop 2025-06-03 09:37:07 +00:00
10 changed files with 42 additions and 95 deletions

View File

@ -49,11 +49,9 @@ public class TrafficCard {
@ExcelProperty("已用流量(MB)")
private Integer used;
@TableField("update_time")
@ExcelProperty("更新时间")
private Date updateTime;
private Date updatetime;
@TableField("query_status")
@ExcelProperty("查询状态")
private Integer queryStatus;
private Integer querystatus;
}

View File

@ -15,7 +15,7 @@ public interface TrafficCardMapper extends BaseMapper<TrafficCard> {
TrafficCard findByIccid(String iccid);
@Update("UPDATE traffic_cards SET " +
"update_time = #{updateTime}, " +
"updatetime = #{updatetime}, " +
"msisdn = #{msisdn}, " +
"status = #{status}, " +
"remaining = #{remaining}, " +
@ -24,11 +24,11 @@ public interface TrafficCardMapper extends BaseMapper<TrafficCard> {
"WHERE iccid = #{iccid}")
int updateCardInfo(TrafficCard trafficCard);
@Update("UPDATE traffic_cards SET query_status = #{queryStatus} WHERE iccid = #{iccid}")
@Update("UPDATE traffic_cards SET querystatus = #{querystatus} WHERE iccid = #{iccid}")
int updateQueryStatus(String iccid,int queryStatus);
@Update("UPDATE traffic_cards SET " +
"update_time = #{updateTime}, " +
"updatetime = #{updatetime}, " +
"remaining = #{remaining}, " +
"total = #{total}, " +
"used = #{used} " +

View File

@ -19,9 +19,7 @@ public class TrafficDeviceMapping {
private String iccid;
@TableField("start_time")
private Date startTime;
private Date starttime;
@TableField("end_time")
private Date endTime; // 结束使用时间NULL表示当前正在使用
private Date endtime; // 结束使用时间NULL表示当前正在使用
}

View File

@ -10,15 +10,15 @@ import java.util.List;
@Mapper
public interface TrafficDeviceMappingMapper extends BaseMapper<TrafficDeviceMapping> {
@Select("SELECT * FROM traffic_device_mappings WHERE deviceid = #{deviceId} AND end_time IS NULL LIMIT 1")
@Select("SELECT * FROM traffic_device_mappings WHERE deviceid = #{deviceId} AND endtime IS NULL LIMIT 1")
TrafficDeviceMapping findActiveByDeviceId(String deviceId);
@Select("SELECT * FROM traffic_device_mappings WHERE iccid = #{iccid} AND end_time IS NULL LIMIT 1")
@Select("SELECT * FROM traffic_device_mappings WHERE iccid = #{iccid} AND endtime IS NULL LIMIT 1")
TrafficDeviceMapping findActiveByIccid(String iccid);
@Select("SELECT * FROM traffic_device_mappings WHERE deviceid = #{deviceId} ORDER BY start_time DESC")
@Select("SELECT * FROM traffic_device_mappings WHERE deviceid = #{deviceId} ORDER BY starttime DESC")
List<TrafficDeviceMapping> findHistoryByDeviceId(String deviceId);
@Update("UPDATE traffic_device_mappings SET end_time = NOW() WHERE id = #{id}")
@Update("UPDATE traffic_device_mappings SET endtime = NOW() WHERE id = #{id}")
int endMapping(Integer id);
}

View File

@ -17,8 +17,7 @@ public class TrafficRecord {
private String iccid;
@TableField("record_time")
private Date recordTime;
private Date recordtime;
private Integer remaining; // 剩余流量(MB×1000)
private Integer used; // 已用流量(MB×1000)

View File

@ -188,7 +188,7 @@ public class SimCardQueryServiceImpl implements SimCardQueryService{
card = new TrafficCard();
card.setIccid(device.getIccid());
card.setStatus(-1);
card.setUpdateTime(new Date());
card.setUpdatetime(new Date());
trafficCardMapper.insert(card);
}
return card;

View File

@ -54,8 +54,8 @@ public class TrafficCardService {
card.setRemaining(0);
card.setTotal(0);
card.setUsed(0);
card.setUpdateTime(new Date());
card.setQueryStatus(TrafficCard.QUERY_STATUS_NORMAL);
card.setUpdatetime(new Date());
card.setQuerystatus(TrafficCard.QUERY_STATUS_NORMAL);
trafficCardMapper.insert(card);
}
@ -93,8 +93,8 @@ public class TrafficCardService {
TrafficDeviceMapping newMapping = new TrafficDeviceMapping();
newMapping.setDeviceid(deviceId);
newMapping.setIccid(iccid);
newMapping.setStartTime(new Date());
newMapping.setEndTime(null);
newMapping.setStarttime(new Date());
newMapping.setEndtime(null);
mappingMapper.insert(newMapping);
}

View File

@ -117,12 +117,12 @@ public class SimStatusChecker {
TrafficCard trafficCard = trafficCardService.getOrCreateTrafficCard(device.getIccid());
// 检查查询状态如果已标记为非当前卡商或查询失败则跳过
if (trafficCard.getQueryStatus() != null &&
trafficCard.getQueryStatus() != TrafficCard.QUERY_STATUS_NORMAL) {
if (trafficCard.getQuerystatus() != null &&
trafficCard.getQuerystatus() != TrafficCard.QUERY_STATUS_NORMAL) {
logger.debug("设备 {} 的SIM卡 {} 查询状态为 {},跳过流量查询",
device.getDeviceid(),
device.getIccid(),
trafficCard.getQueryStatus());
trafficCard.getQuerystatus());
return;
}
@ -164,7 +164,7 @@ public class SimStatusChecker {
}
CardInfoData info = response.getData();
trafficCard.setUpdateTime(new Date());
trafficCard.setUpdatetime(new Date());
trafficCard.setMsisdn(info.getMsisdn());
trafficCardMapper.updateCardInfo(trafficCard);
@ -187,7 +187,7 @@ public class SimStatusChecker {
}
CardStatusData status = response.getData();
trafficCard.setUpdateTime(new Date());
trafficCard.setUpdatetime(new Date());
trafficCard.setStatus(status.getStatusCode());
trafficCardMapper.updateCardInfo(trafficCard);
@ -217,7 +217,7 @@ public class SimStatusChecker {
return;
}
trafficCard.setUpdateTime(new Date());
trafficCard.setUpdatetime(new Date());
// 将浮点数转换为整数存储MB值×1000
trafficCard.setRemaining((int)(usage.getLeft() * 1000));
trafficCard.setUsed((int)(usage.getUsed() * 1000));
@ -227,7 +227,7 @@ public class SimStatusChecker {
TrafficRecord record = new TrafficRecord();
record.setIccid(trafficCard.getIccid());
record.setRecordTime(new Date());
record.setRecordtime(new Date());
record.setRemaining(trafficCard.getRemaining());
record.setTotal(trafficCard.getTotal());
record.setUsed(trafficCard.getUsed());

View File

@ -146,8 +146,8 @@ public class SimCardController extends BasicController {
deviceData.put("remaining", trafficCard.getRemaining());
deviceData.put("total", trafficCard.getTotal());
deviceData.put("used", trafficCard.getUsed());
deviceData.put("updateTime", trafficCard.getUpdateTime());
deviceData.put("queryStatus", trafficCard.getQueryStatus());
deviceData.put("updateTime", trafficCard.getUpdatetime());
deviceData.put("queryStatus", trafficCard.getQuerystatus());
} else {
deviceData.put("msisdn", "-");
deviceData.put("status", TrafficCard.STATUS_UNKNOWN);
@ -297,7 +297,7 @@ public class SimCardController extends BasicController {
}
}
queryWrapper.orderByDesc("record_time");
queryWrapper.orderByDesc("recordtime");
IPage<TrafficRecord> records = trafficRecordMapper.selectPage(pageable, queryWrapper);
List<Map<String, Object>> enrichedData = new ArrayList<>();
@ -305,7 +305,7 @@ public class SimCardController extends BasicController {
Map<String, Object> recordData = new HashMap<>();
recordData.put("id", record.getId());
recordData.put("iccid", record.getIccid());
recordData.put("recordTime", record.getRecordTime());
recordData.put("recordTime", record.getRecordtime());
recordData.put("remaining", record.getRemaining());
recordData.put("total", record.getTotal());
recordData.put("used", record.getUsed());
@ -378,7 +378,7 @@ public class SimCardController extends BasicController {
}
}
queryWrapper.orderByDesc("start_time");
queryWrapper.orderByDesc("starttime");
IPage<TrafficDeviceMapping> mappings = trafficDeviceMappingMapper.selectPage(pageable, queryWrapper);
List<Map<String, Object>> enrichedData = new ArrayList<>();
@ -387,10 +387,10 @@ public class SimCardController extends BasicController {
mappingData.put("id", mapping.getId());
mappingData.put("deviceId", mapping.getDeviceid());
mappingData.put("iccid", mapping.getIccid());
mappingData.put("startTime", mapping.getStartTime());
mappingData.put("endTime", mapping.getEndTime());
mappingData.put("startTime", mapping.getStarttime());
mappingData.put("endTime", mapping.getEndtime());
mappingData.put("isActive", mapping.getEndTime() == null);
mappingData.put("isActive", mapping.getEndtime() == null);
// 查找对应的流量卡信息
TrafficCard trafficCard = trafficCardMapper.findByIccid(mapping.getIccid());

View File

@ -349,54 +349,6 @@ CREATE TABLE IF NOT EXISTS `gnssdevicesinglerecords` (
KEY `idx_createtime` (`createtime`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='GNSS单次解算记录表';
/***
SIM卡记录表
*/
CREATE TABLE IF NOT EXISTS `simcards` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,唯一',
`updatetime` DATETIME DEFAULT NULL COMMENT '最新一次查询接口记录的时间',
`iccid` VARCHAR(36) NOT NULL COMMENT 'ICCID号唯一',
`msisdn` VARCHAR(20) NOT NULL COMMENT '物联卡号码SIM号唯一',
`deviceid` VARCHAR(20) DEFAULT NULL COMMENT '设备ID号',
`status` TINYINT DEFAULT -1 COMMENT 'SIM卡状态-1:未知, 1:待激活, 2:已激活, 3:停机, 4:注销, 5:库存, 6:可测试, 7:失效, 99:号码不存在)',
`remaining` DECIMAL(10,2) DEFAULT 0.00 COMMENT '剩余流量单位为MB保留两位小数',
`total` DECIMAL(10,2) DEFAULT 0.00 COMMENT '总流量单位为MB保留两位小数',
`used` DECIMAL(10,2) DEFAULT 0.00 COMMENT '已用流量单位为MB保留两位小数',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_iccid` (`iccid`),
UNIQUE KEY `uk_msisd` (`msisdn`),
INDEX `idx_deviceid` (`deviceid`),
INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='SIM卡信息表';
CREATE TABLE IF NOT EXISTS `ehm` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`tenantid` int DEFAULT 0,
`deviceid` varchar(64) NOT NULL COMMENT '设备ID',
`createtime` datetime(3) NOT NULL COMMENT '创建时间',
`offlinestatdays` smallint DEFAULT NULL COMMENT '离线统计周期',
`offlinecount` int DEFAULT NULL COMMENT '离线统计周期内的离线次数',
`offlineminutes` int DEFAULT NULL COMMENT '离线统计周期内的离线时长',
`invalidresultminutes` int DEFAULT NULL COMMENT '离线统计周期内的连续无效解时长',
`calcstathours` int DEFAULT NULL COMMENT '数据分析周期',
`stdeve` float DEFAULT NULL COMMENT '标准差',
`stdevn` float DEFAULT NULL COMMENT '标准差',
`stdevu` float DEFAULT NULL COMMENT '标准差',
`fixrate` float DEFAULT NULL COMMENT '固定率',
`validrate` float DEFAULT NULL COMMENT '有效解比例',
`jumpcount` int DEFAULT NULL COMMENT '周跳次数',
PRIMARY KEY (`id`),
KEY `idx_deviceid_createtime` (`deviceid`,`createtime`),
KEY `idx_createtime` (`createtime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `ehmconfig` (
`updatetime` datetime(3) NOT NULL COMMENT '更新时间',
`offlinestatdays` smallint DEFAULT NULL COMMENT '离线统计周期',
`calcstathours` int DEFAULT NULL COMMENT '数据分析周期',
PRIMARY KEY (`updatetime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/***
*/
@ -408,12 +360,12 @@ CREATE TABLE IF NOT EXISTS `traffic_cards` (
`remaining` INT DEFAULT 0 COMMENT '剩余流量单位MB为避免小数存储值为实际值的1000倍',
`total` INT DEFAULT 0 COMMENT '总流量单位MB同上',
`used` INT DEFAULT 0 COMMENT '已用流量单位MB同上',
`update_time` DATETIME DEFAULT NULL COMMENT '最后更新时间',
`query_status` TINYINT DEFAULT 0 COMMENT 'SIM卡查询状态0=正常1=非当前卡商2=其他错误',
`updatetime` DATETIME DEFAULT NULL COMMENT '最后更新时间',
`querystatus` TINYINT DEFAULT 0 COMMENT 'SIM卡查询状态0=正常1=非当前卡商2=其他错误',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_iccid` (`iccid`),
INDEX `idx_status` (`status`),
INDEX `idx_query_status` (`query_status`)
INDEX `idx_querystatus` (`querystatus`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流量卡信息表';
/***
@ -423,12 +375,12 @@ CREATE TABLE IF NOT EXISTS `traffic_device_mappings` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,唯一',
`deviceid` VARCHAR(20) NOT NULL COMMENT '设备ID',
`iccid` VARCHAR(20) NOT NULL COMMENT 'SIM卡ICCID',
`start_time` DATETIME NOT NULL COMMENT '开始使用时间',
`end_time` DATETIME DEFAULT NULL COMMENT '结束使用时间NULL表示当前正在使用',
`starttime` DATETIME NOT NULL COMMENT '开始使用时间',
`endtime` DATETIME DEFAULT NULL COMMENT '结束使用时间NULL表示当前正在使用',
PRIMARY KEY (`id`),
KEY `idx_deviceid` (`deviceid`),
KEY `idx_iccid` (`iccid`),
KEY `idx_start_time` (`start_time`)
KEY `idx_starttime` (`starttime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备-SIM卡映射表';
/***
@ -437,11 +389,11 @@ CREATE TABLE IF NOT EXISTS `traffic_device_mappings` (
CREATE TABLE IF NOT EXISTS `traffic_records` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,唯一',
`iccid` VARCHAR(20) NOT NULL COMMENT 'SIM卡ICCID',
`record_time` DATETIME NOT NULL COMMENT '记录时间',
`recordtime` DATETIME NOT NULL COMMENT '记录时间',
`remaining` INT DEFAULT NULL COMMENT '剩余流量单位MB为避免小数存储值为实际值的1000倍',
`used` INT DEFAULT NULL COMMENT '已用流量,单位MB为避免小数存储值为实际值的1000倍',
`total` INT DEFAULT NULL COMMENT '总流量,单位MB为避免小数存储值为实际值的1000倍',
`used` INT DEFAULT NULL COMMENT '已用流量MB',
`total` INT DEFAULT NULL COMMENT '总流量MB',
PRIMARY KEY (`id`),
KEY `idx_iccid` (`iccid`),
KEY `idx_record_time` (`record_time`)
KEY `idx_recordtime` (`recordtime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流量使用记录表';