|
@@ -9,6 +9,7 @@ import com.zcxk.entity.Device;
|
|
|
import com.zcxk.entity.DeviceType;
|
|
|
import com.zcxk.entity.WaterMeterBaseEntity;
|
|
|
import com.zcxk.job.SyncMeterDataJob;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -23,6 +24,7 @@ import java.util.*;
|
|
|
|
|
|
@EnableScheduling
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class SyncService {
|
|
|
@Autowired
|
|
|
ReceiveDao receiveDao;
|
|
@@ -36,21 +38,24 @@ public class SyncService {
|
|
|
Integer sysId;
|
|
|
@Value("${buildingId}")
|
|
|
Integer buildingId;
|
|
|
+ @Value("${model}")
|
|
|
+ String model;
|
|
|
@Autowired
|
|
|
private QuartzManager quartzManager;
|
|
|
|
|
|
- @Scheduled(cron = "0/10 * * * * ?")
|
|
|
+ //@Scheduled(cron = "0 0 * * * ?")
|
|
|
public void countPlanDevice(){
|
|
|
|
|
|
WaterMeterBaseEntity waterMeterBaseEntity=new WaterMeterBaseEntity();
|
|
|
|
|
|
-
|
|
|
+ log.info("获取泗水水表列表");
|
|
|
List<Map<String, Object>> meterInfor = receiveDao.getMeterInfor(waterMeterBaseEntity);
|
|
|
|
|
|
|
|
|
List<Device>needAddWaterMeter=new ArrayList<>();
|
|
|
setNeddWaterMeters(meterInfor,needAddWaterMeter);
|
|
|
if(needAddWaterMeter.size()>0){
|
|
|
+ log.info("增加新增泗水水表");
|
|
|
sendDao.insertDeviceInfo(needAddWaterMeter);
|
|
|
}
|
|
|
|
|
@@ -75,16 +80,23 @@ public class SyncService {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
private Device setDeviceInfo(SnowflakeIdWorker idWorker,String deviceNo,Map<String,DeviceType> mapDeviceType,
|
|
|
Map<String, Object> map){
|
|
|
Device device = new Device();
|
|
|
device.setId(idWorker.nextId());
|
|
|
device.setDeviceNo(StringUtils.lowerCase(deviceNo));
|
|
|
- DeviceType deviceType = mapDeviceType.get(map.get("model"));
|
|
|
+ String deviceModel= (String) map.get("model");
|
|
|
+
|
|
|
+ DeviceType deviceType = mapDeviceType.get(deviceModel);
|
|
|
+ if(deviceType==null){
|
|
|
+ deviceType= mapDeviceType.get(model);
|
|
|
+ }
|
|
|
if(deviceType!=null){
|
|
|
- device.setDeviceType(deviceType.getDeviceType() );
|
|
|
+ device.setDeviceType(deviceType.getId() );
|
|
|
device.setManufacturerId(deviceType.getManufacturerId());
|
|
|
}
|
|
|
+
|
|
|
device.setSysId(sysId);
|
|
|
device.setSiteId(siteId);
|
|
|
device.setBuildingId(buildingId);
|
|
@@ -104,9 +116,6 @@ public class SyncService {
|
|
|
Map<String,Object>args=new HashMap<>();
|
|
|
args.put("customerId",customerId);
|
|
|
Set<String> hasDeviceNos = sendDao.selectDevice(args);
|
|
|
- List<DeviceType> deviceTypes = sendDao.selectDeviceType();
|
|
|
-
|
|
|
-
|
|
|
Set<String> allDeviceNos=new HashSet<>();
|
|
|
meterInfor.forEach(map->{
|
|
|
String deviceNo=(String) map.get("releationId");
|
|
@@ -115,13 +124,18 @@ public class SyncService {
|
|
|
Sets.SetView<String> difference = Sets.difference(allDeviceNos, hasDeviceNos);
|
|
|
return difference;
|
|
|
}
|
|
|
+ //@Scheduled(cron = "* 0/30 * * * ?")
|
|
|
public void uploadData(){
|
|
|
Map<String,Object>args2=new HashMap<>();
|
|
|
List<Map<String, Object>> uploadPlan = receiveDao.getUploadPlan(args2);
|
|
|
uploadPlan.forEach(map->{
|
|
|
String planId=(String) map.get("PlanId");
|
|
|
+ log.info("获取泗水上传计划");
|
|
|
if(!quartzManager.checkExists(planId)){
|
|
|
+
|
|
|
quartzManager.addJob(planId, SyncMeterDataJob.class,setCron((Date) map.get("UploadTime")),map);
|
|
|
+ //quartzManager.addJob(planId, SyncMeterDataJob.class,"15 41 15 * * ?", map);
|
|
|
+ log.info("设置泗水上传计划定时任务");
|
|
|
}
|
|
|
|
|
|
});
|