台位配送页面与其权限和国际化
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
package com.ruoyi.bas.basstandPosition.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.bas.port.domain.BasProductPort;
|
||||
import com.ruoyi.bas.port.service.IBasProductPortService;
|
||||
import com.ruoyi.bas.container.domain.BasContainer;
|
||||
import com.ruoyi.bas.container.service.IBasContainerService;
|
||||
import com.ruoyi.bas.containerDetails.domain.BasContainerDetails;
|
||||
import com.ruoyi.bas.containerDetails.service.IBasContainerDetailsService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.page.PageDomain;
|
||||
import com.ruoyi.common.core.page.TableSupport;
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
|
||||
/**
|
||||
* 基础站台位置Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-01-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/bas/basstandPosition")
|
||||
@PreAuthorize("@ss.hasPermi('bas:basstandPosition:list')")
|
||||
public class BasStandPositionController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBasProductPortService basProductPortService;
|
||||
|
||||
@Autowired
|
||||
private IBasContainerService basContainerService;
|
||||
|
||||
@Autowired
|
||||
private IBasContainerDetailsService basContainerDetailsService;
|
||||
|
||||
/**
|
||||
* 查询点位类型为6的基础点位列表,并关联容器和容器明细数据
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bas:basstandPosition:list')")
|
||||
@GetMapping("/portType6")
|
||||
public TableDataInfo getPortType6List(BasProductPort basProductPort)
|
||||
{
|
||||
// 设置查询条件:portType为6
|
||||
basProductPort.setPortType("6");
|
||||
|
||||
// 先查询所有portType为6的BasProductPort数据(不分页)
|
||||
List<BasProductPort> allPortList = basProductPortService.selectBasProductPortList(basProductPort);
|
||||
|
||||
// 构建完整的返回结果列表
|
||||
List<Map<String, Object>> allResultList = new ArrayList<>();
|
||||
|
||||
for (BasProductPort port : allPortList) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
// 添加点位信息
|
||||
resultMap.put("port", port);
|
||||
|
||||
// 根据portName查询容器信息
|
||||
BasContainer containerQuery = new BasContainer();
|
||||
containerQuery.setPortName(port.getPortName());
|
||||
List<BasContainer> containerList = basContainerService.selectBasContainerList(containerQuery);
|
||||
resultMap.put("containers", containerList);
|
||||
|
||||
// 为每个容器查询明细信息
|
||||
List<Map<String, Object>> containerWithDetails = new ArrayList<>();
|
||||
for (BasContainer container : containerList) {
|
||||
Map<String, Object> containerMap = new HashMap<>();
|
||||
containerMap.put("container", container);
|
||||
|
||||
// 根据containerId查询容器明细
|
||||
BasContainerDetails detailsQuery = new BasContainerDetails();
|
||||
detailsQuery.setContainerId(container.getContainerId());
|
||||
List<BasContainerDetails> detailsList = basContainerDetailsService.selectBasContainerDetailsList(detailsQuery);
|
||||
containerMap.put("details", detailsList);
|
||||
|
||||
containerWithDetails.add(containerMap);
|
||||
}
|
||||
resultMap.put("containerWithDetails", containerWithDetails);
|
||||
|
||||
allResultList.add(resultMap);
|
||||
}
|
||||
|
||||
// 手动实现分页
|
||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
||||
int pageNum = pageDomain.getPageNum();
|
||||
int pageSize = pageDomain.getPageSize();
|
||||
int total = allResultList.size();
|
||||
|
||||
// 计算分页范围
|
||||
int startIndex = (pageNum - 1) * pageSize;
|
||||
int endIndex = Math.min(startIndex + pageSize, total);
|
||||
|
||||
// 获取当前页数据
|
||||
List<Map<String, Object>> pageResultList = new ArrayList<>();
|
||||
if (startIndex < total) {
|
||||
pageResultList = allResultList.subList(startIndex, endIndex);
|
||||
}
|
||||
|
||||
// 构建分页结果
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(pageResultList);
|
||||
rspData.setTotal(total);
|
||||
|
||||
return rspData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有无料架信息的点位数据(不限制portType)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bas:basstandPosition:list')")
|
||||
@GetMapping("/noContainer")
|
||||
public TableDataInfo getNoContainerPositions(BasProductPort basProductPort)
|
||||
{
|
||||
// 查询所有BasProductPort数据(不限制portType)
|
||||
List<BasProductPort> allPortList = basProductPortService.selectBasProductPortList(basProductPort);
|
||||
|
||||
// 构建无料架点位的返回结果列表
|
||||
List<Map<String, Object>> noContainerResultList = new ArrayList<>();
|
||||
|
||||
for (BasProductPort port : allPortList) {
|
||||
// 根据portName查询容器信息
|
||||
BasContainer containerQuery = new BasContainer();
|
||||
containerQuery.setPortName(port.getPortName());
|
||||
List<BasContainer> containerList = basContainerService.selectBasContainerList(containerQuery);
|
||||
|
||||
// 如果该点位没有容器信息,则添加到结果列表中
|
||||
if (containerList == null || containerList.isEmpty()) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("port", port);
|
||||
resultMap.put("containers", new ArrayList<>());
|
||||
resultMap.put("containerWithDetails", new ArrayList<>());
|
||||
noContainerResultList.add(resultMap);
|
||||
}
|
||||
}
|
||||
|
||||
// 手动实现分页
|
||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
||||
int pageNum = pageDomain.getPageNum();
|
||||
int pageSize = pageDomain.getPageSize();
|
||||
int total = noContainerResultList.size();
|
||||
|
||||
// 计算分页范围
|
||||
int startIndex = (pageNum - 1) * pageSize;
|
||||
int endIndex = Math.min(startIndex + pageSize, total);
|
||||
|
||||
// 获取当前页数据
|
||||
List<Map<String, Object>> pageResultList = new ArrayList<>();
|
||||
if (startIndex < total) {
|
||||
pageResultList = noContainerResultList.subList(startIndex, endIndex);
|
||||
}
|
||||
|
||||
// 构建分页结果
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(pageResultList);
|
||||
rspData.setTotal(total);
|
||||
|
||||
return rspData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有有料架信息的点位数据(不限制portType)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('bas:basstandPosition:list')")
|
||||
@GetMapping("/hasContainer")
|
||||
public TableDataInfo getHasContainerPositions(BasProductPort basProductPort)
|
||||
{
|
||||
// 查询所有BasProductPort数据(不限制portType)
|
||||
List<BasProductPort> allPortList = basProductPortService.selectBasProductPortList(basProductPort);
|
||||
|
||||
// 构建有料架点位的返回结果列表
|
||||
List<Map<String, Object>> hasContainerResultList = new ArrayList<>();
|
||||
|
||||
for (BasProductPort port : allPortList) {
|
||||
// 根据portName查询容器信息
|
||||
BasContainer containerQuery = new BasContainer();
|
||||
containerQuery.setPortName(port.getPortName());
|
||||
List<BasContainer> containerList = basContainerService.selectBasContainerList(containerQuery);
|
||||
|
||||
// 如果该点位有容器信息,则添加到结果列表中
|
||||
if (containerList != null && !containerList.isEmpty()) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("port", port);
|
||||
resultMap.put("containers", containerList);
|
||||
|
||||
// 为每个容器查询明细信息
|
||||
List<Map<String, Object>> containerWithDetails = new ArrayList<>();
|
||||
for (BasContainer container : containerList) {
|
||||
Map<String, Object> containerMap = new HashMap<>();
|
||||
containerMap.put("container", container);
|
||||
|
||||
// 根据containerId查询容器明细
|
||||
BasContainerDetails detailsQuery = new BasContainerDetails();
|
||||
detailsQuery.setContainerId(container.getContainerId());
|
||||
List<BasContainerDetails> detailsList = basContainerDetailsService.selectBasContainerDetailsList(detailsQuery);
|
||||
containerMap.put("details", detailsList);
|
||||
|
||||
containerWithDetails.add(containerMap);
|
||||
}
|
||||
resultMap.put("containerWithDetails", containerWithDetails);
|
||||
|
||||
hasContainerResultList.add(resultMap);
|
||||
}
|
||||
}
|
||||
|
||||
// 手动实现分页
|
||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
||||
int pageNum = pageDomain.getPageNum();
|
||||
int pageSize = pageDomain.getPageSize();
|
||||
int total = hasContainerResultList.size();
|
||||
|
||||
// 计算分页范围
|
||||
int startIndex = (pageNum - 1) * pageSize;
|
||||
int endIndex = Math.min(startIndex + pageSize, total);
|
||||
|
||||
// 获取当前页数据
|
||||
List<Map<String, Object>> pageResultList = new ArrayList<>();
|
||||
if (startIndex < total) {
|
||||
pageResultList = hasContainerResultList.subList(startIndex, endIndex);
|
||||
}
|
||||
|
||||
// 构建分页结果
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(pageResultList);
|
||||
rspData.setTotal(total);
|
||||
|
||||
return rspData;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user