|
|
@@ -0,0 +1,107 @@
|
|
|
+package com.uas.platform.b2b.erp.service;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.uas.platform.b2b.model.Product;
|
|
|
+import com.uas.platform.b2b.model.PurcOrderInfoItem;
|
|
|
+
|
|
|
+import java.lang.reflect.InvocationTargetException;
|
|
|
+import java.lang.reflect.Method;
|
|
|
+import java.util.Arrays;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 对象转换赋值
|
|
|
+ *
|
|
|
+ * @author hejq
|
|
|
+ * @date 2018-07-17 11:19
|
|
|
+ */
|
|
|
+public class ObjectEvaluate {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料编号赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_CODE = "setProductCode";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料名称赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_TITLE = "setProductTitle";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料规格赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_SPEC = "setProductSpec";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料品牌赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_BRAND = "setProductBrand";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料单位赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_UNIT = "setProductUnit";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料ID赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_ID = "setProductId";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 给物料型号赋值方法
|
|
|
+ */
|
|
|
+ static final String EVALUTE_CMP_CODE = "setProductCmpCode";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 物料数据赋值给其他实体
|
|
|
+ *
|
|
|
+ * @param targetObject 目标实体
|
|
|
+ * @param product 物料信息
|
|
|
+ * @param <T>
|
|
|
+ * @return
|
|
|
+ * @throws InvocationTargetException
|
|
|
+ * @throws IllegalAccessException
|
|
|
+ */
|
|
|
+ public static <T> T covert(T targetObject, Product product) {
|
|
|
+ Class<T> cls = (Class<T>) targetObject.getClass();
|
|
|
+ Method[] methods = cls.getMethods();
|
|
|
+ if (methods.length > 0) {
|
|
|
+ Arrays.asList(methods).stream().forEach(method -> {
|
|
|
+ try {
|
|
|
+ if (EVALUTE_BRAND.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getBrand());
|
|
|
+ } else if (EVALUTE_CODE.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getCode());
|
|
|
+ } else if (EVALUTE_ID.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getId());
|
|
|
+ } else if (EVALUTE_CMP_CODE.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getCmpCode());
|
|
|
+ } else if (EVALUTE_SPEC.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getSpec());
|
|
|
+ } else if (EVALUTE_TITLE.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getTitle());
|
|
|
+ } else if (EVALUTE_UNIT.equals(method.getName())) {
|
|
|
+ method.invoke(targetObject, product.getUnit());
|
|
|
+ }
|
|
|
+ } catch (IllegalAccessException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (InvocationTargetException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return targetObject;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ Product product = new Product();
|
|
|
+ product.setId(1L);
|
|
|
+ product.setBrand("brand001");
|
|
|
+ product.setCmpCode("cmpCode001");
|
|
|
+ product.setTitle("title001");
|
|
|
+ product.setUnit("PCS");
|
|
|
+ product.setSpec("spec001");
|
|
|
+ PurcOrderInfoItem orderItem = new PurcOrderInfoItem();
|
|
|
+ orderItem = ObjectEvaluate.covert(orderItem, product);
|
|
|
+ System.out.println(JSON.toJSONString(orderItem));
|
|
|
+ }
|
|
|
+}
|