feat(qms): 实现SAP质检入库功能
- 将ZWM3A17DTO替换为ZWM3A18DTO用于质检入库数据传输 - 更新导入包路径从ZWM3A17相关类到ZWM3A18相关类 - 修改SAP接口调用从zwm3a17方法改为zwm3a18方法 - 重构质检入库数据构建逻辑,新增物料凭证号和年份字段 - 添加质检数量、合格数量、不合格数量的处理逻辑 - 更新日志信息从"入库"改为"质检入库" - 优化数据传输对象的字段映射和设置方式 - 调整物料凭证回写逻辑以适配新的接口返回格式
This commit is contained in:
parent
775f066d92
commit
5739b9e9d5
|
|
@ -11,8 +11,8 @@ import com.nflg.wms.common.pojo.qo.WmsIncomingInspectionTaskCallbackQO;
|
|||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.*;
|
||||
import com.nflg.wms.repository.service.*;
|
||||
import com.nflg.wms.srm.receive.pojo.dto.ZWM3A17DTO;
|
||||
import com.nflg.wms.srm.receive.pojo.dto.ZWM3A17Item1DTO;
|
||||
import com.nflg.wms.srm.receive.pojo.dto.ZWM3A18DTO;
|
||||
import com.nflg.wms.srm.receive.pojo.dto.ZWM3A18Item1DTO;
|
||||
import com.nflg.wms.common.pojo.qo.PdiInspectionTaskCallbackQO;
|
||||
import com.nflg.wms.srm.receive.service.SapService;
|
||||
import com.nflg.wms.srm.receive.util.NoUtil;
|
||||
|
|
@ -147,40 +147,40 @@ public class QmsController extends BaseController {
|
|||
List<InventoryInDTO> inventories = new ArrayList<>();
|
||||
inventories.add(inventoryDTO);
|
||||
|
||||
// 构建SAP入库数据
|
||||
ZWM3A17DTO zwm3A17DTO = new ZWM3A17DTO()
|
||||
// 构建SAP质检入库数据
|
||||
ZWM3A18DTO zwm3A18DTO = new ZWM3A18DTO()
|
||||
.setEbeln(qo.getPurchaseOrderNo())
|
||||
.setUsnam("SRM");
|
||||
zwm3A17DTO.getItem1().add(new ZWM3A17Item1DTO()
|
||||
.setEBELP(receiveItem.getPoLineNumber())
|
||||
.setMATNR(receiveItem.getItemCode())
|
||||
.setERFMG(BigDecimal.valueOf(qo.getQualifiedQty()))
|
||||
.setMEINS(receiveItem.getUomCode())
|
||||
.setCHARG(inventoryDTO.getBatchNo())
|
||||
.setWERKS(qo.getFactory())
|
||||
.setLGORT(receiveItem.getReceivedWarehouse())
|
||||
.setKZKRI(""));
|
||||
// if (StrUtil.isNotBlank(data.getSerialNum())) {
|
||||
// zwm3A17DTO.getItem2().add(new ZWM3A17Item2DTO()
|
||||
// .setEBELP(data.getPoLineNumber())
|
||||
// .setFLAG("")
|
||||
// .setSERNR(data.getSerialNum()));
|
||||
// }
|
||||
.setUsnam("SRM")
|
||||
.setMblnr(receiveItem.getMaterialDoc())
|
||||
.setMjahr(receiveItem.getMaterialDocYear());
|
||||
List<ZWM3A18Item1DTO> item1List = new ArrayList<>();
|
||||
item1List.add(new ZWM3A18Item1DTO()
|
||||
.setErfmg(BigDecimal.valueOf(qo.getInspectionQty()))
|
||||
.setErfmg1(BigDecimal.valueOf(qo.getQualifiedQty()))
|
||||
.setErfmg2(BigDecimal.valueOf(qo.getUnqualifiedQty()))
|
||||
.setEbelp(receiveItem.getPoLineNumber())
|
||||
.setMatnr(receiveItem.getItemCode())
|
||||
.setMeins(receiveItem.getUomCode())
|
||||
.setCharg(inventoryDTO.getBatchNo())
|
||||
.setLgort(receiveItem.getReceivedWarehouse())
|
||||
.setSgtxt("")
|
||||
.setWerks(qo.getFactory()));
|
||||
zwm3A18DTO.setItem1(item1List);
|
||||
|
||||
// 执行库存入库
|
||||
log.info("开始本地库存入库, 数量: {}", qo.getQualifiedQty());
|
||||
inventoryService.in(inventories);
|
||||
|
||||
// 推送到SAP
|
||||
log.info("开始推送SAP入库, PO: {}, 物料: {}", qo.getPurchaseOrderNo(), qo.getMaterialNo());
|
||||
Pair<Pair<String, String>, Pair<String, String>> returnDto = sapService.zwm3a17(zwm3A17DTO);
|
||||
log.info("SAP入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey().getKey(), returnDto.getValue().getValue());
|
||||
log.info("开始推送SAP质检入库, PO: {}, 物料: {}", qo.getPurchaseOrderNo(), qo.getMaterialNo());
|
||||
Pair<String, String> returnDto = sapService.zwm3a18(zwm3A18DTO);
|
||||
log.info("SAP质检入库返回, 物料凭证: {}, 年份: {}", returnDto.getKey(), returnDto.getValue());
|
||||
// 更新收货明细的物料凭证和入库数量
|
||||
qcReceiveItemService.lambdaUpdate()
|
||||
.eq(WmsQcReceiveItem::getId, receiveItem.getId())
|
||||
.set(WmsQcReceiveItem::getInQty, qo.getQualifiedQty())
|
||||
.set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey().getKey())
|
||||
.set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue().getValue())
|
||||
.set(WmsQcReceiveItem::getMaterialDoc, returnDto.getKey())
|
||||
.set(WmsQcReceiveItem::getMaterialDocYear, returnDto.getValue())
|
||||
.update();
|
||||
|
||||
// 检查并更新收货单完成状态
|
||||
|
|
|
|||
Loading…
Reference in New Issue