From e2f5d7f8e9818977b0eb3b163447c10f8caca2b5 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 30 七月 2025 12:58:31 +0800 Subject: [PATCH] 调拔单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java | 2 rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx | 12 +---- rsf-admin/src/page/components/DictionarySelect.jsx | 2 + rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java | 14 +++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java | 31 ++++++++++++--- rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 30 +++++++------- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java | 9 ---- 7 files changed, 59 insertions(+), 41 deletions(-) diff --git a/rsf-admin/src/page/components/DictionarySelect.jsx b/rsf-admin/src/page/components/DictionarySelect.jsx index 0825280..aa489d2 100644 --- a/rsf-admin/src/page/components/DictionarySelect.jsx +++ b/rsf-admin/src/page/components/DictionarySelect.jsx @@ -11,6 +11,7 @@ const { dictTypeCode, name, + group, multiple = false, perPage = 100, // 榛樿姣忛〉鏄剧ず100鏉℃暟鎹� page = 1, // 榛樿绗竴椤� @@ -30,6 +31,7 @@ try { const res = await request.post('/dictData/page', { dictTypeCode, + group, current: page, pageSize: perPage }); diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx index fbe9491..c5457c1 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx @@ -1,4 +1,3 @@ -import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; import { List, DatagridConfigurable, @@ -7,9 +6,6 @@ SelectColumnsButton, EditButton, FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, useDataProvider, WrapperField, useRecordContext, @@ -17,7 +13,6 @@ useNotify, useRefresh, useListContext, - FunctionField, TextField, NumberField, DateField, @@ -39,6 +34,7 @@ import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; import CreateNewFolderOutlinedIcon from '@mui/icons-material/CreateNewFolderOutlined'; +import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; import PrintOutlinedIcon from '@mui/icons-material/PrintOutlined'; import DictionarySelect from "../../components/DictionarySelect"; import ConstructionIcon from "@mui/icons-material/Construction"; @@ -83,7 +79,6 @@ }, '& .opt': { width: 220, - }, })); @@ -93,7 +88,7 @@ <TextInput source="poCode" label="table.field.asnOrder.poCode" />, <NumberInput source="poId" label="table.field.asnOrder.poId" />, <TextInput source="type" label="table.field.asnOrder.type" />, - <ReferenceInput source="wkType" reference="dictData" filter={{ dictTypeCode: 'sys_business_type' }} label="table.field.asnOrder.wkType"> + <ReferenceInput source="wkType" reference="dictData" filter={{ dictTypeCode: 'sys_business_type', group: "1" }} label="table.field.asnOrder.wkType" alwaysOn> <AutocompleteInput label="table.field.asnOrder.wkType" optionValue="value" /> </ReferenceInput>, <NumberInput source="anfme" label="table.field.asnOrder.anfme" />, @@ -106,15 +101,14 @@ { id: 1, name: ' 宸查噴鏀�' }, ]} />, - <TextInput label="common.field.memo" source="memo" />, <DictionarySelect label='table.field.asnOrder.exceStatus' name="exceStatus" + group="1" dictTypeCode="sys_asn_exce_status" alwaysOn />, - ] const AsnOrderList = (props) => { diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx index 119072d..dd16e72 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx @@ -44,24 +44,24 @@ MenuItem } from '@mui/material'; + +import { DataGrid, useGridApiRef, GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF, getGridDateOperators, useGridApiContext } from '@mui/x-data-grid'; +import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form"; +import { LocalizationProvider, DatePicker, DateTimePicker } from '@mui/x-date-pickers'; import DialogCloseButton from "../../components/DialogCloseButton"; import StatusSelectInput from "../../components/StatusSelectInput"; -import ConfirmButton from "../../components/ConfirmButton"; -import AsnWareModal from "./AsnWareModal"; -import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form"; -import SaveIcon from '@mui/icons-material/Save'; -import request from '@/utils/request'; -import { Add, Edit, Delete } from '@mui/icons-material'; -import _, { set } from 'lodash'; -import { DataGrid, useGridApiRef, GRID_DATE_COL_DEF, GRID_DATETIME_COL_DEF, getGridDateOperators, useGridApiContext } from '@mui/x-data-grid'; -import { LocalizationProvider, DatePicker, DateTimePicker } from '@mui/x-date-pickers'; -import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; -import DictionarySelect from "../../components/DictionarySelect"; -import DictSelect from "../../components/DictSelect"; -import "./asnOrder.css"; -import { 'zhCN' as locale } from 'date-fns/locale'; -import { format, } from 'date-fns'; import { DemoContainer } from '@mui/x-date-pickers/internals/demo'; +import DictionarySelect from "../../components/DictionarySelect"; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +import ConfirmButton from "../../components/ConfirmButton"; +import { Add, Edit, Delete } from '@mui/icons-material'; +import DictSelect from "../../components/DictSelect"; +import SaveIcon from '@mui/icons-material/Save'; +import AsnWareModal from "./AsnWareModal"; +import request from '@/utils/request'; +import _, { set } from 'lodash'; +import "./asnOrder.css"; + const AsnOrderModal = (props) => { const { open, setOpen, asnId, billReload } = props; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java index bb0357e..9c47abf 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java @@ -37,15 +37,6 @@ @Autowired private TaskService taskService; - @Autowired - private TaskItemService taskItemService; - @Autowired - private WaitPakinService waitPakinService; - @Autowired - private LocService locService; - @Autowired - private ConfigServiceImpl configService; - @PreAuthorize("hasAuthority('manager:task:list')") @PostMapping("/task/page") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java index d4eb69c..5ad4d08 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java @@ -85,6 +85,20 @@ moveOrderToLog(wkOrders, OrderType.ORDER_OUT.type); } +// /** +// * @author Ryan +// * @date 2025/7/30 +// * @description: 鏇存柊璋冩嫈鍗曠姸鎬� +// * @version 1.0 +// */ +// @Scheduled(cron = "0/30 * * * * ? ") +// @Transactional(rollbackFor = Exception.class) +// public void updateTransferExc() { +// +// } + + + /** * @param * @param type diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java index 8b9ee81..e7fc0bb 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java @@ -7,10 +7,7 @@ import com.vincent.rsf.server.common.config.SysStockProperties; import com.vincent.rsf.server.common.utils.DateUtils; import com.vincent.rsf.server.manager.entity.*; -import com.vincent.rsf.server.manager.enums.AsnExceStatus; -import com.vincent.rsf.server.manager.enums.OrderType; -import com.vincent.rsf.server.manager.enums.POExceStatus; -import com.vincent.rsf.server.manager.enums.WarehouseAreasType; +import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.manager.service.impl.WarehouseAreasItemServiceImpl; import com.vincent.rsf.server.system.constant.GlobalConfigCode; @@ -61,6 +58,10 @@ private WarehouseAreasItemServiceImpl warehouseAreasItemService; @Autowired private CompanysService companysService; + @Autowired + private TransferService transferService; + @Autowired + private OutStockService outStockService; /** * @author Ryan @@ -68,7 +69,6 @@ * @description: 鐩存帴缁勬墭寮�鍏充负true锛屽皢鏀惰揣鍗曠洿鎺ュ姞鍏ヤ复鏃跺簱瀛� * @version 1.0 */ -// @Scheduled(cron = "0 0/05 * * * ? ") @Scheduled(cron = "0/25 * * * * ?") @Transactional(rollbackFor = Exception.class) public synchronized void IgnoreReceipt() { @@ -85,6 +85,18 @@ .eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)); if (!orders.isEmpty()) { for (WkOrder order : orders) { + if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)) { + WkOrder one = outStockService.getOne(new LambdaQueryWrapper<WkOrder>() + .eq(WkOrder::getPoId, order.getPoId()) + .eq(WkOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type)); + if (Objects.isNull(one)) { + throw new CoolException("鏁版嵁閿欒"); + } + if (!one.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)) { + continue; + } + } + List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId())); if (orderItems.isEmpty()) { return; @@ -109,7 +121,11 @@ throw new CoolException("鐗╂枡涓嶅瓨鍦紒锛�"); } //鏇存柊鏀惰揣鍖哄簱瀛� - extracted(one, item, order, matnr); + try { + updateReceipt(one, item, order, matnr); + } catch (Exception e) { + throw new CoolException(e.getMessage()); + } if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>().set(WkOrderItem::getQty, item.getAnfme()).eq(WkOrderItem::getId, item.getId()))) { throw new CoolException("鏀惰揣鍗曟槑缁嗗畬鎴愭暟閲忎慨鏀瑰け璐ワ紒锛�"); @@ -136,7 +152,8 @@ * @description: 鏀惰揣鍖哄簱瀛樻洿鏂� * @version 1.0 */ - private void extracted(WarehouseAreas areasItem, WkOrderItem orderItem, WkOrder wkOrder, Matnr matnr) { + @Transactional(rollbackFor = Exception.class) + public void updateReceipt(WarehouseAreas areasItem, WkOrderItem orderItem, WkOrder wkOrder, Matnr matnr) throws Exception { Companys companys = new Companys(); if (StringUtils.isNoneBlank(orderItem.getSplrCode())) { companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode())); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java index 45cf4f8..45bd115 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java +++ b/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_INIT.val); + transfer.setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_EXCE_ING.val); if (!this.updateById(transfer)) { throw new CoolException("璋冩嫈鍗曟洿鏂板け璐ワ紒锛�"); -- Gitblit v1.9.1