自动化立体仓库 - WMS系统
dubin
2026-02-07 8bc35cc4f75cfb435577e34763002f69def6a1a2
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -24,7 +24,9 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@RestController
public class LocMastController extends BaseController {
@@ -117,6 +119,7 @@
                locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
            }
        }
        locMast.setBarcode("");
        locMast.setModiUser(getUserId());
        locMast.setModiTime(new Date());
        locMastService.updateById(locMast);
@@ -238,6 +241,40 @@
        return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/locMast/list/auth/lev/clamp")
    @ManagerAuth
    public R listLevClamp(@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));}
        Page<LocMast> pageResult = locMastService.selectPage(new Page<>(curr, limit), wrapper);
        if (pageResult != null && pageResult.getRecords() != null && !pageResult.getRecords().isEmpty()) {
            // 获取所有loc_no
            List<String> locNos = pageResult.getRecords().stream()
                    .map(LocMast::getLocNo) // 假设有getLocNo方法
                    .filter(Objects::nonNull)
                    .distinct()
                    .collect(Collectors.toList());
            if (!Cools.isEmpty(locNos)) {
                Map<String, Double> anfmeMap = locDetlService.getAnfmeByLocNos(locNos);
                // 更新sc_weight字段
                for (LocMast locMast : pageResult.getRecords()) {
                    if (locMast.getLocNo() != null && anfmeMap.containsKey(locMast.getLocNo())) {
                        locMast.setScWeight(anfmeMap.get(locMast.getLocNo())); // 假设有setScWeight方法
                    } else {
                        locMast.setScWeight(0.0); // 如果没有对应数据,设为0或null
                    }
                }
            }
        }
        return R.ok(pageResult);
    }
    private <T> void convertLev(Map<String, Object> map, EntityWrapper<T> wrapper){
        String sizeValue = null;
@@ -275,7 +312,7 @@
        // 第三步:如果没有size参数,则添加默认条件
        if (sizeValue == null) {
            wrapper.eq("loc_sts", "D");
            wrapper.eq("loc_sts", map.get("loc_sts"));
        } else {
            // 如果有size参数,添加loc_sts != 'Y'的条件
            wrapper.and().ne("loc_sts", "Y");