pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/TaskWrkService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WrkMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/autoReportStartHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/MainProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -15,7 +15,7 @@ <properties> <java.version>1.8</java.version> <cool.version>3.2.0</cool.version> <cool.version>3.4.5</cool.version> <mysql-driver.version>5.1.47</mysql-driver.version> <mybatis-plus.version>2.3.2</mybatis-plus.version> <fastjson.version>1.2.58</fastjson.version> src/main/java/com/zy/asrs/service/TaskWrkService.java
@@ -29,5 +29,9 @@ List<TaskWrk> selectToBeHistoryData(); int saveToHistory(String taskNo);//将任务转历史日志 /** * 获取对应堆垛机号工作状态为14,12,2的工作档 */ int getStoreCount(Integer crnNo); } src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -15,4 +15,9 @@ int getOutToStn182(Integer devpNo); /** * 获取对应堆垛机号工作状态为14,12,2的工作档 */ int getStoreCount(Integer crnNo); } src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
@@ -6,13 +6,19 @@ import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.mapper.BasCrnpMapper; import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.WrkMastService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Slf4j @Service("basCrnpService") public class BasCrnpServiceImpl extends ServiceImpl<BasCrnpMapper, BasCrnp> implements BasCrnpService { @Value("${wms.count}") private Integer maxCount; @Autowired private WrkMastService wrkMastService; @Override public BasCrnp checkSiteStatus(Integer crnId) { BasCrnp crnp = this.selectById(crnId); @@ -36,6 +42,11 @@ return false; } if (pakin) { // int storeCount = wrkMastService.getStoreCount(crnNo); // if(storeCount >= maxCount){ // log.error("{}号堆垛机暂存数已满!", crnNo); // return false; // } if ("N".equals(crnp.getInEnable())) { log.error("{}号堆垛机不可入", crnNo); return false; @@ -60,4 +71,5 @@ // } return true; } } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -42,12 +42,14 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.io.IOException; import java.util.*; import java.util.concurrent.CompletableFuture; /** * 立体仓库WCS系统主流程业务 @@ -94,7 +96,10 @@ private ApiLogService apiLogService; @Autowired private CommonService commonService; @Value("${wms.count}") private Integer maxCount; @Autowired private WrkMastService wrkMastService; @Value("${wms.url}") private String wmsUrl; @Value("${wms.inboundTaskApplyPath}") @@ -107,6 +112,95 @@ private CrnController crnController; @Autowired private SiteController siteController; //出库站点至112循环站点 public synchronized void shiftTargetToCyclePoint() throws IOException, InterruptedException{ try{ for (DevpSlave devp : slaveProperties.getDevp()) { for (DevpSlave.Sta outSta : devp.getOutSta()) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(outSta.getStaNo()); StaProtocol staProtocol1 = devpThread.getStation().get(1001); StaProtocol staProtocol2 = devpThread.getStation().get(1002); StaProtocol staProtocol3 = devpThread.getStation().get(1003); StaProtocol staProtocol4 = devpThread.getStation().get(1004); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } if (staProtocol1 == null) { continue; } else { staProtocol1 = staProtocol1.clone(); } if (staProtocol2 == null) { continue; } else { staProtocol2 = staProtocol2.clone(); } if (staProtocol3 == null) { continue; } else { staProtocol3 = staProtocol3.clone(); } if (staProtocol4 == null) { continue; } else { staProtocol4 = staProtocol4.clone(); } boolean result = false; switch(outSta.getStaNo()){ case 105: if (staProtocol1.isLoading()){ result = true; } case 107: if (staProtocol2.isLoading()){ result = true; } case 109: if (staProtocol3.isLoading()){ result = true; } case 110: if (staProtocol4.isLoading()){ result = true; } default: break; } if(result){ staProtocol.setStaNo((short) 112); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } } }catch (Exception e) { log.error("generateStoreWrkFile e", e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } //112循环站点至出库站 public synchronized void shiftCyclePointToTarget() throws IOException, InterruptedException{ try{ for (DevpSlave devp : slaveProperties.getDevp()) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(112); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); if(wrkMast != null && wrkMast.getWrkNo() < 9000 && wrkMast.getWrkNo() > 7000){ staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } }catch (Exception e) { log.error("generateStoreWrkFile e", e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException { @@ -722,6 +816,7 @@ continue; } // 获取工作状态为2(设备上走)的入库工作档 TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString()); if (null == taskWrk) { @@ -847,6 +942,12 @@ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { break; } int storeCount = taskWrkService.getStoreCount(taskWrk.getCrnNo()); if(storeCount >= maxCount){ log.error("{}号堆垛机暂存数已满!", taskWrk.getCrnNo()); break; } // 已经存在吊车执行任务时,则过滤 if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
@@ -2,11 +2,13 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.StaDesc; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.mapper.TaskWrkMapper; import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.service.ApiLogService; @@ -247,4 +249,9 @@ public int saveToHistory(String taskNo) { return this.baseMapper.saveToHistory(taskNo); } @Override public int getStoreCount(Integer crnNo){ return selectCount(new EntityWrapper<TaskWrk>().eq("crn_no", crnNo).in("wrk_sts",12,14,2)); } } src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -5,9 +5,11 @@ import com.zy.asrs.entity.WrkMast; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.WrkMastService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.List; @Service("wrkMastService") public class WrkMastServiceImpl extends ServiceImpl<WrkMastMapper, WrkMast> implements WrkMastService { @@ -31,4 +33,9 @@ public int getOutToStn182(Integer devpNo) { return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts",11,12)); } @Override public int getStoreCount(Integer crnNo){ return selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts",12,14,2)); } } src/main/java/com/zy/asrs/task/autoReportStartHandler.java
@@ -85,7 +85,7 @@ */ @Scheduled(cron = "0/3 * * * * ? ") public synchronized void execute() throws IOException { List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status",1).in("wrk_sts",12,13,3,4)); List<TaskWrk> taskWrks=taskWrkService.selectList(new EntityWrapper<TaskWrk>().eq("status",1).in("wrk_sts",12,13,2,3,4)); if(taskWrks.size()>0){ for(TaskWrk taskWrk:taskWrks){ if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){ src/main/java/com/zy/core/MainProcess.java
@@ -62,6 +62,10 @@ // mainService.outOfDevp(); // 其他 ===>> // 入出库模式切换函数 //环形循环函数 mainService.shiftTargetToCyclePoint(); mainService.shiftCyclePointToTarget(); i++; if (i > 1) { // mainService.ioConvert(); src/main/resources/application.yml
@@ -44,6 +44,8 @@ publicKeysStorePath: publicCerts.keystore wms: #堆垛机任务暂存数 count: 4 # 是否开启上报 start: true # WMS系统ip