| src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/mapper/LocMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/BasCrnpService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/BasCrnpMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
@@ -5,8 +5,12 @@ import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface BasCrnpMapper extends BaseMapper<BasCrnp> { List<Integer> getLevList(); } src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -15,8 +15,8 @@ LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1); @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}") List<String> queryGroupEmptyStock(Integer crnNo); @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and lev1 = #{lev}") List<String> queryGroupEmptyStock(Integer lev); @Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and loc_type1 = #{locType1} and crn_no = #{crnNo}") Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo); src/main/java/com/zy/asrs/service/BasCrnpService.java
@@ -3,10 +3,14 @@ import com.baomidou.mybatisplus.service.IService; import com.zy.asrs.entity.BasCrnp; import java.util.List; public interface BasCrnpService extends IService<BasCrnp> { BasCrnp checkSiteStatus(Integer crnId); boolean checkSiteError(Integer crnNo, boolean pakin); List<Integer> getLevList(); } src/main/java/com/zy/asrs/service/impl/BasCrnpServiceImpl.java
@@ -4,7 +4,6 @@ import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.mapper.BasCrnpMapper; import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.BasDevpService; @@ -12,6 +11,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service("basCrnpService") @@ -122,4 +123,9 @@ return true; } @Override public List<Integer> getLevList() { return this.baseMapper.getLevList(); } } src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -7,6 +7,7 @@ import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.RowLastnoService; import com.zy.asrs.utils.Utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,7 +33,7 @@ if (Cools.isEmpty(sourceStock)) { return null; } return this.baseMapper.queryGroupEmptyStock(sourceStock.getCrnNo()); return this.baseMapper.queryGroupEmptyStock(Utils.getLev(sourceLocNo)); } @Override src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -222,10 +222,6 @@ } Integer outSta = staNo.getDevNo(); //2号堆垛机全板出库站指定为204站,拣料站指定为202 // if(locMast.getCrnNo()==2){ // outSta = ioType == 101 ? 204 : 202; // } // 获取路径 StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta); @@ -237,7 +233,7 @@ wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID wrkMast.setIoType(ioType); // 入出库状态 wrkMast.setIoPri(10.0+locMast.getLocAttribute()); // 优先级 wrkMast.setIoPri(10D); // 优先级 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站 wrkMast.setStaNo(staDesc.getStnNo()); // 目标站 @@ -537,9 +533,6 @@ LocMast loc = locMastService.selectById(locNo); if (Cools.isEmpty(loc)){ throw new CoolException("未找到库位"); } if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { throw new CoolException("移转库位属于不同堆垛机"); } Date now = new Date(); // 获取工作号 src/main/java/com/zy/asrs/task/handler/OutWorkHandler.java
@@ -2,14 +2,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.param.CarryParam; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.service.impl.LocMastServiceImpl; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.common.utils.HttpHandler; @@ -19,17 +14,13 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Slf4j @Service @Transactional public class OutWorkHandler extends AbstractHandler<String> { @Autowired private LocMastService locMastService; @Autowired private ApiLogService apiLogService; @Value("${wcs.address.URL}") @@ -41,29 +32,18 @@ public synchronized ReturnT<String> start(WrkMast wrkMast) { //优先级 LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo())); int Priority = locMast.getLocAttribute() == null ? 0 : locMast.getLocAttribute(); HashMap<String, Object> map = new HashMap<>(); CarryParam carryParam = new CarryParam(); carryParam.setBoxNo(wrkMast.getBarcode());//托盘码 carryParam.setTaskNo(wrkMast.getWrkNo()+"");//任务号 carryParam.setStereoscopicTaskType(2);//2.出库 carryParam.setPriority(10+Priority);//优先级 carryParam.setOriginalRowNo(locMast.getRow1());//源库位排 carryParam.setOriginalColumnNo(locMast.getBay1());//源库位列 carryParam.setOriginalFloorNo(locMast.getLev1());//源库位层 carryParam.setStartPoint(wrkMast.getStaNo()+""+locMast.getLev1());//源站 carryParam.setTerminalNo(wrkMast.getStaNo()+"");//目标站 List<CarryParam> carryParamList=new ArrayList<>(); carryParamList.add(carryParam); map.put("TaskList",carryParamList); map.put("taskNo", wrkMast.getWrkNo()); map.put("taskPriority", 10); map.put("taskType", wrkMast.getIoType() == 11 ? 3 : 2); map.put("startPoint", wrkMast.getSourceLocNo()); map.put("targetPoint", wrkMast.getLocNo()); map.put("barcode", wrkMast.getBarcode()); String response =""; Boolean bool =false; boolean bool =false; try { log.info("wms派发任务给wcs出库={}", map); log.info("wms派发任务给wcs出库={}", JSON.toJSONString(map)); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(addrs) @@ -72,15 +52,17 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if(jsonObject.get("Code").equals("1")){ if(jsonObject.getInteger("code") == 200){ wrkMast.setWrkSts(12L); wrkMastService.updateById(wrkMast); bool = true; }else { log.error("wms派发任务给wcs出库失败{},返回值={}", JSON.toJSONString(wrkMast), response); } } catch (Exception e) { log.error("wcs派发任务给RCS出库失败{},返回值={}", wrkMast, response); log.error("wms派发任务给wcs出库失败{},返回值={}", JSON.toJSONString(wrkMast), response); } finally { apiLogService.save("wcs派发任务给RCS出库" apiLogService.save("wms派发任务给wcs出库" , addrs + outboundTaskSend , null , "127.0.0.1" @@ -89,7 +71,7 @@ , bool ); } return SUCCESS; return SUCCESS; } } src/main/java/com/zy/common/service/CommonService.java
@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collections; import java.util.List; /** @@ -188,30 +189,41 @@ if(targetLocMast == null) { //相近物料匹配失败,搜索可用空库位组 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "O") .orderBy("lev1", true) .orderBy("bay1", true)); for (LocMast locMast : locMasts) { String locNo = locMast.getLocNo(); //获取通道组 List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo)); boolean flag = true; for (Integer row : locRowGroupDesc) { String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo)); LocMast deepLoc = locMastService.selectById(deepLocNo); if (!deepLoc.getLocSts().equals("O")) { flag = false; //获取设备楼层 List<Integer> levList = basCrnpService.getLevList(); Collections.shuffle(levList); for (Integer lev : levList) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "O") .eq("lev1", lev) .orderBy("bay1", true)); for (LocMast locMast : locMasts) { String locNo = locMast.getLocNo(); //获取通道组 List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo)); boolean flag = true; for (Integer row : locRowGroupDesc) { String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo)); LocMast deepLoc = locMastService.selectById(deepLocNo); if (!deepLoc.getLocSts().equals("O")) { flag = false; break; } } if (flag) { Integer firstRow = locRowGroupDesc.get(0); String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo)); LocMast deepLoc = locMastService.selectById(deepLocNo); targetLocMast = deepLoc; break; } } if (flag) { Integer firstRow = locRowGroupDesc.get(0); String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo)); LocMast deepLoc = locMastService.selectById(deepLocNo); targetLocMast = deepLoc; if (targetLocMast != null) { break; } } @@ -246,32 +258,42 @@ } if(targetLocMast == null) { //相近物料匹配失败,搜索可用空库位组 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "O") .orderBy("lev1", true) .orderBy("bay1", true)); for (LocMast locMast : locMasts) { String locNo = locMast.getLocNo(); //获取通道组 List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo)); boolean flag = true; for (Integer row : locRowGroupDesc) { String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo)); LocMast deepLoc = locMastService.selectById(deepLocNo); if (!deepLoc.getLocSts().equals("O")) { flag = false; //获取设备楼层 List<Integer> levList = basCrnpService.getLevList(); Collections.shuffle(levList); for (Integer lev : levList) { //相近物料匹配失败,搜索可用空库位组 List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "O") .eq("lev1", lev) .orderBy("bay1", true)); for (LocMast locMast : locMasts) { String locNo = locMast.getLocNo(); //获取通道组 List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo)); boolean flag = true; for (Integer row : locRowGroupDesc) { String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo)); LocMast deepLoc = locMastService.selectById(deepLocNo); if (!deepLoc.getLocSts().equals("O")) { flag = false; break; } } if (flag) { targetLocMast = locMast; break; } } if (flag) { targetLocMast = locMast; if (targetLocMast != null) { break; } } } return targetLocMast; } src/main/resources/mapper/BasCrnpMapper.xml
@@ -29,4 +29,8 @@ <result column="lev1" property="lev1" /> </resultMap> <select id="getLevList" resultType="integer"> select DISTINCT lev1 from asr_bas_crnp </select> </mapper>