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); } /** * 添加 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; } 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); } 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> 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); } 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; } }