AgvTaskController.java 7.78 KB
package com.huaheng.pc.agv.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
import com.huaheng.common.utils.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.pc.agv.domain.AgvTask;
import com.huaheng.pc.agv.service.IAgvTaskService;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.common.support.Convert;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * 【请填写功能名称】 信息操作处理
 *
 * @author huaheng
 * @date 2022-08-18
 */
@Controller
@RequestMapping("/agv/agvtask")
public class AgvTaskController extends BaseController {
    private String prefix = "task/list";

    @Resource
    private IAgvTaskService agvtaskService;

    @RequiresPermissions("task:agvtask:view")
    @GetMapping()
    public String agvtask() {
        return prefix + "/agvtask";
    }

    /**
     * 查询【请填写功能名称】列表
     */
    @RequiresPermissions("task:agvtask:view")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(AgvTask agvtask, String workStationId) {
        LambdaQueryWrapper<AgvTask> lambdaQueryWrapper = Wrappers.lambdaQuery();
        lambdaQueryWrapper
                .eq(StringUtils.isNotNull(agvtask.getInternalTaskType()), AgvTask::getInternalTaskType, agvtask.getInternalTaskType())
                .eq(StringUtils.isNotEmpty(agvtask.getTaskType()), AgvTask::getTaskType, agvtask.getTaskType())
                .eq(StringUtils.isNotEmpty(agvtask.getCompanyCode()), AgvTask::getCompanyCode, agvtask.getCompanyCode())
                .eq(StringUtils.isNotEmpty(agvtask.getWarehouseCode()), AgvTask::getWarehouseCode, agvtask.getWarehouseCode())
                .eq(StringUtils.isNotEmpty(agvtask.getFromPort()), AgvTask::getFromPort, agvtask.getFromPort())
                .eq(StringUtils.isNotEmpty(agvtask.getToPort()), AgvTask::getToPort, agvtask.getToPort())
                .eq(StringUtils.isNotEmpty(agvtask.getFromWorkStationId()), AgvTask::getFromWorkStationId, agvtask.getFromWorkStationId())
                .eq(StringUtils.isNotEmpty(agvtask.getToWorkStationId()), AgvTask::getToWorkStationId, agvtask.getToWorkStationId())

                //按工位查,不分是起点还是目标
                .and(StringUtils.isNotEmpty(workStationId), wq -> wq.eq(StringUtils.isNotEmpty(workStationId), AgvTask::getToWorkStationId, workStationId)
                        .or().eq(StringUtils.isNotEmpty(workStationId), AgvTask::getFromWorkStationId, workStationId)
                )

                .eq(StringUtils.isNotEmpty(agvtask.getContainerCode()), AgvTask::getContainerCode, agvtask.getContainerCode())
                .eq(StringUtils.isNotNull(agvtask.getStatus()), AgvTask::getStatus, agvtask.getStatus())
                .eq(StringUtils.isNotNull(agvtask.getCarNo()), AgvTask::getCarNo, agvtask.getCarNo())
                .eq(StringUtils.isNotNull(agvtask.getPriority()), AgvTask::getPriority, agvtask.getPriority())
                .eq(StringUtils.isNotNull(agvtask.getTaskHeaderId()), AgvTask::getTaskHeaderId, agvtask.getTaskHeaderId())
                .eq(StringUtils.isNotNull(agvtask.getTaskDetailId()), AgvTask::getTaskDetailId, agvtask.getTaskDetailId())
                .eq(StringUtils.isNotNull(agvtask.getPreTaskNo()), AgvTask::getPreTaskNo, agvtask.getPreTaskNo())
                .eq(StringUtils.isNotNull(agvtask.getShelfNo()), AgvTask::getShelfNo, agvtask.getShelfNo())
                .eq(StringUtils.isNotEmpty(agvtask.getStation()), AgvTask::getStation, agvtask.getStation())
                .eq(StringUtils.isNotEmpty(agvtask.getOrientation()), AgvTask::getOrientation, agvtask.getOrientation())
                .eq(StringUtils.isNotNull(agvtask.getInteractionId()), AgvTask::getInteractionId, agvtask.getInteractionId())
                .eq(StringUtils.isNotEmpty(agvtask.getPlatform()), AgvTask::getPlatform, agvtask.getPlatform())
                .eq(StringUtils.isNotNull(agvtask.getWarehouseId()), AgvTask::getWarehouseId, agvtask.getWarehouseId())
                .eq(StringUtils.isNotNull(agvtask.getCompanyId()), AgvTask::getCompanyId, agvtask.getCompanyId())
                .eq(StringUtils.isNotNull(agvtask.getCreatedTime()), AgvTask::getCreatedTime, agvtask.getCreatedTime())
                .eq(StringUtils.isNotEmpty(agvtask.getCreatedBy()), AgvTask::getCreatedBy, agvtask.getCreatedBy())
                .eq(StringUtils.isNotNull(agvtask.getUpdated()), AgvTask::getUpdated, agvtask.getUpdated())
                .eq(StringUtils.isNotEmpty(agvtask.getUpdatedBy()), AgvTask::getUpdatedBy, agvtask.getUpdatedBy())
                .orderByDesc(AgvTask::getId)
        ;
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
            /*使用分页查询*/
            Page<AgvTask> page = new Page<>(pageNum, pageSize);
            IPage<AgvTask> iPage = agvtaskService.page(page, lambdaQueryWrapper);
            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
        } else {
            List<AgvTask> list = agvtaskService.list(lambdaQueryWrapper);
            return getDataTable(list);
        }
    }

    /**
     * 新增【请填写功能名称】
     */
    @GetMapping("/add")
    public String add() {
        return prefix + "/add";
    }

    /**
     * 新增保存【请填写功能名称】
     */
    @RequiresPermissions("task:agvtask:view")
    @Log(title = "【请填写功能名称】", action = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(AgvTask agvtask) {
        return toAjax(agvtaskService.save(agvtask));
    }

    /**
     * 修改【请填写功能名称】
     */
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Long id, ModelMap mmap) {
        AgvTask agvtask = agvtaskService.getById(id);
        mmap.put("agvtask", agvtask);
        return prefix + "/edit";
    }

    /**
     * 修改保存【请填写功能名称】
     */
    @RequiresPermissions("task:agvtask:view")
    @Log(title = "【请填写功能名称】", action = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(AgvTask agvtask) {
        return toAjax(agvtaskService.updateById(agvtask));
    }

    /**
     * 删除【请填写功能名称】
     */
    @RequiresPermissions("task:agvtask:view")
    @Log(title = "【请填写功能名称】", action = BusinessType.DELETE)
    @PostMapping("/remove")
    @ResponseBody
    public AjaxResult remove(String ids) {
        if (StringUtils.isEmpty(ids)) {
            return AjaxResult.error("id不能为空");
        }
        return toAjax(agvtaskService.removeByIds(Arrays.asList(Convert.toIntArray(ids))));
    }

}