Browse Source

update

tags/v0
zhaohe 7 months ago
parent
commit
c0afd4ccab
  1. 4
      src/main/java/a8k/app/a8kproj/optalgo/type/OptScanResult.java
  2. 21
      src/main/java/a8k/app/dao/db/type/ReactionReport.java
  3. 20
      src/main/java/a8k/app/service/data/FileMgrService.java
  4. 4
      src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java
  5. 15
      src/main/java/a8k/extui/page/extsetting/db/ReactionRecordMgrDebugPage.java
  6. BIN
      tools/20250120光学光学报告.xlsx

4
src/main/java/a8k/app/a8kproj/optalgo/type/OptScanResult.java

@ -1,6 +1,7 @@
package a8k.app.a8kproj.optalgo.type;
import a8k.app.dao.db.type.OptRawScanData;
import a8k.app.utils.ZJsonHelper;
import java.util.Date;
@ -8,4 +9,7 @@ public class OptScanResult {
public Date scanDate;
public OptRawScanData rawData;
public OptAlgoAnalysResult analysResult;
public String toString() {
return ZJsonHelper.objectToJson(this);
}
}

21
src/main/java/a8k/app/dao/db/type/ReactionReport.java

@ -3,6 +3,7 @@ package a8k.app.dao.db.type;
import a8k.app.a8kproj.optalgo.type.OptScanResult;
import a8k.app.a8ktype.type.ReactionResult;
import a8k.app.a8ktype.device.BloodType;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.utils.ProjInfo;
import a8k.app.utils.ZDateUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
@ -87,4 +88,24 @@ public class ReactionReport implements Serializable { //记录单个反应板的
@Schema(description = "扫描结果")
@JsonIgnore
public List<OptScanResult> detailOptData = new ArrayList<>();// 扫描上下文数据(包含原始结果扫描参数扫描原始数据)
public OptScanResult getOptData(int subProjIndex) {
A8kOptType subProjOptType = getSubProjOptType(subProjIndex);
for (OptScanResult optScanResult : detailOptData) {
if (optScanResult.rawData.optType == subProjOptType) {
return optScanResult;
}
}
return null;
}
public A8kOptType getSubProjOptType(int subProjIndex) {
return projInfo.buildIn.optcfg.get(subProjIndex).optType;
}
public String getSubProjName(int subProjIndex) {
return projInfo.buildIn.optcfg.get(subProjIndex).subProjName;
}
}

20
src/main/java/a8k/app/service/data/FileMgrService.java

@ -51,15 +51,19 @@ public class FileMgrService {
}
public String storageOptReport(String projName, Integer projId, OptScanResult optScanResult) throws IOException {
return storageOptReport("NotSet", projName, projId, "NotSet", optScanResult, "NotSet");
}
public String storageOptReport(String userid, String projName, Integer projId, String subprojName, OptScanResult optScanResult, String result) throws IOException {
File dir = new File(FilePathConstant.FILE_OPT_REPORT_PATH);
dir.mkdir();
String fileName = String.format("%s(%s)-%s-%s.txt", projName, projId, optScanResult.rawData.optType, ZDateUtils.toID(optScanResult.scanDate));
String fileName = String.format("%s-(%s)-%s-%s.txt", userid, projName, projId, optScanResult.rawData.optType, ZDateUtils.toID(optScanResult.scanDate));
String filePath = String.format("%s/%s", FilePathConstant.FILE_OPT_REPORT_PATH, fileName);
File file = new File(filePath);
FileWriter writer = new FileWriter(file.getAbsolutePath());
String content = createOptReportContent(projName, projId, optScanResult);
String content = createOptReportContent(userid, projName, projId, subprojName, optScanResult, result);
writer.write(content);
writer.close();
@ -71,21 +75,29 @@ public class FileMgrService {
//
private String createOptReportContent(String projName, Integer projId, OptScanResult optScanResult) {
private String createOptReportContent(String userid, String projName, Integer projId, String subprojName, OptScanResult optScanResult, String result) {
StringBuilder sb = new StringBuilder();
sb.append("Date").append("\n");
sb.append(ZDateUtils.toDateString(optScanResult.scanDate)).append("\n");
sb.append("userId").append("\n");
sb.append(userid).append("\n");
sb.append("ProjName").append("\n");
sb.append(projName).append("\n");
sb.append("ProjId").append("\n");
sb.append(projId).append("\n");
sb.append("SubProjName").append("\n");
sb.append(subprojName).append("\n");
sb.append("OptType").append("\n");
sb.append(optScanResult.rawData.optType).append("\n");
sb.append("lasterGain").append("\n");
sb.append(optScanResult.rawData.lasterGain).append("\n");
sb.append("scanerGain").append("\n");
sb.append(optScanResult.rawData.scanGain).append("\n");
sb.append("Result").append("\n");
sb.append(result).append("\n");
sb.append("\n");
sb.append("\n");
sb.append("\n");
sb.append("\n");
sb.append("T4").append("\n");

4
src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java

@ -83,6 +83,10 @@ public class ProjIdCardInfoMgrService {
}
public ProjExtInfoCard getByLotId(String lotId) {
var mountedProjInfoCard = getMountedProjInfoCard();
if (mountedProjInfoCard != null && mountedProjInfoCard.lotId.equals(lotId)) {
return mountedProjInfoCard;
}
return a8KProjExtInfoCardDao.getByLotId(lotId);
}

15
src/main/java/a8k/extui/page/extsetting/db/ReactionRecordMgrDebugPage.java

@ -1,6 +1,7 @@
package a8k.extui.page.extsetting.db;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.opttype.ReactionResultStatus;
import a8k.app.controler.filemgr.StorageControler;
import a8k.app.dao.db.type.ReactionReport;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
@ -59,8 +60,18 @@ public class ReactionRecordMgrDebugPage {
if (report.detailOptData.isEmpty()) {
throw AppException.ofSimplePrompt("没有光学数据");
}
for (var optData : report.detailOptData) {
tasks.urls.add(fileMgrService.storageOptReport(report.projName, report.projId, optData));
int offset = 0;
for (var result : report.results) {
// public String storageOptReport(String userid, String projName, Integer projId, String subprojName, OptScanResult optScanResult, String result) throws IOException {
tasks.urls.add(fileMgrService.storageOptReport(
report.getSampleUserid(),
report.getProjName(),
report.getProjId(),
result.subProjName,
report.getOptData(offset),
result.status.equals(ReactionResultStatus.SUCCESS) ? String.format("%.2f %s", result.result, result.resultConverters.get(0).uintstr) : "ERROR"
));
offset++;
}
return tasks;
}

BIN
tools/20250120光学光学报告.xlsx

Loading…
Cancel
Save