From 687e4da4b6fb9147b12eb0cd5072e1dda02abc00 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 19 六月 2025 16:11:44 +0800 Subject: [PATCH] no message --- rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java | 19 ++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java | 10 ++ rsf-admin/src/page/orders/wave/WaveItemList.jsx | 44 ++++++----- rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java | 5 + rsf-admin/src/page/orders/wave/WaveList.jsx | 8 - rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java | 66 ++++++++++++--- rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java | 28 +++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java | 10 ++ 8 files changed, 149 insertions(+), 41 deletions(-) diff --git a/rsf-admin/src/page/orders/wave/WaveItemList.jsx b/rsf-admin/src/page/orders/wave/WaveItemList.jsx index 99ee024..ea1c70f 100644 --- a/rsf-admin/src/page/orders/wave/WaveItemList.jsx +++ b/rsf-admin/src/page/orders/wave/WaveItemList.jsx @@ -34,20 +34,16 @@ useGetRecordId, Button, } from 'react-admin'; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; +import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline'; +import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined'; import { Box, Typography, Card, Stack } from '@mui/material'; +import ContentCreate from '@mui/icons-material/Create'; +import PageDrawer from "../../components/PageDrawer"; import { styled } from '@mui/material/styles'; import WaveItemCreate from "./WaveItemCreate"; -import EmptyData from "../../components/EmptyData"; -import MyCreateButton from "../../components/MyCreateButton"; -import MyExportButton from '../../components/MyExportButton'; -import PageDrawer from "../../components/PageDrawer"; import WaveItemEdit from "./WaveItemEdit"; -import MyField from "../../components/MyField"; -import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; -import * as Common from '@/utils/common'; -import ContentCreate from '@mui/icons-material/Create'; -import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined'; -import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline'; + const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { height: '.9em' @@ -58,7 +54,7 @@ '& .column-name': { }, '& .opt': { - width: 200 + width: 140 }, })); @@ -126,7 +122,6 @@ bulkActionButtons={ <> <BulkStartButton /> - <BulkPauseButton /> </> } rowClick={(id, resource, record) => false} @@ -153,6 +148,9 @@ <DateField source="createTime" label="common.field.createTime" showTime /> <BooleanField source="statusBool" label="common.field.status" sortable={false} /> <TextField source="memo" label="common.field.memo" sortable={false} /> + <WrapperField cellClassName="opt" label="common.field.opt"> + <BulkPauseButton /> + </WrapperField> </StyledDatagrid> </List> <WaveItemEdit @@ -185,28 +183,34 @@ return ( <Button label="ra.action.edit" onClick={editClick} startIcon={<ContentCreate />} /> ) - } const BulkStartButton = () => { const { data, selectedIds, onUnselectItems } = useListContext(); - - const startClick = () => { - onUnselectItems() + const waveId = useGetRecordId(); + const startClick = async () => { + onUnselectItems(); + const { data: { code, data, msg } } = await request.post('/wave/selects/task', { wave: waveId, waveItem: selectedIds }); + if (code === 200) { + notify(msg); + setAutoExce(false) + } else { + notify(msg); + } } return ( - <Button label="toolbar.start" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} variant="outlined" /> + <Button label="toolbar.publicWorking" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} variant="outlined" /> ) } const BulkPauseButton = () => { const { data, selectedIds, onUnselectItems } = useListContext(); - + const record = useRecordContext(); const pauseClick = () => { - onUnselectItems() + onUnselectItems(); } return ( - <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} variant="outlined" /> + record?.exceStatus == 2 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></> ) } \ No newline at end of file diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx index 7630ae4..f8576d0 100644 --- a/rsf-admin/src/page/orders/wave/WaveList.jsx +++ b/rsf-admin/src/page/orders/wave/WaveList.jsx @@ -95,18 +95,14 @@ const [drawerVal, setDrawerVal] = useState(false); useEffect(() => { - console.log('-------->'); getConfig() }, []) const getConfig = async () => { const { data: { code, data, msg } } = await request.get('/config/flag/' + DEFAULT_WAVE_AUTO_EXCE); if (code === 200) { - setAutoExce(data?.flag) - notify(msg); - } else { - notify(msg); - } + setAutoExce(JSON.parse(data?.val)) + } } return ( diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java index 7c95b75..14d46fe 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java @@ -130,6 +130,16 @@ return waveService.publicTask(map, getLoginUserId()); } + @PreAuthorize("hasAuthority('manager:wave:update')") + @ApiOperation("閫夋嫨鏄庣粏涓嬪彂浠诲姟") + @PostMapping("/wave/selects/task") + public R waveToTask(@RequestBody Map<String, Object> map) { + if (Cools.isEmpty(map) || Cools.isEmpty(map.get("wave"))) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return waveService.waveToTask(map, getLoginUserId()); + } + @PreAuthorize("hasAuthority('manager:wave:list')") @ApiOperation("娉㈡鍑哄簱浠诲姟棰勮") @PostMapping("/wave/locs/preview/page") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java index d0194e9..971ec72 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaveItem.java @@ -5,7 +5,11 @@ import java.text.SimpleDateFormat; import java.util.Date; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.annotation.JsonFormat; +import com.vincent.rsf.server.system.constant.DictTypeCode; +import com.vincent.rsf.server.system.entity.DictData; +import com.vincent.rsf.server.system.service.DictDataService; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; @@ -21,6 +25,7 @@ import com.vincent.rsf.server.system.entity.User; import java.io.Serializable; import java.util.Date; +import java.util.Objects; @Data @Accessors(chain = true) @@ -259,6 +264,20 @@ // null // 澶囨敞 // ); + public String getExceStatus$(){ + if (Cools.isEmpty(this.exceStatus)) { + return null; + } + DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); + DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>() + .eq(DictData::getDictTypeCode, DictTypeCode.SYS_WAVE_EXCE_STATUS) + .eq(DictData::getValue, this.exceStatus)); + if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) { + return null; + } + return dictDatas.getValue() + "." + dictDatas.getLabel(); + } + public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java new file mode 100644 index 0000000..eeff475 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/WaveItemExceStatus.java @@ -0,0 +1,28 @@ +package com.vincent.rsf.server.manager.enums; + + +/** +* @author Ryan +* @description 娉㈡鏄庣粏鎵ц鐘舵�� +* @param +* @return +* @time 2025/6/19 14:18 +*/ +public enum WaveItemExceStatus { + + //娉㈡鎵ц鐘舵�� + WAVE_ITEM_EXCE_STATUS_UN("0", "鏈墽琛�"), + WAVE_EXCE_STATUS_ING("1", "鎵ц涓�"), + WAVE_EXCE_STATUS_SEED("2", "宸蹭笅鍙�"), + WAVE_EXCE_STATUS_DONE("3", "瀹屾垚"), + ; + + WaveExceStatus(String val, String desc) { + this.val = Short.parseShort(val); + this.desc = desc; + } + + public Short val; + + public String desc; +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java index 55a559b..c6afb77 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java @@ -37,4 +37,14 @@ * @time 2025/6/17 10:03 */ R cancelWave(List<Long> ids); + + /** + * @param + * @param loginUserId + * @return + * @author Ryan + * @description 閫夋嫨鏄庣粏涓嬪彂浠诲姟 + * @time 2025/4/25 16:24 + */ + R waveToTask(Map<String, Object> map, Long loginUserId); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java index 97f2276..dc7c842 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java @@ -1,5 +1,6 @@ package com.vincent.rsf.server.manager.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -61,14 +62,58 @@ if (Objects.isNull(itemParams) || itemParams.isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - List<WaveItem> items = JSONArray.parseArray(JSONArray.toJSONString(itemParams), WaveItem.class); String waveId = map.get("wave").toString(); Wave waves = this.getById(Long.parseLong(waveId)); if (Objects.isNull(waves)) { throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦紒锛�"); } - List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>().eq(WaveItem::getWaveId, waves.getId())); + List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>() + .eq(WaveItem::getWaveId, waves.getId()) + .apply("anfme > work_qty")); if (waveItems.isEmpty()) { + throw new CoolException("娉㈡鏄庣粏涓嶅瓨鍦紒锛�"); + } + /**鐢熸垚鍑哄簱浠诲姟*/ + try { + generateOutTask(waveItems, loginUserId, waves); + } catch (Exception e) { + log.error(e.getMessage()); + throw new CoolException("鍑哄簱浠诲姟鐢熸垚澶辫触锛侊紒锛�"); + } + List<Long> orderIds = waveItems.stream().map(WaveItem::getOrderId).collect(Collectors.toList()); + /**淇敼鍑哄簱鍗曠姸鎬�*/ + if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>() + .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WORKING.val) + .in(AsnOrder::getId, orderIds))) { + throw new CoolException("鍑哄簱鍗曟嵁鐘舵�佷慨鏀瑰け璐ワ紒锛�"); + } + return R.ok(); + } + + + /** + * 閫夋嫨娉㈡鏄庣粏涓嬪彂浠诲姟 + * @param map + * @param loginUserId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R waveToTask(Map<String, Object> map, Long loginUserId) { + if (Objects.isNull(map.get("waveItem"))) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + String waveId = map.get("wave").toString(); + Wave waves = this.getById(Long.parseLong(waveId)); + if (Objects.isNull(waves)) { + throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦紒锛�"); + } + List<Long> waveItems = JSONArray.parseArray(JSON.toJSONString(map.get("waveItem")), Long.class); + if (waveItems.isEmpty()) { + throw new CoolException("娉㈡鏄庣粏涓嶈兘涓虹┖锛侊紒"); + } + List<WaveItem> items = waveItemService.listByIds(waveItems); + if (items.isEmpty()) { throw new CoolException("娉㈡鏄庣粏涓嶅瓨鍦紒锛�"); } /**鐢熸垚鍑哄簱浠诲姟*/ @@ -78,18 +123,7 @@ log.error(e.getMessage()); throw new CoolException("鍑哄簱浠诲姟鐢熸垚澶辫触锛侊紒锛�"); } - //TODO 1. 鏍规嵁娉㈡鏄庣粏鐢熸垚鍑哄簱浠诲姟 - // 2. 鏍规嵁鐗╂枡SKU瀵绘壘绗﹀悎鐗╂枡搴撲綅 {1. 鏍规嵁鐗╂枡缂栫爜锛屾壒娆★紝鍔ㄦ�佸瓧娈� 鏌ヨ绗﹀悎鐨勫簱浣嶏紝鍐嶆牴鎹簱浣嶄腑鐗╂枡鐨勬暟閲忛�夋嫨鏈�閫傚悎鐨勫簱浣� 2. 鍒ゆ柇褰撳墠璁㈠崟鏄叏鎷栧嚭搴撹繕鏄嫞鏂欏叆搴搣 - // 3. 淇敼涓诲崟銆佹尝娆℃墽琛屾暟閲� - // 4. 鍒ゆ柇鍏ㄤ粨鍑哄簱鎴栨嫞鏂欏嚭搴� - List<Long> orderIds = waveItems.stream().map(WaveItem::getOrderId).collect(Collectors.toList()); - /**淇敼鍑哄簱鍗曠姸鎬�*/ - if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>() - .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WORKING.val) - .in(AsnOrder::getId, orderIds))) { - throw new CoolException("鍑哄簱鍗曟嵁鐘舵�佷慨鏀瑰け璐ワ紒锛�"); - } - return R.ok(); + return null; } /** @@ -113,6 +147,7 @@ } List<Long> list = locItems.stream().map(LocItem::getLocId).collect(Collectors.toList()); /**鏍规嵁渚涘簲鍟嗘壒娆★紝鐗╂枡鐮侊紝 鍔ㄦ�佸瓧娈垫煡璇㈡寚瀹氱殑鐗╂枡搴撳瓨淇℃伅*/ + //TODO 杩欓噷闇�瑕佽鏍规嵁娉㈡瑙勫垯鏌ユ壘搴撳瓨淇℃伅 List<LocItem> items = locItemService.list(new LambdaQueryWrapper<LocItem>() .eq(LocItem::getSplrBatch, param.getSplrBatch()) .in(LocItem::getLocId, list) @@ -141,7 +176,7 @@ List<LocItem> locItems = listMap.get(key); LocItem item1 = locItems.stream().findFirst().get(); WaveItem waveItem = waveItemService.getById(item1.getSource()); - if (null == waveItem || Objects.isNull(waveItem)) { + if (Objects.isNull(waveItem)) { throw new CoolException("鏁版嵁閿欒锛氭尝娆℃槑缁嗕笉瀛樺湪锛侊紒"); } //TODO 褰撳墠浠诲姟瀹屾垚鍚庯紝閫氳繃瀹氭椂浜嬩欢鍒ゆ柇鏄叏鐩樺嚭搴擄紝杩樻槸鎷f枡鍐嶅叆搴� @@ -194,6 +229,7 @@ taskItems.forEach(item -> { boolean update = waveItemService.update(new LambdaUpdateWrapper<WaveItem>() .eq(WaveItem::getId, item.getSource()) + .set(WaveItem::getExceStatus, AsnExceStatus) .set(WaveItem::getWorkQty, item.getAnfme())); if (!update) { throw new CoolException("娉㈡鎵ц鏁伴噺淇敼澶辫触锛侊紒"); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java index 3fd143e..135674c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java @@ -70,4 +70,9 @@ */ public final static String SYS_WAVE_RULE_CODE = "sys_wave_rule_code"; + /** + * 娉㈡涓嬪彂鎵ц鐘舵�� + */ + public final static String SYS_WAVE_EXCE_STATUS = "sys_wave_exce_status"; + } -- Gitblit v1.9.1