自动化立体仓库 - WMS系统
野心家
2025-04-01 e15139e4ec5daffb4e4d4a8e48fb1237baeb5fad
src/main/java/com/zy/asrs/controller/TVController.java
@@ -1,12 +1,17 @@
package com.zy.asrs.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.domain.dto.AxisBean;
import com.zy.asrs.domain.dto.WorkChartAxis;
import com.zy.asrs.domain.vo.LocChartPie;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.result.LedCommand;
import com.zy.asrs.entity.result.MatDto;
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.asrs.service.*;
import com.zy.common.model.annotations.RateLimit;
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
@@ -31,7 +36,16 @@
    @Autowired
    private ReportQueryMapper reportQueryMapper;
    @Autowired
    private SlaveProperties slaveProperties;
    private BasDevpService basDevpService;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private LocDetlService locDetlService;
    @Autowired
    private BasCrnpService basCrnpService;
    /**
     * 获取当前时间
@@ -191,7 +205,80 @@
     */
    @GetMapping("/led")
    public R monitorLed(@RequestParam("ledId") Integer ledId) {
        return R.ok();
        BasDevp basDevp =basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",ledId));
        if(Cools.isEmpty(basDevp)){
            return R.ok();
        }
        WrkMast wrkMast =wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",basDevp.getWrkNo()));
        if(Cools.isEmpty(wrkMast)){
            return R.ok();
        }
        List<LedCommand> commands = new ArrayList<>();
        // 组装命令
        LedCommand ledCommand = new LedCommand();
        ledCommand.setWorkNo(wrkMast.getWrkNo());
        ledCommand.setIoType(wrkMast.getIoType());
        // 出库模式
        switch (wrkMast.getIoType()) {
            case 1:
                ledCommand.setTitle("全板入库");
                break;
            case 10:
                ledCommand.setTitle("空板入库");
                break;
            case 101:
                ledCommand.setTitle("全板出库");
                break;
            case 103:
                ledCommand.setTitle("拣料出库");
                break;
            case 104:
                ledCommand.setTitle("并板出库");
                break;
            case 107:
                ledCommand.setTitle("盘点出库");
                break;
            case 110:
                ledCommand.setTitle("空板出库");
                ledCommand.setEmptyMk(true);
                break;
            case 53:
                ledCommand.setTitle("拣料入库");
                break;
            case 57:
                ledCommand.setTitle("盘点入库");
                break;
            case 54:
                ledCommand.setTitle("并板入库");
                break;
            default:
                break;
        }
        ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
        ledCommand.setLocNo(wrkMast.getLocNo());
        ledCommand.setStaNo(wrkMast.getStaNo());
//                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
        if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
            try{
                if (wrkMast.getIoType()>100){
                    for (WrkDetl wrkDetl : wrkDetls){
                        LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
                        wrkDetl.setWeight(locDetl.getAnfme());
                    }
                }else {
                    for (WrkDetl wrkDetl : wrkDetls){
                        wrkDetl.setWeight(wrkDetl.getAnfme());
                    }
                }
            }catch (Exception e){
//                log.error("工作档案明细输入电视机失败1:异常信息==》"+e);
            }
            wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getModel())));
        }
        commands.add(ledCommand);
        return R.ok().add(commands);
    }
    /**
@@ -199,9 +286,42 @@
     */
    @GetMapping("/led/error")
    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
        return R.ok();
        BasDevp basDevp =basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",ledId));
        if(Cools.isEmpty(basDevp)){
            return R.ok();
        }
        if(Cools.isEmpty(basDevp.getArea())){
            return R.ok();
        }
        if(basDevp.getLoading().equals("N")){
            basDevp.setArea("");
            basDevpService.updateById(basDevp);
            return R.ok();
        }
        String errorMsg = basDevp.getArea();
        return R.ok().add(errorMsg);
    }
    /**
     * 设备异常通知
     */
    @GetMapping("/device/error")
    public R monitorDeviceError() {
        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
        List<BasCrnp> basCrnpLiset=basCrnpService.selectList(new EntityWrapper<BasCrnp>());
        for (BasCrnp basCrnp : basCrnpLiset) {
            HashMap<String, Object> map = new HashMap<>();
            if (basCrnp.getCrnErr() > 0) {
                //故障中
                map.put("deviceNo", basCrnp.getCrnNo());//设备号-小车号
                map.put("errorMsg", basCrnp.getCrnErr$());//异常信息
                map.put("device", "四向车");//异常信息
                list.add(map);
            }
        }
        return R.ok().add(list);
    }
    /**
     * 自动补零