From 28ea25cc817e78f1023b8a7c7826441a4acadfc1 Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期一, 08 十二月 2025 15:59:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/RgvController.java | 851 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 580 insertions(+), 271 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index c727c89..5fe0cb4 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -2,49 +2,45 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
import com.core.common.R;
-import com.core.exception.CoolException;
-import com.zy.asrs.domain.enums.RgvStatusType;
-import com.zy.asrs.domain.param.RgvOperatorParam;
-import com.zy.asrs.domain.vo.RgvMsgTableVo;
-import com.zy.asrs.domain.vo.RgvStateTableVo;
-import com.zy.asrs.entity.BasRgv;
-import com.zy.asrs.entity.BasRgvErr;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.domain.param.EnergyGatheringRingParam;
+import com.zy.asrs.domain.param.RgvCircularShuttleParam;
+import com.zy.asrs.domain.param.RgvWrkMastParam;
+import com.zy.asrs.domain.param.RingThroughParam;
+import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasRgvErrMapper;
-import com.zy.asrs.service.BasRgvService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
+import com.zy.asrs.utils.Utils;
+import com.zy.core.cache.*;
import com.zy.core.enums.RgvModeType;
-import com.zy.core.enums.RgvTaskModeType;
import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
import com.zy.core.model.RgvSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.protocol.RgvProtocol;
+import com.zy.core.model.protocol.RgvTaskProtocol;
+import com.zy.core.model.protocol.TaskProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.RgvThread;
-import lombok.extern.slf4j.Slf4j;
+import com.zy.core.thread.SiemensDevpThread;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
/**
- * RGV鎺ュ彛
+ * 杈撻�佽澶囨帴鍙�
* Created by vincent on 2020-06-01
*/
-@Slf4j
@RestController
@RequestMapping("/rgv")
public class RgvController {
+
+ @Autowired
+ private BasDevpPositionService basDevpPositionService;
@Autowired
private SlaveProperties slaveProperties;
@@ -53,272 +49,585 @@
@Autowired
private BasRgvErrMapper basRgvErrMapper;
@Autowired
+ private BasRgvOptService basRgvOptService;
+ @Autowired
private BasRgvService basRgvService;
@Autowired
- private MainServiceImpl mainService;
+ private BasDevpService basDevpService;
@Autowired
- private LocMastService locMastService;
+ private MainServiceImpl mainService;
- @PostMapping("/table/rgv/state")
- @ManagerAuth(memo = "RGV淇℃伅琛�")
- public R rgvStateTable(){
- List<RgvStateTableVo> list = new ArrayList<>();
- List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
- for (BasRgv basRgv : rgvs) {
- // 琛ㄦ牸琛�
- RgvStateTableVo vo = new RgvStateTableVo();
- vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
- list.add(vo);
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
- if (rgvThread == null) {
- continue;
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- continue;
- }
- vo.setStatusType(rgvProtocol.modeType.desc); // 妯″紡鐘舵��
- vo.setStatus(rgvProtocol.getStatusType().desc); // 鐘舵��
- vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 宸ヤ綅1浠诲姟鍙�
- vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
- vo.setLoading1(rgvProtocol.getLoaded1()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅1鏈夌墿
- vo.setRgvPos(rgvProtocol.getRgvPos());
- vo.setRgvPos1(rgvProtocol.getRgvPosI());
- vo.setWalkPos(rgvProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
-// vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
-// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
-// vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅2鏈夌墿
- vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
- if (rgvProtocol.getAlarm() > 0) {
- BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
- vo.setAlarm(rgvErr==null?"鏈煡寮傚父":rgvErr.getErrName());
- }
+ @Value("${constant-parameters.trackEntireLength}")
+ private Long trackEntireLength;
+ @GetMapping("/status/all")
+// @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
+ public R allStatus(){
+ List<Map<String, Object>> res = new ArrayList<>();
+ ConcurrentHashMap<Integer, RgvProtocol> allRgvStatus = RgvStatusCache.getAllRgvStatus();
+ for (RgvProtocol rgvProtocol : allRgvStatus.values()){
+ Map<String, Object> map2 = new HashMap<>();
+ map2.put("rgvNo", rgvProtocol.getRgvNo());
+ map2.put("taskNo", rgvProtocol.getTaskNo());
+ map2.put("mode", rgvProtocol.getModeType().desc);
+ map2.put("status", rgvProtocol.getStatusType().desc);
+ map2.put("rgvPos", rgvProtocol.getRgvPos());
+ map2.put("rgvPosDestination", rgvProtocol.getRgvPosDestination());
+ map2.put("loaded", rgvProtocol.getLoaded().equals((short)-1)? "鏈煡":rgvProtocol.getLoaded()==1? "鏈夌墿":"鏃犵墿");
+ map2.put("errorRgv", RgvErrCache.getErrorDev(rgvProtocol.getRgvNo()));
+ res.add(map2);
}
- return R.ok().add(list);
+ return R.ok().add(res);
}
- @PostMapping("/table/rgv/msg")
- @ManagerAuth(memo = "RGV鏁版嵁琛�")
- public R rgvMsgTable(){
- List<RgvMsgTableVo> list = new ArrayList<>();
- List<BasRgv> rgvs = basRgvService.selectList(new EntityWrapper<BasRgv>().orderBy("rgv_no"));
- for (BasRgv basRgv : rgvs) {
- // 琛ㄦ牸琛�
- RgvMsgTableVo vo = new RgvMsgTableVo();
- vo.setRgvNo(basRgv.getRgvNo()); // RGV鍙�
- list.add(vo);
- // 鑾峰彇RGV淇℃伅
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo());
+ @PostMapping("/task/cache/all")
+// @ManagerAuth(memo = "鍏ㄩ儴淇℃伅")
+ public R allTaskCache(@RequestParam(defaultValue = "0") Integer rgvNo){
+ List<Map<String, Object>> res = new ArrayList<>();
+ try{
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+ Map<String, Object> map2 = new HashMap<>();
+ map2.put("rgvNo", rgvNo);
+ map2.put("taskNo", taskProtocol.getTaskNo());
+ map2.put("targetPosition", taskProtocol.getTargetPosition());
+ map2.put("isRunning", taskProtocol.getIsRunning());
+ map2.put("taskStatus", taskProtocol.getTaskStatus());
+ map2.put("direction", taskProtocol.isDirection());
+ res.add(map2);
+ }
+ } catch (Exception e){
+// return R.error("寮傚父"+e.getMessage());
+ }
+ return R.ok().add(res);
+ }
+
+ @PostMapping("/run/del")//Take Put Walk
+// @ManagerAuth(memo = "娓呯┖浠诲姟")
+ public R rgvRunDel(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ for (TaskProtocol taskProtocol : allTaskProtocol.values()){
+ taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+ }
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鍒犻櫎澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟娓呯┖鎴愬姛");
+ }
+
+ @PostMapping("/run/del2")//Take Put Walk
+// @ManagerAuth(memo = "娓呴櫎浣滀笟鍚姩涓�")
+ public R rgvRunDel2(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ try {
+ rgvThread.setWrkSign();
+ } catch (Exception e) {
+ return R.error("娓呴櫎浣滀笟鍚姩涓け璐�"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟娓呯┖鎴愬姛");
+ }
+
+ @PostMapping("/run/walk")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅琛岃蛋")
+ public R rgvRunWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if ((rgvStaNoPut == null || rgvStaNoPut == 0) && (rgvPosDestination==null || rgvPosDestination==0L)){
+ return R.error("鐩爣绔欑偣璇峰~鍐�");
+ }
+ if (rgvPosDestination == null || rgvPosDestination == 0){
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ rgvPosDestination = basDevpPosition.getPlcPosition();
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issued = new TaskProtocol();
+
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ //鎵ц
+ issued.setTaskNo(Long.valueOf(taskNo));
+ issued.setTaskStatus(1);
+ issued.setTaskNoDirection(issued.gettaskNoDirection$(issued.getTaskNo(), issued.getTaskStatus()));
+ issued.setTargetPosition(rgvPosDestination);
+ issued.setIsRunning(1);
+ issued.setDirection(true);
+
+ taskProtocolCache.updateTaskProtocol(issued);
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/put")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鏀捐揣")
+ public R rgvPutWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoPut == null || rgvStaNoPut == 0){
+ return R.error("鐩爣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedPut = new TaskProtocol();
+
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedPut.setTaskNo(Long.valueOf(taskNo));
+ issuedPut.setTaskStatus(3);
+ issuedPut.setTargetPositionStaNo(basDevpPosition.getDevNo());
+ issuedPut.setTargetPositionStaNoEnd(basDevpPosition.getDevNo$());
+ issuedPut.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
+ issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+ issuedPut.setTargetPosition(basDevpPosition.getPlcPosition());
+ issuedPut.setIsRunning(1);
+ issuedPut.setDirection(basDevpPosition.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedPut);
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/take")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvTakeWalk(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoTake == null || rgvStaNoTake == 0){
+ return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedTake = new TaskProtocol();
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPosition)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedTake.setTaskNo(Long.valueOf(taskNo));
+ issuedTake.setTaskStatus(2);
+ issuedTake.setTargetPositionStaNo(basDevpPosition.getDevNo());
+ issuedTake.setTargetPositionStaNoPlcId(basDevpPosition.getPlcId());
+ issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+ issuedTake.setTargetPosition(basDevpPosition.getPlcPosition());
+ issuedTake.setIsRunning(1);
+ issuedTake.setDirection(basDevpPosition.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedTake);
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/TakeAndPut")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvTakeAndPut(@RequestParam(defaultValue = "0") Integer rgvNo,
+ @RequestParam(defaultValue = "9999") Integer taskNo,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoTake,
+ @RequestParam(defaultValue = "0") Integer rgvStaNoPut,
+ @RequestParam(defaultValue = "0") Long rgvPosDestination
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+ if (rgvStaNoTake == null || rgvStaNoTake == 0){
+ return R.error("鍙栬揣绔欑偣璇峰~鍐�");
+ }
+ if (rgvStaNoPut == null || rgvStaNoPut == 0){
+ return R.error("鏀捐揣绔欑偣璇峰~鍐�");
+ }
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache();
+
+ TaskProtocol issuedTake = new TaskProtocol();
+ TaskProtocol issuedPut = new TaskProtocol();
+ try {
+ ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol();
+ if (allTaskProtocol.size() > 0) {
+ return R.error("瀛樺湪鎵ц涓换鍔★紝璇峰厛澶勭悊锛侊紒锛�");
+ }
+
+ BasDevpPosition basDevpPositionTake = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoTake));
+ if (Cools.isEmpty(basDevpPositionTake)){
+ return R.error("鍙栬揣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedTake.setTaskNo(Long.valueOf(taskNo));
+ issuedTake.setTaskStatus(2);
+ issuedTake.setTargetPositionStaNo(basDevpPositionTake.getDevNo());
+ issuedTake.setTargetPositionStaNoPlcId(basDevpPositionTake.getPlcId());
+ issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus()));
+ issuedTake.setTargetPosition(basDevpPositionTake.getPlcPosition());
+ issuedTake.setIsRunning(1);
+ issuedTake.setDirection(basDevpPositionTake.getRgvSign()==1);
+
+ BasDevpPosition basDevpPositionPut = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStaNoPut));
+ if (Cools.isEmpty(basDevpPositionPut)){
+ return R.error("鐩爣绔欑偣涓嶅瓨鍦�");
+ }
+ //鎵ц
+ issuedPut.setTaskNo(Long.valueOf(taskNo));
+ issuedPut.setTaskStatus(3);
+ issuedPut.setTargetPositionStaNo(basDevpPositionPut.getDevNo());
+ issuedPut.setTargetPositionStaNoEnd(basDevpPositionPut.getDevNo$());
+ issuedPut.setTargetPositionStaNoPlcId(basDevpPositionPut.getPlcId());
+ issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus()));
+ issuedPut.setTargetPosition(basDevpPositionPut.getPlcPosition());
+ issuedPut.setIsRunning(1);
+ issuedPut.setDirection(basDevpPositionPut.getRgvSign()==1);
+
+ taskProtocolCache.updateTaskProtocol(issuedTake);
+ taskProtocolCache.updateTaskProtocol(issuedPut);
+
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/run/delRgvTask")//Take Put Walk
+// @ManagerAuth(memo = "灏忚溅鍙栬揣")
+ public R rgvDelRgvTask(@RequestParam(defaultValue = "0") Integer rgvNo
+ ) {
+ if (rgvNo==null || rgvNo==0){
+ return R.error("璇烽�夋嫨灏忚溅");
+ }
+
+ try {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvNo);
+ rgvThread.setDelRgvTask();
+ } catch (Exception e) {
+ return R.error("浠诲姟鐢熸垚澶辫触"+e.getMessage());
+ }
+
+ return R.ok("浠诲姟鐢熸垚鎴愬姛");
+ }
+
+ @PostMapping("/ring/through/rgv/position/data")
+// @ManagerAuth(memo = "鐜┛浣嶇疆淇℃伅")
+ public R ringThroughRgv(){
+ List<RingThroughParam> result = new ArrayList<>();
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+// for (int i = 1;i<2;i++) {
+// // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
if (rgvThread == null) {
continue;
}
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
+ RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgv.getId());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(rgv.getId());
+ if (rgvTaskProtocol == null) {
continue;
}
+ RingThroughParam ringThroughParam = new RingThroughParam();
- vo.setWorkNo(rgvProtocol.getTaskNo1()); // 浠诲姟鍙�
- if (rgvProtocol.getTaskNo1()>0) {
- WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1());
- if (wrkMast != null) {
- vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc()); // 妯″紡鐘舵��
- vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 婧愮珯
- vo.setStaNo(wrkMast.getStaNo$()); // 鐩爣绔�
- vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣�
- vo.setLocNo(wrkMast.getLocNo()); // 鐩爣搴撲綅
+ ringThroughParam.setIndex(rgv.getId());
+// ringThroughParam.setIndex(i);
+// double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183));
+// double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue());
+ double[] doubles = Utils.getRgvPosNew(trackEntireLength, rgvProtocol.RgvPos.doubleValue());
+
+ ringThroughParam.setValueX(doubles[0]);
+ ringThroughParam.setValueY(doubles[1]);
+ ringThroughParam.setModeColor(rgvProtocol.modeType.color);
+ ringThroughParam.setStatusColor(rgvProtocol.statusType.color);
+ if (rgvProtocol.getModeType() == RgvModeType.AUTO){
+ ringThroughParam.setAnimation(2);
+ }
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/dev/position/data")
+// @ManagerAuth(memo = "绔欑偣淇℃伅")
+ // 绔欑偣浣嶇疆淇℃伅
+ public R ringThroughDev(){
+ List<RingThroughParam> result = new ArrayList<>();
+ List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
+ for (BasDevpPosition basDevpPosition : basDevpPositions){
+// if (basDevpPosition.getDevRegion() == 0){
+// continue;
+// }
+ RingThroughParam ringThroughParam = new RingThroughParam();
+
+ ringThroughParam.setModeColor("#FFFFFF");
+ ringThroughParam.setStatusColor("#FFFFFF");
+ try{
+ BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",basDevpPosition.getDevNo()));
+ if (basDevp.getAutoing().equals("Y")){
+ if (basDevp.getLoading().equals("Y")){
+ ringThroughParam.setModeColor("#ab1839");
+ ringThroughParam.setStatusColor("#ab1839");
+ }
+ if (basDevp.getLoading().equals("N")){
+ ringThroughParam.setModeColor("#27AE60");
+ ringThroughParam.setStatusColor("#27AE60");
+ }
+ } else {
+ ringThroughParam.setModeColor("#C0392B");
+ ringThroughParam.setStatusColor("#C0392B");
}
+
+ } catch (Exception e){
+ System.out.println(e.getMessage());
+ ringThroughParam.setModeColor("#000000");
+ ringThroughParam.setStatusColor("#000000");
+
+ }
+ ringThroughParam.setIndex(basDevpPosition.getDevNo());
+// double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition());
+// ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1);
+// ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
+ double[] doubles = Utils.getRgvPosNew(basDevpPosition.getDevNo(),trackEntireLength, basDevpPosition.getPlcPosition());
+ ringThroughParam.setValueX(doubles[0]);
+ ringThroughParam.setValueY(doubles[1]);
+ result.add(ringThroughParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/track/position/data")
+// @ManagerAuth(memo = "杞ㄩ亾PLC鐘舵�佷俊鎭�")
+ public R wnergyGatheringRingParamTrack(){
+ List<EnergyGatheringRingParam> result = new ArrayList<>();
+ try{
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId()!=1){
+ break;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ if (devpThread.isResult()){
+ if (true){
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)");
+ result.add(energyGatheringRingParam);
+ } else {
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)");
+ result.add(energyGatheringRingParam);
+ }
+ }
+ }
+ if (result.isEmpty()){
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)");
+ result.add(energyGatheringRingParam);
+ }
+ } catch (Exception e){
+ EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam();
+ energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)");
+ energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)");
+ result.add(energyGatheringRingParam);
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/ring/through/task/wrk/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMast(){
+ List<RgvWrkMastParam> result = new ArrayList<>();
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>());
+ for (WrkMast wrkMast : wrkMasts){
+ RgvWrkMastParam rgvWrkMastParam = new RgvWrkMastParam(wrkMast);
+ if (Cools.isEmpty(rgvWrkMastParam.getRgvNo())){
+ rgvWrkMastParam.setRgvSts("鏈粦瀹�");
} else {
- vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 妯″紡鐘舵��
- }
- vo.setXspeed(rgvProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
- vo.setXdistance(rgvProtocol.getXDistance()); // 璧拌璺濈(Km)
- vo.setXduration(rgvProtocol.getXDuration()); // 璧拌鏃堕暱(H)
- }
- return R.ok().add(list);
- }
-
- @PostMapping("/output/site")
- @ManagerAuth(memo = "RGV鎶ユ枃鏃ュ織杈撳嚭")
- public R rgvOutput(){
- StringBuilder str = new StringBuilder();
- String s;
- int i = 0;
- while((s = OutputQueue.RGV.poll()) != null && i <=10) {
- str.append("\n").append(s);
- i++;
- }
- return R.ok().add(str.toString());
- }
-
- /****************************************************************/
- /************************** 鎵嬪姩鎿嶄綔 ******************************/
- /****************************************************************/
-
- @ManagerAuth(memo = "鍙栨斁璐�")
- @PostMapping("/operator/put")
- public R rgvFetchPut(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
-// command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
-// command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
-// command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
-// command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
-// command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "鍙栬揣")
- @PostMapping("/operator/take")
- public R rgvFetch(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.FETCH); // 浠诲姟妯″紡: 鍙栬揣
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
- command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "鏀捐揣")
- @PostMapping("/operator/stockMove")
- public R rgvPut(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.PUT); // 浠诲姟妯″紡: 鏀捐揣
- command.setSourceStaNo1(param.getSourceStaNo1()); // 婧愮珯
- command.setDestinationStaNo1(param.getStaNo1()); // 鐩爣绔�
- command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 浠诲姟妯″紡: 鍙栨斁璐�
- command.setSourceStaNo2(param.getSourceStaNo2()); // 婧愮珯
- command.setDestinationStaNo2(param.getStaNo2()); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "浠诲姟瀹屾垚")
- @PostMapping("/operator/taskComplete")
- public R rgvTaskComplete(RgvOperatorParam param){
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo1((short) 0); // 婧愮珯
- command.setDestinationStaNo1((short) 0); // 鐩爣绔�
- command.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo2((short) 0); // 婧愮珯
- command.setDestinationStaNo2((short) 0); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "娓呴櫎鍛戒护")
- @PostMapping("/operator/clearCommand")
- public R rgvClearCommand(RgvOperatorParam param){
- if (param.getRgvNo() == null) {
- throw new CoolException("璇烽�夋嫨RGV鍙�");
- }
- RgvCommand command = new RgvCommand();
- command.setRgvNo(param.getRgvNo()); // RGV缂栧彿
- command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo1((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode1(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo1((short) 0); // 婧愮珯
- command.setDestinationStaNo1((short) 0); // 鐩爣绔�
- command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskNo2((short) 0); // 宸ヤ綔鍙�
- command.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡
- command.setSourceStaNo2((short) 0); // 婧愮珯
- command.setDestinationStaNo2((short) 0); // 鐩爣绔�
- command.setCommand((short) 0);
-
- return rgvControl(command)? R.ok(): R.error();
- }
-
- @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
- @PostMapping("/operator/handleReset")
- public R handleReset(RgvOperatorParam param) throws Exception {
- if (param.getRgvNo() == null) {
- throw new CoolException("璇烽�夋嫨RGV");
- }
- // 鑾峰彇RGV缂撳瓨
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇RGV淇℃伅
- if (param.getRgvNo().equals(rgv.getId())) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvWrkMastParam.getRgvNo());
if (rgvThread == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- RgvCommand Command = new RgvCommand();
- Command.setRgvNo(rgv.getId()); // RGV缂栧彿
- Command.setTaskMode1(RgvTaskModeType.NONE);
- Command.setAckFinish1((short) 0); // 浠诲姟瀹屾垚纭浣�
- Command.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣�
- Command.setCommand((short) 0); // 浠诲姟瀹屾垚纭浣�
- // 寤舵椂鍙戦��
- Thread.sleep(1000L);
- if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(2, Command))) {
- return R.ok();
+ rgvWrkMastParam.setRgvSts("鏈煡");
} else {
- throw new CoolException("鍛戒护涓嬪彂澶辫触");
- }
-
- }
- }
- return R.error();
- }
-
- private boolean rgvControl(RgvCommand command){
- if (command.getRgvNo() == null) {
- throw new CoolException("璇烽�夋嫨RGV");
- }
- for (RgvSlave rgv : slaveProperties.getRgv()) {
- // 鑾峰彇RGV淇℃伅
- if (command.getRgvNo().equals(rgv.getId())) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
- if (rgvThread == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
- if (rgvProtocol == null) {
- throw new CoolException("RGV涓嶅湪绾�");
- }
- if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, command))) {
- return true;
- } else {
- throw new CoolException("鍛戒护涓嬪彂澶辫触");
+ RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(rgvWrkMastParam.getRgvNo());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(rgvWrkMastParam.getRgvNo());
+ if (rgvTaskProtocol == null) {
+ rgvWrkMastParam.setRgvSts("鏈煡");
+ } else {
+ rgvWrkMastParam.setRgvSts(rgvProtocol.statusType.desc);
+ }
}
}
+ result.add(rgvWrkMastParam);
}
- return false;
+ return R.ok().add(result);
}
-}
\ No newline at end of file
+ @PostMapping("/ring/through/task/wrk/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R ringThroughTaskWrkMastV1(){
+ List<BasRgvOpt> result = new ArrayList<>();
+ for (int i = 1 ; i<11; i ++){
+ BasRgvOpt basRgvOpt = basRgvOptService.selectOne(new EntityWrapper<BasRgvOpt>().eq("rgv_no", i).orderBy("id", false));
+ if (basRgvOpt!=null){
+ result.add(basRgvOpt);
+ }
+ }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttle(){
+ List<RgvCircularShuttleParam> result = new ArrayList<>();
+// List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<>());
+// for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){
+// RgvCircularShuttleParam rgvCircularShuttleParam = new RgvCircularShuttleParam(basCircularShuttle);
+// if (!Cools.isEmpty(rgvCircularShuttleParam.getRgvNo())){
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvCircularShuttleParam.getRgvNo());
+// if (rgvThread != null) {
+// RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+// if (rgvProtocol != null) {
+// rgvCircularShuttleParam.setPosition(rgvProtocol.getRgvPos());
+// if (rgvCircularShuttleParam.getStatus()==0){
+// rgvCircularShuttleParam.setStatus$(rgvProtocol.statusType.desc);
+// }
+// if (rgvProtocol.getAlarmList().isEmpty()){
+// rgvCircularShuttleParam.setError(0);
+// rgvCircularShuttleParam.setError$("-");
+// } else {
+// StringBuilder alarmList = new StringBuilder();
+// for (Integer alarm : rgvProtocol.getAlarmList()){
+// BasRgvErr rgvErr = basRgvErrMapper.selectById(alarm);
+// alarmList.append((rgvErr==null || rgvErr.getErrName()==null)? "鏈煡寮傚父:"+alarm:rgvErr.getErrName());
+// if (alarm.equals(rgvProtocol.getAlarmList().get(rgvProtocol.getAlarmList().size() - 1))){
+// break;
+// }
+// alarmList.append("---");
+// }
+// rgvCircularShuttleParam.setError$(alarmList.toString());
+// }
+// }
+// }
+// }
+// result.add(rgvCircularShuttleParam);
+// }
+ return R.ok().add(result);
+ }
+
+ @PostMapping("/task/rgv/circular/shuttle/mast/position/data/v1")
+// @ManagerAuth(memo = "浣滀笟淇℃伅")
+ public R rgvCircularShuttleV1(){
+// List<BasRgvErrLog> result = new ArrayList<>();
+// for (int i = 1 ; i<11; i ++){
+// BasRgvErrLog basRgvErrLog = basRgvErrLogService.selectOne(new EntityWrapper<BasRgvErrLog>().eq("rgv_no", i).orderBy("id", false));
+// if (basRgvErrLog!=null){
+// result.add(basRgvErrLog);
+// }
+// }
+ return R.ok();
+ }
+
+
+ @PostMapping("/disable/rgv/status")
+// @ManagerAuth(memo = "淇敼RGV鐘舵��")
+ public R rgvDisableStatus(@RequestParam Integer rgvNo,
+ @RequestParam Integer status){
+// log.info("/disable/rgv/status===銆嬩慨鏀筊GV鐘舵�侊紒锛侊紒rgvNo:{},status:{},data:{}",rgvNo,status,new Date());
+// BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no", rgvNo));
+// if (basCircularShuttle == null){
+// return R.error().add("鏈壘鍒版RGV锛屽紓甯革紒锛侊紒");
+// }
+// basCircularShuttle.setStatus(status);
+// basCircularShuttleService.updateById(basCircularShuttle);
+ return R.ok();
+ }
+
+ @PostMapping("/disable/task/delete")
+// @ManagerAuth(memo = "鍒犻櫎浠诲姟")
+ public R taskDisabledelete(@RequestParam Long wrkNo){
+// log.info("/disable/task/delete===銆嬪垹闄や换鍔★紒锛侊紒wrkNo:{},data:{}",wrkNo,new Date());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (Cools.isEmpty(wrkMast)){
+ return R.error().add("鏈壘鍒版浠诲姟锛屽紓甯革紒锛侊紒");
+ }
+ wrkMastService.deleteById(wrkMast);
+ return R.ok();
+ }
+
+ @PostMapping("/disable/task/delete1")
+// @ManagerAuth(memo = "鍒濆鍖栦换鍔�")
+ public R taskDisabledelete1(@RequestParam Long wrkNo){
+ Date now = new Date();
+// log.info("/disable/task/delete1===銆嬪垵濮嬪寲浠诲姟锛侊紒锛亀rkNo:{},data:{}",wrkNo,new Date());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (Cools.isEmpty(wrkMast)){
+ return R.error().add("鏈壘鍒版浠诲姟锛屽紓甯革紒锛侊紒");
+ }
+ wrkMast.setWrkSts(1L);
+// wrkMast.setRgvNo(0);
+ wrkMast.setAppeTime(now);
+ wrkMast.setLogErrTime(now);
+ if (wrkMastService.updateById(wrkMast)){
+ return R.ok();
+ }
+ return R.error("鍒濆鍖栧け璐ワ紒锛侊紒");
+ }
+}
--
Gitblit v1.9.1