skyouc
17 小时以前 2b0e94aaf3aadc55db3069d69bc9f1b45455299d
调拔单功能优化
6个文件已修改
2 文件已重命名
134 ■■■■■ 已修改文件
rsf-admin/src/page/locPreview/LocPreviewEdit.jsx 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/locPreview/LocPreviewList.jsx 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/locPreview/LocQueryList.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/locPreview/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/transfer/TransferItemList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocPreviewController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/locPreview/LocPreviewEdit.jsx
File was renamed from rsf-admin/src/page/locPreview/LocItemEdit.jsx
@@ -34,16 +34,8 @@
import * as Common from '@/utils/common';
import request from '@/utils/request';
const FormToolbar = () => {
    const { getValues } = useFormContext();
    return (
        <Toolbar sx={{ justifyContent: 'end' }}>
        </Toolbar>
    )
}
const LocItemEdit = () => {
const LocPreviewEdit = () => {
    const translate = useTranslate();
    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_type')) || [];
    const [warehouseId, setWrehouseId] = useState();
@@ -65,26 +57,10 @@
                    warnWhenUnsavedChanges
                    toolbar={false}
                    mode="onTouched"
                    defaultValues={{}}
                // validate={(values) => { }}
                >
                    <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}
                        sx={{
                            "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
                                bgcolor: 'white',
                                WebkitTextFillColor: "rgba(0, 0, 0)"
                            },
                            "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
                                bgcolor: 'white',
                                WebkitTextFillColor: "rgba(0, 0, 0)"
                            },
                            "& .MuiFilledInput-root.MuiInputBase-sizeSmall": {
                                bgcolor: 'white',
                            }
                        }}
                    >
                        <Grid item xs={12} md={10}>
                    <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}>
                        <Grid item xs={12} md={12}>
                            <Typography variant="h6" gutterBottom>
                                {translate('common.edit.title.main')}
                            </Typography>
@@ -97,7 +73,6 @@
                                        <AutocompleteInput
                                            label="table.field.loc.warehouseId"
                                            optionText="name"
                                            readOnly
                                            validate={[required()]}
                                            onChange={warehouseChange}
                                            filterToQuery={(val) => ({ name: val })}
@@ -111,7 +86,6 @@
                                        <AutocompleteInput
                                            label="table.field.loc.areaId"
                                            optionText="name"
                                            readOnly
                                            validate={[required()]}
                                            filterToQuery={(val) => ({ name: val })}
                                        />
@@ -120,66 +94,53 @@
                                        label="table.field.loc.code"
                                        source="code"
                                        parse={v => v}
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.length"
                                        source="length"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.width"
                                        source="width"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.height"
                                        source="height"
                                        readOnly
                                        validate={required()}
                                    />
                                </Grid>
                                <Grid item display="flex" gap={1}>
                                    <ReferenceArrayInput source="typeIds" reference="locType" >
                                        <SelectArrayInput label="table.field.loc.type" readOnly validate={[required()]} />
                                    </ReferenceArrayInput>
                                    {/* <ReferenceArrayInput source="typeIds" reference="locType" >
                                        <SelectArrayInput label="table.field.loc.type" />
                                    </ReferenceArrayInput> */}
                                    <TextInput
                                        label="table.field.loc.unit"
                                        source="unit"
                                        readOnly
                                        parse={v => v}
                                    />
                                    <DictionarySelect
                                        label={translate("table.field.loc.useStatus")}
                                        name="useStatus"
                                        validate={[required()]}
                                        readOnly
                                        size="small"
                                        dictTypeCode="sys_loc_use_stas"
                                    />
                                    <NumberInput
                                        label="table.field.loc.row"
                                        source="row"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.col"
                                        source="col"
                                        readOnly
                                        validate={required()}
                                    />
                                    <NumberInput
                                        label="table.field.loc.lev"
                                        source="lev"
                                        readOnly
                                        validate={required()}
                                    />
                                </Grid>
@@ -188,9 +149,9 @@
                    </Grid>
                </SimpleForm>
            </Edit >
            <LocQueryList />
            {/* <LocQueryList /> */}
        </>
    )
}
export default LocItemEdit;
export default LocPreviewEdit;
rsf-admin/src/page/locPreview/LocPreviewList.jsx
File was renamed from rsf-admin/src/page/locPreview/LocItemList.jsx
@@ -68,7 +68,7 @@
    }
}));
const LocItemList = () => {
const LocPreviewList = () => {
    const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_use_stas')) || [];
    const locType = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_type')) || [];
    const [createDialog, setCreateDialog] = useState(false);
@@ -158,7 +158,7 @@
                    marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                }}
                storeKey="locPreview"
                resource="loc/preview"
                resource="locPreview"
                title={"menu.locPreview"}
                empty={false}
                filters={filters}
@@ -166,7 +166,7 @@
                actions={(
                    <TopToolbar>
                        <FilterButton />
                        <SelectColumnsButton preferenceKey='loc' />
                        <SelectColumnsButton preferenceKey='locPreview' />
                    </TopToolbar>
                )}
                perPage={DEFAULT_PAGE_SIZE}
@@ -200,7 +200,7 @@
                    <BooleanField source="statusBool" label="common.field.status" sortable={false} align="left" />
                    <TextField source="memo" label="common.field.memo" sortable={false} />
                    <WrapperField cellClassName="opt" label="common.field.opt">
                        <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} label="toolbar.detail" />
                        <EditButton sx={{ padding: '1px', fontSize: '.75rem' }}  label="toolbar.detail" />
                    </WrapperField>
                </StyledDatagrid>
            </List>
@@ -208,4 +208,4 @@
    )
}
export default LocItemList;
export default LocPreviewList;
rsf-admin/src/page/locPreview/LocQueryList.jsx
@@ -99,7 +99,8 @@
    const [drawerVal, setDrawerVal] = useState(false);
    const translate = useTranslate();
    const locId = useGetRecordId();
    console.log(locId);
    return (
        <Box display="flex">
            <List
rsf-admin/src/page/locPreview/index.jsx
@@ -5,12 +5,12 @@
    ShowGuesser,
} from "react-admin";
import LocItemList from "./LocItemList";
import LocItemEdit from "./LocItemEdit";
import LocPreviewList from "./LocPreviewList";
import LocPreviewEdit from "./LocPreviewEdit";
export default {
    list: LocItemList,
    edit: LocItemEdit,
    list: LocPreviewList,
    edit: LocPreviewEdit,
    show: ShowGuesser,
    recordRepresentation: (record) => {
        return `${record.id}`
rsf-admin/src/page/orders/transfer/TransferItemList.jsx
@@ -126,7 +126,7 @@
                    rowClick={(id, resource, record) => false}
                    expand={false}
                    expandSingle={false}
                    omit={['id', 'transferId', 'matnrId', 'createTime', 'createBy', 'memo', 'platItemId', 'splrId', 'fieldsIndex', 'platOrderCode', 'platWorkCode', 'projectCode']}
                    omit={['id', 'transferId', 'matnrId', 'createTime', 'createBy', 'workQty', 'qty', 'memo', 'platItemId', 'splrId', 'fieldsIndex', 'platOrderCode', 'platWorkCode', 'projectCode']}
                >
                    <NumberField source="id" />
                    <NumberField source="transferId" label="table.field.transferItem.transferId" />
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocPreviewController.java
@@ -10,7 +10,6 @@
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.controller.params.LocMastInitParam;
import com.vincent.rsf.server.manager.controller.params.LocModifyParams;
import com.vincent.rsf.server.manager.entity.Loc;
import com.vincent.rsf.server.manager.enums.LocStsType;
@@ -25,7 +24,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
@@ -38,7 +36,7 @@
    private LocService locService;
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @PostMapping("/loc/preview/page")
    @PostMapping("/locPreview/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Loc, BaseParam> pageParam = new PageParam<>(baseParam, Loc.class);
@@ -50,13 +48,13 @@
    }
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @PostMapping("/loc/preview/list")
    @PostMapping("/locPreview/list")
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(locService.list());
    }
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @PostMapping("/loc/preview/areaNoUse/list")
    @PostMapping("/locPreview/areaNoUse/list")
    public R areaNoUselist(@RequestBody Map<String, Object> map) {
        String locCode = map.get("locCode").toString();
        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, locCode),false);
@@ -70,20 +68,20 @@
    }
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @PostMapping({"/loc/preview/many/{ids}", "/loc/preview/many/{ids}"})
    @PostMapping({"/locPreview/many/{ids}", "/locPreview/many/{ids}"})
    public R many(@PathVariable Long[] ids) {
        return R.ok().add(locService.listByIds(Arrays.asList(ids)));
    }
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @GetMapping("/loc/preview/{id}")
    @GetMapping("/locPreview/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(locService.getById(id));
    }
    @PreAuthorize("hasAuthority('manager:locPreview:save')")
    @OperationLog("Create 库位信息表")
    @PostMapping("/loc/preview/save")
    @PostMapping("/locPreview/save")
    public R save(@RequestBody Loc loc) {
        if (Objects.isNull(loc.getWarehouseId())) {
            throw new CoolException("仓库ID不能为空!!");
@@ -110,7 +108,7 @@
    @PreAuthorize("hasAuthority('manager:locPreview:update')")
    @OperationLog("Update 库位信息表")
    @PostMapping("/loc/preview/update")
    @PostMapping("/locPreview/update")
    @Transactional(rollbackFor = Exception.class)
    public R update(@RequestBody Loc loc) {
        loc.setUpdateBy(getLoginUserId());
@@ -130,7 +128,7 @@
    @PreAuthorize("hasAuthority('manager:locPreview:remove')")
    @OperationLog("Delete 库位信息表")
    @PostMapping("/loc/preview/remove/{ids}")
    @PostMapping("/locPreview/remove/{ids}")
    public R remove(@PathVariable Long[] ids) {
        if (!locService.removeByIds(Arrays.asList(ids))) {
            return R.error("Delete Fail");
@@ -139,7 +137,7 @@
    }
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @PostMapping("/loc/preview/query")
    @PostMapping("/locPreview/query")
    public R query(@RequestParam(required = false) String condition) {
        List<KeyValVo> vos = new ArrayList<>();
        LambdaQueryWrapper<Loc> wrapper = new LambdaQueryWrapper<>();
@@ -154,7 +152,7 @@
    @PreAuthorize("hasAuthority('manager:locPreview:list')")
    @ApiOperation("库位导出")
    @PostMapping("/loc/preview/export")
    @PostMapping("/locPreview/export")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        List<Loc> locs = new ArrayList<>();
        if (Objects.isNull(map.get("ids"))) {
@@ -167,7 +165,7 @@
    @PreAuthorize("hasAuthority('manager:locPreview:update')")
    @ApiOperation("库位批量修改")
    @PostMapping("/loc/preview/modify")
    @PostMapping("/locPreview/modify")
    public R batchUpdate(@RequestBody LocModifyParams locs) {
        if (Objects.isNull(locs)) {
            throw new CoolException("参为不能为空!!");
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java
@@ -49,20 +49,20 @@
            throw new CoolException("计划数不能为空!!");
        }
//        //保存扩展字段
//        try {
//            StringBuffer sb = new StringBuffer();
//            if (Objects.isNull(wkOrderItem.getFieldsIndex()) || StringUtils.isBlank(wkOrderItem.getFieldsIndex())) {
//                sb.append(wkOrderItem.getMatnrId() + wkOrderItem.getBatch());
//                //获取16位uuid
//                String uuid16 = Cools.md5Chinese(sb.toString());
//                wkOrderItem.setFieldsIndex(uuid16);
//                params.put("index", uuid16);
//            }
//            //保存或更新动态字段值
//            FieldsUtils.updateFieldsValue(params);
//        } catch (Exception e) {
//            throw new RuntimeException(e);
//        }
        try {
            StringBuffer sb = new StringBuffer();
            if (Objects.isNull(wkOrderItem.getFieldsIndex()) || StringUtils.isBlank(wkOrderItem.getFieldsIndex())) {
                sb.append(wkOrderItem.getMatnrId() + wkOrderItem.getBatch());
                //获取16位uuid
                String uuid16 = Cools.md5Chinese(sb.toString());
                wkOrderItem.setFieldsIndex(uuid16);
                params.put("index", uuid16);
            }
            //保存或更新动态字段值
            FieldsUtils.updateFieldsValue(params);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        wkOrderItem.setUpdateBy(loginUserId).setCreateBy(loginUserId);
        if (!this.saveOrUpdate(wkOrderItem)) {
            throw new CoolException("收货通知单明细保存失败!!");
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
@@ -243,7 +243,7 @@
            throw new CoolException("出库单明细保存失败!!");
        }
        transfer.setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_EXCE_ING.val);
        transfer.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
        if (!this.updateById(transfer)) {
            throw new CoolException("调拔单更新失败!!");
@@ -359,7 +359,7 @@
                    .like(StringUtils.isNotBlank(params.getMaktx()), LocItem::getMaktx, params.getMaktx());
            Set<Long> locIds = locs.stream().map(Loc::getId).collect(Collectors.toSet());
            wrapper.lambda().in(LocItem::getLocId, locIds)
                    .groupBy(LocItem::getBatch, LocItem::getFieldsIndex, LocItem::getMatnrCode);
                    .groupBy(LocItem::getBatch, LocItem::getMatnrId);
            return locItemService.page(page, wrapper);
        } else {
            IPage<LocItem> page = new Page<>(params.getCurrent(), params.getPageSize());