From d19bdf5b1015182847ce2873e3cc064585d8136d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=80=A1=E8=93=89?= <377046077@qq.com> Date: Tue, 17 Jun 2025 14:32:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=8C=81=E6=9C=BA=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BasWarehouseController.java | 10 ----- .../bas/warehouse/domain/BasWarehouse.java | 3 ++ .../warehouse/mapper/BasWarehouseMapper.java | 5 +-- .../service/IBasWarehouseService.java | 5 +-- .../service/impl/BasWarehouseServiceImpl.java | 8 +--- .../stockindetail/domain/InStockinDetail.java | 4 ++ .../mapper/InStockinDetailMapper.java | 2 +- .../service/IInStockinDetailService.java | 2 +- .../impl/InStockinDetailServiceImpl.java | 2 +- .../ruoyi/pda/controller/PdaController.java | 14 +++--- .../com/ruoyi/pda/service/PdaServiceImp.java | 45 ++++++++++++++++++- .../com/ruoyi/pda/trayMsg/domain/TrayMsg.java | 30 +++++++++++++ .../bas/warehouse/BasWarehouseMapper.xml | 11 +++-- .../mapper/in/InStockinDetailMapper.xml | 5 ++- .../resources/mapper/pda/TrayMsgMapper.xml | 10 ++++- 15 files changed, 111 insertions(+), 45 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/controller/BasWarehouseController.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/controller/BasWarehouseController.java index cb7b2bb..ac847d9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/controller/BasWarehouseController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/controller/BasWarehouseController.java @@ -96,15 +96,5 @@ public class BasWarehouseController extends BaseController { return toAjax(basWarehouseService.deleteBasWarehouseByWarehouseIds(warehouseIds)); } - /** - * 获取除了CTU以外的库 - */ - @RequestMapping("/getWarehouseByType") - @ResponseBody - public AjaxResult getWarehouseByType() - { - List list = basWarehouseService.selectBasWarehouseListByType(); - return AjaxResult.success(list); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/domain/BasWarehouse.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/domain/BasWarehouse.java index f63985c..4599791 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/domain/BasWarehouse.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/domain/BasWarehouse.java @@ -59,6 +59,9 @@ public class BasWarehouse extends BaseEntity /*仓库数据权限*/ private List dataScope; + private List typeData; + + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/mapper/BasWarehouseMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/mapper/BasWarehouseMapper.java index e3df09c..7941b43 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/mapper/BasWarehouseMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/mapper/BasWarehouseMapper.java @@ -60,9 +60,6 @@ public interface BasWarehouseMapper */ public int deleteBasWarehouseByWarehouseIds(String[] warehouseIds); - /** - * - */ - public List selectBasWarehouseListByType(); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/IBasWarehouseService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/IBasWarehouseService.java index 3060c57..70303cc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/IBasWarehouseService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/IBasWarehouseService.java @@ -60,8 +60,5 @@ public interface IBasWarehouseService */ public int deleteBasWarehouseByWarehouseId(String warehouseId); - /** - * - */ - public List selectBasWarehouseListByType(); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java index df69308..c18b961 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java @@ -116,11 +116,5 @@ public class BasWarehouseServiceImpl implements IBasWarehouseService return basWarehouseMapper.deleteBasWarehouseByWarehouseId(warehouseId); } - /** - * - */ - @Override - public List selectBasWarehouseListByType() { - return basWarehouseMapper.selectBasWarehouseListByType(); - } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/domain/InStockinDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/domain/InStockinDetail.java index f8aa356..3766448 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/domain/InStockinDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/domain/InStockinDetail.java @@ -138,4 +138,8 @@ public class InStockinDetail extends BaseEntity private ExtraField extraField; + private String warehouseName; + + private String warehouseId; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java index aa40af5..dc91ccc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/mapper/InStockinDetailMapper.java @@ -68,5 +68,5 @@ public interface InStockinDetailMapper void deleteInStockinDetailByStockinGuid(String stockinGuid); - List selectStockinByDetailById(String stockinDetailId); + InStockinDetail selectStockinByDetailById(String stockinDetailId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java index a155a7d..f6b9b05 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/IInStockinDetailService.java @@ -80,5 +80,5 @@ public interface IInStockinDetailService AjaxResult barcodePrinting(Map stockinDetailId); - public List selectStockinByDetailById(String stockinDetailId); + public InStockinDetail selectStockinByDetailById(String stockinDetailId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java index a0c4b79..2dc1c90 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/in/stockindetail/service/impl/InStockinDetailServiceImpl.java @@ -124,7 +124,7 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService } @Override - public List selectStockinByDetailById(String stockinDetailId) { + public InStockinDetail selectStockinByDetailById(String stockinDetailId) { return inStockinDetailMapper.selectStockinByDetailById(stockinDetailId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java index 123eeed..0118fdc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java @@ -127,8 +127,8 @@ public class PdaController extends BaseController { */ @RequestMapping("/inorder/detail") @ResponseBody - public List inoderList(String stockinDetailId) { - List inStockinDetail = inStockinDetailService.selectStockinByDetailById(stockinDetailId); + public InStockinDetail inoderList(String stockinDetailId) { + InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(stockinDetailId); return inStockinDetail; } /** @@ -158,15 +158,13 @@ public class PdaController extends BaseController { @ResponseBody public AjaxResult addInJob(@RequestBody TrayCodeMsg trayCodeMsg) { BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); - if(basWarehouse==null){ - return AjaxResult.error("仓库不存在"); - } +// if(basWarehouse==null){ +// return AjaxResult.error("仓库不存在"); +// } if("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())){ return AjaxResult.error("请选择高架库货位"); } - if("2".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getEntranceId())){ - return AjaxResult.error("请选择入口"); - } + return pdaService.addInJob(trayCodeMsg); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java index 18d94b5..5ef1138 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java @@ -1,14 +1,24 @@ package com.ruoyi.pda.service; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.in.stockin.service.IInStockinService; +import com.ruoyi.in.stockindetail.domain.InStockinDetail; +import com.ruoyi.in.stockindetail.service.IInStockinDetailService; import com.ruoyi.pda.domain.TrayCodeMsg; import com.ruoyi.pda.mapper.PdaMapper; +import com.ruoyi.pda.trayMsg.domain.TrayMsg; +import com.ruoyi.pda.trayMsg.service.ITrayMsgService; +import com.ruoyi.system.service.ISysRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -19,6 +29,12 @@ public class PdaServiceImp implements PdaService{ PdaMapper pdaMapper; @Autowired IBasCargoSpaceService basCargoSpaceService; + @Autowired + ISysRoleService sysRoleService; + @Autowired + IInStockinDetailService inStockinDetailService; + @Autowired + ITrayMsgService trayMsgService; /** * 空托盘入库 @@ -94,6 +110,32 @@ public class PdaServiceImp implements PdaService{ @Override public AjaxResult bindTrayMsg(TrayCodeMsg trayCodeMsg) { + //判断用户的仓库权限 + List roles = sysRoleService.selectRolesByUserId(SecurityUtils.getUserId()); + if (!roles.stream().anyMatch(SysRole::isAdmin)){ + + for (SysRole role : roles) { + if (CollUtil.isNotEmpty(role.getWarehouseDataScope())){ + InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId()); + if(!role.getWarehouseDataScope().stream().anyMatch(warehouseId -> warehouseId.equals(inStockinDetail.getWarehouseId()))){ + return AjaxResult.warn("此用户无权限操作该仓库物料"); + } + } + } + + } + //判断与已绑定物料是否为同一仓库 + TrayMsg trayMsg = new TrayMsg(); + trayMsg.setTrayCode(trayCodeMsg.getTrayCode()); + List trayMsgs = trayMsgService.selectTrayMsgList(trayMsg); + if(trayMsgs.size()>0){ + InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(trayCodeMsg.getStockinDetailId()); + if(!trayMsgs.get(0).getWarehouseId().equals(inStockinDetail.getWarehouseId())){ + return AjaxResult.warn("同一托盘不能绑定不同仓库的物料"); + } + } + + HashMap map = new HashMap<>(); map.put("v_tray_code", trayCodeMsg.getTrayCode()); map.put("v_stockin_detail_id", trayCodeMsg.getStockinDetailId()); @@ -112,9 +154,8 @@ public class PdaServiceImp implements PdaService{ public AjaxResult addInJob(TrayCodeMsg trayCodeMsg) { HashMap map = new HashMap<>(); map.put("v_tray_code", trayCodeMsg.getTrayCode()); - map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); +// map.put("v_warehouse_id", trayCodeMsg.getWarehouseId()); map.put("v_cargo_space_id", trayCodeMsg.getCargoSpaceId()); - map.put("v_entrance_id", trayCodeMsg.getEntranceId()); pdaMapper.addInJob(map); String result = map.get("v_result").toString(); if("10".equals(result)){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/domain/TrayMsg.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/domain/TrayMsg.java index 73bcd20..53cc8ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/domain/TrayMsg.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/trayMsg/domain/TrayMsg.java @@ -32,6 +32,36 @@ public class TrayMsg extends BaseEntity private String productName; + private String warehouseId; + + private String warehouseName; + + private String warehouseType; + + public String getWarehouseType() { + return warehouseType; + } + + public void setWarehouseType(String warehouseType) { + this.warehouseType = warehouseType; + } + + public String getWarehouseId() { + return warehouseId; + } + + public void setWarehouseId(String warehouseId) { + this.warehouseId = warehouseId; + } + + public String getWarehouseName() { + return warehouseName; + } + + public void setWarehouseName(String warehouseName) { + this.warehouseName = warehouseName; + } + public String getProductName() { return productName; } diff --git a/ruoyi-admin/src/main/resources/mapper/bas/warehouse/BasWarehouseMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/warehouse/BasWarehouseMapper.xml index 423f06c..7e8ba0f 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/warehouse/BasWarehouseMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/warehouse/BasWarehouseMapper.xml @@ -38,6 +38,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item} + + and warehouse_type in + + #{item} + + @@ -98,8 +104,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + diff --git a/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml index 01b80c4..31c8d4a 100644 --- a/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml @@ -35,6 +35,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -301,10 +303,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" isd.supplier_id, isd.customer_id, isd.unit, isd.spec, isd.spare1, isd.spare2, isd.spare3, isd.spare4, isd.spare5, isd.spare6, isd.scan_num, isd.scan_num_x, isd.scan_num_j, bp.product_name, bp.spare1 as englishDesc, - bp.spare2 as netWeight,bp.spare5 as length,bp.spare6 as width,bp.spare7 as height,bp.spare8 as volume + bp.spare2 as netWeight,bp.spare5 as length,bp.spare6 as width,bp.spare7 as height,bp.spare8 as volume,bw.warehouse_name,ist.warehouse_id from in_stockin_detail isd left join bas_product bp on bp.product_id = isd.product_id left join in_stockin ist on ist.stockin_guid = isd.stockin_guid + left join bas_warehouse bw on bw.warehouse_id = ist.warehouse_id isd.stockin_detail_id = #{stockinDetailId} diff --git a/ruoyi-admin/src/main/resources/mapper/pda/TrayMsgMapper.xml b/ruoyi-admin/src/main/resources/mapper/pda/TrayMsgMapper.xml index 37ac1de..290c6e3 100644 --- a/ruoyi-admin/src/main/resources/mapper/pda/TrayMsgMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/pda/TrayMsgMapper.xml @@ -10,16 +10,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select id, tray_code, stockin_detail_id, quantity from tray_msg + select id, tray_code, stockin_detail_id, quantity,warehouse_id from tray_msg