From 6be49dc2a186be9444f5c99ef1a0b1c77d5e03ca Mon Sep 17 00:00:00 2001 From: "15881625488@163.com" <15881625488@163.com> Date: Fri, 3 Apr 2026 10:58:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:[=E8=B5=84=E6=BA=90=E5=BA=93]=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hxhq/business/domain/GyzjFfjl.java | 34 ++++++ .../java/com/hxhq/business/domain/MjyFfjl.java | 45 ++++++++ .../business/service/impl/GyzjFfjlServiceImpl.java | 14 +++ .../business/service/impl/MjyFfjlServiceImpl.java | 19 ++++ .../java/com/hxhq/business/utils/UnitTools.java | 116 ++++++++++++--------- 5 files changed, 177 insertions(+), 51 deletions(-) diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/GyzjFfjl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/GyzjFfjl.java index b34ab33..897a87e 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/GyzjFfjl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/GyzjFfjl.java @@ -1,5 +1,6 @@ package com.hxhq.business.domain; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.TableName; @@ -54,6 +55,9 @@ public class GyzjFfjl extends MpBaseEntity /** 出库量 */ private String ckl; + /** 出库量 */ + private BigDecimal basicCkl; + /** 出库量单位 */ private String ckldw; @@ -115,6 +119,9 @@ public class GyzjFfjl extends MpBaseEntity /** 入库量 */ private String rkl; + /** 入库量 */ + private BigDecimal basicRkl; + /** 入库单位 */ private String rkldw; @@ -127,6 +134,9 @@ public class GyzjFfjl extends MpBaseEntity /** 使用量 */ private String syl; + /** 使用量 */ + private BigDecimal basicSyl; + /** 使用量单位 */ private String syldw; @@ -178,6 +188,30 @@ public class GyzjFfjl extends MpBaseEntity @JsonFormat(pattern = "yyyy-MM-dd") private Date jyjsrq; + public BigDecimal getBasicCkl() { + return basicCkl; + } + + public void setBasicCkl(BigDecimal basicCkl) { + this.basicCkl = basicCkl; + } + + public BigDecimal getBasicRkl() { + return basicRkl; + } + + public void setBasicRkl(BigDecimal basicRkl) { + this.basicRkl = basicRkl; + } + + public BigDecimal getBasicSyl() { + return basicSyl; + } + + public void setBasicSyl(BigDecimal basicSyl) { + this.basicSyl = basicSyl; + } + public Integer getDazt() { return dazt; } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java index 0ff73aa..0b6bceb 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/domain/MjyFfjl.java @@ -1,5 +1,6 @@ package com.hxhq.business.domain; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.TableName; @@ -53,6 +54,9 @@ public class MjyFfjl extends MpBaseEntity /** 出库量 */ private String ckl; + /** 出库量 */ + private BigDecimal basicCkl; + /** 出库量单位 */ private String ckldw; @@ -120,18 +124,27 @@ public class MjyFfjl extends MpBaseEntity /** 入库量 */ private String rkl; + /** 入库量 */ + private BigDecimal basicRkl; + /** 入库单位 */ private String rkldw; /** 减少量 */ private String jsl; + /** 减少量 */ + private BigDecimal basicJsl; + /** 减少量单位 */ private String jsldw; /** 使用量 */ private String syl; + /** 使用量 */ + private BigDecimal basicSyl; + /** 使用量单位 */ private String syldw; @@ -183,6 +196,38 @@ public class MjyFfjl extends MpBaseEntity @JsonFormat(pattern = "yyyy-MM-dd") private Date jyjsrq; + public BigDecimal getBasicCkl() { + return basicCkl; + } + + public void setBasicCkl(BigDecimal basicCkl) { + this.basicCkl = basicCkl; + } + + public BigDecimal getBasicRkl() { + return basicRkl; + } + + public void setBasicRkl(BigDecimal basicRkl) { + this.basicRkl = basicRkl; + } + + public BigDecimal getBasicJsl() { + return basicJsl; + } + + public void setBasicJsl(BigDecimal basicJsl) { + this.basicJsl = basicJsl; + } + + public BigDecimal getBasicSyl() { + return basicSyl; + } + + public void setBasicSyl(BigDecimal basicSyl) { + this.basicSyl = basicSyl; + } + public Integer getDazt() { return dazt; } diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjFfjlServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjFfjlServiceImpl.java index 2c9a66a..3f264c0 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjFfjlServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/GyzjFfjlServiceImpl.java @@ -18,6 +18,7 @@ import com.hxhq.business.enums.zykgl.JlztEnum; import com.hxhq.business.form.gyzj.*; import com.hxhq.business.service.*; import com.hxhq.business.utils.JctUtil; +import com.hxhq.business.utils.UnitTools; import com.hxhq.common.core.exception.ServiceException; import com.hxhq.common.core.utils.DateUtils; import com.hxhq.common.core.utils.StringUtils; @@ -399,10 +400,18 @@ public class GyzjFfjlServiceImpl extends ServiceImpl i gyzjFfjl.setGhzytj(form.getGhzytj()); gyzjFfjl.setRkl(form.getRkl()); gyzjFfjl.setRkldw(gyzj.getKcdw()); + //更新基础 + BigDecimal basicRkl = UnitTools.convert2Basic(gyzjFfjl.getRkl(), gyzjFfjl.getRkldw()); + gyzjFfjl.setBasicRkl(basicRkl); + gyzjFfjl.setRkmz(form.getRkmz()); gyzjFfjl.setRkmzdw(gyzj.getKcdw()); gyzjFfjl.setSyl(new BigDecimal(gyzjFfjl.getCkl()).subtract(new BigDecimal(gyzjFfjl.getRkl())).toString()); gyzjFfjl.setSyldw(gyzj.getKcdw()); + //更新基础 + BigDecimal basicSyl = UnitTools.convert2Basic(gyzjFfjl.getSyl(), gyzjFfjl.getSyldw()); + gyzjFfjl.setBasicSyl(basicSyl); + gyzjFfjl.setGhr1Id(ghr1.getUserId()); gyzjFfjl.setGhr1Mc(ghr1.getNickName()); gyzjFfjl.setGhrq(new Date()); @@ -453,6 +462,11 @@ public class GyzjFfjlServiceImpl extends ServiceImpl i gyzjFfjl.setCctj(gyzj.getCctj()); gyzjFfjl.setCkl(gyzj.getKc()); gyzjFfjl.setCkldw(gyzj.getKcdw()); + + //更新基础 + BigDecimal basicCkl = UnitTools.convert2Basic(gyzjFfjl.getCkl(), gyzjFfjl.getCkldw()); + gyzjFfjl.setBasicCkl(basicCkl); + gyzjFfjl.setLqr1Id(lqr1.getUserId()); gyzjFfjl.setLqr2Id(lqr2.getUserId()); gyzjFfjl.setFfr1Id(ffr1.getUserId()); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyFfjlServiceImpl.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyFfjlServiceImpl.java index d3d916c..330ffbe 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyFfjlServiceImpl.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/MjyFfjlServiceImpl.java @@ -1,5 +1,6 @@ package com.hxhq.business.service.impl; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -16,6 +17,7 @@ import com.hxhq.business.form.mjy.*; import com.hxhq.business.service.*; import com.hxhq.business.service.IStudyMjyService; import com.hxhq.business.utils.JctUtil; +import com.hxhq.business.utils.UnitTools; import com.hxhq.common.core.exception.ServiceException; import com.hxhq.common.core.utils.DateUtils; import com.hxhq.common.core.utils.StringUtils; @@ -394,11 +396,24 @@ public class MjyFfjlServiceImpl extends ServiceImpl impl mjyFfjl.setGhzytj(form.getGhzytj()); mjyFfjl.setRkmz(form.getRkmz()); mjyFfjl.setRkmzdw(mjy.getKcdw()); + //更新基础 + BigDecimal basicRkmz = UnitTools.convert2Basic(mjyFfjl.getRkmz(), mjyFfjl.getRkmzdw()); + mjyFfjl.setBasicRkl(basicRkmz); mjyFfjl.setJsl(form.getJsl()); mjyFfjl.setJsldw(mjy.getKcdw()); + + //更新基础 + BigDecimal basicJsl = UnitTools.convert2Basic(mjyFfjl.getJsl(), mjyFfjl.getJsldw()); + mjyFfjl.setBasicJsl(basicJsl); + mjyFfjl.setSyl(form.getSyl()); mjyFfjl.setSyldw(mjy.getKcdw()); + + //更新基础 + BigDecimal basicSyl = UnitTools.convert2Basic(mjyFfjl.getSyl(), mjyFfjl.getSyldw()); + mjyFfjl.setBasicSyl(basicSyl); + mjyFfjl.setGhr1Id(ghr1.getUserId()); mjyFfjl.setGhr1Mc(ghr1.getNickName()); mjyFfjl.setGhrq(new Date()); @@ -448,6 +463,10 @@ public class MjyFfjlServiceImpl extends ServiceImpl impl mjyFfjl.setCctj(mjy.getCctj()); mjyFfjl.setCkl(mjy.getKc()); mjyFfjl.setCkldw(mjy.getKcdw()); + //更新基础 + BigDecimal basicCkl = UnitTools.convert2Basic(mjyFfjl.getCkl(), mjyFfjl.getCkldw()); + mjyFfjl.setBasicCkl(basicCkl); + mjyFfjl.setCkmz( form.getCkmz()); mjyFfjl.setCkmzdw(form.getCkmzdw()); mjyFfjl.setLqr1Id(lqr1.getUserId()); diff --git a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/UnitTools.java b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/UnitTools.java index 25af86d..163b0b4 100644 --- a/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/UnitTools.java +++ b/hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/UnitTools.java @@ -13,15 +13,20 @@ import java.util.Map; /** * 单位换算工具 + * * @author HanLong */ public class UnitTools { private static String[] unitList = {"pL", "nL", "uL", "mL", "L", "pg", "ng", "ug", "mg", "g", "kg"}; - /** 体积单位 */ + /** + * 体积单位 + */ public static String[] VOLUME_UNIT_LIST = {"pL", "nL", "uL", "mL", "L"}; - /** 质量单位 */ + /** + * 质量单位 + */ public static String[] WEIGHT_UNIT_LIST = {"pg", "ng", "ug", "mg", "g", "kg"}; /** @@ -46,13 +51,14 @@ public class UnitTools { /** * 体积相加 - * @param kc 当前库存 - * @param kcdw 当前库存单位 - * @param addKc 增加库存 - * @param addKcdw 增加库存单位 + * + * @param kc 当前库存 + * @param kcdw 当前库存单位 + * @param addKc 增加库存 + * @param addKcdw 增加库存单位 * @return */ - public static String addTj(String kc, String kcdw, String addKc, String addKcdw) { + public static String addTj(String kc, String kcdw, String addKc, String addKcdw) { validateUnit(kcdw); validateUnit(addKcdw); BigDecimal kcValue = formatKc(kc); @@ -65,13 +71,14 @@ public class UnitTools { /** * 体积相减 - * @param kc 当前库存 - * @param kcdw 当前库存单位 - * @param subKc 扣减库存 - * @param subKcdw 扣减库存单位 + * + * @param kc 当前库存 + * @param kcdw 当前库存单位 + * @param subKc 扣减库存 + * @param subKcdw 扣减库存单位 * @return */ - public static String subTj(String kc, String kcdw, String subKc, String subKcdw) { + public static String subTj(String kc, String kcdw, String subKc, String subKcdw) { validateUnit(kcdw); validateUnit(subKcdw); BigDecimal kcValue = formatKc(kc); @@ -85,10 +92,10 @@ public class UnitTools { } private static BigDecimal formatKc(String kc) { - if(StringUtils.isEmpty(kc)) { + if (StringUtils.isEmpty(kc)) { return BigDecimal.ZERO; } - if(!NumberUtils.isParsable(kc)) { + if (!NumberUtils.isParsable(kc)) { throw new ServiceException("不支持的库存数量" + kc); } return new BigDecimal(kc); @@ -96,19 +103,20 @@ public class UnitTools { /** * 体积单位换算 - * @param value 需要转换的数值 + * + * @param value 需要转换的数值 * @param fromUnit 原始单位 - * @param toUnit 目标单位 + * @param toUnit 目标单位 * @return 转换后的数值 * @throws IllegalArgumentException 当单位不支持时抛出异常 */ public static BigDecimal convert(BigDecimal value, String fromUnit, String toUnit) { // 验证单位是否支持 - if (!UNIT_TO_LITER.containsKey(fromUnit) ) { - throw new ServiceException( "不支持的单位:" + fromUnit); + if (!UNIT_TO_LITER.containsKey(fromUnit)) { + throw new ServiceException("不支持的单位:" + fromUnit); } - if (!UNIT_TO_LITER.containsKey(toUnit) ) { - throw new ServiceException( "不支持的单位:" + toUnit); + if (!UNIT_TO_LITER.containsKey(toUnit)) { + throw new ServiceException("不支持的单位:" + toUnit); } // 如果单位相同,直接返回 @@ -125,57 +133,63 @@ public class UnitTools { /** * 转换为基础单位 - * @param value 数值 - * @param fromUnit 原单位 + * + * @param value 数值 + * @param fromUnit 原单位 * @return */ public static BigDecimal convert2Basic(String value, String fromUnit) { - if(StringUtils.isEmpty(value) || !NumberUtils.isParsable(value)) { - return BigDecimal.ZERO; - } - // 验证单位是否支持 - if (!UNIT_TO_LITER.containsKey(fromUnit) ) { - return BigDecimal.ZERO; - } + try { + if (StringUtils.isEmpty(value) || !NumberUtils.isParsable(value)) { + return BigDecimal.ZERO; + } + // 验证单位是否支持 + if (!UNIT_TO_LITER.containsKey(fromUnit)) { + return BigDecimal.ZERO; + } - String toUnit = ""; - if(Arrays.asList(VOLUME_UNIT_LIST).contains(fromUnit)) { - toUnit = "pL"; - } else if(Arrays.asList(WEIGHT_UNIT_LIST).contains(fromUnit)) { - toUnit = "pg"; - } + String toUnit = ""; + if (Arrays.asList(VOLUME_UNIT_LIST).contains(fromUnit)) { + toUnit = "pL"; + } else if (Arrays.asList(WEIGHT_UNIT_LIST).contains(fromUnit)) { + toUnit = "pg"; + } - // 如果单位相同,直接返回 - if (fromUnit.equals(toUnit)) { - return new BigDecimal(value); - } + // 如果单位相同,直接返回 + if (fromUnit.equals(toUnit)) { + return new BigDecimal(value); + } - // 转换为基准单位 - BigDecimal valueInLiters = new BigDecimal(value).multiply(UNIT_TO_LITER.get(fromUnit)); - BigDecimal to = UNIT_TO_LITER.get(toUnit); - // 从基准单位转换为目标单位 - return valueInLiters.divide(to); + // 转换为基准单位 + BigDecimal valueInLiters = new BigDecimal(value).multiply(UNIT_TO_LITER.get(fromUnit)); + BigDecimal to = UNIT_TO_LITER.get(toUnit); + // 从基准单位转换为目标单位 + return valueInLiters.divide(to); + } catch (Exception ex) { + return BigDecimal.ZERO; + } } /** * 从基础单位转换为指定单位 - * @param value 数值 - * @param toUnit 原单位 + * + * @param value 数值 + * @param toUnit 原单位 * @return */ public static BigDecimal convert(BigDecimal value, String toUnit) { - if(value == null) { + if (value == null) { return BigDecimal.ZERO; } // 验证单位是否支持 - if (!UNIT_TO_LITER.containsKey(toUnit) ) { + if (!UNIT_TO_LITER.containsKey(toUnit)) { return value; } String fromUnit = ""; - if(Arrays.asList(VOLUME_UNIT_LIST).contains(toUnit)) { + if (Arrays.asList(VOLUME_UNIT_LIST).contains(toUnit)) { fromUnit = "pL"; - } else if(Arrays.asList(WEIGHT_UNIT_LIST).contains(toUnit)) { + } else if (Arrays.asList(WEIGHT_UNIT_LIST).contains(toUnit)) { fromUnit = "pg"; } @@ -191,7 +205,7 @@ public class UnitTools { } } if (!isValid) { - throw new ServiceException("不支持的单位: " + unit ); + throw new ServiceException("不支持的单位: " + unit); } }