合并了develop分支的代码

This commit is contained in:
zhangke 2025-08-02 13:16:37 +08:00
parent 985d43e346
commit ba1b80819c
6 changed files with 137 additions and 30 deletions

View File

@ -8,18 +8,17 @@ import com.nflg.wms.admin.pojo.dto.ZIM003105DTO;
import com.nflg.wms.admin.pojo.dto.ZIM003DTO;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.exception.NflgException;
import com.nflg.wms.common.pojo.dto.C_MaterialReturnDTO;
import com.nflg.wms.common.pojo.dto.C_MaterialReturnQueryDTO;
import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO;
import com.nflg.wms.common.pojo.dto.*;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnItemQO;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnQO;
import com.nflg.wms.common.pojo.qo.ScanCodeQO;
import com.nflg.wms.common.util.VUtil;
import com.sap.conn.jco.*;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -299,21 +298,50 @@ public class SapService {
}
// 成本中心退库确认
private C_MaterialReturnDTO zwm00_MB112(C_MaterialReturnQO request) {
private C_MaterialReturnDTO zwm00_MB112(C_MaterialReturnQO request) throws JCoException {
Map<String, Object> parameters = new HashMap<>();
parameters.put("I_RSNUM", request.getResbRsNum());
parameters.put("I_USNAM", request.getResbRsNum());
List<C_MaterialReturnItemQO> items = request.getItems();
//
// / /Map<String, Map<String, Double>> summary = items.stream()
// / / .collect(Collectors.groupingBy(
// / / C_MaterialReturnItemQO::getResbRspos,
// / /
// / / Collectors.groupingBy(
// / / C_MaterialReturnItemQO::getResbMatnr,
// / /Collectors.summingDouble(item -> Double.parseDouble(item.getMsebErfmg()))
// / / )
// / / ));
List<C_MaterialReturnItemDTO> t_list1 = new ArrayList<>();
List<C_MaterialReturnSerialItemDTO> t_list2 = new ArrayList<>();
for (C_MaterialReturnItemQO item : request.getItems()) {
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
List<ScanCodeQO> scanCodeList = item.getScanCodes();
//合并批次数量
Map<String, BigDecimal> batchSummary = scanCodeList.stream()
.collect(Collectors.groupingBy(
ScanCodeQO::getBatchNumber,
Collectors.reducing(BigDecimal.ZERO, ScanCodeQO::getCodeNum, BigDecimal::add)
));
for (Map.Entry<String, BigDecimal> entry : batchSummary.entrySet()) {
t_list1.add(new C_MaterialReturnItemDTO()
.setMatnr(item.getResbMatnr())
.setRspos(item.getResbRspos())
.setLgort(item.getResbLgort())
.setMeins(item.getResbMeins())
.setWerks(item.getResbWerks())
.setCharg(entry.getKey())
.setErfmg(String.valueOf(entry.getValue()))
);
}
for (ScanCodeQO scanCode : scanCodeList) {
t_list2.add(new C_MaterialReturnSerialItemDTO()
.setRspos(item.getResbRspos())
.setSernr(scanCode.getSerialNumber())
.setFlag("X")
);
}
}
}
parameters.put("T_LIST1", t_list1);
parameters.put("T_LIST2", t_list2);
JCoFunction function = exec("ZWM00_MB112", parameters, null);
JCoTable tOut = function.getTableParameterList().getTable("T_OUT");
log.info("SAP返回: {}", tOut);
return null;
}

View File

@ -1,5 +1,6 @@
package com.nflg.wms.common.pojo.dto;
import com.nflg.wms.common.pojo.qo.C_MaterialReturnQO;
import lombok.Data;
import lombok.experimental.Accessors;
@ -11,4 +12,7 @@ public class C_MaterialReturnDTO {
//物料凭证年度
private String eMJahr;
//中心退库的物料详情信息
private C_MaterialReturnQO requestQO;
}

View File

@ -0,0 +1,31 @@
package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class C_MaterialReturnItemDTO {
//预留项目号
private String rspos;
// 物料号
private String matnr;
//库存地点
private String lgort;
// 工厂
private String werks;
// 退库数量
private String erfmg;
//单位
private String meins;
// 批次
private String charg;
}

View File

@ -0,0 +1,17 @@
package com.nflg.wms.common.pojo.dto;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class C_MaterialReturnSerialItemDTO {
//预留项目号
private String rspos;
//序列号
private String sernr;
//X 表示合格产品空表示不合格产品
private String flag;
}

View File

@ -5,6 +5,7 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.List;
@Data
@Accessors(chain = true)
@ -16,9 +17,6 @@ public class C_MaterialReturnItemQO {
// 物料号
private String resbMatnr;
//实退数量
private BigDecimal msebErfmg;
//库存地点
private String resbLgort;
@ -28,15 +26,6 @@ public class C_MaterialReturnItemQO {
// 单位
private String resbMeins;
// 批次
/**
* 批次号
*/
private String batchNumber;
/**
* 序列号,多个序列号使用;号隔开
*/
private String serialNumber;
//扫码信息
private List<ScanCodeQO> scanCodes;
}

View File

@ -0,0 +1,38 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class ScanCodeQO {
/**
* 二维码编号
*/
private String codeId;
/**
* 数量
*/
@NotNull
private BigDecimal codeNum;
/**
* 批次号
*/
private String batchNumber;
/**
* 序列号
*/
private String serialNumber;
/**
* 二维码内容
*/
private String codeContent;
}