自动化立体仓库 - WMS系统
dubin
2026-01-20 67826a2c51bbc013db409dd1a5e29dd4ba52fd72
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -23,6 +23,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Size;
import java.util.*;
@RestController
@@ -222,4 +223,62 @@
        locMastService.insertBatch(list);
        return R.ok("初始化成功");
    }
    @RequestMapping(value = "/locMast/list/auth/lev")
    @ManagerAuth
    public R listLev(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        excludeTrash(param);
        EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
        convertLev(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private <T> void convertLev(Map<String, Object> map, EntityWrapper<T> wrapper){
        String sizeValue = null;
        // 第一步:先处理size参数
        if (map.containsKey("size")) {
            sizeValue = String.valueOf(map.get("size"));
            map.remove("size");  // 从map中移除,避免后面重复处理
            if (sizeValue.equals("2000*1500*170")){
                wrapper.in("lev1", Arrays.asList(4, 5)).andNew().eq("crn_no", 1);
            }else if (sizeValue.equals("1500*1500*170")){
                wrapper.in("lev1", Arrays.asList(1, 2, 3)).andNew().eq("crn_no", 1);
            }else if (sizeValue.equals("2600*1500*160")){
                wrapper.in("lev1", Arrays.asList(1, 2)).andNew().eq("crn_no", 2);
            }else if (sizeValue.equals("1300*1500*160")){
                wrapper.in("lev1", Arrays.asList(3, 4, 5, 6)).andNew().eq("crn_no", 2);
            }
        }
        // 第二步:处理其他参数
        for (Map.Entry<String, Object> entry : map.entrySet()){
            String key = entry.getKey();
            String val = String.valueOf(entry.getValue());
            if (val.contains(RANGE_TIME_LINK)){
                String[] dates = val.split(RANGE_TIME_LINK);
                wrapper.ge(key, DateUtils.convert(dates[0]));
                wrapper.le(key, DateUtils.convert(dates[1]));
            } else if (key.equals("loc_no")){
                wrapper.like(key, val);
            } else {
                wrapper.eq(key, val);
            }
        }
        // 第三步:如果没有size参数,则添加默认条件
        if (sizeValue == null) {
            wrapper.eq("loc_sts", "D");
        } else {
            // 如果有size参数,添加loc_sts != 'Y'的条件
            wrapper.and().ne("loc_sts", "Y");
        }
    }
}