rsf-admin/src/page/orders/outStock/OutStockPublic.jsx
@@ -36,16 +36,14 @@ SimpleForm, required, Form, SaveButton, useRefresh, useGetList, useGetOne, } from 'react-admin'; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting'; import { styled } from '@mui/material/styles'; import { DataGrid } from '@mui/x-data-grid'; import request from '@/utils/request'; import DictSelect from "../../components/DictSelect"; import ConfirmationNumberOutlinedIcon from '@mui/icons-material/ConfirmationNumberOutlined'; import CloseSharpIcon from '@mui/icons-material/CloseSharp'; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -54,16 +52,19 @@ '& .RaDatagrid-row': { cursor: 'auto' }, '& .column-maktx': { width: 200 } })); const OutStockPublic = (props) => { const { record, open } = props; const notify = useNotify(); const translate = useTranslate(); const [formData, setFormData] = useState({ orderId: record?.id }); const translate = useTranslate(); useEffect(() => { getWaveRule() }, [formData, open]) @@ -72,7 +73,7 @@ if (formData.waveId == null && formData.waveId == undefined) { return } const res = await request.post('/outStock/order/getOutTaskItems', {...formData}); const res = await request.post('/outStock/order/getOutTaskItems', { ...formData }); if (res?.data?.code === 200) { setRows(res.data.data.records) } else { @@ -127,7 +128,9 @@ empty={false} filter={{ asnId: record?.id, deleted: 0 }} sort={{ field: "create_time", order: "desc" }} actions={false} actions={( <SelectColumnsButton preferenceKey='outStock' /> )} perPage={DEFAULT_ITEM_PAGE_SIZE} > <LinearProgress @@ -137,7 +140,7 @@ preferenceKey='outStockItem' bulkActionButtons={false} rowClick={false} omit={['id', 'splrName', 'qty', 'poCode']} omit={['id', 'splrName', 'qty', 'poCode', 'workQty']} > <NumberField source="id" /> <TextField source="asnCode" label="table.field.outStockItem.asnCode" /> @@ -170,6 +173,10 @@ disableRowSelectionOnClick /> </Box> <Box sx={{ textAlign: 'center' }}> <Button label="toolbar.close" variant="outlined" size="medium" startIcon={<CloseSharpIcon />} sx={{ margin: '3.5em' }} /> <Button label="toolbar.confirm" variant="contained" size="medium" startIcon={<ConfirmationNumberOutlinedIcon />} /> </Box> </Card> </Grid> </Grid> rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java
@@ -4,12 +4,14 @@ import com.vincent.rsf.server.manager.utils.Synchro; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Delegate; import java.util.List; @EqualsAndHashCode(callSuper = true) @Data public class OrderOutItemDto extends LocItem { @Data public class OrderOutItemDto { @Delegate private LocItem locItem; private List<staListDto> staNos; rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveRuleType.java
New file @@ -0,0 +1,17 @@ package com.vincent.rsf.server.manager.enums; public enum WaveRuleType { Efficiency_First("1","效率优先"), First_In_First_Out("2","先进先出") ; public Integer type; public String desc; WaveRuleType(String type, String desc) { this.type = Integer.parseInt(type); this.desc = desc; } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -28,6 +28,7 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import com.vincent.rsf.server.manager.enums.WaveRuleType; /** * @author Ryan @@ -410,10 +411,10 @@ throw new CoolException("未找到当前策略"); } List<OrderOutItemDto> locItems = null; switch (waveRule.getType()) { case 1: locItems = efficiencyFirst(param.getOrderId()); break; if (WaveRuleType.Efficiency_First.type.equals(waveRule.getType())) { locItems = efficiencyFirst(param.getOrderId()); } else if (WaveRuleType.First_In_First_Out.type.equals(waveRule.getType())) { } return R.ok(locItems); } @@ -421,7 +422,7 @@ private List<LocItem> getEfficiencyFirstItemList(AsnOrderItem asnOrderItem){ QueryWrapper<LocItem> locItemQueryWrapper = new QueryWrapper<>(); locItemQueryWrapper.eq("matnr_code", asnOrderItem.getMatnrCode()); locItemQueryWrapper.eq("batch", asnOrderItem.getBatch()); locItemQueryWrapper.eq("batch", asnOrderItem.getSplrBatch()); String applySql = String.format( "EXISTS (SELECT 1 FROM man_loc ml " + "WHERE ml.use_status = '%s'" + @@ -431,9 +432,7 @@ ); locItemQueryWrapper.apply(applySql); List<LocItem> locItems = locItemService.list(locItemQueryWrapper); locItems.sort((s1,s2)->{ return LocUtils.isShallowLoc(s1.getLocCode())?1:0; }); locItems.sort((s1,s2)-> LocUtils.isShallowLoc(s1.getLocCode())?-1:0); return locItems; }