From 58276de8b0a75f4ba80a2a237e4d7984c6c2768b Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 25 三月 2025 18:04:05 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java        |   23 ++---
 rsf-admin/src/page/warehouseAreas/BatchModal.jsx                                                    |   13 ++-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java |    2 
 rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupList.jsx                                          |    2 
 rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx                                                    |   10 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java            |    6 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java    |   12 +-
 rsf-admin/src/page/basicInfo/matnr/BatchModal.jsx                                                   |   92 ++++++++++++++++++----
 rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx                                          |   12 +-
 rsf-admin/src/page/components/TreeSelectInput.jsx                                                   |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java                 |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java    |    2 
 rsf-admin/src/i18n/zh.js                                                                            |    5 
 rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx                                                    |   31 +++++++
 rsf-admin/src/i18n/en.js                                                                            |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatController.java        |    8 +
 17 files changed, 166 insertions(+), 60 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index b970d00..e6b9ca2 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -649,6 +649,7 @@
         batchStatus: 'batchStatus',
         batchMix: 'batchFiexed',
         batchWarehouse: 'batchWarehouse',
+        batchStockLevel: "batchStockLevel",
     },
 };
 
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 6e7ede8..dc195f9 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -278,8 +278,8 @@
                 minQty: "鏈�灏忓��",
                 maxQty: "鏈�澶у��",
                 stagn: "鍋滄粸棰勮鍊�",
-                valid: "淇濊川鏈�",
-                validWarn: "鏁堟湡棰勮",
+                valid: "淇濊川鏈�(澶�)",
+                validWarn: "鏁堟湡棰勮(澶�)",
                 flagCheck: "鍏嶆",
             },
             matnrGroup: {
@@ -651,6 +651,7 @@
         batchStatus: '鎵归噺鐘舵��',
         batchMix: '鎵归噺娣锋斁',
         batchWarehouse: '鎵归噺浠撳簱',
+        batchStockLevel: "鎵归噺ABC鍒嗙被",
     },
 };
 
diff --git a/rsf-admin/src/page/basicInfo/matnr/BatchModal.jsx b/rsf-admin/src/page/basicInfo/matnr/BatchModal.jsx
index 25a484e..8c10825 100644
--- a/rsf-admin/src/page/basicInfo/matnr/BatchModal.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/BatchModal.jsx
@@ -43,7 +43,6 @@
 
 } from '@mui/material';
 import DialogCloseButton from "../../components/DialogCloseButton";
-import DictionarySelect from "../../components/DictionarySelect";
 import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
 import SaveIcon from '@mui/icons-material/Save';
 import request from '@/utils/request';
@@ -52,7 +51,7 @@
 import { DataGrid } from '@mui/x-data-grid';
 import StatusSelectInput from "../../components/StatusSelectInput";
 
-const InitModal = ({ open, setOpen }) => {
+const InitModal = ({ open, setOpen, fieldType }) => {
     const refresh = useRefresh();
     const translate = useTranslate();
 
@@ -60,7 +59,11 @@
     const notify = useNotify();
 
     const [formData, setFormData] = useState({
-        'status': null
+        'status': null,
+        'stockLevel': null,
+        'validWarn': null,
+        'valid': null,
+        'flagCheck': null,
     });
 
     const { selectedIds, onUnselectItems } = useListContext();
@@ -76,7 +79,11 @@
 
     const reset = () => {
         setFormData({
-            'status': null
+            'status': null,
+            'stockLevel': null,
+            'validWarn': null,
+            'valid': null,
+            'flagCheck': null,
         })
     }
 
@@ -87,7 +94,7 @@
     const handleChange = (value, name) => {
         setFormData((prevData) => ({
             ...prevData,
-            [name]: ['locType', 'type'].includes(name) ? value : +value
+            [name]: value
         }));
     };
 
@@ -97,17 +104,20 @@
                 const newObj = removeEmptyKeys(value);
                 return !_.isEmpty(newObj);
             }
-            return !_.isNil(value) && (_.isNumber(value) ? value !== 0 : !_.isEmpty(value));
+            return !_.isNil(value);
         });
     }
 
+
     const handleSubmit = async () => {
         const parmas = {
-            id: selectedIds,
-            matnr: removeEmptyKeys(formData)
+            ids: selectedIds,
+            matnr: {
+                ...removeEmptyKeys(formData)
+            }
         }
 
-        const res = await request.post(`/matnr/modify`, parmas);
+        const res = await request.post(`/matnr/batch/update`, parmas);
         if (res?.data?.code === 200) {
             handleClose()
 
@@ -117,20 +127,68 @@
     }
 
     return (
-        <Dialog open={open} maxWidth="md" fullWidth>
+        <Dialog open={open} maxWidth="xs" fullWidth>
             <Form onSubmit={handleSubmit}>
                 <DialogCloseButton onClose={handleClose} />
                 <DialogTitle>{translate('toolbar.batch')}</DialogTitle>
                 <DialogContent sx={{ mt: 2 }}>
                     <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
                         <Grid container spacing={2}>
-                            <Grid item xs={4}>
-                                <StatusSelectInput
-                                    onChange={(e) => handleChange(e.target.value, 'status')}
-                                    defaultValue={''}
-                                    require={false}
-                                />
-                            </Grid>
+                            {fieldType === 'status' &&
+                                <Grid item xs={6}>
+                                    <StatusSelectInput
+                                        onChange={(e) => handleChange(+e.target.value, 'status')}
+                                        defaultValue={''}
+                                        require={false}
+                                    />
+                                </Grid>
+                            }
+                            {fieldType === 'stockLevel' &&
+                                <Grid item xs={6}>
+                                    <SelectInput
+                                        label="table.field.matnr.stockLevel"
+                                        source="stockLevel"
+                                        onChange={(e) => handleChange(e.target.value, 'stockLevel')}
+                                        choices={[
+                                            { id: 0, name: ' A' },
+                                            { id: 1, name: ' B' },
+                                            { id: 2, name: 'C' },
+                                        ]}
+                                        validate={required()}
+                                    />
+                                </Grid>
+                            }
+                            {fieldType === 'validWarn' &&
+                                <Grid item xs={6}>
+                                    <NumberInput
+                                        onChange={(e) => handleChange(e.target.value, 'validWarn')}
+                                        label="table.field.matnr.validWarn"
+                                        source="validWarn"
+                                    />
+                                </Grid>
+                            }
+                            {fieldType === 'validWarn' &&
+                                <Grid item xs={6}>
+                                    <NumberInput
+                                        onChange={(e) => handleChange(e.target.value, 'valid')}
+                                        label="table.field.matnr.valid"
+                                        source="valid"
+                                    />
+                                </Grid>
+                            }
+                            {fieldType === 'flagCheck' &&
+                                <Grid item xs={6}>
+                                    <SelectInput
+                                        onChange={(e) => handleChange(e.target.value, 'flagCheck')}
+                                        label="table.field.matnr.flagCheck"
+                                        source="flagCheck"
+                                        choices={[
+                                            { id: 0, name: ' 鍚�' },
+                                            { id: 1, name: ' 鏄�' },
+                                        ]}
+                                    />
+                                </Grid>
+                            }
                         </Grid>
 
                     </Box>
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
index c86aeef..003de96 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrEdit.jsx
@@ -318,6 +318,16 @@
                                         source="valid"
                                     />
                                 </Grid>
+                                <Grid item xs={6} display="flex" gap={1}>
+                                    <SelectInput
+                                        label="table.field.matnr.flagCheck"
+                                        source="flagCheck"
+                                        choices={[
+                                            { id: 0, name: ' 鍚�' },
+                                            { id: 1, name: ' 鏄�' },
+                                        ]}
+                                    />
+                                </Grid>
                             </Grid>
                         </CustomTabPanel>
                         <CustomTabPanel value={value} index={2}>
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
index 9bf7cfc..4114430 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
@@ -242,7 +242,8 @@
                     preferenceKey='matnr'
                     bulkActionButtons={<>
                         <BatchGroupButton />
-                        <BatchButton />
+                        <BatchStatusButton />
+                        <BatchLevelButton />
                         <BindButton />
                         <PrintButton />
                         <BulkDeleteButton mutationMode={OPERATE_MODE} />
@@ -340,7 +341,7 @@
     )
 }
 
-const BatchButton = () => {
+const BatchStatusButton = () => {
     const record = useRecordContext();
     const notify = useNotify();
     const refresh = useRefresh();
@@ -350,13 +351,37 @@
 
     return (
         <>
-            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchStatus"}>
                 <EditIcon />
             </Button>
 
             <BatchModal
                 open={createDialog}
                 setOpen={setCreateDialog}
+                fieldType={'status'}
+            />
+        </>
+
+    )
+}
+const BatchLevelButton = () => {
+    const record = useRecordContext();
+    const notify = useNotify();
+    const refresh = useRefresh();
+
+
+    const [createDialog, setCreateDialog] = useState(false);
+
+    return (
+        <>
+            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchStockLevel"}>
+                <EditIcon />
+            </Button>
+
+            <BatchModal
+                open={createDialog}
+                setOpen={setCreateDialog}
+                fieldType={'stockLevel'}
             />
         </>
 
diff --git a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx
index 01b56be..c2e5226 100644
--- a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupEdit.jsx
@@ -47,8 +47,7 @@
 const EditContent = ({ editRecord }) => {
     const { resource } = useCreateContext();
     const translate = useTranslate();
-
-    const { update } = useFieldArray({ name: "parCode" })
+    const formContext = useFormContext()
 
     const pChange = (val) => {
         if (val > 0) {
@@ -61,8 +60,9 @@
     const http = async (val) => {
         const res = await request.post(`/matnrGroup/page`, { id: val });
         const code = res.data.data.records[0].code || ''
-        editRecord && (editRecord.parCode = code);
-        update(code)
+
+        formContext.setValue('parCode', code)
+
     }
     return (
         <Grid container rowSpacing={2} columnSpacing={2}>
@@ -73,13 +73,13 @@
                     isTranslate
                     resource={resource}
                     onChange={(e) => pChange(e.target.value)}
+                    required
                 />
             </Grid>
             <Grid item xs={6} display="flex" gap={1}>
                 <TextInput
                     label="table.field.matnrGroup.parCode"
                     source="parCode"
-                    value={'11'}
                     readOnly
                 />
             </Grid>
@@ -177,7 +177,7 @@
                     disableRestoreFocus
                     maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
                 >
-                    <Form record={editRecord} onSubmit={onSubmit}>
+                    <Form record={editRecord || {}} onSubmit={onSubmit}>
                         <DialogTitle id="form-dialog-title" sx={{
                             position: 'sticky',
                             top: 0,
diff --git a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupList.jsx b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupList.jsx
index b7436b2..74b125e 100644
--- a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupList.jsx
+++ b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupList.jsx
@@ -269,7 +269,7 @@
                         {expandAll ? translate('common.action.collapseAll') : translate('common.action.expandAll')}
                     </Button>
                     <TextField
-                        label="鎼滅储"
+                        label="鎼滅储鍚嶇О"
                         value={filter}
                         onChange={({ target }) => {
                             setFilter(target.value)
diff --git a/rsf-admin/src/page/components/TreeSelectInput.jsx b/rsf-admin/src/page/components/TreeSelectInput.jsx
index 569451a..2c51cc5 100644
--- a/rsf-admin/src/page/components/TreeSelectInput.jsx
+++ b/rsf-admin/src/page/components/TreeSelectInput.jsx
@@ -5,7 +5,7 @@
 import * as Common from '@/utils/common';
 import { useFormContext } from 'react-hook-form';
 
-const TreeSelectInput = ({ resource, onChange, label, source = 'parentId', value, isTranslate = false, ...rest }) => {
+const TreeSelectInput = ({ resource, required, onChange, label, source = 'parentId', value, isTranslate = false, ...rest }) => {
     const translate = useTranslate();
     const { setValue } = useFormContext();
     const [filter, setFilter] = React.useState("");
@@ -42,7 +42,7 @@
     };
 
     return (
-        <FormControl fullWidth>
+        <FormControl fullWidth required={required}>
             <InputLabel>{translate(label)}</InputLabel>
             <Select
                 value={proxyVal || ''}
diff --git a/rsf-admin/src/page/warehouseAreas/BatchModal.jsx b/rsf-admin/src/page/warehouseAreas/BatchModal.jsx
index 1f64a7b..7b8558c 100644
--- a/rsf-admin/src/page/warehouseAreas/BatchModal.jsx
+++ b/rsf-admin/src/page/warehouseAreas/BatchModal.jsx
@@ -100,17 +100,20 @@
                 const newObj = removeEmptyKeys(value);
                 return !_.isEmpty(newObj);
             }
-            return !_.isNil(value) && (_.isNumber(value) ? value !== 0 : !_.isEmpty(value));
+            return !_.isNil(value);
         });
     }
 
+
     const handleSubmit = async () => {
         const parmas = {
-            id: selectedIds,
-            ...removeEmptyKeys(formData)
+            ids: selectedIds,
+            warehouseAreas: {
+                ...removeEmptyKeys(formData)
+            }
         }
 
-        const res = await request.post(`/warehouseAreas/modify`, parmas);
+        const res = await request.post(`/warehouseAreas/batch/update`, parmas);
         if (res?.data?.code === 200) {
             handleClose()
 
@@ -130,7 +133,7 @@
                             {fieldType === 'status' &&
                                 <Grid item xs={6}>
                                     <StatusSelectInput
-                                        onChange={(e) => handleChange(e.target.value, 'status')}
+                                        onChange={(e) => handleChange(+e.target.value, 'status')}
                                         defaultValue={''}
                                         require={false}
                                     />
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
index 3ba527a..9a73af3 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
@@ -42,6 +42,7 @@
             "/pda/login",
             "/erp/**",
             "/login",
+            "/**/download",
             "/register",
             "/druid/**",
             "/doc.html",
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatController.java
index 817f37d..c1be3fc 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatController.java
@@ -57,10 +57,14 @@
     @OperationLog("Create loc areas mats")
     @PostMapping("/locAreaMat/save")
     public R save(@RequestBody LocAreaMat locAreaMat) {
+        if (Objects.isNull(locAreaMat.getWarehouseId())) {
+            return R.error("浠撳簱涓嶈兘涓虹┖锛侊紒");
+        }
+        if (Objects.isNull(locAreaMat.getAreaId())) {
+            return R.error("搴撳尯涓嶈兘涓虹┖锛侊紒");
+        }
         locAreaMat.setCreateBy(getLoginUserId());
-        locAreaMat.setCreateTime(new Date());
         locAreaMat.setUpdateBy(getLoginUserId());
-        locAreaMat.setUpdateTime(new Date());
         if (!locAreaMatService.save(locAreaMat)) {
             return R.error("Save Fail");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java
index b44a0f5..b031261 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java
@@ -183,12 +183,12 @@
         if (Objects.isNull(param)) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        if (Objects.isNull(param.getAreaId())) {
-            throw new CoolException("搴撳尯涓嶈兘涓虹┖锛侊紒");
-        }
-        if (Objects.isNull(param.getWarehouseId())) {
-            throw new CoolException("浠撳簱涓嶈兘涓虹┖锛侊紒");
-        }
+//        if (Objects.isNull(param.getAreaId())) {
+//            throw new CoolException("搴撳尯涓嶈兘涓虹┖锛侊紒");
+//        }
+//        if (Objects.isNull(param.getWarehouseId())) {
+//            throw new CoolException("浠撳簱涓嶈兘涓虹┖锛侊紒");
+//        }
         if (Objects.isNull(param.getAreaMatId())) {
             throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java
index e65f062..ff0cb65 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java
@@ -65,13 +65,14 @@
     @PostMapping("/matnrGroup/save")
     public R save(@RequestBody MatnrGroup matnrGroup) {
         if (Objects.isNull(matnrGroup)) {
-            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
+
         if (Objects.isNull(matnrGroup.getName())) {
-            throw new CoolException("鍒嗙粍鍚嶇О涓嶈兘涓虹┖锛侊紒");
+            return R.error("鍒嗙粍鍚嶇О涓嶈兘涓虹┖锛侊紒");
         }
         if (Objects.isNull(matnrGroup.getCode())) {
-            throw new CoolException("鍒嗙粍缂栫爜涓嶈兘涓虹┖锛侊紒");
+            return R.error("鍒嗙粍缂栫爜涓嶈兘涓虹┖锛侊紒");
         }
         matnrGroup.setCreateBy(getLoginUserId());
         matnrGroup.setUpdateBy(getLoginUserId());
@@ -80,12 +81,12 @@
                 .eq(!Objects.isNull(matnrGroup.getParCode()), MatnrGroup::getParCode, matnrGroup.getParCode())
                 .eq(MatnrGroup::getCode, matnrGroup.getCode()));
         if (!list.isEmpty()) {
-            throw new CoolException("鐗╂枡鍒嗙粍缂栫爜涓嶈兘閲嶅锛侊紒");
+            return R.error("鐗╂枡鍒嗙粍缂栫爜涓嶈兘閲嶅锛侊紒");
         }
         List<MatnrGroup> groups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>()
                 .eq(MatnrGroup::getName, matnrGroup.getName()));
         if (!groups.isEmpty()) {
-            throw new CoolException("鍒嗙粍宸插瓨鍦紝璇峰嬁閲嶅娣诲姞锛侊紒");
+            return R.error("鍒嗙粍宸插瓨鍦紝璇峰嬁閲嶅娣诲姞锛侊紒");
         }
         //鍒ゆ柇涓婄骇缂栫爜鏄惁涓虹┖
         if (!Objects.isNull(matnrGroup.getParCode()) && !StringUtils.isBlank(matnrGroup.getParCode())) {
@@ -104,10 +105,13 @@
 
         matnrGroup.setUpdateBy(getLoginUserId());
         MatnrGroup matGroup = matnrGroupService.getById(matnrGroup.getId());
+        if (Objects.isNull(matGroup)) {
+            return R.error("鐗╂枡鍒嗙粍涓嶅瓨鍦紒锛�");
+        }
         if (!matnrGroup.getName().equals(matGroup.getName())) {
             List<MatnrGroup> areasList = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnrGroup.getName()));
             if (!areasList.isEmpty()) {
-                throw new CoolException("浠撳簱鍚嶅凡瀛樺湪锛侊紒");
+                return R.error("浠撳簱鍚嶅凡瀛樺湪锛侊紒");
             }
         }
         if (!Objects.isNull(matnrGroup.getCode()) && !matnrGroup.getCode().equals(matGroup.getCode())) {
@@ -115,13 +119,8 @@
                             .eq(!Objects.isNull(matnrGroup.getParCode()), MatnrGroup::getParCode, matnrGroup.getParCode())
                     .eq(MatnrGroup::getCode, matnrGroup.getCode()));
             if (!areasList.isEmpty()) {
-                throw new CoolException("浠撳簱缂栫爜宸插瓨鍦紒锛�");
+                return R.error("浠撳簱缂栫爜宸插瓨鍦紒锛�");
             }
-        }
-
-            //鍒ゆ柇涓婄骇缂栫爜鏄惁涓虹┖
-        if (!Objects.isNull(matnrGroup.getParCode()) && !StringUtils.isBlank(matnrGroup.getParCode())) {
-            matnrGroup.setCode(matnrGroup.getParCode() + matnrGroup.getCode());
         }
 
         if (!matnrGroupService.updateById(matnrGroup)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java
index 64aebaf..3884999 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java
@@ -115,7 +115,7 @@
     @PostMapping("/warehouseAreas/update")
     public R update(@RequestBody WarehouseAreas warehouseAreas) {
         warehouseAreas.setUpdateBy(getLoginUserId());
-        WarehouseAreas areas = warehouseAreasService.getById(warehouseAreas.getWarehouseId());
+        WarehouseAreas areas = warehouseAreasService.getById(warehouseAreas.getId());
         if (Objects.isNull(areas)) {
             throw new CoolException("鏁版嵁閿欒锛氫粨搴撳簱鍖轰笉瀛樺湪锛侊紒");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
index 785efca..0416ab5 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreas.java
@@ -206,7 +206,7 @@
         return null;
     }
 
-    public String getSupplier$() {
+    public String getSupplierId$() {
         CompanysService service = SpringUtils.getBean(CompanysService.class);
         Companys supplier = service.getById(this.supplierId);
         if (!Cools.isEmpty(supplier)){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java
index 2c7f1c0..d0473e7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java
@@ -77,7 +77,7 @@
                         LocAreaMatRela locAreaMatRela = new LocAreaMatRela();
                         locAreaMatRela
                                 .setAreaMatId(param.getAreaMatId())
-                                .setAreaId(param.getAreaId())
+//                                .setAreaId(param.getAreaId())
                                 .setLocId(locId)
                                 .setLocTypeId(typeId)
                                 .setMatnrId(matnrId.getId())
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
index c0ae701..e2de606 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
@@ -49,13 +49,17 @@
             throw new CoolException("淇敼搴撲綅淇℃伅涓嶈兘涓虹┖锛侊紒");
         }
 
+        String join = locs.getLoc().getType();
+        if (!Objects.isNull(loc.getTypeIds()) && !loc.getTypeIds().isEmpty()) {
+             join = StringUtils.join(loc.getTypeIds(), ",");
+        }
         boolean update = this.update(new LambdaUpdateWrapper<Loc>()
                 .in(Loc::getId, locs.getId())
                 .eq(Loc::getStatus, 1)
                 .set(!Objects.isNull(loc.getAreaId()), Loc::getAreaId, loc.getAreaId())
                 .set(!Objects.isNull(loc.getWarehouseId()), Loc::getWarehouseId, loc.getWarehouseId())
                 .set(!Objects.isNull(loc.getUseStatus()), Loc::getUseStatus, loc.getUseStatus())
-                .set(!Objects.isNull(loc.getType()), Loc::getType, loc.getType())
+                .set(!Objects.isNull(loc.getType()), Loc::getType, join)
                 .set(!Objects.isNull(loc.getLength()), Loc::getLength, loc.getLength())
                 .set(!Objects.isNull(loc.getWidth()), Loc::getWidth, loc.getWidth())
                 .set(!Objects.isNull(loc.getHeight()), Loc::getHeight, loc.getHeight())

--
Gitblit v1.9.1