src/main/java/com/zy/asrs/controller/OutController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/AgvBasDevpService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/AgvWrkMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OutController.java
@@ -276,21 +276,21 @@ agvTaskDtos.add(taskDto); } //寻找空站点位置 AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo()); if(Cools.isEmpty(agvBasDevp)){ //如果没有找到空站点,则生成准备任务 //TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto); //agvTaskDtos.add(taskDto); //如果库位存在混载 return; } // agvBasDevp.setLocSts("S"); // agvBasDevpService.updateById(agvBasDevp); agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null); //TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto); taskDto.setAgvStaNo(agvBasDevp.getDevNo()); // //寻找空站点位置 // AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(locDto.getAgvStaNo()); // if(Cools.isEmpty(agvBasDevp)){ // //如果没有找到空站点,则生成准备任务 // //TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getAgvStaNo(), locDto); // //agvTaskDtos.add(taskDto); // //如果库位存在混载 // // return; // } //// agvBasDevp.setLocSts("S"); //// agvBasDevpService.updateById(agvBasDevp); // agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null); // //TaskDto taskDto = new TaskDto(locDto.getLocNo(), agvBasDevp.getDevNo(), locDto); // taskDto.setAgvStaNo(agvBasDevp.getDevNo()); //agvTaskDtos.add(taskDto); src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java
@@ -9,6 +9,7 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; @Mapper @Repository @@ -22,4 +23,21 @@ @Select("select station_code from agv_bas_devp where floor = #{floor} and cache_shelves = 'Y' group by station_code") List<String> selectCacheShelvesStationCodeByFloor(@Param("floor") int floor); @Select("SELECT\n" + "\tbas.dev_no,\n" + "\tCOUNT ( mast.loc_no ) AS num \n" + "FROM\n" + "\tagv_bas_devp bas\n" + "\tLEFT JOIN agv_wrk_mast mast ON bas.dev_no = mast.loc_no \n" + "WHERE\n" + "\tbas.station_code = #{stationCode} AND bas.loc_sts != 'X' \n" + "GROUP BY\n" + "\tbas.dev_no \n" + "ORDER BY\n" + "\tnum") List<Map<String,Object>> selectDevNoAndNumBystationCode(@Param("stationCode") String stationCode); @Select("select station_code from agv_bas_devp group by station_code ") List<String> selectAllStationCode(); } src/main/java/com/zy/asrs/service/AgvBasDevpService.java
@@ -26,4 +26,8 @@ List<String> selectCacheShelvesStationCodeByFloor(int floor); public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode); List<String> selectAllStationCode(); } src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -21,4 +21,7 @@ public boolean deleteByWrkNo(int wrkNo); public int containerArrived(AgvWrkMast agvWrkMast); public List<AgvWrkMast> selectReadyAgvWrkMast(); } src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
@@ -213,4 +213,13 @@ return this.baseMapper.selectCacheShelvesStationCodeByFloor(floor); } public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode){ return this.baseMapper.selectDevNoAndNumBystationCode(stationCode); } @Override public List<String> selectAllStationCode() { return this.baseMapper.selectAllStationCode(); } } src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.exception.CoolException; @@ -11,10 +12,7 @@ import com.zy.asrs.entity.param.AgvTaskParam; import com.zy.asrs.entity.param.AgvTaskkDescribeParam; import com.zy.asrs.mapper.AgvWrkMastMapper; import com.zy.asrs.service.AgvLocMastService; import com.zy.asrs.service.AgvWrkDetlService; import com.zy.asrs.service.AgvWrkMastService; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.*; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -55,6 +53,8 @@ AgvLocMastService agvLocMastService; @Autowired ApiLogService apiLogService; @Autowired AgvBasDevpService agvBasDevpService; public void updateWrkStsByWrkNo(int wrkNo, long wrkSts) { AgvWrkMast agvWrkMast = this.selectById(wrkNo); @@ -134,6 +134,15 @@ return doHttpRequest(containerArrivedParam,"容器达到通知",url, containerArrivedPath,null,"127.0.0.1"); } @Override public List<AgvWrkMast> selectReadyAgvWrkMast() { List<String> stationCodes = agvBasDevpService.selectAllStationCode(); Wrapper<AgvWrkMast> wrapper = new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 21L).like(false, "loc_no", "@"); wrapper.in("loc_no",stationCodes); return this.selectList(wrapper); //return this.baseMapper.selectReadyAgvWrkMast(); } private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){ //往容器入场参数中放入源站点位置 for(AgvWrkMast agvWrkMast : agvWrkMastList){ src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.core.common.Cools; import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.service.AgvBasDevpService; import com.zy.asrs.service.AgvWrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.AgvWrkMastHandler; @@ -31,6 +32,8 @@ AgvWrkMastHandler agvWrkMastHandler; @Autowired AgvWrkMastService agvWrkMastService; @Autowired AgvBasDevpService agvBasDevpService; /* @@ -121,7 +124,7 @@ */ @Scheduled(cron = "0/5 * * * * ? ") public void dealWatiWrk(){ List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 21).like(false, "loc_no", "@")); List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectReadyAgvWrkMast(); if(!Cools.isEmpty(agvWrkMastList)){ try { ReturnT<String> returnT = agvWrkMastHandler.dealWatiWrk(agvWrkMastList); src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -10,6 +10,7 @@ import com.zy.asrs.task.core.ReturnT; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -20,6 +21,9 @@ @Slf4j @Service public class AgvWrkMastHandler extends AbstractHandler<String> { @Value("${agvBasDev.maxWorkNum}") private int maxWrokNum; @Autowired private AgvWrkMastService agvWrkMastService; @@ -194,11 +198,20 @@ public ReturnT<String> dealWatiWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { agvWrkMastList.forEach(agvWrkMast -> { //寻找空站点位置 AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(agvWrkMast.getLocNo()); if(!Cools.isEmpty(agvBasDevp)){ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null); agvWrkMast.setLocNo(agvBasDevp.getDevNo()); // //寻找空站点位置 // AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(agvWrkMast.getLocNo()); // if(!Cools.isEmpty(agvBasDevp)){ // agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null); // agvWrkMast.setLocNo(agvBasDevp.getDevNo()); // agvWrkMastService.updateById(agvWrkMast); // } //查询该站点所有暂存位在工作档中出现的次数 List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo()); //取第一个暂存位,并查询其次数与配置的次数做比较 Map<String, Object> devNoMap = devNoMaps.get(0); if((int)devNoMap.get("num") < maxWrokNum){ agvWrkMast.setLocNo(devNoMap.get("dev_no").toString()); agvWrkMastService.updateById(agvWrkMast); } src/main/resources/application.yml
@@ -88,3 +88,6 @@ url: http://192.168.1.55:8010 orderReportPath: /api/RdAudit agvBasDev: maxWorkNum: 2