cl
3 天以前 b21ca070526ec10fbea98e29135751776dc31059
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java
@@ -45,13 +45,19 @@
        PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class);
        // 库位状态筛选:关联 man_loc,不能作为 man_loc_item 字段参与 buildWrapper
        Object useStatus = map.get("useStatus");
        Object barcodeFilter = map.get("barcode");
        if (pageParam.getWhere() != null && pageParam.getWhere().getMap() != null) {
            pageParam.getWhere().getMap().remove("useStatus");
            pageParam.getWhere().getMap().remove("barcode");
        }
        QueryWrapper<LocItem> wrapper = pageParam.buildWrapper(true);
        if (useStatus != null && StringUtils.isNotBlank(useStatus.toString())) {
            String status = useStatus.toString().replace("'", "''");
            wrapper.apply("EXISTS (SELECT 1 FROM man_loc ml WHERE ml.id = man_loc_item.loc_id AND ml.use_status = '" + status + "')");
            wrapper.apply("EXISTS (SELECT 1 FROM man_loc ml WHERE ml.id = man_loc_item.loc_id AND ml.use_status = {0} AND ml.deleted = 0)",
                    useStatus.toString().trim());
        }
        if (barcodeFilter != null && StringUtils.isNotBlank(barcodeFilter.toString())) {
            wrapper.apply("EXISTS (SELECT 1 FROM man_loc ml WHERE ml.id = man_loc_item.loc_id AND ml.barcode = {0} AND ml.deleted = 0)",
                    barcodeFilter.toString().trim());
        }
        FieldsUtils.setFieldsFilters(wrapper, pageParam, LocItem.class);
@@ -69,9 +75,11 @@
                if (loc != null) {
                    record.setLocUseStatus(loc.getUseStatus());
                    record.setLocUseStatus$(loc.getUseStatus$());
                    record.setBarcode(loc.getBarcode());
                }
            }
        }
        locItemService.fillSpecModelFromMatnrForRecords(records);
        page.setRecords(records);
        return R.ok().add(page);
@@ -82,15 +90,18 @@
    public R locUseOPage(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class);
        Object barcodeFilter = map.get("barcode");
        if (pageParam.getWhere() != null && pageParam.getWhere().getMap() != null) {
            pageParam.getWhere().getMap().remove("barcode");
        }
        QueryWrapper<LocItem> locItemQueryWrapper = pageParam.buildWrapper(true);
        String applySql = String.format(
                "EXISTS (SELECT 1 FROM man_loc ml " +
                        "WHERE ml.use_status = '%s'" +
                        "AND ml.id = man_loc_item.loc_id " +
                        ")",
                LocStsType.LOC_STS_TYPE_F.type
        );
        locItemQueryWrapper.apply(applySql);
        if (barcodeFilter != null && StringUtils.isNotBlank(barcodeFilter.toString())) {
            locItemQueryWrapper.apply("EXISTS (SELECT 1 FROM man_loc ml WHERE ml.id = man_loc_item.loc_id AND ml.barcode = {0} AND ml.deleted = 0)",
                    barcodeFilter.toString().trim());
        }
        locItemQueryWrapper.apply(
                "EXISTS (SELECT 1 FROM man_loc ml WHERE ml.use_status = {0} AND ml.id = man_loc_item.loc_id AND ml.deleted = 0)",
                LocStsType.LOC_STS_TYPE_F.type);
        /**拼接扩展字段*/
        PageParam<LocItem, BaseParam> page = locItemService.page(pageParam, locItemQueryWrapper);
        List<LocItem> records = page.getRecords();
@@ -104,9 +115,11 @@
                if (loc != null) {
                    record.setLocUseStatus(loc.getUseStatus());
                    record.setLocUseStatus$(loc.getUseStatus$());
                    record.setBarcode(loc.getBarcode());
                }
            }
        }
        locItemService.fillSpecModelFromMatnrForRecords(records);
        page.setRecords(records);
        return R.ok().add(page);