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