package com.jcdm.main.restful.qingYan.service;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.StrUtil;
|
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.jcdm.common.core.domain.AjaxResult;
|
import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
|
import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
|
import com.jcdm.main.constant.Constants;
|
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
|
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
|
import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
|
import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
|
import com.jcdm.main.da.testDeviceInterface.domain.DaTestDeviceInterface;
|
import com.jcdm.main.da.testDeviceInterface.service.IDaTestDeviceInterfaceService;
|
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
|
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
|
import com.jcdm.main.restful.qingYan.doman.*;
|
import org.aspectj.weaver.loadtime.Aj;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.lang.reflect.Field;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@RestController
|
@RequestMapping("/jcdmMes")
|
public class ExternalInterface {
|
@Autowired
|
private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
|
@Autowired
|
private IDaParamCollectionService daParamCollectionService;
|
|
@Resource
|
private IDaPassingStationCollectionService daPassingStationCollectionService;
|
|
@Autowired
|
private IOmProductionOrdeInfoService productionOrdeInfoService;
|
|
@Autowired
|
private IOmProductionOrdeInfoService omProductionOrdeInfoService;
|
|
@Autowired
|
private IBsFormulaChildInfoService bsFormulaChildInfoService;
|
|
private IDaPassingStationCollectionService passingStationCollectionService;
|
|
|
String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
|
|
/**
|
* 导出点检任务列表
|
*/
|
@PostMapping("/deviceResultFeedback")
|
public AjaxResult hdy(@RequestBody ParentVO parentVO)
|
{
|
//保存
|
//过站记录
|
// String productNum = parentVO.getProductNum();
|
// if (StrUtil.isNotBlank(productNum)){
|
// List<OmProductionOrdeInfo> list = productionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, productNum));
|
// if (CollUtil.isNotEmpty(list)){
|
// OmProductionOrdeInfo omProductionOrdeInfo = list.get(0);
|
// DaPassingStationCollection passingStationCollection = new DaPassingStationCollection();
|
// passingStationCollection.setWorkOrderNo(omProductionOrdeInfo.getWorkOrderNo());
|
// passingStationCollection.setSfcCode(productNum);
|
// passingStationCollection.setProductCode(omProductionOrdeInfo.getProductCode());
|
// passingStationCollection.setLocationCode(parentVO.getStationCode());
|
// passingStationCollection.setOutRsSign(parentVO.getTotalResult());
|
// passingStationCollection.setCreateTime(new Date());
|
//
|
// List<ChildVO> checkList = parentVO.getCheckList();
|
// if (CollUtil.isNotEmpty(checkList)){
|
// List<String> collect = checkList.stream()
|
// .filter(x -> Constants.IN_BOUND_TIME_CODE.equals(x.getItemCode()))
|
// .map(ChildVO::getItemValue)
|
// .collect(Collectors.toList());
|
// if (CollUtil.isNotEmpty(collect)){
|
// String s = collect.get(0);
|
// if (StrUtil.isNotBlank(s)){
|
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
// try {
|
// Date parse = simpleDateFormat.parse(s);
|
// passingStationCollection.setInboundTime(parse);
|
// } catch (ParseException e) {
|
// throw new RuntimeException(e);
|
// }
|
// }
|
// }
|
// List<String> collect2 = checkList.stream()
|
// .filter(x -> Constants.OUT_BOUND_TIME_CODE.equals(x.getItemCode()))
|
// .map(ChildVO::getItemValue)
|
// .collect(Collectors.toList());
|
// if (CollUtil.isNotEmpty(collect2)){
|
// String s = collect2.get(0);
|
// if (StrUtil.isNotBlank(s)){
|
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
// try {
|
// Date parse = simpleDateFormat.parse(s);
|
// passingStationCollection.setOutboundTime(parse);
|
// } catch (ParseException e) {
|
// throw new RuntimeException(e);
|
// }
|
// }
|
// }
|
// daPassingStationCollectionService.save(passingStationCollection);
|
// //参数保存
|
// List<DaParamCollection> paramCollectionList = new ArrayList<>();
|
// for (ChildVO childVO : checkList) {
|
// DaParamCollection daParamCollection = new DaParamCollection();
|
// daParamCollection.setWorkOrderNo(omProductionOrdeInfo.getWorkOrderNo());
|
// daParamCollection.setSfcCode(productNum);
|
// daParamCollection.setProductCode(omProductionOrdeInfo.getProductCode());
|
// daParamCollection.setLocationCode(omProductionOrdeInfo.getStationCode());
|
// daParamCollection.setParamCode(childVO.getItemCode());
|
// daParamCollection.setParamValue(childVO.getItemValue());
|
// daParamCollection.setCollectionTime(new Date());
|
// daParamCollection.setParamName(childVO.getItemText());
|
// paramCollectionList.add(daParamCollection);
|
// }
|
// if (CollUtil.isNotEmpty(paramCollectionList)){
|
// daParamCollectionService.insertBatch(paramCollectionList);
|
// }
|
// }
|
// }
|
// }
|
ObjectMapper mapper = new ObjectMapper();
|
List<ChildVO> li = parentVO.getCheckList();
|
String s = null;
|
try {
|
s = mapper.writeValueAsString(li);
|
} catch (JsonProcessingException e) {
|
throw new RuntimeException(e);
|
}
|
DaTestDeviceInterface daTestDeviceInterface = new DaTestDeviceInterface();
|
daTestDeviceInterface.setRecordId(parentVO.getRecordId());
|
daTestDeviceInterface.setStationCode(parentVO.getStationCode());
|
daTestDeviceInterface.setProductNum(parentVO.getProductNum());
|
daTestDeviceInterface.setTotalResult(parentVO.getTotalResult());
|
daTestDeviceInterface.setCheckList(s);
|
daTestDeviceInterfaceService.save(daTestDeviceInterface);
|
HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
|
return AjaxResult.success(execute.body());
|
}
|
|
@GetMapping("/productionWorkOrderRequest")
|
public AjaxResult productionWorkOrderRequest(){
|
List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list();
|
List<RestFulOrder> restFulOrders = new ArrayList<>();
|
for (OmProductionOrdeInfo omProductionOrdeInfo : list) {
|
RestFulOrder order = new RestFulOrder();
|
order.setProductionOrderNum(omProductionOrdeInfo.getWorkOrderNo());
|
order.setProductNum(omProductionOrdeInfo.getProductNum());
|
order.setMaterialCode(omProductionOrdeInfo.getMaterialCode());
|
order.setStationCode(omProductionOrdeInfo.getStationCode());
|
// order.setPlanQty(omProductionOrdeInfo.getPlanQty());
|
restFulOrders.add(order);
|
}
|
return AjaxResult.success(restFulOrders);
|
}
|
|
@GetMapping("/getQualityData")
|
public AjaxResult getQualityData(){
|
List<DaPassingStationCollection> qualified = daPassingStationCollectionService.list(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getOutRsSign, "1"));
|
List<DaPassingStationCollection> unQualified = daPassingStationCollectionService.list(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getOutRsSign, "2"));
|
Map<String,Integer> map = new HashMap<>();
|
map.put("qualified",qualified.size());
|
map.put("unQualified",unQualified.size());
|
return AjaxResult.success(map);
|
}
|
|
|
|
@GetMapping("/productionOrderComponentRequest")
|
public AjaxResult productionOrderComponentRequest(BsFormulaChildInfo bsFormulaChildInfo){
|
Map<String,List<String>> map = new HashMap<>();
|
List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
|
.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getProcessesCode())
|
.eq(BsFormulaChildInfo::getOperationType, "2")
|
);
|
List<ProductionOrderComponentRequest> requests = new ArrayList<>();
|
for (BsFormulaChildInfo info : list) {
|
ProductionOrderComponentRequest request = new ProductionOrderComponentRequest();
|
request.setMaterialCode(info.getMaterialCode());
|
request.setOperationSteps(info.getOperationSteps());
|
requests.add(request);
|
}
|
return AjaxResult.success(requests);
|
}
|
|
|
@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;
|
}
|
|
}
|