From c6eb2d4ecd99bee148892abfbdca3e42f3dd6084 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期三, 07 五月 2025 18:08:07 +0800 Subject: [PATCH] 工具管理-仓库管理功能 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IWarehouseService.java | 9 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/WarehouseServiceImpl.java | 115 ++++++++++++++++++++++++++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/WarehouseMapper.xml | 20 +++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/Warehouse.java | 33 ++++--- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/WarehouseMapper.java | 7 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/WarehouseController.java | 13 ++ 6 files changed, 181 insertions(+), 16 deletions(-) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/WarehouseController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/WarehouseController.java index 6050308..4b2b3c4 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/WarehouseController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/WarehouseController.java @@ -9,6 +9,8 @@ import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import org.jeecg.common.api.vo.CommonGenericTree; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.util.oConvertUtils; @@ -66,11 +68,18 @@ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { - QueryWrapper<Warehouse> queryWrapper = QueryGenerator.initQueryWrapper(warehouse, req.getParameterMap()); + Map<String, String[]> parameterMap = req.getParameterMap(); Page<Warehouse> page = new Page<Warehouse>(pageNo, pageSize); - IPage<Warehouse> pageList = warehouseService.page(page, queryWrapper); + IPage<Warehouse> pageList = warehouseService.queryPageList(page, parameterMap); return Result.OK(pageList); } + + @ApiOperation(value="tms_warehouse-鍔犺浇鏍戝舰缁撴瀯鏁版嵁", notes="tms_warehouse-鍔犺浇鏍戝舰缁撴瀯鏁版嵁") + @GetMapping(value = "/loadTree") + public Result<?> loadTree() { + List<CommonGenericTree<Warehouse>> treeList = warehouseService.loadTree(); + return Result.OK(treeList); + } /** * 娣诲姞 diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/Warehouse.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/Warehouse.java index 63205ce..e7d1557 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/Warehouse.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/Warehouse.java @@ -4,12 +4,11 @@ import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableLogic; + +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.common.constant.CommonConstant; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; @@ -48,6 +47,12 @@ @Excel(name = "鐖惰妭鐐圭紪鍙�", width = 15) @ApiModelProperty(value = "鐖惰妭鐐圭紪鍙�") private String parentId; + /**鐖惰妭鐐逛粨搴撶紪鍙�*/ + @TableField(exist = false) + private String parentWarehouseId; + /**鐖惰妭鐐逛粨搴撳悕绉�*/ + @TableField(exist = false) + private String parentWarehouseName; /**灞曠ず搴忓彿*/ @Excel(name = "灞曠ず搴忓彿", width = 15) @ApiModelProperty(value = "灞曠ず搴忓彿") @@ -71,21 +76,21 @@ /**鍒涘缓浜�*/ @Excel(name = "鍒涘缓浜�", width = 15) @ApiModelProperty(value = "鍒涘缓浜�") - private String createdBy; + private String createBy; /**鍒涘缓鏃堕棿*/ - @Excel(name = "鍒涘缓鏃堕棿", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @Excel(name = "鍒涘缓鏃堕棿", width = 15, format = "yyyy-MM-dd HH:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:ss") @ApiModelProperty(value = "鍒涘缓鏃堕棿") - private Date createdTime; + private Date createTime; /**鏇存柊浜�*/ @Excel(name = "鏇存柊浜�", width = 15) @ApiModelProperty(value = "鏇存柊浜�") - private String updatedBy; + private String updateBy; /**鏇存柊鏃堕棿*/ - @Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd") - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") - @DateTimeFormat(pattern="yyyy-MM-dd") + @Excel(name = "鏇存柊鏃堕棿", width = 15, format = "yyyy-MM-dd HH:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:ss") @ApiModelProperty(value = "鏇存柊鏃堕棿") - private Date updatedTime; + private Date updateTime; } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/WarehouseMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/WarehouseMapper.java index 7b41acc..c63ca8f 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/WarehouseMapper.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/WarehouseMapper.java @@ -2,6 +2,11 @@ import java.util.List; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.tms.entity.Warehouse; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +19,6 @@ */ public interface WarehouseMapper extends BaseMapper<Warehouse> { + IPage<Warehouse> queryPageList(Page<Warehouse> page, + @Param(Constants.WRAPPER) Wrapper<Warehouse> queryWrapper); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/WarehouseMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/WarehouseMapper.xml index f7188e2..196972c 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/WarehouseMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/WarehouseMapper.xml @@ -2,4 +2,24 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.tms.mapper.WarehouseMapper"> + <select id="queryPageList" resultType="org.jeecg.modules.tms.entity.Warehouse"> + SELECT + t.id, + t.warehouse_id warehouseId, + t.warehouse_name warehouseName, + t.parent_id parentId, + p.warehouse_id parentWarehouseId, + p.warehouse_name parentWarehouseName, + t.seq, + t.leaf_flag leafFlag, + t.status, + t.remark, + t.create_by createBy, + t.create_time createTime, + t.update_by updateBy, + t.update_time updateTime + FROM tms_warehouse t + LEFT JOIN tms_warehouse p on t.parent_id = p.id + ${ew.customSqlSegment} + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IWarehouseService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IWarehouseService.java index a81ac49..cc79097 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IWarehouseService.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IWarehouseService.java @@ -1,7 +1,13 @@ package org.jeecg.modules.tms.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.jeecg.common.api.vo.CommonGenericTree; import org.jeecg.modules.tms.entity.Warehouse; import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; +import java.util.Map; /** * @Description: tms_warehouse @@ -11,4 +17,7 @@ */ public interface IWarehouseService extends IService<Warehouse> { + List<CommonGenericTree<Warehouse>> loadTree(); + + IPage<Warehouse> queryPageList(Page<Warehouse> page, Map<String, String[]> parameterMap); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/WarehouseServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/WarehouseServiceImpl.java index c4e7a2c..50083ca 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/WarehouseServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/WarehouseServiceImpl.java @@ -1,11 +1,22 @@ package org.jeecg.modules.tms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.jeecg.common.api.vo.CommonGenericTree; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.util.StrUtils; import org.jeecg.modules.tms.entity.Warehouse; import org.jeecg.modules.tms.mapper.WarehouseMapper; import org.jeecg.modules.tms.service.IWarehouseService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.*; /** * @Description: tms_warehouse @@ -16,4 +27,108 @@ @Service public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse> implements IWarehouseService { + @Override + public List<CommonGenericTree<Warehouse>> loadTree() { + List<Warehouse> warehouseList = list(new LambdaQueryWrapper<Warehouse>() + .eq(Warehouse::getStatus, CommonConstant.STATUS_1)); + return loadTree(warehouseList); + } + + @Override + public IPage<Warehouse> queryPageList(Page<Warehouse> page, Map<String, String[]> parameterMap) { + QueryWrapper<Warehouse> queryWrapper = Wrappers.query(); + String[] warehouseNames = parameterMap.get("warehouseName"); + if (warehouseNames != null && warehouseNames.length > 0) { + queryWrapper.like("t.warehouse_name", warehouseNames[0]); + } + String[] parentIds = parameterMap.get("parentId"); + if (parentIds != null && parentIds.length > 0) { + queryWrapper.eq("t.parent_id", parentIds[0]); + } + String[] beginTimes = parameterMap.get("beginTime"); + String[] endTimes = parameterMap.get("endTime"); + if (beginTimes != null && beginTimes.length > 0) { + queryWrapper.ge("t.create_time", beginTimes[0]); + } + if (endTimes != null && endTimes.length > 0) { + queryWrapper.le("t.create_time", endTimes[0]); + } + queryWrapper.orderByAsc("t.seq"); + return this.baseMapper.queryPageList(page, queryWrapper); + } + + private List<CommonGenericTree<Warehouse>> loadTree(List<Warehouse> warehouseList) { + Warehouse warehouse = new Warehouse(); + List<CommonGenericTree<Warehouse>> list = new ArrayList<>(); + Map<String, CommonGenericTree<Warehouse>> map = new HashMap<>(); + CommonGenericTree<Warehouse> node = new CommonGenericTree<>();//鎵嬪姩鍒涘缓鏍硅妭鐐� + node.setKey("-1"); + node.setTitle("鑸畤鏁戠敓"); + node.setRField1(""); + node.setRField2(""); + node.setEntity(new Warehouse() + .setId("-1") + .setWarehouseId("-1") + .setWarehouseName("鑸畤鏁戠敓") + .setLeafFlag("2")); + list.add(node); + if (CollectionUtils.isNotEmpty(warehouseList)) { + CommonGenericTree<Warehouse> tcNode; + for (Warehouse wh : warehouseList) { + if (StrUtils.isBlankOrNull(wh.getParentId()) || wh.getParentId().equals("-1")) { + tcNode = new CommonGenericTree<>(); + tcNode.setKey(wh.getId()); + tcNode.setTitle(wh.getWarehouseId() + "/" + wh.getWarehouseName()); + tcNode.setParentId(node.getKey()); + tcNode.setIcon(""); + tcNode.setType(1); + tcNode.setValue(wh.getWarehouseName()); + //tcNode.setDisabled(CommonConstant.STATUS_0.equals(wh.getStatus()) ? true : false); + tcNode.setRField1(wh.getWarehouseId()); + tcNode.setRField2(getBaseParent(wh.getId(), 0).getWarehouseId()); + tcNode.setEntity(wh); + node.addChildren(tcNode); + map.put(wh.getId(), tcNode); + } + } + CommonGenericTree<Warehouse> childNode; + for (Warehouse wh : warehouseList) { + Warehouse child = wh; + if (map.containsKey(child.getParentId())) { + if (StrUtils.isBlankOrNull(wh.getParentId()) || wh.getParentId().equals("-1")) { + warehouse = wh; + } else { + tcNode = map.get(child.getParentId()); + childNode = new CommonGenericTree<>(); + childNode.setKey(wh.getId()); + childNode.setTitle(wh.getWarehouseId() + "/" + wh.getWarehouseName()); + childNode.setParentId(wh.getParentId()); + childNode.setIcon(""); + childNode.setType(0); + childNode.setValue(wh.getWarehouseName()); + //childNode.setDisabled(CommonConstant.STATUS_0.equals(wh.getStatus()) ? true : false); + childNode.setRField1(wh.getWarehouseId()); + childNode.setRField2(getBaseParent(wh.getId(), 0).getWarehouseId()); + childNode.setEntity(wh); + tcNode.addChildren(childNode); + map.put(child.getId(), childNode); + } + } + } + } + return list; + } + + public Warehouse getBaseParent(String id, int index) { + Warehouse warehouse = null; + if (index < 99) { + warehouse = getById(id); + if (StrUtils.isNotBlankOrNull(warehouse.getParentId())) { + if (!warehouse.getParentId().equals("-1")) { + warehouse = getBaseParent(warehouse.getParentId(), index++); + } + } + } + return warehouse; + } } -- Gitblit v1.9.3