From 16441fe63adf04e0c434377f7da0fd05ba155eb6 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 21 十一月 2023 17:13:15 +0800 Subject: [PATCH] #联机 --- src/main/java/com/zy/asrs/controller/CrnController.java | 86 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java index 86949ae..35a377a 100644 --- a/src/main/java/com/zy/asrs/controller/CrnController.java +++ b/src/main/java/com/zy/asrs/controller/CrnController.java @@ -1,5 +1,6 @@ package com.zy.asrs.controller; +import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; @@ -11,6 +12,7 @@ import com.zy.asrs.domain.param.CrnDemoParam; import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.domain.vo.CommandLogVo; +import com.zy.asrs.domain.vo.CrnListVo; import com.zy.asrs.domain.vo.CrnMsgTableVo; import com.zy.asrs.domain.vo.CrnStateTableVo; import com.zy.asrs.entity.*; @@ -49,6 +51,8 @@ @Slf4j @RestController public class CrnController { + + @Autowired private SlaveProperties slaveProperties; @@ -245,6 +249,67 @@ vo.setXduration(crnProtocol.getXDuration()); // 璧拌鏃堕暱(H) vo.setYduration(crnProtocol.getYDuration()); // 鍗囬檷鏃堕暱(H) return R.ok().add(vo); + } + + @GetMapping("/crn/list/auth") + @ManagerAuth(memo = "鍫嗗灈鏈烘暟鎹〃") + public R crnList(){ + List<CrnListVo> list = new ArrayList<>(); + List<BasCrnp> crnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().orderBy("crn_no")); + for (BasCrnp basCrnp : crnps) { + // 琛ㄦ牸琛� + CrnListVo vo = new CrnListVo(); + vo.setCrnNo(basCrnp.getCrnNo()); // 鍫嗗灈鏈哄彿 + list.add(vo); + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo()); + if (crnThread == null) { + continue; + } + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + + vo.setWorkNo(crnProtocol.getTaskNo()); // 浠诲姟鍙� + if (crnProtocol.getTaskNo()>0) { + WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo()); + if (wrkMast != null) { + vo.setDeviceStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵�� + vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯 + vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔� + vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣� + vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅 + } + } else { + vo.setDeviceStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc()); // 妯″紡鐘舵�� + } + vo.setXspeed(crnProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min) + vo.setYspeed(crnProtocol.getYSpeed()); // 鍗囬檷閫熷害锛坢/min) + vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min) + vo.setXdistance(crnProtocol.getXDistance()); // 璧拌璺濈(Km) + vo.setYdistance(crnProtocol.getYDistance()); // 鍗囬檷璺濈(Km) + vo.setXduration(crnProtocol.getXDuration()); // 璧拌鏃堕暱(H) + vo.setYduration(crnProtocol.getYDuration()); // 鍗囬檷鏃堕暱(H) + + vo.setStatusType(crnProtocol.modeType.desc); // 妯″紡鐘舵�� + vo.setWrkStatus(crnProtocol.getStatusType().id); // 浠诲姟鐘舵�� + vo.setLoading((crnProtocol.getLoaded() != null && crnProtocol.getLoaded() == 1) ? "鏈夌墿" : "鏃犵墿"); // 鏈夌墿 + vo.setBay(crnProtocol.getBay()); // 鍒� + vo.setLev(crnProtocol.getLevel()); // 灞� + + vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆 + vo.setLiftPos(crnProtocol.getLiftPosType().desc); + vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�"); + vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1())); + if (crnProtocol.getAlarm1() > 0) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); + vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName()); + } + vo.setInEnable(basCrnp.getInEnable()); + vo.setOutEnable(basCrnp.getOutEnable()); + } + return R.ok().add(list); } @PostMapping("/crn/output/site") @@ -514,6 +579,27 @@ return R.error(); } + @ManagerAuth(memo = "鍒囨崲鑱旀満妯″紡") + @PostMapping("/crn/operator/auto") + public R crnAuto(CrnOperatorParam param){ + short[] array = new short[9]; + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� +// command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +// command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 +// command.setSourcePosX(param.getSourceRow()); // 婧愬簱浣嶆帓 +// command.setSourcePosY(param.getSourceBay()); // 婧愬簱浣嶅垪 +// command.setSourcePosZ(param.getSourceLev()); // 婧愬簱浣嶅眰 +// command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� +// command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� +// command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� + command.setAuto((short)1); + + return crnControl(command)?R.ok():R.error(); + } + + private boolean crnControl(CrnCommand command){ if (command.getCrnNo() == null) { throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�"); -- Gitblit v1.9.1