Commit 126ba941 authored by tianchao's avatar tianchao

init

parent 6a5ea286
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>platform</artifactId>
<groupId>pps</groupId>
<version>1.0.0-pps</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<artifactId>C10-task</artifactId>
<packaging>pom</packaging>
<modules>
<module>pps-core-task</module>
</modules>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-parent-core</artifactId>
<version>1.15.169-xstartup-cloud</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<artifactId>pps-core-task</artifactId>
<version>1.0.0-pps</version>
<properties>
<maven.build.timestamp.format>yyyy.MMdd.HHmmss</maven.build.timestamp.format>
</properties>
<dependencies>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-common</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-base</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>mdm-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-dispatch</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>scadapi-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>ims-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-measure</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>transfer-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-base</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-system</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-framedata</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>trade-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>trade-core</artifactId>
<version>1.0.0-pps</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration combine.self="override">
<archive>
<manifestEntries>
<Component-Group-Name>${project.groupId}</Component-Group-Name>
<Component-Artifactid>${project.artifactId}</Component-Artifactid>
<Component-Version>${project.version}</Component-Version>
<Component-Build-Time>${maven.build.timestamp}</Component-Build-Time>
<Component-Description>${project.description}</Component-Description>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
package pps.core.task.config;
import xstartup.annotation.XConfig;
import xstartup.config.XConfigMetadata;
import xstartup.config.XStringConfigItem;
/**
* @author lixueyan
* @date 2023/3/16 0007 12:44
*/
/**
* task 配置类
*/
@XConfig
public class TaskConfig {
//作业计划最后一次获取IMS时间
public XStringConfigItem taskPlanImsDate = XConfigMetadata.register(TaskConfig.class,"taskPlanImsDate",XStringConfigItem.class);
//作业计划 ack Ims 地址
public static final XStringConfigItem ackImsUrl = XConfigMetadata.register(TaskConfig.class,"ackImsUrl",XStringConfigItem.class);
}
package pps.core.task.job;
import pps.core.common.config.MqConfig;
import pps.core.common.entity.BaseSysLogEnt;
import pps.core.common.mapper.BaseSysLogMapper;
import pps.core.common.mq.AccessLogMqMessage;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.mq.XMqConsumeQueue;
import xstartup.base.mq.XMqConsumer;
import xstartup.base.mq.XMqFactory;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
@XText("访问日志消费任务")
@XService
public class AccessLogConsumeJob implements XJob {
@XCronTrigger(value = XCronTrigger.PRE_30S)
@Override
public XServiceResult execute(XContext context) {
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
/**
* @Title: [标题] 预处理Job
* @Description: [功能描述]
* @author:lyy
*/
@XText("默认值同步sql预处理")
@XService
public class DataPreproccessJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(DataPreproccessJob.class);
@XCronTrigger(value = "0 10 0 * * ?")
@Override
public XServiceResult execute(XContext xContext) {
logger.info("默认值同步sql预处理开始");
ScadaPiService service = xContext.getBean(ScadaPiService.class);
service.syncDataPreproccess(xContext);
logger.info("默认值同步sql预处理结束 ");
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.mdm.service.MdmService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
@XText("作业计划倒计时任务")
@XService
public class DispTaskPlanCountdownHoursJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(DispTaskPlanCountdownHoursJob.class);
// @XCronTrigger(value = "0 0/1 * * * ?")
@Override
public XServiceResult execute(XContext context) {
logger.info("定时检查作业计划倒计时结束的记录");
MdmService service = context.getBean(MdmService.class);
XServiceResult xServiceResult = service.pullMdmDataTime(context);
return xServiceResult;
}
}
package pps.core.task.job;
import org.apache.http.client.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.ims.service.ImsService;
import pps.cloud.ims.service.data.ConditionJsonParam;
import pps.cloud.mdm.service.MdmService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
@XText("ims同步任务")
@XService
public class ImsJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ImsJob.class);
@XCronTrigger(value = XCronTrigger.PRE_30S)
// @XCronTrigger(value = XCronTrigger.PRE_5S)
@Override
public XServiceResult execute(XContext context) {
logger.info("定时同步ims数据");
ImsService service = context.getBean(ImsService.class);
ConditionJsonParam param = new ConditionJsonParam();
// param.setColumn("lastUpdateDate");
// param.setValue(getImsValue());
service.getAllSiteBaseInfo(context, param);
// System.out.println(param);
return XServiceResult.OK;
}
public String getImsValue(){
Date dNow = new Date();
Date dBefore = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(dNow);
calendar.add(Calendar.DAY_OF_MONTH, -1);
dBefore = calendar.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String day = sdf.format(dBefore);
String nowStr = sdf.format(dNow);
String value = "to_date('" + day + "','yyyy-MM-dd HH:mm:ss')" +
"&&to_date('" + nowStr + "','yyyy-MM-dd HH:mm:ss')";
return value;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.mdm.service.MdmService;
import pps.cloud.mdm.service.data.ResultMessage;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCdHelper;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
@XText("mdm同步任务")
@XService
public class MdmJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(MdmJob.class);
@XCronTrigger(value = "0 0 22 * * ?")
@Override
public XServiceResult execute(XContext context) {
logger.info("定时同步mdm数据");
MdmService service = context.getBean(MdmService.class);
XServiceResult xServiceResult = service.pullMdmDataTime(context);
return xServiceResult;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.mdm.service.MdmService;
import pps.cloud.measure.service.GasVoucherCloudService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
@XText("计量任务")
@XService
public class MeasureJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(MeasureJob.class);
@XCronTrigger(value = "0/30 * * * * ?")
@Override
public XServiceResult execute(XContext context) {
logger.info("定时推送天然气计量交接凭证数据");
GasVoucherCloudService service = context.getBean(GasVoucherCloudService.class);
XServiceResult xServiceResult = service.pushGasMeasurePdf(context);
return xServiceResult;
}
}
package pps.core.task.job;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import pps.cloud.dispatch.service.DispNgOnDutyMatService;
@XText("天然气值班事宜定时生成")
@XService
public class NgOnDutyMatJob implements XJob {
@XCronTrigger(value = "0 0 0 */1 * ?")
@Override
public XServiceResult execute(XContext xContext) {
//调用disp服务执行生成值班事宜
DispNgOnDutyMatService onDutyMatService = xContext.getBean(DispNgOnDutyMatService.class);
XServiceResult xServiceResult = onDutyMatService.AutoGenerateOnDutyMat(xContext);
return xServiceResult;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.base.service.BaseSmsSendService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
/**
* @Title: [标题] 值班短信定时发送
* @Description: [功能描述]
* @author:lyy
*/
@XText("定制短信定时发送")
@XService
public class OndutySmsTimingSendJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(OndutySmsTimingSendJob.class);
@Override
@XCronTrigger(value = "0 0 14 * * ?")
public XServiceResult execute(XContext xContext) {
logger.info("值班编制短信发送,每天下午两点发送第二天的值班人员短信");
BaseSmsSendService baseSmsSendService = xContext.getBean(BaseSmsSendService.class);
baseSmsSendService.ondutySmsTimingSend(xContext);
logger.info("值班编制短信发送,每天下午两点发送第二天的值班人员短信");
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@XText("SCADAPI Tag点值 数据同步 采集频率为 24 小时 补采 机制")
@XService
public class ScadaPiDataDayComJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ScadaPiJob.class);
@Override
@XCronTrigger(value = "0 10 20 * * ?")
public XServiceResult execute(XContext context) {
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
String gather_offsetStr = String.valueOf(currentMin);
SyncScadaDataParamsInput input = new SyncScadaDataParamsInput();
input.setCollectInterval(24);//采集频率为 24 小时 及1天 ,对应每天的八点
input.setGatherOffset("0");//gatherOffset
input.setMoveTowards("1");//向前向后(1-向前;2-向后)
input.setScadaEnvironmentInfoId(2);
SimpleDateFormat formatzxsj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formatzxsj8 = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
try {
Date CurrentTime = formatzxsj8.parse( formatzxsj8.format(new Date()) );
input.setCurrentTime(CurrentTime );//currentTime
} catch (ParseException e) {
throw new RuntimeException(e);
}
input.setSyncType(1);
input.setTaskName("自动补采 普通值 频率 24 执行时间为:"+formatzxsj.format(input.getCurrentTime()) );
ScadaPiService service = context.getBean(ScadaPiService.class);
service.SyncScadaDataParamsbak(context, input);
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Date;
@XText("SCADAPI Tag点值 数据同步 采集频率为 24 小时")
@XService
public class ScadaPiDataDayJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ScadaPiJob.class);
@Override
@XCronTrigger(value = "0 * 7,8,10,11,15,16,17,18,19,21,22 * * ?")
public XServiceResult execute(XContext context) {
/***
* 0.小时采集服务
* 1.向前采集 or 向后采集 【本服务向前采集】
* 2.采集时间 为当前时间 例如:【07:49;07:55;07:57;08:00,08:01;08:03;08:05;08:10】
* 3.通过偏移量【分钟级别】 取 0 - 59 ,30 以前 的数据 存储到 当前时间点 30以后的数据存储到 下一个时间点
* 5.采集频率 【24】
* 6.根据 [采集方向、偏移量、采集频率] 这 3 个 字段类型 卡 scada_gather_conf 的数据
*/
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
String gather_offsetStr = String.valueOf(currentMin);
SyncScadaDataParamsInput input = new SyncScadaDataParamsInput();
input.setCollectInterval(24);//采集频率为 24 小时 及1天 ,对应每天的八点
input.setGatherOffset(gather_offsetStr);//gatherOffset
input.setCurrentTime(currentTime);//currentTime
input.setSyncType(0); //syncType
input.setMoveTowards("1");//向前向后(1-向前;2-向后)
SimpleDateFormat formatzxsj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
input.setTaskName("普通值 频率 24 执行时间为:"+formatzxsj.format(input.getCurrentTime()) );
ScadaPiService service = context.getBean(ScadaPiService.class);
service.SyncScadaDataParams(context, input);
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Date;
@XText("SCADAPI Tag点值 数据同步 采集频率为 4 小时")
@XService
public class ScadaPiDataFourHourJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ScadaPiJob.class);
@Override
@XCronTrigger(value = "0 * 0,4,8,12,16,20,23,3,7,11,15,19 * * ?")
public XServiceResult execute(XContext context) {
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
String gather_offsetStr = String.valueOf(currentMin);
SyncScadaDataParamsInput input = new SyncScadaDataParamsInput();
input.setCollectInterval(4);//采集频率为 4 小时
input.setGatherOffset(gather_offsetStr);//gatherOffset
input.setCurrentTime(currentTime);//currentTime
input.setSyncType(0); //syncType
input.setMoveTowards("1"); //向前向后(1-向前;2-向后)
SimpleDateFormat formatzxsj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
input.setTaskName("普通值 频率 4 执行时间为:"+formatzxsj.format(currentTime) );
ScadaPiService service = context.getBean(ScadaPiService.class);
service.SyncScadaDataParams(context, input);
return XServiceResult.OK;
}
}
\ No newline at end of file
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.GetTagsInput;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
@XText("SCADAPI Tag点值 数据同步 采集频率为 1 小时")
@XService
public class ScadaPiDataJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ScadaPiJob.class);
@Override
@XCronTrigger(value = "0 * * * * ?")
public XServiceResult execute(XContext context) {
/***
* 0.小时采集服务 采集频率为 1
* 1.向前采集 or 向后采集 【本服务向前采集】
* 2.采集时间 为当前时间 例如:【07:49;07:55;07:57;08:00,08:01;08:03;08:05;08:10】
* 3.通过偏移量【分钟级别】 取 0 - 59 ,30 以前 的数据 存储到 当前时间点 30以后的数据存储到 下一个时间点
* 4.采集频率 【1】
* 5.根据 [采集方向、偏移量、采集频率] 这 3 个 字段类型 卡 scada_gather_conf 的数据
*/
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
String gather_offsetStr = String.valueOf(currentMin);
SyncScadaDataParamsInput input = new SyncScadaDataParamsInput();
input.setCollectInterval(1);//采集频率为 1 小时
input.setGatherOffset(gather_offsetStr);//gatherOffset
input.setCurrentTime(currentTime);//currentTime
input.setSyncType(0); //syncType
input.setMoveTowards("1"); //向前向后(1-向前;2-向后)
SimpleDateFormat formatzxsj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
input.setTaskName("普通值 频率 1 执行时间为:"+formatzxsj.format(currentTime) );
ScadaPiService service = context.getBean(ScadaPiService.class);
service.SyncScadaDataParams(context, input);
return XServiceResult.OK;
}
}
package pps.core.task.job;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@XText("SCADAPI 交接量采集 采集类型为交接量的点 取每天 7:31以后的第一个值")
@XService
public class ScadaPiDataOilAmountJob implements XJob {
/***
* 计量数据采集 服务 每天 8:03 开始采集【偏移量配置的 3】 每隔 5 分钟采集一次 执行 半个小时 到08:30
* @param xContext
* @return
*/
@Override
@XCronTrigger(value = "0 0,5,10,15,20 8,10,11,15,16,17,18,19,21,22 * * ?")
public XServiceResult execute(XContext xContext) {
/***
* 0.【0 0/3 8 * * ?】 表示 每天 8 点 每3分钟执行一次
* 1.向前采集 or 向后采集 【本服务向后采集】
* 2.采集时间 为当前时间 例如:【07:49;07:55;07:57;08:00,08:01;08:03;08:05;08:10】
* 3.通过偏移量【分钟级别 绝对值小于30】 去卡时间 偏移量配到到 时间表达式 中【查询接口的时候 获取 当前时间的分钟数据 大于30的偏移量 = 分钟数 - 60 小于30的偏移量 = 分钟数】
* 4.采集类型 【交接量】【普通值】 【本服务取交接量】
* 5.采集频率 【24】
* 5.根据 [采集方向、偏移量、采集类型、采集频率] 这 4 个 字段类型 卡 scada_gather_conf 的数据
*/
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
int gather_offset = currentMin;
if(currentMin>30){
gather_offset = currentMin - 60;
}
SyncScadaDataParamsInput input = new SyncScadaDataParamsInput();
SimpleDateFormat format0750 = new SimpleDateFormat("yyyy-MM-dd 07:50:00");//计量数据取 07:50 之后的第一个数据
String date0750 = format0750.format(currentTime);
SimpleDateFormat formatMMSS = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//计量数据取 07:50 之后的第一个数据
try {
input.setCurrentTime(formatMMSS.parse(date0750));//计量数据取 07:50 之后的第一个数据
} catch (ParseException e) {
throw new RuntimeException(e);
}
input.setSyncType(0); //正常取数据 or 补采集数据 0:正常取数据 1:补采数据
input.setMoveTowards("2");// 向前向后(1-向前;2-向后)
input.setCollectInterval(24);//交接量采集 频率都是 24 表示 一天就一个值 存储到 早八点
input.setGatherOffset("3");//String.valueOf(gather_offset); //交接量的便宜量都为 3 分钟 及 8:03 开始执行 3是为了查询scadaconf 配置数据 不是3的话 查询不到数据
input.setGatherType("2");//采集类型(1-常规;2-自定义 ,2:为交接量) //交接量的类型为 2
input.setTaskName("计量数据 频率 24 执行时间为:"+formatMMSS.format(currentTime));
ScadaPiService service = xContext.getBean(ScadaPiService.class);
service.SyncScadaDataParams(xContext, input);
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Date;
@XText("SCADAPI Tag点值 数据同步 采集频率为 2 小时")
@XService
public class ScadaPiDataTwoHourJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ScadaPiJob.class);
@Override
@XCronTrigger(value = "0 * * * * ?")
public XServiceResult execute(XContext context) {
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
String gather_offsetStr = String.valueOf(currentMin);
SyncScadaDataParamsInput input = new SyncScadaDataParamsInput();
input.setCollectInterval(2);//采集频率为 2 小时
input.setGatherOffset(gather_offsetStr);//gatherOffset
input.setCurrentTime(currentTime);//currentTime
input.setSyncType(0); //syncType
input.setMoveTowards("1"); //向前向后(1-向前;2-向后)
SimpleDateFormat formatzxsj = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
input.setTaskName("普通值 频率 2 执行时间为:"+formatzxsj.format(currentTime) );
ScadaPiService service = context.getBean(ScadaPiService.class);
service.SyncScadaDataParams(context, input);
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.FindByPidInput;
import pps.cloud.scadapi.service.data.GetTagsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.*;
@XText("SCADAPI Tag点号 数据同步")
@XService
public class ScadaPiJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(ScadaPiJob.class);
@Override
@XCronTrigger(value = "0 0 2,15,23 * * ?")
public XServiceResult execute(XContext context) {
logger.info("SCADAPI Tag点号 数据同步 每天早上2点 晚上23点执行");
ScadaPiService service = context.getBean(ScadaPiService.class);
GetTagsInput input = new GetTagsInput();
Date current = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
input.setEndDate(formatter.format(current));
Calendar calendar = new GregorianCalendar();
calendar.add(Calendar.DATE, -1);
input.setStartDate(formatter.format(calendar.getTime()));
service.syncScadaTags(context,input);
context.getLogger().debug("SCADAPI Tag点号 数据同步 每天早上2点 晚上23点执行");
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.base.service.BaseSmsSendService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
/**
* @Title: [标题] 短信定时发送
* @Description: [功能描述]
* @author:lyy
*/
@XText("定制短信定时发送")
@XService
public class SmsTimingSendJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(SmsTimingSendJob.class);
@Override
@XCronTrigger(value = "0 * * * * ?")
public XServiceResult execute(XContext xContext) {
logger.info("定制短信定时发送每分钟执行一次");
BaseSmsSendService baseSmsSendService = xContext.getBean(BaseSmsSendService.class);
baseSmsSendService.smsTimingSend(xContext);
logger.info("定制短信定时发送执行完成");
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.springframework.util.CollectionUtils;
import pps.cloud.framedata.service.CommonDataService;
import pps.cloud.framedata.service.data.common_data.GetColumnListInput;
import pps.cloud.framedata.service.data.common_data.GetColumnListOutput;
import pps.cloud.framedata.service.data.common_data.SelectCommonInput;
import pps.cloud.framedata.service.data.common_data.SelectCommonOutput;
import pps.cloud.system.service.SysBaseInfoSyncService;
import pps.cloud.system.service.data.GetSysBaseInfoSysncConfigOutput;
import pps.core.common.utils.NamedServiceProvider;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XDateUtils;
import xstartup.data.XListResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.helper.XLockHelper;
import xstartup.helper.XTransactionHelper;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author lixueyan
* @date 2023/2/28 0028 14:47
*/
@XText("基础数据同步到多库的任务")
@XService
public class SyncBaseInfoJob implements XJob {
@XCronTrigger(value = "0 0/5 * * * ?")
@Override
public XServiceResult execute(XContext context) {
SysBaseInfoSyncService service = context.getBean(SysBaseInfoSyncService.class);
//获取同步配置
XListResult<GetSysBaseInfoSysncConfigOutput> listResult = service.querySyncConfig(context);
listResult.throwIfFail();
List<GetSysBaseInfoSysncConfigOutput> entList = listResult.getResult();
//执行同步操作
XServiceResult lockResult = XLockHelper.lock(context, "sync_base_info", "sync_base_info", 60, () -> {
});
lockResult.throwIfFail(); //为防止规定时间内 没有处理完成, 对业务枷锁
Date nowDate = new Date();
for (GetSysBaseInfoSysncConfigOutput ent : entList) {
try {
CommonDataService baseService = NamedServiceProvider.getServiceByName(context, ent.getFromDb().replace("_", "-"), CommonDataService.class);
if (ent.getLastUpdateTime() == null) {
ent.setLastUpdateTime(XDateUtils.addDays(nowDate, -1)); //默认同步一天的数据
}
String sql = (ent.getIsFullSync()!=null && ent.getIsFullSync()==1)?
String.format("select * from %s ",ent.getTableName()):
String.format("select * from %s where %s > '%s' or %s > '%s'" , ent.getTableName(), ent.getCreateTimeField(), XDateUtils.getString(ent.getLastUpdateTime()), ent.getModifyTimeField(), XDateUtils.getString(ent.getLastUpdateTime()));
CommonDataService dataService = NamedServiceProvider.getServiceByName(context, ent.getTargetDb().replace("_", "-"), CommonDataService.class);
SelectCommonInput selectCommonInput = new SelectCommonInput();
selectCommonInput.setCmd(sql);
selectCommonInput.setTraceId(context.getTraceId());
XSingleResult<SelectCommonOutput> serviceResult = baseService.selectCommon(context, selectCommonInput);
serviceResult.throwIfFail();
List<LinkedHashMap<String, Object>> resultList = serviceResult.getResult().getResultList();
if (CollectionUtils.isEmpty(resultList)) {
continue;
}
GetColumnListInput columnInput = new GetColumnListInput();
columnInput.setTableName(ent.getTableName());
columnInput.setModelName(ent.getTargetDb());
XListResult<GetColumnListOutput> columnResult = dataService.getColumnList(context, columnInput);
columnResult.throwIfFail();
List<GetColumnListOutput> columnList = columnResult.getResult();
if (CollectionUtils.isEmpty(columnList)) {
context.getLogger().error("目标库表不存在:" + ent.getTableName());
continue;
}
XTransactionHelper.begin(context, () -> {
//从目标库删除
String deleteSql = null;
if(ent.getIsFullSync()!=null && ent.getIsFullSync()==1){
deleteSql = String.format("truncate %s ", ent.getTableName());
}else{
String idStr = resultList.stream().map(x -> "'" + String.valueOf(x.get("id")) + "'").collect(Collectors.joining(","));
deleteSql = String.format("delete from %s where id in (%s) ", ent.getTableName(), idStr);
}
SelectCommonInput deleteCommonInput = new SelectCommonInput();
deleteCommonInput.setCmd(deleteSql);
deleteCommonInput.setTraceId(context.getTraceId());
XSingleResult<SelectCommonOutput> deleteResult = dataService.selectCommon(context, deleteCommonInput);
deleteResult.throwIfFail();
//插入目标库
List<String> columnNameList = columnList.stream().map(x -> x.getColumnName()).collect(Collectors.toList());
StringBuilder sb = new StringBuilder();
String columnNameStr = columnNameList.stream().collect(Collectors.joining(","));
sb.append("INSERT INTO ").append(ent.getTableName()).append(" (").append(columnNameStr).append(") values ");
for (LinkedHashMap<String, Object> dataMap : resultList) {
sb.append("(").append(assemblySql(columnNameList, dataMap)).append("),");
}
sb.deleteCharAt(sb.length() - 1);
SelectCommonInput insertCommonInput = new SelectCommonInput();
insertCommonInput.setCmd(sb.toString());
insertCommonInput.setTraceId(context.getTraceId());
XSingleResult<SelectCommonOutput> insertResult = dataService.selectCommon(context, insertCommonInput);
insertResult.throwIfFail();
//更新最后更新时间
ent.setLastUpdateTime(nowDate);
ent.setIsFullSync(0); //每次都需手动打开
service.updateSyncConfig(context, ent);
return XServiceResult.OK;
});
}catch (Exception e){
context.getLogger().error("同步表"+ent.getTableName()+"数据至库"+ent.getTargetDb()+"时发生异常",e);
}
}
return XServiceResult.OK;
}
private StringBuilder assemblySql(List<String> columnNameList, HashMap<String, Object> fields) {
StringBuilder sb = new StringBuilder();
for (String columnName : columnNameList) {
boolean isExists = false;
Iterator<Map.Entry<String, Object>> iterator = fields.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> next = iterator.next();
String key = next.getKey();
if (!columnName.equals(key)) {
continue;
}
Object value = next.getValue();
if(String.valueOf(value).contains("'")){
sb.append("'").append(String.valueOf(value).replace("'","\"")).append("',");
}else {
sb.append("'").append(value).append("',");
}
isExists = true;
break;
}
if (!isExists) {
sb.append("null").append(",");
}
}
sb.deleteCharAt(sb.length() - 1);
return sb;
}
}
package pps.core.task.job;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import pps.cloud.dispatch.enums.TaskPlanAckImsTypeDic;
import pps.cloud.dispatch.service.DispTaskPlanJobService;
import pps.cloud.dispatch.service.data.TaskPlanImsAckInput;
import pps.cloud.transfer.service.TransferService;
import pps.cloud.transfer.service.data.AddImsLogInput;
import pps.core.common.config.MqConfig;
import pps.core.common.mq.AckImsMqMessage;
import pps.core.task.config.TaskConfig;
import pps.core.task.model.AckImsModel;
import pps.core.task.model.AckImsRespModel;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.mq.XMqConsumeQueue;
import xstartup.base.mq.XMqConsumer;
import xstartup.base.mq.XMqFactory;
import xstartup.base.util.XCopyUtils;
import xstartup.base.util.XJsonUtils;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@XText("作业计划反馈结果给ims任务")
@XService
public class TaskPlanAckImsJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(TaskPlanAckImsJob.class);
@XCronTrigger(value = XCronTrigger.PRE_5S)
@Override
public XServiceResult execute(XContext context) {
try {
DispTaskPlanJobService taskPlanJobService = context.getBean(DispTaskPlanJobService.class);
TransferService transferService = context.getBean(TransferService.class);
RestTemplate restTemplate = new RestTemplate();
final String ackImsMq = MqConfig.ackImsMq.getValue(context);
final String ackImsUrl = TaskConfig.ackImsUrl.getValue(context);
XMqConsumeQueue consumeQueue = new XMqConsumeQueue.Builder()
.queue(ackImsMq)
.build();
XMqConsumer<AckImsMqMessage> consumer = XMqFactory.createConsumer(context, consumeQueue, AckImsMqMessage.class);
XSingleResult<AckImsMqMessage> peekResult = consumer.peek(context, AckImsMqMessage.class);
while (peekResult.isSuccess() && peekResult.getResult() != null) {
AckImsMqMessage result = peekResult.getResult();
AddImsLogInput imsLogInput = new AddImsLogInput();
try {
List list = new ArrayList();
AckImsModel ackImsModel = XCopyUtils.copyNewObject(result, AckImsModel.class);
list.add(ackImsModel);
imsLogInput.setPlanId(result.getPps_id());
imsLogInput.setPlanCode(result.getPps_num());
imsLogInput.setUrl(ackImsUrl);
imsLogInput.setReqParam(XJsonUtils.toJson(list));
HttpHeaders headers = new HttpHeaders();
headers.add("From", "Y");
headers.add("Content-Type", "application/json");
context.getLogger().info("发送到IMS的url------>"+ackImsUrl+",参数----->"+ XJsonUtils.toJson(list));
// 组装请求体
HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity(XJsonUtils.toJson(list), headers);
//发起请求
Object res = restTemplate.postForObject(ackImsUrl, request, Object.class);
context.getLogger().info("接收到IMS的响应------>"+ XJsonUtils.toJson(res));
imsLogInput.setRespParam(XJsonUtils.toJson(res));
AckImsRespModel ackImsRespModel = XJsonUtils.toObject(XJsonUtils.toJson(res), AckImsRespModel.class);
//更新作业计划 ims通知状态
if(ackImsRespModel!=null){
TaskPlanImsAckInput ackInput = new TaskPlanImsAckInput();
ackInput.setTaskPlanId(result.getPps_id());
if(ackImsRespModel.getCode()==0){
imsLogInput.setStatus(1);
ackInput.setStatus(TaskPlanAckImsTypeDic.Finish_Notify.getValue());
}else {
imsLogInput.setStatus(2);
ackInput.setStatus(TaskPlanAckImsTypeDic.Fail_Notify.getValue());
}
XServiceResult serviceResult = taskPlanJobService.updateImsTaskPlan(context, ackInput);
serviceResult.throwIfFail();
}
} catch (Exception e) {
context.getLogger().error("消费失败:" + e.getMessage());
imsLogInput.setStatus(2);
imsLogInput.setRespParam(e.getMessage());
} finally {
consumer.ack(context, peekResult.getResult()); //消费完这个数据后和kafka确认消费
//与IMS 交互入库
imsLogInput.setCreateTime(new Date());
transferService.addImsLog(context,imsLogInput);
}
peekResult = consumer.peek(context, AckImsMqMessage.class);
}
} catch (Exception e) {
context.getLogger().error("消费失败:" + e.getMessage());
}
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pps.cloud.base.service.BaseSysConfigCloudService;
import pps.cloud.base.service.data.ConfigValueInput;
import pps.cloud.transfer.service.TransferService;
import pps.cloud.transfer.service.data.SyncOldPpsImsTaskInput;
import pps.core.task.config.TaskConfig;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XDateUtils;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.util.Date;
import static xstartup.service.job.annotation.XCronTrigger.PRE_30S;
@XText("作业计划ims同步任务")
@XService
public class TaskPlanImsJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(TaskPlanImsJob.class);
@XCronTrigger(value = "0/35 * * * * ?")
@Override
public XServiceResult execute(XContext context) {
String lastDate = new TaskConfig().taskPlanImsDate.findValue(context);
if(StringUtils.isBlank(lastDate)){
context.getLogger().error("作业计划ims同步时间未配置");
return XServiceResult.OK;
}
Date now = new Date();
TransferService transferService = context.getBean(TransferService.class);
SyncOldPpsImsTaskInput syncOldPpsImsTaskInput = new SyncOldPpsImsTaskInput();
syncOldPpsImsTaskInput.setLastDate(XDateUtils.addMunites(XDateUtils.parse(lastDate),-10)); //由于系统时钟不同步,故加大10分钟范围
syncOldPpsImsTaskInput.setNowDate(now);
XServiceResult serviceResult = transferService.syncOldPpsImsTask(context, syncOldPpsImsTaskInput);
serviceResult.throwIfFail();
//更新最后获取时间
BaseSysConfigCloudService bean = context.getBean(BaseSysConfigCloudService.class);
ConfigValueInput configValueInput = new ConfigValueInput();
configValueInput.setConfigKey("pps.core.task.task-config.taskPlanImsDate");
configValueInput.setConfigValue(XDateUtils.getString(now));
bean.setConfigValue(context,configValueInput);
return XServiceResult.OK;
}
}
package pps.core.task.job;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import pps.cloud.dispatch.service.DispTaskPlanJobService;
import pps.cloud.dispatch.service.data.TaskPlanTransferModel;
import pps.cloud.dispatch.service.data.TaskPlanTransferNewInput;
import pps.cloud.dispatch.service.data.TaskPlanTransferNewOutput;
import pps.cloud.transfer.service.TransferService;
import pps.cloud.transfer.service.data.QueryOldPpsImsTaskInput;
import pps.cloud.transfer.service.data.QueryOldPpsImsTaskOutput;
import pps.cloud.transfer.service.data.UpdateOldPpsImsTaskInput;
import pps.cloud.transfer.service.data.UpdateOldPpsModel;
import pps.core.common.utils.UUIDHelper;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.XStartup;
import xstartup.data.XListResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.helper.XLockHelper;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static xstartup.service.job.annotation.XCronTrigger.PRE_30S;
@XText("作业计划转换成新作业计划任务")
@XService
public class TaskPlanTransferJob implements XJob {
private static Logger logger = LoggerFactory.getLogger(TaskPlanTransferJob.class);
@XCronTrigger(value = "0/35 * * * * ?")
@Override
public XServiceResult execute(XContext context) {
String lockkey = "old_task_job" + XStartup.getApplication().getEnv().toString();
XLockHelper.lock(context, "old_task_job", lockkey, 60, () -> {
//获取老pps作业计划
TransferService transferService = context.getBean(TransferService.class);
QueryOldPpsImsTaskInput oldTaskInput = new QueryOldPpsImsTaskInput();
XListResult<QueryOldPpsImsTaskOutput> oldTaskListResult = transferService.queryOldPpsImsTask(context, oldTaskInput);
oldTaskListResult.throwIfFail();
List<QueryOldPpsImsTaskOutput> oldTaskList = oldTaskListResult.getResult();
if(CollectionUtils.isEmpty(oldTaskList)){
return;
}
//转换作业计划
List<TaskPlanTransferModel> newTaskList = new ArrayList<>();
Date now = new Date();
for (QueryOldPpsImsTaskOutput oldTask : oldTaskList) {
TaskPlanTransferModel model = new TaskPlanTransferModel();
model.setTransferId(oldTask.getId());
model.setId(UUIDHelper.newUUID());
model.setTaskCode(oldTask.getJobPlanCodeNew());
model.setTaskCodeIms(oldTask.getJobPlanCodeIMS());
model.setTaskName(oldTask.getJobPlanName());
model.setPipelineId(oldTask.getPipelineID().toUpperCase());
model.setPipelineName(oldTask.getPipelineName());
model.setTaskLevel(oldTask.getJobLevel()); //字典转换
model.setOuId(oldTask.getCompanyOUID().toUpperCase());
model.setOuName(oldTask.getCompanyOuName());
model.setBranchOuName(oldTask.getOuName());
model.setTaskOuId(oldTask.getCompanyOUID().toUpperCase());
model.setTaskOuName(oldTask.getCompanyOuName());
model.setTaskOuType("ou"); //作业单位类型(ou:组织机构,station:场站)
model.setUnitOuId(oldTask.getoUID().toUpperCase());
model.setPrincipal(oldTask.getJobPlanResponsible());
model.setContactInfo(oldTask.getContactWay());
model.setTaskScope(oldTask.getJobScopeType()); //字典转换
model.setTaskType(oldTask.getJobPlanType()); //字典转换
model.setTaskNature(oldTask.getJobPropertyType()); //字典转换
model.setMajor(oldTask.getProfessionalType()); //字典转换
model.setExpectStartDate(oldTask.getEstimateStartTime());
model.setExpectEndDate(oldTask.getEstimateEndTime());
if (StringUtils.isNotBlank(oldTask.getBeginStationID())) {
model.setStartStationId(oldTask.getBeginStationID().toUpperCase());
model.setStartStationName(oldTask.getStartStationName());
}
if (StringUtils.isNotBlank(oldTask.getEndStationID())) {
model.setEndStationId(oldTask.getEndStationID().toUpperCase());
model.setEndStationName(oldTask.getEndStationName());
}
if (StringUtils.isNotBlank(oldTask.getStationID())) {
model.setStartStationId(oldTask.getStationID().toUpperCase());
model.setStartStationName(oldTask.getStationName());
}
if (StringUtils.isNotBlank(oldTask.getValveboxStationID())) {
model.setStartStationId(oldTask.getValveboxStationID().toUpperCase());
model.setStartStationName(oldTask.getValveName());
}
//操作影响的处理 --start
model.setEffect(oldTask.getEffect());
model.setIsAffectAbility(oldTask.getTransferSupply());
model.setIsAffectCommunication(oldTask.getEffectCommunicate());
model.setIsAffectRun(oldTask.getEffectUnitOperation());
model.setIsAffectSupplyGas(oldTask.getTransferSupply());
Integer naturalUpload = oldTask.getNaturalUpload();
if(naturalUpload!=null){
if(naturalUpload==0){
model.setIsAffectUpload(1);
}else{
model.setIsAffectUpload(0);
}
}
model.setIsAffectVenting(oldTask.getVenting());
model.setIsProduceAlarm(oldTask.getGenerateAlarm());
model.setAffectAbilityText(oldTask.getTransferSupplyContent());
model.setAffectCommunicationText(oldTask.getEffectCommunicateContent());
model.setAffectRunText(oldTask.getEffectUnitOperationContent());
model.setAffectSupplyGasText(oldTask.getTransferSupplyContent());
model.setAffectUploadText(oldTask.getNaturalUploadContent());
model.setAffectVentingText(oldTask.getVentingContent());
model.setProduceAlarmText(oldTask.getGenerateAlarmContent());
//操作影响的处理 --end
model.setTaskLevel(oldTask.getJobPlanLevelIMS());
Integer pipelineLevelIMS = oldTask.getPipelineLevel();
if(pipelineLevelIMS==null){
pipelineLevelIMS = 1; //默认一级
}
model.setPipelineLevel(pipelineLevelIMS);
model.setTaskContent(oldTask.getJobContent());
model.setMainWorkFlow(oldTask.getOperationFlow());
model.setRemark(oldTask.getRemark());
model.setStatus(1); // 暂存
//周期计算
//model.setCycleValue(getCycleValue(model.getTaskType(),model.getExpectStartDate()));
model.setCreateById("11111111-1111-1111-1111-111111111111");
model.setCreateByName(oldTask.getCreateByName());
model.setCreateTime(now);
model.setCreateByOuId(oldTask.getoUID().toUpperCase()); //待校准
model.setMediaType(String.valueOf(oldTask.getMedium()));//字典转换
newTaskList.add(model);
}
//插入新pps作业计划
DispTaskPlanJobService taskPlanJobService = context.getBean(DispTaskPlanJobService.class);
TaskPlanTransferNewInput newInput = new TaskPlanTransferNewInput();
newInput.setList(newTaskList);
XSingleResult<TaskPlanTransferNewOutput> serviceResult = taskPlanJobService.insertImsTaskPlan(context, newInput);
serviceResult.throwIfFail();
//更新老pps作业计划转换状态
if(!CollectionUtils.isEmpty(serviceResult.getResult().getList())) {
UpdateOldPpsImsTaskInput updateInput = new UpdateOldPpsImsTaskInput();
List<UpdateOldPpsModel> updateList = new ArrayList<>();
for (TaskPlanTransferModel model : serviceResult.getResult().getList()) {
UpdateOldPpsModel oldPpsModel = new UpdateOldPpsModel();
oldPpsModel.setId(model.getTransferId());
oldPpsModel.setErrorMsg(model.getErrorMsg());
if(model.getStatus()==null){
oldPpsModel.setStatus(1);
}else{
oldPpsModel.setStatus(model.getStatus());
}
updateList.add(oldPpsModel);
}
updateInput.setList(updateList);
XServiceResult serviceResult1 = transferService.updateOldPpsImsTask(context, updateInput);
serviceResult1.throwIfFail();
}
});
return XServiceResult.OK;
}
}
package pps.core.task.job;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
@XText("测试定时任务")
@XService
public class TestTaskJob implements XJob {
@XCronTrigger(value = XCronTrigger.PRE_30S)
@Override
public XServiceResult execute(XContext context) {
context.getLogger().debug("测试任务");
return XServiceResult.OK;
}
}
package pps.core.task.job;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import pps.cloud.trade.service.TradeDataSyncService;
import pps.cloud.trade.service.data.TradeSyncDataParamInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
/**
* @ClassName: TradeSyncDataJob
* @Author : ado
* @Date: 2023-03-17 9:22
* @Description: 交易数据同步
*/
@XText("交易数据同步定时任务,同步频率10分钟一次")
@XService
@Slf4j
public class TradeSyncDataFirstJob implements XJob {
@XCronTrigger(value = "0 0/10 * * * ?")
@Override
public XServiceResult execute(XContext xContext) {
try {
log.info("定时同步交易数据数据,同步频率10分钟一次");
TradeDataSyncService dataSyncService = xContext.getBean(TradeDataSyncService.class);
// 参数
TradeSyncDataParamInput input = new TradeSyncDataParamInput();
//分页参数
if (ObjectUtils.isEmpty(input.getPageNo()) && ObjectUtils.isEmpty(input.getPageSize())) {
input.setPageNo(1);
input.setPageSize(500);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//当前日期
Date currentDate = new Date();
String strCurrentDate = sdf.format(currentDate);
//前三天日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(strCurrentDate));
calendar.add(Calendar.DAY_OF_MONTH, -2);
Date beforeDate = calendar.getTime();
String strBeforeDate = sdf.format(beforeDate);
input.setCreatedAtStart(strBeforeDate + " 00:00:00");
input.setCreatedAtEnd(strCurrentDate + " 23:59:59");
//同步 mkt_month_designate_approval
CompletableFuture.runAsync(() -> dataSyncService.syncMktMonthDesignateApprovalData(xContext, input));
//同步 mkt_month_designate_detail
CompletableFuture.runAsync(() -> dataSyncService.syncMktMonthDesignateDetailData(xContext, input));
//同步 mkt_month_designate_down
CompletableFuture.runAsync(() -> dataSyncService.syncMktMonthDesignateDownData(xContext, input));
//同步 mkt_month_designate_up
CompletableFuture.runAsync(() -> dataSyncService.syncMktMonthDesignateUpData(xContext, input));
//同步 mkt_month_detail
CompletableFuture.runAsync(() -> dataSyncService.syncMktMonthDetailData(xContext, input));
//同步 mkt_month_detail_change
CompletableFuture.runAsync(() -> dataSyncService.syncMktMonthDetailChangeData(xContext, input));
//同步 month_plan_transform
CompletableFuture.runAsync(() -> dataSyncService.syncMonthPlanTransformData(xContext, input));
//同步 month_plan_transform_config
CompletableFuture.runAsync(() -> dataSyncService.syncMonthPlanTransformConfigData(xContext, input));
} catch (Exception e) {
log.error("数据同步失败, fail");
e.printStackTrace();
}
return XServiceResult.OK;
}
}
package pps.core.task.job;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import pps.cloud.trade.service.TradeDataSyncService;
import pps.cloud.trade.service.data.TradeSyncDataParamInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
/**
* @ClassName: TradeSyncDataJob
* @Author : ado
* @Date: 2023-03-17 9:22
* @Description: 交易数据同步
*/
@XText("交易数据同步定时任务,同步频率1小时一次")
@XService
@Slf4j
public class TradeSyncDataSecondJob implements XJob {
@XCronTrigger(value = "0 0 13/1 * * ?")
@Override
public XServiceResult execute(XContext xContext) {
try {
log.info("定时同步交易数据数据,同步频率1小时一次");
TradeDataSyncService dataSyncService = xContext.getBean(TradeDataSyncService.class);
TradeSyncDataParamInput input = new TradeSyncDataParamInput();
//分页参数
if (ObjectUtils.isEmpty(input.getPageNo()) && ObjectUtils.isEmpty(input.getPageSize())) {
input.setPageNo(1);
input.setPageSize(500);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//当前日期
Date currentDate = new Date();
String strCurrentDate = sdf.format(currentDate);
//前三天日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(strCurrentDate));
calendar.add(Calendar.DAY_OF_MONTH, -2);
Date beforeDate = calendar.getTime();
String strBeforeDate = sdf.format(beforeDate);
input.setCreatedAtStart(strBeforeDate + " 00:00:00");
input.setCreatedAtEnd(strCurrentDate + " 23:59:59");
//同步 mkt_day_designate_approval
CompletableFuture.runAsync(() -> dataSyncService.syncDayDesignateApprovalData(xContext, input));
//同步 mkt_day_designate_down
CompletableFuture.runAsync(() -> dataSyncService.syncDayDesignateDownData(xContext, input));
//同步 mkt_day_designate_up
CompletableFuture.runAsync(() -> dataSyncService.syncDayDesignateUpData(xContext, input));
//同步 mkt_meter_gas_data
CompletableFuture.runAsync(() -> dataSyncService.syncMeterGasData(xContext, input));
//同步 mkt_meter_split_data
CompletableFuture.runAsync(() -> dataSyncService.syncMeterSplitData(xContext, input));
} catch (Exception e) {
log.error("数据同步失败, fail");
e.printStackTrace();
}
return XServiceResult.OK;
}
}
package pps.core.task.job;
import lombok.extern.slf4j.Slf4j;
import pps.cloud.trade.service.TradeDataSyncService;
import pps.cloud.trade.service.data.TradeSyncDataParamInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
/**
* @ClassName: TradeSyncDataJob
* @Author : ado
* @Date: 2023-03-17 9:22
* @Description: 交易数据同步
*/
@XText("交易数据同步定时任务,同步频率,1天一次")
@XService
@Slf4j
public class TradeSyncDataThirdJob implements XJob {
@XCronTrigger(value = "0 0 0 */1 * ?")
@Override
public XServiceResult execute(XContext xContext) {
try {
log.info("定时同步数据, 同步频率,1天一次");
TradeDataSyncService dataSyncService = xContext.getBean(TradeDataSyncService.class);
TradeSyncDataParamInput input = new TradeSyncDataParamInput();
input.setPageNo(1);
input.setPageSize(500);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//当前日期
Date currentDate = new Date();
String strCurrentDate = sdf.format(currentDate);
//前一天日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(sdf.parse(strCurrentDate));
calendar.add(Calendar.DAY_OF_MONTH, -2);
Date beforeDate = calendar.getTime();
String strBeforeDate = sdf.format(beforeDate);
input.setCreatedAtStart(strBeforeDate + " 00:00:00");
input.setCreatedAtEnd(strCurrentDate + " 23:59:59");
//同步 kd_company
CompletableFuture.runAsync(() -> dataSyncService.syncKdCompanyData(xContext, input));
//同步 pipechina_sku_extra
CompletableFuture.runAsync(() -> dataSyncService.syncPipechinaSkuExtraData(xContext, input));
//同步 pipechina_point
CompletableFuture.runAsync(() -> dataSyncService.syncPipechinaPointData(xContext, input));
//同步 pipechina_station
CompletableFuture.runAsync(() -> dataSyncService.syncPipechinaStationData(xContext, input));
//同步 pipechina_source
CompletableFuture.runAsync(() -> dataSyncService.syncPipechinaSourceData(xContext, input));
CompletableFuture.runAsync(() -> dataSyncService.syncPartnerCompanyData(xContext, input));
CompletableFuture.runAsync(() -> dataSyncService.syncPartnerShipperPointData(xContext, input));
//全量
//同步 pipechina_segment
CompletableFuture.runAsync(() -> dataSyncService.syncPipechinaSegmentData(xContext, input));
CompletableFuture.runAsync(() -> dataSyncService.syncShipperUnbalanceData(xContext, input));
} catch (Exception e) {
log.error("数据同步失败, fail");
e.printStackTrace();
}
return XServiceResult.OK;
}
}
package pps.core.task.job;
import pps.cloud.transfer.service.TransferService;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.service.job.XJob;
import xstartup.service.job.annotation.XCronTrigger;
/**
* @author lixueyan
* @date 2023/1/30 0030 11:19
*/
@XText("日指定失败重试任务")
@XService
public class TransferRzdRetryJob implements XJob {
@XCronTrigger(value = XCronTrigger.PRE_30S)
@Override
public XServiceResult execute(XContext context) {
TransferService transferService = context.getBean(TransferService.class);
transferService.dealRzdErrorRecords(context);
return XServiceResult.OK;
}
}
package pps.core.task.model;
import xstartup.annotation.XText;
/**
* @author lixueyan
* @date 2023/3/20 0020 14:22
*/
public class AckImsModel {
@XText("PPS作业计划编号")
private String pps_num;
@XText("PPS审核状态(审核通过:36476审核未通过:36067)")
private String pps_status;
@XText("PPS审核意见")
private String pps_result;
@XText("PPS审核人")
private String pps_audit;
@XText("审核步骤:1.所属企业分控中心节点,2.国调节点")
private String pps_step;
public String getPps_num() {
return pps_num;
}
public void setPps_num(String pps_num) {
this.pps_num = pps_num;
}
public String getPps_status() {
return pps_status;
}
public void setPps_status(String pps_status) {
this.pps_status = pps_status;
}
public String getPps_result() {
return pps_result;
}
public void setPps_result(String pps_result) {
this.pps_result = pps_result;
}
public String getPps_audit() {
return pps_audit;
}
public void setPps_audit(String pps_audit) {
this.pps_audit = pps_audit;
}
public String getPps_step() {
return pps_step;
}
public void setPps_step(String pps_step) {
this.pps_step = pps_step;
}
}
package pps.core.task.model;
/**
* @author lixueyan
* @date 2023/3/21 0021 14:58
*/
public class AckImsRespModel {
private Integer code;
private String msg;
private String data;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
package pps.core.task.model;
import lombok.Data;
import xstartup.annotation.XText;
import java.util.Date;
@Data
public class TaskSyncScadaDataParamsInput {
@XText("向前向后(1-向前;2-向后)")
private String moveTowards;
@XText("采集类型(1-常规;2-自定义 ,2:为交接量) //交接量的类型为 2")
private String gatherType;
@XText("采集频率 交接量都是 24")
private int collectInterval;
@XText("环境ID 现逻辑的补数据的时候用")
private int scadaEnvironmentInfoId;
@XText("正常取数据 or 补采集数据 0:正常取数据 1:补采数据")
private int syncType;
@XText("服务名称")
private String taskName;
}
package pps.core.task.module;
import pps.core.common.provider.impl.PpsConfigProviderCommonImpl;
import pps.core.common.utils.CommonTraceLogger;
import pps.core.common.utils.ManifestComponentInfoHelper;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.XModule;
import xstartup.base.pattern.XProviderManager;
import xstartup.kernel.system.provider.spec.XConfigProvider;
@XText("任务模块")
public class PpsCoreTaskModule extends XModule {
protected PpsCoreTaskModule() {
super(1009);
}
@Override
protected void onStarted(XContext context) {
CommonTraceLogger.INSTANCE.start();
//配置信息 自定义实现类
XProviderManager.setDefaultImplement(context, XConfigProvider.class, PpsConfigProviderCommonImpl.class);
ManifestComponentInfoHelper.init(this.getClass().getClassLoader());
}
}
package pps.core.task.service;
import pps.cloud.scadapi.service.ScadaPiService;
import pps.cloud.scadapi.service.data.SyncScadaDataParamsInput;
import pps.core.task.job.TaskPlanImsJob;
import pps.core.task.model.TaskSyncScadaDataParamsInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XServiceResult;
import xstartup.feature.api.annotation.XApiPost;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@XService
@XText("任务服务-供xxl-job 调用-Scada PI")
public class ScadaPIService {
@XApiPost(anonymous = true)
@XText("获取scada-PI 数据")
public XServiceResult getScadapiData4(XContext context, TaskSyncScadaDataParamsInput input) {
ScadaPiService service = context.getBean(ScadaPiService.class);
SyncScadaDataParamsInput _input = new SyncScadaDataParamsInput();
XCopyUtils.copyObject(input,_input);
Date currentTime = new Date();
int currentMin = currentTime.getMinutes();
String gather_offsetStr = String.valueOf(currentMin);
_input.setGatherOffset(gather_offsetStr);//gatherOffset
_input.setCurrentTime(currentTime);
service.SyncScadaDataParamsbak(context, _input);
return XServiceResult.OK;
}
}
package pps.core.task.service;
import pps.core.task.job.TaskPlanImsJob;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XServiceResult;
import xstartup.feature.api.annotation.XApiPost;
/**
* @author lixueyan
* @date 2023/5/4 0004 15:33
*/
@XService
@XText("任务服务-供xxl-job 调用")
public class TaskService {
@XApiPost(anonymous = true)
@XText("获取IMS作业计划")
public XServiceResult getTaskPlanByIms(XContext context) {
TaskPlanImsJob bean = context.getBean(TaskPlanImsJob.class);
return bean.execute(context);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>platform</artifactId>
<groupId>pps</groupId>
<version>1.0.0-pps</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<artifactId>D01-dependency</artifactId>
<version>1.0.0-pps</version>
<packaging>pom</packaging>
<modules>
<module>pps-dependency-all</module>
</modules>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>pps</groupId>
<modelVersion>4.0.0</modelVersion>
<artifactId>pps-dependency-all</artifactId>
<version>1.0.0-pps</version>
<packaging>jar</packaging>
<properties>
<pps.version>1.0.0-pps</pps.version>
<spring-cloud-huawei.version>1.8.0-2020.0.x</spring-cloud-huawei.version>
</properties>
<dependencies>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-common</artifactId>
<version>${pps.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
This diff is collapsed.
package app;
import pps.core.task.job.TaskPlanAckImsJob;
import pps.core.task.job.TaskPlanImsJob;
import pps.core.task.job.TaskPlanTransferJob;
import xstartup.base.XStartup;
import xstartup.base.conf.XServerConf;
import xstartup.base.conf.XServiceConf;
import xstartup.boot.XStartupApplication;
import xstartup.feature.XJobFeature;
import xstartup.feature.api.XApiFeature;
import xstartup.feature.api.conf.XApiCookieConf;
import xstartup.feature.cors.XCorsFeature;
import xstartup.feature.mybatis.XMybatisFeature;
import xstartup.feature.rpc.XRpcFeature;
import xstartup.feature.swagger.XSwaggerFeature;
import xstartup.service.job.conf.XJobServiceConf;
//import xstartup.feature.cloud.XCloudHuaweiCseFeature;
public class DeployPpsAllApplication {
public static void main(String... args){
XStartup startup = new XStartupApplication("pps");
startup.config(new XServerConf(22060).naming("pps-all"));
startup.config(new XServiceConf("pps"));
startup.enable(XApiFeature.class)
.config(new XApiCookieConf("%4bH8s9&",43200));
startup.enable(XSwaggerFeature.class);
startup.enable(XMybatisFeature.class);
startup.enable(XRpcFeature.class);
startup.enable(XCorsFeature.class);
//startup.enable(XCloudHuaweiCseFeature.class);
startup.enable(XJobFeature.class).config(new XJobServiceConf(TaskPlanImsJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TaskPlanTransferJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TaskPlanAckImsJob.class));
startup.run(args);
}
}
FROM java:8
EXPOSE 10079
VOLUME /tmp
ADD deploy-pps-gateway.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-parent-gateway</artifactId>
<version>1.15.169-xstartup-cloud</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.0.0</version>
<groupId>pps</groupId>
<artifactId>deploy-pps-gateway</artifactId>
<dependencies>
<dependency>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-feature-huawei-cse-gateway</artifactId>
</dependency>
</dependencies>
<profiles>
<!-- 开发环境,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
<!--开发测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!--xcd开发环境 -->
<profile>
<id>sit</id>
<properties>
<env>sit</env>
</properties>
</profile>
<!--xcd测试环境 -->
<profile>
<id>uat</id>
<properties>
<env>uat</env>
</properties>
</profile>
<!--vpn连接开发环境 -->
<profile>
<id>vpn</id>
<properties>
<env>vpn</env>
</properties>
</profile>
<!--xcd开发环境 -->
<profile>
<id>stg</id>
<properties>
<env>stg</env>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>../filters/filter-${env}.properties</filter>
</filters>
<finalName>${project.artifactId}</finalName>
<plugins>
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<copy todir="../lib" overwrite="true">
<fileset dir="${project.build.directory}/current/lib/"
erroronmissingdir="false">
<include name="*.jar" />
</fileset>
</copy>
&lt;!&ndash;<move file="${project.build.directory}/current/lib/deploy-pps-analysis.jar"
tofile="../lib/deploy-pps-analysis.jar" />&ndash;&gt;
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>clean</id>
<phase>clean</phase>
<configuration>
<target>
<delete file="../lib/deploy-pps-gateway.jar" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.7</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
package app;
import xstartup.base.XStartup;
import xstartup.base.conf.XServerConf;
import xstartup.boot.XStartupApplication;
import xstartup.feature.cloud.XCloudHuaweiCseGatewayFeature;
public class DeployPpsGatewayApplication {
public static void main(String... args) {
XStartup startup = new XStartupApplication("pps");
startup.config(new XServerConf(22068).naming("pps-gateway-service"));
startup.enable(XCloudHuaweiCseGatewayFeature.class);
startup.run(args);
}
}
server:
port: 10079
spring:
cloud:
gateway:
routes:
- id: pps-system
uri: lb://pps-base-info
filters:
- name: governance
predicates:
- Path=/api/pps/system/**
- id: pps-base
uri: lb://pps-base-info
filters:
- name: governance
predicates:
- Path=/api/pps/base/**
- id: pps-common
uri: lb://pps-base-info
filters:
- name: governance
predicates:
- Path=/api/pps/common/**
- id: pps-calc
uri: lb://pps-transportation-calc
filters:
- name: governance
predicates:
- Path=/api/pps/calc/**
- id: pps-plan
uri: lb://pps-plan
filters:
- name: governance
predicates:
- Path=/api/pps/plan/**
- id: pps-dispatch
uri: lb://pps-dispatch
filters:
- name: governance
predicates:
- Path=/api/pps/dispatch/**
- id: pps-online
uri: lb://pps-into-production
filters:
- name: governance
predicates:
- Path=/api/pps/online/**
- id: pps-energy
uri: lb://pps-energy-consumption
filters:
- name: governance
predicates:
- Path=/api/pps/energy/**
- id: pps-measure
uri: lb://pps-measure
filters:
- name: governance
predicates:
- Path=/api/pps/measure/**
- id: pps-frame
uri: lb://pps-base-frame
filters:
- name: governance
predicates:
- Path=/api/pps/baseframe/**
- id: pps-bpm
uri: lb://pps-workflow
filters:
- name: governance
predicates:
- Path=/api/pps/primbpm/**
- id: pps-interface
uri: lb://pps-interface
filters:
- name: governance
predicates:
- Path=/api/pps/interface/**
- id: pps-analysis
uri: lb://pps-analysis
filters:
- name: governance
predicates:
- Path=/api/pps/analysis/**
- id: pps-signature
uri: lb://pps-signature
filters:
- name: governance
predicates:
- Path=/api/pps/signature/**
- id: pps-report
uri: lb://pps-report
filters:
- name: governance
predicates:
- Path=/api/pps/report/**
- id: pps-interface
uri: lb://pps-interface
filters:
- name: governance
predicates:
- Path=/api/pps/iam/**
- id: pps-transfer
uri: lb://pps-interface
filters:
- name: governance
predicates:
- Path=/api/pps/transfer/**
- id: pps-mdm
uri: lb://pps-interface
filters:
- name: governance
predicates:
- Path=/api/pps/mdm/**
- id: pps-ukey
uri: lb://pps-interface
filters:
- name: governance
predicates:
- Path=/api/pps/ukey/**
x.app.env=${env}
x.app.buildtime=${maven.build.timestamp}
x.log.level=@x.log.level@
x.log.directory=@x.log.directory@
x.server.port=@x.server.port.gateway@
x.server.host=127.0.0.1
#x.cors.origin-pattern=http://localhost:8080
# redis
x.cache.type=@x.cache.type@
x.cache.host=@x.cache.host@
x.cache.port=@x.cache.port@
x.cache.auth=@x.cache.auth@
x.cache.db=@x.cache.db@
# datasource
#x.db.sharding=1
#x.db.driver=com.mysql.cj.jdbc.Driver
#x.db.url=jdbc:mysql://81.70.29.235:3306/pps_demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
#x.db.user=pps
#x.db.password=_X2csclhj1QIh7OU1ta6iw==
#x.db.naming=snake-case
#x.db.sharding=@x.db.sharding@
#x.db.driver=@x.db.driver@
#x.db.url=@x.db.url@
#x.db.user=@x.db.user@
#x.db.password=@x.db.password@
#x.db.naming=@x.db.naming@
x.db.sharding=@x.db.sharding@
x.db.driver=@x.db.driver@
x.db.url=@x.db.url@
x.db.user=@x.db.user@
x.db.password=@x.db.password@
x.db.naming=@x.db.naming@
#cors
x.cors.origin-pattern=*
#huawei cse config
#spring.application.name=pps-gateway-service
#spring.cloud.servicecomb.discovery.enabled=true
#spring.cloud.servicecomb.discovery.watch=true
#spring.cloud.servicecomb.discovery.address=@spring.cloud.servicecomb.discovery.address@
#spring.cloud.servicecomb.discovery.appName=pps-application
#spring.cloud.servicecomb.discovery.serviceName=pps-gateway-service
#spring.cloud.servicecomb.discovery.version=@project.version@
#spring.cloud.servicecomb.discovery.healthCheckInterval=30
#spring.cloud.servicecomb.config.serverType=@spring.cloud.servicecomb.config.serverType@
#spring.cloud.servicecomb.config.serverAddr=@spring.cloud.servicecomb.config.serverAddr@
#spring.cloud.servicecomb.credentials.account.name=@spring.cloud.servicecomb.credentials.account.name@
#spring.cloud.servicecomb.credentials.account.password=@spring.cloud.servicecomb.credentials.account.password@
#spring.cloud.servicecomb.credentials.account.cipher=@spring.cloud.servicecomb.credentials.account.cipher@
#注册中心地址
x.cloud.discovery.server-addr=@spring.cloud.servicecomb.discovery.address@
#注册的应用名称(非微服务名称,微服务名称在代码里设置了)
x.cloud.discovery.app-name=pps-application
#用户名
x.cloud.discovery.username=@spring.cloud.servicecomb.credentials.account.name@
#密码
x.cloud.discovery.password=@spring.cloud.servicecomb.credentials.account.password@
#配置中心地址
#x.cloud.config.server-addr=@spring.cloud.servicecomb.config.serverAddr@
FROM java:8
EXPOSE 10087
VOLUME /tmp
ADD deploy-pps-system.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-parent-app</artifactId>
<version>1.15.169-xstartup-cloud</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<artifactId>deploy-pps-system</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<properties>
<project.mainClass>app.DeployPpsSystemApplication</project.mainClass>
<pps.version>1.0.0-pps</pps.version>
<docker.plugin.version>1.1.1</docker.plugin.version>
<maven.build.timestamp.format>yyyy.MMdd.HHmmss</maven.build.timestamp.format>
</properties>
<dependencies>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-core-system</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-system</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-core-base</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-base</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-dependency-all</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-feature-huawei-cse</artifactId>
</dependency>
<dependency>
<groupId>xstartup</groupId>
<artifactId>xstartup-feature-mybatis</artifactId>
</dependency>
<dependency>
<groupId>huawei-gauss-db</groupId>
<artifactId>huawei-gauss-db</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-core-framedata</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>xstartup</groupId>
<artifactId>xstartup-toolkit-kafka</artifactId>
</dependency>
<dependency>
<groupId>xstartup</groupId>
<artifactId>xstartup-toolkit-obs</artifactId>
</dependency>
</dependencies>
<profiles>
<!-- 开发环境,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
<!--开发测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!--sit -->
<profile>
<id>sit</id>
<properties>
<env>sit</env>
</properties>
</profile>
<!--vpn连接开发环境 -->
<profile>
<id>vpn</id>
<properties>
<env>vpn</env>
</properties>
</profile>
<!--uat -->
<profile>
<id>uat</id>
<properties>
<env>uat</env>
</properties>
</profile>
<!--xcd开发环境 -->
<profile>
<id>stg</id>
<properties>
<env>stg</env>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>../filters/filter-${env}.properties</filter>
</filters>
<finalName>${project.artifactId}</finalName>
<plugins>
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<copy todir="../lib" overwrite="true">
<fileset dir="${project.build.directory}/current/lib/"
erroronmissingdir="false">
<include name="*.jar" />
</fileset>
</copy>
&lt;!&ndash;<move file="${project.build.directory}/current/lib/deploy-pps-analysis.jar"
tofile="../lib/deploy-pps-analysis.jar" />&ndash;&gt;
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>clean</id>
<phase>clean</phase>
<configuration>
<target>
<delete file="../lib/deploy-pps-system.jar" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.7</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
package app;
//import pps.core.common.job.CounterJob;
import pps.core.common.utils.CounterBuilder;
import xstartup.base.XStartup;
import xstartup.base.conf.XServerConf;
import xstartup.base.conf.XServiceConf;
import xstartup.base.util.XEncryptUtils;
import xstartup.boot.XStartupApplication;
import xstartup.feature.XJobFeature;
import xstartup.feature.api.XApiFeature;
import xstartup.feature.api.conf.XApiCookieConf;
import xstartup.feature.cloud.XCloudHuaweiCseFeature;
import xstartup.feature.cloud.conf.XCloudBundle;
import xstartup.feature.cloud.conf.XCloudBundlesConf;
import xstartup.feature.cors.XCorsFeature;
import xstartup.feature.mybatis.XMybatisFeature;
import xstartup.feature.rpc.XRpcFeature;
import xstartup.feature.swagger.XSwaggerFeature;
import xstartup.service.job.conf.XJobServiceConf;
public class DeployPpsSystemApplication {
public static void main(String... args) {
CounterBuilder.globalCounterBuilder.setFieldValue(CounterBuilder.DEPLOY_KEY, DeployPpsSystemApplication.class.getSimpleName());
XStartup startup = new XStartupApplication("pps");
startup.config(new XServerConf(22061).naming("pps-base-info"))
.config(new XServiceConf("pps"));
startup.enable(XApiFeature.class)
.config(new XApiCookieConf("%4bH8s9&",43200));
startup.enable(XSwaggerFeature.class);
// startup.enable(XJobFeature.class).config(new XJobServiceConf(CounterJob.class));
startup.enable(XMybatisFeature.class);
startup.enable(XRpcFeature.class);
startup.enable(XCloudHuaweiCseFeature.class)
.config(XCloudBundlesConf.with(
XCloudBundle.naming("pps-workflow").addModule("pps", "cloud", "primbpm"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "fiybook"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "sms"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "ihd"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "scadapi"),
XCloudBundle.naming("pps-dispatch").addModule("pps", "cloud", "dispatch"),
XCloudBundle.naming("pps-base-frame").addModule("pps", "cloud", "baseframe"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "iam"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "ukey")));
startup.run(args);
}
}
x.app.env=${env}
x.app.buildtime=${maven.build.timestamp}
#�Զ�������
pps.core.system.login-config.expiresIn=@pps.core.system.login-config.expiresIn@
pps.core.system.login-config.rsaPrivateKey=@pps.core.system.login-config.rsaPrivateKey@
pps.core.system.login-config.userRsaPrivateKey=@pps.core.system.login-config.userRsaPrivateKey@
pps.core.system.login-config.userRsaPublicKey=@pps.core.system.login-config.userRsaPublicKey@
pps.core.system.login-config.adminRoles=@pps.core.system.login-config.adminRoles@
pps.core.system.login-config.iamToLoginUrl=@pps.core.system.login-config.iamToLoginUrl@
pps.core.common.mq-config.accessLogMq=@pps.core.common.mq-config.accessLogMq@
pps.core.common.mq-config.transferLogMq=@pps.core.common.mq-config.transferLogMq@
pps.core.common.mq-config.consumeInterval=@pps.core.common.mq-config.consumeInterval@
pps.core.common.obs-config.urlExpires=@pps.core.common.obs-config.urlExpires@
pps.core.common.mq-config.sysInformSendMq=@pps.core.common.mq-config.sysInformSendMq@
#session����
x.session.cache.key-prefix=pps
#��־��������
x.log.level=@x.log.level@
x.log.directory=@x.log.directory@
x.server.port=@x.server.port.system@
x.server.host=127.0.0.1
# redis
x.cache.type=@x.cache.type@
x.cache.host=@x.cache.host@
x.cache.port=@x.cache.port@
x.cache.auth=@x.cache.auth@
x.cache.db=@x.cache.db@
# datasource
x.db.sharding=@x.db.sharding@
x.db.driver=@x.db.driver@
x.db.url=@x.db.url@
x.db.user=@x.db.user@
x.db.password=@x.db.password@
x.db.naming=@x.db.naming@
#obj
x.storage.type=@x.storage.type@
x.storage.endpoint=@x.storage.endpoint@
x.storage.access-key-id=@x.storage.access-key-id@
x.storage.secret-access-key=@x.storage.secret-access-key@
x.storage.bucket-name=@x.storage.bucket-name@
#mqs
x.mq.factory=@x.mq.factory@
x.mq.host=@x.mq.host@
x.mq.port=@x.mq.port@
x.mq.vhost=null
x.mq.username=@x.mq.username@
x.mq.password=@x.mq.password@
x.mq.group=group_system
x.mq.consumer-type=pull
x.mq.ssl-truststore-location=@x.mq.ssl-truststore-location@
x.mq.sasl-mechanism=@x.mq.sasl-mechanism@
x.mq.ssl-endpoint-identification-algorithm=
x.db.pps.core.system.sharding=@x.db.pps.core.system.sharding@
x.db.pps.core.system.driver=@x.db.pps.core.system.driver@
x.db.pps.core.system.url=@x.db.pps.core.system.url@
x.db.pps.core.system.user=@x.db.pps.core.system.user@
x.db.pps.core.system.password=@x.db.pps.core.system.password@
x.db.pps.core.system.naming=@x.db.pps.core.system.naming@
x.db.pps.core.framedata.sharding=@x.db.pps.core.system.sharding@
x.db.pps.core.framedata.driver=@x.db.pps.core.system.driver@
x.db.pps.core.framedata.url=@x.db.pps.core.system.url@
x.db.pps.core.framedata.user=@x.db.pps.core.system.user@
x.db.pps.core.framedata.password=@x.db.pps.core.system.password@
x.db.pps.core.framedata.naming=@x.db.pps.core.system.naming@
pps.core.common.trace-log-config.enabletracelog=true
#huawei cse config
#spring.application.name=pps-base-info
#spring.cloud.servicecomb.discovery.enabled=true
#spring.cloud.servicecomb.discovery.watch=true
#spring.cloud.servicecomb.discovery.address=@spring.cloud.servicecomb.discovery.address@
#spring.cloud.servicecomb.discovery.appName=pps-application
##spring.cloud.servicecomb.discovery.serviceName=pps-base-info
#spring.cloud.servicecomb.discovery.version=@project.version@
#spring.cloud.servicecomb.discovery.healthCheckInterval=30
#spring.cloud.servicecomb.config.serverType=@spring.cloud.servicecomb.config.serverType@
#spring.cloud.servicecomb.config.serverAddr=@spring.cloud.servicecomb.config.serverAddr@
#spring.cloud.servicecomb.credentials.account.name=@spring.cloud.servicecomb.credentials.account.name@
#spring.cloud.servicecomb.credentials.account.password=@spring.cloud.servicecomb.credentials.account.password@
#spring.cloud.servicecomb.credentials.account.cipher=@spring.cloud.servicecomb.credentials.account.cipher@
#注册中心地址
x.cloud.discovery.server-addr=@spring.cloud.servicecomb.discovery.address@
#注册的应用名称(非微服务名称,微服务名称在代码里设置了)
x.cloud.discovery.app-name=pps-application
#用户名
x.cloud.discovery.username=@spring.cloud.servicecomb.credentials.account.name@
#密码
x.cloud.discovery.password=@spring.cloud.servicecomb.credentials.account.password@
#配置中心地址
#x.cloud.config.server-addr=@spring.cloud.servicecomb.config.serverAddr@
FROM java:8
EXPOSE 10088
VOLUME /tmp
ADD deploy-pps-task.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-parent-app</artifactId>
<version>1.15.169-xstartup-cloud</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<artifactId>deploy-pps-task</artifactId>
<version>1.0.0</version>
<properties>
<project.mainClass>app.DeployPpsSystemApplication</project.mainClass>
<pps.version>1.0.0-pps</pps.version>
</properties>
<dependencies>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-core-task</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-dependency-all</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>xstartup</groupId>
<artifactId>xstartup-feature-mybatis</artifactId>
</dependency>
<dependency>
<groupId>huawei-gauss-db</groupId>
<artifactId>huawei-gauss-db</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-core-framedata</artifactId>
<version>${pps.version}</version>
</dependency>
<dependency>
<groupId>xstartup</groupId>
<artifactId>xstartup-toolkit-kafka</artifactId>
</dependency>
<dependency>
<groupId>xstartup-cloud</groupId>
<artifactId>xstartup-cloud-feature-huawei-cse</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
</dependencies>
<profiles>
<!-- 开发环境,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
<!--开发测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!--xcd开发环境 -->
<profile>
<id>sit</id>
<properties>
<env>sit</env>
</properties>
</profile>
<!--xcd测试环境 -->
<profile>
<id>uat</id>
<properties>
<env>uat</env>
</properties>
</profile>
<!--vpn连接开发环境 -->
<profile>
<id>vpn</id>
<properties>
<env>vpn</env>
</properties>
</profile>
<!--xcd开发环境 -->
<profile>
<id>stg</id>
<properties>
<env>stg</env>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>../filters/filter-${env}.properties</filter>
</filters>
<finalName>${project.artifactId}</finalName>
<plugins>
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<configuration>
<target>
<copy todir="../lib" overwrite="true">
<fileset dir="${project.build.directory}/current/lib/"
erroronmissingdir="false">
<include name="*.jar" />
</fileset>
</copy>
&lt;!&ndash;<move file="${project.build.directory}/current/lib/deploy-pps-analysis.jar"
tofile="../lib/deploy-pps-analysis.jar" />&ndash;&gt;
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>clean</id>
<phase>clean</phase>
<configuration>
<target>
<delete file="../lib/deploy-pps-task.jar" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.7</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
package app;
//import pps.core.common.job.CounterJob;
import pps.core.common.utils.CounterBuilder;
import pps.core.task.job.*;
import xstartup.base.XStartup;
import xstartup.base.conf.XServerConf;
import xstartup.base.conf.XServiceConf;
import xstartup.base.util.XEncryptUtils;
import xstartup.boot.XStartupApplication;
import xstartup.feature.XJobFeature;
import xstartup.feature.api.XApiFeature;
import xstartup.feature.api.conf.XApiCookieConf;
import xstartup.feature.cloud.XCloudHuaweiCseFeature;
import xstartup.feature.cloud.conf.XCloudBundle;
import xstartup.feature.cloud.conf.XCloudBundlesConf;
import xstartup.feature.cors.XCorsFeature;
import xstartup.feature.mybatis.XMybatisFeature;
import xstartup.feature.rpc.XRpcFeature;
import xstartup.service.job.conf.XJobServiceConf;
public class DeployPpsTaskApplication {
public static void main(String... args) {
CounterBuilder.globalCounterBuilder.setFieldValue(CounterBuilder.DEPLOY_KEY, DeployPpsTaskApplication.class.getSimpleName());
XStartup startup = new XStartupApplication("pps");
startup.config(new XServerConf(22062).naming("pps-task"))
.config(new XServiceConf("pps"));
startup.enable(XApiFeature.class)
.config(new XApiCookieConf("%4bH8s9&",43200));
startup.enable(XCorsFeature.class);
startup.enable(XMybatisFeature.class);
startup.enable(XJobFeature.class).config(new XJobServiceConf(MeasureJob.class));
// startup.enable(XJobFeature.class).config(new XJobServiceConf(CounterJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TestTaskJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(AccessLogConsumeJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(MdmJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(NgOnDutyMatJob.class));
//startup.enable(XJobFeature.class).config(new XJobServiceConf(DispTaskPlanCountdownHoursJob.class));
//startup.enable(XJobFeature.class).config(new XJobServiceConf(ImsJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiDataJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiDataDayJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiDataOilAmountJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TransferRzdRetryJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(SmsTimingSendJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(OndutySmsTimingSendJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(DataPreproccessJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(SyncBaseInfoJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TaskPlanImsJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TaskPlanAckImsJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TaskPlanTransferJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiDataDayComJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(TradeSyncDataFirstJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiDataTwoHourJob.class));
startup.enable(XJobFeature.class).config(new XJobServiceConf(ScadaPiDataFourHourJob.class));
startup.enable(XRpcFeature.class);
startup.enable(XCloudHuaweiCseFeature.class)
.config(XCloudBundlesConf.with(
// XCloudBundle.naming("pps-workflow").addModule("pps", "cloud", "task"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "mdm"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "ims"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "measure"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "transfer"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "scadapi"),
XCloudBundle.naming("pps-base-info").addModule("pps", "cloud", "system"),
XCloudBundle.naming("pps-interface").addModule("pps", "cloud", "trade"),
XCloudBundle.naming("pps-dispatch").addModule("pps", "cloud", "dispatch"),
XCloudBundle.naming("pps-base-info").addModule("pps", "cloud", "base")));
startup.run(args);
}
}
x.app.env=${env}
x.app.buildtime=${maven.build.timestamp}
#\uFFFD\u0536\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
pps.core.common.mq-config.accessLogMq=@pps.core.common.mq-config.accessLogMq@
pps.core.common.mq-config.consumeInterval=@pps.core.common.mq-config.consumeInterval@
pps.core.common.obs-config.urlExpires=@pps.core.common.obs-config.urlExpires@
pps.core.common.mq-config.ackImsMq=@pps.core.common.mq-config.ackImsMq@
x.job.service=\
pps.core.task.job.ScadaPiDataTwoHourJob,\
pps.core.task.job.ScadaPiDataFourHourJob,\
pps.core.task.job.MdmJob,\
pps.core.task.job.NgOnDutyMatJob,\
pps.core.task.job.DispTaskPlanCountdownHoursJob,\
pps.core.task.job.ScadaPiJob,\
pps.core.task.job.ScadaPiDataJob,\
pps.core.task.job.ScadaPiDataDayJob,\
pps.core.task.job.ScadaPiDataOilAmountJob,\
pps.core.task.job.TransferRzdRetryJob,\
pps.core.task.job.SmsTimingSendJob,\
pps.core.task.job.OndutySmsTimingSendJob,\
pps.core.task.job.DataPreproccessJob,\
pps.core.task.job.SyncBaseInfoJob,\
pps.core.task.job.TaskPlanImsJob,\
pps.core.task.job.TaskPlanAckImsJob,\
pps.core.task.job.TaskPlanTransferJob,\
pps.core.task.job.ScadaPiDataDayComJob,\
pps.core.task.job.TradeSyncDataFirstJob,\
pps.core.task.job.TradeSyncDataSecondJob,\
pps.code.task.job.TradeSyncDataThirdJob
#\uFFFD\uFFFD\u05BE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
x.log.level=@x.log.level@
x.log.directory=@x.log.directory@
x.server.port=@x.server.port.task@
x.server.host=127.0.0.1
# redis
x.cache.type=@x.cache.type@
x.cache.host=@x.cache.host@
x.cache.port=@x.cache.port@
x.cache.auth=@x.cache.auth@
x.cache.db=@x.cache.db@
#mqs
x.mq.factory=@x.mq.factory@
x.mq.host=@x.mq.host@
x.mq.port=@x.mq.port@
x.mq.vhost=null
x.mq.username=@x.mq.username@
x.mq.password=@x.mq.password@
x.mq.group=group_task
x.mq.consumer-type=pull
x.mq.ssl-truststore-location=@x.mq.ssl-truststore-location@
x.mq.sasl-mechanism=@x.mq.sasl-mechanism@
x.mq.ssl-endpoint-identification-algorithm=
# datasource
x.db.sharding=@x.db.sharding@
x.db.driver=@x.db.driver@
x.db.url=@x.db.url@
x.db.user=@x.db.user@
x.db.password=@x.db.password@
x.db.naming=@x.db.naming@
#huawei cse config
#spring.application.name=pps-task
#spring.cloud.servicecomb.discovery.enabled=true
#spring.cloud.servicecomb.discovery.watch=true
#spring.cloud.servicecomb.discovery.address=@spring.cloud.servicecomb.discovery.address@
#spring.cloud.servicecomb.discovery.appName=pps-application
#spring.cloud.servicecomb.discovery.serviceName=pps-task
#spring.cloud.servicecomb.discovery.version=@project.version@
#spring.cloud.servicecomb.discovery.healthCheckInterval=30
#spring.cloud.servicecomb.config.serverType=@spring.cloud.servicecomb.config.serverType@
#spring.cloud.servicecomb.config.serverAddr=@spring.cloud.servicecomb.config.serverAddr@
#spring.cloud.servicecomb.credentials.account.name=@spring.cloud.servicecomb.credentials.account.name@
#spring.cloud.servicecomb.credentials.account.password=@spring.cloud.servicecomb.credentials.account.password@
#spring.cloud.servicecomb.credentials.account.cipher=@spring.cloud.servicecomb.credentials.account.cipher@
#\u6CE8\u518C\u4E2D\u5FC3\u5730\u5740
x.cloud.discovery.server-addr=@spring.cloud.servicecomb.discovery.address@
#\u6CE8\u518C\u7684\u5E94\u7528\u540D\u79F0\uFF08\u975E\u5FAE\u670D\u52A1\u540D\u79F0\uFF0C\u5FAE\u670D\u52A1\u540D\u79F0\u5728\u4EE3\u7801\u91CC\u8BBE\u7F6E\u4E86\uFF09
x.cloud.discovery.app-name=pps-application
#\u7528\u6237\u540D
x.cloud.discovery.username=@spring.cloud.servicecomb.credentials.account.name@
#\u5BC6\u7801
x.cloud.discovery.password=@spring.cloud.servicecomb.credentials.account.password@
#\u914D\u7F6E\u4E2D\u5FC3\u5730\u5740
#x.cloud.config.server-addr=@spring.cloud.servicecomb.config.serverAddr@
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
x.server.port.gateway=10079
x.server.port.calc=10081
x.server.port.dispatch=10082
x.server.port.energy=10083
x.server.port.measure=10084
x.server.port.online=10085
x.server.port.base=10086
x.server.port.system=10087
x.server.port.task=10088
x.server.port.bpm=10089
x.server.port.frame=10090
x.server.port.plan=10091
x.server.port.analysis=10092
x.server.port.signature=10093
x.server.port.third-interface=10094
x.server.port.report=10095
x.server.host=127.0.0.1
#自定义配置
pps.core.common.mq-config.accessLogMq=pps_base_sys_log
pps.core.common.mq-config.consumeInterval=1000
pps.core.common.obs-config.urlExpires=1800
pps.core.system.login-config.expiresIn=7200
pps.core.transfer.transfer-config.oldPPSAddress=http://10.20.89.75
pps.core.common.mq-config.transferLogMq=pps_transfer_log
pps.core.primbpm.bps-config.bpsAddress=http://39.105.212.1:48084
pps.core.primbpm.bps-config.bpsVirtualAddress=http://182.92.241.51:8762
pps.core.primbpm.bps-config.bpsGraphAddress=http://39.105.212.1:8090
pps.core.primbpm.bps-config.userId=sysadmin
pps.core.primbpm.bps-config.userName=sysadmin
pps.core.primbpm.bps-config.tenantId=PPS
pps.core.system.login-config.adminRoles=638dc709-7b21-4139-bf27-56ac9390168b
pps.core.system.login-config.iamToLoginUrl=http://10.21.140.150/
pps.core.iam.iam-config.clientId=gwxpps
pps.core.iam.iam-config.iamUrl=http://10.20.144.9
pps.core.iam.iam-config.redirectUrl=http://10.21.140.150/api/pps/system/login/iam-to-login
pps.core.iam.iam-config.responseType=code
pps.core.iam.iam-config.state=pipe
pps.core.common.analysis-transfer-config.useMq2Analysis=true
pps.core.measure.si-config.siUrl=http://10.20.89.75/interface/
#pps.core.primbpm.bps-config.bpsAddress=http://10.21.128.43:48084
#pps.core.primbpm.bps-config.userId=sysadmin
#pps.core.primbpm.bps-config.userName=sysadmin
#pps.core.primbpm.bps-config.tenantId=PPS-DEV
#日志级别配置
x.log.level=debug
x.log.directory=/home/pps/log
# redis
x.cache.type=redis
x.cache.host=127.0.0.1
x.cache.port=6379
x.cache.auth=BJ8HiKUS_Rg=
x.cache.db=9
#obs
x.storage.type=obs
x.storage.endpoint=127.0.0.1
x.storage.access-key-id=9092
x.storage.secret-access-key=
x.storage.bucket-name=
#mqs
x.mq.factory=xstartup.toolkit.mq.kafka.KafkaMqFactory
x.mq.host=127.0.0.1
x.mq.port=9092
x.mq.group=group001
# datasource
x.db.sharding=1
x.db.driver=org.postgresql.Driver
#x.db.url=jdbc:postgresql://127.0.0.1:5432/pps?characterEncoding=utf8&allowEncodingChanges=true
x.db.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_base_info&characterEncoding=utf8&allowEncodingChanges=true
#x.db.url=jdbc:postgresql://127.0.0.1:5432/pps?characterEncoding=utf8&allowEncodingChanges=true
x.db.user=root
x.db.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.naming=snake-case
x.db.pps.core.analysis.sharding=1
x.db.pps.core.analysis.driver=org.postgresql.Driver
x.db.pps.core.analysis.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_analysis&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.analysis.user=root
x.db.pps.core.analysis.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.analysis.naming=snake-case
x.db.pps.core.primbpm.sharding=1
x.db.pps.core.primbpm.driver=org.postgresql.Driver
x.db.pps.core.primbpm.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_workflow&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.primbpm.user=root
x.db.pps.core.primbpm.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.primbpm.naming=snake-case
x.db.pps.core.calc.sharding=1
x.db.pps.core.calc.driver=org.postgresql.Driver
x.db.pps.core.calc.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_transportation_calc&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.calc.user=root
x.db.pps.core.calc.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.calc.naming=snake-case
x.db.pps.core.dispatch.sharding=1
x.db.pps.core.dispatch.driver=org.postgresql.Driver
x.db.pps.core.dispatch.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_dispatch&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.dispatch.user=root
x.db.pps.core.dispatch.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.dispatch.naming=snake-case
x.db.pps.core.energy.sharding=1
x.db.pps.core.energy.driver=org.postgresql.Driver
x.db.pps.core.energy.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_energy_consumption&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.energy.user=root
x.db.pps.core.energy.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.energy.naming=snake-case
x.db.pps.core.baseframe.sharding=1
x.db.pps.core.baseframe.driver=org.postgresql.Driver
x.db.pps.core.baseframe.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_base_frame&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.baseframe.user=root
x.db.pps.core.baseframe.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.baseframe.naming=snake-case
x.db.pps.core.measure.sharding=1
x.db.pps.core.measure.driver=org.postgresql.Driver
x.db.pps.core.measure.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_measure&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.measure.user=root
x.db.pps.core.measure.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.measure.naming=snake-case
x.db.pps.core.online.sharding=1
x.db.pps.core.online.driver=org.postgresql.Driver
x.db.pps.core.online.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_into_production&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.online.user=root
x.db.pps.core.online.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.online.naming=snake-case
x.db.pps.core.plan.sharding=1
x.db.pps.core.plan.driver=org.postgresql.Driver
x.db.pps.core.plan.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_plan&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.plan.user=root
x.db.pps.core.plan.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.plan.naming=snake-case
x.db.pps.core.signature.sharding=1
x.db.pps.core.signature.driver=org.postgresql.Driver
x.db.pps.core.signature.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_signature&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.signature.user=root
x.db.pps.core.signature.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.signature.naming=snake-case
x.db.pps.core.system.sharding=1
x.db.pps.core.system.driver=org.postgresql.Driver
#x.db.pps.core.system.url=jdbc:postgresql://127.0.0.1:5432/pps?characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.system.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_base_info&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.system.user=root
x.db.pps.core.system.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.system.naming=snake-case
x.db.pps.core.interface.sharding=1
x.db.pps.core.interface.driver=org.postgresql.Driver
x.db.pps.core.interface.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_interface&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.interface.user=root
x.db.pps.core.interface.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.interface.naming=snake-case
x.db.pps.core.report.sharding=1
x.db.pps.core.report.driver=org.postgresql.Driver
x.db.pps.core.report.url=jdbc:postgresql://127.0.0.1:5432/pps?currentSchema=pps_interface&characterEncoding=utf8&allowEncodingChanges=true
x.db.pps.core.report.user=root
x.db.pps.core.report.password=yCimDc1KyfJbgDJ3p7Cqyg==
x.db.pps.core.report.naming=snake-case
#huawei-cse config
spring.cloud.servicecomb.discovery.address=http://127.0.0.1:30100
spring.cloud.servicecomb.config.serverType=kie
spring.cloud.servicecomb.config.serverAddr=http://127.0.0.1:30110
spring.cloud.servicecomb.credentials.account.name=
spring.cloud.servicecomb.credentials.account.password=
spring.cloud.servicecomb.credentials.account.cipher=
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>D03-deploy</artifactId>
<groupId>pps</groupId>
<version>1.0.0-pps</version>
<packaging>pom</packaging>
<modules>
<module>deploy-pps-system</module>
<!--<module>deploy-pps-base</module>-->
<module>deploy-pps-task</module>
<module>deploy-pps-gateway</module>
<module>deploy-pps-all</module>
</modules>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>xstartup-hz</id>
<url>http://dev.sunboxauto.com/HZ/_packaging/xstartup-hz/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</project>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment