物联设备电表SN验证及推送
This commit is contained in:
parent
4523d38c0e
commit
9304d2fc74
|
|
@ -21,6 +21,7 @@ public class IotElectricityMeterMQDto{
|
|||
private String readTime;
|
||||
/**描述*/
|
||||
private String remark;
|
||||
private String sim;
|
||||
/**区域编码*/
|
||||
private String nuId;
|
||||
/**区域名称*/
|
||||
|
|
|
|||
|
|
@ -309,6 +309,11 @@ public class DeviceManagerController extends JeecgController<DeviceManager, IDev
|
|||
return service.pullElectricity(deviceIntegration);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/deleteElectricity", method = RequestMethod.POST)
|
||||
public Result<String> deleteElectricity(@RequestBody DeviceIntegration deviceIntegration) {
|
||||
return service.deleteElectricity(deviceIntegration);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备集成-水表分页列表查询
|
||||
*
|
||||
|
|
|
|||
|
|
@ -450,7 +450,9 @@
|
|||
a.factory,
|
||||
(
|
||||
case when b.id is null then '待集成'
|
||||
else (case ifnull(b.relay_state,'') when '0' then '拉闸' when '1' then '合闸' else '-' end)
|
||||
else
|
||||
(case when b.sim is null then '待集成'
|
||||
else (case ifnull(b.relay_state,'') when '0' then '拉闸' when '1' then '合闸' else '-' end) end)
|
||||
end
|
||||
) as device_status,
|
||||
a.device_status as maintainStatus
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ public interface IDeviceManagerService extends IService<DeviceManager> {
|
|||
IPage<DeviceIntegration> findNetworkPage(Page<DeviceIntegration> page, DeviceIntegration deviceIntegration);
|
||||
IPage<DeviceIntegration> findElectricityPage(Page<DeviceIntegration> page, DeviceIntegration deviceIntegration);
|
||||
Result<String> pullElectricity(DeviceIntegration deviceIntegration);
|
||||
Result<String> deleteElectricity(DeviceIntegration deviceIntegration);
|
||||
IPage<DeviceIntegration> findWaterPage(Page<DeviceIntegration> page, DeviceIntegration deviceIntegration);
|
||||
Result<String> pullWater(DeviceIntegration deviceIntegration);
|
||||
IPage<DeviceIntegration> findHumidPage(Page<DeviceIntegration> page, DeviceIntegration deviceIntegration);
|
||||
|
|
|
|||
|
|
@ -283,12 +283,29 @@ public class DeviceManagerServiceImpl extends ServiceImpl<DeviceManagerMapper, D
|
|||
if(!res.isSuccess()){
|
||||
return res;
|
||||
}
|
||||
res = syncBizService.syncDevice(deviceIntegration.getOrgCode(),deviceIntegration.getSn());
|
||||
//获取设备sim
|
||||
electricityMeterService.eleGetConfig(dsElectricityMeter);
|
||||
// res = syncBizService.syncDevice(deviceIntegration.getOrgCode(),deviceIntegration.getSn());
|
||||
// if(!res.isSuccess()){
|
||||
// return res;
|
||||
// }
|
||||
// deviceIntegration.setDeviceStatus("正常");
|
||||
// baseMapper.editPreviewStatusBySn(deviceIntegration);
|
||||
return Result.OK("拉取电表成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉取电表
|
||||
* @param deviceIntegration
|
||||
*/
|
||||
@Override
|
||||
public Result<String> deleteElectricity(DeviceIntegration deviceIntegration){
|
||||
DsElectricityMeter dsElectricityMeter = new DsElectricityMeter();
|
||||
dsElectricityMeter.setSn(deviceIntegration.getSn());
|
||||
Result<String> res = electricityMeterService.delete(dsElectricityMeter);
|
||||
if(!res.isSuccess()){
|
||||
return res;
|
||||
}
|
||||
deviceIntegration.setDeviceStatus("正常");
|
||||
baseMapper.editPreviewStatusBySn(deviceIntegration);
|
||||
return Result.OK("拉取电表成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ public class DsElectricityMeter implements Serializable {
|
|||
@ApiModelProperty(value = "描述")
|
||||
private String remark;
|
||||
private String syncType;//是否同步 N未同步 Y已同步
|
||||
private String sim;//SIM
|
||||
|
||||
/*=============================以下字段都可删除==================================*/
|
||||
@TableField(exist = false)
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@ public interface DsElectricityMeterMapper extends BaseMapper<DsElectricityMeter>
|
|||
IPage<DsElectricityMeter> findPage(Page<DsElectricityMeter> page, @Param("params") DsElectricityMeter dsElectricityMeter);
|
||||
List<DsElectricityMeter> findAllList();
|
||||
DsElectricityMeter getElectricityMeter(DsElectricityMeter dsElectricityMeter);
|
||||
DsElectricityMeter getElectricityMeterPreview(DsElectricityMeter dsElectricityMeter);
|
||||
int updateValue(DsElectricityMeter dsElectricityMeter);
|
||||
int updateRelayState(DsElectricityMeter dsElectricityMeter);
|
||||
int insertElectricty(DsElectricityMeter DsElectricityMeter);
|
||||
int updateElectrictySim(DsElectricityMeter DsElectricityMeter);
|
||||
int updateElectricty(DsElectricityMeter DsElectricityMeter);
|
||||
void updateDepartById(DsElectricityMeter DsElectricityMeter);
|
||||
void updateSync(DsElectricityMeter DsElectricityMeter);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@
|
|||
a.old_server_url ,
|
||||
a.sync_type,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.sim
|
||||
from nu_iot_ds_electricity_meter a
|
||||
where a.del_flag = '0'
|
||||
<if test="params.sn != null and params.sn != ''">
|
||||
|
|
@ -60,7 +61,8 @@
|
|||
a.old_server_url ,
|
||||
a.sync_type,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.sim
|
||||
from nu_iot_ds_electricity_meter a
|
||||
where a.del_flag = '0'
|
||||
</select>
|
||||
|
|
@ -83,6 +85,7 @@
|
|||
old_depart_name as oldDepartName,
|
||||
iz_allocate,
|
||||
dimension,
|
||||
sim,
|
||||
del_flag
|
||||
from nu_iot_ds_electricity_meter
|
||||
<where>
|
||||
|
|
@ -95,6 +98,29 @@
|
|||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getElectricityMeterPreview" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter" resultType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
select
|
||||
a.id,
|
||||
a.sn,
|
||||
a.ele_value as eleValue,
|
||||
a.relay_state as relayState,
|
||||
a.read_time as readTime,
|
||||
a.remark,
|
||||
b.org_code as orgCode,
|
||||
a.dimension,
|
||||
a.sim,
|
||||
a.del_flag
|
||||
from nu_iot_ds_electricity_meter a inner join nu_iot_device_preview b on a.sn = b.sn
|
||||
<where>
|
||||
<if test="sn != null and sn != ''">
|
||||
AND a.sn = #{sn}
|
||||
</if>
|
||||
<if test="id != null and id != ''">
|
||||
AND a.id = #{id}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<insert id="insertElectricty" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
insert into nu_iot_ds_electricity_meter(
|
||||
sn,
|
||||
|
|
@ -112,6 +138,12 @@
|
|||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateElectrictySim" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
update nu_iot_ds_electricity_meter
|
||||
set sim = #{sim}
|
||||
where sn = #{sn}
|
||||
</update>
|
||||
|
||||
<update id="updateElectricty" parameterType="com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter">
|
||||
update nu_iot_ds_electricity_meter
|
||||
set
|
||||
|
|
@ -187,7 +219,8 @@
|
|||
a.old_depart_name as oldDepartName,
|
||||
c.area_flag as areaFlag,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.sim
|
||||
from nu_iot_ds_electricity_meter a
|
||||
left join nu_base_info c on a.nu_id = c.nu_id
|
||||
where a.del_flag = '0'
|
||||
|
|
@ -269,7 +302,8 @@
|
|||
a.old_depart_name as oldDepartName,
|
||||
c.area_flag as areaFlag,
|
||||
a.iz_allocate,
|
||||
a.dimension
|
||||
a.dimension,
|
||||
a.sim
|
||||
from nu_iot_ds_electricity_meter a
|
||||
left join nu_base_info c on a.nu_id = c.nu_id
|
||||
where a.del_flag = '0'
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.util.Map;
|
|||
public interface IDsElectricityMeterService extends IService<DsElectricityMeter> {
|
||||
IPage<DsElectricityMeter> findPage(Page<DsElectricityMeter> page, DsElectricityMeter dsElectricityMeter);
|
||||
Result<String> add(DsElectricityMeter dsElectricityMeter);
|
||||
Result<?> delete(DsElectricityMeter dsElectricityMeter);
|
||||
Result<String> delete(DsElectricityMeter dsElectricityMeter);
|
||||
|
||||
List<DsElectricityMeter> findAllList();
|
||||
void updateValue(DsElectricityMeter dsElectricityMeter);
|
||||
|
|
@ -22,6 +22,7 @@ public interface IDsElectricityMeterService extends IService<DsElectricityMeter>
|
|||
void eleCutOff(DsElectricityMeter dsElectricityMeter);
|
||||
void eleConnected(DsElectricityMeter dsElectricityMeter);
|
||||
void eleRead(DsElectricityMeter dsElectricityMeter);
|
||||
void eleGetConfig(DsElectricityMeter dsElectricityMeter);
|
||||
|
||||
void processReceivedMessage(String payload);
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nu.dto.IotElectricityMeterMQDto;
|
||||
import com.nu.dto.IotWaterMeterMQDto;
|
||||
import com.nu.modules.device.manager.entity.DeviceIntegration;
|
||||
import com.nu.modules.device.manager.mapper.DeviceManagerMapper;
|
||||
import com.nu.modules.dingshuo.electricity.entity.DsElectricityMeter;
|
||||
import com.nu.modules.dingshuo.electricity.mapper.DsElectricityMeterMapper;
|
||||
import com.nu.modules.dingshuo.electricity.service.IDsElectricityMeterService;
|
||||
|
|
@ -19,6 +21,7 @@ import com.nu.modules.syncLog.entity.SyncBizLog;
|
|||
import com.nu.modules.syncLog.entity.SyncLog;
|
||||
import com.nu.modules.syncLog.service.ISyncBizLogService;
|
||||
import com.nu.modules.syncLog.service.ISyncLogService;
|
||||
import com.nu.modules.syncbiz.service.ISyncBizService;
|
||||
import com.nu.modules.tq.common.entity.TqApiLog;
|
||||
import com.nu.modules.tq.common.service.ITqApiLogService;
|
||||
import com.nu.modules.tq.electricity.entity.ElectricityMeter;
|
||||
|
|
@ -65,6 +68,12 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
@Autowired
|
||||
private ITqApiLogService logService;
|
||||
|
||||
@Autowired
|
||||
private ISyncBizService syncBizService;
|
||||
|
||||
@Autowired
|
||||
private DeviceManagerMapper deviceManagerMapper;
|
||||
|
||||
@Override
|
||||
public IPage<DsElectricityMeter> findPage(Page<DsElectricityMeter> page, DsElectricityMeter dsElectricityMeter){
|
||||
return baseMapper.findPage(page,dsElectricityMeter);
|
||||
|
|
@ -74,14 +83,14 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
public Result<String> add(DsElectricityMeter dsElectricityMeter){
|
||||
DsElectricityMeter entity = baseMapper.getElectricityMeter(dsElectricityMeter);
|
||||
if(entity!=null){
|
||||
if(entity.getDelFlag().equals("0")){
|
||||
return Result.error("添加失败,设备已存在!");
|
||||
}else{
|
||||
DsElectricityMeter dem = new DsElectricityMeter();
|
||||
dem.setId(entity.getId());
|
||||
dem.setDelFlag("0");
|
||||
baseMapper.updateById(dem);
|
||||
}
|
||||
// if(entity.getDelFlag().equals("0")){
|
||||
// return Result.error("添加失败,设备已存在!");
|
||||
// }else{
|
||||
// DsElectricityMeter dem = new DsElectricityMeter();
|
||||
// dem.setId(entity.getId());
|
||||
// dem.setDelFlag("0");
|
||||
// baseMapper.updateById(dem);
|
||||
// }
|
||||
}else{
|
||||
baseMapper.insertElectricty(dsElectricityMeter);
|
||||
}
|
||||
|
|
@ -96,18 +105,19 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
}
|
||||
|
||||
@Override
|
||||
public Result<?> delete(DsElectricityMeter dsElectricityMeter){
|
||||
public Result<String> delete(DsElectricityMeter dsElectricityMeter){
|
||||
DsElectricityMeter entity = baseMapper.getElectricityMeter(dsElectricityMeter);
|
||||
if(entity!=null){
|
||||
String izAllocate = entity.getIzAllocate();
|
||||
if(izAllocate.equals("Y")){
|
||||
return Result.OK("设备已分配,无法删除!");
|
||||
}
|
||||
}
|
||||
// if(entity!=null){
|
||||
// String izAllocate = entity.getIzAllocate();
|
||||
// if(izAllocate.equals("Y")){
|
||||
// return Result.OK("设备已分配,无法删除!");
|
||||
// }
|
||||
// }
|
||||
DsElectricityMeter dem = new DsElectricityMeter();
|
||||
dem.setId(entity.getId());
|
||||
dem.setDelFlag("1");
|
||||
baseMapper.updateById(dem);
|
||||
// dem.setDelFlag("1");
|
||||
// baseMapper.updateById(dem);
|
||||
baseMapper.deleteById(dem);
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
try {
|
||||
mqttMessageHandler.unsubscribeUplinkMessage(deviceId);
|
||||
|
|
@ -220,6 +230,17 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eleGetConfig(DsElectricityMeter dsElectricityMeter){
|
||||
String deviceId = dsElectricityMeter.getSn();
|
||||
MqttMessageHandler.DownlinkMessage message = mqttPublisherParams.getConfigParams(deviceId);
|
||||
try {
|
||||
mqttMessageHandler.publishDownlinkMessage(deviceId,message);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* mqtt收到消息,并处理
|
||||
*/
|
||||
|
|
@ -324,6 +345,22 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
}
|
||||
}
|
||||
break;
|
||||
case "905":
|
||||
// 参数获取
|
||||
String mtype905 = payload.getStr("mtype");//mtype:200 TCP信息;209 SIM卡号
|
||||
String dcode905 = payload.getStr("dcode");
|
||||
log.info("参数获取, mtype: {}, dcode: {}", mtype905,dcode905);
|
||||
DsElectricityMeter entity905 = new DsElectricityMeter();
|
||||
entity905.setSn(sn);
|
||||
DsElectricityMeter dme905 = baseMapper.getElectricityMeterPreview(entity905);
|
||||
dme905.setSim(dcode905);
|
||||
baseMapper.updateElectrictySim(dme905);
|
||||
syncBizService.syncDevice(dme905.getOrgCode(),sn);
|
||||
DeviceIntegration deviceIntegration = new DeviceIntegration();
|
||||
deviceIntegration.setDeviceStatus("正常");
|
||||
deviceIntegration.setSn(sn);
|
||||
deviceManagerMapper.editPreviewStatusBySn(deviceIntegration);
|
||||
break;
|
||||
case "601":
|
||||
// 定时主动上报表计数据
|
||||
String EgT601 = payload.getStr("EgT");//总有功电能
|
||||
|
|
@ -343,6 +380,13 @@ public class DsElectricityMeterServiceImpl extends ServiceImpl<DsElectricityMete
|
|||
entity601.setReadTime(DateUtil.now());
|
||||
baseMapper.updateElectricty(entity601);
|
||||
break;
|
||||
case "602":
|
||||
// 上送登录信息
|
||||
String csq602 = payload.getStr("CSQ");//总有功电能
|
||||
String sim602 = payload.getStr("SIM");//表状态
|
||||
String sw602 = payload.getStr("SW");//表状态
|
||||
log.info("上送登录信息, CSQ: {}, SIM: {}, SW: {}", csq602, sim602,sw602);
|
||||
break;
|
||||
case "701":
|
||||
// 定时主动上报事件数据
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class MqttMessageHandler implements CommandLineRunner {
|
|||
String payload = objectMapper.writeValueAsString(message);
|
||||
|
||||
MqttMessage mqttMessage = new MqttMessage(payload.getBytes());
|
||||
mqttMessage.setQos(0);
|
||||
mqttMessage.setQos(1);
|
||||
mqttMessage.setRetained(false);
|
||||
log.info("发布 - 主题: {}, 消息: {}", topic, payload);
|
||||
mqttClient.publish(topic, mqttMessage);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,22 @@ import java.util.Map;
|
|||
@Slf4j
|
||||
public class MqttPublisherParams {
|
||||
|
||||
/**
|
||||
* 获取表配置参数
|
||||
* @return
|
||||
*/
|
||||
public MqttMessageHandler.DownlinkMessage getConfigParams(String deviceId){
|
||||
MqttMessageHandler.DownlinkMessage message = new MqttMessageHandler.DownlinkMessage();
|
||||
MqttMessageHandler.DownlinkMessage.Header header = new MqttMessageHandler.DownlinkMessage.Header();
|
||||
header.setName("805"); //805:表⽰读取表配置参数
|
||||
header.setID(deviceId);
|
||||
message.setHeader(header);
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("mtype", "209"); //"209" 获取SIM卡号
|
||||
message.setPayload(payload);
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取抄表参数
|
||||
* @return
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ public class ElectricityMeter implements Serializable {
|
|||
private String relayState;
|
||||
/**描述*/
|
||||
private String remark;
|
||||
private String sim;
|
||||
/**区域编码*/
|
||||
private String nuId;
|
||||
/**区域名称*/
|
||||
|
|
|
|||
|
|
@ -450,9 +450,11 @@
|
|||
sn,
|
||||
ele_value as eleValue,
|
||||
relay_state as relayState,
|
||||
remark
|
||||
remark,
|
||||
sim
|
||||
from nu_iot_ds_electricity_meter
|
||||
where sn = #{sn}
|
||||
and sim is not null
|
||||
order by id asc
|
||||
</select>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue