From 8c247abaee56095c72a0b57d0771b8780bf075b5 Mon Sep 17 00:00:00 2001 From: yinq Date: Tue, 22 Apr 2025 08:57:41 +0800 Subject: [PATCH] =?UTF-8?q?update=20add=E6=9F=A5=E8=AF=A2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/KDocsApiController.java | 7 +- .../hw/tagApi/service/domain/ApiContent.java | 6 +- .../hw/tagApi/service/domain/HwTagRecord.java | 28 +++- .../service/mapper/HwTagRecordMapper.java | 8 ++ .../service/service/IHwTagRecordService.java | 11 ++ .../tagApi/service/service/IKDocsService.java | 24 ++-- .../service/impl/HwTagRecordServiceImpl.java | 20 +++ .../service/impl/KDocsServiceImpl.java | 132 +++++++++++++++--- .../mapper/service/HwTagRecordMapper.xml | 7 + 9 files changed, 199 insertions(+), 44 deletions(-) diff --git a/tagApi-service/src/main/java/hw/tagApi/service/controller/KDocsApiController.java b/tagApi-service/src/main/java/hw/tagApi/service/controller/KDocsApiController.java index 07b4f37..bf50a25 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/controller/KDocsApiController.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/controller/KDocsApiController.java @@ -22,7 +22,7 @@ import java.util.List; */ @RestController @RequestMapping("/docs") -public class KDocsApiController { +public class KDocsApiController extends BaseController { private static final Logger log = LoggerFactory.getLogger(KDocsApiController.class); @@ -70,14 +70,13 @@ public class KDocsApiController { return apiResponse; } log.info("开始查询数据: {}", content); - // TODO: 调用查询服务 + List queryResults = ikDocsService.queryDataList(content); + apiResponse.setResult(queryResults); return apiResponse; - case ApiConstants.DATA_EXPORT: // 数据导出 log.info("开始导出数据"); return apiResponse; - default: log.warn("未知的功能代码: {}", caseCode); return apiResponse; diff --git a/tagApi-service/src/main/java/hw/tagApi/service/domain/ApiContent.java b/tagApi-service/src/main/java/hw/tagApi/service/domain/ApiContent.java index 226c0e9..1093910 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/domain/ApiContent.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/domain/ApiContent.java @@ -13,17 +13,17 @@ public class ApiContent { /** 字段集合 */ @JsonProperty("fields") - private Map fields; + private Map fields; /** 记录ID */ @JsonProperty("id") private String id; - public Map getFields() { + public Map getFields() { return fields; } - public void setFields(Map fields) { + public void setFields(Map fields) { this.fields = fields; } diff --git a/tagApi-service/src/main/java/hw/tagApi/service/domain/HwTagRecord.java b/tagApi-service/src/main/java/hw/tagApi/service/domain/HwTagRecord.java index 4acdab4..4b9f961 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/domain/HwTagRecord.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/domain/HwTagRecord.java @@ -80,7 +80,33 @@ public class HwTagRecord extends BaseEntity // @Excel(name = "预留字段3") private String fields3; - public void setrId(Long rId) + /** + * 查询开始日期 + */ + private String startDate; + + /** + * 查询结束日期 + */ + private String endDate; + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public void setrId(Long rId) { this.rId = rId; } diff --git a/tagApi-service/src/main/java/hw/tagApi/service/mapper/HwTagRecordMapper.java b/tagApi-service/src/main/java/hw/tagApi/service/mapper/HwTagRecordMapper.java index ba4c1b0..3da9d62 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/mapper/HwTagRecordMapper.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/mapper/HwTagRecordMapper.java @@ -74,4 +74,12 @@ public interface HwTagRecordMapper * @return 结果 */ public int updateHwTagRecordByTID(HwTagRecord record); + + /** + * 根据TID查询标签记录 + * + * @param tId TID + */ + public HwTagRecord selectHwTagRecordByTxId(String tId); + } diff --git a/tagApi-service/src/main/java/hw/tagApi/service/service/IHwTagRecordService.java b/tagApi-service/src/main/java/hw/tagApi/service/service/IHwTagRecordService.java index d5942a9..1c346dd 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/service/IHwTagRecordService.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/service/IHwTagRecordService.java @@ -72,4 +72,15 @@ public interface IHwTagRecordService * @param batchList 标签记录列表 */ public void batchInsertHwTagRecord(List batchList); + + + public HwTagRecord selectHwTagRecordData(HwTagRecord selectTagRecord); + + /** + * 根据TID查询标签记录 + * + * @param tId TID + */ + public HwTagRecord selectHwTagRecordByTID(String tId); + } diff --git a/tagApi-service/src/main/java/hw/tagApi/service/service/IKDocsService.java b/tagApi-service/src/main/java/hw/tagApi/service/service/IKDocsService.java index d09cd62..9d21a25 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/service/IKDocsService.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/service/IKDocsService.java @@ -27,22 +27,6 @@ public interface IKDocsService { */ List importDataList(List content); - /** - * 删除数据 - * - * @param id 数据ID - * @return 删除结果 - */ - String deleteData(String id); - - /** - * 查询数据 - * - * @param query 查询条件 - * @return 查询结果 - */ - String queryData(String query); - /** * 导出数据 * @@ -50,4 +34,12 @@ public interface IKDocsService { * @return 导出结果 */ String exportData(String query); + + /** + * 查询数据 + * + * @param content 查询条件列表 + * @return 查询结果列表 + */ + List queryDataList(List content); } diff --git a/tagApi-service/src/main/java/hw/tagApi/service/service/impl/HwTagRecordServiceImpl.java b/tagApi-service/src/main/java/hw/tagApi/service/service/impl/HwTagRecordServiceImpl.java index d0cfb8f..0483364 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/service/impl/HwTagRecordServiceImpl.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/service/impl/HwTagRecordServiceImpl.java @@ -116,6 +116,26 @@ public class HwTagRecordServiceImpl implements IHwTagRecordService hwTagRecordMapper.batchInsertHwTagRecord(batchList); } + + @Override + public HwTagRecord selectHwTagRecordData(HwTagRecord selectTagRecord) { + List tagRecordList = hwTagRecordMapper.selectHwTagRecordList(selectTagRecord); + if (!tagRecordList.isEmpty()){ + return tagRecordList.get(0); + } + return null; + } + + /** + * 根据TID查询标签记录 + * + * @param tId TID + */ + @Override + public HwTagRecord selectHwTagRecordByTID(String tId) { + return hwTagRecordMapper.selectHwTagRecordByTxId(tId); + } + /** * 初始化hwTagRecord * @param hwTagRecord hwTagRecord diff --git a/tagApi-service/src/main/java/hw/tagApi/service/service/impl/KDocsServiceImpl.java b/tagApi-service/src/main/java/hw/tagApi/service/service/impl/KDocsServiceImpl.java index f4cea84..7e743c2 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/service/impl/KDocsServiceImpl.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/service/impl/KDocsServiceImpl.java @@ -78,7 +78,7 @@ public class KDocsServiceImpl implements IKDocsService { resContent.setFields(result.getFields()); } catch (Exception e) { log.error("导入任务执行失败: {}", e.getMessage(), e); - Map errorFields = new HashMap<>(); + Map errorFields = new HashMap<>(); errorFields.put(ApiConstants.IMPORT_STATUS, "系统错误"); errorFields.put(ApiConstants.DESCRIPTION, "导入任务执行失败: " + e.getMessage()); resContent.setFields(errorFields); @@ -102,7 +102,7 @@ public class KDocsServiceImpl implements IKDocsService { List resApiContentList = new ArrayList<>(); for (ApiContent apiContent : contentList) { // 创建初始响应 - Map resFields = new HashMap<>(); + Map resFields = new HashMap<>(); resFields.put(ApiConstants.IMPORT_STATUS, "导入中"); resFields.put(ApiConstants.DESCRIPTION, "后台处理中"); ApiContent responseContent = new ApiContent(); @@ -120,12 +120,12 @@ public class KDocsServiceImpl implements IKDocsService { * @return 处理后的ApiContent对象 */ public ApiContent importData(ApiContent apiContent) { - Map fields = apiContent.getFields(); - String importMode = fields.get("导入模式"); - String model = fields.getOrDefault("型号", ""); - String fileUrl = fields.get("文件链接"); + Map fields = apiContent.getFields(); + String importMode = String.valueOf(fields.get("导入模式")); + String model = String.valueOf(fields.getOrDefault("型号", "")); + String fileUrl = String.valueOf(fields.get("文件链接")); List batchList = new ArrayList<>(); - Map resFields = new HashMap<>(); + Map resFields = new HashMap<>(); apiContent.setFields(resFields); try { log.info("开始处理文件,URL: {}", fileUrl); @@ -160,6 +160,7 @@ public class KDocsServiceImpl implements IKDocsService { record.setBatchNumber(orderInfo.get("batchNo")); record.setOperatorId(orderInfo.get("operatorId")); record.setProcessingTime(sdf.parse(orderInfo.get("processTime"))); + record.setTotalQuantity(Long.valueOf(orderInfo.get("totalCount"))); // 设置标签数据 record.setModelCode(model); record.setTagSequence(tagData.get("序号")); @@ -176,8 +177,13 @@ public class KDocsServiceImpl implements IKDocsService { tagRecordService.updateHwTagRecordByTID(record); continue; } - // 添加到批处理列表 + //校验tId唯一 + HwTagRecord tagRecord = tagRecordService.selectHwTagRecordByTID(record.gettId()); + if (tagRecord != null) { + continue; + } record.setrId(IdGenerator.nextId()); + // 添加到批处理列表 batchList.add(record); if (batchList.size() >= BATCH_SIZE) { tagRecordService.batchInsertHwTagRecord(batchList); @@ -221,21 +227,107 @@ public class KDocsServiceImpl implements IKDocsService { } } - @Override - public String deleteData(String id) { - // TODO: 实现数据删除逻辑 - return getSystemStatus(); - } - - @Override - public String queryData(String query) { - // TODO: 实现数据查询逻辑 - return getSystemStatus(); - } - @Override public String exportData(String query) { // TODO: 实现数据导出逻辑 return getSystemStatus(); } + + /** + * 查询数据 + * + * @param content 查询条件列表 + * @return 查询结果列表 + */ + @Override + public List queryDataList(List content) { + List result = new ArrayList<>(); + if (content == null || content.isEmpty()) { + log.warn("查询条件列表为空"); + return result; + } + + log.info("开始处理查询请求,查询条件数量: {}", content.size()); + for (ApiContent query : content) { + String queryId = query.getId(); + log.info("处理查询条件 ID: {}, 查询参数: {}", queryId, query.getFields()); + + ApiContent response = new ApiContent(); + response.setId(queryId); + response.setFields(new HashMap<>()); + Map fields = query.getFields(); + HwTagRecord selectTagRecord = new HwTagRecord(); + + // 检查查询条件 + if (!fields.containsKey("TID") && !fields.containsKey("EPC")) { + log.warn("查询条件错误 - ID: {}, 缺少必要的查询参数(TID或EPC)", queryId); + response.getFields().put("搜索状态", "查询条件错误"); + response.getFields().put("情况说明", "查询条件必须包含TID或EPC"); + result.add(response); + continue; + } + + // 设置查询条件 + if (fields.containsKey("TID")) { + String tid = (String) fields.get("TID"); + selectTagRecord.settId(tid); + } + if (fields.containsKey("EPC")) { + String epc = (String) fields.get("EPC"); + selectTagRecord.setEpc(epc); + } + if (fields.containsKey("搜索日期起点")) { + String startDate = (String) fields.get("搜索日期起点"); + selectTagRecord.setStartDate(startDate); + } + if (fields.containsKey("搜索日期终点")) { + String endDate = (String) fields.get("搜索日期终点"); + selectTagRecord.setEndDate(endDate); + } + + // 执行查询 + log.info("执行数据库查询 - ID: {}", queryId); + long startTime = System.currentTimeMillis(); + HwTagRecord data = tagRecordService.selectHwTagRecordData(selectTagRecord); + long endTime = System.currentTimeMillis(); + log.info("数据库查询完成 - ID: {}, 耗时: {}ms", queryId, (endTime - startTime)); + + // 处理查询结果 + if (data != null) { + log.info("查询成功 - ID: {}, TID: {}, EPC: {}", queryId, data.gettId(), data.getEpc()); + // 查询成功 + response.getFields().put("搜索状态", "搜索成功"); + response.getFields().put("TID", data.gettId()); + response.getFields().put("EPC", data.getEpc()); + response.getFields().put("标签序号", data.getTagSequence()); + response.getFields().put("密码", data.getPassword() != null ? data.getPassword() : ""); + response.getFields().put("RID", data.getrId()); + response.getFields().put("LOT", data.getOrderCode()); + response.getFields().put("卷编号", data.getBatchNumber()); + response.getFields().put("本卷数量", data.getTotalQuantity() != null ? data.getTotalQuantity() : ""); + response.getFields().put("标签批次号", data.getTagBatch() != null ? data.getTagBatch() : ""); + response.getFields().put("型号", data.getModelCode() != null ? data.getModelCode() : ""); + response.getFields().put("加工时间", new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(data.getProcessingTime())); + response.getFields().put("生产人员编号", data.getOperatorId()); + log.debug("查询结果详情 - ID: {}, 结果: {}", queryId, response.getFields()); + } else { + log.info("未找到记录 - ID: {}", queryId); + // 未找到记录 + response.getFields().put("搜索状态", "未找到记录"); + if (fields.containsKey("搜索日期起点") && fields.containsKey("搜索日期终点")) { + String message = String.format("已遍历整个数据库,生产日期从%s到%s,未查询到该TID。", + fields.get("搜索日期起点"), fields.get("搜索日期终点")); + response.getFields().put("情况说明", message); + log.debug("未找到记录详情 - ID: {}, 日期范围: {} - {}", + queryId, fields.get("搜索日期起点"), fields.get("搜索日期终点")); + } else { + response.getFields().put("情况说明", "未找到匹配的记录"); + } + } + + result.add(response); + } + + return result; + } } diff --git a/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml b/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml index c112805..85c2205 100644 --- a/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml +++ b/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml @@ -49,6 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and fields_1 = #{fields1} and fields_2 = #{fields2} and fields_3 = #{fields3} + and DATE_FORMAT(processing_time, '%Y/%m/%d') >= #{startDate} + and #{endDate} >= DATE_FORMAT(processing_time, '%Y/%m/%d') @@ -57,6 +59,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where r_id = #{rId} + + insert into hw_tag_record