| | |
| | | }; |
| | | |
| | | const handleClose = (value) => { |
| | | console.log(value); |
| | | setDialog(false); |
| | | setSelectedValue(value); |
| | | if (selectedIds.length == 0) { |
| | | if (leftSelectedIds.length == 0) { |
| | | const newRows = rows.map(item => { |
| | | return { |
| | | ...item, |
| | |
| | | setRows(newRows); |
| | | } else { |
| | | const newRows = rows.map(item => { |
| | | return selectedIds.includes(item?.id) ? { |
| | | return leftSelectedIds.includes(item?.id) ? { |
| | | ...item, |
| | | siteNo: value?.site |
| | | } : item |
| | |
| | | |
| | | let params = records.filter(record => record?.items.length > 0); |
| | | |
| | | const { data: { code, data, msg } } = await request.post('/check/generate/tasks', params); |
| | | if (code == 200) { |
| | | refresh(); |
| | | redirect("/task") |
| | | |
| | | |
| | | // const { data: { code, data, msg } } = await request.post('/check/generate/tasks', params); |
| | | // if (code == 200) { |
| | | // refresh(); |
| | | // redirect("/task") |
| | | // setOpen(false) |
| | | // } else { |
| | | // notify(msg); |
| | | // } |
| | | setOpen(false) |
| | | } else { |
| | | notify(msg); |
| | | } |
| | | } |
| | | return ( |
| | | <ConfirmButton |
| | |
| | | |
| | | import { Box, Card, Grid, LinearProgress, Select, MenuItem, ListItemText, TextField } from "@mui/material"; |
| | | import { DataGrid, useGridApiContext, GridActionsCellItem, useGridApiRef } from '@mui/x-data-grid'; |
| | | import React, { useState, useRef, useEffect, useMemo } from "react"; |
| | | import QueryStatsIcon from '@mui/icons-material/QueryStats'; |
| | | import request from '@/utils/request'; |
| | | import { DataGrid, useGridApiContext, GridActionsCellItem, useGridApiRef } from '@mui/x-data-grid'; |
| | | import { |
| | | List, |
| | | Button, |
| | |
| | | ) |
| | | }, |
| | | { |
| | | field: 'siteNo', |
| | | field: 'site', |
| | | headerName: '出库口', |
| | | width: 90, |
| | | type: 'singleSelect', |
| | | editable: true, |
| | | editable: false, |
| | | renderCell: (params) => ( |
| | | <OutStockSiteNo value={params.value} /> |
| | | ), |
| | |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | private Boolean checkWaveComplete(TaskItem taskItem) { |
| | |
| | | @Transactional(timeout = 60, rollbackFor = Exception.class) |
| | | public R syncCheckDiffs(SyncCheckDiffParams syncParams) { |
| | | List<CheckDiff> diffs = checkDiffService.list(new LambdaQueryWrapper<CheckDiff>() |
| | | .eq(CheckDiff::getExceStatus, CheckExceStatus.CHECK_ORDER_STATUS_EXCE_DONE.val) |
| | | .eq(CheckDiff::getExceStatus, CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val) |
| | | .in(CheckDiff::getOrderCode, syncParams.getDiffCode())); |
| | | if (diffs.isEmpty()) { |
| | | return R.ok(); |
| | | } |
| | | List<CheckDiffDto> dtos = new ArrayList<>(); |
| | | diffs.forEach(check -> { |
| | | CheckDiffDto dto = new CheckDiffDto(); |
| | | BeanUtils.copyProperties(check, dto); |
| | | CheckDiffDto checkDto = new CheckDiffDto(); |
| | | CheckDiff checkDiff = new CheckDiff(); |
| | | BeanUtils.copyProperties(check, checkDiff); |
| | | List<CheckDiffItem> items = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getCheckId, check.getId())); |
| | | dto.setItems(items); |
| | | dtos.add(dto); |
| | | checkDto.setItems(items) |
| | | .setCheckDiff(checkDiff); |
| | | dtos.add(checkDto); |
| | | }); |
| | | |
| | | return R.ok().add(dtos); |
| | |
| | | import com.vincent.rsf.server.common.domain.PageParam; |
| | | import com.vincent.rsf.server.manager.entity.CheckDiff; |
| | | import com.vincent.rsf.server.manager.entity.CheckDiffItem; |
| | | import com.vincent.rsf.server.manager.entity.WkOrder; |
| | | import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus; |
| | | import com.vincent.rsf.server.manager.enums.CheckExceStatus; |
| | | import com.vincent.rsf.server.manager.service.CheckDiffItemService; |
| | | import com.vincent.rsf.server.manager.service.CheckDiffService; |
| | | import com.vincent.rsf.server.manager.service.CheckOrderService; |
| | | import com.vincent.rsf.server.manager.service.impl.CheckDiffServiceImpl; |
| | | import com.vincent.rsf.server.system.controller.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private CheckDiffItemService checkDiffItemService; |
| | | @Autowired |
| | | private CheckDiffService checkDiffService; |
| | | @Autowired |
| | | private CheckOrderService checkOrderService; |
| | | |
| | | @PreAuthorize("hasAuthority('manager:checkDiff:list')") |
| | | @PostMapping("/checkDiffItem/page") |
| | |
| | | .set(CheckDiff::getExceStatus, CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val))) { |
| | | throw new CoolException("盘点单状态更新失败!!"); |
| | | } |
| | | |
| | | if (!checkOrderService.update(new LambdaUpdateWrapper<WkOrder>().eq(WkOrder::getId, checkDiffItem.getCheckId()) |
| | | .set(WkOrder::getExceStatus, CheckExceStatus.CHECK_ORDER_STATUS_EXCE_DONE.val))) { |
| | | throw new CoolException("盘点单执行状态修改失败!!"); |
| | | } |
| | | |
| | | } else { |
| | | if (!checkDiffService.update(new LambdaUpdateWrapper<CheckDiff>() |
| | | .eq(CheckDiff::getId, checkDiffItem.getCheckId()) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | return R.ok("Update Success").add(checkDiffItem); |
| | | } |
| | | |
| | |
| | | import com.vincent.rsf.server.manager.entity.LocItem; |
| | | import com.vincent.rsf.server.manager.utils.Synchro; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | | import lombok.experimental.Delegate; |
| | | |
| | |
| | | |
| | | @ApiModelProperty("出站口") |
| | | @TableField(exist = false) |
| | | private String site; |
| | | private String siteNo; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | // LocItem locItem = new LocItem( |
| | | // null, // 主单ID |
| | | // null, // 主单IDs |
| | | // null, // 单据ID |
| | | // null, // 单据类型 |
| | | // null, // 订单明细id |
| | |
| | | throw new CoolException("库口不为空!!"); |
| | | } |
| | | locItems.forEach(locItem -> { |
| | | locItem.setSite(deviceSite.getSite()); |
| | | locItem.setSiteNo(deviceSite.getSite()); |
| | | }); |
| | | } |
| | | return R.ok().add(locItems); |
File was renamed from rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocPreviewServiceImpl.java |
| | |
| | | package com.vincent.rsf.server.manager.service; |
| | | package com.vincent.rsf.server.manager.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.mapper.LocMapper; |
| | | import com.vincent.rsf.server.manager.mapper.LocTypeRelaMapper; |
| | | import com.vincent.rsf.server.manager.service.*; |
| | | import com.vincent.rsf.server.manager.utils.Shelves; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | | } else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_ORDER_TYPE.val) |
| | | || task.getResource().equals(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val)) { |
| | | } else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_ORDER_TYPE.val)) { |
| | | WkOrderItem orderItem = asnOrderItemService.getById(key); |
| | | if (Objects.isNull(orderItem)) { |
| | | throw new CoolException("单据明细不存在!!"); |
| | | } |
| | | try { |
| | | saveOutStockItem(maps.get(key), orderItem, null, null, loginUserId); |
| | | saveOutStockItem(maps.get(key), orderItem, loginUserId); |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | | } else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val)) { |
| | | WkOrderItem orderItem = asnOrderItemService.getById(key); |
| | | if (Objects.isNull(orderItem)) { |
| | | throw new CoolException("单据明细不存在!!"); |
| | | } |
| | | try { |
| | | saveOutStockItem(maps.get(key), null, null, orderItem, loginUserId); |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | |
| | | * @version 1.0 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveOutStockItem(List<TaskItem> taskItems, CheckDiffItem diffItem, Long loginUserId) { |
| | | public void saveOutStockItem(List<TaskItem> taskItems, WkOrderItem diffItem, Long loginUserId) { |
| | | try { |
| | | saveOutStockItem(taskItems, null, null, diffItem, loginUserId); |
| | | } catch (Exception e) { |
| | |
| | | * @version 1.0 |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveOutStockItem(List<TaskItem> taskItems, WkOrderItem orderItem, WaveItem waveItem, CheckDiffItem diffItem, Long loginUserId) throws Exception { |
| | | public void saveOutStockItem(List<TaskItem> taskItems, WkOrderItem orderItem, WaveItem waveItem, WkOrderItem diffItem, Long loginUserId) throws Exception { |
| | | Stock stock = new Stock(); |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null); |
| | | if (StringUtils.isBlank(ruleCode)) { |
| | |
| | | # url: jdbc:mysql://47.76.147.249:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai |
| | | # username: rsf |
| | | username: root |
| | | url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai |
| | | url: jdbc:mysql://192.168.4.151:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai |
| | | password: 34821015 |
| | | type: com.alibaba.druid.pool.DruidDataSource |
| | | druid: |