From 5589dd50d57175ca231827be7bb2a9fb18875c7f Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 26 六月 2023 19:25:28 +0800
Subject: [PATCH] 充电任务,出入库bug
---
src/main/java/com/zy/asrs/service/WrkChargeService.java | 3
/dev/null | 270 ---------------------------
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 261 ++-----------------------
src/main/java/com/zy/core/thread/ShuttleThread.java | 12
src/main/resources/mapper/WrkChargeMapper.xml | 11 +
src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java | 13 -
src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java | 4
7 files changed, 50 insertions(+), 524 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
deleted file mode 100644
index 6bf8805..0000000
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ /dev/null
@@ -1,270 +0,0 @@
-package com.zy.asrs.controller;
-
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.annotations.ManagerAuth;
-import com.core.common.Cools;
-import com.core.common.R;
-import com.zy.asrs.domain.vo.PlcErrorTableVo;
-import com.zy.asrs.domain.vo.SiteTableVo;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.BasSte;
-import com.zy.asrs.entity.WrkCharge;
-import com.zy.asrs.service.BasDevpService;
-import com.zy.asrs.service.BasSteService;
-import com.zy.asrs.service.WrkChargeService;
-import com.zy.common.model.enums.WrkChargeType;
-import com.zy.common.service.CommonService;
-import com.zy.core.DevpThread;
-import com.zy.core.News;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.enums.SteChargeType;
-import com.zy.core.enums.SteStatusType;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.Task;
-import com.zy.core.model.protocol.StaProtocol;
-import com.zy.core.model.protocol.SteProtocol;
-import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.SiemensDevpThread;
-import com.zy.core.thread.SteThread;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-
-/**
- * 杈撻�佽澶囨帴鍙�
- * Created by vincent on 2020-06-01
- */
-@Slf4j
-@RestController
-@RequestMapping("/site")
-public class SiteController {
-
- @Autowired
- private SlaveProperties slaveProperties;
- @Autowired
- private BasDevpService basDevpService;
- @Autowired
- private WrkChargeService wrkChargeService;
- @Autowired
- private BasSteService basSteService;
- @Autowired
- private CommonService commonService;
-
- @GetMapping("/io/mode/info/site")
- @ManagerAuth(memo = "鍏呯數妯″紡")
- public R ioMode(){
- List<Map<String, Object>> res = new ArrayList<>();
- for (DevpSlave devp : slaveProperties.getDevp()) {
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- Map<String, Object> map1 = new HashMap<>();
- map1.put("floor", 1);
- map1.put("modeVal", !devpThread.charge0);
- map1.put("modeDesc", !devpThread.charge0?"鍏呯數涓�":"鍏抽棴");
- res.add(map1);
- Map<String, Object> map2 = new HashMap<>();
- map2.put("floor", 2);
- map2.put("modeVal", devpThread.charge1);
- map2.put("modeDesc", devpThread.charge1?"鍏呯數涓�":"鍏抽棴");
- res.add(map2);
- }
- return R.ok().add(res);
- }
-
- @PostMapping("/io/mode/action/site")
- @ManagerAuth(memo = "鍏呯數鎺у埗")
- public R ioModeAction(@RequestParam("floor") Integer floor, @RequestParam("charge") Boolean charge){
- if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) {
- return R.error("鐩墠瀛樺湪灏忚溅鍏呯數浠诲姟锛岃绋嶅悗鍐嶈瘯");
- }
- if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) {
- return R.error("鐩墠瀛樺湪灏忚溅澶嶄綅浠诲姟锛岃绋嶅悗鍐嶈瘯");
- }
- if (charge) {
- return R.ok();
- }
-
- SteChargeType steCharge = SteChargeType.get(floor);
- assert steCharge != null;
- Integer steNo = basSteService.hasCarOfLocNo(steCharge.locNo);
- if (Cools.isEmpty(steNo)) {
- return R.error(steNo + "鍙峰皬杞︿笉鍦�" + floor + "鍙峰厖鐢垫々锛岃妫�鏌ュ皬杞﹀畾浣�");
- }
- SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
- SteProtocol steProtocol = steThread.getSteProtocol();
- BasSte basSte = basSteService.selectById(steNo);
- if (steProtocol.getMode() == 0) {
- return R.error(steNo + "鍙峰皬杞︾绾匡紝鏃犳硶鎿嶄綔");
- }
- if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
- return R.error(steNo + "鍙峰皬杞︿笉鏄┖闂诧紝鏃犳硶鎿嶄綔");
- }
- WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, WrkChargeType.reset);
- if (wrkCharge == null) {
- // 寮�濮嬬┛姊溅澶嶄綅浠诲姟
- wrkCharge = new WrkCharge();
- wrkCharge.setSteNo(steNo);
- wrkCharge.setWrkNo(commonService.getChargeWorkNo(6));
- wrkCharge.setWrkSts(41L); // 41.灏忚溅鍑嗗澶嶄綅
- wrkCharge.setCrnNo(2); // 鍥哄畾2鍙峰爢鍨涙満
- wrkCharge.setIoPri((double) 10);
- wrkCharge.setSourceLocNo(steCharge.locNo);
- wrkCharge.setLocNo(basSte.getIdleLoc());
- wrkCharge.setMemo("reset");
- wrkCharge.setAppeTime(new Date());
- if (!wrkChargeService.insert(wrkCharge)) {
- News.error("淇濆瓨{}鍙风┛姊溅澶嶄綅浠诲姟澶辫触!!!", steNo);
- }
- }
- return R.ok(steNo + "鍙峰皬杞﹀噯澶囩寮�" + floor + "鍙峰厖鐢垫々");
- }
-
- @PostMapping("/table/site")
- @ManagerAuth(memo = "绔欑偣淇℃伅琛�")
- public R siteTable(){
- List<SiteTableVo> list = new ArrayList<>();
- // 鍐呭瓨鏁版嵁
- Map<Integer, StaProtocol> station = new HashMap<>();
- for (DevpSlave devp : slaveProperties.getDevp()) {
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- station.putAll(devpThread.getStation());
- }
- // 鎸佷箙鏁版嵁
- List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>().orderBy("dev_no"));
- for (BasDevp devp : basDevps) {
- SiteTableVo vo = new SiteTableVo();
- vo.setDevNo(devp.getDevNo()); // 绔欑偣缂栧彿
- list.add(vo);
- StaProtocol staProtocol = station.get(devp.getDevNo());
- if (null == staProtocol) { continue; }
- vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 鑷姩
- vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 鏈夌墿
- vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 鍙叆
- vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭
- vo.setLiftArrival(staProtocol.isLiftArrival()?"Y":"N"); // 鎻愬崌鏈哄埌浣嶄俊鍙�
- vo.setShuttleTakeEnable(staProtocol.isShuttleTakeEnable()?"Y":"N"); // 绌挎杞﹀彲鍙栦俊鍙�
- vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 鍏ュ簱鏍囪
- vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿
- vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔�
- }
- return R.ok().add(list);
- }
-
- @PostMapping("/table/plc/errors")
- @ManagerAuth(memo = "杈撻�佽澶噋lc寮傚父淇℃伅琛�")
- public R plcErrorTable(){
- List<PlcErrorTableVo> list = new ArrayList<>();
- for (DevpSlave devp : slaveProperties.getDevp()) {
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- Map<Integer, StaProtocol> station = devpThread.getStation();
-
- for(Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
- StaProtocol staProtocol = entry.getValue();
-// if (staProtocol) {
-// PlcErrorTableVo vo = new PlcErrorTableVo();
-// vo.setNo(entry.getKey()); // 搴忓彿
-//
-// vo.setPlcDesc(""); // todo:luxiaotao plc閿欒鎻忚堪
-// vo.setError(""); // todo:luxiaotao 寮傚父淇℃伅
-// list.add(vo);
-// }
- }
-
- }
-
- list.sort((o1, o2) -> {
- if (o1.getNo().compareTo(o2.getNo()) > 0){
- return 1;
- }else if (o1.getNo().compareTo(o2.getNo()) < 0){
- return 0;
- }else{
- return -1;
- }
-
- });
- return R.ok().add(list);
- }
-
- @PostMapping("/output/site")
- @ManagerAuth(memo = "绔欑偣璁惧鎶ユ枃鏃ュ織杈撳嚭")
- public R siteOutput(){
- StringBuilder str = new StringBuilder();
- String s;
- int i = 0;
- while((s = OutputQueue.DEVP.poll()) != null && i <=10) {
- str.append("\n").append(s);
- i++;
- }
- return R.ok().add(str.toString());
- }
-
- /****************************************************************/
- /************************** 璇︽儏鎿嶄綔 ******************************/
- /****************************************************************/
-
- @GetMapping("/detl/{siteId}")
- public R siteDetl(@PathVariable("siteId") Integer siteId){
- SiteTableVo vo = new SiteTableVo();
- for (DevpSlave devp : slaveProperties.getDevp()) {
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- Map<Integer, StaProtocol> station = devpThread.getStation();
- for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
- if (siteId.equals(entry.getKey())) {
- StaProtocol staProtocol = entry.getValue();
- vo.setDevNo(entry.getKey()); // 绔欑偣缂栧彿
- vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 鑷姩
- vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 鏈夌墿
- vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 鍙叆
- vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭
- vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 闇�姹�1
- vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿
- vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔�
- return R.ok().add(vo);
- }
- }
- }
- return R.error("plc宸叉帀绾�");
- }
-
- @PostMapping("/detl/update")
- @ManagerAuth(memo = "淇敼绔欑偣鏁版嵁")
- public R siteDetlUpdate(@RequestParam Integer siteId,
- @RequestParam Short workNo,
- @RequestParam Short staNo,
- @RequestParam String pakMk){
- for (DevpSlave devp : slaveProperties.getDevp()) {
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- Map<Integer, StaProtocol> station = devpThread.getStation();
- for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
- if (siteId.equals(entry.getKey())) {
- StaProtocol staProtocol = entry.getValue();
- staProtocol = staProtocol.clone();
- if (workNo != null) {
- staProtocol.setWorkNo(workNo);
- }
- if (staNo != null) {
- staProtocol.setStaNo(staNo);
- }
- if (pakMk != null) {
- staProtocol.setPakMk(pakMk.equals("Y"));
- }
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (result) {
- return R.ok();
- } else {
- return R.error("涓嬪彂鍛戒护澶辫触");
- }
- }
- }
- }
- return R.error("plc宸叉帀绾�");
- }
-
-
-}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java b/src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java
index fdc699b..987a0bc 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkChargeMapper.java
@@ -10,7 +10,9 @@
@Repository
public interface WrkChargeMapper extends BaseMapper<WrkCharge> {
- WrkCharge selectWorkingOfCharge(@Param("shuttleNo") Integer shuttleNo, @Param("charge") Integer charge);
+ WrkCharge selectWorking(@Param("shuttleNo") Integer shuttleNo);
+
+ WrkCharge selectWorkingOfCharge(@Param("charge") Integer charge);
WrkCharge selectWorkingOfReset(@Param("steNo") Integer steNo);
diff --git a/src/main/java/com/zy/asrs/service/WrkChargeService.java b/src/main/java/com/zy/asrs/service/WrkChargeService.java
index d5e225e..a775d58 100644
--- a/src/main/java/com/zy/asrs/service/WrkChargeService.java
+++ b/src/main/java/com/zy/asrs/service/WrkChargeService.java
@@ -2,11 +2,10 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.WrkCharge;
-import com.zy.common.model.enums.WrkChargeType;
public interface WrkChargeService extends IService<WrkCharge> {
- WrkCharge selectWorking(Integer steNo, WrkChargeType type);
+ WrkCharge selectWorking(Integer steNo);
WrkCharge selectWorkingOfCharge(Integer charge);
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 3e5142c..9a25422 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1079,7 +1079,7 @@
BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
- String disLocNo = "2000202" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
+ String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
LocMast locMast1 = locMastService.queryByLoc(disLocNo);
if (locMast1 == null) {
continue;//鎵句笉鍒板簱浣�
@@ -1155,22 +1155,11 @@
assignCommand.setTaskMode(ShuttleTaskModeType.PAK_OUT.id.shortValue());
assignCommand.setSourceLocNo(liftSiteLocNo);
- List<ShuttleCommand> commands = this.shuttleAssignCommand(liftSiteLocNo, wrkMast.getSourceLocNo(), liftSiteLocNo, assignCommand, shuttleThread);
- if (commands == null) {
- continue;//鏈壘鍒拌矾寰�
- }
- //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝闇�瑕佸涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛
- short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜
- Short distCode = commands.get(0).getStartCodeNum();//鐩爣浜岀淮鐮�
- //鑾峰彇绉诲姩鍛戒护
- ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1400, commands.get(0).getRunDirection(), startCode, 1400, 500);
- commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
-
//鑾峰彇褰撳墠灏忚溅鎵�鍦ㄦゼ灞傜殑绔欑偣淇℃伅
BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo);
Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮�
- String disLocNo = "2000202" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
+ String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆
LocMast locMast1 = locMastService.queryByLoc(disLocNo);
if (locMast1 == null) {
continue;//鎵句笉鍒板簱浣�
@@ -1178,8 +1167,19 @@
short disCode = Short.parseShort(locMast1.getQrCodeValue());
//浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
ShuttleCommand moveCommand2 = shuttleThread.getMoveCommand(endStartCode, disCode, 1400, ShuttleRunDirection.BOTTOM.id, endStartCode, 1400, 500);
- commands.add(moveCommand2);
+ List<ShuttleCommand> commands = this.shuttleAssignCommand(liftSiteLocNo, wrkMast.getSourceLocNo(), liftSiteLocNo, assignCommand, shuttleThread);
+ if (commands == null) {
+ continue;//鏈壘鍒拌矾寰�
+ }
+ commands.add(moveCommand2);//浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀�
+
+ //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝闇�瑕佸涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛
+ short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜
+ Short distCode = commands.get(0).getStartCodeNum();//鐩爣浜岀淮鐮�
+ //鑾峰彇绉诲姩鍛戒护
+ ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1400, commands.get(0).getRunDirection(), startCode, 1400, 500);
+ commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶�
//鍒嗛厤鐩爣搴撲綅
shuttleProtocol.setLocNo(wrkMast.getSourceLocNo());
@@ -1336,6 +1336,9 @@
&& shuttleProtocol.getTaskNo() != 0
&& shuttleProtocol.getBusyStatus() == 0
) {
+ //鏍囪澶嶄綅
+ shuttleProtocol.setPakMk(true);
+
//灏嗕换鍔℃。鏍囪涓哄畬鎴�
WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue());
if (wrkMast != null) {
@@ -1364,8 +1367,6 @@
shuttleProtocol.setSourceLocNo(null);
//鐩爣搴撲綅娓呴浂
shuttleProtocol.setLocNo(null);
- //鏍囪澶嶄綅
- shuttleProtocol.setPakMk(true);
//浠诲姟鎸囦护娓呴浂
shuttleProtocol.setAssignCommand(null);
News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
@@ -2470,7 +2471,7 @@
continue;
}
- WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue(), WrkChargeType.charge);
+ WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue());
if (wrkCharge != null) {//宸叉湁鍏呯數浠诲姟
continue;
}
@@ -2512,7 +2513,7 @@
*/
public synchronized void executeShuttleCharge() {
for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
- WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.charge);
+ WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttle.getId());
if (wrkCharge == null) {
continue;
}
@@ -2735,8 +2736,12 @@
assignCommand.setCommands(commands);
shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING);
- //涓嬪彂浠诲姟
- MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+
+ wrkCharge.setWrkSts(60L);//60.鍏呯數浠诲姟瀹屾垚
+ if (wrkChargeMapper.updateById(wrkCharge) > 0) {
+ //涓嬪彂浠诲姟
+ MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
+ }
}
if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id) {
@@ -2745,222 +2750,6 @@
}
}
- }
-
- /**
- * 杞鍏呯數妗╂槸鍚︽湁绌洪棽灏忚溅
- */
- @Deprecated
- public synchronized void queryChargeLocOfComplete() {
- // 涓庡厖鐢典换鍔′笉鍚屾杩涜
- if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) { return; }
- if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) { return; }
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- // 妫�绱㈠厖鐢垫々
- for (SteChargeType value : SteChargeType.values()) {
- Integer steNo = basSteService.hasCarOfLocNo(value.locNo);
- if (steNo != null) {
- SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
- SteProtocol steProtocol = steThread.getSteProtocol();
- BasSte basSte = basSteService.selectById(steNo);
- if (Cools.isEmpty(steProtocol, basSte)) {
- continue;
- }
- if (steProtocol.getCharge() < 99) {
- continue;
- }
- if (steProtocol.getMode() == 0) {
- continue;
- }
- if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
- continue;
- }
-// // 1鍙峰厖鐢垫々
-// if (value.equals(SteChargeType.FIRST) && devpThread.charge0) {
-// continue;
-// }
-// // 2鍙峰厖鐢垫々
-// if (value.equals(SteChargeType.SECOND) && devpThread.charge1) {
-// continue;
-// }
-// // 3鍙峰厖鐢垫々
-// if (value.equals(SteChargeType.THIRD) && devpThread.charge2) {
-// continue;
-// }
-// // 灏忚溅鏄惁澶勪簬鍏呯數鐘舵��
-// if (steProtocol.getChargeStatus() == 1) {
-// continue;
-// }
- // case 1 : 鑷姩鍏呯數寮� 棣堢數 脳
- // case 2 : 鑷姩鍏呯數寮� 婊$數 鉁�
- // case 3 : 鑷姩鍏呯數鍏� 棣堢數 鉁�
- // case 4 : 鑷姩鍏呯數鍏� 婊$數 鉁�
- if (basSte.getAutoCharge().equals("Y")
- && steProtocol.getCharge() < Float.parseFloat(basSte.getChargeLine())) {
- continue;
- }
-
- WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, WrkChargeType.reset);
-
- if (wrkCharge == null) {
- // 寮�濮嬬┛姊溅澶嶄綅浠诲姟
- wrkCharge = new WrkCharge();
- wrkCharge.setSteNo(steNo);
- wrkCharge.setWrkNo(commonService.getChargeWorkNo(6));
- wrkCharge.setWrkSts(41L); // 41.灏忚溅鍑嗗澶嶄綅
- wrkCharge.setCrnNo(2); // 鍥哄畾2鍙峰爢鍨涙満
- wrkCharge.setIoPri((double) 10);
- wrkCharge.setSourceLocNo(value.locNo);
- wrkCharge.setLocNo(basSte.getIdleLoc());
- wrkCharge.setMemo("reset");
- wrkCharge.setAppeTime(new Date());
- if (!wrkChargeService.insert(wrkCharge)) {
- News.error("淇濆瓨{}鍙风┛姊溅澶嶄綅浠诲姟澶辫触!!!", steNo);
- } else {
- break;
- }
- }
- }
- }
- }
-
- /**
- * 灏忚溅浠庡厖鐢垫々 鑷� 寰呮満搴撲綅
- */
- @Deprecated
- public synchronized void steFromChargeToIdleLoc() {
- WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.reset);
- if (wrkCharge == null) { return; }
- SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkCharge.getSteNo());
- SteProtocol steProtocol = steThread.getSteProtocol();
- BasSte basSte = basSteService.selectById(wrkCharge.getSteNo());
- if (Cools.isEmpty(steProtocol, basSte)) {
- return;
- }
- // 鎼繍鑷冲浐瀹氶�氶亾
- if (wrkCharge.getWrkSts() == 41L) {
- // 鎼皬杞﹁嚦灏忚溅璧板悜閫氶亾
- List<String> channel = slaveProperties.getChannel();
- for (String channelLocNo : channel) {
- Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo());
- if (null != otherSte) {
- News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), channelLocNo, otherSte);
- } else {
- // 鍥哄畾鍫嗗灈鏈�
- int crnNo = 1;
- if (null != wrkMastMapper.selectWorkingByCrn(crnNo)) {
- return;
- }
-
- LocMast channelLoc = locMastService.selectById(channelLocNo);
-
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) { continue; }
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(steProtocol.getRow()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), false).shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
- steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), false), channelLoc.getBay1(), channelLoc.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 41.灏忚溅鍑嗗澶嶄綅 => 42.鍚婅溅鎼繍
- Date now = new Date();
- wrkCharge.setWrkSts(42L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼澶嶄綅浠诲姟鐘舵�� 41.灏忚溅鍑嗗澶嶄綅 => 42.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- break;
- }
-
- }
- }
- } else if (wrkCharge.getWrkSts() == 43L) {
- // 灏忚溅琛岄┒閫氶亾
- if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) {
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- SteCommand steCommand = new SteCommand();
- steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�
- steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.BACK_ORIGIN); // 鍘诲乏绔�
-
- steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue());
- steCommand.setBay(steProtocol.getBay());
- steCommand.setLev(steProtocol.getLev());
- if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
- News.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
- } else {
- // 淇敼宸ヤ綔妗g姸鎬� 43.灏忚溅鍒拌揪 ===> 44.灏忚溅璧拌
- wrkCharge.setWrkSts(44L);
- Date now = new Date();
- wrkCharge.setCrnEndTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼澶嶄綅浠诲姟鐘舵�� 43.灏忚溅鍒拌揪 ===> 44.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- }
- } else if (wrkCharge.getWrkSts() == 45L) {
- if (null != wrkMastMapper.selectWorkingByCrn(wrkCharge.getCrnNo())) {
- return;
- }
-
- LocMast idleLoc = locMastService.selectById(basSte.getIdleLoc());
-
- Integer otherSte = existOtherSte(idleLoc.getLocNo(), wrkCharge.getSteNo());
- if (null != otherSte) {
- News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), idleLoc.getLocNo(), otherSte);
- } else {
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkCharge.getCrnNo());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) { return; }
- // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
- // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(Utils.getGroupRow(idleLoc.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(idleLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(idleLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
- News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
- steThread.modifyPos(Utils.getGroupRow(idleLoc.getLocNo(), true), idleLoc.getBay1(), idleLoc.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 45.灏忚溅寰呮惉 => 46.鏀捐嚦寰呮満浣�
- Date now = new Date();
- wrkCharge.setWrkSts(46L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- News.error("淇敼宸ヤ綔妗g姸鎬� 45.灏忚溅寰呮惉 => 46.鏀捐嚦寰呮満浣� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- }
- }
- }
-
- }
- }
}
public List<String> crn2DemoLocs = new ArrayList<String>(); public String crn2LastLoc = "";
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java
index c8ae094..6019518 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkChargeServiceImpl.java
@@ -4,25 +4,18 @@
import com.zy.asrs.entity.WrkCharge;
import com.zy.asrs.mapper.WrkChargeMapper;
import com.zy.asrs.service.WrkChargeService;
-import com.zy.common.model.enums.WrkChargeType;
import org.springframework.stereotype.Service;
@Service("wrkChargeService")
public class WrkChargeServiceImpl extends ServiceImpl<WrkChargeMapper, WrkCharge> implements WrkChargeService {
@Override
- public WrkCharge selectWorking(Integer shuttleNo, WrkChargeType type) {
- switch (type) {
- case charge:
- return this.baseMapper.selectWorkingOfCharge(shuttleNo, 1);
- case reset:
- return this.baseMapper.selectWorkingOfReset(shuttleNo);
- }
- return null;
+ public WrkCharge selectWorking(Integer shuttleNo) {
+ return this.baseMapper.selectWorkingOfCharge(shuttleNo);
}
@Override
public WrkCharge selectWorkingOfCharge(Integer charge) {
- return this.baseMapper.selectWorkingOfCharge(null, charge);
+ return this.baseMapper.selectWorkingOfCharge(charge);
}
}
diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index 7aeff9c..30dac2d 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -653,9 +653,6 @@
return false;
}
- //灏嗘爣璁扮疆涓篺alse(闃叉閲嶅彂)
- shuttleProtocol.setPakMk(false);
-
List<ShuttleCommand> errorCommands = redisCommand.getErrorCommands();
if (errorCommands.size() > 0) {
//浼樺厛鎵ц璇ユ寚浠�
@@ -757,8 +754,12 @@
//灏忚溅褰撳墠鍛戒护璧峰浣嶇疆灏辨槸鎻愬崌鏈轰簩缁寸爜锛岃鏄庡皬杞﹂渶瑕佸悜鎻愬崌鏈哄绉诲姩锛屽垯闇�瑕佸垽鏂姸鎬佹槸鍚︽弧瓒�
if (command.getStartCodeNum().intValue() == liftProtocol.getBarcode().intValue()){
//鎻愬崌鏈烘槸鍚︾┖闂诧紝鎻愬崌鏈烘槸鍚﹀埌杈剧洰鏍囨ゼ灞傦紝鐩爣妤煎眰鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙蜂綅
- if (!liftProtocol.isIdle()) {
+ if (!liftProtocol.isIdleNoTask()) {
return false;//鎻愬崌鏈哄繖锛岀姝笅鍙戝懡浠�
+ }
+ if (liftProtocol.getTaskNo().intValue() != wrkNo) {
+ //鎻愬崌鏈哄伐浣滃彿鍜屽綋鍓嶅伐浣滀笉鐩稿悓锛岀姝笅鍙戝懡浠�
+ return false;
}
Short distCodeNum = command.getDistCodeNum();//鐩爣浜岀淮鐮�
@@ -793,6 +794,9 @@
} else {
News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙戞垚鍔燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command));
+ //灏嗘爣璁扮疆涓篺alse(闃叉閲嶅彂)
+ shuttleProtocol.setPakMk(false);
+
//淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘�
BasShuttleOptService shuttleOptService = SpringUtils.getBean(BasShuttleOptService.class);
if (shuttleOptService != null) {
diff --git a/src/main/resources/mapper/WrkChargeMapper.xml b/src/main/resources/mapper/WrkChargeMapper.xml
index 373a6a0..b029dfc 100644
--- a/src/main/resources/mapper/WrkChargeMapper.xml
+++ b/src/main/resources/mapper/WrkChargeMapper.xml
@@ -31,13 +31,22 @@
</resultMap>
- <select id="selectWorkingOfCharge" resultMap="BaseResultMap">
+ <select id="selectWorking" resultMap="BaseResultMap">
select top 1 *
from asr_wrk_charge
where 1=1
<if test="shuttleNo != null">
and shuttle_no = #{shuttleNo}
</if>
+ and wrk_sts < 60
+ and memo = 'charge'
+ order by appe_time, io_pri desc
+ </select>
+
+ <select id="selectWorkingOfCharge" resultMap="BaseResultMap">
+ select top 1 *
+ from asr_wrk_charge
+ where 1=1
<if test="charge != null">
and charge = #{charge}
</if>
--
Gitblit v1.9.1