From f113e738340ac0722280274148910a95cc2a7701 Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Tue, 13 May 2025 19:17:27 +0800 Subject: [PATCH] =?UTF-8?q?BUG=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/spring/ifs/api/BaseSearchApi.java | 13 ++++++++++++- .../com/spring/ifs/api/BaseSearchApiTest.java | 17 +++++++++++++++-- .../com/spring/ifs/utils/IfsConverterToMap.java | 2 ++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/spring/ifs/api/BaseSearchApi.java b/src/main/java/com/spring/ifs/api/BaseSearchApi.java index abafd252..f35bd8ae 100644 --- a/src/main/java/com/spring/ifs/api/BaseSearchApi.java +++ b/src/main/java/com/spring/ifs/api/BaseSearchApi.java @@ -602,7 +602,18 @@ public class BaseSearchApi { tempItem.setLeadTimeCode(tempMap.get("LEAD_TIME_CODE")); tempItem.setManufLeadtime(tempMap.get("MANUF_LEADTIME")); tempItem.setExpectedLeadtime(tempMap.get("EXPECTED_LEADTIME")); - tempItem.setDurabilityDay(tempMap.get("DURABILITY_DAY")); + String durabilityDay = tempMap.get("DURABILITY_DAY"); + if (null == durabilityDay || "".equals(durabilityDay) || "NULL".equalsIgnoreCase(durabilityDay)){ + tempItem.setDurabilityDay("0"); + }else { + BigDecimal bigDecimal = new BigDecimal(durabilityDay); + // 去除尾部的零 + bigDecimal = bigDecimal.setScale(0, BigDecimal.ROUND_HALF_UP); + bigDecimal = bigDecimal.stripTrailingZeros(); + // 设置小数位数,最多保留 16 位有效数字 + String formatterValue = bigDecimal.toPlainString(); + tempItem.setDurabilityDay(formatterValue); + } tempItem.setCountryOfOrigin(tempMap.get("COUNTRY_OF_ORIGIN")); tempItem.setRegionOfOrigin(tempMap.get("REGION_OF_ORIGIN")); tempItem.setInventoryValuationMethod(tempMap.get("INVENTORY_VALUATION_METHOD")); diff --git a/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java b/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java index a48cc03d..0c6427d0 100644 --- a/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java +++ b/src/main/java/com/spring/ifs/api/BaseSearchApiTest.java @@ -511,7 +511,7 @@ public class BaseSearchApiTest { searchSql.append(" HAZARD_CODE, ACCOUNTING_GROUP, PART_PRODUCT_CODE, PART_PRODUCT_FAMILY, TYPE_DESIGNATION, DIM_QUALITY, CREATE_DATE,"); searchSql.append(" NOTE_TEXT, LEAD_TIME_CODE, PURCH_LEADTIME, MANUF_LEADTIME, EXPECTED_LEADTIME, DURABILITY_DAY, COUNTRY_OF_ORIGIN, REGION_OF_ORIGIN,"); searchSql.append(" SUPPLY_CODE, INVENTORY_VALUATION_METHOD, INVENTORY_PART_COST_LEVEL, INVOICE_CONSIDERATION, ZERO_COST_FLAG, PART_COST_GROUP_ID,"); - searchSql.append(" STD_NAME_ID"); + searchSql.append(" STD_NAME_ID, ENG_ATTRIBUTE"); searchSql.append(" FROM ifsapp.INVENTORY_PART"); searchSql.append(" WHERE OBJVERSION >:ifsRowVersion"); @@ -522,6 +522,7 @@ public class BaseSearchApiTest { searchSql.append(" ORDER BY OBJVERSION ASC"); //添加分页的查询语句 searchSql.append(" OFFSET "+startIndex+" ROWS FETCH NEXT "+pageSize+" ROWS ONLY"); + logger.info("库存件查询语句sql"+searchSql.toString()); //调用查询的通用方法 RecordCollection recordCollection = IfsPlsqlUtils.execSqlSearchGetRecordCollection(srv, searchSql, inParam); //判断能否返回 @@ -561,7 +562,18 @@ public class BaseSearchApiTest { tempItem.setLeadTimeCode(tempMap.get("LEAD_TIME_CODE")); tempItem.setManufLeadtime(tempMap.get("MANUF_LEADTIME")); tempItem.setExpectedLeadtime(tempMap.get("EXPECTED_LEADTIME")); - tempItem.setDurabilityDay(tempMap.get("DURABILITY_DAY")); + String durabilityDay = tempMap.get("DURABILITY_DAY"); + if (null == durabilityDay || "".equals(durabilityDay) || "NULL".equalsIgnoreCase(durabilityDay)){ + tempItem.setDurabilityDay("0"); + }else { + BigDecimal bigDecimal = new BigDecimal(durabilityDay); + // 去除尾部的零 + bigDecimal = bigDecimal.setScale(0, BigDecimal.ROUND_HALF_UP); + bigDecimal = bigDecimal.stripTrailingZeros(); + // 设置小数位数,最多保留 16 位有效数字 + String formatterValue = bigDecimal.toPlainString(); + tempItem.setDurabilityDay(formatterValue); + } tempItem.setCountryOfOrigin(tempMap.get("COUNTRY_OF_ORIGIN")); tempItem.setRegionOfOrigin(tempMap.get("REGION_OF_ORIGIN")); tempItem.setInventoryValuationMethod(tempMap.get("INVENTORY_VALUATION_METHOD")); @@ -569,6 +581,7 @@ public class BaseSearchApiTest { tempItem.setInvoiceConsideration(tempMap.get("INVOICE_CONSIDERATION")); tempItem.setZeroCostFlag(tempMap.get("ZERO_COST_FLAG")); tempItem.setPartCostGroupId(tempMap.get("PART_COST_GROUP_ID")); + tempItem.setEngAttribute(tempMap.get("ENG_ATTRIBUTE")); String createdDate = tempMap.get("CREATE_DATE"); if (!(null == createdDate || "".equals(createdDate))){ tempItem.setCreatedDate(DateUtils.getStringToDate(createdDate, "yyyy-MM-dd HH:mm:ss")); diff --git a/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java b/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java index 236d6a49..573d4c07 100644 --- a/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java +++ b/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java @@ -126,6 +126,8 @@ public class IfsConverterToMap { resultMap.put(key, objValue.toString()); } else if (objValue instanceof Integer) { BigDecimal bigDecimal = new BigDecimal((Integer) objValue); + // 去除尾部的零 + bigDecimal = bigDecimal.stripTrailingZeros(); // 设置小数位数,最多保留 16 位有效数字 String formatterValue = bigDecimal.toPlainString(); resultMap.put(key, formatterValue);