src/main/java/com/zy/asrs/mapper/LocMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/LocMastService.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/common/model/Shelves.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/DoubleDeepService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -3,10 +3,15 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.LocMast; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; @Mapper @Repository public interface LocMastMapper extends BaseMapper<LocMast> { @Select("select top 1 * from asr_loc_mast where row1=#{row} and loc_sts='O' and loc_type=#{locType} order by loc_type desc ,lev1 asc,bay1 asc") LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType") Integer locType); } src/main/java/com/zy/asrs/service/LocMastService.java
@@ -5,4 +5,9 @@ public interface LocMastService extends IService<LocMast> { /** * 检索可用库位 */ LocMast queryFreeLocMast(Integer row, Integer locType); } src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -9,4 +9,8 @@ @Service("locMastService") public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService { @Override public LocMast queryFreeLocMast(Integer row, Integer locType) { return this.baseMapper.queryFreeLocMast(row, locType); } } src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -7,7 +7,7 @@ import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.WorkService; import com.zy.asrs.service.WrkMastService; import com.zy.common.service.DoubleDeepService; import com.zy.common.service.CommonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,7 +23,7 @@ @Autowired private BasDevpService basDevpService; @Autowired private DoubleDeepService doubleDeepService; private CommonService commonService; @Override @Transactional @@ -35,7 +35,7 @@ // 站点状态检测 basDevpService.checkSiteStatus(param.getDevpNo()); // 生成工作号 int workNo = doubleDeepService.getWorkNo(0); int workNo = commonService.getWorkNo(0); if (workNo == 0) { throw new CoolException("生成工作号失败,请联系管理员"); } else { @@ -43,8 +43,8 @@ throw new CoolException("生成工作号" + workNo + "在工作档中已存在"); } } // 库位检索 String locNo = doubleDeepService.getLocNo(1); // 检索库位 String locNo = commonService.getLocNo(1, param.getDevpNo()); // if (staNo == null || staNo.get) src/main/java/com/zy/common/model/Shelves.java
@@ -20,7 +20,7 @@ private final int offset; // 货架实例节点集合 private List<List<Integer>> nodes; public List<List<Integer>> nodes; public Shelves(int size, int group) { this(size, group, 0); @@ -94,7 +94,7 @@ } } } return 0; return -1; } src/main/java/com/zy/common/service/CommonService.java
New file @@ -0,0 +1,134 @@ package com.zy.common.service; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.common.model.Shelves; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 双深式货架核心功能 * Created by vincent on 2020/6/11 */ @Service public class CommonService { @Autowired private WrkMastService wrkMastService; @Autowired private WrkLastnoService wrkLastnoService; @Autowired private RowLastnoService rowLastnoService; @Autowired private BasCrnpService basCrnpService; @Autowired private StaDescService staDescService; @Autowired private BasDevpService basDevpService; @Autowired private LocMastService locMastService; /** * 生成工作号 * @param wrkMk 0:入出库 ; 1:其他 * @return workNo(工作号) */ public int getWorkNo(Integer wrkMk) { WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk); if (Cools.isEmpty(wrkLastno)) { throw new CoolException("数据异常,请联系管理员"); } int workNo = 0; // 入出库类型 if (wrkLastno.getWrkMk() == 0) { workNo = wrkLastno.getWrkNo(); int sNo = wrkLastno.getSNo(); int eNo = wrkLastno.getENo(); workNo = workNo>=eNo ? sNo : workNo+1; while (true) { WrkMast wrkMast = wrkMastService.selectById(workNo); if (null != wrkMast) { workNo = workNo>=eNo ? sNo : workNo+1; } else { break; } } if (workNo > 0){ // todo wrkLastno.setWrkNo(workNo); wrkLastnoService.updateById(wrkLastno); } } return workNo; } /** * 检索库位号 * @param whsType 类型 1:双深式货架 * @param sourceStaNo 源站 * @return locNo 检索到的库位号 */ public String getLocNo(Integer whsType, String sourceStaNo) { RowLastno rowLastno = rowLastnoService.selectById(whsType); if (Cools.isEmpty(rowLastno)) { throw new CoolException("数据异常,请联系管理员"); } String locNo = null; if (rowLastno.getWhsType() == 1){ int curRow = rowLastno.getCurrentRow(); int sRow = rowLastno.getsRow(); int eRow = rowLastno.geteRow(); int crn_qty = rowLastno.getCrnQty(); // 获取目标站所在货架排号 Shelves shelves = new Shelves(8, crn_qty); curRow = shelves.start(curRow); if (curRow < 0) { throw new CoolException("检索库位失败,请联系管理员"); } // 堆垛机号 int crnNo = 0; for (List<Integer> node : shelves.nodes){ if (node.contains(curRow)) { crnNo = shelves.nodes.indexOf(node) + 1; } } BasCrnp crnp = basCrnpService.selectById(crnNo); if (Cools.isEmpty(crnp)) { throw new CoolException("堆垛机编号错误"); } if (!"Y".equals(crnp.getInEnable())) { throw new CoolException("当前堆垛机无法入库"); } // 获取目标站 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", 1) .eq("stnNo", sourceStaNo) .eq("crn_no", crnNo); StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { throw new CoolException("入库路径不存在"); } BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn()); int inQty = staNo.getInQty(); if (staNo.getInEnable().equals("Y") && staNo.getAutoing().equals("Y") && inQty<2) { // 查找库位 todo LocMast locMast = locMastService.queryFreeLocMast(curRow, 1); } rowLastno.setCurrentRow(curRow); rowLastnoService.updateById(rowLastno); } return locNo; } } src/main/java/com/zy/common/service/DoubleDeepService.java
File was deleted