Commit bc2948f2 zshaohui

1.nexim增加在线功能

1 个父辈 006361a0
正在显示 16 个修改的文件 包含 124 行增加123 行删除
......@@ -2,26 +2,21 @@ package com.neotel.smfcore.core.equipment.rest;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.dashboard.bean.dto.box.MesInfoDto;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.rest.dto.EquipGroupDto;
import com.neotel.smfcore.core.equipment.rest.dto.EquipKanbanDto;
import com.neotel.smfcore.core.equipment.rest.dto.NsViewDto;
import com.neotel.smfcore.core.equipment.util.EquipmentCache;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.rest.dto.EquipStatusDto;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import com.neotel.smfcore.custom.fuji.bean.FujiConfig;
import com.neotel.smfcore.custom.fuji.config.FujiCacheConfig;
import com.neotel.smfcore.custom.hanwha.handler.TMSCommunicator;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.custom.nexim.util.NeximUtil;
import com.neotel.smfcore.custom.panacim.PanaApiController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -54,6 +49,9 @@ public class EquipViewController {
@Autowired
private TMSCommunicator tmsCommunicator;
@Autowired
private NeximUtil neximUtil;
// @ApiOperation("获取看板数据")
// @GetMapping
// @PreAuthorize("@el.check('equipmentView:info')")
......@@ -151,9 +149,13 @@ public class EquipViewController {
} else if (equip.getType().equalsIgnoreCase(EquipmentType.NEXIM.name())){
if(dto.isActivate()) {
//配置了且激活就显示在线
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config != null) {
// dto.setStatus(1);
boolean onLine = neximUtil.isOnLine();
if (onLine){
dto.setOnLine(true);
dto.setStatus(1);
}
}
}
}else if(equip.getType().equalsIgnoreCase(EquipmentType.PANACIMNEOLINK.name())) {
......
package com.neotel.smfcore.custom.fuji.config;
public class FujiCacheConfig {
public static final String FujiConfig_Cache_Name = "FujiConfig_Cache_Name";
}
package com.neotel.smfcore.custom.fuji.config;
import lombok.Data;
@Data
public class FujiUrlConfig {
//private static final String baseUrl = "http://175.41.238.212/fujiopenwebapi/api/v1";
//public static final String userName = "Neotel";
//public static final String password = "Neotel";
//private static final String authLogin = "/auth/login";
//private static final String inventoryDids = "/inventory/dids";
}
package com.neotel.smfcore.custom.fuji;
package com.neotel.smfcore.custom.nexim;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -15,10 +15,9 @@ import com.neotel.smfcore.core.apiInteraction.service.po.ApiInteraction;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.custom.fuji.bean.FujiConfig;
import com.neotel.smfcore.custom.fuji.config.FujiCacheConfig;
import com.neotel.smfcore.custom.fuji.config.FujiUrlConfig;
import com.neotel.smfcore.custom.fuji.util.NotifyUtil;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.custom.nexim.util.NotifyUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -31,7 +30,7 @@ import java.util.Map;
@Service
@Slf4j
public class FujiApi extends BaseSmfApiListener {
public class NeximApi extends BaseSmfApiListener {
@Autowired
private DataCache dataCache;
......@@ -193,7 +192,7 @@ public class FujiApi extends BaseSmfApiListener {
log.info("获取Fuji的token结果为:" + result);
JSONObject resultObj = JSONObject.parseObject(result);
accessToken = resultObj.getString("accessToken");
} catch (ApiException e) {
} catch (Exception e) {
log.info("获取Fuji的token异常:", e);
accessToken = "";
}
......@@ -211,50 +210,50 @@ public class FujiApi extends BaseSmfApiListener {
}
private String getAuthLogin(){
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
return config.getAuthUrl();
}
private String getAuthUserName(){
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
return config.getUserName();
}
private String getAuthPassword(){
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
return config.getPassword();
}
private String getInventoryDids(){
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
return config.getGetDidInfoUrl();
}
private String inventoryDids(){
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
return config.getRegisterDidInfoUrl();
}
private String getNotifyEtn(){
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
return config.getOutputEtn();
}
......
package com.neotel.smfcore.custom.fuji;
package com.neotel.smfcore.custom.nexim;
import com.neotel.smfcore.common.init.MenuInit;
import com.neotel.smfcore.core.api.SmfApi;
......@@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class FujiMenu {
public class NeximMenu {
@Autowired
MenuInit menuInit;
......@@ -20,7 +20,7 @@ public class FujiMenu {
@PostConstruct
public void init(){
String menuLabel = "fuji";
String menuLabel = "nexim";
// Menu nexim = Menu.CreatePMenu("Nexim", 3, "nexim", "nexim", null);
Menu poutOut = Menu.CreatePMenu("物料管理", 3, "order", "workOrder", null);
......
package com.neotel.smfcore.custom.fuji.bean;
package com.neotel.smfcore.custom.nexim.bean;
import lombok.Data;
import java.util.Date;
@Data
public class FujiConfig {
public class NeximConfig {
private String authUrl = "";
private String userName = "";
private String password = "";
......
package com.neotel.smfcore.custom.fuji.bean.dto;
package com.neotel.smfcore.custom.nexim.bean.dto;
import com.neotel.smfcore.custom.fuji.bean.FujiConfig;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import lombok.Data;
import java.util.Date;
@Data
public class FujiConfigDto extends FujiConfig {
public class NeximConfigDto extends NeximConfig {
private String etoUpdateDateStr;
private String etnUpdateDateStr;
}
package com.neotel.smfcore.custom.nexim.config;
public class NeximCacheConfig {
public static final String NeximConfig_Cache_Name = "FujiConfig_Cache_Name";
}
package com.neotel.smfcore.custom.fuji.controller;
package com.neotel.smfcore.custom.nexim.controller;
import com.alibaba.fastjson.JSON;
import com.neotel.smfcore.common.bean.ResultBean;
......@@ -9,12 +9,11 @@ import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.custom.fuji.FujiApi;
import com.neotel.smfcore.custom.fuji.bean.FujiConfig;
import com.neotel.smfcore.custom.fuji.bean.dto.FujiConfigDto;
import com.neotel.smfcore.custom.fuji.config.FujiCacheConfig;
import com.neotel.smfcore.custom.fuji.order.service.JobService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.custom.nexim.NeximApi;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.custom.nexim.bean.dto.NeximConfigDto;
import com.neotel.smfcore.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.custom.nexim.order.service.JobService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -30,7 +29,7 @@ import java.util.stream.Collectors;
@Slf4j
@RestController
@RequestMapping("/fuji")
public class FujiController {
public class NeximController {
@Autowired
private DataCache dataCache;
......@@ -39,7 +38,7 @@ public class FujiController {
private CodeResolve codeResolve;
@Autowired
private FujiApi fujiApi;
private NeximApi neximApi;
@Autowired
private LiteOrderCache liteOrderCache;
......@@ -50,11 +49,11 @@ public class FujiController {
@ApiOperation("修改配置")
@RequestMapping("/updateFujiConfig")
//@AnonymousAccess
public ResultBean updateFujiConfig(@RequestBody FujiConfig newConfig) {
public ResultBean updateFujiConfig(@RequestBody NeximConfig newConfig) {
log.info("修改配置信息为:" + JSON.toJSONString(newConfig));
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
config.setAuthUrl(newConfig.getAuthUrl());
config.setGetDidInfoUrl(newConfig.getGetDidInfoUrl());
......@@ -64,7 +63,7 @@ public class FujiController {
config.setTime(newConfig.getTime());
config.setUserName(newConfig.getUserName());
config.setPassword(newConfig.getPassword());
dataCache.updateCache(FujiCacheConfig.FujiConfig_Cache_Name, config);
dataCache.updateCache(NeximCacheConfig.NeximConfig_Cache_Name, config);
return ResultBean.newOkResult("");
}
......@@ -72,11 +71,11 @@ public class FujiController {
@RequestMapping("/getFujiConfig")
//@AnonymousAccess
public ResultBean getFujiConfig() {
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
FujiConfigDto dto = new FujiConfigDto();
NeximConfigDto dto = new NeximConfigDto();
dto.setAuthUrl(config.getAuthUrl());
dto.setGetDidInfoUrl(config.getGetDidInfoUrl());
dto.setRegisterDidInfoUrl(config.getRegisterDidInfoUrl());
......@@ -106,10 +105,10 @@ public class FujiController {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "{0}不是有效的条码", new String[]{code});
}
String accessToken = fujiApi.getAccessToken();
boolean hasDid = fujiApi.inventoryHasDid(barcode.getBarcode(), accessToken);
String accessToken = neximApi.getAccessToken();
boolean hasDid = neximApi.inventoryHasDid(barcode.getBarcode(), accessToken);
if (!hasDid){
fujiApi.registerNewDid(barcode, accessToken);
neximApi.registerNewDid(barcode, accessToken);
}
return ResultBean.newOkResult("");
}
......@@ -197,9 +196,9 @@ public class FujiController {
@RequestMapping("/getFileUpdateDate")
//@AnonymousAccess
public ResultBean getFileUpdateDate(String param) {
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
String updateStr = "";
String fileName = "";
......
package com.neotel.smfcore.custom.fuji.order;
package com.neotel.smfcore.custom.nexim.order;
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSON;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.fuji.bean.FujiConfig;
import com.neotel.smfcore.custom.fuji.config.FujiCacheConfig;
import com.neotel.smfcore.custom.fuji.order.bean.Job;
import com.neotel.smfcore.custom.fuji.order.bean.JobItem;
import com.neotel.smfcore.custom.fuji.order.service.JobService;
import com.neotel.smfcore.custom.fuji.util.NotifyUtil;
import com.neotel.smfcore.custom.fuji.util.OrderUtil;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.custom.nexim.order.bean.Job;
import com.neotel.smfcore.custom.nexim.order.service.JobService;
import com.neotel.smfcore.custom.nexim.util.OrderUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
......@@ -65,9 +52,9 @@ public class JobHandler {
public void init() {
if ("fuji".equals(smfApi.getApiName())) {
scheduledThreadPool.scheduleAtFixedRate(() -> {
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
if (System.currentTimeMillis()-lastHandleTime >= 1000 * config.getTime()){
//log.info(DateUtil.toDateString(System.currentTimeMillis(),"yyyy-MM-dd HH:mm:ss"));
......@@ -88,9 +75,9 @@ public class JobHandler {
public void handler() throws IOException {
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
String path = config.getInputEto();
if (StringUtils.isEmpty(path)){
......
package com.neotel.smfcore.custom.fuji.order.bean;
package com.neotel.smfcore.custom.nexim.order.bean;
import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.Data;
......
package com.neotel.smfcore.custom.fuji.order.bean;
package com.neotel.smfcore.custom.nexim.order.bean;
import lombok.Data;
......
package com.neotel.smfcore.custom.fuji.order.service;
package com.neotel.smfcore.custom.nexim.order.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -19,10 +19,10 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.fuji.bean.FujiConfig;
import com.neotel.smfcore.custom.fuji.config.FujiCacheConfig;
import com.neotel.smfcore.custom.fuji.order.bean.Job;
import com.neotel.smfcore.custom.fuji.order.bean.JobItem;
import com.neotel.smfcore.custom.nexim.bean.NeximConfig;
import com.neotel.smfcore.custom.nexim.config.NeximCacheConfig;
import com.neotel.smfcore.custom.nexim.order.bean.Job;
import com.neotel.smfcore.custom.nexim.order.bean.JobItem;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -309,9 +309,9 @@ public class JobService {
//int pos = ansName.lastIndexOf(".");
//ansName = pos > 0 ? ansName.substring(0,pos) :ansName;
FujiConfig config = dataCache.getCache(FujiCacheConfig.FujiConfig_Cache_Name);
NeximConfig config = dataCache.getCache(NeximCacheConfig.NeximConfig_Cache_Name);
if (config == null) {
config = new FujiConfig();
config = new NeximConfig();
}
String path = config.getInputEto();
String ansFilePath = path+"\\"+ansName+".ANS";
......
package com.neotel.smfcore.custom.nexim.util;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.custom.nexim.NeximApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class NeximUtil {
@Autowired
private NeximApi neximApi;
private long lastOnLineTime = 0l;
private boolean lastOnLine = false;
public boolean isOnLine() {
if (lastOnLineTime != 0l && System.currentTimeMillis() - lastOnLineTime <= 1000 * 60 * 5) {
return lastOnLine;
}
lastOnLineTime = System.currentTimeMillis();
String accessToken = "";
try {
accessToken = neximApi.getAccessToken();
} catch (Exception e) {
log.error("获取token失败:", e);
}
if (StringUtils.isNotEmpty(accessToken)) {
lastOnLine = true;
return lastOnLine;
}
lastOnLine = false;
return lastOnLine;
}
}
package com.neotel.smfcore.custom.fuji.util;
package com.neotel.smfcore.custom.nexim.util;
import com.neotel.smfcore.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
......
package com.neotel.smfcore.custom.fuji.util;
package com.neotel.smfcore.custom.nexim.util;
import com.neotel.smfcore.common.utils.SmbUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import jcifs.smb.SmbFile;
import lombok.extern.slf4j.Slf4j;
......@@ -10,7 +9,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!