diff --git a/nladmin-system/wms-server/src/main/java/org/nl/common/domain/constant/DictConstantPool.java b/nladmin-system/wms-server/src/main/java/org/nl/common/domain/constant/DictConstantPool.java index 9529ca4..a3cb0ca 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/common/domain/constant/DictConstantPool.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/common/domain/constant/DictConstantPool.java @@ -1,4 +1,4 @@ -package org.nl.common.domain.constantt; +package org.nl.common.domain.constant; /** * s diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java index 1df7308..4de1fdc 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java @@ -49,9 +49,9 @@ import java.util.stream.Collectors; public class GroupController { @Autowired - private final IMdPbGroupplateService iMdPbGroupplateService; + private IMdPbGroupplateService iMdPbGroupplateService; @Autowired - private final IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; @Autowired private final MdPbGroupplateMapper mdPbGroupplateMapper; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/StructattrVechielDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/StructattrVechielDto.java index 0ad847c..1005b00 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/StructattrVechielDto.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/StructattrVechielDto.java @@ -3,6 +3,7 @@ package org.nl.wms.basedata_manage.service.dao; import lombok.Data; import org.nl.wms.warehouse_manage.service.dao.GroupPlate; +import java.io.Serializable; import java.math.BigDecimal; /* @@ -10,7 +11,7 @@ import java.math.BigDecimal; * @Date 2023/5/4 19:49 */ @Data -public class StructattrVechielDto extends GroupPlate { +public class StructattrVechielDto implements Serializable { private static final long serialVersionUID = 1L; /** @@ -22,6 +23,8 @@ public class StructattrVechielDto extends GroupPlate { * 仓位编码 */ private String struct_code; + + private String lock_type; /** * 库区标识 */ @@ -31,70 +34,8 @@ public class StructattrVechielDto extends GroupPlate { */ private String stor_code; - /** - * 宽度 - */ - private Integer w; - /** - * 高度 - */ - private Integer h; - - /** - * 深度(长度) - */ - private Integer l; - - /** - * 承受重量 - */ - private Integer weight; - - /** - * 排 - */ - private Integer row_num; - - /** - * 列 - */ - private Integer col_num; - - /** - * 层 - */ - private Integer layer_num; - - /** - * 块 - */ - private Integer block_num; - - /** - * 超限货位关联的货位编号 - */ - private String control_code; - - /** - * 是否临时仓位 - */ - private Boolean is_temp; - - /** - * 是否启用 - */ - private Boolean is_used; - - /** - * 锁定类型 - */ - private String lock_type; - - /** - * 是否判断高度 - */ - private String is_zdepth; + private String group_id; /** * 存储载具号 @@ -106,11 +47,29 @@ public class StructattrVechielDto extends GroupPlate { */ private String material_code; - /** * 物料名称 */ private String material_name; + private String material_id; + private String pcsn; + private BigDecimal qty; + private BigDecimal frozen_qty; + private String qty_unit_name; + private String qty_unit_id; + + + /** + * 来源单据号 + */ + private String ext_code; + + /** + * 来源单据类型 + */ + private String ext_type; + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 07089d6..1e04b9f 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -4,9 +4,9 @@ + + + INSERT INTO st_ivt_iostorinvdis ( + iostorinvdis_id, + iostorinv_id, + iostorinvdtl_id, + seq_no, + sect_id, + sect_code, + sect_name, + struct_id, + struct_code, + struct_name, + material_id, + material_code, + pcsn, + work_status, + task_id, + storagevehicle_code, + is_issued, + qty_unit_id, + qty_unit_name, + plan_qty, + real_qty, + point_code + ) VALUES + + ( + #{item.iostorinvdis_id}, + #{item.iostorinv_id}, + #{item.iostorinvdtl_id}, + #{item.seq_no}, + #{item.sect_id}, + #{item.sect_code}, + #{item.sect_name}, + #{item.struct_id}, + #{item.struct_code}, + #{item.struct_name}, + #{item.material_id}, + #{item.material_code}, + #{item.pcsn}, + #{item.work_status}, + #{item.task_id}, + #{item.storagevehicle_code}, + #{item.is_issued}, + #{item.qty_unit_id}, + #{item.qty_unit_name}, + #{item.plan_qty}, + #{item.real_qty}, + #{item.point_code} + ) + + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.java index 5af544f..a0544e4 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.java @@ -2,13 +2,26 @@ package org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl; +import java.util.List; +import java.util.Set; + /** * @author dsh * 2025/5/21 */ @Mapper public interface IOStorInvDtlMapper extends BaseMapper { + /** + * 批量插入 + * @param list + * @return + */ + int batchInsert(@Param("list") List list); + + int batchUpdateUnassignQty(@Param("dtlSet") Set dtlSet, @Param("billStatus") String billStatus); + } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.xml new file mode 100644 index 0000000..982cb4a --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvDtlMapper.xml @@ -0,0 +1,55 @@ + + + + + INSERT INTO st_ivt_iostorinvdtl ( + iostorinvdtl_id, + iostorinv_id, + seq_no, + material_id, + material_code, + pcsn, + bill_status, + qty_unit_id, + qty_unit_name, + source_bill_code, + source_bill_type, + source_billdtl_id, + plan_qty, + remark, + assign_qty, + unassign_qty + ) VALUES + + ( + #{item.iostorinvdtl_id}, + #{item.iostorinv_id}, + #{item.seq_no}, + #{item.material_id}, + #{item.material_code}, + #{item.pcsn}, + #{item.bill_status}, + #{item.qty_unit_id}, + #{item.qty_unit_name}, + #{item.source_bill_code}, + #{item.source_bill_type}, + #{item.source_billdtl_id}, + #{item.plan_qty}, + #{item.remark}, + #{item.assign_qty}, + #{item.unassign_qty} + ) + + + + + UPDATE st_ivt_iostorinvdtl + SET assign_qty = 0, + unassign_qty = plan_qty, + bill_status = #{billStatus} + WHERE iostorinvdtl_id IN + + #{id} + + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml index 87d9951..efaf272 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/dao/mapper/IOStorInvMapper.xml @@ -50,7 +50,7 @@ SELECT - s.stor_id, - s.stor_code, - s.stor_name, - g.material_code, - SUM(g.qty - g.frozen_qty) AS available_qty, -- 可用库存 - SUM(g.qty) AS total_qty -- 总库存 + s.stor_id as storId, + s.stor_code as storCode, + s.stor_name as storName, + g.material_code as materialCode, + SUM(g.frozen_qty) AS frozenQty, -- 可用库存 + SUM(g.qty) AS qty -- 总库存 FROM md_pb_groupplate g INNER JOIN st_ivt_structattr s ON g.storagevehicle_code = s.storagevehicle_code - WHERE g.material_id = #{query.materialCode} - AND g.status != '03' -- 排除已移除/已禁用的组盘记录 + WHERE g.material_code = #{query.materialCode} + AND g.status = '02' -- 排除已移除/已禁用的组盘记录 AND s.is_used = 1 -- 只统计启用的仓位 GROUP BY s.stor_id, s.stor_code, s.stor_name, g.material_code ORDER BY s.stor_code; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java index 19c7878..845f16e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java @@ -60,11 +60,13 @@ public class StInventoryDto { * 库位名称 */ private String storName; + private String storCode; /** * 区域名称 */ private String sectName; + private String sectcode; /** * 物料编码 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 803c71d..9c55744 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 @@ -1,27 +1,166 @@ package org.nl.wms.warehouse_manage.inventory.impl; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +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.InventoryParam; +import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType; +import org.nl.wms.warehouse_manage.inventory.core.param.impl.*; import org.nl.wms.warehouse_manage.inventory.dao.mapper.StInventoryMapper; import org.nl.wms.warehouse_manage.inventory.dto.StInventoryDto; import org.nl.wms.warehouse_manage.inventory.dto.StInventoryQuery; +import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_manage.service.dao.GroupPlate; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; +import java.math.BigDecimal; import java.util.List; /** * 库存查询服务 */ @Service +@Slf4j public class StInventoryServiceImpl implements IStInventoryService { @Resource private StInventoryMapper stInventoryMapper; + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; @Override public List queryInventory(StInventoryQuery query){ List result = stInventoryMapper.queryInventory(query); return result; - }; + } + @Override + public void changeInventory(InventoryChangeType typeEnum, List params) { + final String type = typeEnum.getType(); + params.forEach(a->a.validation()); + //AddInvParam,SubInvParam,OutDisParam,OutFinishParam,InDisParam,InFinishParam + switch (type){ + case "AddInvParam": + final List addInvParams = (List) params; + for (AddInvParam invParam : addInvParams) { + LambdaQueryWrapper query = new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, invParam.getStoragevehicleCode()) + .eq(GroupPlate::getMaterial_code, invParam.getMaterialCode()); + if (!StringUtils.isEmpty(invParam.getPcsn())){ + query.eq(GroupPlate::getPcsn,invParam.getPcsn()); + } + GroupPlate groupPlate = iMdPbGroupplateService.getOne(query); + if (groupPlate == null){ + throw new BadRequestException("库存增加失败,当前库存不存在"); + } + iMdPbGroupplateService.update(new LambdaUpdateWrapper() + .set(GroupPlate::getQty,groupPlate.getQty().add(invParam.getQty())) + .set(GroupPlate::getRemark,invParam.getRemark()) + .set(GroupPlate::getUpdate_time,DateUtil.now()) + .eq(GroupPlate::getGroup_id,groupPlate.getGroup_id())); + } + break; + case "SubInvParam": + final List subInvParams = (List) params; + for (SubInvParam subInvParam : subInvParams) { + LambdaQueryWrapper query = new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, subInvParam.getStoragevehicleCode()) + .eq(GroupPlate::getMaterial_code, subInvParam.getMaterialCode()); + if (!StringUtils.isEmpty(subInvParam.getPcsn())){ + query.eq(GroupPlate::getPcsn,subInvParam.getPcsn()); + } + GroupPlate groupPlate = iMdPbGroupplateService.getOne(query); + final BigDecimal qty = groupPlate.getQty().subtract(subInvParam.getQty()); + if (groupPlate == null || qty.doubleValue() < 0){ + throw new BadRequestException("库存扣减失败,当前库存不存在"); + } + iMdPbGroupplateService.update(new LambdaUpdateWrapper() + .set(GroupPlate::getQty, qty) + .set(GroupPlate::getRemark,subInvParam.getRemark()) + .set(GroupPlate::getUpdate_time,DateUtil.now()) + .eq(GroupPlate::getGroup_id,groupPlate.getGroup_id())); + } + break; + case "OutDisParam": + final List outDisParams = (List) params; + for (OutDisParam outDisParam : outDisParams) { + LambdaQueryWrapper query = new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, outDisParam.getStoragevehicleCode()) + .eq(GroupPlate::getMaterial_code, outDisParam.getMaterialCode()); + if (!StringUtils.isEmpty(outDisParam.getPcsn())){ + query.eq(GroupPlate::getPcsn,outDisParam.getPcsn()); + } + GroupPlate groupPlate = iMdPbGroupplateService.getOne(query); + if (groupPlate == null){ + throw new BadRequestException("库存增加失败,当前库存不存在"); + } + final BigDecimal qty = groupPlate.getQty().subtract(outDisParam.getQty()); + if (qty.intValue() < 0) { + throw new BadRequestException("库存变动失败,可用数量-变动数量为负数"+groupPlate.getStoragevehicle_code()); + } + final BigDecimal frozenQty = groupPlate.getFrozen_qty().add(outDisParam.getQty()); + iMdPbGroupplateService.update(new LambdaUpdateWrapper() + .set(GroupPlate::getQty, qty) + .set(GroupPlate::getFrozen_qty,frozenQty) + .set(GroupPlate::getUpdate_time,DateUtil.now()) + .eq(GroupPlate::getGroup_id,groupPlate.getGroup_id())); + } + break; + case "OutFinishParam": + final List outFinishParams = (List) params; + for (OutFinishParam outFinishParam : outFinishParams) { + final LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, outFinishParam.getStoragevehicleCode()) + .eq(GroupPlate::getMaterial_code, outFinishParam.getMaterialCode()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")); + if (!StringUtils.isEmpty(outFinishParam.getPcsn())){ + queryWrapper.eq(GroupPlate::getPcsn, outFinishParam.getPcsn()); + } + GroupPlate groupPlate = iMdPbGroupplateService.getOne(queryWrapper); + groupPlate.setFrozen_qty(groupPlate.getFrozen_qty().subtract(outFinishParam.getQty())); + groupPlate.setUpdate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setUpdate_name(SecurityUtils.getCurrentNickName()); + groupPlate.setUpdate_time(DateUtil.now()); + iMdPbGroupplateService.updateById(groupPlate); + } + break; + case "OutDisReverseParam": + final List outFinishReverseParams = (List) params; + for (OutDisReverseParam param : outFinishReverseParams) { + final LambdaQueryWrapper queryWrapper = new QueryWrapper().lambda() + .eq(GroupPlate::getStoragevehicle_code, param.getStoragevehicleCode()) + .eq(GroupPlate::getMaterial_code, param.getMaterialCode()) + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")); + if (!StringUtils.isEmpty(param.getPcsn())){ + queryWrapper.eq(GroupPlate::getPcsn, param.getPcsn()); + } + GroupPlate groupPlate = iMdPbGroupplateService.getOne(queryWrapper); + groupPlate.setFrozen_qty(groupPlate.getFrozen_qty().subtract(param.getChangeQty())); + groupPlate.setQty(groupPlate.getQty().add(param.getChangeQty())); + groupPlate.setUpdate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setUpdate_name(SecurityUtils.getCurrentNickName()); + groupPlate.setUpdate_time(DateUtil.now()); + System.out.println("========="+groupPlate.getFrozen_qty()+"========="); + iMdPbGroupplateService.updateById(groupPlate); + } + break; + case "InDisParam": + break; + case "InFinishParam": + break; + default: + throw new BadRequestException(String.format("库存变动失败,当前变动类型%d未定义",type)); + } + } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtMoreorlessdtlMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtMoreorlessdtlMapper.xml index cbd69d4..cb90d26 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtMoreorlessdtlMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/StIvtMoreorlessdtlMapper.xml @@ -23,7 +23,7 @@ LEFT JOIN st_ivt_moreorlessmst ios ON ios.mol_id = dtl.mol_id LEFT JOIN md_me_materialbase material ON material.material_id = dtl.material_id INNER JOIN md_pb_groupplate ext ON ext.storagevehicle_code = dtl.storagevehicle_code - AND ext.material_id = dtl.material_id AND dtl.pcsn = ext.pcsn + AND ext.material_code = dtl.material_code AND dtl.pcsn = ext.pcsn ios.is_delete = '0' diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java index 36bec7c..77c54ce 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java @@ -62,7 +62,7 @@ public class UpdateIvtUtils { break; case IOSConstant.UPDATE_IVT_TYPE_ADD_FROZEN : // 加冻结减可用 - updateAddFrozenIvt(where); +// updateAddFrozenIvt(where); break; case IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN : // 减冻结 @@ -70,15 +70,15 @@ public class UpdateIvtUtils { break; case IOSConstant.UPDATE_IVT_TYPE_SUB_FROZEN_ADD_CANUSE : // 减冻结加可用 - updateSubFrozenAddIvt(where); + // updateSubFrozenAddIvt(where); break; case IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE_IVT : // 加可用(加库存) - updateAddCanuseIvt(where); +// updateAddCanuseIvt(where); break; case IOSConstant.UPDATE_IVT_TYPE_SUB_CANUSE_IVT : // 减可用(减库存) - updateSubCanuseIvt(where); +// updateSubCanuseIvt(where); break; default: break; diff --git a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue index b8fb791..699185d 100644 --- a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue @@ -20,7 +20,10 @@ - +
+ + 下推 +
@@ -66,7 +69,7 @@ - + @@ -86,11 +89,10 @@ - + @@ -120,7 +122,7 @@ export default { return { permission: {}, statusOptions: [ - { value: 0, label: '生成' }, + { value: '0', label: '生成' }, { value: '01', label: '分配' }, { value: '10', label: '下发' }, { value: '20', label: '执行' }, @@ -133,6 +135,7 @@ export default { currentDemand: {}, inventoryList: [], selectedInventory: [], + multipleSelection: [], rules: { creator: [{ required: true, message: '请输入操作人', trigger: 'blur' }], createTime: [{ required: true, message: '请选择需求日期', trigger: 'change' }], @@ -165,6 +168,9 @@ export default { const map = { 0: '', '01': 'warning', '10': 'primary', '20': 'primary', '80': 'success', '90': 'danger' } return map[String(status)] || '' }, + handleSelectionChange(selection) { + this.multipleSelection = selection + }, openAllocateDialog(row) { this.currentDemand = { ...row } this.inventoryList = [] @@ -181,11 +187,12 @@ export default { if (row.inventoryDis) { try { const saved = JSON.parse(row.inventoryDis) + const savedList = Array.isArray(saved) ? saved : [saved] this.inventoryList.forEach(item => { - const match = saved.find(s => s.houseCode === item.houseCode) + const match = savedList.find(s => (s.horseCode || s.houseCode) === item.houseCode) if (match) { item._selected = true - item.allocQty = match.allocQty + item.allocQty = Number(match.qty || match.allocQty || 0) this.$nextTick(() => { this.$refs.allocateTable && this.$refs.allocateTable.toggleRowSelection(item, true) }) @@ -219,16 +226,11 @@ export default { this.$message.warning(`仓库 ${invalidRow.houseCode} 的分配数量必须大于0`) return } - const inventoryDis = JSON.stringify( - this.selectedInventory.map(item => ({ - houseCode: item.houseCode, - houseName: item.houseName, - skuCode: item.skuCode, - skuName: item.skuName, - qty: item.qty, - allocQty: item.allocQty - })) - ) + const inventoryDisList = this.selectedInventory.map(item => ({ + horseCode: item.houseCode, + qty: item.allocQty + })) + const inventoryDis = inventoryDisList.length === 1 ? JSON.stringify(inventoryDisList[0]) : JSON.stringify(inventoryDisList) this.allocateSaving = true allocate({ id: this.currentDemand.id, inventoryDis }).then(() => { this.$message.success('库存分配成功') @@ -240,17 +242,26 @@ export default { this.allocateSaving = false }) }, - handlePush(row) { - this.$confirm(`确认下发需求单 "${row.workOrder}" 吗?`, '提示', { + handleBatchPush() { + if (!this.multipleSelection.length) { + this.$message.warning('请先勾选要下推的需求单') + return + } + const invalidRows = this.multipleSelection.filter(item => String(item.status) !== '01') + if (invalidRows.length) { + this.$message.warning('仅支持批量下推状态为“分配”的需求单') + return + } + this.$confirm(`确认批量下推已勾选的 ${this.multipleSelection.length} 条需求单吗?`, '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => { - push({ id: row.id, workOrder: row.workOrder }).then(() => { - this.$message.success('下发成功') + push(this.multipleSelection).then(() => { + this.$message.success('下推成功') this.crud.toQuery() }).catch(() => { - this.$message.error('下发失败') + this.$message.error('下推失败') }) }).catch(() => {}) } diff --git a/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue b/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue index d155483..8fd0788 100644 --- a/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue +++ b/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue @@ -128,18 +128,19 @@ :data="form.tableData" style="width: 100%;" border + fit :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > - - - - - - - - - + + + + + + + + +