src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -72,4 +72,6 @@ List<LocDetl> selectGroupPage(Map<String, Object> param); List<LocDetl> selectByLocNo(@Param("locNo") String locNo); List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo);//通过订单号、物料号、物料名称、规格、库位号进行模糊搜索 } src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -47,4 +47,6 @@ //搜索低频(混放区域)空库位 LocMast findEmptyLowFrequencyLocMast(Short locType1); List<LocMast> selectLocByLev(Integer lev); } src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -67,4 +67,6 @@ List<LocDetl> selectGroupPage(Map<String, Object> param, Integer curr, Integer limit); List<LocDetl> selectByLocNo(String locNo); List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo);//通过订单号、物料号、物料名称、规格、库位号进行模糊搜索 } src/main/java/com/zy/asrs/service/LocMastService.java
@@ -66,4 +66,7 @@ //搜索低频(混放区域)空库位 LocMast findEmptyLowFrequencyLocMast(Short locType1); //查询指定楼层的库位数据 List<LocMast> selectLocByLev(Integer lev); } src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.mapper.LocDetlMapper; @@ -158,4 +159,12 @@ public LocDetl selectItem(String locNo, String matnr, String batch) { return this.baseMapper.selectItem(locNo, matnr, batch); } @Override public List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo) { if (Cools.isEmpty(orderNo) && Cools.isEmpty(matnr) && Cools.isEmpty(maktx) && Cools.isEmpty(specs) && Cools.isEmpty(locNo)) { return new ArrayList<LocDetl>(); } return this.baseMapper.searchByLike(orderNo, matnr, maktx, specs, locNo); } } src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -223,4 +223,9 @@ public LocMast findEmptyLowFrequencyLocMast(Short locType1) { return this.baseMapper.findEmptyLowFrequencyLocMast(locType1); } @Override public List<LocMast> selectLocByLev(Integer lev) { return this.baseMapper.selectLocByLev(lev); } } src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -159,6 +159,40 @@ @Override @Transactional public void startupFullTakeStore(StockOutParam param, Long userId) { ArrayList<String> locNos = new ArrayList<>(); for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ if (!locNos.contains(locDetl.getLocNo())){ locNos.add(locDetl.getLocNo()); } } //检测是否为浅库位 boolean sign = false; String th = ""; for (String locNo : locNos) { if (sign) { break; } List<String> groupInsideLoc = Utils.getGroupLoc(locNo); if (!Cools.isEmpty(groupInsideLoc)) { for (String insideLoc : groupInsideLoc) { if (locNos.contains(insideLoc)) { break; } LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc)); if (locMast != null) { if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) { sign = true; th = "库位号:" + locNo + " 浅库位有非空库位!"; break; } } } } } if (sign){ throw new CoolException("出库失败;" + th); } // 目标站点状态检测 BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); // 获取库位明细 src/main/java/com/zy/asrs/utils/Utils.java
@@ -3,12 +3,10 @@ import com.core.common.Arith; import com.core.common.Cools; import com.zy.common.properties.SlaveProperties; import com.zy.common.service.CommonService; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * Created by vincent on 2020/8/27 @@ -227,61 +225,59 @@ public static List<String> getGroupLoc(String locNo){ int row = getRow(locNo); ArrayList<String> list = new ArrayList<>(); switch (row) { case 1: case 2: case 3: return new ArrayList<String>() {{ add(zerofill(String.valueOf(1), 2) + locNo.substring(2)); add(zerofill(String.valueOf(2), 2) + locNo.substring(2)); add(zerofill(String.valueOf(3), 2) + locNo.substring(2)); }}; list.add(zerofill(String.valueOf(1), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(2), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(3), 2) + locNo.substring(2)); Collections.reverse(list); return list; case 4: case 5: case 6: case 7: return new ArrayList<String>() {{ add(zerofill(String.valueOf(4), 2) + locNo.substring(2)); add(zerofill(String.valueOf(5), 2) + locNo.substring(2)); add(zerofill(String.valueOf(6), 2) + locNo.substring(2)); add(zerofill(String.valueOf(7), 2) + locNo.substring(2)); }}; list.add(zerofill(String.valueOf(4), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(5), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(6), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(7), 2) + locNo.substring(2)); return list; case 8: case 9: case 10: case 11: return new ArrayList<String>() {{ add(zerofill(String.valueOf(8), 2) + locNo.substring(2)); add(zerofill(String.valueOf(9), 2) + locNo.substring(2)); add(zerofill(String.valueOf(10), 2) + locNo.substring(2)); add(zerofill(String.valueOf(11), 2) + locNo.substring(2)); }}; list.add(zerofill(String.valueOf(8), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(9), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(10), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(11), 2) + locNo.substring(2)); Collections.reverse(list); return list; case 12: case 13: case 14: return new ArrayList<String>() {{ add(zerofill(String.valueOf(12), 2) + locNo.substring(2)); add(zerofill(String.valueOf(13), 2) + locNo.substring(2)); add(zerofill(String.valueOf(14), 2) + locNo.substring(2)); }}; list.add(zerofill(String.valueOf(12), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(13), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(14), 2) + locNo.substring(2)); return list; case 15: case 16: case 17: case 18: return new ArrayList<String>() {{ add(zerofill(String.valueOf(15), 2) + locNo.substring(2)); add(zerofill(String.valueOf(16), 2) + locNo.substring(2)); add(zerofill(String.valueOf(17), 2) + locNo.substring(2)); add(zerofill(String.valueOf(18), 2) + locNo.substring(2)); }}; list.add(zerofill(String.valueOf(15), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(16), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(17), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(18), 2) + locNo.substring(2)); Collections.reverse(list); return list; case 19: case 20: case 21: return new ArrayList<String>() {{ add(zerofill(String.valueOf(19), 2) + locNo.substring(2)); add(zerofill(String.valueOf(20), 2) + locNo.substring(2)); add(zerofill(String.valueOf(21), 2) + locNo.substring(2)); }}; list.add(zerofill(String.valueOf(19), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(20), 2) + locNo.substring(2)); list.add(zerofill(String.valueOf(21), 2) + locNo.substring(2)); return list; default: throw new RuntimeException("库位解析异常"); } @@ -532,4 +528,9 @@ return result; } public static void main(String[] args) { List<String> groupLoc = Utils.getGroupLoc("1300801"); System.out.println(groupLoc); } } src/main/resources/mapper/LocDetlMapper.xml
@@ -514,4 +514,26 @@ </select> <select id="searchByLike" resultMap="BaseResultMap"> select * from asr_loc_detl where 1 = 1 <if test="orderNo != null and orderNo != ''"> and order_no like '%' + #{orderNo} + '%' </if> <if test="locNo != null and locNo != ''"> and loc_no like '%' + #{locNo} + '%' </if> <if test="specs != null and specs != ''"> and specs like '%' + #{specs} + '%' </if> <if test="matnr != null and matnr != ''"> and matnr like '%' + #{matnr} + '%' </if> <if test="maktx != null and maktx != ''"> and maktx like '%' + #{maktx} + '%'; </if> </select> </mapper> src/main/resources/mapper/LocMastMapper.xml
@@ -326,4 +326,8 @@ and loc_sts = 'O' order by row1,bay1,lev1 </select> <select id="selectLocByLev" resultMap="BaseResultMap"> SELECT * FROM asr_loc_mast WHERE lev1 = #{lev} </select> </mapper> src/main/webapp/static/js/common.js
@@ -264,3 +264,13 @@ ,{field: 'memo', align: 'center',title: '备注', hide: false} ] function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(false); } src/main/webapp/views/report/locDetl.html
@@ -43,7 +43,12 @@ var $ = layui.jquery; var form = layui.form; var tmp = getQueryVariable("locNo") if (tmp == false) { $('#locNo').val(parent.locNo); }else { $('#locNo').val(tmp); } // 数据渲染 tableIns = table.render({ @@ -53,7 +58,7 @@ page: true, limit: 20, skin: 'line', where: {loc_no: parent.locNo}, where: {loc_no: $('#locNo').val()}, even: true, cellMinWidth: 50, cols: [getCol()],