rsf-admin/src/i18n/core/chineseMessages.js
@@ -21,6 +21,7 @@ remove_filter: "移除这个过滤器", remove_all_filters: "移除所有", remove: "移除", approved: "审核", save: "保存", search: "搜索", select_all_button: "全部选中", rsf-admin/src/page/orders/check/CheckOrderList.jsx
@@ -81,7 +81,7 @@ <DictionarySelect label='table.field.checkOrder.exceStatus' name="exceStatus" dictTypeCode="sys_asn_exce_status" dictTypeCode="sys_check_exce_status" alwaysOn />, ] rsf-admin/src/page/orders/check/checkDiff/CheckDiffEdit.jsx
@@ -6,8 +6,6 @@ useTranslate, TextInput, NumberInput, BooleanInput, DateInput, SelectInput, ReferenceInput, ReferenceArrayInput, @@ -20,7 +18,6 @@ useRecordContext, DeleteButton, } from 'react-admin'; import { useWatch, useFormContext } from "react-hook-form"; import { Stack, Grid, Box, Typography } from '@mui/material'; import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; import EditBaseAside from "../../../components/EditBaseAside"; @@ -72,7 +69,7 @@ label="table.field.checkDiff.orderCode" source="orderCode" parse={v => v} autoFocus readOnly /> <SelectInput label="table.field.checkDiff.checkType" @@ -81,29 +78,35 @@ { id: 0, name: '明盘' }, { id: 1, name: '暗盘' }, ]} readOnly /> <NumberInput label="table.field.checkDiff.areaId" source="areaId" readOnly /> <TextInput label="table.field.checkDiff.areaName" source="areaName" parse={v => v} readOnly /> </Stack> <Stack direction='row' gap={2}> <NumberInput label="table.field.checkDiff.anfme" source="anfme" readOnly /> <NumberInput label="table.field.checkDiff.checkQty" source="checkQty" readOnly /> <NumberInput label="table.field.checkDiff.exceStatus" source="exceStatus" readOnly /> </Stack> </Grid> rsf-admin/src/page/orders/check/checkDiff/CheckDiffList.jsx
@@ -31,6 +31,7 @@ ReferenceArrayInput, AutocompleteInput, DeleteButton, Button, } from 'react-admin'; import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; @@ -39,6 +40,9 @@ import EmptyData from "../../../components/EmptyData"; import MyCreateButton from "../../../components/MyCreateButton"; import MyExportButton from '../../../components/MyExportButton'; import ApiOutlinedIcon from '@mui/icons-material/ApiOutlined'; import BillStatusField from '../../../components/BillStatusField'; import ConfirmButton from '../../../components/ConfirmButton'; import PageDrawer from "../../../components/PageDrawer"; import MyField from "../../../components/MyField"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; @@ -66,7 +70,7 @@ <SelectInput source="checkType" label="table.field.checkDiff.checkType" choices={[ { id: 0, name: '明盘' }, { id: 1, name: '暗盘' }, { id: 1, name: '暗盘' }, ]} />, <NumberInput source="areaId" label="table.field.checkDiff.areaId" />, @@ -132,20 +136,17 @@ <TextField source="areaName" label="table.field.checkDiff.areaName" /> <NumberField source="anfme" label="table.field.checkDiff.anfme" /> <NumberField source="checkQty" label="table.field.checkDiff.checkQty" /> <NumberField source="exceStatus" label="table.field.checkDiff.exceStatus" /> <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> <TextField source="nickname" /> </ReferenceField> {/* <NumberField source="exceStatus" label="table.field.checkDiff.exceStatus" /> */} <NumberField source="updateBy¥" label="common.field.updateBy" /> <NumberField source="createBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> <TextField source="nickname" /> </ReferenceField> <DateField source="createTime" label="common.field.createTime" showTime /> <BooleanField source="statusBool" label="common.field.status" sortable={false} /> <BillStatusField cellClassName="status" source="exceStatus" label="table.field.checkOrder.exceStatus" /> <TextField source="memo" label="common.field.memo" sortable={false} /> <WrapperField cellClassName="opt" label="common.field.opt"> <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */} <CheckButton /> </WrapperField> </StyledDatagrid> </List> @@ -164,3 +165,15 @@ } export default CheckDiffList; const CheckButton = () => { const record = useRecordContext(); const handleEditClick = (btn) => { btn.stopPropagation() } return ( <ConfirmButton label={"ra.action.approved"} startIcon={<ApiOutlinedIcon />} onConfirm={handleEditClick} size={"small"} /> ) } rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiff.java
@@ -1,11 +1,18 @@ package com.vincent.rsf.server.manager.entity; import com.baomidou.mybatisplus.annotation.TableLogic; import java.text.SimpleDateFormat; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.server.manager.enums.OrderType; 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; import java.util.Date; @@ -20,8 +27,10 @@ import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.system.service.UserService; import com.vincent.rsf.server.system.entity.User; import java.io.Serializable; import java.util.Date; import java.util.Objects; @Data @Accessors(chain = true) @@ -33,14 +42,14 @@ /** * ID */ @ApiModelProperty(value= "ID") @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 盘点单 */ @ApiModelProperty(value= "盘点单") @ApiModelProperty(value = "盘点单") private String orderCode; @@ -48,95 +57,96 @@ private Long orderId; /** * 盘点类型 0: 明盘 1: 暗盘 * 盘点类型 0: 明盘 1: 暗盘 */ @ApiModelProperty(value= "盘点类型 0: 明盘 1: 暗盘 ") @ApiModelProperty(value = "盘点类型 0: 明盘 1: 暗盘 ") private Integer checkType; /** * 库区ID */ @ApiModelProperty(value= "库区ID") @ApiModelProperty(value = "库区ID") private Long areaId; /** * 库区名称 */ @ApiModelProperty(value= "库区名称") @ApiModelProperty(value = "库区名称") private String areaName; /** * 帐面库存 */ @ApiModelProperty(value= "帐面库存") @ApiModelProperty(value = "帐面库存") private Double anfme; /** * 盘点库存 */ @ApiModelProperty(value= "盘点库存") @ApiModelProperty(value = "盘点库存") private Double checkQty; /** * 执行状态 */ @ApiModelProperty(value= "执行状态") @ApiModelProperty(value = "执行状态") private Integer exceStatus; /** * 状态 1: 正常 0: 冻结 * 状态 1: 正常 0: 冻结 */ @ApiModelProperty(value= "状态 1: 正常 0: 冻结 ") @ApiModelProperty(value = "状态 1: 正常 0: 冻结 ") private Integer status; /** * 是否删除 1: 是 0: 否 * 是否删除 1: 是 0: 否 */ @ApiModelProperty(value= "是否删除 1: 是 0: 否 ") @ApiModelProperty(value = "是否删除 1: 是 0: 否 ") @TableLogic private Integer deleted; /** * 租户 */ @ApiModelProperty(value= "租户") @ApiModelProperty(value = "租户") private Integer tenantId; /** * 添加人员 */ @ApiModelProperty(value= "添加人员") @ApiModelProperty(value = "添加人员") private Long createBy; /** * 添加时间 */ @ApiModelProperty(value= "添加时间") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "添加时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 修改人员 */ @ApiModelProperty(value= "修改人员") @ApiModelProperty(value = "修改人员") private Long updateBy; /** * 修改时间 */ @ApiModelProperty(value= "修改时间") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "修改时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 备注 */ @ApiModelProperty(value= "备注") @ApiModelProperty(value = "备注") private String memo; public CheckDiff() {} public CheckDiff() { } public CheckDiff(String orderCode,Integer checkType,Long areaId,String areaName,Double anfme,Double checkQty,Integer exceStatus,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { public CheckDiff(String orderCode, Integer checkType, Long areaId, String areaName, Double anfme, Double checkQty, Integer exceStatus, Integer status, Integer deleted, Integer tenantId, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { this.orderCode = orderCode; this.checkType = checkType; this.areaId = areaId; @@ -172,21 +182,39 @@ // null // 备注 // ); public String getCheckType$(){ if (null == this.checkType){ return null; } switch (this.checkType){ public String getCheckType$() { if (null == this.checkType) { return null; } switch (this.checkType) { case 0: return "明盘"; case 1: case 1: return "暗盘"; default: return String.valueOf(this.checkType); } } public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ public String getExceStatus$() { if (Cools.isEmpty(this.exceStatus)) { return ""; } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.SYS_CHECK_DIFF_EXCE_STATUS) .eq(DictData::getValue, this.exceStatus)); if (Objects.isNull(dictData)) { return null; } return dictData.getLabel(); } public String getStatus$() { if (null == this.status) { return null; } switch (this.status) { case 1: return "正常"; case 0: @@ -196,43 +224,44 @@ } } public String getCreateBy$(){ public String getCreateBy$() { UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.createBy); if (!Cools.isEmpty(user)){ if (!Cools.isEmpty(user)) { return String.valueOf(user.getNickname()); } return null; } public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ public String getCreateTime$() { if (Cools.isEmpty(this.createTime)) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateBy$(){ public String getUpdateBy$() { UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.updateBy); if (!Cools.isEmpty(user)){ if (!Cools.isEmpty(user)) { return String.valueOf(user.getNickname()); } return null; } public String getUpdateTime$(){ if (Cools.isEmpty(this.updateTime)){ public String getUpdateTime$() { if (Cools.isEmpty(this.updateTime)) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } public Boolean getStatusBool(){ if (null == this.status){ return null; } switch (this.status){ public Boolean getStatusBool() { if (null == this.status) { return null; } switch (this.status) { case 1: return true; case 0: rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
@@ -4,6 +4,10 @@ import java.text.SimpleDateFormat; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -22,6 +26,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) @@ -108,6 +113,9 @@ */ @ApiModelProperty(value= "差异原因") private String reason; @ApiModelProperty("执行状态") private Integer exceStatus; /** * 状态 1: 正常 0: 冻结 @@ -219,6 +227,21 @@ } } public String getExceStatus$() { if (Cools.isEmpty(this.exceStatus)) { return ""; } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.SYS_CHECK_DIFF_EXCE_STATUS) .eq(DictData::getValue, this.exceStatus)); if (Objects.isNull(dictData)) { return null; } return dictData.getLabel(); } public String getCreateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.createBy); rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckDiffExceStatus.java
@@ -1,13 +1,18 @@ package com.vincent.rsf.server.manager.enums; /** * @author Ryan * @date 2025/7/19 * @description: 盘点差异单枚举 * @version 1.0 */ public enum CheckDiffExceStatus { //盘点差异单执行状态 CHECK_DIFF_EXCE_STATUS_UN("0", "未执行"), CHECK_DIFF_EXCE_STATUS_INIT("1", "初始化"), CHECK_DIFF_EXCE_STATUS_ING("2", "执行中"), CHECK_DIFF_EXCE_STATUS_DONE("3", "执行完成"), CHECK_DIFF_EXCE_STATUS_INIT("0", "初始化"), CHECK_DIFF_EXCE_STATUS_HOLD("1", "待审核"), CHECK_DIFF_EXCE_STATUS_END("2", "已审核"), ; rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CheckExceStatus.java
@@ -2,7 +2,7 @@ public enum CheckExceStatus { //盘点单执行状态 CHECK_ORDER_STATUS_UN_EXCE("0", "未执行"), CHECK_ORDER_STATUS_INIT("1", "初始化"), CHECK_ORDER_STATUS_EXCE_ING("2", "执行中"), rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
@@ -68,7 +68,7 @@ checkDiff.setAnfme(order.getAnfme()) .setCheckType(order.getCheckType()) .setOrderCode(order.getCode()) .setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_ING.val) .setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_INIT.val) .setCreateBy(loginUserId) .setCreateTime(new Date()) .setUpdateBy(loginUserId) rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -85,4 +85,6 @@ /**盘点单执行状态*/ public final static String SYS_CHECK_EXCE_STATUS = "sys_check_exce_status"; /**盘点差异单执行状态*/ public final static String SYS_CHECK_DIFF_EXCE_STATUS = "sys_check_diff_exce_status"; }