From 66e2b81704718350c0a3fcf0dfbd2f9d614b044c Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期二, 13 一月 2026 08:30:38 +0800
Subject: [PATCH] lsh#

---
 rsf-admin/src/page/container/ContainerList.jsx                                                 |   21 -----
 rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx                                 |   78 +++---------------
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java                 |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java           |   14 ++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java        |   22 +++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasContainerController.java |   43 +++-------
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java       |    9 ++
 7 files changed, 70 insertions(+), 118 deletions(-)

diff --git a/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx b/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx
index 23e3cdf..722bb6e 100644
--- a/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx
+++ b/rsf-admin/src/page/basicInfo/basContainer/BasContainerList.jsx
@@ -31,7 +31,6 @@
     ReferenceArrayInput,
     AutocompleteInput,
     DeleteButton,
-    Button,
 } from 'react-admin';
 import { Box, Typography, Card, Stack } from '@mui/material';
 import { styled } from '@mui/material/styles';
@@ -43,11 +42,8 @@
 import PageDrawer from "../../components/PageDrawer";
 import MyField from "../../components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import * as Common from '@/utils/common';
 import CrossZoneAreaField from "../basStation/CrossZoneAreaField";
-import AllInclusiveIcon from '@mui/icons-material/AllInclusive';
-import BasContainerInit from "./BasContainerInit";
-import PrintModal from './PrintModal'
-
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -65,8 +61,8 @@
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
-    <DateInput label='common.time.after' source="timeStart" />,
-    <DateInput label='common.time.before' source="timeEnd" />,
+    <DateInput label='common.time.after' source="timeStart"  />,
+    <DateInput label='common.time.before' source="timeEnd"  />,
 
     <NumberInput source="containerType" label="table.field.basContainer.containerType" />,
     <TextInput source="codeType" label="table.field.basContainer.codeType" />,
@@ -89,9 +85,6 @@
     const [areaFieldDialog, setAreaFieldDialog] = useState(false);
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
-    const [open, setOpen] = useState(false);
-    const [print, setPrint] = useState(false);
-    const [selectPrints, setSelectPrints] = useState([]);
 
     return (
         <Box display="flex">
@@ -105,14 +98,13 @@
                     marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.basContainer"}
-                empty={false}
+                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
                     <TopToolbar>
-                        <InitButton setOpen={setOpen} />
                         <FilterButton />
-                        {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
+                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                         <SelectColumnsButton preferenceKey='basContainer' />
                         <MyExportButton />
                     </TopToolbar>
@@ -121,18 +113,21 @@
             >
                 <StyledDatagrid
                     preferenceKey='basContainer'
-                    bulkActionButtons={<>
-                        <BulkPrintBarcode setPrint={setPrint} setSelectPrints={setSelectPrints} />
-                        <BulkDeleteButton mutationMode={OPERATE_MODE} />
-                    </>}
-                    rowClick={(id, resource, record) => false}
+                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
+                    rowClick={(id, resource, record) => false}                    
                     expandSingle={true}
-                    omit={['id', 'statusBool']}
+                    omit={['id', 'createTime', 'createBy', 'memo','statusBool']}
                 >
                     <NumberField source="id" />
                     <NumberField source="containerType$" label="table.field.basContainer.containerType" />
-                    <TextField source="code" label="table.field.basContainer.code" />
                     <TextField source="codeType" label="table.field.basContainer.codeType" />
+                    <WrapperField cellClassName="areas" label="table.field.basContainer.areas">
+                        <CrossZoneAreaField
+                            open={areaFieldDialog}
+                            setOpen={setAreaFieldDialog}                
+                        />                        
+                    </WrapperField> 
+
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                         <TextField source="nickname" />
                     </ReferenceField>
@@ -153,15 +148,6 @@
                 open={createDialog}
                 setOpen={setCreateDialog}
             />
-            <BasContainerInit
-                open={open}
-                setOpen={setOpen}
-            />
-            <PrintModal
-                open={print}
-                setOpen={setPrint}
-                rows={selectPrints}
-            />
             <PageDrawer
                 title='BasContainer Detail'
                 drawerVal={drawerVal}
@@ -171,39 +157,5 @@
         </Box>
     )
 }
-
-//鍒濆鍖栨寜閽�
-const InitButton = ({ setOpen }) => {
-    const init = () => {
-        setOpen(true)
-    }
-    return (
-        <Button
-            label="toolbar.init"
-            variant="text"
-            size="small"
-            onClick={init}
-            startIcon={<AllInclusiveIcon />} />
-    )
-}
-
-const BulkPrintBarcode = ({ setPrint, setSelectPrints }) => {
-    const { selectedIds } = useListContext();
-    //鎵撳嵃
-    const print = () => {
-        setPrint(true);
-        setSelectPrints(selectedIds);
-    }
-
-    return (
-        <Button
-            label="toolbar.print"
-            variant="text"
-            size="small"
-            onClick={print}
-            startIcon={<AllInclusiveIcon />} />
-    )
-}
-
 
 export default BasContainerList;
diff --git a/rsf-admin/src/page/container/ContainerList.jsx b/rsf-admin/src/page/container/ContainerList.jsx
index 7ab91e7..b99b12a 100644
--- a/rsf-admin/src/page/container/ContainerList.jsx
+++ b/rsf-admin/src/page/container/ContainerList.jsx
@@ -31,7 +31,6 @@
     ReferenceArrayInput,
     AutocompleteInput,
     DeleteButton,
-    Button,
 } from 'react-admin';
 import { Box, Typography, Card, Stack } from '@mui/material';
 import { styled } from '@mui/material/styles';
@@ -44,7 +43,6 @@
 import MyField from "../components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import * as Common from '@/utils/common';
-import AllInclusiveIcon from '@mui/icons-material/AllInclusive';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -124,7 +122,6 @@
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
                     <TopToolbar>
-                        <InitButton />
                         <FilterButton />
                         <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                         <SelectColumnsButton preferenceKey='container' />
@@ -185,23 +182,5 @@
         </Box>
     )
 }
-
-//鍒濆鍖栨寜閽�
-const InitButton = ({ setOpen }) => {
-    const close = () => {
-        setOpen(false)
-    }
-    return (
-        <Button
-            label="toolbar.init"
-            variant="outlined"
-            size="medium"
-            onClick={close}
-            startIcon={<AllInclusiveIcon />}
-            sx={{ margin: '3.5em' }} />
-    )
-}
-
-
 
 export default ContainerList;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
index cfb6f1f..0a4d3c8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
@@ -120,6 +120,13 @@
         return mobileService.getReceiptAreas(getLoginUser());
     }
 
+    @PreAuthorize("hasAuthority('manager:warehouseAreas:list')")
+    @ApiOperation("鑾峰彇鍙敤搴撳尯")
+    @GetMapping("/areas/user/all")
+    public R getAreasUserAll() {
+        return mobileService.getAreasUserAll(getLoginUser());
+    }
+
 
     @PreAuthorize("hasAuthority('manager:asnOrder:list')")
     @GetMapping("/orders/asn")
@@ -167,7 +174,7 @@
     public R pikinOrder(@RequestBody WaitPakinParam waitPakin) {
         Long userId = getLoginUserId();
         if (Objects.isNull(waitPakin)) {
-            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+            return R.error( "鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
         if (org.apache.commons.lang3.StringUtils.isBlank(waitPakin.getBarcode())) {
             return R.error("鎵樼洏鐮佷笉鑳戒负绌猴紒锛�");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
index 0b4f842..b916f82 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
@@ -37,6 +37,7 @@
     List<WkOrder> getAllAsnOrders();
 
     R getReceiptAreas(User user);
+    R getAreasUserAll(User user);
 
     List<Fields> getDynamicFields();
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
index b3edd3f..5672c78 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
@@ -255,9 +255,17 @@
                     new LambdaQueryWrapper<BasContainer>()
                             .in(BasContainer::getContainerType, longs1)
             );
-            boolean matches = containers.stream()
-                    .map(BasContainer::getCodeType)
-                    .anyMatch(codeType -> barcode.matches(codeType));
+            boolean matches = false;
+            for (BasContainer container : containers) {
+                String codeType = container.getCodeType();  // 鑾峰彇姝e垯琛ㄨ揪寮�
+                if (barcode.matches(codeType)) {  // 鍒ゆ柇鏉$爜鏄惁绗﹀悎杩欎釜姝e垯
+                    matches = true;
+                    break;  // 鎵惧埌鍖归厤鐨勫氨閫�鍑哄惊鐜�
+                }
+            }
+//            boolean matches = containers.stream()
+//                    .map(BasContainer::getCodeType)
+//                    .anyMatch(codeType -> barcode.matches(codeType));
             if (!matches) {
                 throw new CoolException("鏉$爜涓庣珯鐐逛笉鍖归厤");
             }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index e56c6e4..921c7f0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -522,6 +522,28 @@
      * @param
      * @return
      * @author Ryan
+     * @description 鑾峰彇闆嗚揣鍖�
+     * @time 2025/3/11 10:12
+     */
+    @Override
+    public R getAreasUserAll(User user) {
+        Long[] userRoleIds = user.getUserRoleIds();
+        List<WarehouseRoleMenu> warehouseRoleMenus = warehouseRoleMenuService.list(new LambdaQueryWrapper<WarehouseRoleMenu>()
+                .in(WarehouseRoleMenu::getRoleId, Arrays.asList(userRoleIds))
+        );
+        Set<WarehouseRoleMenu> warehouseRoleMenusSet = new HashSet<>(warehouseRoleMenus);
+        List<Long> longs = warehouseRoleMenusSet.stream().map(WarehouseRoleMenu::getMenuId).collect(Collectors.toList());
+        List<WarehouseAreas> areas = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>()
+                .eq(WarehouseAreas::getType, WarehouseAreaType.WAREHOUSE_AREA_COLLECTION.type)
+                .in(WarehouseAreas::getId, longs)
+        );
+        return R.ok(areas);
+    }
+
+    /**
+     * @param
+     * @return
+     * @author Ryan
      * @description 鑾峰彇鎵�鏈夊惎鐢ㄥ姩鎬佸瓧娈�
      * @time 2025/3/12 09:23
      */
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasContainerController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasContainerController.java
index ec0beb1..e352697 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasContainerController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/BasContainerController.java
@@ -9,7 +9,6 @@
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
-import com.vincent.rsf.server.manager.controller.params.InitContainerParams;
 import com.vincent.rsf.server.manager.entity.BasContainer;
 import com.vincent.rsf.server.manager.entity.BasStation;
 import com.vincent.rsf.server.manager.service.BasContainerService;
@@ -33,18 +32,18 @@
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<BasContainer, BaseParam> pageParam = new PageParam<>(baseParam, BasContainer.class);
         PageParam<BasContainer, BaseParam> page = basContainerService.page(pageParam, pageParam.buildWrapper(true));
-//        for (BasContainer container : page.getRecords()) {
-//            if (!Cools.isEmpty(container.getAreas())) {
-//                String content = container.getAreas().substring(1, container.getAreas().length() - 1);
-//                String[] parts = content.split(",");
-//                Long[] longArray = new Long[parts.length];
-//                for (int i = 0; i < parts.length; i++) {
-//                    longArray[i] = Long.parseLong(parts[i].trim());
-//                }
-//                container.setAreaIds(longArray);
-//            }
-//
-//        }
+        for (BasContainer container : page.getRecords()) {
+            if (!Cools.isEmpty(container.getAreas())) {
+                String content = container.getAreas().substring(1, container.getAreas().length() - 1);
+                String[] parts = content.split(",");
+                Long[] longArray = new Long[parts.length];
+                for (int i = 0; i < parts.length; i++) {
+                    longArray[i] = Long.parseLong(parts[i].trim());
+                }
+                container.setAreaIds(longArray);
+            }
+
+        }
         return R.ok().add(page);
     }
 
@@ -82,7 +81,7 @@
         basContainer.setCreateTime(new Date());
         basContainer.setUpdateBy(getLoginUserId());
         basContainer.setUpdateTime(new Date());
-        BasContainer container = basContainerService.getOne(new LambdaQueryWrapper<BasContainer>().eq(BasContainer::getContainerType, basContainer.getContainerType()).orderByDesc(BasContainer::getId),false);
+        BasContainer container = basContainerService.getOne(new LambdaQueryWrapper<BasContainer>().eq(BasContainer::getContainerType, basContainer.getContainerType()));
         if (null != container) {
             return R.error("璇ョ被鍨嬪凡琚垵濮嬪寲");
         }
@@ -133,22 +132,6 @@
         );
         return R.ok().add(vos);
     }
-
-
-    /**
-     * 鍒濆鍖�
-     * @return
-     */
-    @PreAuthorize("hasAuthority('manager:basContainer:list')")
-    @OperationLog("瀹瑰櫒鍒濆鍖�")
-    @PostMapping("/basContainer/init/save")
-    public R init(@RequestBody InitContainerParams params) {
-        if (Objects.isNull(params)) {
-            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
-        }
-        return basContainerService.init(params, getLoginUserId());
-    }
-
 
     @PreAuthorize("hasAuthority('manager:basContainer:list')")
     @PostMapping("/basContainer/export")

--
Gitblit v1.9.1