zhang
2025-05-20 1313906bb1eb983d3beece810035e7fc28d6a92f
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java
@@ -1,19 +1,27 @@
package com.zy.acs.manager.manager.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.R;
import com.zy.acs.manager.common.utils.ExcelUtil;
import com.zy.acs.framework.exception.CoolException;
import com.zy.acs.manager.common.annotation.OperationLog;
import com.zy.acs.manager.common.domain.BaseParam;
import com.zy.acs.manager.common.domain.KeyValVo;
import com.zy.acs.manager.common.domain.PageParam;
import com.zy.acs.manager.common.domain.PageResult;
import com.zy.acs.manager.common.utils.ExcelUtil;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.controller.result.AgvResult;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.service.AgvService;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.AgvModel;
import com.zy.acs.manager.manager.service.*;
import com.zy.acs.manager.system.controller.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -25,14 +33,40 @@
    @Autowired
    private AgvService agvService;
    @Autowired
    private AgvDetailService agvDetailService;
    @Autowired
    private AgvModelService agvModelService;
    @Autowired
    private CodeService codeService;
    @Autowired
    private TaskService taskService;
    @Autowired
    private MapDataDispatcher mapDataDispatcher;
//    @PreAuthorize("hasAuthority('manager:agv:list')")
//    @PostMapping("/agv/page")
//    public R page(@RequestBody Map<String, Object> map) {
//        BaseParam baseParam = buildParam(map, BaseParam.class);
//        PageParam<Agv, BaseParam> pageParam = new PageParam<>(baseParam, Agv.class);
//        PageParam<Agv, BaseParam> page = agvService.page(pageParam, pageParam.buildWrapper(true));
//        for (Agv agv : page.getRecords()) {
//            AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
//            agv.setAgvDetail(agvDetail);
//        }
//        return R.ok().add(page);
//    }
    @PreAuthorize("hasAuthority('manager:agv:list')")
    @PostMapping("/agv/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Agv, BaseParam> pageParam = new PageParam<>(baseParam, Agv.class);
        return R.ok().add(agvService.page(pageParam, pageParam.buildWrapper(true)));
//        return R.ok().add(agvService.pageRel(pageParam));
        PageResult<AgvResult> page = agvService.pageRel(pageParam);
        for (AgvResult result : page.getRecords()) {
            result.sync(agvDetailService.selectByAgvId(result.getId()), codeService, taskService, agvService);
        }
        return R.ok().add(page);
    }
    @PreAuthorize("hasAuthority('manager:agv:list')")
@@ -50,19 +84,46 @@
    @PreAuthorize("hasAuthority('manager:agv:list')")
    @GetMapping("/agv/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(agvService.getById(id));
        Agv agv = agvService.getById(id);
        if (null != agv) {
            agv.setOnline(agvService.judgeOnline(agv.getId()));
            if (agv.getUuid().equals("2")) { agv.setOnline(true); }
            AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
            if (null != agvDetail) {
                agv.setAgvDetail(agvDetail);
            }
            AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
            if (null != agvModel) {
                agv.setAgvModelData(agvModel);
            }
        }
        return R.ok().add(agv);
    }
    @PreAuthorize("hasAuthority('manager:agv:save')")
    @OperationLog("Create Agv")
    @PostMapping("/agv/save")
    @Transactional
    public R save(@RequestBody Agv agv) {
        agv.setCreateBy(getLoginUserId());
        agv.setCreateTime(new Date());
        agv.setUpdateBy(getLoginUserId());
        agv.setUpdateTime(new Date());
        if (agvService.count(new LambdaQueryWrapper<Agv>()
                .eq(Agv::getUuid, agv.getUuid())) > 0) {
            return R.error("agv no has already exist !");
        }
        Long loginUserId = getLoginUserId();
        Date now = new Date();
        agv.setCreateBy(loginUserId);
        agv.setCreateTime(now);
        agv.setUpdateBy(loginUserId);
        agv.setUpdateTime(now);
        if (!agvService.save(agv)) {
            return R.error("Save Fail");
            throw new CoolException("Save Fail");
        }
        AgvDetail agvDetail = new AgvDetail();
        agvDetail.setAgvId(agv.getId());
        agvDetail.setCreateBy(loginUserId);
        agvDetail.setUpdateBy(loginUserId);
        if (!agvDetailService.save(agvDetail)) {
            throw new CoolException("Save Fail");
        }
        return R.ok("Save Success").add(agv);
    }
@@ -71,6 +132,11 @@
    @OperationLog("Update Agv")
    @PostMapping("/agv/update")
    public R update(@RequestBody Agv agv) {
        if (agvService.count(new LambdaQueryWrapper<Agv>()
                .eq(Agv::getUuid, agv.getUuid())
                .ne(Agv::getId, agv.getId())) > 0) {
            return R.error("Update Fail");
        }
        agv.setUpdateBy(getLoginUserId());
        agv.setUpdateTime(new Date());
        if (!agvService.updateById(agv)) {
@@ -109,4 +175,24 @@
        ExcelUtil.build(ExcelUtil.create(agvService.list(), Agv.class), response);
    }
    @PreAuthorize("hasAuthority('manager:agv:remove')")
    @OperationLog("Remove Agv From Map")
    @PostMapping("/agv/remove/from/map")
    public R removeFromMap(@RequestBody Agv agv) {
        AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
        if (null != agvDetail) {
            LambdaUpdateWrapper<AgvDetail> wrapper = new LambdaUpdateWrapper<>();
            wrapper.set(AgvDetail::getCode, null)
                    .set(AgvDetail::getLastCode, null)
                    .set(AgvDetail::getUpdateBy, getLoginUserId())
                    .set(AgvDetail::getUpdateTime, new Date())
                    .eq(AgvDetail::getId, agvDetail.getId());
            if (!agvDetailService.update(null, wrapper)) {
                return R.error("Remove Fail");
            }
            mapDataDispatcher.modifyDynamicMatrix(MapDataDispatcher.MAP_DEFAULT_LEV, null, agv.getUuid(), true);
        }
        return R.ok("Remove Success").add(agv);
    }
}