diff --git a/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml b/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml index 09276287..a570f5aa 100644 --- a/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml +++ b/klp-ems/src/main/resources/mapper/WmsEnergyCoilDailyMapper.xml @@ -279,7 +279,7 @@ LEFT JOIN ( SELECT DATE(change_time) AS day_key, - SUM(IFNULL(amount, 0)) AS aux_amount + SUM(ABS(IFNULL(amount, 0))) AS aux_amount FROM eqp_auxiliary_material_change WHERE del_flag = '0' AND change_type = '减少' @@ -290,7 +290,7 @@ LEFT JOIN ( SELECT DATE(change_time) AS day_key, - SUM(IFNULL(amount, 0)) AS spare_amount + SUM(ABS(IFNULL(amount, 0))) AS spare_amount FROM eqp_spare_parts_change WHERE del_flag = '0' AND change_type = '减少' @@ -547,7 +547,7 @@ LEFT JOIN ( SELECT DATE(change_time) AS day_key, - SUM(IFNULL(amount, 0)) AS aux_amount + SUM(ABS(IFNULL(amount, 0))) AS aux_amount FROM eqp_auxiliary_material_change WHERE del_flag = '0' AND change_type = '减少' @@ -558,7 +558,7 @@ LEFT JOIN ( SELECT DATE(change_time) AS day_key, - SUM(IFNULL(amount, 0)) AS spare_amount + SUM(ABS(IFNULL(amount, 0))) AS spare_amount FROM eqp_spare_parts_change WHERE del_flag = '0' AND change_type = '减少' diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterial.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterial.java index c9a35971..24e6f172 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterial.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterial.java @@ -48,6 +48,17 @@ public class EqpAuxiliaryMaterial extends BaseEntity { * 当前库存数量 */ private Long quantity; + + /** + * 当前移动加权平均单价 + */ + private java.math.BigDecimal unitPrice; + + /** + * 当前库存总金额(可冗余,= quantity * unit_price) + */ + private java.math.BigDecimal totalAmount; + /** * 删除标志(0=存在 2=删除) */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterialChange.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterialChange.java index beb5db45..f0417cdd 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterialChange.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpAuxiliaryMaterialChange.java @@ -6,7 +6,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 辅料变动记录对象 eqp_auxiliary_material_change @@ -38,6 +37,22 @@ public class EqpAuxiliaryMaterialChange extends BaseEntity { * 变动数量 */ private Long changeQuantity; + + /** + * 入库单价(仅增加时有意义) + */ + private java.math.BigDecimal inUnitPrice; + + /** + * 单价快照(减少时必填) + */ + private java.math.BigDecimal unitPriceSnapshot; + + /** + * 本次变动金额(有符号;减少为负) + */ + private java.math.BigDecimal amount; + /** * 变动原因 */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePart.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePart.java index fa1ad56f..cda1a476 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePart.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePart.java @@ -48,6 +48,17 @@ public class EqpSparePart extends BaseEntity { * 当前库存数量 */ private Long quantity; + + /** + * 当前移动加权平均单价 + */ + private java.math.BigDecimal unitPrice; + + /** + * 当前库存总金额(可冗余,= quantity * unit_price) + */ + private java.math.BigDecimal totalAmount; + /** * 删除标志(0=存在 2=删除) */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePartsChange.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePartsChange.java index 50bfc170..ff422f6b 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePartsChange.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/EqpSparePartsChange.java @@ -6,7 +6,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 备品备件变动记录对象 eqp_spare_parts_change @@ -38,6 +37,22 @@ public class EqpSparePartsChange extends BaseEntity { * 变动数量 */ private Long changeQuantity; + + /** + * 入库单价(仅增加时有意义) + */ + private java.math.BigDecimal inUnitPrice; + + /** + * 单价快照(减少时必填) + */ + private java.math.BigDecimal unitPriceSnapshot; + + /** + * 本次变动金额(有符号;减少为负) + */ + private java.math.BigDecimal amount; + /** * 变动原因 */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpAuxiliaryMaterialChangeBo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpAuxiliaryMaterialChangeBo.java index 00f21bd2..ede1230d 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpAuxiliaryMaterialChangeBo.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpAuxiliaryMaterialChangeBo.java @@ -39,6 +39,11 @@ public class EqpAuxiliaryMaterialChangeBo extends BaseEntity { */ private Long changeQuantity; + /** + * 入库单价(前端传入,仅 changeType=增加 时必填) + */ + private java.math.BigDecimal inUnitPrice; + /** * 变动原因 */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpSparePartsChangeBo.java b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpSparePartsChangeBo.java index fd51e1a6..26bb0e61 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpSparePartsChangeBo.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/domain/bo/EqpSparePartsChangeBo.java @@ -39,6 +39,11 @@ public class EqpSparePartsChangeBo extends BaseEntity { */ private Long changeQuantity; + /** + * 入库单价(前端传入,仅 changeType=增加 时必填) + */ + private java.math.BigDecimal inUnitPrice; + /** * 变动原因 */ diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpAuxiliaryMaterialChangeServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpAuxiliaryMaterialChangeServiceImpl.java index 09dab5a1..52537e66 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpAuxiliaryMaterialChangeServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpAuxiliaryMaterialChangeServiceImpl.java @@ -22,7 +22,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.Collection; /** @@ -67,7 +66,6 @@ public class EqpAuxiliaryMaterialChangeServiceImpl implements IEqpAuxiliaryMater } private LambdaQueryWrapper buildQueryWrapper(EqpAuxiliaryMaterialChangeBo bo) { - Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getAuxiliaryId() != null, EqpAuxiliaryMaterialChange::getAuxiliaryId, bo.getAuxiliaryId()); lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), EqpAuxiliaryMaterialChange::getChangeType, bo.getChangeType()); @@ -146,23 +144,80 @@ public class EqpAuxiliaryMaterialChangeServiceImpl implements IEqpAuxiliaryMater return R.fail("辅料已删除,无法操作"); } - // 3. 库存变动逻辑 - Long newQuantity; // 替换为Integer(原表quantity是int) - if ("减少".equals(bo.getChangeType())) { - // 减少库存时校验库存充足性 - if (auxiliaryMaterial.getQuantity() < bo.getChangeQuantity()) { - return R.fail("库存不足,当前库存:" + auxiliaryMaterial.getQuantity() + ",需减少:" + bo.getChangeQuantity()); + // 3. 库存与金额变动逻辑(移动加权平均 + 消耗单价快照) + java.math.BigDecimal oldUnitPrice = auxiliaryMaterial.getUnitPrice() == null ? java.math.BigDecimal.ZERO : auxiliaryMaterial.getUnitPrice(); + java.math.BigDecimal oldTotalAmount = auxiliaryMaterial.getTotalAmount() == null ? java.math.BigDecimal.ZERO : auxiliaryMaterial.getTotalAmount(); + + Long oldQty = auxiliaryMaterial.getQuantity() == null ? 0L : auxiliaryMaterial.getQuantity(); + Long changeQty = bo.getChangeQuantity(); + + Long newQuantity; + java.math.BigDecimal newUnitPrice = oldUnitPrice; + java.math.BigDecimal newTotalAmount = oldTotalAmount; + + // 从上下文获取操作人 + String operator = String.valueOf(LoginHelper.getUsername()); + + // 4. 插入变动记录(先组装,后续补齐单价快照与金额) + EqpAuxiliaryMaterialChange changeLog = new EqpAuxiliaryMaterialChange(); + changeLog.setAuxiliaryId(bo.getAuxiliaryId()); + changeLog.setChangeType(bo.getChangeType()); + changeLog.setChangeQuantity(changeQty); + changeLog.setReason(bo.getReason()); + changeLog.setRemark(bo.getRemark()); + changeLog.setChangeTime(new Date()); + changeLog.setCreateBy(operator); + changeLog.setUpdateBy(operator); + changeLog.setDelFlag("0"); + + if ("增加".equals(bo.getChangeType())) { + // 入库单价前端必填 + if (bo.getInUnitPrice() == null) { + return R.fail("入库单价不能为空。建议按当前台账单价补齐后再提交。"); } - newQuantity = auxiliaryMaterial.getQuantity() - bo.getChangeQuantity(); + java.math.BigDecimal inUnitPrice = bo.getInUnitPrice(); + + newQuantity = oldQty + changeQty; + + // 移动加权平均价: (old_price*old_qty + in_price*in_qty) / (old_qty + in_qty) + java.math.BigDecimal numerator = oldUnitPrice.multiply(java.math.BigDecimal.valueOf(oldQty)) + .add(inUnitPrice.multiply(java.math.BigDecimal.valueOf(changeQty))); + java.math.BigDecimal denominator = java.math.BigDecimal.valueOf(newQuantity); + newUnitPrice = denominator.compareTo(java.math.BigDecimal.ZERO) > 0 + ? numerator.divide(denominator, 6, java.math.RoundingMode.HALF_UP) + : java.math.BigDecimal.ZERO; + + newTotalAmount = newUnitPrice.multiply(java.math.BigDecimal.valueOf(newQuantity)).setScale(2, java.math.RoundingMode.HALF_UP); + + changeLog.setInUnitPrice(inUnitPrice); + // 增加时也记录快照(记录“入库后单价”更利于追溯) + changeLog.setUnitPriceSnapshot(newUnitPrice); + // amount 采用有符号:增加为正 + changeLog.setAmount(inUnitPrice.multiply(java.math.BigDecimal.valueOf(changeQty)).setScale(2, java.math.RoundingMode.HALF_UP)); } else { - // 增加库存直接累加 - newQuantity = auxiliaryMaterial.getQuantity() + bo.getChangeQuantity(); + // 减少库存时校验库存充足性 + if (oldQty < changeQty) { + return R.fail("库存不足,当前库存:" + oldQty + ",需减少:" + changeQty); + } + + newQuantity = oldQty - changeQty; + + // 减少时捕捉当前台账单价快照,amount 为负 + java.math.BigDecimal unitPriceSnapshot = oldUnitPrice; + java.math.BigDecimal costAbs = unitPriceSnapshot.multiply(java.math.BigDecimal.valueOf(changeQty)).setScale(2, java.math.RoundingMode.HALF_UP); + + changeLog.setUnitPriceSnapshot(unitPriceSnapshot); + changeLog.setAmount(costAbs.negate()); + + // 更新库存总金额(按剩余库存重新计算) + newUnitPrice = oldUnitPrice; + newTotalAmount = newUnitPrice.multiply(java.math.BigDecimal.valueOf(newQuantity)).setScale(2, java.math.RoundingMode.HALF_UP); } - // 4. 更新辅料库存(填充审计字段) + // 5. 更新辅料库存(数量 + 单价 + 总金额) auxiliaryMaterial.setQuantity(newQuantity); - // 从上下文获取操作人(替换为你的登录助手类) - String operator = String.valueOf(LoginHelper.getUsername()); + auxiliaryMaterial.setUnitPrice(newUnitPrice); + auxiliaryMaterial.setTotalAmount(newTotalAmount); auxiliaryMaterial.setUpdateBy(operator); auxiliaryMaterial.setUpdateTime(new Date()); boolean updateSuccess = eqpAuxiliaryMaterialMapper.updateById(auxiliaryMaterial) > 0; @@ -170,21 +225,7 @@ public class EqpAuxiliaryMaterialChangeServiceImpl implements IEqpAuxiliaryMater return R.fail("库存更新失败"); } - // 5. 插入变动记录(基于EqpAuxiliaryMaterialChangeBo转换) - EqpAuxiliaryMaterialChange changeLog = new EqpAuxiliaryMaterialChange(); - // 从Bo复制核心字段 - changeLog.setAuxiliaryId(bo.getAuxiliaryId()); - changeLog.setChangeType(bo.getChangeType()); - changeLog.setChangeQuantity(bo.getChangeQuantity()); - changeLog.setReason(bo.getReason()); // 变动原因 - changeLog.setRemark(bo.getRemark()); // 备注 - // 补充审计字段 - changeLog.setChangeTime(new Date()); - changeLog.setCreateBy(operator); - changeLog.setUpdateBy(operator); - changeLog.setDelFlag("0"); // 未删除 - - // 插入变动记录 + // 6. 插入变动记录 int insertCount = baseMapper.insert(changeLog); if (insertCount <= 0) { return R.fail("变动记录插入失败"); diff --git a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpSparePartsChangeServiceImpl.java b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpSparePartsChangeServiceImpl.java index b529c659..6fd672c2 100644 --- a/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpSparePartsChangeServiceImpl.java +++ b/klp-mes/src/main/java/com/klp/mes/eqp/service/impl/EqpSparePartsChangeServiceImpl.java @@ -3,7 +3,6 @@ package com.klp.mes.eqp.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.klp.common.core.domain.R; -import com.klp.common.core.domain.model.LoginUser; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,7 +11,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.helper.LoginHelper; import com.klp.common.utils.StringUtils; import com.klp.mes.eqp.domain.EqpSparePart; -import com.klp.mes.eqp.domain.bo.EqpSparePartBo; import com.klp.mes.eqp.mapper.EqpSparePartMapper; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; @@ -26,7 +24,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.Collection; /** @@ -85,7 +82,6 @@ public class EqpSparePartsChangeServiceImpl implements IEqpSparePartsChangeServi } private LambdaQueryWrapper buildQueryWrapper(EqpSparePartsChangeBo bo) { - Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getPartId() != null, EqpSparePartsChange::getPartId, bo.getPartId()); lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), EqpSparePartsChange::getChangeType, bo.getChangeType()); @@ -164,23 +160,71 @@ public class EqpSparePartsChangeServiceImpl implements IEqpSparePartsChangeServi return R.fail("备品备件已删除,无法操作"); } - // 3. 库存变动逻辑 + // 3. 库存与金额变动逻辑(移动加权平均 + 消耗单价快照) + java.math.BigDecimal oldUnitPrice = sparePart.getUnitPrice() == null ? java.math.BigDecimal.ZERO : sparePart.getUnitPrice(); + java.math.BigDecimal oldTotalAmount = sparePart.getTotalAmount() == null ? java.math.BigDecimal.ZERO : sparePart.getTotalAmount(); + + Long oldQty = sparePart.getQuantity() == null ? 0L : sparePart.getQuantity(); + Long changeQty = bo.getChangeQuantity(); + Long newQuantity; - if ("减少".equals(bo.getChangeType())) { - // 减少库存时校验库存充足性 - if (sparePart.getQuantity() < bo.getChangeQuantity()) { - return R.fail("库存不足,当前库存:" + sparePart.getQuantity() + ",需减少:" + bo.getChangeQuantity()); + java.math.BigDecimal newUnitPrice = oldUnitPrice; + java.math.BigDecimal newTotalAmount = oldTotalAmount; + + String operator = String.valueOf(LoginHelper.getUsername()); + + EqpSparePartsChange changeLog = new EqpSparePartsChange(); + changeLog.setPartId(bo.getPartId()); + changeLog.setChangeType(bo.getChangeType()); + changeLog.setChangeQuantity(changeQty); + changeLog.setReason(bo.getReason()); + changeLog.setRemark(bo.getRemark()); + changeLog.setChangeTime(new Date()); + changeLog.setCreateBy(operator); + changeLog.setUpdateBy(operator); + changeLog.setDelFlag("0"); + + if ("增加".equals(bo.getChangeType())) { + if (bo.getInUnitPrice() == null) { + return R.fail("入库单价不能为空。建议按当前台账单价补齐后再提交。"); } - newQuantity = sparePart.getQuantity() - bo.getChangeQuantity(); + java.math.BigDecimal inUnitPrice = bo.getInUnitPrice(); + + newQuantity = oldQty + changeQty; + + java.math.BigDecimal numerator = oldUnitPrice.multiply(java.math.BigDecimal.valueOf(oldQty)) + .add(inUnitPrice.multiply(java.math.BigDecimal.valueOf(changeQty))); + java.math.BigDecimal denominator = java.math.BigDecimal.valueOf(newQuantity); + newUnitPrice = denominator.compareTo(java.math.BigDecimal.ZERO) > 0 + ? numerator.divide(denominator, 6, java.math.RoundingMode.HALF_UP) + : java.math.BigDecimal.ZERO; + + newTotalAmount = newUnitPrice.multiply(java.math.BigDecimal.valueOf(newQuantity)).setScale(2, java.math.RoundingMode.HALF_UP); + + changeLog.setInUnitPrice(inUnitPrice); + changeLog.setUnitPriceSnapshot(newUnitPrice); + changeLog.setAmount(inUnitPrice.multiply(java.math.BigDecimal.valueOf(changeQty)).setScale(2, java.math.RoundingMode.HALF_UP)); } else { - // 增加库存直接累加 - newQuantity = sparePart.getQuantity() + bo.getChangeQuantity(); + if (oldQty < changeQty) { + return R.fail("库存不足,当前库存:" + oldQty + ",需减少:" + changeQty); + } + + newQuantity = oldQty - changeQty; + + java.math.BigDecimal unitPriceSnapshot = oldUnitPrice; + java.math.BigDecimal costAbs = unitPriceSnapshot.multiply(java.math.BigDecimal.valueOf(changeQty)).setScale(2, java.math.RoundingMode.HALF_UP); + + changeLog.setUnitPriceSnapshot(unitPriceSnapshot); + changeLog.setAmount(costAbs.negate()); + + newUnitPrice = oldUnitPrice; + newTotalAmount = newUnitPrice.multiply(java.math.BigDecimal.valueOf(newQuantity)).setScale(2, java.math.RoundingMode.HALF_UP); } - // 4. 更新备件库存(填充审计字段) + // 4. 更新备件库存(数量 + 单价 + 总金额) sparePart.setQuantity(newQuantity); - // 从Bo获取操作人(优先)或默认值 - String operator = String.valueOf(LoginHelper.getUsername()); + sparePart.setUnitPrice(newUnitPrice); + sparePart.setTotalAmount(newTotalAmount); sparePart.setUpdateBy(operator); sparePart.setUpdateTime(new Date()); boolean updateSuccess = eqpSparePartMapper.updateById(sparePart) > 0; @@ -188,21 +232,7 @@ public class EqpSparePartsChangeServiceImpl implements IEqpSparePartsChangeServi return R.fail("库存更新失败"); } - // 5. 插入变动记录(基于EqpSparePartsChangeBo转换) - EqpSparePartsChange changeLog = new EqpSparePartsChange(); - // 从Bo复制核心字段 - changeLog.setPartId(bo.getPartId()); - changeLog.setChangeType(bo.getChangeType()); - changeLog.setChangeQuantity(bo.getChangeQuantity()); - changeLog.setReason(bo.getReason()); // 变动原因(Bo中应包含该字段) - changeLog.setRemark(bo.getRemark()); // 备注(Bo中应包含该字段) - // 补充审计字段 - changeLog.setChangeTime(new Date()); - changeLog.setCreateBy(operator); - changeLog.setUpdateBy(operator); - changeLog.setDelFlag("0"); // 未删除 - - // 插入变动记录(需注入对应Mapper) + // 5. 插入变动记录 int insertCount = baseMapper.insert(changeLog); if (insertCount <= 0) { return R.fail("变动记录插入失败"); diff --git a/klp-ui/src/views/mes/eqp/auxiliary/index.vue b/klp-ui/src/views/mes/eqp/auxiliary/index.vue index 5cacd8d9..50692f9a 100644 --- a/klp-ui/src/views/mes/eqp/auxiliary/index.vue +++ b/klp-ui/src/views/mes/eqp/auxiliary/index.vue @@ -173,6 +173,9 @@ + + + @@ -271,6 +274,9 @@ export default { this.changeForm = { changeType: '增加', auxiliaryId: row.auxiliaryId, + inUnitPrice: undefined, + changeQuantity: undefined, + reason: undefined } }, handleReduce(row) { @@ -278,12 +284,19 @@ export default { this.changeForm = { changeType: '减少', auxiliaryId: row.auxiliaryId, + inUnitPrice: undefined, + changeQuantity: undefined, + reason: undefined } }, changeCancel() { this.changeOpen = false; }, changeSubmitForm() { + if (this.changeForm.changeType === '增加' && (this.changeForm.inUnitPrice == null || this.changeForm.inUnitPrice === '')) { + this.$modal.msgWarning('入库单价不能为空,建议按当前台账单价补齐后再提交'); + return; + } this.buttonLoading = true; changeStock(this.changeForm).then(response => { this.buttonLoading = false; diff --git a/klp-ui/src/views/mes/eqp/ready/index.vue b/klp-ui/src/views/mes/eqp/ready/index.vue index 747c2d44..87200548 100644 --- a/klp-ui/src/views/mes/eqp/ready/index.vue +++ b/klp-ui/src/views/mes/eqp/ready/index.vue @@ -173,6 +173,9 @@ + + + @@ -192,7 +195,7 @@