From f442fc68d666400b54eb0987a8e11a8a08b9b4cf Mon Sep 17 00:00:00 2001 From: zhangzq Date: Mon, 8 Jun 2026 18:17:27 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=88=86=E9=85=8D=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ISectattrService.java | 7 ++ .../service/impl/SectattrServiceImpl.java | 51 +++++---- .../service/impl/StructattrServiceImpl.java | 2 +- .../impl/diy/FIFONoStorHandler.java | 76 +++++++++++++ .../wms/warehouse_manage/enums/IOSEnum.java | 5 +- .../service/impl/OutBillServiceImpl.java | 106 +++++++++--------- .../core/param/impl/OutDisParam.java | 11 +- .../impl/StInventoryServiceImpl.java | 4 +- .../src/views/wms/st/outbill/DivDialog.vue | 6 +- .../src/views/wms/st/outbill/StructIvt.vue | 14 ++- 10 files changed, 186 insertions(+), 96 deletions(-) create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/diy/FIFONoStorHandler.java diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java index b921b45..9d6d436 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java @@ -69,4 +69,11 @@ public interface ISectattrService extends IService { */ void changeActive(JSONObject json); + /** + * 获取库区类型: + * key:库区类型 + * value:库区sectCode集合 + */ + Map> getSectType(); + } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java index 5781339..242a69e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java @@ -23,12 +23,15 @@ import org.nl.wms.basedata_manage.service.dao.Sectattr; import org.nl.wms.basedata_manage.service.dao.SectattrDto; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.SectattrMapper; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 库区实现类 @@ -85,9 +88,8 @@ public class SectattrServiceImpl extends ServiceImpl i } @Override - @Transactional(rollbackFor = Exception.class) + @CacheEvict(value = "sectType", key = "'allSectType'") public void create(Sectattr dto) { - Sectattr sectattr = sectattrMapper.selectOne(new LambdaQueryWrapper<>(Sectattr.class) .eq(Sectattr::getSect_id, dto.getSect_code()) .eq(Sectattr::getStor_id, dto.getStor_id()) @@ -113,7 +115,7 @@ public class SectattrServiceImpl extends ServiceImpl i } @Override - @Transactional(rollbackFor = Exception.class) + @CacheEvict(value = "sectType", key = "'allSectType'") public void update(Sectattr dto) { Sectattr entity = this.findById(dto.getSect_id()); if (entity == null) { @@ -121,17 +123,6 @@ public class SectattrServiceImpl extends ServiceImpl i } String sect_code = dto.getSect_code(); - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - - String now = DateUtil.now(); - dto.setUpdate_time(now); - dto.setUpdate_optid(currentUserId); - dto.setUpdate_optname(nickName); - - sectattrMapper.updateById(dto); - List sectattrList = sectattrMapper.selectList(new LambdaQueryWrapper() .eq(Sectattr::getSect_code,sect_code) .eq(Sectattr::getStor_id,dto.getStor_id()) @@ -139,9 +130,19 @@ public class SectattrServiceImpl extends ServiceImpl i if (sectattrList.size() > 1) { throw new BadRequestException("存在相同仓库的库区编号"); } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + + String now = DateUtil.now(); + dto.setUpdate_time(now); + dto.setUpdate_optid(currentUserId); + dto.setUpdate_optname(nickName); + sectattrMapper.updateById(dto); } @Override + @CacheEvict(value = "sectType", key = "'allSectType'") + @Transactional(rollbackFor = Exception.class) public void deleteAll(String[] ids) { String currentUserId = SecurityUtils.getCurrentUserId(); @@ -280,11 +281,8 @@ public class SectattrServiceImpl extends ServiceImpl i } @Override - @Transactional(rollbackFor = Exception.class) public void changeActive(JSONObject json) { - String stor_id = json.getString("stor_id"); - BsrealStorattr bsrealStorattr = iBsrealStorattrService.list(new LambdaQueryWrapper<>(BsrealStorattr.class) .eq(BsrealStorattr::getStor_id,stor_id) .eq(BsrealStorattr::getIs_used,BaseDataEnum.IS_YES_NOT.code("是"))) @@ -292,22 +290,16 @@ public class SectattrServiceImpl extends ServiceImpl i if (ObjectUtil.isEmpty(bsrealStorattr)) { throw new BadRequestException("该库区所属的仓库已禁用,请先启用该仓库!"); } - String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - String is_used = BaseDataEnum.IS_YES_NOT.code("是").equals(json.getString("is_used")) ? BaseDataEnum.IS_YES_NOT.code("否") : BaseDataEnum.IS_YES_NOT.code("是"); - json.put("is_used", is_used); json.put("update_optid", currentUserId); json.put("update_optname", nickName); json.put("update_time", now); - sectattrMapper.updateById(json.toJavaObject(Sectattr.class)); - String sect_id = json.getString("sect_id"); - iStructattrService.update(new LambdaUpdateWrapper<>(Structattr.class) .set(Structattr::getIs_used, is_used) .set(Structattr::getUpdate_id, currentUserId) @@ -316,4 +308,17 @@ public class SectattrServiceImpl extends ServiceImpl i .eq(Structattr::getSect_id, sect_id) ); } + @Override + @Cacheable(value = "sectType", key = "'allSectType'") + public Map> getSectType() { + final List list = this.list(new LambdaQueryWrapper() + .eq(Sectattr::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")) + .eq(Sectattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是")) + .select(Sectattr::getSect_type_attr, Sectattr::getSect_code)); + return list.stream() + .collect(Collectors.groupingBy( + Sectattr::getSect_type_attr, + Collectors.mapping(Sectattr::getSect_code, Collectors.toList()) + )); + } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java index 487c655..f4683df 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java @@ -148,7 +148,7 @@ public class StructattrServiceImpl extends ServiceImpl { + + /** + * 出入库明细服务 + */ + @Autowired + private IStructattrService iStructattrService; + + @Override + public List handler(List list, StrategyStructParam param) { + //分配数量 + //当前条件只有id,批次 + log.info("---------执行fifo出库分配规则---------"); + List maters = param.getStrategyMaters(); + StrategyMater strategyMater = maters.get(0); + BigDecimal planQty = strategyMater.getQty(); + List vechielDtos = + iStructattrService.collectVechicle(MapOf.of("material_id", strategyMater.getMaterial_id() + , "pcsn", strategyMater.getPcsn() + , "stor_code", param.getStor_code() + , "sect_code", param.getSect_code() + , "plan_qty", planQty + , "is_lock", "false" + , "order_by", "gro.update_time asc") + ); + if (ObjectUtils.isEmpty(vechielDtos)) { + throw new BadRequestException("当前出库策略:先进先出,库存分配失败,失败原因:库存不足!"); + } + List divStruct = new ArrayList<>(); + for (StructattrVechielDto vechielDto : vechielDtos) { + if (planQty.intValue()<=0){ + break; + } + BigDecimal qty = vechielDto.getQty(); + BigDecimal subQty = planQty.subtract(qty); + if (subQty.doubleValue()>=0){ + vechielDto.setFrozen_qty(vechielDto.getQty()); + }else { + vechielDto.setFrozen_qty(planQty); + } + planQty=subQty; + StrategyStructMaterialVO materialVO = new StrategyStructMaterialVO(); + BeanUtils.copyProperties(vechielDto,materialVO); + divStruct.add(materialVO); + } + return divStruct; + } + +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/enums/IOSEnum.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/enums/IOSEnum.java index ea52c2b..b208a27 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/enums/IOSEnum.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/enums/IOSEnum.java @@ -40,7 +40,10 @@ public enum IOSEnum { LOCK_TYPE(MapOf.of("未锁定", "0", "入库锁", "1", "出库锁", "2" , "移入锁", "3", "移出锁", "4", "其他锁","9" )), - + //库区类型 + ST_SECT_TYPE(MapOf.of("主存区", "00", "暂存区", "10", "平库", "90" + , "移入锁", "3", "移出锁", "4", "其他锁","9" + )), // 点位状态 POINT_STATUS(MapOf.of("无货", "1", "有货", "2" )), diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java index c5cd145..a3912d1 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java @@ -37,6 +37,7 @@ import org.nl.wms.warehouse_manage.enums.IOSEnum; import org.nl.wms.warehouse_manage.inventory.IStInventoryService; import org.nl.wms.warehouse_manage.inventory.core.param.impl.AddInvParam; import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType; +import org.nl.wms.warehouse_manage.inventory.core.param.impl.OutDisParam; import org.nl.wms.warehouse_manage.inventory.core.param.impl.OutDisReverseParam; import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService; @@ -592,17 +593,17 @@ public class OutBillServiceImpl extends ServiceImpl i break; } } - ioStorInvDisMapper.insert(ioStorInvDis); + ioStorInvDisMapper.batchSave(disSet); //锁定货位 - JSONObject lock_map = new JSONObject(); - lock_map.put("struct_code", outAllocation.getStruct_code()); - lock_map.put("inv_id", ioStorInv.getIostorinv_id()); - lock_map.put("inv_code", ioStorInv.getBill_code()); - lock_map.put("inv_type", ioStorInv.getBill_type()); - lock_map.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁")); - iStructattrService.updateStatusByCode("0",lock_map); - + final Set structs = disSet.stream().map(IOStorInvDis::getStruct_code).collect(Collectors.toSet()); + iStructattrService.update(new LambdaUpdateWrapper<>(Structattr.class) + .set(Structattr::getInv_id,ioStorInv.getIostorinv_id()) + .set(Structattr::getInv_code,ioStorInv.getBill_code()) + .set(Structattr::getInv_type,ioStorInv.getBill_type()) + .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁")) + .in(Structattr::getStruct_code,structs) + ); //更新详情 dtl.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); dtl.setUnassign_qty(unassign_qty); @@ -727,7 +728,6 @@ public class OutBillServiceImpl extends ServiceImpl i if (ObjectUtil.isEmpty(ioStorInv)) { throw new BadRequestException("当前订单无可分配出库明细"); } - //查询生成和未分配完的明细 JSONObject queryDtl = new JSONObject(); queryDtl.put("bill_status", IOSEnum.BILL_STATUS.code("分配完")); @@ -738,14 +738,22 @@ public class OutBillServiceImpl extends ServiceImpl i if (ObjectUtil.isEmpty(dtls)) { throw new BadRequestException("当前订单无可分配出库明细"); } - for (IOStorInvDtlDto dtl:dtls){ - double unassign_qty = dtl.getUnassign_qty().doubleValue(); + BigDecimal unassign_qty = dtl.getUnassign_qty(); + if (unassign_qty.intValue() <= 0){ + throw new BadRequestException("当前明细已全部分配,未分配数量已经为0"); + } //分配数量 - double allocation_canuse_qty = 0; + BigDecimal allocation_canuse_qty = BigDecimal.ZERO; + List outDisParams = new ArrayList<>(); + List invDis = new ArrayList<>(); for (int i = 0; i < rows.size(); i++){ JSONObject ivt = rows.getJSONObject(i); - double canuse_qty = ivt.getDoubleValue("qty"); + //库存可用 + BigDecimal canuse_qty = ivt.getBigDecimal("qty"); +// BigDecimal frozen_qty = ivt.getBigDecimal("frozen_qty"); + //库存分配数:为负数 + BigDecimal change_qty = ivt.getBigDecimal("change_qty"); //分配明细 IOStorInvDis ioStorInvDis = new IOStorInvDis(); ioStorInvDis.setIostorinvdis_id(IdUtil.getStringId()); @@ -758,6 +766,7 @@ public class OutBillServiceImpl extends ServiceImpl i ioStorInvDis.setMaterial_code(dtl.getMaterial_code()); ioStorInvDis.setSect_name(ivt.getString("sect_name")); ioStorInvDis.setSect_code(ivt.getString("sect_code")); + //判断是不是平库 ioStorInvDis.setStruct_id(ivt.getString("struct_id")); ioStorInvDis.setStruct_name(ivt.getString("struct_name")); ioStorInvDis.setStruct_code(ivt.getString("struct_code")); @@ -766,57 +775,44 @@ public class OutBillServiceImpl extends ServiceImpl i ioStorInvDis.setQty_unit_id(dtl.getQty_unit_id()); ioStorInvDis.setQty_unit_name(dtl.getQty_unit_name()); ioStorInvDis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("未生成")); - if (unassign_qty <= 0){ - throw new BadRequestException("已全部分配完,未分配数量为0"); + unassign_qty = unassign_qty.subtract(change_qty); + if (unassign_qty.intValue()<0){ + unassign_qty = BigDecimal.ZERO; } - unassign_qty = unassign_qty-canuse_qty; - if (unassign_qty<0){ - unassign_qty=0; - } - allocation_canuse_qty = allocation_canuse_qty + canuse_qty; - ioStorInvDis.setPlan_qty(BigDecimal.valueOf(canuse_qty)); - - //锁定货位 - JSONObject lock_map = new JSONObject(); - lock_map.put("struct_code", ivt.getString("struct_code")); - lock_map.put("inv_id", ioStorInv.getIostorinv_id()); - lock_map.put("inv_code", ioStorInv.getBill_code()); - lock_map.put("inv_type", ioStorInv.getBill_type()); - lock_map.put("lock_type", IOSEnum.LOCK_TYPE.code("出库锁")); - iStructattrService.updateStatusByCode("0",lock_map); - - //生成分配明细 - ioStorInvDisMapper.insert(ioStorInvDis); - - //更新库存 加冻结减可用 - List updateIvtList = new ArrayList<>(); - JSONObject jsonIvt = new JSONObject(); - jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_ADD_FROZEN); - jsonIvt.put("storagevehicle_code", ivt.getString("storagevehicle_code")); - jsonIvt.put("material_id", dtl.getMaterial_id()); - jsonIvt.put("pcsn", ivt.getString("pcsn")); - jsonIvt.put("qty_unit_id", dtl.getQty_unit_id()); - jsonIvt.put("qty_unit_name", dtl.getQty_unit_name()); - jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); - updateIvtList.add(jsonIvt); - iMdPbGroupPlateService.updateIvt(updateIvtList); + allocation_canuse_qty = allocation_canuse_qty.add(change_qty); + ioStorInvDis.setPlan_qty(change_qty); + invDis.add(ioStorInvDis); + outDisParams.add(OutDisParam.builder() + .storagevehicleCode(ivt.getString("storagevehicle_code")) + .materialCode(ivt.getString("material_code")) + .pcsn(ivt.getString("pcsn")) + .frozenQty(change_qty).build()); } - + //锁定货位.生成分配明细,更新库存 加冻结减可用,锁定货位 + final Set structs = invDis.stream().map(IOStorInvDis::getStruct_code).collect(Collectors.toSet()); + iStructattrService.update(new LambdaUpdateWrapper<>(Structattr.class) + .set(Structattr::getInv_id,ioStorInv.getIostorinv_id()) + .set(Structattr::getInv_code,ioStorInv.getBill_code()) + .set(Structattr::getInv_type,ioStorInv.getBill_type()) + .set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁")) + .in(Structattr::getStruct_code,structs) + ); + iStInventoryService.changeInventory(InventoryChangeType.OUT_DIS, outDisParams); + ioStorInvDisMapper.batchSave(invDis); //更新详情 - dtl.setBill_status(unassign_qty==0 ? IOSEnum.BILL_STATUS.code("分配完"): IOSEnum.BILL_STATUS.code("分配中")); - double assign_qty = allocation_canuse_qty + dtl.getAssign_qty().doubleValue(); - dtl.setUnassign_qty(BigDecimal.valueOf(unassign_qty)); - dtl.setAssign_qty(BigDecimal.valueOf(assign_qty)); - ioStorInvDtlMapper.updateById(dtl); + final IOStorInvDtlDto dto = new IOStorInvDtlDto(); + dto.setBill_status(unassign_qty.intValue() == 0 ? IOSEnum.BILL_STATUS.code("分配完"): IOSEnum.BILL_STATUS.code("分配中")); + dto.setUnassign_qty(unassign_qty); + dto.setAssign_qty(allocation_canuse_qty.add(dtl.getAssign_qty())); + dto.setIostorinvdtl_id(dtl.getIostorinvdtl_id()); + ioStorInvDtlMapper.updateById(dto); } - //更新主表 //根据单据标识判断明细是否都已经分配完成 int disCount = ioStorInvDtlMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDtl.class) .eq(IOStorInvDtl::getIostorinv_id,iostorinv_id) .lt(IOStorInvDtl::getBill_status,IOSEnum.BILL_STATUS.code("分配完")) ); - // 根据分配货位情况 更新主表单据状态 IOStorInv ios = new IOStorInv(); ios.setIostorinv_id(iostorinv_id); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/core/param/impl/OutDisParam.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/core/param/impl/OutDisParam.java index 1a8158e..882cd57 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/core/param/impl/OutDisParam.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/core/param/impl/OutDisParam.java @@ -1,19 +1,22 @@ package org.nl.wms.warehouse_manage.inventory.core.param.impl; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import org.nl.wms.warehouse_manage.inventory.core.param.InventoryParam; import java.math.BigDecimal; @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor public class OutDisParam implements InventoryParam { private String storagevehicleCode; private String materialCode; private String pcsn; - private BigDecimal qty; - private String extCode; - private String extType; - private String unitName; + private BigDecimal frozenQty; private String remark; @Override diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java index 9c55744..b707b65 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java @@ -105,11 +105,11 @@ public class StInventoryServiceImpl implements IStInventoryService { if (groupPlate == null){ throw new BadRequestException("库存增加失败,当前库存不存在"); } - final BigDecimal qty = groupPlate.getQty().subtract(outDisParam.getQty()); + final BigDecimal qty = groupPlate.getQty().subtract(outDisParam.getFrozenQty()); if (qty.intValue() < 0) { throw new BadRequestException("库存变动失败,可用数量-变动数量为负数"+groupPlate.getStoragevehicle_code()); } - final BigDecimal frozenQty = groupPlate.getFrozen_qty().add(outDisParam.getQty()); + final BigDecimal frozenQty = groupPlate.getFrozen_qty().add(outDisParam.getFrozenQty()); iMdPbGroupplateService.update(new LambdaUpdateWrapper() .set(GroupPlate::getQty, qty) .set(GroupPlate::getFrozen_qty,frozenQty) diff --git a/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index 1768a21..e60eb5d 100644 --- a/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -211,6 +211,7 @@ {{ parseFloat(scope.row.plan_qty).toFixed(3) }} + @@ -224,7 +225,7 @@ - + @@ -494,9 +495,6 @@ export default { this.tableDtl = res }) }, - queryTableDtl2() { - this.queryTableDtl() - }, queryTableDdis(iostorinvdtl_id) { checkoutbill.getOutBillDis({ 'iostorinvdtl_id': iostorinvdtl_id, 'bill_status': '01' }).then(res => { this.tabledis = res diff --git a/nladmin-ui/src/views/wms/st/outbill/StructIvt.vue b/nladmin-ui/src/views/wms/st/outbill/StructIvt.vue index 87b091b..52e928a 100644 --- a/nladmin-ui/src/views/wms/st/outbill/StructIvt.vue +++ b/nladmin-ui/src/views/wms/st/outbill/StructIvt.vue @@ -93,9 +93,11 @@ - + + + @@ -204,15 +206,15 @@ export default { } row.edit = !row.edit if (row.edit) { - this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) - parseFloat(row.qty) - this.queryrow.assign_qty = parseFloat(this.queryrow.assign_qty) + parseFloat(row.qty) + this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) - parseFloat(row.change_qty) + this.queryrow.assign_qty = parseFloat(this.queryrow.assign_qty) + parseFloat(row.change_qty) } else { - this.queryrow.assign_qty = parseFloat(this.queryrow.assign_qty) - parseFloat(row.qty) + this.queryrow.assign_qty = parseFloat(this.queryrow.assign_qty) - parseFloat(row.change_qty) // 如果待分配重量等于0则 明细重量 - 已分配重量 if (parseInt(this.queryrow.unassign_qty) === 0) { this.queryrow.unassign_qty = parseFloat(this.goal_unassign_qty) - parseFloat(this.queryrow.assign_qty) } else { - this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) + parseFloat(row.qty) + this.queryrow.unassign_qty = parseFloat(this.queryrow.unassign_qty) + parseFloat(row.change_qty) } if (this.queryrow.unassign_qty > this.goal_unassign_qty) { this.queryrow.unassign_qty = JSON.parse(JSON.stringify(this.goal_unassign_qty))