-
admin
2024-04-16 258f2699264d2ea1066ba5a726f6bf1cbc23afef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.jcdm.main.restful.qingYan.service;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.JsonObject;
import com.jcdm.common.annotation.Log;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import com.jcdm.main.restful.qingYan.doman.PostEntity;
import com.jcdm.main.rm.repairData.domain.RmRepairData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.util.List;
 
@RestController
@RequestMapping("/jcdmMes")
public class ExternalInterface {
    @Autowired
    private IDaParamCollectionService daParamCollectionService;
 
    @Autowired
    private IOmProductionOrdeInfoService productionOrdeInfoService;
 
 
    @PostMapping("/pushParamData")
    public void receivingData(@RequestBody PostEntity postEntity) throws JsonProcessingException {
//        ObjectMapper objectMapper = new ObjectMapper();
//        PostEntity person = objectMapper.readValue(postEntity, PostEntity.class);
 
 
        Class<?> entityClass = PostEntity.class; // 替换为你的实体类
        String packId = postEntity.getPEOL_PackID();
        OmProductionOrdeInfo one = productionOrdeInfoService.getOne(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, packId));
        String productType = "type";
        String workOrderNo = one.getWorkOrderNo();
        for (Field field : entityClass.getDeclaredFields()) {
            String fieldName = field.getName();
            DaParamCollection daParamCollection = new DaParamCollection();
            daParamCollection.setWorkOrderNo(workOrderNo);
            daParamCollection.setProductCode(productType);
            daParamCollection.setSfcCode(packId);
            daParamCollection.setParamCode(field.getName());
            daParamCollection.setParamValue((String) getFieldValue(postEntity, fieldName));
            if(fieldName.contains("GDBH")){
                daParamCollection.setParamValue(workOrderNo);
            }
            if(fieldName.contains("CPXH")){
                daParamCollection.setParamValue(productType);
            }
            daParamCollectionService.save(daParamCollection);
        }
 
    }
 
 
    /**
     * 使用反射获取对象的属性值
     *
     * @param obj       目标对象
     * @param fieldName 属性名
     * @return 属性值,如果获取失败则返回null
     */
    public static Object getFieldValue(Object obj, String fieldName) {
        if (obj == null) {
            throw new IllegalArgumentException("Object must not be null");
        }
        try {
            Field field = obj.getClass().getDeclaredField(fieldName);
            field.setAccessible(true); // 设置可访问性,以便访问私有字段
            return field.get(obj);
        } catch (NoSuchFieldException e) {
            // 如果当前类没有该字段,则尝试从父类中获取
            Class<?> superClass = obj.getClass().getSuperclass();
            if (superClass != null && !superClass.equals(Object.class)) {
                return getFieldValue(obj, fieldName, superClass);
            }
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    private static Object getFieldValue(Object obj, String fieldName, Class<?> superClass) {
        try {
            Field field = superClass.getDeclaredField(fieldName);
            field.setAccessible(true);
            return field.get(obj);
        } catch (NoSuchFieldException e) {
            // 如果父类也没有该字段,则继续向上查找
            Class<?> grandParentClass = superClass.getSuperclass();
            if (grandParentClass != null && !grandParentClass.equals(Object.class)) {
                return getFieldValue(obj, fieldName, grandParentClass);
            }
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }
 
}