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/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/web/WcsController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/LocMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -35,6 +35,5 @@ List<LocMast> selectNodeEByLev(Integer lev); LocMast selectByLoc(String locNo); } src/main/java/com/zy/asrs/service/LocMastService.java
@@ -49,4 +49,6 @@ List<LocMast> selectByLocNo(List<String> locNo); List<LocMast> selectNodeELocByLev(Integer lev); LocMast selectByLoc(String loc); } src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -79,6 +79,10 @@ } @Override public LocMast selectByLoc(String locNo) { return this.baseMapper.selectByLoc(locNo); } @Override public List<LocMast> selectByLocNo(List<String> locNo) { src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -490,9 +490,6 @@ @Transactional public WrkMast emptyPlateOut(EmptyPlateOutParam param) { WrkMast wrkMast = new WrkMast(); if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("站点不存在"); } for (String locNo : param.getLocNos()) { // 获取工作号 int workNo = commonService.getWorkNo(0); @@ -504,7 +501,6 @@ // 获取源站 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", 110) .eq("stn_no", param.getOutSite()) .eq("crn_no", locMast.getCrnNo()); StaDesc staDesc = staDescService.selectOne(wrapper); Integer sourceStaNo = staDesc.getCrnStn(); @@ -520,7 +516,7 @@ wrkMast.setIoType(110); // 入出库状态: 110.空板出库 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 源站 wrkMast.setStaNo(param.getOutSite()); // 目标站 wrkMast.setStaNo(1007); // 目标站 wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 源库位 wrkMast.setFullPlt("N"); // 满板:Y src/main/java/com/zy/asrs/utils/Utils.java
@@ -6,12 +6,59 @@ import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * Created by vincent on 2020/8/27 */ public class Utils { public static final List<Integer> FIRST_GROUP_ROW_LIST = new ArrayList<Integer>() {{ add(1);add(2); }}; public static final List<Integer> SECOND_GROUP_ROW_LIST = new ArrayList<Integer>() {{ add(3);add(4); }}; public static final List<Integer> FIRST_GROUP_ROW_LIST2 = new ArrayList<Integer>() {{ add(5);add(6); }}; public static final List<Integer> SECOND_GROUP_ROW_LIST2 = new ArrayList<Integer>() {{ add(7);add(8); }}; public static List<String> getGroupLocNo(String locNo, Boolean pakIn) { int row = getRow(locNo); List<String> result = new ArrayList<>(); if (FIRST_GROUP_ROW_LIST.contains(row)) { for (Integer groupRow : FIRST_GROUP_ROW_LIST) { result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2)); } } else if (SECOND_GROUP_ROW_LIST.contains(row)) { List<Integer> clone = Arrays.asList(new Integer[SECOND_GROUP_ROW_LIST.size()]); Collections.copy(clone, SECOND_GROUP_ROW_LIST); Collections.reverse(clone); for (Integer integer : clone) { result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); } }else if (FIRST_GROUP_ROW_LIST2.contains(row)) { for (Integer groupRow : FIRST_GROUP_ROW_LIST2) { result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2)); } } else if (SECOND_GROUP_ROW_LIST2.contains(row)) { List<Integer> clone = Arrays.asList(new Integer[SECOND_GROUP_ROW_LIST2.size()]); Collections.copy(clone, SECOND_GROUP_ROW_LIST2); Collections.reverse(clone); for (Integer integer : clone) { result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); } } if (!pakIn) { //出库,反转数据 Collections.reverse(result); } return result; } private static final DecimalFormat fmt = new DecimalFormat("##0.00"); src/main/java/com/zy/common/service/CommonService.java
@@ -142,7 +142,11 @@ // 靠近摆放规则 --- 空托 if (staDescId == 10) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow)); StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("type_no", staDescId).eq("stn_no", sourceStaNo)); if (Cools.isEmpty(staDesc)){ throw new CoolException("空托入库站点路径不存在"); } List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow).eq("crn_no",staDesc.getCrnNo())); if (locMasts.size() > 0) { for (LocMast loc : locMasts) { if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) { @@ -176,10 +180,10 @@ throw new CoolException("检索库位失败,请联系管理员"); } Integer crnNo1 = shelves.get(curRow); crnNo1 = crnNo1 + divides*1; // crnNo1 = crnNo1 + divides*1; if (basCrnpService.checkSiteError(crnNo1, true)) { crnNo = crnNo1; curRow = curRow + divides*4; // curRow = curRow + divides*4; break; } } src/main/java/com/zy/common/web/WcsController.java
@@ -8,6 +8,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.CodeRes; import com.zy.common.model.LocTypeDto; import com.zy.common.model.StartupDto; @@ -143,17 +144,42 @@ @PostMapping("auto/emptyOut/v1") @ResponseBody public R autoEmptyOut(){ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("loc_sts", "D")); if (Cools.isEmpty(locMast)) { public R autoEmptyOut(@RequestParam("crnNo") Integer crnNo) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("loc_sts", "D") .eq("crn_no", crnNo) .orderBy("lev1,bay1,row1")); if (locMasts.isEmpty()) { return R.error("库存没有空板"); } EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam(); emptyPlateOutParam.setOutSite(12); emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}}); WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam); return R.ok(!Cools.isEmpty(wrkMast)? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败")); for (LocMast locMast : locMasts) { LocMast locMast0 = null; List<String> outerLocNo = Utils.getGroupLocNo(locMast.getLocNo(), false); for (String loc : outerLocNo) { LocMast locMast1 = locMastService.selectByLoc(loc); if (locMast1 == null) { continue; } if (locMast1.getLocSts().equals("D")) { locMast0 = locMast1; break; } } if (locMast0 == null) { continue; } EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam(); ArrayList<String> locNos = new ArrayList<>(); locNos.add(locMast0.getLocNo()); emptyPlateOutParam.setLocNos(locNos); WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam); return R.ok(!Cools.isEmpty(wrkMast) ? R.ok("自动空托出库成功,工作号:" + wrkMast.getWrkNo()) : R.error("生成自动空托出库失败")); } return R.error("生成自动空托出库失败"); } /** src/main/resources/mapper/LocMastMapper.xml
@@ -98,7 +98,10 @@ <select id="selectNodeEByLev" resultMap="BaseResultMap"> SELECT * FROM asr_node_loc_DT_E_view WHERE lev1 = #{lev} </select> <select id="selectByLoc" resultMap="BaseResultMap"> select * from asr_loc_mast where loc_no = #{locNo} </select> </mapper>