|
|
@ -1,6 +1,8 @@ |
|
|
|
package a8k.service.project_mgr; |
|
|
|
|
|
|
|
|
|
|
|
import a8k.controler.engineer.utils.EnginnerPageStatu; |
|
|
|
import a8k.controler.engineer.utils.EnginnerPageTabOrder; |
|
|
|
import a8k.service.appeventbus.AppEventListener; |
|
|
|
import a8k.appbase.HardwareException; |
|
|
|
import a8k.appbase.ProjectInfoSimple; |
|
|
@ -29,9 +31,9 @@ import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
@Component |
|
|
|
@EngineerPageTab(name = "ProjectItemMgrService") |
|
|
|
public class ProjectItemMgrService implements AppEventListener { |
|
|
|
static Logger logger = org.slf4j.LoggerFactory.getLogger(ProjectItemMgrService.class); |
|
|
|
@EngineerPageTab(name = "应用-项目管理", order = EnginnerPageTabOrder.AppProjectItemMgrService) |
|
|
|
public class AppProjectItemMgrService implements AppEventListener { |
|
|
|
static Logger logger = org.slf4j.LoggerFactory.getLogger(AppProjectItemMgrService.class); |
|
|
|
|
|
|
|
@Resource |
|
|
|
A8kCanBusService canBus; |
|
|
@ -61,13 +63,9 @@ public class ProjectItemMgrService implements AppEventListener { |
|
|
|
logger.info("拔出ID卡"); |
|
|
|
} |
|
|
|
} else if (event instanceof A8kCanBusOnConnectEvent canPacket) { |
|
|
|
try { |
|
|
|
if (canBus.moduleGetReg(MId.A8kIdCardReader, RegIndex.kreg_id_card_reader_is_online) == 1) { |
|
|
|
logger.info("ID卡读卡器在线"); |
|
|
|
workQueue.addTask(this::readIDCard); |
|
|
|
} |
|
|
|
} catch (HardwareException e) { |
|
|
|
throw new RuntimeException(e); |
|
|
|
if (idCardStatus()) { |
|
|
|
logger.info("ID卡读卡器在线"); |
|
|
|
workQueue.addTask(this::readIDCard); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -90,7 +88,7 @@ public class ProjectItemMgrService implements AppEventListener { |
|
|
|
return pinfo == null || newpinfo.updateChipVersion >= pinfo.updateChipVersion; |
|
|
|
} |
|
|
|
|
|
|
|
void readIDCard() { |
|
|
|
private ProjectInfo readAndConstructProjectInfo() { |
|
|
|
//读取ID卡信息 |
|
|
|
byte[] data = null; |
|
|
|
try { |
|
|
@ -99,14 +97,24 @@ public class ProjectItemMgrService implements AppEventListener { |
|
|
|
//TODO: |
|
|
|
// 解析ID |
|
|
|
// 构造ProjectInfo |
|
|
|
// 判断是否是新的ProjectInfo (by call isNewProjectInfo) |
|
|
|
// 构造NewAppIDCardDetectEvent |
|
|
|
// 发送事件到事件总线上去,事件将由 FrontEndEventRouter 路由到前端 |
|
|
|
// 存储项目信息到数据库中 |
|
|
|
// 调用 stateMgr.setCurrentIdCardInfo(); 将ID卡信息存储到状态管理器中 |
|
|
|
} catch (HardwareException e) { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
void readIDCard() { |
|
|
|
//读取ID卡信息 |
|
|
|
//TODO: |
|
|
|
// 解析ID |
|
|
|
// 构造ProjectInfo |
|
|
|
// 判断是否是新的ProjectInfo (by call isNewProjectInfo) |
|
|
|
// 构造NewAppIDCardDetectEvent |
|
|
|
// 发送事件到事件总线上去,事件将由 FrontEndEventRouter 路由到前端 |
|
|
|
// 存储项目信息到数据库中 |
|
|
|
// 调用 stateMgr.setCurrentIdCardInfo(); 将ID卡信息存储到状态管理器中 |
|
|
|
ProjectInfo pjinfo = readAndConstructProjectInfo(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -114,12 +122,12 @@ public class ProjectItemMgrService implements AppEventListener { |
|
|
|
// PUBLIC |
|
|
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
|
|
|
|
|
|
@EnginnerPageAction(name = "获取项目信息(简单)") |
|
|
|
@EnginnerPageAction(name = "获取项目信息(简单)", order = 1) |
|
|
|
public AppRet<List<ProjectInfoSimple>> getProjectInfoSimple() { |
|
|
|
return AppRet.success(dbGetProjectInfos()); |
|
|
|
} |
|
|
|
|
|
|
|
@EnginnerPageAction(name = "添加项目信息") |
|
|
|
@EnginnerPageAction(name = "添加项目信息", order = 2) |
|
|
|
public AppRet<String> addProjectInfo(ProjectInfo newpinfo) { |
|
|
|
var pinfo = ProjectInfo.findOne(ProjectInfo.class, Map.of("lotName", newpinfo.lotName)); |
|
|
|
if (pinfo != null && newpinfo.updateChipVersion < pinfo.updateChipVersion) { |
|
|
@ -132,4 +140,19 @@ public class ProjectItemMgrService implements AppEventListener { |
|
|
|
} |
|
|
|
return AppRet.success("添加成功"); |
|
|
|
} |
|
|
|
|
|
|
|
@EnginnerPageAction(name = "读取ID卡信息", order = 3) |
|
|
|
public AppRet<ProjectInfo> readIDCardInfo() { |
|
|
|
ProjectInfo pinfo = readAndConstructProjectInfo(); |
|
|
|
return AppRet.success(pinfo); |
|
|
|
} |
|
|
|
|
|
|
|
@EnginnerPageStatu(name = "ID卡状态") |
|
|
|
public Boolean idCardStatus() { |
|
|
|
try { |
|
|
|
return canBus.moduleGetReg(MId.A8kIdCardReader, RegIndex.kreg_id_card_reader_is_online) == 1; |
|
|
|
} catch (HardwareException ignored) { |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |