From 5e2cd6c829092bc773b5757a02b2dba6209fe8a0 Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Tue, 20 May 2025 16:12:24 +0800 Subject: [PATCH] =?UTF-8?q?IFS=20=E6=95=B0=E5=80=BC=E8=BD=AC=E6=8D=A2BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/spring/ifs/api/BomApi.java | 9 ++++++++- .../spring/ifs/bean/BaseSearchBeanTest.java | 6 ------ .../com/spring/ifs/bean/BomServiceBean.java | 2 ++ .../spring/ifs/utils/IfsConverterToMap.java | 20 +++++++++---------- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/spring/ifs/api/BomApi.java b/src/main/java/com/spring/ifs/api/BomApi.java index a57014ef..bebdba5e 100644 --- a/src/main/java/com/spring/ifs/api/BomApi.java +++ b/src/main/java/com/spring/ifs/api/BomApi.java @@ -10,6 +10,7 @@ import com.spring.modules.part.entity.APIEntity.BomIfsItem; import com.spring.modules.part.entity.APIEntity.BomIfsManufStructCostDistrib; import ifs.fnd.ap.*; +import java.math.BigDecimal; import java.util.*; /** @@ -511,7 +512,13 @@ public class BomApi { tempItem.setEngChgLevel(tempMap.get("ENG_CHG_LEVEL")); tempItem.setBomType(tempMap.get("BOM_TYPE")); tempItem.setAlternativeNo(tempMap.get("ALTERNATIVE_NO")); - tempItem.setLineItemNo(tempMap.get("LINE_ITEM_NO")); + + BigDecimal itemValue = new BigDecimal(tempMap.get("LINE_ITEM_NO")); + itemValue = itemValue.setScale(0, BigDecimal.ROUND_HALF_UP); + itemValue = itemValue.stripTrailingZeros(); + String formatterValue = itemValue.toPlainString(); + tempItem.setLineItemNo(formatterValue); + tempItem.setLineSequence(tempMap.get("LINE_SEQUENCE")); tempItem.setComponentPart(tempMap.get("COMPONENT_PART")); tempItem.setQtyPerAssembly(tempMap.get("QTY_PER_ASSEMBLY")); diff --git a/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java b/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java index 7d2d2088..90fe52f0 100644 --- a/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java +++ b/src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java @@ -1,20 +1,14 @@ package com.spring.ifs.bean; -import com.spring.common.utils.DateUtils; import com.spring.ifs.api.BaseSearchApi; import com.spring.ifs.api.BaseSearchApiTest; import com.spring.ifs.api.IfsServer; import com.spring.ifs.api.TechnicalClassApi; import com.spring.ifs.data.*; -import com.spring.ifs.utils.IfsConverterToMap; -import com.spring.ifs.utils.IfsPlsqlUtils; import com.spring.modules.base.entity.WorkCenterCost; import com.spring.modules.base.vo.PersonnelLevelVo; import com.spring.modules.part.entity.APIEntity.PartIfsInventory; -import com.spring.modules.part.entity.PartInformationEntity; -import com.spring.modules.part.vo.InventoryPartUnitCostSumVo; import ifs.fnd.ap.APException; -import ifs.fnd.ap.RecordCollection; import ifs.fnd.ap.Server; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/spring/ifs/bean/BomServiceBean.java b/src/main/java/com/spring/ifs/bean/BomServiceBean.java index 58191da9..d194f8ec 100644 --- a/src/main/java/com/spring/ifs/bean/BomServiceBean.java +++ b/src/main/java/com/spring/ifs/bean/BomServiceBean.java @@ -604,6 +604,8 @@ public class BomServiceBean { try{ //查询数据 List itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null); + //打印数据 + logger.info("Bom替代明细集合 批量删除原始数据:"+JSON.toJSONString(itemList)); //转Map Map itemMap = itemList.stream().collect(Collectors.toMap(BomIfsItem::getLineItemNo, Function.identity())); //打印日志 diff --git a/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java b/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java index 573d4c07..7c7c78b5 100644 --- a/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java +++ b/src/main/java/com/spring/ifs/utils/IfsConverterToMap.java @@ -45,13 +45,15 @@ public class IfsConverterToMap { } else if (dataType == DataType.FLOAT) { //区分数据的类型 if (objValue instanceof Float) { - BigDecimal bigDecimal = new BigDecimal((Double) objValue); - // 去除尾部的零 + BigDecimal bigDecimal = new BigDecimal(objValue.toString()); bigDecimal = bigDecimal.stripTrailingZeros(); String formatterValue = bigDecimal.toPlainString(); tempMap.put(key, formatterValue); } else if (objValue instanceof Double) { - tempMap.put(key, objValue.toString()); + BigDecimal bigDecimal = new BigDecimal(objValue.toString()); + bigDecimal = bigDecimal.stripTrailingZeros(); + String formatterValue = bigDecimal.toPlainString(); + tempMap.put(key, formatterValue); } else if (objValue instanceof Integer) { BigDecimal bigDecimal = new BigDecimal((Integer) objValue); // 设置小数位数,最多保留 16 位有效数字 @@ -115,19 +117,17 @@ public class IfsConverterToMap { } else if (dataType == DataType.FLOAT) { //区分数据的类型 if (objValue instanceof Float) { - BigDecimal bigDecimal = new BigDecimal((Double) objValue); - // 设置小数位数,最多保留 16 位有效数字 - bigDecimal = bigDecimal.setScale(16, BigDecimal.ROUND_HALF_UP); - // 去除尾部的零 + BigDecimal bigDecimal = new BigDecimal(objValue.toString()); bigDecimal = bigDecimal.stripTrailingZeros(); String formatterValue = bigDecimal.toPlainString(); resultMap.put(key, formatterValue); } else if (objValue instanceof Double) { - resultMap.put(key, objValue.toString()); + BigDecimal bigDecimal = new BigDecimal(objValue.toString()); + bigDecimal = bigDecimal.stripTrailingZeros(); + String formatterValue = bigDecimal.toPlainString(); + resultMap.put(key, formatterValue); } else if (objValue instanceof Integer) { BigDecimal bigDecimal = new BigDecimal((Integer) objValue); - // 去除尾部的零 - bigDecimal = bigDecimal.stripTrailingZeros(); // 设置小数位数,最多保留 16 位有效数字 String formatterValue = bigDecimal.toPlainString(); resultMap.put(key, formatterValue);