Merge branch 'dev' into dev-ty1.2
# Conflicts: # mhd-modules/mhd-system/src/main/resources/bootstrap.yml
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package com.mhd.system.api;
|
||||
|
||||
|
||||
import com.mhd.common.core.constant.ServiceNameConstants;
|
||||
import com.mhd.common.core.domain.entity.R;
|
||||
import com.mhd.common.core.domain.dto.YmsSysUserDTO;
|
||||
import com.mhd.system.api.domain.YmsLoginUser;
|
||||
import com.mhd.system.api.factory.RemoteBmsFeignFallbackFactory;
|
||||
import com.mhd.system.api.factory.RemoteXxlJobFeignFallbackFactory;
|
||||
import com.mhd.system.api.feign.FeignAutoConfiguration;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@FeignClient(contextId = "XxlJobService", value = ServiceNameConstants.XXL_JOB_SERVICE,url = "http://127.0.0.1:8020",fallbackFactory = RemoteXxlJobFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class)
|
||||
public interface XxlJobServiceFeign {
|
||||
|
||||
|
||||
@GetMapping("/user/openFeignTest")
|
||||
public R<Map<String, Object>> openFeignTest(@RequestParam("param") String string);
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package com.mhd.system.api.factory;
|
||||
|
||||
import com.mhd.common.core.domain.dto.BusinessDataPushDTO;
|
||||
import com.mhd.common.core.domain.entity.R;
|
||||
import com.mhd.common.core.domain.po.OrganizationPo;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.system.api.BmsServiceFeign;
|
||||
import com.mhd.system.api.ProductServiceFeign;
|
||||
import com.mhd.system.api.XxlJobServiceFeign;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author zg
|
||||
* @Version 1.0
|
||||
* @Date 2023/11/3 14:37
|
||||
*/
|
||||
@Component
|
||||
public class RemoteXxlJobFeignFallbackFactory implements FallbackFactory<XxlJobServiceFeign> {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(RemoteXxlJobFeignFallbackFactory.class);
|
||||
|
||||
@Override
|
||||
public XxlJobServiceFeign create(Throwable throwable) {
|
||||
log.error("系统服务调用失败:{}", throwable.getMessage());
|
||||
return new XxlJobServiceFeign() {
|
||||
|
||||
@Override
|
||||
public R<Map<String, Object>> openFeignTest(String string) {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
+8
@@ -4,6 +4,8 @@ import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealBusinessTypeStatPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -31,4 +33,10 @@ public interface BiPlatformRealDataMapper {
|
||||
|
||||
/** 任务负荷(今日 24 小时) */
|
||||
List<RealTaskLoadPO> queryTaskLoadToday();
|
||||
|
||||
/** 今日预约-业务类型统计(按 businessName 分组统计今日预约数量) */
|
||||
List<RealBusinessTypeStatPO> queryTodayBusinessTypeStats();
|
||||
|
||||
/** 月台监控-按楼层统计月台车辆(楼层、月台数量、今日预约车辆、当前作业车辆) */
|
||||
List<RealPlatformFloorStatPO> queryPlatformFloorStats();
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.mhd.bi.domain.biPlatformRealData.repository.po;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 今日预约-业务类型统计(真实数据,来自 TEST_NGWL_YMS.QMS_MAIN_BUSINESS)
|
||||
* 按业务类型分组统计今日预约数量
|
||||
*/
|
||||
@Data
|
||||
public class RealBusinessTypeStatPO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 业务类型名称(qms_main_business.businessName) */
|
||||
private String businessName;
|
||||
|
||||
/** 今日预约数量 */
|
||||
private Long count;
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.mhd.bi.domain.biPlatformRealData.repository.po;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 月台监控-月台车辆统计(按楼层分组)
|
||||
* 数据来源:TEST_NGWL_YMS.QMS_WINDOW_INFO(楼层+月台)与 QMS_MAIN_BUSINESS(当日预约/作业)
|
||||
*/
|
||||
@Data
|
||||
public class RealPlatformFloorStatPO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 楼层(从叫号月台 WINDOW_NAME 解析,如 S1-01 -> F1) */
|
||||
private String floorNo;
|
||||
|
||||
/** 该楼层的月台数量 */
|
||||
private Long platformCount;
|
||||
|
||||
/** 今日预约车辆数(按 WINDOW_NAME 关联楼层) */
|
||||
private Long todayReservedVehicles;
|
||||
|
||||
/** 当前作业车辆数(FLOW_STATUS IN 5,6,7,8,9,10) */
|
||||
private Long operatingVehicles;
|
||||
}
|
||||
+126
-1
@@ -1,22 +1,30 @@
|
||||
package com.mhd.bi.domain.biPlatformRealData.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.mapper.BiPlatformRealDataMapper;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealBusinessTypeStatPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO;
|
||||
import com.mhd.bi.domain.biPlatformSurveillance.repository.mapper.BiPlatformSurveillanceReportMapper;
|
||||
import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper;
|
||||
import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformVehicleItemVO;
|
||||
import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.TaskLoadItemVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
@@ -30,6 +38,96 @@ public class BiPlatformRealDataService {
|
||||
@Resource
|
||||
private BiPlatformRealDataMapper biPlatformRealDataMapper;
|
||||
|
||||
@Resource
|
||||
private BiSnapshotWriteMapper biSnapshotWriteMapper;
|
||||
|
||||
@Resource
|
||||
private BiPlatformSurveillanceReportMapper biPlatformSurveillanceReportMapper;
|
||||
|
||||
@Resource
|
||||
private ObjectMapper objectMapper;
|
||||
|
||||
private static final String REMARK_REALTIME = "realtime platform-surveillance";
|
||||
|
||||
/**
|
||||
* 实时组装月台监测数据;仅当真实业务数据(YMS 库查出的字段)发生变化时,
|
||||
* 才覆盖更新 BI_PLATFORM_SURVEILLANCE_SNAPSHOT 快照表最新一条后返回。
|
||||
* 写死字段变化不触发更新;表中尚无记录时插入一条兜底。
|
||||
*/
|
||||
public PlatformSurveillanceVO buildRealTimePlatformSurveillanceAndPersist() {
|
||||
PlatformSurveillanceVO vo = buildRealTimePlatformSurveillance();
|
||||
try {
|
||||
String fullJson = objectMapper.writeValueAsString(vo);
|
||||
String fingerprint = realDataFingerprint(vo);
|
||||
|
||||
String latestJson = biPlatformSurveillanceReportMapper.selectLatestPayloadJson();
|
||||
if (StringUtils.isNotBlank(latestJson)) {
|
||||
PlatformSurveillanceVO latestVo = objectMapper.readValue(latestJson.trim(), PlatformSurveillanceVO.class);
|
||||
if (Objects.equals(fingerprint, realDataFingerprint(latestVo))) {
|
||||
log.info("BI 月台监测真实业务数据未变化,跳过落库");
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
||||
int rows = biSnapshotWriteMapper.updateLatestPlatformSurveillanceSnapshot(fullJson, REMARK_REALTIME);
|
||||
if (rows < 1) {
|
||||
// 表中无最新记录可更新,插入一条兜底
|
||||
biSnapshotWriteMapper.insertPlatformSurveillanceSnapshot(fullJson, REMARK_REALTIME);
|
||||
}
|
||||
log.info("BI 月台监测实时数据已落库(覆盖最新, 数据变化), affectedRows={}", rows);
|
||||
} catch (Exception e) {
|
||||
log.error("BI 月台监测实时数据落库失败", e);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提取月台监测的「真实业务数据」指纹(仅含 YMS 库查出的字段),用于判断业务数据是否变化。
|
||||
* 写死/随机字段不纳入指纹,故其变化不会触发更新。
|
||||
*/
|
||||
private String realDataFingerprint(PlatformSurveillanceVO vo) throws Exception {
|
||||
Map<String, Object> fp = new LinkedHashMap<>();
|
||||
if (vo.getPlatformOverview() != null) {
|
||||
fp.put("totalPlatforms", vo.getPlatformOverview().getTotalPlatforms());
|
||||
fp.put("operatingPlatforms", vo.getPlatformOverview().getOperatingPlatforms());
|
||||
fp.put("todayTasks", vo.getPlatformOverview().getTodayTasks());
|
||||
}
|
||||
if (vo.getVehicleStatus() != null) {
|
||||
fp.put("todayReservedVehicles", vo.getVehicleStatus().getTodayReservedVehicles());
|
||||
fp.put("notCheckedIn", vo.getVehicleStatus().getNotCheckedIn());
|
||||
fp.put("operatingVehicles", vo.getVehicleStatus().getOperatingVehicles());
|
||||
fp.put("completedVehicles", vo.getVehicleStatus().getCompletedVehicles());
|
||||
}
|
||||
if (vo.getMonthlyTaskStatistics() != null) {
|
||||
fp.put("taskTotal", vo.getMonthlyTaskStatistics().getTaskTotal());
|
||||
}
|
||||
if (vo.getVehicles() != null) {
|
||||
List<Map<String, Object>> vehicles = new ArrayList<>();
|
||||
for (PlatformVehicleItemVO v : vo.getVehicles()) {
|
||||
Map<String, Object> m = new LinkedHashMap<>();
|
||||
m.put("appointmentTime", v.getAppointmentTime());
|
||||
m.put("workFloor", v.getWorkFloor());
|
||||
m.put("plateNumber", v.getPlateNumber());
|
||||
m.put("status", v.getStatus());
|
||||
m.put("platformId", v.getPlatformId());
|
||||
m.put("platformDuration", v.getPlatformDuration());
|
||||
vehicles.add(m);
|
||||
}
|
||||
fp.put("vehicles", vehicles);
|
||||
}
|
||||
if (vo.getTaskLoadStatistics() != null) {
|
||||
List<Map<String, Object>> loads = new ArrayList<>();
|
||||
for (TaskLoadItemVO item : vo.getTaskLoadStatistics()) {
|
||||
Map<String, Object> m = new LinkedHashMap<>();
|
||||
m.put("time", item.getTime());
|
||||
m.put("taskCount", item.getTaskCount());
|
||||
loads.add(m);
|
||||
}
|
||||
fp.put("taskLoadStatistics", loads);
|
||||
}
|
||||
return objectMapper.writeValueAsString(fp);
|
||||
}
|
||||
|
||||
public List<RealPlatformVehiclePO> queryVehicles() {
|
||||
try {
|
||||
return biPlatformRealDataMapper.queryVehicles();
|
||||
@@ -106,12 +204,39 @@ public class BiPlatformRealDataService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 今日预约-业务类型统计:按业务类型分组统计今日预约数量。
|
||||
* 例:今日预约航空打板 3 条 → 返回 {businessName:"航空打板", count:3}
|
||||
*/
|
||||
public List<RealBusinessTypeStatPO> queryTodayBusinessTypeStats() {
|
||||
try {
|
||||
return biPlatformRealDataMapper.queryTodayBusinessTypeStats();
|
||||
} catch (Exception e) {
|
||||
log.error("【YMS】统计今日业务类型失败: {}", e.getMessage(), e);
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 月台监控-按楼层统计月台车辆:返回 {floorNo, platformCount, todayReservedVehicles, operatingVehicles}
|
||||
* 实时查 YMS 库,不落库。
|
||||
*/
|
||||
public List<RealPlatformFloorStatPO> queryPlatformFloorStats() {
|
||||
try {
|
||||
return biPlatformRealDataMapper.queryPlatformFloorStats();
|
||||
} catch (Exception e) {
|
||||
log.error("【YMS】月台监控按楼层统计失败: {}", e.getMessage(), e);
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时组装月台监测数据:真实字段查 YMS 库,写死字段保留静态值。
|
||||
* 每次调用实时查库,不经过快照表。
|
||||
*/
|
||||
public PlatformSurveillanceVO buildRealTimePlatformSurveillance() {
|
||||
Random r = new Random();
|
||||
// 固定种子,保证写死字段每次生成值一致(真实字段随后实时覆盖)
|
||||
Random r = new Random(20260825L);
|
||||
PlatformSurveillanceVO template = BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(r);
|
||||
|
||||
// 作业车辆列表
|
||||
|
||||
+2
@@ -13,6 +13,8 @@ public interface BiSnapshotWriteMapper {
|
||||
|
||||
int insertPlatformSurveillanceSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||
|
||||
int updateLatestPlatformSurveillanceSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||
|
||||
int insertOverallOperationSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||
|
||||
int insertWarehouseOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark);
|
||||
|
||||
+2
-1
@@ -150,7 +150,8 @@ public class BiReportSnapshotSyncService {
|
||||
|
||||
/** TODO 业务落地:部分字段改为真实数据,其余仍写死。 */
|
||||
protected PlatformSurveillanceVO buildPlatformSurveillanceSnapshot() {
|
||||
Random r = new Random();
|
||||
// 固定种子,保证写死字段每次生成值一致(真实字段随后实时覆盖)
|
||||
Random r = new Random(20260825L);
|
||||
// 写死数据复用原 builder
|
||||
PlatformSurveillanceVO template = BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(r);
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService;
|
||||
import com.mhd.bi.domain.biComprehensive.service.BiComprehensiveReportService;
|
||||
import com.mhd.bi.domain.biPlatformSurveillance.service.BiPlatformSurveillanceReportService;
|
||||
import com.mhd.bi.domain.biPlatformRealData.service.BiPlatformRealDataService;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealBusinessTypeStatPO;
|
||||
import com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO;
|
||||
import com.mhd.bi.domain.biOverallOperation.service.BiOverallOperationReportService;
|
||||
import com.mhd.bi.domain.biHkMacaoServiceZone.service.BiHkMacaoServiceZoneReportService;
|
||||
import com.mhd.bi.domain.biTransportOperationZone.service.BiTransportOperationZoneReportService;
|
||||
@@ -30,6 +32,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* BI 报表接口
|
||||
*/
|
||||
@@ -96,12 +100,32 @@ public class BiReportApi extends BaseController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 月台监测指标查询(实时查 YMS 库,真实字段 + 写死字段)
|
||||
* 月台监测指标查询(实时查 YMS 库,真实字段 + 写死字段),并落库一条到 BI_PLATFORM_SURVEILLANCE_SNAPSHOT
|
||||
*/
|
||||
@ApiOperation(value = "月台监测指标查询", notes = "每次调用实时查询 YMS 库组装;部分字段为真实业务数据,部分为写死数据")
|
||||
@ApiOperation(value = "月台监测指标查询", notes = "每次调用实时查询 YMS 库组装并写入快照表;部分字段为真实业务数据,部分为写死数据")
|
||||
@GetMapping("/platformSurveillance")
|
||||
public BiApiResult<PlatformSurveillanceVO> platformSurveillance() {
|
||||
PlatformSurveillanceVO data = biPlatformRealDataService.buildRealTimePlatformSurveillance();
|
||||
PlatformSurveillanceVO data = biPlatformRealDataService.buildRealTimePlatformSurveillanceAndPersist();
|
||||
return BiApiResult.ok(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 今日预约-业务类型统计(实时查 YMS 库,不落库)
|
||||
*/
|
||||
@ApiOperation(value = "今日预约业务类型统计", notes = "按业务类型分组统计今日预约数量,实时查询 YMS 库,不落库;例:航空打板 3 条")
|
||||
@GetMapping("/businessTypeStats")
|
||||
public BiApiResult<List<RealBusinessTypeStatPO>> businessTypeStats() {
|
||||
List<RealBusinessTypeStatPO> data = biPlatformRealDataService.queryTodayBusinessTypeStats();
|
||||
return BiApiResult.ok(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 月台监控-按楼层统计月台车辆(实时查 YMS 库,不落库)
|
||||
*/
|
||||
@ApiOperation(value = "月台车辆统计(按楼层)", notes = "按楼层统计月台数量、今日预约车辆、当前作业车辆,实时查询 YMS 库,不落库")
|
||||
@GetMapping("/platformFloorStats")
|
||||
public BiApiResult<List<RealPlatformFloorStatPO>> platformFloorStats() {
|
||||
List<RealPlatformFloorStatPO> data = biPlatformRealDataService.queryPlatformFloorStats();
|
||||
return BiApiResult.ok(data);
|
||||
}
|
||||
//园区物流大屏接口----------------------------------------------------------------------
|
||||
|
||||
@@ -14,19 +14,19 @@ spring:
|
||||
discovery:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置 容器名+端口号
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.5:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
#线上正式环境
|
||||
# server-addr: 10.102.192.30:6848
|
||||
server-addr: 10.102.192.31:6848
|
||||
# username: nacos
|
||||
# password: manhuoda@2023
|
||||
config:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
# 线上测试环境配置 容器名+端口号
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.30:6848
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.31:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
#线上正式环境
|
||||
|
||||
@@ -46,11 +46,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
AND TRUNC(ENTRY_TIME) = TRUNC(SYSDATE)
|
||||
</select>
|
||||
|
||||
<!-- 车辆状态统计:今日的统计(按创建时间 / 流程状态)
|
||||
<!-- 车辆状态统计:今日的统计(按创建时间 CREATE_TIME / 流程状态)
|
||||
todayReservedVehicles 改为按预约日期 TARGET_DATE(其它 3 项保持 CREATE_TIME)
|
||||
FLOW_STATUS: 1已预约 2已签到 3已叫号 4已过号 5已进场 6已称重 7已装车 8二次称重 9已结算 10已还卡 11已出场 12已取消 -->
|
||||
<select id="queryVehicleStatusToday" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO">
|
||||
SELECT
|
||||
SUM(CASE WHEN TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS todayReservedVehicles,
|
||||
SUM(CASE WHEN TRUNC(TARGET_DATE) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS todayReservedVehicles,
|
||||
SUM(CASE WHEN FLOW_STATUS = '1' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS notCheckedIn,
|
||||
SUM(CASE WHEN FLOW_STATUS IN ('5','6','7','8','9','10') AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS operatingVehicles,
|
||||
SUM(CASE WHEN FLOW_STATUS = '11' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS completedVehicles
|
||||
@@ -65,6 +66,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
AND TO_CHAR(ENTRY_TIME, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
|
||||
</select>
|
||||
|
||||
<!-- 今日预约-业务名称统计:按 BUSINESS_NAME(业务名称)分组统计今日预约数量,按预约日期 TARGET_DATE 过滤 -->
|
||||
<select id="queryTodayBusinessTypeStats" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealBusinessTypeStatPO">
|
||||
SELECT
|
||||
BUSINESS_NAME AS businessName,
|
||||
COUNT(1) AS count
|
||||
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
|
||||
WHERE BUSINESS_NAME IS NOT NULL
|
||||
AND TRUNC(TARGET_DATE) = TRUNC(SYSDATE)
|
||||
GROUP BY BUSINESS_NAME
|
||||
ORDER BY COUNT(1) DESC
|
||||
</select>
|
||||
|
||||
<!-- 月台监控-按楼层统计:楼层从叫号月台 WINDOW_NAME 解析(如 S1-01 / N1-02 -> F1),不依赖字母前缀,只取 - 前面那段的数字
|
||||
platformCount 来自 QMS_WINDOW_INFO;todayReservedVehicles/operatingVehicles 来自 QMS_MAIN_BUSINESS(按 TARGET_DATE=今天) -->
|
||||
<select id="queryPlatformFloorStats" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformFloorStatPO">
|
||||
SELECT
|
||||
'F' || SUBSTR(W.WINDOW_NAME, INSTR(W.WINDOW_NAME,'-')-1, 1) AS floorNo,
|
||||
COUNT(DISTINCT W.WINDOW_NAME) AS platformCount,
|
||||
COUNT(DISTINCT CASE
|
||||
WHEN TRUNC(mb.TARGET_DATE) = TRUNC(SYSDATE) THEN mb.CAR_NO
|
||||
END) AS todayReservedVehicles,
|
||||
COUNT(DISTINCT CASE
|
||||
WHEN TRUNC(mb.TARGET_DATE) = TRUNC(SYSDATE)
|
||||
AND mb.FLOW_STATUS IN ('5','6','7','8','9','10')
|
||||
THEN mb.CAR_NO
|
||||
END) AS operatingVehicles
|
||||
FROM NGWL_TEST_YMS.QMS_WINDOW_INFO W
|
||||
LEFT JOIN NGWL_TEST_YMS.QMS_MAIN_BUSINESS mb
|
||||
ON mb.WINDOW_NAME = W.WINDOW_NAME
|
||||
WHERE W.WINDOW_NAME LIKE '%-%'
|
||||
GROUP BY SUBSTR(W.WINDOW_NAME, INSTR(W.WINDOW_NAME,'-')-1, 1)
|
||||
ORDER BY 1 DESC
|
||||
</select>
|
||||
|
||||
<!-- 任务负荷(今日 24 小时时段):按 EXTRACT(HOUR FROM ENTRY_TIME) 统计 -->
|
||||
<select id="queryTaskLoadToday" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO">
|
||||
SELECT
|
||||
|
||||
@@ -18,6 +18,15 @@
|
||||
values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark})
|
||||
</insert>
|
||||
|
||||
<update id="updateLatestPlatformSurveillanceSnapshot">
|
||||
update NGWL_TEST_BI.BI_PLATFORM_SURVEILLANCE_SNAPSHOT
|
||||
set PAYLOAD_JSON = #{payloadJson},
|
||||
UPDATE_TIME = SYSDATE,
|
||||
REMARK = #{remark}
|
||||
where DEL_FLAG = 1
|
||||
and ID = (select max(t.ID) from NGWL_TEST_BI.BI_PLATFORM_SURVEILLANCE_SNAPSHOT t where t.DEL_FLAG = 1)
|
||||
</update>
|
||||
|
||||
<insert id="insertOverallOperationSnapshot">
|
||||
insert into NGWL_TEST_BI.BI_OVERALL_OPERATION_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK)
|
||||
values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark})
|
||||
|
||||
+3
@@ -66,6 +66,9 @@ public class ServiceNameConstants
|
||||
//YMS系统
|
||||
public static final String YMS_SERVICE = "mhd-yms-service";
|
||||
|
||||
//YMS系统
|
||||
public static final String XXL_JOB_SERVICE = "xxl-job-service";
|
||||
|
||||
|
||||
|
||||
}
|
||||
+14
-14
@@ -40,14 +40,14 @@ public class SysConfigController extends BaseController
|
||||
/**
|
||||
* 获取参数配置列表
|
||||
*/
|
||||
@RequiresPermissions("system:config:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SysConfig config)
|
||||
{
|
||||
startPage();
|
||||
List<SysConfig> list = configService.selectConfigList(config);
|
||||
return getDataTable(list);
|
||||
}
|
||||
// @RequiresPermissions("system:config:list")
|
||||
// @GetMapping("/list")
|
||||
// public TableDataInfo list(SysConfig config)
|
||||
// {
|
||||
// startPage();
|
||||
// List<SysConfig> list = configService.selectConfigList(config);
|
||||
// return getDataTable(list);
|
||||
// }
|
||||
|
||||
@Log(title = "参数管理", businessType = BusinessType.EXPORT)
|
||||
@RequiresPermissions("system:config:export")
|
||||
@@ -71,11 +71,11 @@ public class SysConfigController extends BaseController
|
||||
/**
|
||||
* 根据参数键名查询参数值
|
||||
*/
|
||||
@GetMapping(value = "/configKey/{configKey}")
|
||||
public AjaxResult getConfigKey(@PathVariable String configKey)
|
||||
{
|
||||
return AjaxResult.success(configService.selectConfigByKey(configKey));
|
||||
}
|
||||
// @GetMapping(value = "/configKey/{configKey}")
|
||||
// public AjaxResult getConfigKey(@PathVariable String configKey)
|
||||
// {
|
||||
// return AjaxResult.success(configService.selectConfigByKey(configKey));
|
||||
// }
|
||||
|
||||
/**
|
||||
* 新增参数配置
|
||||
@@ -132,4 +132,4 @@ public class SysConfigController extends BaseController
|
||||
configService.resetConfigCache();
|
||||
return AjaxResult.success();
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
-1
@@ -85,6 +85,9 @@ public class SysUserController extends BaseController
|
||||
}
|
||||
}
|
||||
List<SysUser> list = userService.selectUserList(user);
|
||||
for (SysUser sysUser : list) {
|
||||
sysUser.setPassword("******");
|
||||
}
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@@ -323,4 +326,4 @@ public class SysUserController extends BaseController
|
||||
userService.insertUserAuth(userId, roleIds);
|
||||
return success();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,16 +14,16 @@ spring:
|
||||
nacos:
|
||||
discovery:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.30:6848
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.30:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
#线上正式环境
|
||||
# server-addr: 10.102.192.105:6848
|
||||
config:
|
||||
# server-addr: 127.0.0.1:8848
|
||||
server-addr: 10.33.0.129:6010
|
||||
# server-addr: 10.102.192.30:6848
|
||||
# server-addr: 10.33.0.129:6010
|
||||
server-addr: 10.102.192.30:6848
|
||||
username: nacos
|
||||
password: manhuoda@2023
|
||||
#线上正式环境
|
||||
|
||||
+49
-19
@@ -3428,6 +3428,24 @@ public class UserApplicationService {
|
||||
if (!ObjectUtil.equal(String.valueOf(object), verificationCode) && !ObjectUtil.equal(verificationCode, SmsConstants.universalCode)) {
|
||||
throw new ServiceException("验证码错误");
|
||||
}*/
|
||||
String oldUserPassword = userDO.getOldUserPassword();
|
||||
if (oldUserPassword==null||oldUserPassword=="") {
|
||||
throw new ServiceException("旧密码不能为空");
|
||||
}
|
||||
String userPassword1 = userPo.getUserPassword();
|
||||
String oldDecrypt = AESUtil.decrypt(oldUserPassword);
|
||||
String nowDecrypt = AESUtil.decrypt(userPassword1);
|
||||
if (!oldDecrypt.equals(nowDecrypt)) {
|
||||
throw new ServiceException("旧密码错误");
|
||||
}
|
||||
String newUserPassword = userDO.getUserPassword();
|
||||
// 校验新密码复杂度:必须同时包含大写字母、小写字母、数字和特殊符号
|
||||
if (StringUtils.isNotEmpty(newUserPassword)) {
|
||||
String decryptedNewPassword = AESUtil.decrypt(newUserPassword);
|
||||
if (!decryptedNewPassword.matches("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^a-zA-Z0-9]).+$")) {
|
||||
throw new ServiceException("新密码必须同时包含大写字母、小写字母、数字和特殊符号");
|
||||
}
|
||||
}
|
||||
//用户密码传值
|
||||
if (StringUtils.isNotEmpty(userDO.getUserPassword())) {
|
||||
String userPassword = AESUtil.decrypt(userDO.getUserPassword());
|
||||
@@ -3444,25 +3462,25 @@ public class UserApplicationService {
|
||||
userDomainService.updateUser(userDO);
|
||||
}
|
||||
}else {
|
||||
String userPassword1 = userDO.getUserPassword();
|
||||
for (Long id : userDO.getUserIds()) {
|
||||
UserPo userPo1 = userDomainService.selectByUserId(id);
|
||||
//用户密码传值
|
||||
if (StringUtils.isNotEmpty(userDO.getUserPassword())) {
|
||||
String userPassword = AESUtil.decrypt(userPassword1);
|
||||
// 生成随机8位数盐
|
||||
String salt = OConvertUtils.randomGen(8);
|
||||
userDO.setUserSalt(salt);
|
||||
//加密算法,PBEWithMD5AndDES,
|
||||
String passwordEncode = PasswordUtil.encrypt(userPo1.getUserAccount(), userPassword, salt);
|
||||
userDO.setUserPassword(passwordEncode);
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotNull(userPo1)) {
|
||||
userDO.setUserId(userPo1.getUserId());
|
||||
userDomainService.updateUser(userDO);
|
||||
}
|
||||
}
|
||||
// String userPassword1 = userDO.getUserPassword();
|
||||
// for (Long id : userDO.getUserIds()) {
|
||||
// UserPo userPo1 = userDomainService.selectByUserId(id);
|
||||
// //用户密码传值
|
||||
// if (StringUtils.isNotEmpty(userDO.getUserPassword())) {
|
||||
// String userPassword = AESUtil.decrypt(userPassword1);
|
||||
// // 生成随机8位数盐
|
||||
// String salt = OConvertUtils.randomGen(8);
|
||||
// userDO.setUserSalt(salt);
|
||||
// //加密算法,PBEWithMD5AndDES,
|
||||
// String passwordEncode = PasswordUtil.encrypt(userPo1.getUserAccount(), userPassword, salt);
|
||||
// userDO.setUserPassword(passwordEncode);
|
||||
// }
|
||||
//
|
||||
// if (ObjectUtil.isNotNull(userPo1)) {
|
||||
// userDO.setUserId(userPo1.getUserId());
|
||||
// userDomainService.updateUser(userDO);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -3874,6 +3892,18 @@ public class UserApplicationService {
|
||||
//新支付密码
|
||||
String payPassword = userDTO.getUserPayPassword();
|
||||
|
||||
String userPayPassword = userPo.getUserPayPassword();
|
||||
String nowPayPassword = AESUtil.decrypt(userPayPassword);
|
||||
String oldUserPassword = userDTO.getOldUserPayPassword();
|
||||
if(oldUserPassword == null || "".equals(oldUserPassword)) {
|
||||
throw new ServiceException("旧密码不能为空");
|
||||
}
|
||||
String oldPayPassword = AESUtil.decrypt(oldUserPassword);
|
||||
if(!nowPayPassword.equals(oldPayPassword)) {
|
||||
throw new ServiceException("旧密码不正确");
|
||||
}
|
||||
|
||||
|
||||
//验证码登录校验验证码
|
||||
String key = CacheConstants.SMS_PAY_CHANGE + userPhone;
|
||||
Object object = redisService.getCacheObject(key) == null ? "" : redisService.getCacheObject(key);
|
||||
|
||||
+2
@@ -49,6 +49,8 @@ public class UserDO extends BaseVOEntity {
|
||||
private String userMemberCode;
|
||||
@ApiModelProperty(name = "登录密码")
|
||||
private String userPassword;
|
||||
@ApiModelProperty(name = "老登录密码")
|
||||
private String oldUserPassword;
|
||||
@ApiModelProperty(name = "确认登录密码")
|
||||
private String copyUserPassword;
|
||||
@ApiModelProperty(name = "盐")
|
||||
|
||||
@@ -49,6 +49,8 @@ public class UserDTO extends BaseVOEntity {
|
||||
private String userSalt;
|
||||
@ApiModelProperty(name = "支付密码")
|
||||
private String userPayPassword;
|
||||
@ApiModelProperty(name = "旧支付密码")
|
||||
private String oldUserPayPassword;
|
||||
@ApiModelProperty(name = "身份证号")
|
||||
private String userIdcardNumber;
|
||||
@ApiModelProperty(name = "身份证号加密")
|
||||
|
||||
+1
-1
@@ -766,7 +766,7 @@ public class BillManageApplicationService {
|
||||
}
|
||||
|
||||
public List<NcLog> getNcLog(Long id, Long type) {
|
||||
return ncLogMapper.selectList(new LambdaQueryWrapper<NcLog>().eq(NcLog::getOrderId, id).eq(NcLog::getType, type).orderByDesc(NcLog::getSendTime));
|
||||
return ncLogMapper.selectList(new LambdaQueryWrapper<NcLog>().eq(NcLog::getOrderId, id).eq(NcLog::getType, type).orderByDesc(NcLog::getNcLogId));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -45,5 +45,5 @@ public interface BillManageMapper extends BaseMapper<BillManage>
|
||||
|
||||
String getOrgCodeNc(@Param("organizationId") Long organizationId);
|
||||
|
||||
Long getShipperId(@Param("userId") Long userId, @Param("organizationId") Long organizationId);
|
||||
Long getShipperId(@Param("userId") Long userId);
|
||||
}
|
||||
+2
-2
@@ -269,7 +269,7 @@ public class BillManageImpl extends ServiceImpl<BillManageMapper, BillManage> im
|
||||
throw new ServiceException("结算对象未找到!");
|
||||
}
|
||||
Long settlementEntityId = settlementCustomers.getSettlementEntityId();
|
||||
Long shipperId = billManageMapper.getShipperId(settlementEntityId, organizationId);
|
||||
Long shipperId = billManageMapper.getShipperId(settlementEntityId);
|
||||
if (shipperId==null||shipperId==0){
|
||||
throw new ServiceException("结算对象未找到!");
|
||||
}
|
||||
@@ -940,7 +940,7 @@ public class BillManageImpl extends ServiceImpl<BillManageMapper, BillManage> im
|
||||
throw new ServiceException("结算对象未找到!");
|
||||
}
|
||||
Long settlementEntityId = settlementCustomers.getSettlementEntityId();
|
||||
Long shipperId = billManageMapper.getShipperId(settlementEntityId, organizationId);
|
||||
Long shipperId = billManageMapper.getShipperId(settlementEntityId);
|
||||
if (shipperId==null||shipperId==0){
|
||||
throw new ServiceException("结算对象未找到!");
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
|
||||
<select id="getShipperId" resultType="java.lang.Long">
|
||||
SELECT SHIPPER_ID FROM NGWL_TEST_USER."USER_SHIPPER" where DEL_FLAG = '1' and user_id = #{userId} and organization_id = #{organizationId} limit 1
|
||||
SELECT SHIPPER_ID FROM NGWL_TEST_USER."USER_SHIPPER" where DEL_FLAG = '1' and user_id = #{userId} limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -80,6 +80,11 @@
|
||||
<artifactId>opencc4j</artifactId>
|
||||
<version>1.8.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.xuxueli</groupId>
|
||||
<artifactId>xxl-job-core</artifactId>
|
||||
<version>2.4.0</version>
|
||||
</dependency>
|
||||
<!-- Mhd Common Log -->
|
||||
<dependency>
|
||||
<groupId>com.mhd</groupId>
|
||||
|
||||
+34
@@ -1,11 +1,13 @@
|
||||
package com.mhd.wms.interfaces.facadeApi.stockInOrder;
|
||||
|
||||
import com.mhd.common.core.domain.entity.R;
|
||||
import com.mhd.common.core.web.controller.BaseController;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.core.web.page.TableDataInfo;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.StringUtils;
|
||||
import com.mhd.system.api.XxlJobServiceFeign;
|
||||
import com.mhd.wms.application.service.stockInOrder.StockInOrderApplicationService;
|
||||
import com.mhd.wms.domain.inMaterialDetail.entity.InMaterialDetail;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
|
||||
@@ -20,6 +22,8 @@ import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler;
|
||||
import com.mhd.wms.interfaces.dto.inMaterialDetail.InMaterialDetailDTO;
|
||||
import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO;
|
||||
import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO;
|
||||
import com.xxl.job.core.context.XxlJobHelper;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -49,6 +53,8 @@ public class StockInOrderApi extends BaseController {
|
||||
private StockInOrderAssembler stockInOrderAssembler;
|
||||
@Resource
|
||||
private StockOutOrderAssembler stockOutOrderAssembler;
|
||||
@Autowired
|
||||
private XxlJobServiceFeign xxlJobServiceFeign;
|
||||
|
||||
/**
|
||||
* 分页查询入库单列表
|
||||
@@ -347,4 +353,32 @@ public class StockInOrderApi extends BaseController {
|
||||
return stockInOrderApplicationService.batchSignature(dto);
|
||||
}
|
||||
|
||||
@GetMapping("/xxlopenfeign")
|
||||
public AjaxResult xxlopenfeign(@RequestParam String param) {
|
||||
R<Map<String, Object>> mapR = xxlJobServiceFeign.openFeignTest(param);
|
||||
return AjaxResult.success(mapR);
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. 简单任务示例(Bean模式)
|
||||
* 这里的 demoJobHandler 必须和调度中心配置一致
|
||||
*/
|
||||
@XxlJob("demoJobHandler")
|
||||
public void demoJobHandler() {
|
||||
// 获取任务参数
|
||||
String param = XxlJobHelper.getJobParam();
|
||||
logger.info("XXL-JOB 开始执行,参数:{}", param);
|
||||
|
||||
try {
|
||||
// ========== 你的业务逻辑 ==========
|
||||
logger.info("执行若依微服务定时任务...");
|
||||
|
||||
// 设置任务执行结果
|
||||
XxlJobHelper.handleSuccess("执行成功");
|
||||
} catch (Exception e) {
|
||||
logger.error("XXL-JOB 执行失败", e);
|
||||
XxlJobHelper.handleFail("执行失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.mhd.wms.util;
|
||||
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* XXL-JOB 配置类
|
||||
*/
|
||||
@Configuration
|
||||
public class XxlJobConfig {
|
||||
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
|
||||
|
||||
@Value("${xxl.job.admin.addresses}")
|
||||
private String adminAddresses;
|
||||
|
||||
@Value("${xxl.job.accessToken}")
|
||||
private String accessToken;
|
||||
|
||||
@Value("${xxl.job.executor.appname}")
|
||||
private String appname;
|
||||
|
||||
@Value("${xxl.job.executor.address}")
|
||||
private String address;
|
||||
|
||||
@Value("${xxl.job.executor.ip}")
|
||||
private String ip;
|
||||
|
||||
@Value("${xxl.job.executor.port}")
|
||||
private int port;
|
||||
|
||||
@Value("${xxl.job.executor.logpath}")
|
||||
private String logPath;
|
||||
|
||||
@Value("${xxl.job.executor.logretentiondays}")
|
||||
private int logRetentionDays;
|
||||
|
||||
@Bean
|
||||
public XxlJobSpringExecutor xxlJobExecutor() {
|
||||
logger.info(">>>>>>>>>>> xxl-job config init.");
|
||||
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
||||
xxlJobSpringExecutor.setAppname(appname);
|
||||
xxlJobSpringExecutor.setAddress(address);
|
||||
xxlJobSpringExecutor.setIp(ip);
|
||||
xxlJobSpringExecutor.setPort(port);
|
||||
xxlJobSpringExecutor.setAccessToken(accessToken);
|
||||
xxlJobSpringExecutor.setLogPath(logPath);
|
||||
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
|
||||
return xxlJobSpringExecutor;
|
||||
}
|
||||
}
|
||||
@@ -34,4 +34,26 @@ spring:
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
shared-configs:
|
||||
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
|
||||
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
|
||||
# XXL-JOB 配置
|
||||
xxl:
|
||||
job:
|
||||
# 调度中心地址(填你部署的地址)
|
||||
admin:
|
||||
addresses: http://192.168.1.6:8020/xxl-job-admin
|
||||
# 执行器配置
|
||||
executor:
|
||||
# 执行器名称(自定义,后面调度中心要用到)
|
||||
appname: wms-service-executor
|
||||
# 执行器注册地址,默认0表示自动获取
|
||||
address:
|
||||
# 执行器IP,默认空自动获取
|
||||
ip:
|
||||
# 执行器端口号(每个微服务不能重复,建议9997/9998/9999)
|
||||
port: 9997
|
||||
# 执行器日志存放路径
|
||||
logpath: /data/applogs/xxl-job/jobhandler
|
||||
# 日志保留天数
|
||||
logretentiondays: 30
|
||||
# 调度中心通讯令牌(默认空,安全可设置)
|
||||
accessToken: default_token
|
||||
Reference in New Issue
Block a user