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();