Browse Source

界面上的高度对应的标签Height,如果料号带尾缀widh取尾缀,不带尾缀也不是kg的,width取批次最后一段,length=数量除以width再乘以1000

master
han\hanst 3 months ago
parent
commit
5716d46783
  1. 44
      src/main/java/com/gaotao/modules/production/service/impl/ProductionInboundServiceImpl.java
  2. 45
      src/main/java/com/gaotao/modules/salesreturn/service/impl/SalesReturnServiceImpl.java

44
src/main/java/com/gaotao/modules/production/service/impl/ProductionInboundServiceImpl.java

@ -818,7 +818,49 @@ public class ProductionInboundServiceImpl implements ProductionInboundService {
if (dto.getHeight() != null && dto.getHeight() > 0) {
handlingUnit.setHeight(BigDecimal.valueOf(dto.getHeight()));
}
// width 和length是根据料号判断的如果料号带尾缀比如70001234-0250
// 那么width就是250如果不带尾缀且单位不是kgwidth就是1000
String partNo = inData.getPartNo();
if (partNo != null && partNo.contains("-")) {
String[] parts = partNo.split("-");
String suffix = parts[parts.length - 1];
try {
int widthVal = Integer.parseInt(suffix);
handlingUnit.setWidth(BigDecimal.valueOf(widthVal));
} catch (NumberFormatException e) {
handlingUnit.setWidth(null);
}
} else {
// 不带尾缀的料号
if (dto.getUom() != null && !dto.getUom().equalsIgnoreCase("KG") &&
!dto.getUom().equalsIgnoreCase("kg")) {
// 从batchNo的最后一段获取width例如1347654-1-4-3-500 -> 500
String batchNo = inData.getBatchNo();
if (batchNo != null && batchNo.contains("-")) {
String[] batchParts = batchNo.split("-");
String lastPart = batchParts[batchParts.length - 1];
try {
int widthVal = Integer.parseInt(lastPart);
handlingUnit.setWidth(BigDecimal.valueOf(widthVal));
} catch (NumberFormatException e) {
handlingUnit.setWidth(BigDecimal.valueOf(1000)); // 解析失败时默认1000
}
} else {
handlingUnit.setWidth(BigDecimal.valueOf(1000)); // 没有批次号时默认1000
}
} else {
handlingUnit.setWidth(null);
}
}
// length就是数量除以width再乘以1000
if (handlingUnit.getWidth() != null && handlingUnit.getWidth().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal length = handlingUnit.getQty()
.divide(handlingUnit.getWidth(), 6, RoundingMode.HALF_UP)
.multiply(BigDecimal.valueOf(1000));
handlingUnit.setLength(length);
} else {
handlingUnit.setLength(null);
}
// 保存HandlingUnit主记录并检查返回值
boolean saveResult = handlingUnitService.save(handlingUnit);
if (!saveResult) {

45
src/main/java/com/gaotao/modules/salesreturn/service/impl/SalesReturnServiceImpl.java

@ -353,6 +353,51 @@ public class SalesReturnServiceImpl implements SalesReturnService {
handlingUnit.setHeight(BigDecimal.valueOf(dto.getHeight()));
}
handlingUnit.setExpiredDate(dto.getExpiryDate()!=null ? dto.getExpiryDate() : null);
// width 和length是根据料号判断的如果料号带尾缀比如70001234-0250
// 那么width就是250如果不带尾缀且单位不是kgwidth就是1000
String partNo = inData.getPartNo();
if (partNo != null && partNo.contains("-")) {
String[] parts = partNo.split("-");
String suffix = parts[parts.length - 1];
try {
int widthVal = Integer.parseInt(suffix);
handlingUnit.setWidth(BigDecimal.valueOf(widthVal));
} catch (NumberFormatException e) {
handlingUnit.setWidth(null);
}
} else {
// 不带尾缀的料号
if (dto.getInvUOM() != null && !dto.getInvUOM().equalsIgnoreCase("KG") &&
!dto.getInvUOM().equalsIgnoreCase("kg")) {
// 从batchNo的最后一段获取width例如1347654-1-4-3-500 -> 500
String batchNo = inData.getBatchNo();
if (batchNo != null && batchNo.contains("-")) {
String[] batchParts = batchNo.split("-");
String lastPart = batchParts[batchParts.length - 1];
try {
int widthVal = Integer.parseInt(lastPart);
handlingUnit.setWidth(BigDecimal.valueOf(widthVal));
} catch (NumberFormatException e) {
handlingUnit.setWidth(BigDecimal.valueOf(1000)); // 解析失败时默认1000
}
} else {
handlingUnit.setWidth(BigDecimal.valueOf(1000)); // 没有批次号时默认1000
}
} else {
handlingUnit.setWidth(null);
}
}
// length就是数量除以width再乘以1000
if (handlingUnit.getWidth() != null && handlingUnit.getWidth().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal length = handlingUnit.getQty()
.divide(handlingUnit.getWidth(), 6, RoundingMode.HALF_UP)
.multiply(BigDecimal.valueOf(1000));
handlingUnit.setLength(length);
} else {
handlingUnit.setLength(null);
}
// 保存HandlingUnit主记录并检查返回值
boolean saveResult = handlingUnitService.save(handlingUnit);
if (!saveResult) {

Loading…
Cancel
Save