From d89db5bd196c6bc2ddc097edd70992ab5129ceb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Tue, 5 Aug 2025 11:15:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=B4=E8=A1=A8=E8=AE=BE=E5=A4=87=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WaterMeterController.java | 15 ++ .../modules/tq/water/entity/WaterMeter.java | 11 +- .../tq/water/mapper/WaterMeterMapper.java | 4 + .../tq/water/mapper/xml/WaterMeterMapper.xml | 60 ++++- .../tq/water/service/IWaterMeterService.java | 1 + .../service/impl/WaterMeterServiceImpl.java | 237 ++++++++++++++++++ 6 files changed, 314 insertions(+), 14 deletions(-) diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/controller/WaterMeterController.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/controller/WaterMeterController.java index 8928a23..6d961f8 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/controller/WaterMeterController.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/controller/WaterMeterController.java @@ -210,4 +210,19 @@ public class WaterMeterController extends JeecgController pageList = service.findSyncLogPage(page, waterMeter); return Result.OK(pageList); } + + /** + * 绑定完摄像头的区域列表查询 + * + * @param waterMeter + * @return + */ + @GetMapping(value = "/nuSyncList") + public Result> nuSyncList(WaterMeter waterMeter, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page page = new Page(pageNo, pageSize); + IPage pageList = service.findNuSyncPage(page, waterMeter); + return Result.OK(pageList); + } } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java index 223c17c..1ce2e3c 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/entity/WaterMeter.java @@ -74,6 +74,10 @@ public class WaterMeter implements Serializable { private String nuId;//护理单元ID private String nuName;//护理单元 + @Dict(dicCode = "nu_type") + @TableField(exist = false) + private String areaFlag;//区域标签 + private Integer deviceNum;//已绑定设备数 private String departId;//机构ID private String departName;//机构名称 private String departServerUrl;//机构服务地址 @@ -87,13 +91,12 @@ public class WaterMeter implements Serializable { private String checkType; @TableField(exist = false) private String oldOrgCode;//原机构编码 - @Dict(dicCode = "nu_type") - @TableField(exist = false) - private String areaFlag;//区域标签 @TableField(exist = false) private String viewType;//选择,未选择 用于设备同步功能 @TableField(exist = false) private String dataType;//数据类型 + @TableField(exist = false) + private String actionType;//操作类型 @TableField(exist = false) private String sn;//设备号 @@ -110,6 +113,4 @@ public class WaterMeter implements Serializable { @TableField(exist = false) private List seedList;//子列表 - - } \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java index 00e5b6f..8f67135 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/WaterMeterMapper.java @@ -21,6 +21,8 @@ public interface WaterMeterMapper extends BaseMapper { void updateDepartById(WaterMeter waterInfo); + void updateSync(WaterMeter waterInfo); + IPage findSourcePage(Page page, @Param("params") WaterMeter waterMeter); List findDepartList(WaterMeter waterMeter); List findNuList(WaterMeter waterMeter); @@ -28,4 +30,6 @@ public interface WaterMeterMapper extends BaseMapper { IPage findSyncLogMainPage(Page page, @Param("params") WaterMeter waterMeter); List findSyncLogSeedList(WaterMeter waterMeter); + + IPage findNuSyncPage(Page page, @Param("params") WaterMeter waterMeter); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml index 76dbf60..6c4f23f 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/mapper/xml/WaterMeterMapper.xml @@ -82,10 +82,17 @@ relay_state as relayState, battery_state as batteryState, read_time as readTime, - remark + remark, + nu_id as nuId, + nu_name as nuName, + depart_id as departId, + depart_name as departName, + depart_server_url as departServerUrl, + old_server_url as oldServerUrl, + old_depart_id as oldDepartId, + old_depart_name as oldDepartName from nu_iot_tq_water_meter - where cid = #{cid} - and address = #{address} + where address = #{address} @@ -114,8 +121,7 @@ battery_state = #{batteryState}, remark = #{remark}, update_time = now() - where cid = #{cid} - and address = #{address} + where address = #{address} @@ -124,8 +130,7 @@ water_value = #{waterValue}, read_time = #{readTime}, update_time = now() - where cid = #{cid} - and address = #{address} + where address = #{address} @@ -133,13 +138,28 @@ set relay_state = #{relayState}, update_time = now() - where cid = #{cid} - and address = #{address} + where address = #{address} + update nu_iot_tq_water_meter set nu_id = null,nu_name = null,depart_id = null,depart_name = null,depart_server_url=null where id = #{id} + + update nu_iot_tq_water_meter + set + sync_type = #{syncType}, + nu_id = #{nuId}, + nu_name = #{nuName}, + depart_server_url = #{departServerUrl}, + depart_id = #{departId}, + depart_name = #{departName}, + old_server_url = #{oldServerUrl}, + old_depart_id = #{oldDepartId}, + old_depart_name = #{oldDepartName} + where address = #{address} + + @@ -298,4 +324,20 @@ order by createTime desc + + \ No newline at end of file diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java index b2dcd73..f61b3f9 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/IWaterMeterService.java @@ -32,4 +32,5 @@ public interface IWaterMeterService extends IService { IPage findBusinessPage(Page page,WaterMeter waterMeter); String syncDevices(List list); IPage findSyncLogPage(Page page,WaterMeter waterMeter); + IPage findNuSyncPage(Page page,WaterMeter waterMeter); } diff --git a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java index adeec14..5f980ec 100644 --- a/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java +++ b/nursing-unit-iot/nu-iot-biz/src/main/java/com/nu/modules/tq/water/service/impl/WaterMeterServiceImpl.java @@ -714,9 +714,240 @@ public class WaterMeterServiceImpl extends ServiceImpl list){ + + for (WaterMeter waterMeter : list) { + WaterMeter waterInfo = baseMapper.getWaterMeter(waterMeter); + String actionType = waterMeter.getActionType();//操作类型 + if(actionType.equals("添加")){ + String orgCode = waterMeter.getOrgCode(); + if(!StringUtils.isNotBlank(orgCode)){ + return "1"; + } + waterInfo.setSyncType("1"); + waterInfo.setNuId(waterMeter.getNuId()); + waterInfo.setNuName(waterMeter.getNuName()); + waterInfo.setDepartServerUrl(orgCode); + waterInfo.setDepartId(waterMeter.getDepartId()); + waterInfo.setDepartName(waterMeter.getDepartName()); + waterInfo.setOldServerUrl(null); + waterInfo.setOldDepartId(null); + waterInfo.setOldDepartName(null); + + boolean flag = syncImpl.syncDevice(orgCode,"更新",waterInfo); + SyncLog syncLog = new SyncLog(); + syncLog.setId(null); + syncLog.setMainId(waterMeter.getAddress()); + syncLog.setMainName(waterMeter.getAddress()); + syncLog.setSyncType("添加"); + syncLog.setNewOrgId(waterMeter.getDepartId()); + syncLog.setNewOrgCode(orgCode); + syncLog.setNewOrgName(waterMeter.getDepartName()); + if(flag){ + syncLog.setStatus("成功"); + }else{ + syncLog.setStatus("失败"); + } + syncLog.setContent("添加业务机构水表数据"); + syncLog.setServerType("水表"); + syncLog.setNewNuId(waterMeter.getNuId()); + nuIotTqElectricitySyncLogService.save(syncLog); + if(flag){ + //更新同步 + baseMapper.updateSync(waterInfo); + } + } + if(actionType.equals("删除")){ + String oldOrgCode = waterMeter.getOldOrgCode(); + if(!StringUtils.isNotBlank(oldOrgCode)){ + return "1"; + } + waterInfo.setSyncType("1"); + waterInfo.setNuId(null); + waterInfo.setNuName(null); + waterInfo.setDepartServerUrl(null); + waterInfo.setDepartId(null); + waterInfo.setDepartName(null); + waterInfo.setOldServerUrl(oldOrgCode); + waterInfo.setOldDepartId(waterMeter.getOldDepartId()); + waterInfo.setOldDepartName(waterMeter.getOldDepartName()); + + boolean flag = syncImpl.syncDevice(oldOrgCode,"删除",waterInfo); + SyncLog syncLog = new SyncLog(); + syncLog.setId(null); + syncLog.setMainId(waterMeter.getAddress()); + syncLog.setMainName(waterMeter.getAddress()); + syncLog.setSyncType("删除"); + syncLog.setOrgId(waterMeter.getOldDepartId()); + syncLog.setOrgCode(oldOrgCode); + syncLog.setOrgName(waterMeter.getOldDepartName()); + if(flag){ + syncLog.setStatus("成功"); + }else{ + syncLog.setStatus("失败"); + } + syncLog.setContent("删除原来业务机构水表数据"); + syncLog.setServerType("水表"); + syncLog.setNuId(waterMeter.getNuId()); + nuIotTqElectricitySyncLogService.save(syncLog); + if(flag){ + //更新同步 + baseMapper.updateSync(waterInfo); + } + } + if(actionType.equals("调整")){ + String oldNuId = waterInfo.getNuId();//原护理单元ID + String nuId = waterMeter.getNuId();//新护理单元ID + if(!oldNuId.equals(nuId)){ + String oldOrgCode = waterMeter.getOldOrgCode(); + waterInfo.setNuId(waterMeter.getNuId()); + waterInfo.setNuName(waterMeter.getNuName()); + waterInfo.setDepartServerUrl(oldOrgCode); + waterInfo.setDepartId(waterMeter.getOldDepartId()); + waterInfo.setDepartName(waterMeter.getOldDepartName()); + waterInfo.setOldServerUrl(null); + waterInfo.setOldDepartId(null); + waterInfo.setOldDepartName(null); + boolean flag = syncImpl.syncDevice(oldOrgCode,"更新",waterInfo); + SyncLog syncLog = new SyncLog(); + syncLog.setId(null); + syncLog.setMainId(waterMeter.getAddress()); + syncLog.setMainName(waterMeter.getAddress()); + syncLog.setSyncType("调整"); + syncLog.setNewOrgId(waterMeter.getOldDepartId()); + syncLog.setNewOrgCode(oldOrgCode); + syncLog.setNewOrgName(waterMeter.getOldDepartName()); + if(flag){ + syncLog.setStatus("成功"); + }else{ + syncLog.setStatus("失败"); + } + syncLog.setContent("调整业务机构水表数据"); + syncLog.setServerType("水表"); + syncLog.setNewNuId(nuId); + syncLog.setNuId(oldNuId); + nuIotTqElectricitySyncLogService.save(syncLog); + if(flag){ + //更新同步 + baseMapper.updateSync(waterInfo); + } + } + } + if(actionType.equals("变更")){ + String oldOrgCode = waterMeter.getOldOrgCode(); + String orgCode = waterMeter.getOrgCode(); + String oldNuId = waterInfo.getNuId();//原护理单元ID + if(!StringUtils.isNotBlank(oldOrgCode)){ + return "1"; + } + if(!StringUtils.isNotBlank(orgCode)){ + return "1"; + } + + boolean flag = syncImpl.syncDevice(oldOrgCode,"删除",waterInfo); + if(!flag){ + SyncLog syncLog = new SyncLog(); + syncLog.setId(null); + syncLog.setMainId(waterMeter.getAddress()); + syncLog.setMainName(waterMeter.getAddress()); + syncLog.setSyncType("删除"); + syncLog.setOrgId(waterMeter.getOldDepartId()); + syncLog.setOrgCode(oldOrgCode); + syncLog.setOrgName(waterMeter.getOldDepartName()); + syncLog.setStatus("失败"); + syncLog.setContent("删除业务机构水表数据"); + syncLog.setServerType("水表"); + syncLog.setNuId(oldNuId); + nuIotTqElectricitySyncLogService.save(syncLog); + } + boolean flag2 = false; + if(flag){ + waterInfo.setSyncType("1"); + waterInfo.setNuId(waterMeter.getNuId()); + waterInfo.setNuName(waterMeter.getNuName()); + waterInfo.setDepartServerUrl(orgCode); + waterInfo.setDepartId(waterMeter.getDepartId()); + waterInfo.setDepartName(waterMeter.getDepartName()); + flag2 = syncImpl.syncDevice(orgCode,"更新",waterInfo); + + SyncLog syncLog = new SyncLog(); + syncLog.setId(null); + syncLog.setMainId(waterMeter.getAddress()); + syncLog.setMainName(waterMeter.getAddress()); + syncLog.setSyncType("更新"); + syncLog.setOrgId(waterMeter.getOldDepartId()); + syncLog.setOrgCode(oldOrgCode); + syncLog.setOrgName(waterMeter.getOldDepartName()); + syncLog.setNewOrgId(waterMeter.getDepartId()); + syncLog.setNewOrgCode(orgCode); + syncLog.setNewOrgName(waterMeter.getDepartName()); + if(flag2){ + syncLog.setStatus("成功"); + }else{ + syncLog.setStatus("失败"); + } + syncLog.setContent("更新业务机构水表数据"); + syncLog.setServerType("水表"); + syncLog.setNewNuId(waterInfo.getNuId()); + syncLog.setNuId(oldNuId); + nuIotTqElectricitySyncLogService.save(syncLog); + } + if(flag2){ + //更新同步 + waterInfo.setSyncType("1"); + waterInfo.setNuId(waterMeter.getNuId()); + waterInfo.setNuName(waterMeter.getNuName()); + waterInfo.setDepartServerUrl(orgCode); + waterInfo.setDepartId(waterMeter.getDepartId()); + waterInfo.setDepartName(waterMeter.getDepartName()); + waterInfo.setOldServerUrl(oldOrgCode); + waterInfo.setOldDepartId(waterMeter.getOldDepartId()); + waterInfo.setOldDepartName(waterMeter.getOldDepartName()); + baseMapper.updateSync(waterInfo); + }else{ + if(flag){ + //更新同步 + waterInfo.setSyncType("1"); + waterInfo.setNuId(null); + waterInfo.setNuName(null); + waterInfo.setDepartServerUrl(null); + waterInfo.setDepartId(null); + waterInfo.setDepartName(null); + waterInfo.setOldServerUrl(oldOrgCode); + waterInfo.setOldDepartId(waterMeter.getOldDepartId()); + waterInfo.setOldDepartName(waterMeter.getOldDepartName()); + baseMapper.updateSync(waterInfo); + } + } + } + } return "0"; } + //业务系统保存或者修改命令 + @DS("#dataSourceCode") + public boolean syncDevice(String dataSourceCode,String type,WaterMeter waterMeter) { + try { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("address",waterMeter.getAddress()); + WaterMeter oldParam = baseMapper.selectOne(queryWrapper);//查询数据库中该表号数据原始数据 + if(type.equals("更新")){ + if(oldParam == null){ + baseMapper.insert(waterMeter); + }else{ + waterMeter.setId(oldParam.getId()); + baseMapper.updateById(waterMeter); + } + } + if(type.equals("删除")){ + baseMapper.deleteById(oldParam); + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + @Override public IPage findSyncLogPage(Page page, WaterMeter waterMeter){ IPage mainPage = baseMapper.findSyncLogMainPage(page,waterMeter); @@ -728,4 +959,10 @@ public class WaterMeterServiceImpl extends ServiceImpl findNuSyncPage(Page page, WaterMeter waterMeter){ + return baseMapper.findNuSyncPage(page,waterMeter); + } + }