Browse Source

IFS 数值转换BUG

master
Rui_Li 8 months ago
parent
commit
5e2cd6c829
  1. 9
      src/main/java/com/spring/ifs/api/BomApi.java
  2. 6
      src/main/java/com/spring/ifs/bean/BaseSearchBeanTest.java
  3. 2
      src/main/java/com/spring/ifs/bean/BomServiceBean.java
  4. 20
      src/main/java/com/spring/ifs/utils/IfsConverterToMap.java

9
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"));

6
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;

2
src/main/java/com/spring/ifs/bean/BomServiceBean.java

@ -604,6 +604,8 @@ public class BomServiceBean {
try{
//查询数据
List<BomIfsItem> itemList = BomApi.getBomItems(srv, contract, partNo, engChgLevel, bomType, alternativeNo, null);
//打印数据
logger.info("Bom替代明细集合 批量删除原始数据:"+JSON.toJSONString(itemList));
//转Map
Map<String, BomIfsItem> itemMap = itemList.stream().collect(Collectors.toMap(BomIfsItem::getLineItemNo, Function.identity()));
//打印日志

20
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);

Loading…
Cancel
Save