提交 82aa679b authored 作者: 孙于凯's avatar 孙于凯

feat:新增培训人数 志愿者人数 网点培训人数转移接口

上级 87736ac6
......@@ -32,11 +32,13 @@
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......@@ -78,6 +80,18 @@
<artifactId>jpa-spec</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.4</version>
</dependency>
</dependencies>
<build>
......
......@@ -41,4 +41,15 @@ public class DataSourceConfig {
.build();
}
/**
* yl_pre
*/
@Bean(name = "remoteDataSource2")
@Qualifier("remoteDataSource2")
@ConfigurationProperties(prefix="spring.datasource.remote2")
public DataSource secondaryDataSource2() {
log.info("远程数据源创建中————");
return DruidDataSourceBuilder.create()
.build();
}
}
package com.tykj.transfer.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* @author syk
*/
public class RedisConfig {
// @Bean
// @ConditionalOnMissingBean(name = "redisTemplate")
// public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
// RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
// // fastjson序列化
// FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
// // key的序列化采用StringRedisSerializer
// redisTemplate.setKeySerializer(new StringRedisSerializer());
// redisTemplate.setHashKeySerializer(new StringRedisSerializer());
// // value的序列化采用FastJsonRedisSerializer
// redisTemplate.setValueSerializer(fastJsonRedisSerializer);
// redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
// redisTemplate.setConnectionFactory(connectionFactory);
//
// redisTemplate.afterPropertiesSet();
// return redisTemplate;
// }
@Bean
@ConditionalOnMissingBean(StringRedisTemplate.class)
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory connectionFactory) {
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setConnectionFactory(connectionFactory);
return stringRedisTemplate;
}
}
package com.tykj.transfer.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings;
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.persistence.EntityManager;
import javax.sql.DataSource;
import java.util.Map;
@SuppressWarnings("ALL")
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "entityManagerFactoryRemote2",
transactionManagerRef = "transactionManagerRemote2",
basePackages = {"com.tykj.transfer.local_dao"}
)
@EnableConfigurationProperties(JpaProperties.class)
public class RemoteConfig2 {
@Autowired
@Qualifier("remoteDataSource2")
private DataSource remoteDataSource;
@Autowired
private HibernateProperties properties;
@Bean(name = "entityManagerRemote2")
public EntityManager entityManager(EntityManagerFactoryBuilder builder) {
return entityManagerFactoryRemote1(builder).getObject().createEntityManager();
}
@Bean(name = "entityManagerFactoryRemote2")
public LocalContainerEntityManagerFactoryBean entityManagerFactoryRemote1(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(remoteDataSource)
.properties(properties.determineHibernateProperties(jpaProperties.getProperties(), new
HibernateSettings()))
.packages("com.tykj.transfer.local_entity")
.persistenceUnit("remotePersistenceUnit2")
.build();
}
@Autowired
private JpaProperties jpaProperties;
private Map<String, String> getVendorProperties() {
return jpaProperties.getProperties();
}
@Bean(name = "transactionManagerRemote2")
public PlatformTransactionManager transactionManagerRemote(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(entityManagerFactoryRemote1(builder).getObject());
}
}
package com.tykj.transfer.controller;
import com.tykj.transfer.slave_service.Biz088DcActivityStatisticsService;
import com.tykj.transfer.slave_service.Biz088DcNetworkStatisticsService;
import com.tykj.transfer.slave_service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -19,15 +18,24 @@ import javax.annotation.Resource;
public class transferController {
@Resource
private Biz088DcNetworkStatisticsService biz088DcBranchTrainStatisticsService;
private Biz088DcNetworkStatisticsService biz088DcNetworkStatisticsService;
@Resource
private Biz088DcActivityStatisticsService biz088DcActivityStatisticsService;
@Resource
private Biz088DcBranchTrainStatisticsService biz088DcBranchTrainStatisticsService;
@Resource
private Biz088DcTrainStatisticsService biz088DcTrainStatisticsService;
@Resource
private Biz088DcVolunteerStatisticsService biz088DcVolunteerStatisticsService;
@GetMapping("/tranBranch")
@ApiOperation("网点数据转移")
public void tranBranch() {
biz088DcBranchTrainStatisticsService.transferBranch();
biz088DcNetworkStatisticsService.transferBranch();
}
@GetMapping("/tranActivity")
......@@ -35,4 +43,23 @@ public class transferController {
public void tranActivity() {
biz088DcActivityStatisticsService.transferActivity();
}
@GetMapping("/transferBranchApply")
@ApiOperation("网点培训人数转移")
public void transferBranchApply() {
biz088DcBranchTrainStatisticsService.transferBranchApply();
}
@GetMapping("/transferTrain")
@ApiOperation("培训人数转移")
public void transferTrain(){
biz088DcTrainStatisticsService.transferTrain();
}
@GetMapping("/transferVolunteer")
@ApiOperation("志愿者人数转移")
public void transferVolunteer(){
biz088DcVolunteerStatisticsService.transferVolunteer();
}
}
......@@ -22,6 +22,7 @@ public interface ActivitiesDao extends JpaRepository<Activity, Long> {
List<Activity> findAllByCreatedAtAfter(Date date);
@Query(value = "SELECT * FROM share_yl_activities WHERE branch_id = ?1 AND DATA_ACTIVE_STATUS=1",nativeQuery = true)
List<Activity> findAllByBranchId(Long branchId);
}
package com.tykj.transfer.dao;
import com.tykj.transfer.entity.ActivityApply;
import com.tykj.transfer.entity.Branches;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
public interface ActivityApplyDao extends JpaRepository<ActivityApply, Long>, JpaSpecificationExecutor<ActivityApply> {
@Query(value = "SELECT count(*) FROM share_yl_activity_applies WHERE activyty_id = ?1",nativeQuery = true)
Long getActivityApplyCount(Long activyty_id);
}
......@@ -23,4 +23,5 @@ public interface BranchesDao extends JpaRepository<Branches, Long> {
List<Branches> findAllByUpdatedAtAfter(Date date);
Branches findAllByName(String name);
}
package com.tykj.transfer.dao;
import com.tykj.transfer.entity.RegionModelDo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
/**
* @author Ozoz.L cnljj1995@gmail.com
* on 5/30/21
*/
public interface RegionModelRepository extends JpaRepository<RegionModelDo, String> {
@Query(value = "SELECT * FROM region_data WHERE parent_id = ?1",nativeQuery = true)
List<RegionModelDo> getRegionVo(String area);
}
package com.tykj.transfer.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* entity class for activity_applies
*/
@Data
@Entity
@ApiModel("培训人")
@Table(name = "share_yl_activity_applies",schema = "activity_applies")
//@Where(clause = "DATA_ACTIVE_STATUS = '1'")
public class ActivityApply {
/**
* id
*/
@Id
@Column(name = "id")
@ApiModelProperty(name = "id")
private Long id;
/**
* 活动id
*/
@Column(name = "activyty_id")
@ApiModelProperty(name = "活动id")
private Long activytyId;
/**
* 姓名
*/
@Column(name = "name")
@ApiModelProperty(name = "姓名")
private String name;
/**
* 男 女
*/
@Column(name = "gender")
@ApiModelProperty(name = "男 女")
private String gender;
/**
* 年龄123456
*/
@Column(name = "age")
@ApiModelProperty(name = "年龄123456")
private Integer age;
/**
* 电话
*/
@Column(name = "phone")
@ApiModelProperty(name = "电话")
private String phone;
/**
* createdAt
*/
@Column(name = "created_at")
@ApiModelProperty(name = "null")
private Date createdAt;
/**
* updatedAt
*/
@Column(name = "updated_at")
@ApiModelProperty(name = "null")
private Date updatedAt;
@Transient
@Column(name = "area")
@ApiModelProperty(name = "区域")
private String area;
@Transient
@Column(name = "branch")
@ApiModelProperty(name = "网点")
private Long branch;
/**
* 状态 1:正常 0:已删除
*/
@Column(name = "DATA_ACTIVE_STATUS")
@ApiModelProperty(name = "状态 1:正常 0:已删除")
private String dataActiveStatus;
@Column(name = "DATA_EXCEPTION")
private String dataException;
@Column(name = "DATA_STATE")
private String dataState;
@Column(name = "DATA_UPDATE_TIME")
private String dataUpdateTime;
}
package com.tykj.transfer.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* <h4>Description : </h4>
*
* @Author czq
* @Date 5/30/21 10:57 AM
* @Version 1.0
*/
@Table(name = "region_data")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
public class RegionModelDo {
/**
* 主键id
*/
@Id
private String regionId;
/**
* 行政区名称
*/
private String name;
/**
* 行政区域代码
*/
private String code;
/**
* 地区级别
*/
private String level;
/**
* 上级id
*/
private String parentId;
}
package com.tykj.transfer.entity.vo;
import com.tykj.transfer.entity.Branches;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* <h4>Description : 省、市地图统计数据</h4>
*
* @Author czq
* @Date 5/28/21 3:19 PM
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AreaDataVo {
/**
* 科技服务队数量,即网点数量
*/
private Integer branchesCount = 0;
/**
* 科技志愿者数量
*/
private Long volunteerCount = 0L;
/**
* 累计培训数量
*/
private Long trainCount = 0L;
/**
* 网点信息
*/
private List<Branches> branches = new ArrayList<>();
}
package com.tykj.transfer.entity.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <h4>Description : 科技志愿服务队排名</h4>
*
* @Author czq
* @Date 5/28/21 3:47 PM
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BranchesVo {
/**
* 科技志愿服务队名称,即网点名称
*/
private String name;
/**
* 志愿服务者数量
*/
private Long count;
}
package com.tykj.transfer.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("科普专项大屏视图")
public class PageVo {
/**
* 累计培训人数
*/
@ApiModelProperty(name = "累计培训人数")
private long trainCount = 0;
/**
* 科技志愿者数量
*/
@ApiModelProperty(name = "科技志愿者总量")
private long volunteerCount = 0;
/**
* 网点数量
*/
@ApiModelProperty(name = "网点数量")
private long branchesCount = 0;
/**
* 男女统计
*/
@ApiModelProperty(name = "男女统计")
private Map<String,Long> sexCount = new HashMap<>();
/**
* 年龄分布统计
*/
@ApiModelProperty(name = "年龄分布统计")
private Map<Integer,Long> ageCounter = new HashMap<>();
/**
* 志愿者学历统计
*/
@ApiModelProperty(name = "志愿者学历统计")
private Map<String,Long> eduCount = new HashMap<>();
/**
* 政治面貌统计
*/
@ApiModelProperty(name = "政治面貌统计")
private Map<Integer,Long> faceCount = new HashMap<>();
/**
* 从业类别统计
*/
@ApiModelProperty(name = "从业类别统计")
private Map<Integer,Long> workTypeCount = new HashMap<>();
/**
* 网点排序
*/
@ApiModelProperty(name = "明星服务队")
private List<BranchesVo> branchesList = new ArrayList<>();
/**
* 地图数据和两个柱状图数据
*/
@ApiModelProperty(name = "地图数据和两个柱状图数据")
private Map<String, AreaDataVo> area = new HashMap<>();
}
package com.tykj.transfer.local_dao;
import com.tykj.transfer.local_entity.YlActivityStatistics;
import com.tykj.transfer.pojo.Biz088DcActivityStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface YlActivityStatisticsDao extends JpaRepository<YlActivityStatistics, Long> {
}
package com.tykj.transfer.local_dao;
import com.tykj.transfer.local_entity.YlBranchTrainStatistics;
import com.tykj.transfer.pojo.Biz088DcBranchTrainStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface YlBranchTrainStatisticsDao extends JpaRepository<YlBranchTrainStatistics, String> {
}
package com.tykj.transfer.local_dao;
import com.tykj.transfer.local_entity.YlNetworkStatistics;
import com.tykj.transfer.pojo.Biz088DcNetworkStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface YlNetworkStatisticsDao extends JpaRepository<YlNetworkStatistics, Long> {
}
package com.tykj.transfer.local_dao;
import com.tykj.transfer.local_entity.YlTrainStatistics;
import com.tykj.transfer.pojo.Biz088DcTrainStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface YlTrainStatisticsDao extends JpaRepository<YlTrainStatistics, String> {
}
package com.tykj.transfer.local_dao;
import com.tykj.transfer.local_entity.YlVolunteerStatistics;
import com.tykj.transfer.pojo.Biz088DcVolunteerStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface YlVolunteerStatisticsDao extends JpaRepository<YlVolunteerStatistics, Long> {
}
package com.tykj.transfer.local_entity;
import com.tykj.transfer.pojo.YlPrimaryKeyLong;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyLong.class)
@Table(name = "yl_activity_statistics")
public class YlActivityStatistics {
/**
* 主键
*/
@Id
@Column(name = "id")
private Long id;
/**
* 活动标题
*/
@Column(name = "title")
private String title;
/**
* 封面
*/
@Column(name = "cover")
private String cover;
/**
* 活动编码
*/
@Column(name = "code")
private String code;
/**
* 活动类型
*/
@Column(name = "type")
private String type;
/**
* 活动区域
*/
@Column(name = "area")
private String area;
/**
* 详细地点
*/
@Column(name = "address")
private String address;
/**
* 服务类别
*/
@Column(name = "service_type")
private String serviceType;
/**
* 服务对象
*/
@Column(name = "service_obj")
private String serviceObj;
/**
* 关联项目
*/
@Column(name = "project")
private String project;
/**
* 主办单位
*/
@Column(name = "organizer")
private String organizer;
/**
* 承办单位
*/
@Column(name = "contractor")
private String contractor;
/**
* 协办单位
*/
@Column(name = "sponsor")
private String sponsor;
/**
* 发布时间
*/
@Column(name = "release_time")
private Date releaseTime;
/**
* 招募时间
*/
@Column(name = "recruit_time")
private Date recruitTime;
/**
* 招募人数
*/
@Column(name = "recruit_number")
private Integer recruitNumber;
/**
* 活动时间
*/
@Column(name = "activity_time")
private Date activityTime;
/**
* 活动结束时间
*/
@Column(name = "activity_time_end")
private Date activityTimeEnd;
/**
* 活动简介
*/
@Column(name = "introduction", columnDefinition = "TEXT")
private String introduction;
/**
* 活动要求
*/
@Column(name = "claim")
private String claim;
/**
* 所属组织
*/
@Column(name = "adscription_org")
private String adscriptionOrg;
/**
* 联系人
*/
@Column(name = "contact_person")
private String contactPerson;
/**
* 联系电话
*/
@Column(name = "contact_phone")
private String contactPhone;
/**
* 联系邮箱
*/
@Column(name = "contact_email")
private String contactEmail;
/**
* 网点编号
*/
@Column(name = "branch_id")
private Integer branchId;
/**
* 是否签到
*/
@Column(name = "is_sign")
private Boolean isSign;
/**
* 签到精度
*/
@Column(name = "sign_precision")
private Integer signPrecision;
/**
* 活动状态
*/
@Column(name = "status")
private Integer status;
/**
* 纬度
*/
@Column(name = "latitude")
private String latitude;
/**
* 经度
*/
@Column(name = "longitude")
private String longitude;
/**
* 人数限制
*/
@Column(name = "people_number")
private Integer peopleNumber;
/**
* 数据创建时间
*/
@Column(name = "created_at")
private Date createdAt;
/**
* 数据更新时间
*/
@Column(name = "updated_at")
private Date updatedAt;
/**
* 发布管理员
*/
@Column(name = "admin_id")
private Integer adminId;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Timestamp bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Timestamp loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Timestamp tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId = 0L;
}
package com.tykj.transfer.local_entity;
import com.tykj.transfer.pojo.Biz088DcBranchTrainStatistics;
import com.tykj.transfer.pojo.YlPrimaryKeyLong;
import com.tykj.transfer.pojo.YlPrimaryKeyString;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyString.class)
@Table(name = "yl_branch_train_statistics")
public class YlBranchTrainStatistics {
/**
* 主键
*/
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "id",length = 64)
private String id;
/**
* 地区编码
*/
@Column(name = "region_code")
private String regionCode;
/**
* 网点名称
*/
@Column(name = "branch_name")
private String branchName;
/**
* 培训人数
*/
@Column(name = "train_num")
private String trainNum;
/**
* 数据更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
}
package com.tykj.transfer.local_entity;
import com.tykj.transfer.pojo.YlPrimaryKeyLong;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyLong.class)
@Table(name = "yl_network_statistics")
public class YlNetworkStatistics {
/**
* 主键
*/
@Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
/**
* 关联的平台用户
*/
@Column(name = "uid")
private Integer uid;
/**
* 申请的网点名
*/
@Column(name = "name")
private String name;
/**
* 网点地址
*/
@Column(name = "address")
private String address;
/**
* 联系人
*/
@Column(name = "contact_person")
private String contactPerson;
/**
* 联系电话
*/
@Column(name = "contact_phone")
private String contactPhone;
/**
* 单位类型
*/
@Column(name = "unit_type")
private Boolean unitType;
/**
* 单位名称
*/
@Column(name = "unit_name")
private String unitName;
/**
* 容量
*/
@Column(name = "capacity")
private String capacity;
/**
* 创建时间
*/
@Column(name = "created_at")
private Date createdAt;
/**
* 更新时间
*/
@Column(name = "updated_at")
private Date updatedAt;
/**
* 封面
*/
@Column(name = "cover")
private String cover;
/**
* 纬度
*/
@Column(name = "latitude")
private String latitude;
/**
* 经度
*/
@Column(name = "longitude")
private String longitude;
/**
* 街道
*/
@Column(name = "street")
private String street;
/**
* 所在区
*/
@Column(name = "area")
private String area;
/**
* 队长姓名
*/
@Column(name = "leader_name")
private String leaderName;
/**
* 队长电话
*/
@Column(name = "leader_phone")
private String leaderPhone;
/**
* 成立日期
*/
@Column(name = "found_date")
private Date foundDate;
/**
* 网点详细地址
*/
@Column(name = "full_address")
private String fullAddress;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
}
package com.tykj.transfer.local_entity;
import com.tykj.transfer.pojo.YlPrimaryKeyString;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyString.class)
@Table(name = "yl_train_statistics")
public class YlTrainStatistics {
/**
* 主键
*/
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "id",length = 64)
private String id;
/**
* 地区编码
*/
@Column(name = "region_code")
private String regionCode;
/**
* 培训人次
*/
@Column(name = "train_num")
private String trainNum;
/**
* 男性人数
*/
@Column(name = "mail_num")
private String mailNum;
/**
* 女性人数
*/
@Column(name = "femail_num")
private String femailNum;
/**
* 60岁以下人数
*/
@Column(name = "age_range_num1")
private String ageRangeNum1;
/**
* 61-65岁人数
*/
@Column(name = "age_range_num2")
private String ageRangeNum2;
/**
* 66-70岁人数
*/
@Column(name = "age_range_num3")
private String ageRangeNum3;
/**
* 71-75岁人数
*/
@Column(name = "age_range_num4")
private String ageRangeNum4;
/**
* 76-80岁人数
*/
@Column(name = "age_range_num5")
private String ageRangeNum5;
/**
* 80岁以上人数
*/
@Column(name = "age_range_num6")
private String ageRangeNum6;
/**
* 数据更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
}
package com.tykj.transfer.local_entity;
import com.tykj.transfer.pojo.YlPrimaryKeyString;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyString.class)
@Table(name = "yl_volunteer_statistics")
public class YlVolunteerStatistics {
/**
* 主键
*/
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "id",length = 64)
private String id;
/**
* 地区编码
*/
@Column(name = "region_code")
private String regionCode;
/**
* 科技志愿者人数
*/
@Column(name = "volunteer_num")
private String volunteerNum;
/**
* 政治面貌统计
*/
@Column(name = "political_type_nums")
private String politicalTypeNums;
/**
* 从业类别统计
*/
@Column(name = "work_type_nums")
private String workTypeNums;
/**
* 学历结构统计
*/
@Column(name = "education_type_nums")
private String educationTypeNums;
/**
* 数据更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
}
package com.tykj.transfer.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
/**
* @author
* entity class for biz_088_dc_branch_train_statistics
* 银龄科技志愿服务队培训人数统计信息
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyString.class)
@Table(name = "biz_088_dc_branch_train_statistics")
public class Biz088DcBranchTrainStatistics {
/**
* 主键
*/
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "id",length = 64)
private String id;
/**
* 地区编码
*/
@Column(name = "region_code")
private String regionCode;
/**
* 网点名称
*/
@Column(name = "branch_name")
private String branchName;
/**
* 培训人数
*/
@Column(name = "train_num")
private String trainNum;
/**
* 数据更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
public Biz088DcBranchTrainStatistics getThis() {
return this;
}
public String newKey() {
return this.regionCode + "_" + this.branchName + "_" + this.id;
}
}
package com.tykj.transfer.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
/**
* @author
* entity class for biz_088_dc_train_statistics
* 银龄培训人数统计信息
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyString.class)
@Table(name = "biz_088_dc_train_statistics")
public class Biz088DcTrainStatistics {
/**
* 主键
*/
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "id",length = 64)
private String id;
/**
* 地区编码
*/
@Column(name = "region_code")
private String regionCode;
/**
* 培训人次
*/
@Column(name = "train_num")
private String trainNum;
/**
* 男性人数
*/
@Column(name = "mail_num")
private String mailNum;
/**
* 女性人数
*/
@Column(name = "femail_num")
private String femailNum;
/**
* 60岁以下人数
*/
@Column(name = "age_range_num1")
private String ageRangeNum1;
/**
* 61-65岁人数
*/
@Column(name = "age_range_num2")
private String ageRangeNum2;
/**
* 66-70岁人数
*/
@Column(name = "age_range_num3")
private String ageRangeNum3;
/**
* 71-75岁人数
*/
@Column(name = "age_range_num4")
private String ageRangeNum4;
/**
* 76-80岁人数
*/
@Column(name = "age_range_num5")
private String ageRangeNum5;
/**
* 80岁以上人数
*/
@Column(name = "age_range_num6")
private String ageRangeNum6;
/**
* 数据更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
}
package com.tykj.transfer.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
/**
* @author
* entity class for biz_088_dc_volunteer_statistics
* 银龄科技志愿者人数统计信息
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@IdClass(YlPrimaryKeyString.class)
@Table(name = "biz_088_dc_volunteer_statistics")
public class Biz088DcVolunteerStatistics {
/**
* 主键
*/
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "id",length = 64)
private String id;
/**
* 地区编码
*/
@Column(name = "region_code")
private String regionCode;
/**
* 科技志愿者人数
*/
@Column(name = "volunteer_num")
private String volunteerNum;
/**
* 政治面貌统计
*/
@Column(name = "political_type_nums")
private String politicalTypeNums;
/**
* 从业类别统计
*/
@Column(name = "work_type_nums")
private String workTypeNums;
/**
* 学历结构统计
*/
@Column(name = "education_type_nums")
private String educationTypeNums;
/**
* 数据更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 业务库数据产生时间
*/
@Column(name = "Biz_time")
private Date bizTime;
/**
* 数据仓数据记录时间
*/
@Column(name = "load_time")
private Date loadTime;
/**
* op
*/
@Column(name = "op")
private String op;
/**
* tongTime
*/
@Column(name = "tong_time")
private Date tongTime;
/**
* tongId
*/
@Id
@Column(name = "tongID")
private Long tongId;
}
package com.tykj.transfer.slave_dao;
import com.tykj.transfer.pojo.Biz088DcBranchTrainStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface Biz088DcBranchTrainStatisticsDao extends JpaRepository<Biz088DcBranchTrainStatistics, String> {
}
package com.tykj.transfer.slave_dao;
import com.tykj.transfer.pojo.Biz088DcTrainStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface Biz088DcTrainStatisticsDao extends JpaRepository<Biz088DcTrainStatistics, String> {
}
package com.tykj.transfer.slave_dao;
import com.tykj.transfer.pojo.Biz088DcNetworkStatistics;
import com.tykj.transfer.pojo.Biz088DcVolunteerStatistics;
import org.springframework.data.jpa.repository.JpaRepository;
public interface Biz088DcVolunteerStatisticsDao extends JpaRepository<Biz088DcVolunteerStatistics, Long> {
}
package com.tykj.transfer.slave_service;
public interface Biz088DcBranchTrainStatisticsService {
void transferBranchApply();
}
package com.tykj.transfer.slave_service;
public interface Biz088DcTrainStatisticsService {
void transferTrain();
}
package com.tykj.transfer.slave_service;
public interface Biz088DcVolunteerStatisticsService {
void transferVolunteer();
}
......@@ -2,6 +2,8 @@ package com.tykj.transfer.slave_service.impl;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.tykj.transfer.local_dao.YlActivityStatisticsDao;
import com.tykj.transfer.local_entity.YlActivityStatistics;
import com.tykj.transfer.slave_dao.Biz088DcActivityStatisticsDao;
import com.tykj.transfer.slave_service.Biz088DcActivityStatisticsService;
import com.tykj.transfer.dao.ActivitiesDao;
......@@ -35,8 +37,10 @@ public class Biz088DcActivityStatisticsServiceImpl implements Biz088DcActivitySt
@Resource
private Biz088DcActivityStatisticsDao biz088DcActivityStatisticsDao;
@Resource
private YlActivityStatisticsDao ylActivityStatisticsDao;
@Override
@Transactional
public void transferActivity() {
Date from = Date.from(LocalDateTime.now().minusWeeks(1L).toInstant(ZoneOffset.of("+8")));
......@@ -56,6 +60,9 @@ public class Biz088DcActivityStatisticsServiceImpl implements Biz088DcActivitySt
newObj.setIntroduction(filterEmojis(newObj.getIntroduction()));
try {
biz088DcActivityStatisticsDao.save(newObj);
YlActivityStatistics ylActivityStatistics=new YlActivityStatistics();
BeanUtils.copyProperties(newObj,ylActivityStatistics);
ylActivityStatisticsDao.save(ylActivityStatistics);
} catch (Exception e) {
log.error("{}", e.toString());
}
......
package com.tykj.transfer.slave_service.impl;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.tykj.transfer.slave_dao.Biz088DcNetworkStatisticsDao;
import com.tykj.transfer.slave_service.Biz088DcNetworkStatisticsService;
import com.tykj.transfer.dao.ActivitiesDao;
import com.tykj.transfer.dao.ActivityApplyDao;
import com.tykj.transfer.dao.BranchesDao;
import com.tykj.transfer.dao.RegionModelRepository;
import com.tykj.transfer.entity.Activity;
import com.tykj.transfer.entity.Branches;
import com.tykj.transfer.pojo.Biz088DcNetworkStatistics;
import com.tykj.transfer.entity.vo.BranchesVo;
import com.tykj.transfer.entity.vo.PageVo;
import com.tykj.transfer.local_dao.YlBranchTrainStatisticsDao;
import com.tykj.transfer.local_entity.YlBranchTrainStatistics;
import com.tykj.transfer.pojo.Biz088DcBranchTrainStatistics;
import com.tykj.transfer.slave_dao.Biz088DcBranchTrainStatisticsDao;
import com.tykj.transfer.slave_service.Biz088DcBranchTrainStatisticsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import javax.xml.crypto.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.tykj.transfer.slave_service.impl.Biz088DcActivityStatisticsServiceImpl.filterEmojis;
@Service
@Slf4j
public class Biz088DcBranchTrainStatisticsImpl implements Biz088DcNetworkStatisticsService {
public class Biz088DcBranchTrainStatisticsImpl implements Biz088DcBranchTrainStatisticsService {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private BranchesDao branchesDao;
@Resource
private Biz088DcNetworkStatisticsDao biz088DcNetworkStatisticsDao;
private ActivitiesDao activitiesDao;
@Resource
private ActivityApplyDao activityApplyDao;
@Resource
private Biz088DcBranchTrainStatisticsDao biz088DcBranchTrainStatisticsDao;
@Resource
private YlBranchTrainStatisticsDao ylBranchTrainStatisticsDao;
@Override
public void transferBranch() {
List<Branches> all = branchesDao.findAll();
@Transactional
public void transferBranchApply() {
String s = stringRedisTemplate.opsForValue().get("330000YlTotal");
PageVo pageVo = JSON.parseObject(String.valueOf(s), PageVo.class);
List<BranchesVo> branchesList = pageVo.getBranchesList();
List<Biz088DcBranchTrainStatistics> rs=new ArrayList<>();
List<YlBranchTrainStatistics> listVo=new ArrayList<>();
Date date = new Date();
List<Biz088DcNetworkStatistics> rs = new ArrayList<>();
for (Branches branches : all) {
Biz088DcNetworkStatistics newObj = JSON.parseObject( JSON.toJSONString(branches), Biz088DcNetworkStatistics.class);
newObj.setBizTime(date);
newObj.setLoadTime(date);
if (!StringUtils.equals(branches.getDataActiveStatus(), "1")) {
newObj.setOp("delete");
}
newObj.setTongTime(date);
newObj.setAddress(filterEmojis(newObj.getAddress()));
// newObj.setTongId(0L);
try {
biz088DcNetworkStatisticsDao.save(newObj);
}catch (Exception e) {
log.error("{}", e.toString());
for (BranchesVo branchesVo : branchesList) {
Biz088DcBranchTrainStatistics VO = new Biz088DcBranchTrainStatistics();
YlBranchTrainStatistics ylBranchTrainStatistics=new YlBranchTrainStatistics();
VO.setBranchName(branchesVo.getName());
Branches allByName = branchesDao.findAllByName(branchesVo.getName());
VO.setRegionCode(allByName.getArea());
List<Activity> allByBranchId = activitiesDao.findAllByBranchId(allByName.getId());
Long activityApplyCount=0L;
for (Activity activity : allByBranchId) {
activityApplyCount+= activityApplyDao.getActivityApplyCount(activity.getId());
}
rs.add(newObj);
VO.setTrainNum(String.valueOf(activityApplyCount));
VO.setUpdateTime(date);
VO.setBizTime(date);
VO.setLoadTime(date);
VO.setTongTime(date);
VO.setTongId(0L);
BeanUtils.copyProperties(VO,ylBranchTrainStatistics);
listVo.add(ylBranchTrainStatistics);
rs.add(VO);
}
log.info("网点转移完成,成功转移了{}条", rs.size());
biz088DcBranchTrainStatisticsDao.saveAll(rs);
ylBranchTrainStatisticsDao.saveAll(listVo);
log.info("网点培训人数转移完成,成功转移了{}条", rs.size());
}
}
package com.tykj.transfer.slave_service.impl;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.tykj.transfer.local_dao.YlNetworkStatisticsDao;
import com.tykj.transfer.local_entity.YlNetworkStatistics;
import com.tykj.transfer.slave_dao.Biz088DcNetworkStatisticsDao;
import com.tykj.transfer.slave_service.Biz088DcNetworkStatisticsService;
import com.tykj.transfer.dao.BranchesDao;
import com.tykj.transfer.entity.Branches;
import com.tykj.transfer.pojo.Biz088DcNetworkStatistics;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.tykj.transfer.slave_service.impl.Biz088DcActivityStatisticsServiceImpl.filterEmojis;
@Service
@Slf4j
public class Biz088DcNetworkStatisticsImpl implements Biz088DcNetworkStatisticsService {
@Resource
private BranchesDao branchesDao;
@Resource
private Biz088DcNetworkStatisticsDao biz088DcNetworkStatisticsDao;
@Resource
private YlNetworkStatisticsDao ylNetworkStatisticsDao;
@Override
@Transactional
public void transferBranch() {
List<Branches> all = branchesDao.findAll();
Date date = new Date();
List<Biz088DcNetworkStatistics> rs = new ArrayList<>();
for (Branches branches : all) {
Biz088DcNetworkStatistics newObj = JSON.parseObject( JSON.toJSONString(branches), Biz088DcNetworkStatistics.class);
newObj.setBizTime(date);
newObj.setLoadTime(date);
if (!StringUtils.equals(branches.getDataActiveStatus(), "1")) {
newObj.setOp("delete");
}
newObj.setTongTime(date);
newObj.setAddress(filterEmojis(newObj.getAddress()));
newObj.setTongId(0L);
try {
YlNetworkStatistics ylNetworkStatistics=new YlNetworkStatistics();
BeanUtils.copyProperties(newObj,ylNetworkStatistics);
biz088DcNetworkStatisticsDao.save(newObj);
ylNetworkStatisticsDao.save(ylNetworkStatistics);
}catch (Exception e) {
log.error("{}", e.toString());
}
rs.add(newObj);
}
log.info("网点转移完成,成功转移了{}条", rs.size());
}
}
package com.tykj.transfer.slave_service.impl;
import com.alibaba.fastjson.JSON;
import com.tykj.transfer.dao.RegionModelRepository;
import com.tykj.transfer.entity.RegionModelDo;
import com.tykj.transfer.entity.vo.PageVo;
import com.tykj.transfer.local_dao.YlTrainStatisticsDao;
import com.tykj.transfer.local_entity.YlTrainStatistics;
import com.tykj.transfer.pojo.Biz088DcTrainStatistics;
import com.tykj.transfer.slave_dao.Biz088DcBranchTrainStatisticsDao;
import com.tykj.transfer.slave_dao.Biz088DcTrainStatisticsDao;
import com.tykj.transfer.slave_service.Biz088DcTrainStatisticsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class Biz088DcTrainStatisticsImpl implements Biz088DcTrainStatisticsService {
@Resource
private RegionModelRepository regionModelRepository;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private Biz088DcTrainStatisticsDao biz088DcTrainStatisticsDao;
@Resource
private YlTrainStatisticsDao ylTrainStatisticsDao;
@Override
@Transactional
public void transferTrain() {
// 先存储省级的培训人数信息
List<Biz088DcTrainStatistics> rs = new ArrayList<>();
List<YlTrainStatistics> localList=new ArrayList<>();
Date date = new Date();
String s = stringRedisTemplate.opsForValue().get("330000YlTotal");
PageVo pageVo = JSON.parseObject(String.valueOf(s), PageVo.class);
Biz088DcTrainStatistics provinceVo = new Biz088DcTrainStatistics();
provinceVo.setRegionCode("330000");
provinceVo.setTrainNum(String.valueOf(pageVo.getTrainCount()));
Map<String, Long> sexCount = pageVo.getSexCount();
provinceVo.setMailNum(String.valueOf(sexCount.get("男")));
provinceVo.setFemailNum(String.valueOf(sexCount.get("女")));
Map<Integer, Long> ageCounter = pageVo.getAgeCounter();
provinceVo.setAgeRangeNum1(String.valueOf(ageCounter.get(1)));
provinceVo.setAgeRangeNum2(String.valueOf(ageCounter.get(2)));
provinceVo.setAgeRangeNum3(String.valueOf(ageCounter.get(3)));
provinceVo.setAgeRangeNum4(String.valueOf(ageCounter.get(4)));
provinceVo.setAgeRangeNum5(String.valueOf(ageCounter.get(5)));
provinceVo.setAgeRangeNum6(String.valueOf(ageCounter.get(6)));
provinceVo.setUpdateTime(date);
provinceVo.setBizTime(date);
provinceVo.setLoadTime(date);
provinceVo.setTongTime(date);
provinceVo.setTongId(0L);
YlTrainStatistics localProvince=new YlTrainStatistics();
BeanUtils.copyProperties(provinceVo,localProvince);
List<RegionModelDo> regionVoList = regionModelRepository.getRegionVo("330000");
for (RegionModelDo regionModelDo : regionVoList) {
String city = stringRedisTemplate.opsForValue().get(regionModelDo.getCode() + "YlTotal");
PageVo cityPageVo = JSON.parseObject(String.valueOf(city), PageVo.class);
Biz088DcTrainStatistics cityVo = new Biz088DcTrainStatistics();
cityVo.setRegionCode(regionModelDo.getCode());
cityVo.setTrainNum(String.valueOf(cityPageVo.getTrainCount()));
Map<String, Long> citySexCount = cityPageVo.getSexCount();
cityVo.setMailNum(String.valueOf(citySexCount.get("男")));
cityVo.setFemailNum(String.valueOf(citySexCount.get("女")));
Map<Integer, Long> cityAgeCounter = cityPageVo.getAgeCounter();
cityVo.setAgeRangeNum1(String.valueOf(cityAgeCounter.get(1)));
cityVo.setAgeRangeNum2(String.valueOf(cityAgeCounter.get(2)));
cityVo.setAgeRangeNum3(String.valueOf(cityAgeCounter.get(3)));
cityVo.setAgeRangeNum4(String.valueOf(cityAgeCounter.get(4)));
cityVo.setAgeRangeNum5(String.valueOf(cityAgeCounter.get(5)));
cityVo.setAgeRangeNum6(String.valueOf(cityAgeCounter.get(6)));
cityVo.setUpdateTime(date);
cityVo.setBizTime(date);
cityVo.setLoadTime(date);
cityVo.setTongTime(date);
cityVo.setTongId(0L);
YlTrainStatistics localCity=new YlTrainStatistics();
BeanUtils.copyProperties(cityVo,localCity);
localList.add(localCity);
rs.add(cityVo);
List<RegionModelDo> streetVoList = regionModelRepository.getRegionVo(regionModelDo.getCode());
for (RegionModelDo modelDo : streetVoList) {
String street = stringRedisTemplate.opsForValue().get(modelDo.getCode() + "YlTotal");
PageVo streetPageVo = JSON.parseObject(String.valueOf(street), PageVo.class);
Biz088DcTrainStatistics streetVo = new Biz088DcTrainStatistics();
streetVo.setRegionCode(modelDo.getCode());
streetVo.setTrainNum(String.valueOf(streetPageVo.getTrainCount()));
Map<String, Long> streetSexCount = streetPageVo.getSexCount();
streetVo.setMailNum(String.valueOf(streetSexCount.get("男")));
streetVo.setFemailNum(String.valueOf(streetSexCount.get("女")));
Map<Integer, Long> streetAgeCounter = streetPageVo.getAgeCounter();
streetVo.setAgeRangeNum1(String.valueOf(streetAgeCounter.get(1)));
streetVo.setAgeRangeNum2(String.valueOf(streetAgeCounter.get(2)));
streetVo.setAgeRangeNum3(String.valueOf(streetAgeCounter.get(3)));
streetVo.setAgeRangeNum4(String.valueOf(streetAgeCounter.get(4)));
streetVo.setAgeRangeNum5(String.valueOf(streetAgeCounter.get(5)));
streetVo.setAgeRangeNum6(String.valueOf(streetAgeCounter.get(6)));
streetVo.setUpdateTime(date);
streetVo.setBizTime(date);
streetVo.setLoadTime(date);
streetVo.setTongTime(date);
streetVo.setTongId(0L);
YlTrainStatistics localStreet=new YlTrainStatistics();
BeanUtils.copyProperties(streetVo,localStreet);
localList.add(localStreet);
rs.add(streetVo);
}
}
rs.add(provinceVo);
localList.add(localProvince);
biz088DcTrainStatisticsDao.saveAll(rs);
ylTrainStatisticsDao.saveAll(localList);
log.info("网点转移完成,成功转移了{}条", rs.size());
}
}
package com.tykj.transfer.slave_service.impl;
import com.alibaba.fastjson.JSON;
import com.tykj.transfer.dao.RegionModelRepository;
import com.tykj.transfer.entity.RegionModelDo;
import com.tykj.transfer.entity.vo.PageVo;
import com.tykj.transfer.local_dao.YlVolunteerStatisticsDao;
import com.tykj.transfer.local_entity.YlTrainStatistics;
import com.tykj.transfer.local_entity.YlVolunteerStatistics;
import com.tykj.transfer.pojo.Biz088DcTrainStatistics;
import com.tykj.transfer.pojo.Biz088DcVolunteerStatistics;
import com.tykj.transfer.slave_dao.Biz088DcVolunteerStatisticsDao;
import com.tykj.transfer.slave_service.Biz088DcVolunteerStatisticsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class Biz088DcVolunteerStatisticsImpl implements Biz088DcVolunteerStatisticsService {
@Resource
private RegionModelRepository regionModelRepository;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private Biz088DcVolunteerStatisticsDao biz088DcVolunteerStatisticsDao;
@Resource
private YlVolunteerStatisticsDao ylVolunteerStatisticsDao;
@Override
@Transactional
public void transferVolunteer() {
String s = stringRedisTemplate.opsForValue().get("330000YlTotal");
List<Biz088DcVolunteerStatistics> rs=new ArrayList<>();
List<YlVolunteerStatistics> localList=new ArrayList<>();
PageVo pageVo = JSON.parseObject(String.valueOf(s), PageVo.class);
Date date=new Date();
Biz088DcVolunteerStatistics provinceVo=new Biz088DcVolunteerStatistics();
provinceVo.setRegionCode("330000");
provinceVo.setVolunteerNum(String.valueOf(pageVo.getVolunteerCount()));
Map<Integer, Long> faceCount = pageVo.getFaceCount();
Map<String, Long> eduCount = pageVo.getEduCount();
Map<Integer, Long> workTypeCount = pageVo.getWorkTypeCount();
provinceVo.setPoliticalTypeNums(JSON.toJSONString(faceCount).replaceAll("\\{|}", ""));
provinceVo.setWorkTypeNums(JSON.toJSONString(eduCount).replaceAll("\\{|}", ""));
provinceVo.setEducationTypeNums(JSON.toJSONString(workTypeCount).replaceAll("\\{|}", ""));
provinceVo.setUpdateTime(date);
provinceVo.setUpdateTime(date);
provinceVo.setBizTime(date);
provinceVo.setLoadTime(date);
provinceVo.setTongTime(date);
provinceVo.setTongId(0L);
YlVolunteerStatistics localProvince=new YlVolunteerStatistics();
BeanUtils.copyProperties(provinceVo,localProvince);
localList.add(localProvince);
rs.add(provinceVo);
List<RegionModelDo> regionVoList = regionModelRepository.getRegionVo("330000");
for (RegionModelDo regionModelDo : regionVoList) {
String city = stringRedisTemplate.opsForValue().get(regionModelDo.getCode() + "YlTotal");
PageVo cityPageVo = JSON.parseObject(String.valueOf(city), PageVo.class);
Biz088DcVolunteerStatistics cityVo=new Biz088DcVolunteerStatistics();
cityVo.setRegionCode(regionModelDo.getCode());
cityVo.setVolunteerNum(String.valueOf(cityPageVo.getVolunteerCount()));
Map<Integer, Long> cityFaceCount = cityPageVo.getFaceCount();
Map<String, Long> cityEduCount = cityPageVo.getEduCount();
Map<Integer, Long> cityWorkTypeCount = cityPageVo.getWorkTypeCount();
cityVo.setPoliticalTypeNums(JSON.toJSONString(cityFaceCount).replaceAll("\\{|}", ""));
cityVo.setWorkTypeNums(JSON.toJSONString(cityEduCount).replaceAll("\\{|}", ""));
cityVo.setEducationTypeNums(JSON.toJSONString(cityWorkTypeCount).replaceAll("\\{|}", ""));
cityVo.setUpdateTime(date);
cityVo.setBizTime(date);
cityVo.setLoadTime(date);
cityVo.setTongTime(date);
cityVo.setTongId(0L);
YlVolunteerStatistics localCity=new YlVolunteerStatistics();
BeanUtils.copyProperties(cityVo,localCity);
localList.add(localCity);
rs.add(cityVo);
List<RegionModelDo> streetVoList = regionModelRepository.getRegionVo(regionModelDo.getCode());
for (RegionModelDo modelDo : streetVoList) {
String street = stringRedisTemplate.opsForValue().get(modelDo.getCode() + "YlTotal");
PageVo streetPageVo = JSON.parseObject(String.valueOf(street), PageVo.class);
Biz088DcVolunteerStatistics streetVo=new Biz088DcVolunteerStatistics();
streetVo.setRegionCode(modelDo.getCode());
streetVo.setVolunteerNum(String.valueOf(streetPageVo.getVolunteerCount()));
Map<Integer, Long> streetFaceCount = streetPageVo.getFaceCount();
Map<String, Long> streetEduCount = streetPageVo.getEduCount();
Map<Integer, Long> streetWorkTypeCount = streetPageVo.getWorkTypeCount();
streetVo.setPoliticalTypeNums(JSON.toJSONString(streetFaceCount).replaceAll("\\{|}", ""));
streetVo.setWorkTypeNums(JSON.toJSONString(streetEduCount).replaceAll("\\{|}", ""));
streetVo.setEducationTypeNums(JSON.toJSONString(streetWorkTypeCount).replaceAll("\\{|}", ""));
streetVo.setUpdateTime(date);
streetVo.setBizTime(date);
streetVo.setLoadTime(date);
streetVo.setTongTime(date);
streetVo.setTongId(0L);
YlVolunteerStatistics streetCity=new YlVolunteerStatistics();
BeanUtils.copyProperties(streetVo,streetCity);
localList.add(streetCity);
rs.add(streetVo);
}
}
biz088DcVolunteerStatisticsDao.saveAll(rs);
ylVolunteerStatisticsDao.saveAll(localList);
log.info("志愿者人数转移完成,成功转移了{}条", rs.size());
}
}
package com.tykj.transfer.task;
import com.sun.media.jfxmedia.logging.Logger;
import com.tykj.transfer.slave_service.Biz088DcActivityStatisticsService;
import com.tykj.transfer.slave_service.Biz088DcNetworkStatisticsService;
import com.tykj.transfer.slave_service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -16,12 +15,20 @@ public class PushTask {
private Biz088DcActivityStatisticsService biz088DcActivityStatisticsService;
@Autowired
private Biz088DcNetworkStatisticsService biz088DcNetworkStatisticsService;
@Autowired
private Biz088DcBranchTrainStatisticsService biz088DcBranchTrainStatisticsService;
@Autowired
private Biz088DcVolunteerStatisticsService biz088DcVolunteerStatisticsService;
@Autowired
private Biz088DcTrainStatisticsService biz088DcTrainStatisticsService;
@Scheduled(cron = "0 0 1 ? * MON")
public void task() {
log.info("周任务开始执行");
biz088DcActivityStatisticsService.transferActivity();
biz088DcNetworkStatisticsService.transferBranch();
biz088DcBranchTrainStatisticsService.transferBranchApply();
biz088DcVolunteerStatisticsService.transferVolunteer();
biz088DcTrainStatisticsService.transferTrain();
log.info("周任务执行完成");
}
}
server.port=8888
server.port=8866
spring.datasource.local.username=root
spring.datasource.local.password=root
spring.datasource.local.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
......@@ -10,8 +10,31 @@ spring.datasource.remote1.username = root
spring.datasource.remote1.password = tykj@2022
spring.datasource.remote1.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.remote2.username=root
spring.datasource.remote2.password=root
spring.datasource.remote2.url=jdbc:mysql://127.0.0.1:3306/asd?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.remote2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.aop.proxy-target-class= true
spring.jpa.properties.hibernate.format_sql=true
spring.main.allow-bean-definition-overriding=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
\ No newline at end of file
spring.jpa.show-sql=false
#172.30.30.89
spring.redis.host=192.168.100.233
spring.redis.password=
spring.redis.database=7
spring.redis.port=6379
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
## 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
## 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=20
## 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
## 连接超时时间(毫秒)
spring.redis.timeout=5000
\ No newline at end of file
......@@ -3,14 +3,36 @@ server.port=8015
spring.datasource.local.username=skx_hj
spring.datasource.local.password=tB2vSEuQyKOq5grUm9Jj
spring.datasource.local.url=jdbc:mysql://59.202.45.192:3306/skx_hj?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.local.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.local.driver-class-name=com.mysql.cj.jdbc.Driver.
# yl system db
spring.datasource.remote1.url=jdbc:mysql://10.145.221.243:3306/ylhd_share?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.remote1.username=root
spring.datasource.remote1.password=root
spring.datasource.remote1.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.remote2.url=jdbc:mysql://172.30.30.86:3306/yl_pre?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.remote2.username=mcjsuper
spring.datasource.remote2.password=mcj123
spring.datasource.remote2.driverClassName=com.mysql.cj.jdbc.Driver
spring.aop.proxy-target-class=true
spring.jpa.properties.hibernate.format_sql=true
spring.main.allow-bean-definition-overriding=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
\ No newline at end of file
spring.jpa.show-sql=false
#172.30.30.89
spring.redis.host=172.30.30.89
spring.redis.password=MlD8LPkb
spring.redis.port=6379
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
## 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
## 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=30
## 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=1
## 连接超时时间(毫秒)
spring.redis.timeout=50000
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论