参数代理对象feign调用问题
This commit is contained in:
+116
-3
@@ -1,6 +1,7 @@
|
|||||||
package com.mhd.basic.domain.materialBaseInfo.repository.persistence;
|
package com.mhd.basic.domain.materialBaseInfo.repository.persistence;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.mhd.basic.domain.batch.entity.Batch;
|
import com.mhd.basic.domain.batch.entity.Batch;
|
||||||
@@ -14,7 +15,7 @@ import com.mhd.common.core.exception.ServiceException;
|
|||||||
import com.mhd.common.core.web.domain.AjaxResult;
|
import com.mhd.common.core.web.domain.AjaxResult;
|
||||||
import com.mhd.common.security.utils.SecurityUtils;
|
import com.mhd.common.security.utils.SecurityUtils;
|
||||||
import com.mhd.system.api.WmsServiceFeign;
|
import com.mhd.system.api.WmsServiceFeign;
|
||||||
import com.mhd.system.api.domain.MaterialBaseInfoFeign;
|
import com.mhd.system.api.domain.*;
|
||||||
import com.mhd.system.api.model.LoginUser;
|
import com.mhd.system.api.model.LoginUser;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -24,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 物料基础信息Service业务层处理
|
* 物料基础信息Service业务层处理
|
||||||
@@ -87,8 +89,7 @@ public class MaterialBaseInfoImpl extends ServiceImpl<MaterialBaseInfoMapper, Ma
|
|||||||
* @param materialBaseInfoDO
|
* @param materialBaseInfoDO
|
||||||
*/
|
*/
|
||||||
public void synchMaterialBaseInfo(MaterialBaseInfoDO materialBaseInfoDO, Integer updateFeign){
|
public void synchMaterialBaseInfo(MaterialBaseInfoDO materialBaseInfoDO, Integer updateFeign){
|
||||||
MaterialBaseInfoFeign materialBaseInfoFeign = new MaterialBaseInfoFeign();
|
MaterialBaseInfoFeign materialBaseInfoFeign = toFeign(materialBaseInfoDO);
|
||||||
BeanUtils.copyProperties(materialBaseInfoDO, materialBaseInfoFeign);
|
|
||||||
materialBaseInfoFeign.setUpdateFeign(updateFeign);
|
materialBaseInfoFeign.setUpdateFeign(updateFeign);
|
||||||
AjaxResult ajaxResult = wmsServiceFeign.edit(materialBaseInfoFeign);
|
AjaxResult ajaxResult = wmsServiceFeign.edit(materialBaseInfoFeign);
|
||||||
if (!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
if (!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||||
@@ -96,6 +97,118 @@ public class MaterialBaseInfoImpl extends ServiceImpl<MaterialBaseInfoMapper, Ma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将 DO 转换为 Feign 对象(深拷贝)
|
||||||
|
*/
|
||||||
|
public MaterialBaseInfoFeign toFeign(MaterialBaseInfoDO source) {
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
MaterialBaseInfoFeign target = new MaterialBaseInfoFeign();
|
||||||
|
|
||||||
|
// 1. 复制基本属性(所有非集合字段)
|
||||||
|
copyBasicProperties(source, target);
|
||||||
|
|
||||||
|
// 2. 深拷贝嵌套对象
|
||||||
|
target.setMaterialGoodsRule(copyMaterialGoodsRule(source.getMaterialGoodsRule()));
|
||||||
|
target.setMaterialCommon(copyMaterialCommon(source.getMaterialCommon()));
|
||||||
|
target.setMaterialWarehouseControl(copyMaterialWarehouseControl(source.getMaterialWarehouseControl()));
|
||||||
|
target.setMaterialInventoryWarningList(copyMaterialInventoryWarningList(source.getMaterialInventoryWarningList()));
|
||||||
|
target.setMaterialBarCodeList(copyMaterialBarCodeList(source.getMaterialBarCodeList()));
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复制基本属性
|
||||||
|
*/
|
||||||
|
private void copyBasicProperties(MaterialBaseInfoDO source, MaterialBaseInfoFeign target) {
|
||||||
|
// 使用 Spring 的 BeanUtils 复制基本字段
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 深拷贝商品规则
|
||||||
|
*/
|
||||||
|
private MaterialGoodsRuleFeign copyMaterialGoodsRule(MaterialGoodsRuleFeign source) {
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
MaterialGoodsRuleFeign target = new MaterialGoodsRuleFeign();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 深拷贝公共信息
|
||||||
|
*/
|
||||||
|
private MaterialCommonFeign copyMaterialCommon(MaterialCommonFeign source) {
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
MaterialCommonFeign target = new MaterialCommonFeign();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 深拷贝仓库控制信息
|
||||||
|
*/
|
||||||
|
private MaterialWarehouseControlFeign copyMaterialWarehouseControl(MaterialWarehouseControlFeign source) {
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
MaterialWarehouseControlFeign target = new MaterialWarehouseControlFeign();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 深拷贝库存预警列表
|
||||||
|
*/
|
||||||
|
private List<MaterialInventoryWarningFeign> copyMaterialInventoryWarningList(List<MaterialInventoryWarningFeign> sourceList) {
|
||||||
|
if (CollectionUtils.isEmpty(sourceList)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return sourceList.stream()
|
||||||
|
.map(source -> {
|
||||||
|
MaterialInventoryWarningFeign target = new MaterialInventoryWarningFeign();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
return target;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 深拷贝条码列表
|
||||||
|
*/
|
||||||
|
private List<MaterialBarCodeFeign> copyMaterialBarCodeList(List<MaterialBarCodeFeign> sourceList) {
|
||||||
|
if (CollectionUtils.isEmpty(sourceList)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return sourceList.stream()
|
||||||
|
.map(source -> {
|
||||||
|
MaterialBarCodeFeign target = new MaterialBarCodeFeign();
|
||||||
|
BeanUtils.copyProperties(source, target);
|
||||||
|
return target;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量转换(如果有需要)
|
||||||
|
*/
|
||||||
|
public List<MaterialBaseInfoFeign> toFeignList(List<MaterialBaseInfoDO> sourceList) {
|
||||||
|
if (CollectionUtils.isEmpty(sourceList)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return sourceList.stream()
|
||||||
|
.map(this::toFeign)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 校验唯一
|
* @description 校验唯一
|
||||||
* @author ZhouGY
|
* @author ZhouGY
|
||||||
|
|||||||
Reference in New Issue
Block a user