skyouc
昨天 5264cf0915ee9901cb9520fdcc6b8cdd5ecd4837
库存调整功能界面优化
库存调整接口功能开发
9个文件已修改
2个文件已添加
204 ■■■■■ 已修改文件
rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/system/dept/DeptList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncReviseItems.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/stockManage/locRevise/LocReviseCreate.jsx
@@ -176,7 +176,7 @@
                                    defaultValue="1"
                                    source="type"
                                    parse={v => v}
                                    label={translate("table.field.transfer.type")}
                                    label={translate("table.field.locRevise.type")}
                                />
                            </Grid>
                            <Grid item md={2}>
rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx
@@ -66,7 +66,8 @@
    <SelectInput source="type" label="table.field.locRevise.type"
        choices={[
            { id: 0, name: ' 库存调整' },
            { id: 2, name: ' 盘点调整' },
            { id: 1, name: ' 盘点调整' },
            { id: 2, name: ' 其它调整' },
        ]}
    />,
    <NumberInput source="anfme" label="table.field.locRevise.anfme" />,
@@ -133,11 +134,11 @@
                    <NumberField source="id" />
                    <TextField source="code" label="table.field.locRevise.code" />
                    <TextField source="type$" label="table.field.locRevise.type" sortable={false} />
                    <NumberField source="anfme" label="table.field.locRevise.anfme" />
                    <NumberField source="reviseQty" label="table.field.locRevise.reviseQty" />
                    <TextField source="exceStatus$" label="table.field.locRevise.exceStatus" sortable={false} />
                    {/* <NumberField source="anfme" label="table.field.locRevise.anfme" />
                    <NumberField source="reviseQty" label="table.field.locRevise.reviseQty" /> */}
                    <NumberField source="areaId" label="table.field.locRevise.areaId" />
                    <TextField source="areaName" label="table.field.locRevise.areaName" />
                    <TextField source="exceStatus$" label="table.field.locRevise.exceStatus" sortable={false} />
                    <TextField source="updateBy$" label="common.field.updateBy" />
                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                    <TextField source="createBy$" label="common.field.createBy" />
@@ -165,7 +166,6 @@
    )
}
//完成单据
const CompleteButton = () => {
    const record = useRecordContext();
@@ -182,9 +182,8 @@
    }
    return (
        record.exceStatus == 1 ? <ConfirmButton label={"toolbar.complete"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} /> : <></>
        record.exceStatus == 1 ? <ConfirmButton label={"toolbar.confirmTransfer"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} size="small" /> : <></>
    )
}
rsf-admin/src/page/stockManage/locRevise/ReviseLogItemList.jsx
@@ -102,7 +102,7 @@
                    <TextField source="fieldsIndex" label="table.field.locItem.fieldsIndex" />
                    <TextField source="updateBy$" label="common.field.updateBy" />
                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                    <TextField source="createBy" label="common.field.createBy" />
                    <TextField source="createBy$" label="common.field.createBy" />
                    <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} />
rsf-admin/src/page/system/dept/DeptList.jsx
@@ -107,7 +107,7 @@
                    {row.children && (
                        <IconButton
                            aria-label="expand row"
                            size="small"
                            size='small'
                            onClick={() => toggleNode(row.id)}
                        >
                            {isOpen ? <KeyboardArrowDownIcon /> : <KeyboardArrowRightIcon />}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
@@ -3,11 +3,13 @@
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.controller.erp.params.OrderParams;
import com.vincent.rsf.server.api.controller.erp.params.SyncLocReviseParams;
import com.vincent.rsf.server.api.controller.erp.params.SyncOrderParams;
import com.vincent.rsf.server.api.controller.erp.params.SyncTransferParams;
import com.vincent.rsf.server.api.service.ReceiveMsgService;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
import com.vincent.rsf.server.manager.enums.OrderType;
import com.vincent.rsf.server.system.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -115,4 +117,63 @@
        return receiveMsgService.syncTransfer(transferParams);
    }
    /**
     * @author Ryan
     * @date 2025/8/19
     * @description: 库存调整单同步
     * @version 1.0
     */
    @ApiOperation("库存调整单同步")
    @PostMapping("/sync/revises")
    public R syncRevise(@RequestBody SyncLocReviseParams reviseParams) {
        if (Objects.isNull(reviseParams)) {
            return R.error("参数不能为空!!");
        }
        return receiveMsgService.syncLocRevise(reviseParams);
    }
    /**
     * @author Ryan
     * @date 2025/8/19
     * @description: 库存调整单同步
     * @version 1.0
     */
    @ApiOperation("质检单上报")
    @PostMapping("/sync/qlyInspect")
    public R syncQlyReport(@RequestBody List<OrderParams> orders) {
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/19
     * @description: 单据修改
     * @version 1.0
     */
    @ApiOperation("单据修改")
    @PostMapping("/sync/orders/update")
    public R syncOrderUpdate(@RequestBody List<OrderParams> orders) {
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/19
     * @description: 单据删除
     * @version 1.0
     */
    @ApiOperation("单据删除")
    @PostMapping("/sync/orders/delete")
    public R syncOrderDel(@RequestBody List<OrderParams> orders) {
        return R.ok();
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncLocReviseParams.java
New file
@@ -0,0 +1,30 @@
package com.vincent.rsf.server.api.controller.erp.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "SyncLocReviseParams", description = "库存调整单同步参数")
public class SyncLocReviseParams implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("调整类型 {1:盘点调整, 0}")
    private String type;
    @ApiModelProperty("库区名称")
    private String areaName;
    @ApiModelProperty("调整时间")
    private Date reviseTime;
    @ApiModelProperty("单据名称列表")
    private List<SyncReviseItems> items;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
@@ -15,7 +15,7 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("单据类型{in: 收货入库单, out:出库单,check: 盘点单,  }")
    @ApiModelProperty("单据类型{in: 收货入库单, out:出库单,check: 盘点单, revise: 库存调整  }")
    private String type;
    @ApiModelProperty("单据明细信息")
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
@@ -60,7 +60,7 @@
    @ApiModelProperty("型号")
    private String model;
    @ApiModelProperty("送货数量")
    @ApiModelProperty("数量")
    private Double anfme;
    @ApiModelProperty("库存单位")
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncReviseItems.java
New file
@@ -0,0 +1,24 @@
package com.vincent.rsf.server.api.controller.erp.params;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.experimental.Accessors;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel(value = "SyncReviseItems", description = "调整单明细")
public class SyncReviseItems implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("库位")
    private String locCode;
    @ApiModelProperty("调整单明细")
    private List<SyncOrdersItem> items;
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -105,4 +105,12 @@
     * @version 1.0
     */
    R syncTransfer(SyncTransferParams transferParams);
    /**
     * @author Ryan
     * @date 2025/8/20
     * @description: 库存调整单同步
     * @version 1.0
     */
    R syncLocRevise(SyncLocReviseParams reviseParams);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -79,6 +79,12 @@
    private TransferService transferService;
    @Autowired
    private TransferItemService transferItemService;
    @Autowired
    private LocReviseService locReviseService;
    @Autowired
    private ReviseLogService reviseLogService;
    @Autowired
    private ReviseLogItemService reviseLogItemService;
    /**
@@ -474,4 +480,56 @@
        return R.ok();
    }
    /**
     * @author Ryan
     * @date 2025/8/20
     * @description: 库存调整单同步
     * @version 1.0
     */
    @Override
    @Transactional(timeout = 60, rollbackFor = Exception.class)
    public R syncLocRevise(SyncLocReviseParams reviseParams) {
        LocRevise locRevise = new LocRevise();
        if (Objects.isNull(reviseParams.getAreaName())) {
            throw new CoolException("库区不能为空!!");
        }
        WarehouseAreas warehouseAreas = warehouseAreasService
                .getOne(new LambdaQueryWrapper<WarehouseAreas>()
                        .eq(WarehouseAreas::getName, reviseParams.getAreaName()));
        if (Objects.isNull(warehouseAreas)) {
            throw new CoolException("库区不存在!!");
        }
        locRevise.setAreaName(locRevise.getAreaName())
                .setAreaId(warehouseAreas.getId());
        locRevise.setCode(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LOC_REVISE_CODE, null));
        if (!locReviseService.save(locRevise)) {
            throw new CoolException("库存调整单保存失败!!");
        }
        reviseParams.getItems().forEach(revise -> {
            Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, revise.getLocCode()));
            ReviseLog reviseLog = new ReviseLog();
            BeanUtils.copyProperties(loc, reviseLog);
            reviseLog.setReviseId(locRevise.getId()).setReviseCode(locRevise.getCode());
            if (!reviseLogService.save(reviseLog)) {
                throw new CoolException("库存调整单不能为空!!");
            }
            revise.getItems().forEach(reviseItem -> {
                ReviseLogItem logItem = new ReviseLogItem();
                BeanUtils.copyProperties(reviseItem, logItem);
                logItem.setLocId(loc.getId())
                        .setLocCode(loc.getCode())
                        .setId(null)
                        .setReviseQty(reviseItem.getAnfme());
                if (!reviseLogItemService.save(logItem)) {
                    throw new CoolException("调整库存明细保存失败!!");
                }
            });
        });
        return R.ok();
    }
}