diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java new file mode 100644 index 0000000..30a4bc3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java @@ -0,0 +1,45 @@ +package com.casic.missiles.modular.system.job; + +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import org.apache.shardingsphere.elasticjob.api.ShardingContext; +import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @ClassName MyJob + * @Description 渣土定位数据获取接口 + * @Author lwh + * @Date 2021/2/5 11:20 + * @Version 1.0 + */ +@Component +public class CarPostionJob implements SimpleJob { + @Autowired + private IExternalViewConfigService externalViewConfigService; + @Override + public void execute(ShardingContext shardingContext) { + System.out.println(String.format("%s------Thread ID: %s, 任务总片数: %s, " + "当前分片项: %s,当前参数: %s," + + "当前任务名称: %s,当前任务参数: %s," + + "当前任务的id: %s", + //获取当前线程的id + shardingContext.getJobParameter(), + Thread.currentThread().getId(), + //获取任务总片数 + shardingContext.getShardingTotalCount(), + //获取当前分片项 + shardingContext.getShardingItem(), + //获取当前的参数 + shardingContext.getShardingParameter(), + //获取当前的任务名称 + shardingContext.getJobName(), + //获取当前任务参数 + shardingContext.getJobParameter(), + //获取任务的id + shardingContext.getTaskId() + )); + System.out.println(shardingContext.getShardingParameter()); + externalViewConfigService.carPostionUpdate( shardingContext.getShardingTotalCount(), shardingContext.getShardingParameter()); + + } +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java new file mode 100644 index 0000000..30a4bc3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java @@ -0,0 +1,45 @@ +package com.casic.missiles.modular.system.job; + +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import org.apache.shardingsphere.elasticjob.api.ShardingContext; +import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @ClassName MyJob + * @Description 渣土定位数据获取接口 + * @Author lwh + * @Date 2021/2/5 11:20 + * @Version 1.0 + */ +@Component +public class CarPostionJob implements SimpleJob { + @Autowired + private IExternalViewConfigService externalViewConfigService; + @Override + public void execute(ShardingContext shardingContext) { + System.out.println(String.format("%s------Thread ID: %s, 任务总片数: %s, " + "当前分片项: %s,当前参数: %s," + + "当前任务名称: %s,当前任务参数: %s," + + "当前任务的id: %s", + //获取当前线程的id + shardingContext.getJobParameter(), + Thread.currentThread().getId(), + //获取任务总片数 + shardingContext.getShardingTotalCount(), + //获取当前分片项 + shardingContext.getShardingItem(), + //获取当前的参数 + shardingContext.getShardingParameter(), + //获取当前的任务名称 + shardingContext.getJobName(), + //获取当前任务参数 + shardingContext.getJobParameter(), + //获取任务的id + shardingContext.getTaskId() + )); + System.out.println(shardingContext.getShardingParameter()); + externalViewConfigService.carPostionUpdate( shardingContext.getShardingTotalCount(), shardingContext.getShardingParameter()); + + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java index dce43ce..1f3e853 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java @@ -13,5 +13,5 @@ * @since 2020-10-19 */ public interface IExternalViewConfigService extends IService { - +void carPostionUpdate(int shardingCount,String currSharding); } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java new file mode 100644 index 0000000..30a4bc3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java @@ -0,0 +1,45 @@ +package com.casic.missiles.modular.system.job; + +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import org.apache.shardingsphere.elasticjob.api.ShardingContext; +import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @ClassName MyJob + * @Description 渣土定位数据获取接口 + * @Author lwh + * @Date 2021/2/5 11:20 + * @Version 1.0 + */ +@Component +public class CarPostionJob implements SimpleJob { + @Autowired + private IExternalViewConfigService externalViewConfigService; + @Override + public void execute(ShardingContext shardingContext) { + System.out.println(String.format("%s------Thread ID: %s, 任务总片数: %s, " + "当前分片项: %s,当前参数: %s," + + "当前任务名称: %s,当前任务参数: %s," + + "当前任务的id: %s", + //获取当前线程的id + shardingContext.getJobParameter(), + Thread.currentThread().getId(), + //获取任务总片数 + shardingContext.getShardingTotalCount(), + //获取当前分片项 + shardingContext.getShardingItem(), + //获取当前的参数 + shardingContext.getShardingParameter(), + //获取当前的任务名称 + shardingContext.getJobName(), + //获取当前任务参数 + shardingContext.getJobParameter(), + //获取任务的id + shardingContext.getTaskId() + )); + System.out.println(shardingContext.getShardingParameter()); + externalViewConfigService.carPostionUpdate( shardingContext.getShardingTotalCount(), shardingContext.getShardingParameter()); + + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java index dce43ce..1f3e853 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java @@ -13,5 +13,5 @@ * @since 2020-10-19 */ public interface IExternalViewConfigService extends IService { - +void carPostionUpdate(int shardingCount,String currSharding); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java index 04c97ac..7d5c105 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java @@ -1,15 +1,30 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.ExternalViewConfig; -import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; -import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.mapper.SqlRunner; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; +import com.casic.missiles.modular.system.dto.CarPosData; +import com.casic.missiles.modular.system.dto.SocialResponseDto; +import com.casic.missiles.modular.system.handler.DefaultHttpHeaderHandler; +import com.casic.missiles.modular.system.model.ExternalViewConfig; +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.casic.missiles.modular.system.utils.HttpUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** *

* 共享交换数据集配置表 -共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 + * 共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 *

* * @author stylefeng123 @@ -17,5 +32,30 @@ */ @Service public class ExternalViewConfigServiceImpl extends ServiceImpl implements IExternalViewConfigService { + @Value("${casic.car.url:http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo}") + private String url = "http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo"; + @Transactional(rollbackFor = Exception.class) + @Override + public void carPostionUpdate(int shardingCount, String currSharding) { + //根据分片获取车辆信息 and MOD(vehicleid,{0}) = {1} , new Object[]{shardingCount, currSharding} + List objs = SqlRunner.db().selectObjs("select simcardnum from casic_urban_governance.dcms_car_info where unitid in(select UNITID from casic_urban_governance.dcms_dregs_company) "); + System.out.println(currSharding + ":" + objs.size()); + for (Object obj : objs) { + Map map = new HashMap<>(); + Calendar calendar = Calendar.getInstance(); + String endTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + calendar.add(Calendar.MINUTE, -5); + String beginTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + map.put("simCardNum", String.valueOf(obj)); + map.put("beginTime", beginTime); + map.put("endTime", endTime); + String jsonData = HttpUtils.sendGet(url, map, null, new DefaultHttpHeaderHandler()); + SocialResponseDto carPosData = JSON.parseObject(jsonData, new TypeReference>(){}); + if(carPosData!=null&&carPosData.getData()!=null&&carPosData.getData().getData().size()>0){ + SqlRunner.db().update("update casic_urban_governance.dcms_car_info set recordTime = from_unixtime({0}/1000) where simcardnum={1}",new Object[]{carPosData.getData().getData().get(carPosData.getData().getData().size()-1).getRecordTime(),obj}); + } + } + + } } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java new file mode 100644 index 0000000..30a4bc3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java @@ -0,0 +1,45 @@ +package com.casic.missiles.modular.system.job; + +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import org.apache.shardingsphere.elasticjob.api.ShardingContext; +import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @ClassName MyJob + * @Description 渣土定位数据获取接口 + * @Author lwh + * @Date 2021/2/5 11:20 + * @Version 1.0 + */ +@Component +public class CarPostionJob implements SimpleJob { + @Autowired + private IExternalViewConfigService externalViewConfigService; + @Override + public void execute(ShardingContext shardingContext) { + System.out.println(String.format("%s------Thread ID: %s, 任务总片数: %s, " + "当前分片项: %s,当前参数: %s," + + "当前任务名称: %s,当前任务参数: %s," + + "当前任务的id: %s", + //获取当前线程的id + shardingContext.getJobParameter(), + Thread.currentThread().getId(), + //获取任务总片数 + shardingContext.getShardingTotalCount(), + //获取当前分片项 + shardingContext.getShardingItem(), + //获取当前的参数 + shardingContext.getShardingParameter(), + //获取当前的任务名称 + shardingContext.getJobName(), + //获取当前任务参数 + shardingContext.getJobParameter(), + //获取任务的id + shardingContext.getTaskId() + )); + System.out.println(shardingContext.getShardingParameter()); + externalViewConfigService.carPostionUpdate( shardingContext.getShardingTotalCount(), shardingContext.getShardingParameter()); + + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java index dce43ce..1f3e853 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java @@ -13,5 +13,5 @@ * @since 2020-10-19 */ public interface IExternalViewConfigService extends IService { - +void carPostionUpdate(int shardingCount,String currSharding); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java index 04c97ac..7d5c105 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java @@ -1,15 +1,30 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.ExternalViewConfig; -import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; -import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.mapper.SqlRunner; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; +import com.casic.missiles.modular.system.dto.CarPosData; +import com.casic.missiles.modular.system.dto.SocialResponseDto; +import com.casic.missiles.modular.system.handler.DefaultHttpHeaderHandler; +import com.casic.missiles.modular.system.model.ExternalViewConfig; +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.casic.missiles.modular.system.utils.HttpUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** *

* 共享交换数据集配置表 -共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 + * 共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 *

* * @author stylefeng123 @@ -17,5 +32,30 @@ */ @Service public class ExternalViewConfigServiceImpl extends ServiceImpl implements IExternalViewConfigService { + @Value("${casic.car.url:http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo}") + private String url = "http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo"; + @Transactional(rollbackFor = Exception.class) + @Override + public void carPostionUpdate(int shardingCount, String currSharding) { + //根据分片获取车辆信息 and MOD(vehicleid,{0}) = {1} , new Object[]{shardingCount, currSharding} + List objs = SqlRunner.db().selectObjs("select simcardnum from casic_urban_governance.dcms_car_info where unitid in(select UNITID from casic_urban_governance.dcms_dregs_company) "); + System.out.println(currSharding + ":" + objs.size()); + for (Object obj : objs) { + Map map = new HashMap<>(); + Calendar calendar = Calendar.getInstance(); + String endTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + calendar.add(Calendar.MINUTE, -5); + String beginTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + map.put("simCardNum", String.valueOf(obj)); + map.put("beginTime", beginTime); + map.put("endTime", endTime); + String jsonData = HttpUtils.sendGet(url, map, null, new DefaultHttpHeaderHandler()); + SocialResponseDto carPosData = JSON.parseObject(jsonData, new TypeReference>(){}); + if(carPosData!=null&&carPosData.getData()!=null&&carPosData.getData().getData().size()>0){ + SqlRunner.db().update("update casic_urban_governance.dcms_car_info set recordTime = from_unixtime({0}/1000) where simcardnum={1}",new Object[]{carPosData.getData().getData().get(carPosData.getData().getData().size()-1).getRecordTime(),obj}); + } + } + + } } diff --git a/casic-web/etl/demo/rest-demo.ktr b/casic-web/etl/demo/rest-demo.ktr index d3e4184..2ebb670 100644 --- a/casic-web/etl/demo/rest-demo.ktr +++ b/casic-web/etl/demo/rest-demo.ktr @@ -502,11 +502,440 @@ 读取车辆数据表 + 日期参数encode + Y + + + json转换 + 更新上报时间 + Y + + + 更新上报时间 + 文本文件输出 + Y + + + 日期参数encode REST client Y + + REST client + json转换 + Y + + 日期参数encode + UserDefinedJavaClass + + Y + + 1 + + none + + + + + TRANSFORM_CLASS + Processor + // 生成的代码片段 +public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception { + if (first) { + first = false; + } + + Object[] r = getRow(); + + + if (r == null) { + setOutputDone(); + return false; + } + + r = createOutputRow(r, data.outputRowMeta.size()); + String beginTime= get(Fields.In, "beginTime").getString(r); + String endTime= get(Fields.In, "endTime").getString(r); + String simcardnum = get(Fields.In, "simcardnum").getString(r); + String host=get(Fields.In, "host").getString(r); + host=host+"?simCardNum="+simcardnum+"&beginTime="+java.net.URLEncoder.encode(beginTime,"UTF-8")+"&endTime="+java.net.URLEncoder.encode(endTime,"UTF-8"); + get(Fields.Out,"beginTime").setValue(r, java.net.URLEncoder.encode(beginTime,"UTF-8")); + get(Fields.Out,"endTime").setValue(r,java.net.URLEncoder.encode(endTime,"UTF-8")); + get(Fields.Out,"host").setValue(r,host); + putRow(data.outputRowMeta, r); + + return true; +} + + + + + + N + + + + + + + + + + + + + 400 + 32 + Y + + + + 生成随机数 + RandomValue + + Y + + 1 + + none + + + + + + + + + + + + + + 128 + 32 + Y + + + + 读取车辆数据表 + TableInput + + Y + + 1 + + none + + + 163_casic_urban_governance + SELECT +simcardnum +,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') as endTime, +DATE_FORMAT(date_sub(NOW(),INTERVAL 1 MINUTE),'%Y-%m-%d %H:%i:%s') as beginTime +,'http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo' as host +FROM casic_urban_governance.dcms_car_info +where unitid in(select UNITID from dcms_dregs_company) + 0 + + N + N + N + N + + + String + normal + simcardnum + 500 + -1 + 读取车辆数据表 + simcardnum + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + endTime + 24 + -1 + 读取车辆数据表 + endTime + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + beginTime + 24 + -1 + 读取车辆数据表 + beginTime + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + host + 87 + -1 + 读取车辆数据表 + host + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + + + + + + + + + + 256 + 32 + Y + + + + json转换 + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + + + + N + N + + + + simcardnum + $..simcardnum + String + + + + + -1 + -1 + none + N + + + recordTime + $..recordTime + None + + + + + -1 + -1 + none + N + + + 0 + Y + N + result + + + + + + + + + + + + + + + + + + 688 + 96 + Y + + + + 更新上报时间 + ExecSQL + + Y + + 1 + + none + + + 163_casic_urban_governance + Y + N + Y + N + update dcms_car_info set recordTime = from_unixtime(?/1000) where simcardnum='?' + N + + + + + + + recordTime + + + simcardnum + + + + + + + + + + + + 688 + 208 + Y + + + + 文本文件输出 + TextFileOutput + + Y + + 1 + + none + + + ; + " + N + N +
Y
+
N
+ DOS + None + + + N + + Y + + E:\\test.txt + N + N + txt + N + N + N + N + N + N + + Y + N + N + + + + + + + + + + + + + + 480 + 208 + Y + +
+ REST client Rest @@ -517,9 +946,9 @@ none - JSON - POST - http://localhost:11307/route/testJob + TEXT PLAIN + GET + Y N @@ -553,336 +982,8 @@ - 432 - 128 - Y - - - - 生成随机数 - RandomValue - - Y - - 1 - - none - - - - - - - - - - - - - - 160 - 128 - Y - - - - 读取车辆数据表 - TableInput - - Y - - 1 - - none - - - 163_casic_urban_governance - SELECT - unitid -, unitname -, vehiclenum -, simcardnum -, regionid -, regionname -, coordinatex -, coordinatey -, sid -, vehicleid -,concat('http://localhost:11307/route/testJob?simcardnum=',simcardnum) as host -FROM casic_urban_governance.dcms_car_info - - 0 - - N - N - N - N - - - String - normal - unitid - 400 - -1 - 读取车辆数据表 - unitid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - unitname - 600 - -1 - 读取车辆数据表 - unitname - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - vehiclenum - 400 - -1 - 读取车辆数据表 - vehiclenum - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - simcardnum - 500 - -1 - 读取车辆数据表 - simcardnum - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - regionid - 500 - -1 - 读取车辆数据表 - regionid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - regionname - 600 - -1 - 读取车辆数据表 - regionname - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - coordinatex - 600 - -1 - 读取车辆数据表 - coordinatex - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - coordinatey - 600 - -1 - 读取车辆数据表 - coordinatey - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - Integer - normal - sid - 15 - 0 - 读取车辆数据表 - sid - ####0;-####0 - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - vehicleid - 400 - -1 - 读取车辆数据表 - vehicleid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - host - 548 - -1 - 读取车辆数据表 - host - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - - - - - - - - - - 304 - 128 + 544 + 32 Y diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java new file mode 100644 index 0000000..30a4bc3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java @@ -0,0 +1,45 @@ +package com.casic.missiles.modular.system.job; + +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import org.apache.shardingsphere.elasticjob.api.ShardingContext; +import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @ClassName MyJob + * @Description 渣土定位数据获取接口 + * @Author lwh + * @Date 2021/2/5 11:20 + * @Version 1.0 + */ +@Component +public class CarPostionJob implements SimpleJob { + @Autowired + private IExternalViewConfigService externalViewConfigService; + @Override + public void execute(ShardingContext shardingContext) { + System.out.println(String.format("%s------Thread ID: %s, 任务总片数: %s, " + "当前分片项: %s,当前参数: %s," + + "当前任务名称: %s,当前任务参数: %s," + + "当前任务的id: %s", + //获取当前线程的id + shardingContext.getJobParameter(), + Thread.currentThread().getId(), + //获取任务总片数 + shardingContext.getShardingTotalCount(), + //获取当前分片项 + shardingContext.getShardingItem(), + //获取当前的参数 + shardingContext.getShardingParameter(), + //获取当前的任务名称 + shardingContext.getJobName(), + //获取当前任务参数 + shardingContext.getJobParameter(), + //获取任务的id + shardingContext.getTaskId() + )); + System.out.println(shardingContext.getShardingParameter()); + externalViewConfigService.carPostionUpdate( shardingContext.getShardingTotalCount(), shardingContext.getShardingParameter()); + + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java index dce43ce..1f3e853 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java @@ -13,5 +13,5 @@ * @since 2020-10-19 */ public interface IExternalViewConfigService extends IService { - +void carPostionUpdate(int shardingCount,String currSharding); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java index 04c97ac..7d5c105 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java @@ -1,15 +1,30 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.ExternalViewConfig; -import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; -import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.mapper.SqlRunner; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; +import com.casic.missiles.modular.system.dto.CarPosData; +import com.casic.missiles.modular.system.dto.SocialResponseDto; +import com.casic.missiles.modular.system.handler.DefaultHttpHeaderHandler; +import com.casic.missiles.modular.system.model.ExternalViewConfig; +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.casic.missiles.modular.system.utils.HttpUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** *

* 共享交换数据集配置表 -共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 + * 共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 *

* * @author stylefeng123 @@ -17,5 +32,30 @@ */ @Service public class ExternalViewConfigServiceImpl extends ServiceImpl implements IExternalViewConfigService { + @Value("${casic.car.url:http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo}") + private String url = "http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo"; + @Transactional(rollbackFor = Exception.class) + @Override + public void carPostionUpdate(int shardingCount, String currSharding) { + //根据分片获取车辆信息 and MOD(vehicleid,{0}) = {1} , new Object[]{shardingCount, currSharding} + List objs = SqlRunner.db().selectObjs("select simcardnum from casic_urban_governance.dcms_car_info where unitid in(select UNITID from casic_urban_governance.dcms_dregs_company) "); + System.out.println(currSharding + ":" + objs.size()); + for (Object obj : objs) { + Map map = new HashMap<>(); + Calendar calendar = Calendar.getInstance(); + String endTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + calendar.add(Calendar.MINUTE, -5); + String beginTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + map.put("simCardNum", String.valueOf(obj)); + map.put("beginTime", beginTime); + map.put("endTime", endTime); + String jsonData = HttpUtils.sendGet(url, map, null, new DefaultHttpHeaderHandler()); + SocialResponseDto carPosData = JSON.parseObject(jsonData, new TypeReference>(){}); + if(carPosData!=null&&carPosData.getData()!=null&&carPosData.getData().getData().size()>0){ + SqlRunner.db().update("update casic_urban_governance.dcms_car_info set recordTime = from_unixtime({0}/1000) where simcardnum={1}",new Object[]{carPosData.getData().getData().get(carPosData.getData().getData().size()-1).getRecordTime(),obj}); + } + } + + } } diff --git a/casic-web/etl/demo/rest-demo.ktr b/casic-web/etl/demo/rest-demo.ktr index d3e4184..2ebb670 100644 --- a/casic-web/etl/demo/rest-demo.ktr +++ b/casic-web/etl/demo/rest-demo.ktr @@ -502,11 +502,440 @@ 读取车辆数据表 + 日期参数encode + Y + + + json转换 + 更新上报时间 + Y + + + 更新上报时间 + 文本文件输出 + Y + + + 日期参数encode REST client Y + + REST client + json转换 + Y + + 日期参数encode + UserDefinedJavaClass + + Y + + 1 + + none + + + + + TRANSFORM_CLASS + Processor + // 生成的代码片段 +public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception { + if (first) { + first = false; + } + + Object[] r = getRow(); + + + if (r == null) { + setOutputDone(); + return false; + } + + r = createOutputRow(r, data.outputRowMeta.size()); + String beginTime= get(Fields.In, "beginTime").getString(r); + String endTime= get(Fields.In, "endTime").getString(r); + String simcardnum = get(Fields.In, "simcardnum").getString(r); + String host=get(Fields.In, "host").getString(r); + host=host+"?simCardNum="+simcardnum+"&beginTime="+java.net.URLEncoder.encode(beginTime,"UTF-8")+"&endTime="+java.net.URLEncoder.encode(endTime,"UTF-8"); + get(Fields.Out,"beginTime").setValue(r, java.net.URLEncoder.encode(beginTime,"UTF-8")); + get(Fields.Out,"endTime").setValue(r,java.net.URLEncoder.encode(endTime,"UTF-8")); + get(Fields.Out,"host").setValue(r,host); + putRow(data.outputRowMeta, r); + + return true; +} + + + + + + N + + + + + + + + + + + + + 400 + 32 + Y + + + + 生成随机数 + RandomValue + + Y + + 1 + + none + + + + + + + + + + + + + + 128 + 32 + Y + + + + 读取车辆数据表 + TableInput + + Y + + 1 + + none + + + 163_casic_urban_governance + SELECT +simcardnum +,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') as endTime, +DATE_FORMAT(date_sub(NOW(),INTERVAL 1 MINUTE),'%Y-%m-%d %H:%i:%s') as beginTime +,'http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo' as host +FROM casic_urban_governance.dcms_car_info +where unitid in(select UNITID from dcms_dregs_company) + 0 + + N + N + N + N + + + String + normal + simcardnum + 500 + -1 + 读取车辆数据表 + simcardnum + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + endTime + 24 + -1 + 读取车辆数据表 + endTime + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + beginTime + 24 + -1 + 读取车辆数据表 + beginTime + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + host + 87 + -1 + 读取车辆数据表 + host + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + + + + + + + + + + 256 + 32 + Y + + + + json转换 + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + + + + N + N + + + + simcardnum + $..simcardnum + String + + + + + -1 + -1 + none + N + + + recordTime + $..recordTime + None + + + + + -1 + -1 + none + N + + + 0 + Y + N + result + + + + + + + + + + + + + + + + + + 688 + 96 + Y + + + + 更新上报时间 + ExecSQL + + Y + + 1 + + none + + + 163_casic_urban_governance + Y + N + Y + N + update dcms_car_info set recordTime = from_unixtime(?/1000) where simcardnum='?' + N + + + + + + + recordTime + + + simcardnum + + + + + + + + + + + + 688 + 208 + Y + + + + 文本文件输出 + TextFileOutput + + Y + + 1 + + none + + + ; + " + N + N +
Y
+
N
+ DOS + None + + + N + + Y + + E:\\test.txt + N + N + txt + N + N + N + N + N + N + + Y + N + N + + + + + + + + + + + + + + 480 + 208 + Y + +
+ REST client Rest @@ -517,9 +946,9 @@ none - JSON - POST - http://localhost:11307/route/testJob + TEXT PLAIN + GET + Y N @@ -553,336 +982,8 @@ - 432 - 128 - Y - - - - 生成随机数 - RandomValue - - Y - - 1 - - none - - - - - - - - - - - - - - 160 - 128 - Y - - - - 读取车辆数据表 - TableInput - - Y - - 1 - - none - - - 163_casic_urban_governance - SELECT - unitid -, unitname -, vehiclenum -, simcardnum -, regionid -, regionname -, coordinatex -, coordinatey -, sid -, vehicleid -,concat('http://localhost:11307/route/testJob?simcardnum=',simcardnum) as host -FROM casic_urban_governance.dcms_car_info - - 0 - - N - N - N - N - - - String - normal - unitid - 400 - -1 - 读取车辆数据表 - unitid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - unitname - 600 - -1 - 读取车辆数据表 - unitname - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - vehiclenum - 400 - -1 - 读取车辆数据表 - vehiclenum - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - simcardnum - 500 - -1 - 读取车辆数据表 - simcardnum - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - regionid - 500 - -1 - 读取车辆数据表 - regionid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - regionname - 600 - -1 - 读取车辆数据表 - regionname - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - coordinatex - 600 - -1 - 读取车辆数据表 - coordinatex - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - coordinatey - 600 - -1 - 读取车辆数据表 - coordinatey - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - Integer - normal - sid - 15 - 0 - 读取车辆数据表 - sid - ####0;-####0 - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - vehicleid - 400 - -1 - 读取车辆数据表 - vehicleid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - host - 548 - -1 - 读取车辆数据表 - host - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - - - - - - - - - - 304 - 128 + 544 + 32 Y diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 441e688..026ea9c 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -62,11 +62,6 @@ com.casic - casic-job-starter - ${extension.version} - - - com.casic casic-server ${pro.version} @@ -90,6 +85,12 @@ casic-elastic-db ${extension.version} + + com.casic + casic-job-starter + ${extension.version} + + diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 16a996d..a29fa43 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -47,6 +47,12 @@ casic-admin-support ${admin.version} + + com.casic + casic-job-support + ${extension.version} + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java new file mode 100644 index 0000000..f743be0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPosData.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @ClassName CarPosData + * @Description 车辆定位数据集合 + * @Author lwh + * @Date 2021/4/1 12:49 + * @Version 1.0 + */ +@Data +public class CarPosData { + private List data; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java new file mode 100644 index 0000000..fb58c67 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/CarPostionDTO.java @@ -0,0 +1,33 @@ +package com.casic.missiles.modular.system.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @ClassName CarPostionDTO + * @Description 定位数据DTO + * @Author lwh + * @Date 2021/4/1 12:50 + * @Version 1.0 + */ +@Data +public class CarPostionDTO { + @JSONField(name = "posID") + private Integer posID; + @JSONField(name = "coordinateX") + private Double coordinateX; + @JSONField(name = "coordinateY") + private Double coordinateY; + @JSONField(name = "longitude") + private Double longitude; + @JSONField(name = "latitude") + private Double latitude; + @JSONField(name = "simCardNum") + private String simCardNum; + @JSONField(name = "speed") + private Integer speed; + @JSONField(name = "recordTime") + private Long recordTime; + @JSONField(name = "uploadTime") + private Long uploadTime; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java new file mode 100644 index 0000000..30a4bc3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/job/CarPostionJob.java @@ -0,0 +1,45 @@ +package com.casic.missiles.modular.system.job; + +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import org.apache.shardingsphere.elasticjob.api.ShardingContext; +import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @ClassName MyJob + * @Description 渣土定位数据获取接口 + * @Author lwh + * @Date 2021/2/5 11:20 + * @Version 1.0 + */ +@Component +public class CarPostionJob implements SimpleJob { + @Autowired + private IExternalViewConfigService externalViewConfigService; + @Override + public void execute(ShardingContext shardingContext) { + System.out.println(String.format("%s------Thread ID: %s, 任务总片数: %s, " + "当前分片项: %s,当前参数: %s," + + "当前任务名称: %s,当前任务参数: %s," + + "当前任务的id: %s", + //获取当前线程的id + shardingContext.getJobParameter(), + Thread.currentThread().getId(), + //获取任务总片数 + shardingContext.getShardingTotalCount(), + //获取当前分片项 + shardingContext.getShardingItem(), + //获取当前的参数 + shardingContext.getShardingParameter(), + //获取当前的任务名称 + shardingContext.getJobName(), + //获取当前任务参数 + shardingContext.getJobParameter(), + //获取任务的id + shardingContext.getTaskId() + )); + System.out.println(shardingContext.getShardingParameter()); + externalViewConfigService.carPostionUpdate( shardingContext.getShardingTotalCount(), shardingContext.getShardingParameter()); + + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java index dce43ce..1f3e853 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IExternalViewConfigService.java @@ -13,5 +13,5 @@ * @since 2020-10-19 */ public interface IExternalViewConfigService extends IService { - +void carPostionUpdate(int shardingCount,String currSharding); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java index 04c97ac..7d5c105 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ExternalViewConfigServiceImpl.java @@ -1,15 +1,30 @@ package com.casic.missiles.modular.system.service.impl; -import com.casic.missiles.modular.system.model.ExternalViewConfig; -import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; -import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.mapper.SqlRunner; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.casic.missiles.core.util.DateUtil; +import com.casic.missiles.modular.system.dao.ExternalViewConfigMapper; +import com.casic.missiles.modular.system.dto.CarPosData; +import com.casic.missiles.modular.system.dto.SocialResponseDto; +import com.casic.missiles.modular.system.handler.DefaultHttpHeaderHandler; +import com.casic.missiles.modular.system.model.ExternalViewConfig; +import com.casic.missiles.modular.system.service.IExternalViewConfigService; +import com.casic.missiles.modular.system.utils.HttpUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** *

* 共享交换数据集配置表 -共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 + * 共享交换数字模型地址:http://11.100.5.8:8080/platformbigdata/modelservlet 服务实现类 *

* * @author stylefeng123 @@ -17,5 +32,30 @@ */ @Service public class ExternalViewConfigServiceImpl extends ServiceImpl implements IExternalViewConfigService { + @Value("${casic.car.url:http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo}") + private String url = "http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo"; + @Transactional(rollbackFor = Exception.class) + @Override + public void carPostionUpdate(int shardingCount, String currSharding) { + //根据分片获取车辆信息 and MOD(vehicleid,{0}) = {1} , new Object[]{shardingCount, currSharding} + List objs = SqlRunner.db().selectObjs("select simcardnum from casic_urban_governance.dcms_car_info where unitid in(select UNITID from casic_urban_governance.dcms_dregs_company) "); + System.out.println(currSharding + ":" + objs.size()); + for (Object obj : objs) { + Map map = new HashMap<>(); + Calendar calendar = Calendar.getInstance(); + String endTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + calendar.add(Calendar.MINUTE, -5); + String beginTime = DateUtil.format(calendar.getTime(), "yyy-MM-dd HH:mm:ss"); + map.put("simCardNum", String.valueOf(obj)); + map.put("beginTime", beginTime); + map.put("endTime", endTime); + String jsonData = HttpUtils.sendGet(url, map, null, new DefaultHttpHeaderHandler()); + SocialResponseDto carPosData = JSON.parseObject(jsonData, new TypeReference>(){}); + if(carPosData!=null&&carPosData.getData()!=null&&carPosData.getData().getData().size()>0){ + SqlRunner.db().update("update casic_urban_governance.dcms_car_info set recordTime = from_unixtime({0}/1000) where simcardnum={1}",new Object[]{carPosData.getData().getData().get(carPosData.getData().getData().size()-1).getRecordTime(),obj}); + } + } + + } } diff --git a/casic-web/etl/demo/rest-demo.ktr b/casic-web/etl/demo/rest-demo.ktr index d3e4184..2ebb670 100644 --- a/casic-web/etl/demo/rest-demo.ktr +++ b/casic-web/etl/demo/rest-demo.ktr @@ -502,11 +502,440 @@ 读取车辆数据表 + 日期参数encode + Y + + + json转换 + 更新上报时间 + Y + + + 更新上报时间 + 文本文件输出 + Y + + + 日期参数encode REST client Y + + REST client + json转换 + Y + + 日期参数encode + UserDefinedJavaClass + + Y + + 1 + + none + + + + + TRANSFORM_CLASS + Processor + // 生成的代码片段 +public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws Exception { + if (first) { + first = false; + } + + Object[] r = getRow(); + + + if (r == null) { + setOutputDone(); + return false; + } + + r = createOutputRow(r, data.outputRowMeta.size()); + String beginTime= get(Fields.In, "beginTime").getString(r); + String endTime= get(Fields.In, "endTime").getString(r); + String simcardnum = get(Fields.In, "simcardnum").getString(r); + String host=get(Fields.In, "host").getString(r); + host=host+"?simCardNum="+simcardnum+"&beginTime="+java.net.URLEncoder.encode(beginTime,"UTF-8")+"&endTime="+java.net.URLEncoder.encode(endTime,"UTF-8"); + get(Fields.Out,"beginTime").setValue(r, java.net.URLEncoder.encode(beginTime,"UTF-8")); + get(Fields.Out,"endTime").setValue(r,java.net.URLEncoder.encode(endTime,"UTF-8")); + get(Fields.Out,"host").setValue(r,host); + putRow(data.outputRowMeta, r); + + return true; +} + + + + + + N + + + + + + + + + + + + + 400 + 32 + Y + + + + 生成随机数 + RandomValue + + Y + + 1 + + none + + + + + + + + + + + + + + 128 + 32 + Y + + + + 读取车辆数据表 + TableInput + + Y + + 1 + + none + + + 163_casic_urban_governance + SELECT +simcardnum +,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') as endTime, +DATE_FORMAT(date_sub(NOW(),INTERVAL 1 MINUTE),'%Y-%m-%d %H:%i:%s') as beginTime +,'http://10.225.240.14:8087/platform-interface-rongjiang/rest/ZhaTuInterface/queryGpsInfo' as host +FROM casic_urban_governance.dcms_car_info +where unitid in(select UNITID from dcms_dregs_company) + 0 + + N + N + N + N + + + String + normal + simcardnum + 500 + -1 + 读取车辆数据表 + simcardnum + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + endTime + 24 + -1 + 读取车辆数据表 + endTime + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + beginTime + 24 + -1 + 读取车辆数据表 + beginTime + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + String + normal + host + 87 + -1 + 读取车辆数据表 + host + + . + , + + none + N + Y + 0 + N + N + N + zh_CN + Asia/Shanghai + N + + + + + + + + + + + + 256 + 32 + Y + + + + json转换 + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + + + + N + N + + + + simcardnum + $..simcardnum + String + + + + + -1 + -1 + none + N + + + recordTime + $..recordTime + None + + + + + -1 + -1 + none + N + + + 0 + Y + N + result + + + + + + + + + + + + + + + + + + 688 + 96 + Y + + + + 更新上报时间 + ExecSQL + + Y + + 1 + + none + + + 163_casic_urban_governance + Y + N + Y + N + update dcms_car_info set recordTime = from_unixtime(?/1000) where simcardnum='?' + N + + + + + + + recordTime + + + simcardnum + + + + + + + + + + + + 688 + 208 + Y + + + + 文本文件输出 + TextFileOutput + + Y + + 1 + + none + + + ; + " + N + N +
Y
+
N
+ DOS + None + + + N + + Y + + E:\\test.txt + N + N + txt + N + N + N + N + N + N + + Y + N + N + + + + + + + + + + + + + + 480 + 208 + Y + +
+ REST client Rest @@ -517,9 +946,9 @@ none - JSON - POST - http://localhost:11307/route/testJob + TEXT PLAIN + GET + Y N @@ -553,336 +982,8 @@ - 432 - 128 - Y - - - - 生成随机数 - RandomValue - - Y - - 1 - - none - - - - - - - - - - - - - - 160 - 128 - Y - - - - 读取车辆数据表 - TableInput - - Y - - 1 - - none - - - 163_casic_urban_governance - SELECT - unitid -, unitname -, vehiclenum -, simcardnum -, regionid -, regionname -, coordinatex -, coordinatey -, sid -, vehicleid -,concat('http://localhost:11307/route/testJob?simcardnum=',simcardnum) as host -FROM casic_urban_governance.dcms_car_info - - 0 - - N - N - N - N - - - String - normal - unitid - 400 - -1 - 读取车辆数据表 - unitid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - unitname - 600 - -1 - 读取车辆数据表 - unitname - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - vehiclenum - 400 - -1 - 读取车辆数据表 - vehiclenum - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - simcardnum - 500 - -1 - 读取车辆数据表 - simcardnum - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - regionid - 500 - -1 - 读取车辆数据表 - regionid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - regionname - 600 - -1 - 读取车辆数据表 - regionname - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - coordinatex - 600 - -1 - 读取车辆数据表 - coordinatex - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - coordinatey - 600 - -1 - 读取车辆数据表 - coordinatey - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - Integer - normal - sid - 15 - 0 - 读取车辆数据表 - sid - ####0;-####0 - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - vehicleid - 400 - -1 - 读取车辆数据表 - vehicleid - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - String - normal - host - 548 - -1 - 读取车辆数据表 - host - - . - , - - none - N - Y - 0 - N - N - N - zh_CN - Asia/Shanghai - N - - - - - - - - - - - - 304 - 128 + 544 + 32 Y diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 441e688..026ea9c 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -62,11 +62,6 @@ com.casic - casic-job-starter - ${extension.version} - - - com.casic casic-server ${pro.version} @@ -90,6 +85,12 @@ casic-elastic-db ${extension.version} + + com.casic + casic-job-starter + ${extension.version} + + diff --git a/casic-web/src/main/resources/config/application.yml b/casic-web/src/main/resources/config/application.yml index 890c9d0..f2590f2 100644 --- a/casic-web/src/main/resources/config/application.yml +++ b/casic-web/src/main/resources/config/application.yml @@ -38,7 +38,7 @@ elasticjob: enabled: true reg-center: - serverLists: localhost:2181 + serverLists: zookeeper.com:2181 namespace: elasticjob-lite-springboot digest: admin:Casic203 monitor: