Commit d89f539c zshaohui

抛送原材料架位使用情况和每天使用出入库统计到中控

1 个父辈 81f96a97
package com.neotel.smfcore.custom.lizhen.kafka.config;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class StorageExportConfig {
//private final static List<String> exportStrArr = Arrays.asList("MU1_1", "MU4_1", "MU2_1", "MU5_1", "MU1_2", "MU4_2", "MU5_2", "MU3_1");
public static Map<String, String> exportMap = new ConcurrentHashMap<>();
@PostConstruct
public void initMap() {
exportMap.put("MU1_1", "SJ202306205006");
exportMap.put("MU1_2", "SJ202306205007");
exportMap.put("MU2_1", "SJ202306205005");
exportMap.put("MU3_1", "SJ202306205008");
exportMap.put("MU4_1", "SJ202306205003");
exportMap.put("MU4_2", "SJ202306205004");
exportMap.put("MU5_1", "SJ202306205001");
exportMap.put("MU5_2", "SJ202306205002");
}
public static String getMachineId(String key) {
return exportMap.get(key);
}
}
package com.neotel.smfcore.custom.lizhen.kafka.service;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.core.equipment.bean.EquipStatus;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import com.neotel.smfcore.custom.lizhen.innerBox.bean.StorageExport;
import com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil;
import com.neotel.smfcore.custom.lizhen.kafka.bean.Heartbeat;
import com.neotel.smfcore.custom.lizhen.kafka.bean.MachineParameter;
import com.neotel.smfcore.custom.lizhen.kafka.bean.MachineParameterData;
import com.neotel.smfcore.custom.lizhen.kafka.bean.MachineStatus;
import com.neotel.smfcore.custom.lizhen.kafka.config.KafkaConfig;
import com.neotel.smfcore.custom.lizhen.kafka.config.StorageExportConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.util.concurrent.ListenableFuture;
import java.util.*;
import java.util.stream.Collectors;
//@Async
@Service
@Slf4j
public class KafkaService {
@Autowired
private DataCache dataCache;
@Autowired
private KafkaTemplate kafkaTemplate;
@Autowired
private IDataLogManager dataLogManager;
Map<String, String> statusMap = Maps.newConcurrentMap();
/**
* 设备状态发送
*/
//@Scheduled(fixedRate = 1000 * 60 * 1)
public void setMachineStatus() {
log.info("发送设备状态开始");
Collection<Storage> storages = dataCache.getAllStorage().values();
List<String> machineIdList = getMachineIdList();
for (String machineId : machineIdList) {
//是否离线
boolean offline = false;
//故障
boolean fault = false;
List<Map<String, String>> msgList = new ArrayList<>();
for (Storage storage : storages) {
if (machineId.equals(storage.getMachineId())) {
StatusBean statusBean = DevicesStatusUtil.getStatusBean(storage.getCid());
if (statusBean == null) {
offline = true;
} else {
if (statusBean.timeOut()) {
offline = true;
} else {
if (!statusBean.isAvailable()) {
fault = true;
}
}
String msg = statusBean.getMsg();
String errorCode = statusBean.getErrorCode();
if (StringUtils.isNotBlank(msg) && StringUtils.isNotBlank(errorCode)) {
String[] msgStr = msg.split("\r\n");
String[] errorCodeStr = errorCode.split("\r\n");
for (int i = 0; i < errorCodeStr.length; i++) {
Map<String, String> map = new HashMap<>();
map.put("errorCode", errorCodeStr[i]);
map.put("msg", msgStr[i]);
msgList.add(map);
}
}
}
}
}
String currentStatus = "1";
if (fault) {
currentStatus = "3";
}
if (offline) {
currentStatus = "5";
}
//判断状态与上一次是否一致
/*String lastStatus = statusMap.get(machineId);
if (StringUtils.isNotBlank(lastStatus) && lastStatus.equals(currentStatus)) {
log.info(machineId + "与上一次通知状态相同,跳过" + currentStatus);
continue;
}
*/
if ("1".equals(currentStatus) || "3".equals(currentStatus)) {
MachineStatus status = new MachineStatus();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
status.setOccurrenceTime(dateStr);
status.setMachineID(machineId);
status.setTopicType(KafkaConfig.MACHINESTATUS_TOPIC);
status.setCurrentStatus(currentStatus);
status.setClientIP("");
if (msgList != null && !msgList.isEmpty()) {
for (Map<String, String> map : msgList) {
status.setErrorCode(map.get("errorCode"));
status.setErrorMsg(map.get("msg"));
String statusStr = JSON.toJSONString(status);
log.info("主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINESTATUS_TOPIC, statusStr);
log.info("返回结果为:" + JSON.toJSONString(future));
}
} else {
if ("3".equals(currentStatus)){
status.setErrorCode("10100038");
status.setErrorMsg("设备未启动");
} else {
status.setErrorCode("");
status.setErrorMsg("");
}
String statusStr = JSON.toJSONString(status);
log.info("主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINESTATUS_TOPIC, statusStr);
log.info("返回结果为:" + JSON.toJSONString(future));
}
statusMap.put(machineId, currentStatus);
}
}
log.info("发送设备状态结束");
}
/**
* 心跳数据发送
*/
//@Scheduled(fixedRate = 1000 * 60 * 5)
public void setHeartbeat() {
log.info("发送心跳开始");
//根据machineId,找到设备状态,是否正常
Collection<Storage> storages = dataCache.getAllStorage().values();
List<String> machineIdList = getMachineIdList();
for (String machineId : machineIdList) {
boolean normal = true;
for (Storage storage : storages) {
if (machineId.equals(storage.getMachineId())) {
StatusBean statusBean = DevicesStatusUtil.getStatusBean(storage.getCid());
if (statusBean == null) {
normal = false;
} else {
if (statusBean.timeOut()) {
normal = false;
} else {
if (!statusBean.isAvailable()) {
normal = false;
}
}
}
}
}
//如果设备状态正常,发送kafka信息
if (normal) {
Heartbeat heartbeat = new Heartbeat();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
heartbeat.setOccurrenceTime(dateStr);
heartbeat.setMachineID(machineId);
heartbeat.setTopicType(KafkaConfig.HEARTBEAT_TOPIC);
String heartbeatStr = JSON.toJSONString(heartbeat);
log.info("主题为:" + KafkaConfig.HEARTBEAT_TOPIC + "内容为:" + heartbeatStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.HEARTBEAT_TOPIC, heartbeatStr);
log.info("返回结果为:" + JSON.toJSONString(future));
}
}
log.info("发送心跳结束");
}
/**
* 设备状态发送
*/
//@Scheduled(fixedRate = 1000 * 60 * 1)
public void setStorageExportStatus() {
log.info("发送出料口信息开始");
EquipStatusBean statusBean = EquipStatusUtil.getStatusBean(KafkaConfig.LINE_CID);
List<EquipStatus> statusList = statusBean.getStatusList();
List<EquipMsg> msgList = statusBean.getMsgList();
if (statusList != null && !statusList.isEmpty()) {
for (EquipStatus equipStatus : statusList) {
int status = equipStatus.getStatus(); //状态
String module = equipStatus.getModule(); //出口
String currentStatus = "1"; //正常
if (2 == status || 3 == status) {
currentStatus = "3"; //故障
}
if (0 == status) {
currentStatus = "5";
}
List<EquipMsg> equipMsgList = new ArrayList<>();
if (msgList != null && !msgList.isEmpty()) {
for (EquipMsg equipMsg : msgList) {
if (module.equals(equipMsg.getModule())) {
equipMsgList.add(equipMsg);
}
}
}
if (equipMsgList != null && !equipMsgList.isEmpty()) {
for (EquipMsg equipMsg : equipMsgList) {
MachineStatus machineStatus = new MachineStatus();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
machineStatus.setOccurrenceTime(dateStr);
machineStatus.setMachineID(StorageExportConfig.getMachineId(module));
machineStatus.setTopicType(KafkaConfig.MACHINESTATUS_TOPIC);
machineStatus.setCurrentStatus(currentStatus);
machineStatus.setErrorCode(equipMsg.getErrorCode());
machineStatus.setErrorMsg(equipMsg.getMsg());
machineStatus.setClientIP("");
String statusStr = JSON.toJSONString(machineStatus);
log.info("出料口主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINESTATUS_TOPIC, statusStr);
log.info("出料口返回结果为:" + JSON.toJSONString(future));
}
} else {
MachineStatus machineStatus = new MachineStatus();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
machineStatus.setOccurrenceTime(dateStr);
machineStatus.setMachineID(StorageExportConfig.getMachineId(module));
machineStatus.setTopicType(KafkaConfig.MACHINESTATUS_TOPIC);
machineStatus.setCurrentStatus(currentStatus);
machineStatus.setErrorCode("");
machineStatus.setErrorMsg("");
machineStatus.setClientIP("");
String statusStr = JSON.toJSONString(machineStatus);
log.info("出料口主题为:" + KafkaConfig.MACHINESTATUS_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINESTATUS_TOPIC, statusStr);
log.info("出料口返回结果为:" + JSON.toJSONString(future));
}
}
}
log.info("发送出料口信息结束");
}
/**
* 发送出料口心跳
*/
//@Scheduled(fixedRate = 1000 * 60 * 5)
public void setStorageHeartbeat() {
log.info("发送出料口心跳开始");
EquipStatusBean statusBean = EquipStatusUtil.getStatusBean(KafkaConfig.LINE_CID);
List<EquipStatus> statusList = statusBean.getStatusList();
if (statusList != null && !statusList.isEmpty()) {
for (EquipStatus equipStatus : statusList) {
int status = equipStatus.getStatus(); //状态
String module = equipStatus.getModule(); //出口
String currentStatus = "1"; //正常
if (2 == status || 3 == status) {
currentStatus = "3"; //故障
}
if (0 == status) {
currentStatus = "5"; //离线
}
if ("1".equals(currentStatus)) {
Heartbeat heartbeat = new Heartbeat();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
heartbeat.setOccurrenceTime(dateStr);
heartbeat.setMachineID(StorageExportConfig.getMachineId(module));
heartbeat.setTopicType(KafkaConfig.HEARTBEAT_TOPIC);
String statusStr = JSON.toJSONString(heartbeat);
log.info("出料口主题为:" + KafkaConfig.HEARTBEAT_TOPIC + "内容为:" + statusStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.HEARTBEAT_TOPIC, statusStr);
log.info("出料口返回结果为:" + JSON.toJSONString(future));
}
}
}
log.info("发送出料口心跳结束");
}
/**
* MachineParameter发送
*/
//@Scheduled(fixedRate = 1000 * 60 * 5)
public void setMachineParameter() {
log.info("MachineParameter开始发送");
List<String> machineIdList = getMachineIdList();
for (String machineId : machineIdList) {
List<String> storageIdList = new ArrayList<>();
int totalCount = 0;
int usedCount = 0;
int emptyCount = 0;
List<Storage> storageList = dataCache.getStorageByMachineId(machineId);
for (Storage storage : storageList) {
totalCount = totalCount + storage.getTotalSlots();
emptyCount = emptyCount + storage.getEmptySlots();
usedCount = usedCount + (storage.getTotalSlots() - storage.getEmptySlots());
storageIdList.add(storage.getId());
}
int todayInCount = getTodayInOutCount(storageIdList, OP.PUT_IN);
int todayOutCount = getTodayInOutCount(storageIdList, OP.CHECKOUT);
MachineParameter machineParameter = new MachineParameter();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
machineParameter.setOccurrenceTime(dateStr);
machineParameter.setMachineID(machineId);
machineParameter.setContentType("F");
machineParameter.setMachineType("智能仓储位");
machineParameter.setSupplierID("NEOTEL");
machineParameter.setProgramName("");
machineParameter.setProgramVersion("");
machineParameter.setSerialNumber("");
machineParameter.setResult("");
machineParameter.setEmpNo("");
machineParameter.setClientIP("");
List<MachineParameterData> dataList = new ArrayList<>();
dataList.add(new MachineParameterData("totalCount", totalCount + ""));
dataList.add(new MachineParameterData("emptyCount", emptyCount + ""));
dataList.add(new MachineParameterData("usedCount", usedCount + ""));
dataList.add(new MachineParameterData("todayInCount", todayInCount + ""));
dataList.add(new MachineParameterData("todayOutCount", todayOutCount + ""));
machineParameter.setData(dataList);
String machineParameterStr = JSON.toJSONString(machineParameter);
log.info("MachineParameter主题为:" + KafkaConfig.MACHINEPARAMETER_TOPIC + "内容为:" + machineParameterStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINEPARAMETER_TOPIC, machineParameterStr);
log.info("MachineParameter返回结果为:" + JSON.toJSONString(future));
}
log.info("MachineParameter结束发送");
}
public int getTodayInOutCount(List<String> storageIdList, int type) {
Query q = new Query();
Criteria c = new Criteria();
c.and("updateDate").gte(getDate()); //时间大于今天
c.and("status").in(OP_STATUS.END.name(), OP_STATUS.FINISHED.name()); // 任务是完成的
c.and("storageId").in(storageIdList);
c.and("type").is(type);
return dataLogManager.countByQuery(q.addCriteria(c));
}
private Date getDate() {
//1.获取到当前时间
Date currentDate = new Date();
//2.获取到今天的开始时间
String currentDay = DateUtil.format(currentDate, "yyyy-MM-dd");
currentDay += " 07:00:00";
Date startDate = DateUtil.parse(currentDay, "yyyy-MM-dd HH:mm:ss");
//3.如果当前时间大于今天开始时间,则返回
if (currentDate.getTime() > startDate.getTime()) {
return startDate;
} else {
startDate = DateUtil.offsetDay(startDate, -1);
}
log.info("获取到开始时间为:"+startDate);
return startDate;
}
public List<String> getMachineIdList() {
//找出所有的machineId
List<String> machineIdList = new ArrayList<>();
Collection<Storage> storages = dataCache.getAllStorage().values();
for (Storage storage : storages) {
if (StringUtils.isNotBlank(storage.getMachineId())) {
machineIdList.add(storage.getMachineId());
}
}
machineIdList = machineIdList.stream().distinct().collect(Collectors.toList());
return machineIdList;
}
}
package com.neotel.smfcore.custom.lizhen.kafka.bean;
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.bean;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@ApiModel("心跳信息")
......
package com.neotel.smfcore.custom.lizhen.kafka.bean;
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.bean;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
......
package com.neotel.smfcore.custom.lizhen.kafka.bean;
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.bean;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
......
package com.neotel.smfcore.custom.lizhen.kafka.bean;
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.bean;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class MachineStatus {
......
package com.neotel.smfcore.custom.lizhen.kafka.config;
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.config;
public class KafkaConfig {
/**
......
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.config;
public class StorageNameConfig {
//原材料仓货架
public static final String rawMaterialTower = "raw-material-tower";
//原材料入料机构01-06
public static final String rawMaterialIn01 = "raw-material-in-01";
public static final String rawMaterialIn02 = "raw-material-in-02";
public static final String rawMaterialIn03 = "raw-material-in-03";
public static final String rawMaterialIn04 = "raw-material-in-04";
public static final String rawMaterialIn05 = "raw-material-in-05";
public static final String rawMaterialIn06 = "raw-material-in-06";
//原材料出料机构01-06
public static final String rawMaterialOut01 = "raw-material-out-01";
public static final String rawMaterialOut02 = "raw-material-out-02";
public static final String rawMaterialOut03 = "raw-material-out-03";
public static final String rawMaterialOut04 = "raw-material-out-04";
public static final String rawMaterialOut05 = "raw-material-out-05";
public static final String rawMaterialOut06 = "raw-material-out-06";
}
package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.service;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.bean.MachineParameter;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.bean.MachineParameterData;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.config.KafkaConfig;
import com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.config.StorageNameConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.util.concurrent.ListenableFuture;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//@Async
@Service
@Slf4j
public class KafkaService {
@Autowired
private IDataLogManager dataLogManager;
@Autowired
private DataCache dataCache;
@Autowired
private KafkaTemplate kafkaTemplate;
@Autowired
private IStoragePosManager storagePosManager;
@Scheduled(fixedRate = 1000 * 60 * 5)
public void setTowerDataMachineParamter() {
log.info("开始推送原材料仓tower数据");
MachineParameter machineParameter = new MachineParameter();
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS");
machineParameter.setOccurrenceTime(dateStr);
machineParameter.setMachineID(StorageNameConfig.rawMaterialTower);
machineParameter.setContentType("F");
machineParameter.setMachineType("智能仓储位");
machineParameter.setSupplierID("NEOTEL");
machineParameter.setProgramName("");
machineParameter.setProgramVersion("");
machineParameter.setSerialNumber("");
machineParameter.setResult("");
machineParameter.setEmpNo("");
machineParameter.setClientIP("");
List<String> storageIdList = new ArrayList<>();
for (Storage storage : dataCache.getAllStorage().values()) {
if (!storage.isVirtual()) {
storageIdList.add(storage.getId());
}
}
//获取货架所有库位的使用情况
int totalCount = storagePosManager.countByQuery(new Query(Criteria.where("storageId").in(storageIdList)));
int usedCount = storagePosManager.countByQuery(new Query(Criteria.where("barcode.status").is(BARCODE_STATUS.IN_STORE).and("storageId").in(storageIdList)));
int emptyCount = totalCount - usedCount;
int todayInCount = getTodayInOutCount(storageIdList, OP.PUT_IN);
int todayOutCount = getTodayInOutCount(storageIdList, OP.CHECKOUT);
List<MachineParameterData> dataList = new ArrayList<>();
dataList.add(new MachineParameterData("totalCount", totalCount + ""));
dataList.add(new MachineParameterData("emptyCount", emptyCount + ""));
dataList.add(new MachineParameterData("usedCount", usedCount + ""));
dataList.add(new MachineParameterData("todayInCount", todayInCount + ""));
dataList.add(new MachineParameterData("todayOutCount", todayOutCount + ""));
machineParameter.setData(dataList);
String machineParameterStr = JSON.toJSONString(machineParameter);
log.info("MachineParameter主题为:" + KafkaConfig.MACHINEPARAMETER_TOPIC + "内容为:" + machineParameterStr);
ListenableFuture future = kafkaTemplate.send(KafkaConfig.MACHINEPARAMETER_TOPIC, machineParameterStr);
log.info("MachineParameter返回结果为:" + JSON.toJSONString(future));
log.info("结束推送原材料仓tower数据");
}
public int getTodayInOutCount(List<String> storageIdList, int type) {
Query q = new Query();
Criteria c = new Criteria();
c.and("updateDate").gte(getDate()); //时间大于今天
c.and("status").in(OP_STATUS.END.name(), OP_STATUS.FINISHED.name()); // 任务是完成的
c.and("storageId").in(storageIdList);
c.and("type").is(type);
return dataLogManager.countByQuery(q.addCriteria(c));
}
private Date getDate() {
//1.获取到当前时间
Date currentDate = new Date();
//2.获取到今天的开始时间
String currentDay = DateUtil.format(currentDate, "yyyy-MM-dd");
currentDay += " 00:00:00";
Date startDate = DateUtil.parse(currentDay, "yyyy-MM-dd HH:mm:ss");
log.info("获取到开始时间为:" + startDate);
return startDate;
}
}
......@@ -17,12 +17,12 @@ spring:
database: smf #原材料仓数据库
#kafka配置
# kafka:
# bootstrap-servers: 10.190.196.135:9092
# consumer:
# group-id: neotel
# key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
# value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
kafka:
bootstrap-servers: 10.68.16.18:9092,10.68.16.19:9092,10.68.16.20:9092
consumer:
group-id: neotel
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
#jwt
jwt:
......
......@@ -107,5 +107,5 @@ app:
menu:
show: returnInventoryAndPutShelves
show:
hide:
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!