From d2adaf492a992dfbcbe117ecc1fa2b7e4d8aaf73 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 19 九月 2024 13:58:22 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/components/ImportModal.jsx | 2 +- zy-acs-flow/src/page/code/useCodeImport.jsx | 3 +-- zy-acs-flow/src/page/route/importTemp.csv | 1 + zy-acs-flow/src/page/route/useRouteImport.jsx | 20 ++++++++++++++++++++ zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java | 3 +-- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java | 11 ++++++++++- zy-acs-flow/src/page/route/RouteList.jsx | 6 ++++++ 7 files changed, 40 insertions(+), 6 deletions(-) diff --git a/zy-acs-flow/src/page/code/useCodeImport.jsx b/zy-acs-flow/src/page/code/useCodeImport.jsx index ced0084..5b62f25 100644 --- a/zy-acs-flow/src/page/code/useCodeImport.jsx +++ b/zy-acs-flow/src/page/code/useCodeImport.jsx @@ -1,9 +1,8 @@ import { useCallback, useMemo } from 'react'; -import { useDataProvider, useGetIdentity } from 'react-admin'; import request from '@/utils/request'; export function useCodeImport() { - + const processBatch = useCallback(async (batch) => { const res = await request.post('/code/import', batch); const { code, msg, data } = res.data; diff --git a/zy-acs-flow/src/page/components/ImportModal.jsx b/zy-acs-flow/src/page/components/ImportModal.jsx index ceba0b3..76e7713 100644 --- a/zy-acs-flow/src/page/components/ImportModal.jsx +++ b/zy-acs-flow/src/page/components/ImportModal.jsx @@ -149,7 +149,7 @@ label="common.action.import.download" color="info" to={importTemp} - download={'crm_contacts_sample.csv'} + download={'import_template.csv'} /> } > diff --git a/zy-acs-flow/src/page/route/RouteList.jsx b/zy-acs-flow/src/page/route/RouteList.jsx index 6d81312..2423b16 100644 --- a/zy-acs-flow/src/page/route/RouteList.jsx +++ b/zy-acs-flow/src/page/route/RouteList.jsx @@ -42,6 +42,11 @@ import MyField from "../components/MyField"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE } from '@/config/setting'; import * as Common from '@/utils/common'; +import ImportButton from '../components/ImportButton' +import { useRouteImport } from './useRouteImport'; + +import * as importTemp from './importTemp.csv?raw'; +const IMPORT_TEMP_URL = `data:text/csv;name=crm_contacts_sample.csv;charset=utf-8,${encodeURIComponent(importTemp.default)}`; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -117,6 +122,7 @@ <FilterButton /> <MyCreateButton onClick={() => { setCreateDialog(true) }} /> <SelectColumnsButton preferenceKey='route' /> + <ImportButton importTemp={IMPORT_TEMP_URL} useCodeImport={useRouteImport} onceBatch={10} /> <MyExportButton /> </TopToolbar> )} diff --git a/zy-acs-flow/src/page/route/importTemp.csv b/zy-acs-flow/src/page/route/importTemp.csv new file mode 100644 index 0000000..03b80d5 --- /dev/null +++ b/zy-acs-flow/src/page/route/importTemp.csv @@ -0,0 +1 @@ +start_code,end_code,distance,"direction(0:鏃犲簭,1:姝e悜,2:鍙嶅悜)" diff --git a/zy-acs-flow/src/page/route/useRouteImport.jsx b/zy-acs-flow/src/page/route/useRouteImport.jsx new file mode 100644 index 0000000..b67152d --- /dev/null +++ b/zy-acs-flow/src/page/route/useRouteImport.jsx @@ -0,0 +1,20 @@ +import { useCallback, useMemo } from 'react'; +import request from '@/utils/request'; + +export function useRouteImport() { + + const processBatch = useCallback(async (batch) => { + const res = await request.post('/route/import', batch); + const { code, msg, data } = res.data; + if (code === 200) { + + } else { + console.error(msg); + throw new Error(`Batch import failed: ${msg}`); + } + }, []); + + return { + processBatch, + }; +} diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java index 138f911..c74b580 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/CodeController.java @@ -129,8 +129,7 @@ @PreAuthorize("hasAuthority('manager:code:save')") @PostMapping("/code/import") public R importBatch(@RequestBody List<Map<String, Object>> list) { - Date now = new Date(); - Long userId = getLoginUserId(); + Date now = new Date(); Long userId = getLoginUserId(); for (Map<String, Object> map : list) { Code code = Cools.conver(map, Code.class); if (null != codeService.selectByData(code.getData())) { diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java index e23c6c7..aaa84f0 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java @@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; -import com.zy.acs.manager.common.utils.ExcelUtil; import com.zy.acs.manager.common.annotation.OperationLog; import com.zy.acs.manager.common.domain.BaseParam; import com.zy.acs.manager.common.domain.KeyValVo; import com.zy.acs.manager.common.domain.PageParam; +import com.zy.acs.manager.common.utils.ExcelUtil; import com.zy.acs.manager.manager.entity.Route; import com.zy.acs.manager.manager.service.RouteService; import com.zy.acs.manager.system.controller.BaseController; @@ -108,4 +108,13 @@ ExcelUtil.build(ExcelUtil.create(routeService.list(), Route.class), response); } + @PreAuthorize("hasAuthority('manager:route:save')") + @PostMapping("/route/import") + public R importBatch(@RequestBody List<Map<String, Object>> list) { + Date now = new Date(); Long userId = getLoginUserId(); + for (Map<String, Object> map : list) { + } + return R.ok(); + } + } -- Gitblit v1.9.1