Browse Source

update

tags/v0
zhaohe 9 months ago
parent
commit
f3a99ae1c8
  1. 64
      src/main/java/a8k/controler/api_v1/app/A8kProjectCardControler.java
  2. 55
      src/main/java/a8k/service/app/appdata/ProjIdCardInfoMgrService.java
  3. 4
      src/main/java/a8k/service/app/appstate/GStateService.java
  4. 8
      src/main/java/a8k/service/bases/appevent/AppIDCardMountEvent.java
  5. 15
      src/main/java/a8k/service/dao/A8kProjIdCardDao.java
  6. 12
      src/main/java/a8k/service/dao/type/A8kProjInfoCard.java
  7. 4
      src/main/java/a8k/service/dao/type/A8kProjInfoCardBreif.java
  8. 4
      src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java
  9. 6
      src/main/java/a8k/service/test/fakeproj/FakeProjInfo.java
  10. 4
      src/main/java/a8k/service/test/fakeproj/FakeProjInfoFactory.java
  11. 4
      src/main/java/a8k/service/test/state/VirtualDevice.java
  12. 6
      src/main/java/a8k/utils/A8kIdCardDataParser.java
  13. 6
      src/main/java/a8k/utils/A8kProjCfg.java

64
src/main/java/a8k/controler/api_v1/app/A8kProjectCardControler.java

@ -0,0 +1,64 @@
package a8k.controler.api_v1.app;
import a8k.service.app.appdata.ProjIdCardInfoMgrService;
import a8k.service.app.appstate.GStateService;
import a8k.service.dao.type.A8kProjInfoCardBreif;
import a8k.type.appret.ApiV1Ret;
import a8k.type.db.CommonPage;
import a8k.type.exception.AppException;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "反应记录", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/a8kProjectCardControler/")
@ResponseBody
public class A8kProjectCardControler {
@Resource
GStateService gstate;
@Resource
ProjIdCardInfoMgrService projIdCardInfoMgrService;
@Operation(summary = "读取已挂载的A8k项目信息卡")
@PostMapping("/readMountedCardInfo")
public ApiV1Ret<A8kProjInfoCardBreif> readMountedCardInfo() throws AppException {
return ApiV1Ret.success(projIdCardInfoMgrService.readMountedIDCardInfo());
}
@Operation(summary = "保存已挂载的A8k项目信息卡")
@PostMapping("/saveMountedCardInfo")
public ApiV1Ret<Void> saveMountedCardInfo() {
projIdCardInfoMgrService.saveMountedProjInfoCard();
return ApiV1Ret.success();
}
@Operation(summary = "删除A8k项目信息卡")
@PostMapping("/delete")
public ApiV1Ret<Void> delete(Integer id) {
projIdCardInfoMgrService.delete(id);
return ApiV1Ret.success();
}
@Operation(summary = "删除所有A8k项目信息卡")
@PostMapping("/deleteAll")
public ApiV1Ret<Void> deleteAll() {
projIdCardInfoMgrService.deleteAll();
return ApiV1Ret.success();
}
@Operation(summary = "获取A8k项目信息卡")
@PostMapping("/get")
public ApiV1Ret<CommonPage<A8kProjInfoCardBreif>> get(Integer pageNum, Integer pageSize) {
return ApiV1Ret.success(projIdCardInfoMgrService.get(pageNum, pageSize));
}
}

55
src/main/java/a8k/service/app/appdata/ProjIdCardInfoMgrService.java

@ -2,13 +2,13 @@ package a8k.service.app.appdata;
import a8k.extapi_controler.pagecontrol.ExtApiTabConfig;
import a8k.extapi_controler.utils.ExtApiFn;
import a8k.extapi_controler.utils.ExtApiTab;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.service.app.appstate.GStateService;
import a8k.service.dao.A8kProjIdCardDao;
import a8k.service.dao.type.A8kIdCardBreifInfo;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCardBreif;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.type.db.CommonPage;
import a8k.type.exception.AppException;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
@ -20,17 +20,6 @@ import java.util.List;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.ProjIdCardInfoMgrService)
public class ProjIdCardInfoMgrService {
static Logger logger = org.slf4j.LoggerFactory.getLogger(ProjIdCardInfoMgrService.class);
static class ORDER {
static final int readIDCardInfo = 1;
static final int saveIDCardInfo = 2;
static final int getProjectInfoList = 3;
static final int getProjectBreifInfoList = 4;
static final int removeIDCardInfo = 5;
static final int idCardStatus = 6;
}
@Resource
GStateService gstate;
@ -41,42 +30,36 @@ public class ProjIdCardInfoMgrService {
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ID卡管理
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ExtApiFn(name = "读取当前挂载的ID卡信息", order = ORDER.readIDCardInfo)
public A8kIdCardInfo readMountedIDCardInfo() throws AppException {
public A8kProjInfoCardBreif readMountedIDCardInfo() throws AppException {
if (gstate.getMountedIdCardInfo() == null) {
throw new AppException(A8kEcode.APPE_A8K_ID_CARD_NOT_MOUNTED);
}
return gstate.getMountedIdCardInfo();
return gstate.getMountedIdCardInfo().toBreif();
}
@ExtApiFn(name = "保存挂载ID卡信息", order = ORDER.saveIDCardInfo)
public void saveIDCardInfo() {
public void saveMountedProjInfoCard() {
a8KProjIdCardDao.addIdCard(gstate.getMountedIdCardInfo());
}
@ExtApiFn(name = "获取ID卡信息列表", order = ORDER.getProjectInfoList)
public List<A8kIdCardInfo> getProjectInfoList() {
return a8KProjIdCardDao.getAll();
public Boolean getMountedProjInfoCardState() {
return gstate.getMountedIdCardInfo() != null;
}
@ExtApiFn(name = "获取ID卡信息列表(简要)", order = ORDER.getProjectBreifInfoList)
public List<A8kIdCardBreifInfo> getProjectBreifInfoList() {
List<A8kIdCardBreifInfo> ret = new ArrayList<>();
for (A8kIdCardInfo idCardInfo : a8KProjIdCardDao.getAll()) {
ret.add(idCardInfo.toBreif());
}
return ret;
public void delete(int id) {
a8KProjIdCardDao.delete(id);
}
@ExtApiFn(name = "删除ID卡信息", order = ORDER.removeIDCardInfo)
public void removeIDCardInfo(String lotId) {
a8KProjIdCardDao.removeByLotId(lotId);
public void deleteAll() {
a8KProjIdCardDao.deleteAll();
}
@ExtApiFn(name = "ID卡状态", order = ORDER.idCardStatus)
public Boolean idCardStatus() {
return gstate.getMountedIdCardInfo() != null;
public CommonPage<A8kProjInfoCardBreif> get(Integer pageNum, Integer pageSize) {
var commonpage = a8KProjIdCardDao.getPageDesc(pageNum, pageSize);
List<A8kProjInfoCardBreif> breifList = new ArrayList<>();
for (A8kProjInfoCard idCardInfo : commonpage.getList()) {
breifList.add(idCardInfo.toBreif());
}
return new CommonPage<>(commonpage.getPageNum(), commonpage.getPageSize(), commonpage.getTotalPage(), commonpage.getTotal(), breifList);
}
}

4
src/main/java/a8k/service/app/appstate/GStateService.java

@ -1,7 +1,7 @@
package a8k.service.app.appstate;
import a8k.constant.AppConstant;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.type.consumables.ConsumableState;
import a8k.service.app.appstate.type.*;
import a8k.service.app.appstate.type.state.A8kWorkState;
@ -44,7 +44,7 @@ public class GStateService {
SensorState sensorState = new SensorState();
A8kIdCardInfo mountedIdCardInfo;
A8kProjInfoCard mountedIdCardInfo;
//主流程控制状态
public DeviceWorkState deviceWorkState = new DeviceWorkState();

8
src/main/java/a8k/service/bases/appevent/AppIDCardMountEvent.java

@ -1,13 +1,13 @@
package a8k.service.bases.appevent;
import a8k.service.dao.type.A8kIdCardBreifInfo;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCardBreif;
import a8k.service.dao.type.A8kProjInfoCard;
public class AppIDCardMountEvent extends AppEvent {
public A8kIdCardBreifInfo projectInfo;
public A8kProjInfoCardBreif projectInfo;
public AppIDCardMountEvent(A8kIdCardInfo projectInfo) {
public AppIDCardMountEvent(A8kProjInfoCard projectInfo) {
super(AppIDCardMountEvent.class.getSimpleName());
this.projectInfo = projectInfo.toBreif();
}

15
src/main/java/a8k/service/dao/A8kProjIdCardDao.java

@ -1,8 +1,7 @@
package a8k.service.dao;
import a8k.SpringBootBeanUtil;
import a8k.service.app.appdata.UtilsProjectColorAllocer;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.utils.ZSqlite;
import jakarta.annotation.PostConstruct;
@ -16,7 +15,7 @@ import org.springframework.stereotype.Component;
*/
@Component
@Slf4j
public class A8kProjIdCardDao extends ZSqlite<A8kIdCardInfo> {
public class A8kProjIdCardDao extends ZSqlite<A8kProjInfoCard> {
@Resource
UtilsProjectColorAllocer colorAllocer;
@ -26,7 +25,7 @@ public class A8kProjIdCardDao extends ZSqlite<A8kIdCardInfo> {
@PostConstruct
void init() {
init(jdbcTemplate, "zapp_a8k_idcard_info", A8kIdCardInfo.class);
init(jdbcTemplate, "zapp_a8k_idcard_info", A8kProjInfoCard.class);
}
@ -34,9 +33,9 @@ public class A8kProjIdCardDao extends ZSqlite<A8kIdCardInfo> {
* 添加ID卡信息
* @param idcardinfo idcardinfo
*/
public void addIdCard(A8kIdCardInfo idcardinfo) {
public void addIdCard(A8kProjInfoCard idcardinfo) {
//查找是否有相同的lotName,如果则更新
A8kIdCardInfo old = getByLotId(idcardinfo.lotId);
A8kProjInfoCard old = getByLotId(idcardinfo.lotId);
if (old != null) {
if (old.updateChipVersion >= idcardinfo.updateChipVersion) {
log.warn("updateChipVersion is not newer, ignore");
@ -55,11 +54,11 @@ public class A8kProjIdCardDao extends ZSqlite<A8kIdCardInfo> {
update("delete from " + tableName + " where lotId = ?;", lotId);
}
public A8kIdCardInfo getByLotId(String lotId) {
public A8kProjInfoCard getByLotId(String lotId) {
return queryOne("select * from " + tableName + " where lotId = ?;", lotId);
}
public A8kIdCardInfo getByProjIndex(int projIndex) {
public A8kProjInfoCard getByProjIndex(int projIndex) {
return queryOne("select * from " + tableName + " where projIndex = ?;", projIndex);
}

12
src/main/java/a8k/service/dao/type/A8kIdCardInfo.java → src/main/java/a8k/service/dao/type/A8kProjInfoCard.java

@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Date;
public class A8kIdCardInfo {
public class A8kProjInfoCard {
public int id;
public String color;//
@ -58,15 +58,15 @@ public class A8kIdCardInfo {
}
public A8kIdCardBreifInfo toBreif() {
A8kIdCardBreifInfo breif = new A8kIdCardBreifInfo();
public A8kProjInfoCardBreif toBreif() {
A8kProjInfoCardBreif breif = new A8kProjInfoCardBreif();
breif.id = id;
breif.color = color;
breif.projName = projName;
breif.lotId = lotId;
breif.expiryDate = expiryDate;
breif.projIndex = projId;
breif.palteCode = palteCode;
breif.expiryDate = expiryDate;
breif.projId = projId;
breif.palteCode = palteCode;
breif.updateChipVersion = updateChipVersion;
return breif;
}

4
src/main/java/a8k/service/dao/type/A8kIdCardBreifInfo.java → src/main/java/a8k/service/dao/type/A8kProjInfoCardBreif.java

@ -2,7 +2,7 @@ package a8k.service.dao.type;
import java.util.Date;
public class A8kIdCardBreifInfo {
public class A8kProjInfoCardBreif {
public int id;
public String color;//
@ -11,7 +11,7 @@ public class A8kIdCardBreifInfo {
public String lotId; // 批次名称 0x0010,12
public Date expiryDate; // 有效日期 0x001C
public Integer projIndex; // 项目名称代码 0x001F
public Integer projId; // 项目名称代码 0x001F
public Integer palteCode; // 板条条码代码 0x0020
public Integer updateChipVersion; // 更新芯片版本号 0x0021
}

4
src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java

@ -13,7 +13,7 @@ import a8k.service.app.appstate.GStateService;
import a8k.service.bases.AppEventBusService;
import a8k.service.bases.appevent.*;
import a8k.service.dao.ReactionRecordDao;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.service.dao.type.ReactionResultRecord;
import a8k.service.dao.type.a8kidcard.zenum.A8kResultUnit;
import a8k.service.test.fakeproj.*;
@ -62,7 +62,7 @@ public class VirtualDeviceSimulationTest {
@ExtApiFn(name = "模拟插入一张虚拟ID卡", group = "虚拟操作", order = 200)
public void insertVirtualIdCard() {
A8kIdCardInfo idCardInfo = new FAKE_PROJ_01().buildA8kIDCardInfo();
A8kProjInfoCard idCardInfo = new FAKE_PROJ_01().buildA8kIDCardInfo();
virtualDevice.setMountIdCard(idCardInfo);
eventBus.pushEvent(new A8kHardwareReport(A8kPacketBuilder.build_event_a8000_idcard_online()));
}

6
src/main/java/a8k/service/test/fakeproj/FakeProjInfo.java

@ -1,6 +1,6 @@
package a8k.service.test.fakeproj;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.service.dao.type.ProjOptConfig;
import a8k.service.dao.type.A8kProjectInfo;
import a8k.service.dao.type.a8kidcard.zenum.A8kOptType;
@ -40,9 +40,9 @@ public class FakeProjInfo {
FakeProjInfo() {}
public A8kIdCardInfo buildA8kIDCardInfo() {
public A8kProjInfoCard buildA8kIDCardInfo() {
A8kIdCardInfo idCardInfo = new A8kIdCardInfo();
A8kProjInfoCard idCardInfo = new A8kProjInfoCard();
idCardInfo.projName = projName;
idCardInfo.lotId = lotId;
if (!expired) {

4
src/main/java/a8k/service/test/fakeproj/FakeProjInfoFactory.java

@ -1,7 +1,7 @@
package a8k.service.test.fakeproj;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.service.dao.type.ProjOptConfig;
import a8k.service.dao.type.A8kProjectInfo;
import org.springframework.stereotype.Component;
@ -23,7 +23,7 @@ public class FakeProjInfoFactory {
}
}
static public A8kIdCardInfo buildIDCardInfo(Class<?> type) {
static public A8kProjInfoCard buildIDCardInfo(Class<?> type) {
return newInstance(type).buildA8kIDCardInfo();
}

4
src/main/java/a8k/service/test/state/VirtualDevice.java

@ -1,7 +1,7 @@
package a8k.service.test.state;
import a8k.OS;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.type.ConsumableOneChRawResult;
import a8k.type.ConsumableScanRawResult;
import a8k.type.TubeHolderScanResult;
@ -19,7 +19,7 @@ public class VirtualDevice {
// 挂载的ID卡
//
A8kIdCardInfo mountIdCard;
A8kProjInfoCard mountIdCard;
public Boolean isMountIdCard() {
return mountIdCard != null;

6
src/main/java/a8k/utils/A8kIdCardDataParser.java

@ -4,7 +4,7 @@ import a8k.opttype.A8kOptX;
import a8k.service.dao.type.a8kidcard.zenum.A8kFnType;
import a8k.service.dao.type.a8kidcard.zenum.A8kResultUnit;
import a8k.service.dao.type.a8kidcard.A8kIdCardFn;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import org.slf4j.Logger;
import java.util.Date;
@ -19,8 +19,8 @@ public class A8kIdCardDataParser {
}
public A8kIdCardInfo parse() {
A8kIdCardInfo idCardInfo = new A8kIdCardInfo();
public A8kProjInfoCard parse() {
A8kProjInfoCard idCardInfo = new A8kProjInfoCard();
idCardInfo.projName = parseAsString("idcard.projectName ", 0x0001, 15);
idCardInfo.lotId = parseAsString("idcard.lotName ", 0x0010, 12);
idCardInfo.expiryDate = parseAsDate("idcard.expiryDate ", 0x001C);

6
src/main/java/a8k/utils/A8kProjCfg.java

@ -1,14 +1,14 @@
package a8k.utils;
import a8k.service.dao.type.A8kIdCardInfo;
import a8k.service.dao.type.A8kProjInfoCard;
import a8k.service.dao.type.ProjOptConfig;
import a8k.service.dao.type.A8kProjectInfo;
import java.util.List;
public class A8kProjCfg {
public A8kProjectInfo projectInfo;
public A8kIdCardInfo idCardInfo;
public A8kProjectInfo projectInfo;
public A8kProjInfoCard idCardInfo;
public List<ProjOptConfig> projOptConfigList;

Loading…
Cancel
Save