package com.jcdm.main.restful.qingYan.service; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONUtil; 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.core.domain.AjaxResult; 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.ParentVO; import com.jcdm.main.restful.qingYan.doman.PostEntity; import com.jcdm.main.rm.repairData.domain.RmRepairData; import org.aspectj.weaver.loadtime.Aj; 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; String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback"; /** * 导出点检任务列表 */ @PostMapping("/deviceResultFeedback") public AjaxResult hdy(@RequestBody ParentVO parentVO) { HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute(); return AjaxResult.success(execute.body()); } @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().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; } }