rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/page/orders/outStock/OutOrderList.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/page/orders/outStock/OutStockPublic.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
@@ -39,13 +39,9 @@ import { Box, Typography, Card, Stack, Dialog, DialogActions, DialogTitle } from '@mui/material'; import { styled } from '@mui/material/styles'; import OutOrderItemCreate from "./OutOrderItemCreate"; import EmptyData from "../../components/EmptyData"; import MyCreateButton from "../../components/MyCreateButton"; import MyExportButton from '../../components/MyExportButton'; import PageDrawer from "../../components/PageDrawer"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting'; import OutOrderItemEdit from "./OutOrderItemEdit"; import ImportButton from "../../components/ImportButton"; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -122,9 +118,7 @@ actions={( <TopToolbar> <FilterButton /> <MyCreateButton onClick={() => { setCreateDialog(true) }} /> <SelectColumnsButton preferenceKey='outStockItem' /> {/* <MyExportButton /> */} </TopToolbar> )} perPage={DEFAULT_ITEM_PAGE_SIZE} @@ -132,10 +126,7 @@ <StyledDatagrid preferenceKey='outStockItem' bulkActionButtons={false} rowClick={(id, resource, record) => { setSelect(record) setEditDialog(true) }} rowClick={false} omit={['id', 'createTime', 'createBy', 'memo', 'poDetlId', 'purQty', 'purUnit', 'trackCode', 'packName', 'qrcode', 'splrName', 'matnrId', 'asnId']} > <NumberField source="id" /> rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -49,7 +49,6 @@ import ImportButton from "../../components/ImportButton"; import DetailsIcon from '@mui/icons-material/Details'; import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined'; import OutOrderCreate from "./OutOrderCreate"; import AddIcon from '@mui/icons-material/Add'; import OutOrderModal from "./OutOrderModal"; import PublicIcon from '@mui/icons-material/Public'; rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
New file @@ -0,0 +1,51 @@ import React, { useState, useRef, useEffect, useMemo } from "react"; import { List, DatagridConfigurable, SearchInput, TopToolbar, Button, SelectColumnsButton, EditButton, FilterButton, CreateButton, ExportButton, BulkDeleteButton, WrapperField, Toolbar, useRecordContext, useTranslate, useNotify, useListContext, FunctionField, TextField, NumberField, DateField, BooleanField, ReferenceField, TextInput, DateTimeInput, DateInput, SelectInput, NumberInput, ReferenceInput, ReferenceArrayInput, AutocompleteInput, DeleteButton, SimpleForm, Form, SaveButton, useRefresh, useGetList, } from 'react-admin'; const OutStockPublic = (props) => { return ( <> </> ); } export default OutStockPublic; rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -161,38 +161,37 @@ throw new CoolException("单据不存在!!"); } Map<Long, List<DeliveryItem>> listMap = items.stream().collect(Collectors.groupingBy(DeliveryItem::getDeliveryId)); //获取第一个ID Long deliveryId = items.stream().findFirst().get().getDeliveryId(); Delivery delivery = deliveryService.getById(deliveryId); if (Objects.isNull(delivery)) { throw new CoolException("主单据不存在!!"); } AsnOrder order = new AsnOrder(); BeanUtils.copyProperties(delivery, order); String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, order); if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { throw new CoolException("编码规则错误:请检查 「SYS_OUT_STOCK_CODE」编码是否设置成功"); } order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) .setType(delivery.getType()) .setWkType(delivery.getWkType()) .setCode(ruleCode) .setId(null) .setUpdateBy(loginUserId) .setCreateBy(loginUserId); if (!this.save(order)) { throw new CoolException("主单保存失败!!"); } listMap.keySet().forEach(key -> { Delivery delivery1 = deliveryService.getById(key); //TODO 判断单据是否已经存在,如存在则累加修改子表,不存在才新建 Delivery delivery = deliveryService.getById(key); if (Objects.isNull(delivery)) { throw new CoolException("单据不存在!!"); } AsnOrder order = new AsnOrder(); BeanUtils.copyProperties(delivery, order); String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, order); if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { throw new CoolException("编码规则错误:请检查 「SYS_OUT_STOCK_CODE」编码是否设置成功"); } order.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) .setType(delivery.getType()) .setWkType(delivery.getWkType()) .setCode(ruleCode) .setPoId(delivery.getId()) .setId(null) .setUpdateBy(loginUserId) .setCreateBy(loginUserId) .setPoCode(delivery.getCode()); if (!this.save(order)) { throw new CoolException("主单保存失败!!"); } List<AsnOrderItem> orderItems = new ArrayList<>(); listMap.get(key).forEach(item -> { AsnOrderItem orderItem = new AsnOrderItem(); Double anfme = Math.round((item.getAnfme() - item.getWorkQty() - item.getQty()) * 10000) / 10000.0; BeanUtils.copyProperties(item, orderItem); orderItem.setId(null) .setPoCode(delivery1.getCode()) .setPoCode(order.getPoCode()) .setMaktx(item.getMaktx()) .setMatnrCode(item.getMatnrCode()) .setFieldsIndex(item.getFieldsIndex()) @@ -206,7 +205,6 @@ .setPlatOrderCode(item.getPlatOrderCode()) .setProjectCode(item.getProjectCode()) .setPlatItemId(item.getPlatItemId()) .setFieldsIndex(item.getFieldsIndex()) .setUpdateBy(loginUserId) .setCreateBy(loginUserId) .setPoDetlId(item.getId()); @@ -220,13 +218,17 @@ }); Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum(); //修改计划数量 order.setAnfme(sum).setWorkQty(0.0); if (!this.saveOrUpdate(order)) { throw new CoolException("主单数量修改失败!!"); } if (!asnOrderItemService.saveBatch(orderItems)) { throw new CoolException("明细保存失败!!"); } Short exceStatus = POExceStatus.PO_EXCE_STATUS_SECTION_DONE.val; if (delivery1.getAnfme().compareTo(sum) <= 0) { if (delivery.getAnfme().compareTo(order.getAnfme()) <= 0) { exceStatus = AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val; } @@ -236,15 +238,8 @@ .eq(Delivery::getId, key))) { throw new CoolException("主单修改失败!!"); } }); Double sum = items.stream().mapToDouble(DeliveryItem::getAnfme).sum(); //修改计划数量 order.setAnfme(sum).setWorkQty(0.0); if (!this.saveOrUpdate(order)) { throw new CoolException("主单数量修改失败!!"); } return R.ok(); }