项目初始化

This commit is contained in:
liuhanqing
2025-09-11 11:19:00 +08:00
parent 13df9e0355
commit d53f41223b
1194 changed files with 245831 additions and 34 deletions

View File

@@ -0,0 +1,474 @@
package com.ruoyi.pda.controller;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.bas.container.domain.BasContainer;
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
import com.ruoyi.out.outStockout.domain.OutStockout;
import com.ruoyi.out.outStockout.service.IOutStockoutService;
import com.ruoyi.pda.domain.TrayCodeMakeSure;
import com.ruoyi.pda.domain.TrayCodeMsg;
import com.ruoyi.pda.service.PdaService;
import com.ruoyi.pda.trayMsg.domain.TrayMsg;
import com.ruoyi.pda.trayMsg.service.ITrayMsgService;
import com.ruoyi.stock.stock.domain.BasStock;
import com.ruoyi.stock.stock.service.IBasStockService;
import com.ruoyi.system.service.ISysDictTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Controller
@RequestMapping("/pda")
@Slf4j
public class PdaController extends BaseController {
@Autowired
private PdaService pdaService;
@Autowired
private IInStockinDetailService inStockinDetailService;
@Autowired
private IBasStockService basStockService;
@Autowired
private IBasWarehouseService basWarehouseService;
@Autowired
private ITrayMsgService trayMsgService;
@Autowired
private IBasCargoSpaceService basCargoSpaceService;
@Autowired
private IMydoJobService mydoJobService;
@Autowired
private IMydoJobDetailService mydoJobDetailService;
@Autowired
private IInStockinService inStockinService;
@Autowired
private IOutStockoutService outStockoutService;
@Autowired
private ISysDictTypeService dictTypeService;
/**
* 空托盘入库
*
* @param trayCodeMsg
* @return
*/
@RequestMapping("/emptyTrayIn")
@ResponseBody
public AjaxResult emptyTrayIn(@RequestBody TrayCodeMsg trayCodeMsg) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
if (basWarehouse == null) {
log.error("仓库不存在");
return AjaxResult.error(MessageUtils.message("error.message18"));
}
if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) {
log.error("请选择高架库货位");
return AjaxResult.error(MessageUtils.message("error.message19"));
}
if ("2".equals(basWarehouse.getWarehouseType())) {
BasCargoSpace basCargoSpace = new BasCargoSpace();
basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId());
basCargoSpace.setStatus("1");
List<BasCargoSpace> basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace);
if (basCargoSpaces.isEmpty()) {
log.error("此仓库没有空余货位");
return AjaxResult.error(MessageUtils.message("error.message20"));
} else {
trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId());
}
}
return pdaService.emptyTrayIn(trayCodeMsg);
}
// /**
// * 空料箱入库
// */
// @RequestMapping("/emptyBoxIn")
// @ResponseBody
// public AjaxResult emptyBoxIn(@RequestBody TrayCodeMsg trayCodeMsg) {
// AjaxResult ajaxResult = pdaService.emptyBoxIn(trayCodeMsg);
// return ajaxResult;
// }
/**
* 空托盘库存查询
*
* @param warehouseId
* @return
*/
@PreAuthorize("@ss.hasPermi('pda:selectKTPStcok:list')")
@RequestMapping("/selectKTPStcok")
@ResponseBody
public AjaxResult selectKTPStcok(String warehouseId) {
BasStock basStock = new BasStock();
basStock.setWarehouseId(warehouseId);
List<BasStock> basStockList = basStockService.selectKtpStock(basStock);
if (!basStockList.isEmpty()) {
return AjaxResult.success(basStockList);
} else {
log.error("此区域没有空托盘库存");
return AjaxResult.error(MessageUtils.message("error.message25"));
}
}
/**
* 空托盘出库
*
* @param
* @return
*/
@RequestMapping("/emptyTrayOut")
@ResponseBody
@Log(title = "空托盘出库", businessType = BusinessType.INSERT)
public AjaxResult emptyTrayOut(@RequestBody TrayCodeMsg trayCodeMsg) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
if (basWarehouse == null) {
log.error("仓库不存在");
return AjaxResult.error(MessageUtils.message("error.message18"));
}
if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) {
log.error("请选择高架库货位");
return AjaxResult.error(MessageUtils.message("error.message19"));
}
if ("2".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getExitId())) {
log.error("请选择出口");
return AjaxResult.error(MessageUtils.message("error.message22"));
}
if("2".equals(basWarehouse.getWarehouseType())){
BasStock basStock = new BasStock();
basStock.setWarehouseId(trayCodeMsg.getWarehouseId());
List<BasStock> basStockList = basStockService.selectKtpStock(basStock);
if(basStockList.isEmpty()){
log.warn("此区域没有空托盘库存或此用户没有该区域权限");
return AjaxResult.error(MessageUtils.message("error.message26"));
}else{
trayCodeMsg.setCargoSpaceId(basStockList.get(0).getCargoSpaceId());
}
}
return pdaService.emptyTrayOut(trayCodeMsg);
}
// /**
// * 空料箱出库
// *
// * @param trayCodeMsg
// * @return
// */
// @RequestMapping("/emptyBoxOut")
// @ResponseBody
// public AjaxResult emptyBoxOut(@RequestBody TrayCodeMsg trayCodeMsg) {
// return pdaService.emptyBoxOut(trayCodeMsg);
// }
/**
* 查询平库入库单
*/
@PreAuthorize("@ss.hasPermi('pda:inoderList:list')")
@RequestMapping("/inorder/list")
@ResponseBody
public List<InStockin> inoderList(@RequestBody InStockin inStockin) {
inStockin.setTypeData(Arrays.asList("3"));
List<InStockin> inStockins = inStockinService.selectInStockinList(inStockin);
return inStockins;
}
/**
* 绑盘查询入库单详情
*
* @param stockinDetailId
* @return
*/
@PreAuthorize("@ss.hasPermi('pda:inoderList:list')")
@RequestMapping("/inorder/detail")
@ResponseBody
public InStockinDetail inoderList(String stockinDetailId) {
InStockinDetail inStockinDetail1 = new InStockinDetail();
inStockinDetail1.setStockinDetailId(stockinDetailId);
InStockinDetail inStockinDetail = inStockinDetailService.selectStockinByDetailById(inStockinDetail1);
return inStockinDetail;
}
/**
* 绑定托盘物料
*/
@PreAuthorize("@ss.hasPermi('pda:bindTrayMsg:submit')")
@RequestMapping("/bindTrayMsg")
@Log(title = "手持机绑定物料", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult bindTrayMsg(@RequestBody TrayCodeMsg trayCodeMsg) {
return pdaService.bindTrayMsg(trayCodeMsg);
}
/**
* 查询托盘已绑定物料
*/
@PreAuthorize("@ss.hasPermi('pda:bindMsg:list')")
@RequestMapping("/bindMsg")
@ResponseBody
public AjaxResult bindMsg(String trayCode) {
TrayMsg trayMsg = new TrayMsg();
trayMsg.setTrayCode(trayCode);
List<TrayMsg> trayMsgs = trayMsgService.selectTrayMsgList(trayMsg);
return AjaxResult.success(trayMsgs);
}
/**
* 确认入库
*/
@RequestMapping("/addInJob")
@Log(title = "手持机确认入库", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult addInJob(@RequestBody TrayCodeMsg trayCodeMsg) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId());
if (basWarehouse == null) {
log.error("仓库不存在");
return AjaxResult.error(MessageUtils.message("error.message18"));
}
if ("1".equals(basWarehouse.getWarehouseType()) && StrUtil.isEmpty(trayCodeMsg.getCargoSpaceId())) {
log.error("请选择高架库货位");
return AjaxResult.error(MessageUtils.message("error.message19"));
}
if ("2".equals(basWarehouse.getWarehouseType())) {
BasCargoSpace basCargoSpace = new BasCargoSpace();
basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId());
basCargoSpace.setStatus("1");
List<BasCargoSpace> basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace);
if (basCargoSpaces.isEmpty()) {
log.error("此仓库没有空余货位");
return AjaxResult.error(MessageUtils.message("error.message20"));
} else {
trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId());
}
}
return pdaService.addInJob(trayCodeMsg);
}
/**
* 出库确认
*
* @param trayCodeMakeSure 托盘信息
* @return
*/
@PreAuthorize("@ss.hasPermi('pda:out:outMakeSure')")
@PostMapping("/outMakeSure")
@Log(title = "手持机出库确认", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult outMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.outMakeSure(trayCodeMakeSure);
}
/**
* 出货异常流程
* @param trayCodeMakeSure
* @return
*/
@PreAuthorize("@ss.hasPermi('pda:out:exception')")
@PostMapping("/outException")
@ResponseBody
public AjaxResult outException(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.outException(trayCodeMakeSure);
}
/**
* 盘点出库确认
* @param trayCodeMakeSure 托盘信息
* @return
*/
@PreAuthorize("@ss.hasPermi('pda:check:checkMakeSure')")
@PostMapping("/checkMakeSure")
@Log(title = "手持机盘点出库确认", businessType = BusinessType.INSERT)
@ResponseBody
public AjaxResult checkMakeSure(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.checkMakeSure(trayCodeMakeSure);
}
/**
* 查询所有待处理任务
*/
@PreAuthorize("@ss.hasPermi('pda:taskList:list')")
@RequestMapping("/taskList")
@ResponseBody
public AjaxResult taskList(@RequestBody TrayCodeMsg trayCodeMsg) {
List<BasWarehouse> basWarehouses = basWarehouseService.selectBasWarehouseList(new BasWarehouse());
List<MydoJob> mydoJobArrayList = new ArrayList<>();
if(!basWarehouses.isEmpty()){
for(BasWarehouse basWarehouse : basWarehouses){
//高架库
if("1".equals(basWarehouse.getWarehouseType())){
MydoJob mydoJob = new MydoJob();
mydoJob.setWarehouseId(basWarehouse.getWarehouseId());
mydoJob.setTrayCode(trayCodeMsg.getTrayCode());
mydoJob.setInOut(trayCodeMsg.getInOut());
// if("1".equals(trayCodeMsg.getInOut())){
mydoJob.setStatus("1");
// }
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
//将mydoJob添加进mydoJobArrayList
mydoJobArrayList.addAll(mydoJobs);
}
//ctu库
if("2".equals(basWarehouse.getWarehouseType()) && !"1".equals(trayCodeMsg.getInOut())){
MydoJob mydoJob = new MydoJob();
if("4".equals(trayCodeMsg.getInOut())){
mydoJob.setInOut("4");
}else if("2".equals(trayCodeMsg.getInOut())){
mydoJob.setInOut("2");
}else{
List<String> list = new ArrayList<>(Arrays.asList("21", "22", "23","24","25","26"));
mydoJob.setInOutIds(list);
}
mydoJob.setWarehouseId(basWarehouse.getWarehouseId());
mydoJob.setTrayCode(trayCodeMsg.getTrayCode());
mydoJob.setStatus("3");
List<MydoJob> mydoJobs2 = mydoJobService.selectMydoJobList(mydoJob);
mydoJobArrayList.addAll(mydoJobs2);
}
}
}
return AjaxResult.success(mydoJobArrayList);
}
/**
* 用托盘条码查询子作业数据
*/
@RequestMapping("/selectDetailByTray")
@ResponseBody
public AjaxResult selectDetailByTray(@RequestBody TrayCodeMsg trayCodeMsg) {
MydoJob mydoJob = new MydoJob();
mydoJob.setTrayCode(trayCodeMsg.getTrayCode());
mydoJob.setStatus(trayCodeMsg.getStatus());
mydoJob.setInOut(trayCodeMsg.getInOut());
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(mydoJob);
if(mydoJobs.isEmpty()){
log.error("此托盘没有作业");
return AjaxResult.error();
}
MydoJobDetail mydoJobDetail = new MydoJobDetail();
mydoJobDetail.setJobId(mydoJobs.get(0).getJobId());
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail);
return AjaxResult.success(mydoJobDetails);
}
/**
* 平库入库
*/
@RequestMapping("/pkIn")
@ResponseBody
public AjaxResult pkIn(@RequestBody TrayCodeMsg trayCodeMsg) {
return pdaService.pkIn(trayCodeMsg);
}
/**
* 查询平库出库单
*/
@PreAuthorize("@ss.hasPermi('pda:outoderList:list')")
@RequestMapping("/outorder/list")
@ResponseBody
public List<OutStockout> outoderList(@RequestBody OutStockout outStockout) {
outStockout.setTypeData(Arrays.asList("3"));
List<OutStockout> outStockouts = outStockoutService.selectOutStockoutList(outStockout);
return outStockouts;
}
/**
* 平库出库
*/
@RequestMapping("/pkout")
@ResponseBody
public AjaxResult pkout(@RequestBody TrayCodeMsg trayCodeMsg) {
return pdaService.pkout(trayCodeMsg);
}
/**
* 调用wcs接口调用agv
*/
@RequestMapping("/agvRequest")
@ResponseBody
public AjaxResult agvRequest(@RequestBody BasContainer basContainer) {
if(basContainer.getDetails().isEmpty()){
log.error("该料架无物料信息");
return AjaxResult.error();
}
return pdaService.agvRequest(basContainer);
}
/**
* 手持机获取货位分析数据
*/
@RequestMapping("/cargoSpaceAnalysis")
@ResponseBody
public AjaxResult cargoSpaceAnalysis(@RequestParam("warehouseId") String warehouseId){
return success(pdaService.cargoSpaceAnalysis(warehouseId));
}
/**
* 绑定料架
* @param trayCodeMakeSure
* @return
*/
@PostMapping("/bindContainer")
@ResponseBody
public AjaxResult bindContainer(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.bindContainer(trayCodeMakeSure);
}
/**
* 手持机获取入出库作业数量
*/
@RequestMapping("/getAisleStatisticsData")
@ResponseBody
public AjaxResult getAisleStatisticsData(@RequestParam("warehouseId") String warehouseId){
return success(pdaService.getAisleStatisticsData(warehouseId));
}
/**
* 绑定料架
*/
@RequestMapping("/bindShelf")
@ResponseBody
public AjaxResult bindShelf(@RequestBody TrayCodeMakeSure trayCodeMakeSure) {
return pdaService.bindShelf(trayCodeMakeSure);
}
@RequestMapping("/selectDictData")
@ResponseBody
public List<SysDictData> selectDictData(@RequestParam("dictType") String dictType) {
List<SysDictData> list = dictTypeService.selectDictDataByType(dictType);
return list;
}
@RequestMapping("/movePoint")
@ResponseBody
public AjaxResult movePoint(String startPoint, String endPoint) {
return pdaService.movePoint(startPoint,endPoint);
}
}