skyouc
22 小时以前 e0f90699279803dd529fd1f41b4c3c62e57e0fcb
波次下发任务功能优化
代码优化
7个文件已修改
40 ■■■■■ 已修改文件
rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/outStock/OutOrderList.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/wave/WaveItemList.jsx 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
@@ -158,7 +158,7 @@
            </ReferenceField>,
            <DateField source="createTime" label="common.field.createTime" showTime />
            <TextField source="memo" label="common.field.memo" sortable={false} />
          </StyledDatagrid>Ï
          </StyledDatagrid>
        </List>
        <OutOrderItemCreate
          open={createDialog}
rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -115,6 +115,7 @@
const OutOrderList = (props) => {
  const translate = useTranslate();
  const refresh = useRefresh();
  const notify = useNotify();
  const [createDialog, setCreateDialog] = useState(false);
  const [manualDialog, setManualDialog] = useState(false);
rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
@@ -135,7 +135,6 @@
            if (res?.data?.code === 200) {
                setOpen(false);
                refresh();
                billReload?.current()
                resetData()
            } else {
                notify(res.data.msg);
@@ -149,7 +148,6 @@
            if (res?.data?.code === 200) {
                setOpen(false);
                refresh();
                billReload?.current()
                resetData()
            } else {
                notify(res.data.msg);
rsf-admin/src/page/orders/wave/WaveItemList.jsx
@@ -33,6 +33,7 @@
    DeleteButton,
    useGetRecordId,
    Button,
    useRefresh,
} from 'react-admin';
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
@@ -191,6 +192,7 @@
    const { data, selectedIds, onUnselectItems } = useListContext();
    const waveId = useGetRecordId();
    const notify = useNotify();
    const refresh = useRefresh()
    const startClick = async () => {
        onUnselectItems();
        const { data: { code, data, msg } } = await request.post('/wave/selects/task', { wave: waveId, waveItem: selectedIds });
@@ -200,6 +202,7 @@
        } else {
            notify(msg);
        }
        refresh()
    }
    return (
        <Button label="toolbar.publicWorking" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} variant="outlined" />
@@ -213,6 +216,6 @@
        onUnselectItems();
    }
    return (
        record?.exceStatus == 2 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
        record?.exceStatus == 1 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
    )
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -81,13 +81,12 @@
        listMap.keySet().forEach(key -> {
            Task task = new Task();
            Loc loc = locService.getById(key);
            logger.info("库位:>{}<UNK>", loc.getCode());
            logger.info("库位:>{}", loc.getCode());
            if (Objects.isNull(loc)) {
                throw new CoolException("数据错误:所选库存信息不存在!!");
            }
            if (!loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
                throw new CoolException("库位:" + loc.getCode() +  ",不处于F.在库状态,不可执行R.出库预约操作!!");
                throw new CoolException("库位:" + loc.getCode() + ",不处于F.在库状态,不可执行R.出库预约操作!!");
            }
            loc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
@@ -202,15 +201,15 @@
                        .setUpdateTime(new Date())
                        .setOrderType(OrderType.ORDER_OUT.type)
                        .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
               if (map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
                if (map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
                    taskItem.setWkType(Short.parseShort(order.getWkType()))
                            .setSourceCode(order.getCode())
                            .setSourceId(order.getId());
               } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK) || map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)) {
                   taskItem.setSource(item.getId())
                           .setSourceId(item.getLocId())
                           .setSourceCode(item.getLocCode());
               }
                } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK) || map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)) {
                    taskItem.setSource(item.getId())
                            .setSourceId(item.getLocId())
                            .setSourceCode(item.getLocCode());
                }
                taskItems.add(taskItem);
                Double qty = Math.round((item.getWorkQty() + item.getOutQty()) * 10000) / 10000.0;
@@ -274,7 +273,7 @@
        if (Objects.isNull(map.getTarLoc()) || StringUtils.isBlank(map.getTarLoc())) {
            //目标库位为空,自动获取新库位
            DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                            .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type)
                    .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type)
                    .eq(DeviceSite::getChannel, orgLoc.getChannel()), false);
            if (Objects.isNull(deviceSite)) {
                throw new CoolException("站点信息不存在!!");
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -790,7 +790,7 @@
            List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
            if (!taskItems.isEmpty()) {
                for (TaskItem item : taskItems) {
                    if (item.getOrderType().equals(OrderType.ORDER_OUT.type)) {
                    if (!Objects.isNull(item.getOrderType()) && item.getOrderType().equals(OrderType.ORDER_OUT.type)) {
                        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                        if (Objects.isNull(loc)) {
                            throw new CoolException("数据错误:库位信息不存在!!");
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -116,6 +116,13 @@
        if (items.isEmpty()) {
            throw new CoolException("波次明细不存在!!");
        }
        if (!waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
                .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val)
                .in(WaveItem::getId, waveItems))) {
            throw new CoolException("下发执行异常,请稍候重试!");
        }
        /**生成出库任务*/
        try {
            generateOutTask(items, loginUserId, waves);
@@ -123,7 +130,7 @@
            log.error("UNK", e);
            throw new CoolException(e.getMessage());
        }
        return null;
        return R.ok();
    }
    /**