skyouc
1 天以前 a5abbaea5e8a35e77df3a06a88b8b96bebbf79b4
新增物料更新接口
10个文件已修改
1个文件已添加
145 ■■■■■ 已修改文件
rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java 3 ●●●●● 补丁 | 查看 | 原始文档 | 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/service/ReceiveMsgService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/MatnrLocLevel.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/matnr/MatnrList.jsx
@@ -286,7 +286,7 @@
                    marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                }}
                title={"menu.matnr"}
                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
                empty={false}
                filters={filters}
                sort={{ field: "create_time", order: "desc" }}
                actions={(
rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/WmsOrderItemParam.java
@@ -12,7 +12,7 @@
public class WmsOrderItemParam {
    @ApiModelProperty("物料编码")
    private String matnrCode;
    private String matnr;
    @ApiModelProperty("物料名称")
    private String maktx;
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/BaseInfoController.java
@@ -40,6 +40,16 @@
        return R.ok();
    }
    @ApiOperation("基础物料信息更新")
    @PostMapping("/mat/sync/auth/v1")
    public R matUpdate(@RequestBody BaseMatParms baseMatParms) {
        if (Objects.isNull(baseMatParms)) {
            return R.error("参数不能为空!");
        }
        return receiveMsgService.matUpdate(baseMatParms);
    }
    /**
     * @author Ryan
     * @date 2025/8/18
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/BaseMatParms.java
@@ -30,6 +30,9 @@
    @ApiModelProperty("尺寸")
    private String size;
    @ApiModelProperty("规格")
    private String spec;
    @ApiModelProperty("描述")
    private String describle;
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrdersItem.java
@@ -22,7 +22,7 @@
    private Long matnrId;
    @ApiModelProperty("物料编码")
    private String matnrCode;
    private String matnr;
    @ApiModelProperty("物料名称")
    private String maktx;
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -145,4 +145,11 @@
     * @version 1.0
     */
    R syncCheckDiffs(SyncCheckDiffParams syncParams);
    /**
     * 物料更新
     * @param baseMatParms
     * @return
     */
    R matUpdate(BaseMatParms baseMatParms);
}
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -277,7 +277,7 @@
    /**
     * @author Ryan
     * @date 2025/8/18
     * @description: 物料信息同步
     * @description: 物料分组信息同步
     * @version 1.0
     */
    @Override
@@ -576,7 +576,7 @@
            revise.getItems().forEach(reviseItem -> {
                ReviseLogItem logItem = new ReviseLogItem();
                BeanUtils.copyProperties(reviseItem, logItem);
                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, reviseItem.getMatnrCode()));
                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, reviseItem.getMatnr()));
                if (Objects.isNull(matnr)) {
                    throw new CoolException("物料不存在!!");
                }
@@ -621,13 +621,13 @@
            }
            order.getOrdersItems().forEach(orderItem -> {
                WkOrderItem wkOrderItem = asnOrderItemService.getOne(new LambdaUpdateWrapper<WkOrderItem>()
                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
                        .eq(StringUtils.isNotEmpty(orderItem.getBatch()), WkOrderItem::getSplrBatch, orderItem.getBatch())
                        .eq(WkOrderItem::getOrderCode, wkOrder.getCode()));
                if (!Objects.isNull(wkOrderItem)) {
                    if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
                            .eq(WkOrderItem::getOrderCode, wkOrder.getCode())
                            .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
                            .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
                            .eq(StringUtils.isNotEmpty(orderItem.getBatch()), WkOrderItem::getSplrBatch, orderItem.getBatch())
                            .eq(StringUtils.isNotEmpty(orderItem.getPlatItemId()), WkOrderItem::getPlatItemId, orderItem.getPlatItemId())
                            .set(WkOrderItem::getAnfme, orderItem.getAnfme()))) {
@@ -671,7 +671,7 @@
            }
            order.getOrdersItems().forEach(orderItem -> {
                if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnrCode())
                        .eq(WkOrderItem::getMatnrCode, orderItem.getMatnr())
                        .eq(StringUtils.isNotEmpty(orderItem.getBatch()), WkOrderItem::getSplrBatch, orderItem.getBatch())
                        .eq(StringUtils.isNotEmpty(orderItem.getPlatItemId()), WkOrderItem::getPlatItemId, orderItem.getPlatItemId())
                        .eq(WkOrderItem::getOrderCode, wkOrder.getCode()))) {
@@ -744,4 +744,53 @@
        return R.ok().add(dtos);
    }
    /**
     * 基础物料信息变更
     * @param baseMatParms
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R matUpdate(BaseMatParms baseMatParms) {
        if (StringUtils.isNotBlank(baseMatParms.getMatnr())) {
            throw new CoolException("基础信息变更失败!!");
        }
        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, baseMatParms.getMatnr()));
        if (Objects.isNull(matnr)) {
            BeanUtils.copyProperties(baseMatParms, matnr);
            matnr.setCode(baseMatParms.getMatnr());
            matnr.setName(baseMatParms.getMaktx());
            if (!Objects.isNull(baseMatParms.getGroupName())) {
                MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
                        .eq(MatnrGroup::getName, baseMatParms.getGroupName()));
                if (Objects.isNull(matnrGroup)) {
                    matnr.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
                }
            }
            if (!matnrService.save(matnr)) {
                throw new CoolException("物料新增失败!!");
            }
        } else {
            if (!Objects.isNull(baseMatParms.getGroupName())) {
                MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
                        .eq(MatnrGroup::getName, baseMatParms.getGroupName()));
                if (Objects.isNull(matnrGroup)) {
                    matnr.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
                }
            }
            matnr.setName(baseMatParms.getMaktx())
                    .setColor(baseMatParms.getColor())
                    .setModel(baseMatParms.getModel())
                    .setSpec(baseMatParms.getSpec());
            if (!matnrService.updateById(matnr)) {
                throw new CoolException("物料更新失败!!");
            }
        }
        return R.ok();
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/MatnrLocLevel.java
New file
@@ -0,0 +1,36 @@
package com.vincent.rsf.server.manager.enums;
/**
 * 物料库存ABCD类
 */
public enum MatnrLocLevel {
    //A、B, C, D
    MATNR_LOC_LEVEL_A("0", "A类"),
    MATNR_LOC_LEVEL_B("1", "B类"),
    MATNR_LOC_LEVEL_C("2", "C类"),
    MATNR_LOC_LEVEL_D("3", "D类"),
    ;
    MatnrLocLevel(String type, String desc) {
        this.type = Short.parseShort(type);
        this.desc = desc;
    }
    public Short type;
    public String desc;
    public static Short getTypeVal(String desc) {
        if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_A.desc)) {
            return MatnrLocLevel.MATNR_LOC_LEVEL_A.type;
        } else if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_B.desc)) {
            return MatnrLocLevel.MATNR_LOC_LEVEL_B.type;
        } else if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_C.desc)) {
            return MatnrLocLevel.MATNR_LOC_LEVEL_C.type;
        } else if (desc.equals(MatnrLocLevel.MATNR_LOC_LEVEL_D.desc)) {
            return MatnrLocLevel.MATNR_LOC_LEVEL_D.type;
        }
        return null;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -239,6 +239,13 @@
        if (Objects.isNull(wkOrderItem.getAnfme()) || Double.compare(wkOrderItem.getAnfme(), 0.0) <= 0) {
            throw new CoolException("计划数不能为空!!");
        }
        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, wkOrderItem.getMatnrCode()));
        if (Objects.isNull(matnr)) {
            throw new CoolException("数据错误:物料" + wkOrderItem.getMatnrCode() + "不存在!!");
        }
        wkOrderItem.setMatnrCode(matnr.getCode()).setMatnrId(matnr.getId());
        //保存扩展字段
        try {
            StringBuffer sb = new StringBuffer();
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -17,6 +17,7 @@
import com.vincent.rsf.server.manager.controller.params.MatnrToGroupParams;
import com.vincent.rsf.server.manager.entity.MatnrGroup;
import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
import com.vincent.rsf.server.manager.enums.MatnrLocLevel;
import com.vincent.rsf.server.manager.mapper.MatnrMapper;
import com.vincent.rsf.server.manager.entity.Matnr;
import com.vincent.rsf.server.manager.service.MatnrGroupService;
@@ -96,10 +97,10 @@
                    .setModel(template.getModel())
                    .setGroupCode(template.getGroupCode())
                    .setPurUnit(template.getPurUnit())
                    .setStockLevel(!Objects.isNull(template.getStockLevel()) ? Short.parseShort(template.getStockLevel()) : 0)
                    .setStockLevel(MatnrLocLevel.getTypeVal(template.getStockLevel()))
                    .setSafeQty(!Objects.isNull(template.getSafeQty()) ? Double.parseDouble(template.getSafeQty()) : 0)
                    .setMinQty(!Objects.isNull(template.getMinQty()) ? Double.parseDouble(template.getMinQty()) : 0);
            if (Objects.isNull(template.getGroupCode()) && Objects.isNull(template.getGroupName())) {
            if (!Objects.isNull(template.getGroupCode()) || !Objects.isNull(template.getGroupName())) {
                MatnrGroup matnrGroups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>()
                        .eq(!Objects.isNull(template.getGroupCode()), MatnrGroup::getCode, template.getGroupCode())
                        .eq(!Objects.isNull(template.getGroupName()),MatnrGroup::getName, template.getGroupName()));
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferItemServiceImpl.java
@@ -6,10 +6,12 @@
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.FieldsUtils;
import com.vincent.rsf.server.manager.entity.Companys;
import com.vincent.rsf.server.manager.entity.Matnr;
import com.vincent.rsf.server.manager.enums.CompanysType;
import com.vincent.rsf.server.manager.mapper.TransferItemMapper;
import com.vincent.rsf.server.manager.entity.TransferItem;
import com.vincent.rsf.server.manager.service.CompanysService;
import com.vincent.rsf.server.manager.service.MatnrService;
import com.vincent.rsf.server.manager.service.TransferItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
@@ -25,6 +27,9 @@
    @Autowired
    private CompanysService companysService;
    @Autowired
    private MatnrService matnrService;
    /**
@@ -48,6 +53,13 @@
        if (Objects.isNull(wkOrderItem.getAnfme()) || Double.compare(wkOrderItem.getAnfme(), 0.0) <= 0) {
            throw new CoolException("计划数不能为空!!");
        }
        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, wkOrderItem.getMatnrCode()));
        if (Objects.isNull(matnr)) {
            throw new CoolException("数据错误:物料" + wkOrderItem.getMatnrCode() + "不存在!!");
        }
        wkOrderItem.setMatnrCode(matnr.getCode()).setMatnrId(matnr.getId());
//        //保存扩展字段
        try {
            StringBuffer sb = new StringBuffer();