From 9e65ae456b79b0174c9747bfd4674f8cdbd34af2 Mon Sep 17 00:00:00 2001 From: yinq Date: Tue, 29 Apr 2025 15:16:06 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E6=9F=A5=E6=94=B9?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/KDocsApiController.java | 10 + .../hw/tagApi/service/domain/HwTagRecord.java | 5 + .../tagApi/service/service/IKDocsService.java | 8 + .../service/impl/KDocsServiceImpl.java | 196 +++++++++++++++++- .../tagApi/service/utils/httpClientUtils.java | 1 - .../mapper/service/HwTagRecordMapper.xml | 6 + 6 files changed, 216 insertions(+), 10 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 cae2931..37ea16e 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 @@ -119,6 +119,16 @@ public class KDocsApiController extends BaseController { List exportResults = ikDocsService.exportDataList(content); apiResponse.setResult(exportResults); return apiResponse; + case ApiConstants.DATA_CHECK_REVISE: + // 数据查改 + if (content == null || content.isEmpty()) { + log.warn("查改条件为空"); + return apiResponse; + } + log.info("开始查改数据: {}", content); + List checkReviseResults = ikDocsService.checkReviseDataList(content); + apiResponse.setResult(checkReviseResults); + return apiResponse; default: log.warn("未知的功能代码: {}", caseCode); return apiResponse; 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 e45bd8b..0875588 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 @@ -215,6 +215,11 @@ public class HwTagRecord extends BaseEntity { */ private List batchNumberList; + /** + * 标签序号List + */ + private List tagSequenceList; + @Override public String toString() { return "HwTagRecord{" + 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 44ef34b..9ee6524 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 @@ -43,4 +43,12 @@ public interface IKDocsService { * @return 处理结果 */ List fastImportDataList(List content); + + /** + * 查改数据 + * + * @param content 查改条件列表 + * @return 查改结果列表 + */ + List checkReviseDataList(List content); } 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 aa9fdcd..e006e34 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 @@ -19,6 +19,7 @@ import hw.tagApi.service.domain.HwTagRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import hw.tagApi.service.domain.ApiContent; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -167,14 +168,7 @@ public class KDocsServiceImpl implements IKDocsService { // 处理查询结果 if (data != null) { - log.info("查询成功 - ID: {}, TID: {}, EPC: {}", queryId, data.getTId(), data.getEpc()); - // 查询成功 - if (data.getQueryResultsNumber() > 1) { - response.getFields().put(ApiConstants.SELECT_STATUS, "系统错误"); - response.getFields().put(ApiConstants.DESCRIPTION, "存在多个记录,请使用数据导出功能"); - } else { - response.getFields().put(ApiConstants.SELECT_STATUS, "搜索成功"); - } + response.getFields().put("TID", data.getTId()); response.getFields().put("EPC", data.getEpc()); response.getFields().put("标签序号", data.getTagSequence()); @@ -298,7 +292,7 @@ public class KDocsServiceImpl implements IKDocsService { if (StringUtils.hasText(batchNumber) && !batchNumber.contains("-")) { queryCondition.setBatchNumber(batchNumber); } else if (StringUtils.hasText(batchNumber) && batchNumber.contains("-")) { - List batchNumberList = TagExcelUtil.splitHorizontalBarString(batchNumber); + List batchNumberList = TagExcelUtil.splitHorizontalBarString(batchNumber, false); queryCondition.setBatchNumberList(batchNumberList); } // 执行查询 @@ -398,5 +392,189 @@ public class KDocsServiceImpl implements IKDocsService { return resList; } + /** + * 查改数据 + * + * @param content 查改条件列表 + * @return 查改结果列表 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List checkReviseDataList(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(); + + // 获取更新字段 + String upPassword = String.valueOf(fields.getOrDefault("改-密码", "")); + String upOrderCode = String.valueOf(fields.getOrDefault("改-LOT", "")); + String upTagBatch = String.valueOf(fields.getOrDefault("改-标签批次号", "")); + String upModelCode = String.valueOf(fields.getOrDefault("改-型号", "")); + String upDestinationInfo = String.valueOf(fields.getOrDefault("改-去向信息", "")); + String upLibraryFlag = String.valueOf(fields.getOrDefault("改-是否在库", "")); + String upIntendedUse = String.valueOf(fields.getOrDefault("改-计划用途", "")); + String upRemark = String.valueOf(fields.getOrDefault("改-备注", "")); + String upBatchNumber = String.valueOf(fields.getOrDefault("改-卷编号", "")); + + // 设置查询条件 + if (fields.containsKey("TID")) { + String tid = (String) fields.get("TID"); + selectTagRecord.setSelectTID(tid); + } + if (fields.containsKey("EPC")) { + String epc = (String) fields.get("EPC"); + selectTagRecord.setSelectEPC(epc); + } + if (fields.containsKey("密码")) { + String password = (String) fields.get("密码"); + selectTagRecord.setPassword(password); + } + if (fields.containsKey("LOT")) { + String orderCode = (String) fields.get("LOT"); + selectTagRecord.setOrderCode(orderCode); + } + if (fields.containsKey("标签批次号")) { + String tagBatch = (String) fields.get("标签批次号"); + selectTagRecord.setTagBatch(tagBatch); + } + if (fields.containsKey("型号")) { + String modelCode = (String) fields.get("型号"); + selectTagRecord.setModelCode(modelCode); + } + if (fields.containsKey("筛选日期起点")) { + String startDate = (String) fields.get("筛选日期起点"); + selectTagRecord.setStartDate(startDate); + } + if (fields.containsKey("筛选日期终点")) { + String endDate = (String) fields.get("筛选日期终点"); + selectTagRecord.setEndDate(endDate); + } + if (fields.containsKey("去向信息")) { + String destinationInfo = (String) fields.get("去向信息"); + selectTagRecord.setDestinationInfo(destinationInfo); + } + if (fields.containsKey("是否在库")) { + String libraryFlag = (String) fields.get("是否在库"); + selectTagRecord.setLibraryFlag(libraryFlag); + } + if (fields.containsKey("计划用途")) { + String intendedUse = (String) fields.get("计划用途"); + selectTagRecord.setIntendedUse(intendedUse); + } + if (fields.containsKey("备注")) { + String remark = (String) fields.get("备注"); + selectTagRecord.setRemark(remark); + } + if (fields.containsKey("卷编号")) { + String batchNumber = (String) fields.get("卷编号"); + if (StringUtils.hasText(batchNumber) && !batchNumber.contains("-")) { + selectTagRecord.setBatchNumber(batchNumber); + log.info("设置查询条件 - 卷编号: {}", batchNumber); + } else if (StringUtils.hasText(batchNumber) && batchNumber.contains("-")) { + List batchNumberList = TagExcelUtil.splitHorizontalBarString(batchNumber, false); + selectTagRecord.setBatchNumberList(batchNumberList); + log.info("设置查询条件 - 卷编号范围: {}", batchNumberList); + } + } + if (fields.containsKey("标签序号")) { + String tagSequence = (String) fields.get("标签序号"); + if (StringUtils.hasText(tagSequence) && !tagSequence.contains("-")) { + selectTagRecord.setTagSequence(tagSequence); + log.info("设置查询条件 - 标签序号: {}", tagSequence); + } else if (StringUtils.hasText(tagSequence) && tagSequence.contains("-")) { + List tagSequenceList = TagExcelUtil.splitHorizontalBarString(tagSequence, true); + selectTagRecord.setTagSequenceList(tagSequenceList); + log.info("设置查询条件 - 标签序号范围: {}", tagSequenceList); + } + } + + // 执行查询 + log.info("执行数据库查询 - ID: {}", queryId); + long startTime = System.currentTimeMillis(); + List tagRecordList = tagRecordService.selectHwTagRecordList(selectTagRecord); + int tagRecordListSize = tagRecordList.size(); + long endTime = System.currentTimeMillis(); + log.info("数据库查询完成 - ID: {}, 耗时: {}ms, 查询到记录数: {}", queryId, (endTime - startTime), tagRecordListSize); + + // 处理查询结果 + int successCount = 0; + int failCount = 0; + List errorMessages = new ArrayList<>(); + Map responseFields = new HashMap<>(); + + for (HwTagRecord tagRecord : tagRecordList) { + try { + if (StringUtils.hasText(upPassword)) { + tagRecord.setPassword(upPassword); + } + if (StringUtils.hasText(upOrderCode)) { + tagRecord.setOrderCode(upOrderCode); + } + if (StringUtils.hasText(upBatchNumber)) { + tagRecord.setBatchNumber(upBatchNumber); + } + if (StringUtils.hasText(upTagBatch)) { + tagRecord.setTagBatch(upTagBatch); + } + if (StringUtils.hasText(upModelCode)) { + tagRecord.setModelCode(upModelCode); + } + if (StringUtils.hasText(upDestinationInfo)) { + tagRecord.setDestinationInfo(upDestinationInfo); + } + if (StringUtils.hasText(upLibraryFlag)) { + tagRecord.setLibraryFlag(upLibraryFlag); + } + if (StringUtils.hasText(upIntendedUse)) { + tagRecord.setIntendedUse(upIntendedUse); + } + if (StringUtils.hasText(upRemark)) { + tagRecord.setRemark(upRemark); + } + if (StringUtils.hasText(upBatchNumber)) { + tagRecord.setBatchNumber(upBatchNumber); + } + tagRecordService.updateHwTagRecordByTID(tagRecord); + successCount++; + log.info("更新成功 - TID: {}", tagRecord.getTId()); + } catch (Exception e) { + failCount++; + String errorMsg = String.format("更新失败 - TID: %s, 错误: %s", tagRecord.getTId(), e.getMessage()); + errorMessages.add(errorMsg); + + log.error(errorMsg, e); + } + } + + // 设置响应结果 + if (!errorMessages.isEmpty()) { + responseFields.put(ApiConstants.CHECK_STATUS, "查改失败"); + responseFields.put(ApiConstants.DESCRIPTION, errorMessages); + responseFields.put("查改记录数", tagRecordListSize); + } else { + responseFields.put(ApiConstants.CHECK_STATUS, "查改成功"); + responseFields.put(ApiConstants.DESCRIPTION, ""); + responseFields.put("查改记录数", tagRecordListSize); + } + response.setFields(responseFields); + log.info("查改处理完成 - ID: {}, 成功: {}, 失败: {}", queryId, successCount, failCount); + result.add(response); + } + return result; + } + } diff --git a/tagApi-service/src/main/java/hw/tagApi/service/utils/httpClientUtils.java b/tagApi-service/src/main/java/hw/tagApi/service/utils/httpClientUtils.java index c222afe..c651002 100644 --- a/tagApi-service/src/main/java/hw/tagApi/service/utils/httpClientUtils.java +++ b/tagApi-service/src/main/java/hw/tagApi/service/utils/httpClientUtils.java @@ -1,6 +1,5 @@ package hw.tagApi.service.utils; -import hw.tagApi.service.constant.ApiConstants; import hw.tagApi.service.domain.ApiContent; import hw.tagApi.service.domain.ApiResponse; import org.apache.http.HttpEntity; diff --git a/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml b/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml index 3007c23..91fc3fe 100644 --- a/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml +++ b/tagApi-service/src/main/resources/mapper/service/HwTagRecordMapper.xml @@ -105,6 +105,12 @@ #{item} + + AND tag_sequence IN + + #{item} + +