8个文件已修改
1个文件已添加
25 文件已重命名
File was renamed from rsf-admin/src/page/loc/LocCreate.jsx |
| | |
| | | Grid, |
| | | Box, |
| | | } from '@mui/material'; |
| | | import DialogCloseButton from "../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import DialogCloseButton from "../../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../../components/StatusSelectInput"; |
| | | import MemoInput from "../../components/MemoInput"; |
| | | |
| | | const LocCreate = (props) => { |
| | | const { open, setOpen } = props; |
File was renamed from rsf-admin/src/page/loc/LocEdit.jsx |
| | |
| | | import { Stack, Grid, Box, Typography } from '@mui/material'; |
| | | import * as Common from '@/utils/common'; |
| | | import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; |
| | | import EditBaseAside from "../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import EditBaseAside from "../../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../../components/EditTopToolBar"; |
| | | import MemoInput from "../../components/MemoInput"; |
| | | import StatusSelectInput from "../../components/StatusSelectInput"; |
| | | |
| | | const FormToolbar = () => { |
| | | const { getValues } = useFormContext(); |
File was renamed from rsf-admin/src/page/loc/LocList.jsx |
| | |
| | | import { styled } from '@mui/material/styles'; |
| | | import LocCreate from "./LocCreate"; |
| | | import LocPanel from "./LocPanel"; |
| | | import EmptyData from "../components/EmptyData"; |
| | | import MyCreateButton from "../components/MyCreateButton"; |
| | | import MyExportButton from '../components/MyExportButton'; |
| | | import PageDrawer from "../components/PageDrawer"; |
| | | import MyField from "../components/MyField"; |
| | | import EmptyData from "../../components/EmptyData"; |
| | | import MyCreateButton from "../../components/MyCreateButton"; |
| | | import MyExportButton from '../../components/MyExportButton'; |
| | | import PageDrawer from "../../components/PageDrawer"; |
| | | import MyField from "../../components/MyField"; |
| | | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; |
| | | import * as Common from '@/utils/common'; |
| | | |
File was renamed from rsf-admin/src/page/loc/LocPanel.jsx |
| | |
| | | useTranslate, |
| | | useRecordContext, |
| | | } from 'react-admin'; |
| | | import PanelTypography from "../components/PanelTypography"; |
| | | import PanelTypography from "../../components/PanelTypography"; |
| | | import * as Common from '@/utils/common' |
| | | |
| | | const LocPanel = () => { |
File was renamed from rsf-admin/src/page/dictData/DictDataCreate.jsx |
| | |
| | | Grid, |
| | | Box, |
| | | } from '@mui/material'; |
| | | import DialogCloseButton from "../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import DialogCloseButton from "../../../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../../../components/StatusSelectInput"; |
| | | import MemoInput from "../../../components/MemoInput"; |
| | | |
| | | const DictDataCreate = (props) => { |
| | | const { open, setOpen } = props; |
File was renamed from rsf-admin/src/page/dictData/DictDataEdit.jsx |
| | |
| | | import { Stack, Grid, Box, Typography } from '@mui/material'; |
| | | import * as Common from '@/utils/common'; |
| | | import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; |
| | | import EditBaseAside from "../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import EditBaseAside from "../../../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../../../components/EditTopToolBar"; |
| | | import MemoInput from "../../../components/MemoInput"; |
| | | import StatusSelectInput from "../../../components/StatusSelectInput"; |
| | | |
| | | const FormToolbar = () => { |
| | | const { getValues } = useFormContext(); |
File was renamed from rsf-admin/src/page/dictData/DictDataList.jsx |
| | |
| | | import { styled } from '@mui/material/styles'; |
| | | import DictDataCreate from "./DictDataCreate"; |
| | | import DictDataPanel from "./DictDataPanel"; |
| | | import EmptyData from "../components/EmptyData"; |
| | | import MyCreateButton from "../components/MyCreateButton"; |
| | | import MyExportButton from '../components/MyExportButton'; |
| | | import PageDrawer from "../components/PageDrawer"; |
| | | import MyField from "../components/MyField"; |
| | | import EmptyData from "../../../components/EmptyData"; |
| | | import MyCreateButton from "../../../components/MyCreateButton"; |
| | | import MyExportButton from '../../../components/MyExportButton'; |
| | | import PageDrawer from "../../../components/PageDrawer"; |
| | | import MyField from "../../../components/MyField"; |
| | | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; |
| | | import * as Common from '@/utils/common'; |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import CustomerTopToolBar from "../../../components/EditTopToolBar"; |
| | | |
| | | |
| | | const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ |
File was renamed from rsf-admin/src/page/dictData/DictDataPanel.jsx |
| | |
| | | useTranslate, |
| | | useRecordContext, |
| | | } from 'react-admin'; |
| | | import PanelTypography from "../components/PanelTypography"; |
| | | import PanelTypography from "../../../components/PanelTypography"; |
| | | import * as Common from '@/utils/common' |
| | | |
| | | const DictDataPanel = () => { |
File was renamed from rsf-admin/src/page/dictType/DictTypeCreate.jsx |
| | |
| | | Grid, |
| | | Box, |
| | | } from '@mui/material'; |
| | | import DialogCloseButton from "../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import DialogCloseButton from "../../../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../../../components/StatusSelectInput"; |
| | | import MemoInput from "../../../components/MemoInput"; |
| | | |
| | | const DictTypeCreate = (props) => { |
| | | const { open, setOpen } = props; |
File was renamed from rsf-admin/src/page/dictType/DictTypeEdit.jsx |
| | |
| | | import { Stack, Grid, Box, Typography } from '@mui/material'; |
| | | import * as Common from '@/utils/common'; |
| | | import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; |
| | | import EditBaseAside from "../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import EditBaseAside from "../../../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../../../components/EditTopToolBar"; |
| | | import MemoInput from "../../../components/MemoInput"; |
| | | import StatusSelectInput from "../../../components/StatusSelectInput"; |
| | | |
| | | const FormToolbar = () => { |
| | | const { getValues } = useFormContext(); |
File was renamed from rsf-admin/src/page/dictType/DictTypeList.jsx |
| | |
| | | import { styled } from '@mui/material/styles'; |
| | | import DictTypeCreate from "./DictTypeCreate"; |
| | | import DictTypePanel from "./DictTypePanel"; |
| | | import EmptyData from "../components/EmptyData"; |
| | | import MyCreateButton from "../components/MyCreateButton"; |
| | | import MyExportButton from '../components/MyExportButton'; |
| | | import PageDrawer from "../components/PageDrawer"; |
| | | import MyField from "../components/MyField"; |
| | | import EmptyData from "../../../components/EmptyData"; |
| | | import MyCreateButton from "../../../components/MyCreateButton"; |
| | | import MyExportButton from '../../../components/MyExportButton'; |
| | | import PageDrawer from "../../../components/PageDrawer"; |
| | | import MyField from "../../../components/MyField"; |
| | | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; |
| | | import * as Common from '@/utils/common'; |
| | | |
File was renamed from rsf-admin/src/page/dictType/DictTypePanel.jsx |
| | |
| | | useTranslate, |
| | | useRecordContext, |
| | | } from 'react-admin'; |
| | | import PanelTypography from "../components/PanelTypography"; |
| | | import PanelTypography from "../../../components/PanelTypography"; |
| | | import * as Common from '@/utils/common' |
| | | |
| | | const DictTypePanel = () => { |
File was renamed from rsf-admin/src/page/serialRule/SerialRuleCreate.jsx |
| | |
| | | Grid, |
| | | Box, |
| | | } from '@mui/material'; |
| | | import DialogCloseButton from "../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import DialogCloseButton from "../../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../../components/StatusSelectInput"; |
| | | import MemoInput from "../../components/MemoInput"; |
| | | |
| | | const SerialRuleCreate = (props) => { |
| | | const { open, setOpen } = props; |
File was renamed from rsf-admin/src/page/serialRule/SerialRuleEdit.jsx |
| | |
| | | import { Stack, Grid, Box, Typography } from '@mui/material'; |
| | | import * as Common from '@/utils/common'; |
| | | import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; |
| | | import EditBaseAside from "../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import EditBaseAside from "../../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../../components/EditTopToolBar"; |
| | | import MemoInput from "../../components/MemoInput"; |
| | | import StatusSelectInput from "../../components/StatusSelectInput"; |
| | | |
| | | const FormToolbar = () => { |
| | | const { getValues } = useFormContext(); |
File was renamed from rsf-admin/src/page/serialRule/SerialRuleList.jsx |
| | |
| | | import { styled } from '@mui/material/styles'; |
| | | import SerialRuleCreate from "./SerialRuleCreate"; |
| | | import SerialRulePanel from "./SerialRulePanel"; |
| | | import EmptyData from "../components/EmptyData"; |
| | | import MyCreateButton from "../components/MyCreateButton"; |
| | | import MyExportButton from '../components/MyExportButton'; |
| | | import PageDrawer from "../components/PageDrawer"; |
| | | import MyField from "../components/MyField"; |
| | | import EmptyData from "../../components/EmptyData"; |
| | | import MyCreateButton from "../../components/MyCreateButton"; |
| | | import MyExportButton from '../../components/MyExportButton'; |
| | | import PageDrawer from "../../components/PageDrawer"; |
| | | import MyField from "../../components/MyField"; |
| | | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; |
| | | import * as Common from '@/utils/common'; |
| | | |
File was renamed from rsf-admin/src/page/serialRule/SerialRulePanel.jsx |
| | |
| | | useTranslate, |
| | | useRecordContext, |
| | | } from 'react-admin'; |
| | | import PanelTypography from "../components/PanelTypography"; |
| | | import PanelTypography from "../../components/PanelTypography"; |
| | | import * as Common from '@/utils/common' |
| | | |
| | | const SerialRulePanel = () => { |
File was renamed from rsf-admin/src/page/serialRuleItem/SerialRuleItemCreate.jsx |
| | |
| | | Grid, |
| | | Box, |
| | | } from '@mui/material'; |
| | | import DialogCloseButton from "../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import DialogCloseButton from "../../components/DialogCloseButton"; |
| | | import StatusSelectInput from "../../components/StatusSelectInput"; |
| | | import MemoInput from "../../components/MemoInput"; |
| | | |
| | | const SerialRuleItemCreate = (props) => { |
| | | const { open, setOpen } = props; |
File was renamed from rsf-admin/src/page/serialRuleItem/SerialRuleItemEdit.jsx |
| | |
| | | import { Stack, Grid, Box, Typography } from '@mui/material'; |
| | | import * as Common from '@/utils/common'; |
| | | import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; |
| | | import EditBaseAside from "../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import EditBaseAside from "../../components/EditBaseAside"; |
| | | import CustomerTopToolBar from "../../components/EditTopToolBar"; |
| | | import MemoInput from "../../components/MemoInput"; |
| | | import StatusSelectInput from "../../components/StatusSelectInput"; |
| | | |
| | | const FormToolbar = () => { |
| | | const { getValues } = useFormContext(); |
File was renamed from rsf-admin/src/page/serialRuleItem/SerialRuleItemList.jsx |
| | |
| | | import { styled } from '@mui/material/styles'; |
| | | import SerialRuleItemCreate from "./SerialRuleItemCreate"; |
| | | import SerialRuleItemPanel from "./SerialRuleItemPanel"; |
| | | import EmptyData from "../components/EmptyData"; |
| | | import MyCreateButton from "../components/MyCreateButton"; |
| | | import MyExportButton from '../components/MyExportButton'; |
| | | import PageDrawer from "../components/PageDrawer"; |
| | | import MyField from "../components/MyField"; |
| | | import EmptyData from "../../components/EmptyData"; |
| | | import MyCreateButton from "../../components/MyCreateButton"; |
| | | import MyExportButton from '../../components/MyExportButton'; |
| | | import PageDrawer from "../../components/PageDrawer"; |
| | | import MyField from "../../components/MyField"; |
| | | import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; |
| | | import * as Common from '@/utils/common'; |
| | | |
File was renamed from rsf-admin/src/page/serialRuleItem/SerialRuleItemPanel.jsx |
| | |
| | | useTranslate, |
| | | useRecordContext, |
| | | } from 'react-admin'; |
| | | import PanelTypography from "../components/PanelTypography"; |
| | | import PanelTypography from "../../components/PanelTypography"; |
| | | import * as Common from '@/utils/common' |
| | | |
| | | const SerialRuleItemPanel = () => { |
| | |
| | | package com.vincent.rsf.server.api.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.api.controller.params.OrderItem; |
| | | import com.vincent.rsf.server.api.entity.enums.OrderType; |
| | | import com.vincent.rsf.server.manager.entity.PurchaseItem; |
| | | import com.vincent.rsf.server.manager.service.PurchaseItemService; |
| | |
| | | * @description |
| | | * @create 2025/3/4 16:27 |
| | | */ |
| | | @Service |
| | | public class ErpApiServiceImpl extends ServiceImpl implements ErpApiService { |
| | | @Service("erpApiService") |
| | | public class ErpApiServiceImpl implements ErpApiService { |
| | | |
| | | @Autowired |
| | | private PurchaseService purchaseService; |
New file |
| | |
| | | package com.vincent.rsf.server.common.config; |
| | | |
| | | import lombok.Data; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @version 1.0 |
| | | * @title SysStockFlowProperties |
| | | * @description |
| | | * @create 2025/3/5 17:02 |
| | | */ |
| | | @Data |
| | | @Configuration |
| | | @ConfigurationProperties(prefix = "stock") |
| | | public class SysStockFlowProperties { |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Data |
| | | @Configuration |
| | | @ConfigurationProperties(prefix = "stock.inspect") |
| | | public class InspectProperties { |
| | | /** |
| | | * 是否开启上架校验 |
| | | */ |
| | | private Boolean flagAvailable; |
| | | |
| | | /** |
| | | * 是否开启收货校验, 上架校验和收货校验,只会开启一个 |
| | | */ |
| | | private Boolean flagReceiving; |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | import com.vincent.rsf.server.manager.entity.AsnOrder; |
| | | import com.vincent.rsf.server.manager.service.AsnOrderService; |
| | | import com.vincent.rsf.server.system.controller.BaseController; |
| | | import io.swagger.annotations.Api; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | import java.util.*; |
| | | |
| | | @RestController |
| | | @Api(tags = "ASN入库通知单") |
| | | public class AsnOrderController extends BaseController { |
| | | |
| | | @Autowired |
| | |
| | | ExcelUtil.build(ExcelUtil.create(asnOrderService.list(), AsnOrder.class), response); |
| | | } |
| | | |
| | | @PostMapping("/asnOrder/inspect") |
| | | @PreAuthorize("hasAuthority('manager:asnOrder:list')") |
| | | public R inspect(@RequestBody List<AsnOrder> orders) { |
| | | |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | * 单据来源 |
| | | */ |
| | | @ApiModelProperty(value= "单据来源") |
| | | private String from; |
| | | private String source; |
| | | |
| | | /** |
| | | * 预计到达时间 |
| | |
| | | |
| | | public Purchase() {} |
| | | |
| | | public Purchase(String code,String type,String from,Date preArr,Double anfme,Double qty,Double workQty,String channel,String erpCode,Date startTime,Date endTime,String project,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | public Purchase(String code,String type,String source,Date preArr,Double anfme,Double qty,Double workQty,String channel,String erpCode,Date startTime,Date endTime,String project,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { |
| | | this.code = code; |
| | | this.type = type; |
| | | this.from = from; |
| | | this.source = source; |
| | | this.preArr = preArr; |
| | | this.anfme = anfme; |
| | | this.qty = qty; |
| | |
| | | import com.vincent.rsf.server.common.utils.DateUtils; |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.service.*; |
| | | import com.vincent.rsf.server.system.constant.SerialRuleCode; |
| | | import com.vincent.rsf.server.system.utils.SerialRuleUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | throw new CoolException("子列表数据为空,请查询PO单是否正确录入!!"); |
| | | } |
| | | AsnOrder order = new AsnOrder(); |
| | | //根据编码规则生成ASN单号 |
| | | String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, purchase); |
| | | order.setAnfme(purchase.getAnfme()) |
| | | .setCode(code) |
| | | .setArrTime(purchase.getPreArr()) |
| | | .setQty(purchase.getQty()) |
| | | .setPoId(purchase.getId()) |
| | |
| | | */ |
| | | public class SerialRuleCode { |
| | | |
| | | /** |
| | | * 系统PO单同步编码规则 |
| | | */ |
| | | public final static String PURCHASE_CODE = "sys_purchase_code"; |
| | | |
| | | /** |
| | | * ASN通知单生成编码规则 |
| | | */ |
| | | public final static String SYS_ASN_ORDER = "sys_ans_order"; |
| | | } |
| | |
| | | .getOne(new LambdaQueryWrapper<SerialRule>() |
| | | .eq(SerialRule::getCode, code)); |
| | | if (Objects.isNull(serialRule)) { |
| | | throw new CoolException("采购编码规则不存在!!"); |
| | | throw new CoolException("当前业务:" + code + ",编码规则不存在!!"); |
| | | } |
| | | SerialRuleItemService serialRuleItemService = SpringUtils.getBean(SerialRuleItemService.class); |
| | | |
| | |
| | | password: xltys1995 |
| | | port: 6379 |
| | | timeout: 5000 |
| | | index: 15 |
| | | index: 15 |
| | | |
| | | stock: |
| | | flagPrinter: false |
| | | inspect: |
| | | flagAvailable: true |
| | | flagReceiving: false |
| | |
| | | password: xltys1995 |
| | | port: 6379 |
| | | timeout: 5000 |
| | | index: 11 |
| | | index: 11 |
| | | |
| | | stock: |
| | | flagAvailable: true |