package com.jcdm.main.restful.qingYan.service;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpResponse;
|
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.jcdm.common.core.domain.AjaxResult;
|
import com.jcdm.common.utils.StringUtils;
|
import com.jcdm.framework.websocket.WebSocketUsers;
|
import com.jcdm.main.bs.beatSetting.domain.BsBeatSetting;
|
import com.jcdm.main.bs.beatSetting.service.IBsBeatSettingService;
|
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.cellData.domain.DaCellData;
|
import com.jcdm.main.da.cellData.service.IDaCellDataService;
|
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.da.testDeviceInterfaceTemp.domain.DaTestDeviceInterfaceTemp;
|
import com.jcdm.main.da.testDeviceInterfaceTemp.service.IDaTestDeviceInterfaceTempService;
|
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
|
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
|
import com.jcdm.main.restful.factoryMes.service.RestfulService;
|
import com.jcdm.main.restful.qingYan.doman.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.aspectj.weaver.loadtime.Aj;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import javax.websocket.Session;
|
import java.lang.reflect.Field;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.concurrent.CompletableFuture;
|
import java.util.stream.Collectors;
|
@Slf4j
|
@RestController
|
@RequestMapping("/jcdmMes")
|
public class ExternalInterface {
|
Map<String, Session> map = WebSocketUsers.getUsers();
|
|
private static final Logger logger = LoggerFactory.getLogger("sys-user");
|
|
public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
@Autowired
|
private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
|
|
@Autowired
|
private IOmProductionOrdeInfoService omProductionOrdeInfoService;
|
|
@Autowired
|
private IBsFormulaChildInfoService bsFormulaChildInfoService;
|
|
@Autowired
|
private IDaCellDataService daCellDataService;
|
|
@Autowired
|
private IDaTestDeviceInterfaceTempService daTestDeviceInterfaceTempService;
|
String url = Constants.FACTORY_EMS_UAT_RUL+"deviceResultFeedback";
|
|
// String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
|
|
// String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
|
|
/**
|
* 20工位接收清研数据
|
*/
|
@PostMapping("/receiveOVCDataFrom020Workstations")
|
public AjaxResult receiveOVCDataFrom020Workstations(@RequestBody ParentVO parentVO)
|
{
|
|
return AjaxResult.success(null);
|
}
|
|
/**
|
* 导出点检任务列表
|
*/
|
@PostMapping("/deviceResultFeedback")
|
public AjaxResult deviceResultFeedback(@RequestBody ParentVO parentVO)
|
{
|
ObjectMapper mapper = new ObjectMapper();
|
List<ChildVO> li = parentVO.getCheckList();
|
String checkList = "";
|
try {
|
checkList = mapper.writeValueAsString(li);
|
} catch (JsonProcessingException e) {
|
throw new RuntimeException(e);
|
}
|
this.saveDaTestDeviceInterface(parentVO,checkList);
|
if(parentVO.getStationCode().equals("M1OP020")){
|
this.saveDaTestDeviceInterfaceTemp(parentVO,checkList);
|
}
|
HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
|
return AjaxResult.success(execute.body());
|
}
|
|
public void saveDaTestDeviceInterface(ParentVO parentVO,String checkList){
|
DaTestDeviceInterface daTestDeviceInterface = new DaTestDeviceInterface();
|
daTestDeviceInterface.setRecordId(parentVO.getRecordId());
|
daTestDeviceInterface.setStationCode(parentVO.getStationCode());
|
daTestDeviceInterface.setProductNum(parentVO.getProductNum());
|
daTestDeviceInterface.setTotalResult(parentVO.getTotalResult());
|
daTestDeviceInterface.setCheckList(checkList);
|
daTestDeviceInterface.setCreateTime(new Date());
|
daTestDeviceInterfaceService.save(daTestDeviceInterface);
|
}
|
|
public void saveDaTestDeviceInterfaceTemp(ParentVO parentVO,String checkList){
|
DaTestDeviceInterfaceTemp daTestDeviceInterfaceTemp = new DaTestDeviceInterfaceTemp();
|
daTestDeviceInterfaceTemp.setRecordId(parentVO.getRecordId());
|
daTestDeviceInterfaceTemp.setStationCode(parentVO.getStationCode());
|
daTestDeviceInterfaceTemp.setProductNum(parentVO.getProductNum());
|
daTestDeviceInterfaceTemp.setTotalResult(parentVO.getTotalResult());
|
daTestDeviceInterfaceTemp.setCheckList(checkList);
|
daTestDeviceInterfaceTemp.setCreateTime(new Date());
|
daTestDeviceInterfaceTempService.save(daTestDeviceInterfaceTemp);
|
}
|
|
@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());
|
order.setCreateTime(format.format(omProductionOrdeInfo.getCreateTime()));
|
restFulOrders.add(order);
|
}
|
return AjaxResult.success(restFulOrders);
|
}
|
|
@GetMapping("/productionOrderComponentRequest")
|
public AjaxResult productionOrderComponentRequest(BsFormulaChildInfo bsFormulaChildInfo){
|
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("/sendWebSocket")
|
public void sendWebSocket(@RequestBody BsFormulaChildInfo bsFormulaChildInfo)
|
{
|
CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
|
logger.info("接收电芯开始执行异步方法");
|
WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults());
|
logger.info("接收电芯异步方法执行结束");
|
});
|
// WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), bsFormulaChildInfo.getResults());
|
}
|
|
/**
|
* 接收电芯数据
|
*/
|
@PostMapping("/receivingBatteryCellData")
|
public AjaxResult receivingBatteryCellData(@RequestBody CellDataVo cellDataVo){
|
try {
|
ObjectMapper objectMapper = new ObjectMapper();
|
JSONObject jsonObject = new JSONObject(cellDataVo);
|
String cellListString = jsonObject.getStr("cellList");
|
JsonNode cellListNode = objectMapper.readValue(cellListString, JsonNode.class);
|
List<DaCellData> daCellDataList = new ArrayList<>();
|
for (JsonNode jsonNode : cellListNode) {
|
String cellCheckListString = jsonNode.path("cellCheckList").toString();
|
JsonNode cellCheckListNode = objectMapper.readValue(cellCheckListString, JsonNode.class);
|
for (JsonNode checkNode : cellCheckListNode) {
|
//电芯挡位
|
String batteryCellGear = checkNode.path("cellItem").toString().replaceAll("\"", "");
|
if(batteryCellGear.equals("电芯档位")){
|
DaCellData daCellData = new DaCellData();
|
daCellData.setSiteCode(jsonObject.getStr("siteCode"));
|
daCellData.setModuleSerial(jsonObject.getStr("moduleSerial"));
|
daCellData.setModuleModel(jsonObject.getStr("moduleModel"));
|
daCellData.setAbModule(jsonObject.getStr("ABModule"));
|
daCellData.setPackageNo(jsonObject.getStr("packageNo"));
|
daCellData.setSupplierModuleBarcode(jsonObject.getStr("supplierModuleBarcode"));
|
daCellData.setCustomerModuleBarcode(jsonObject.getStr("customerModuleBarcode"));
|
daCellData.setCellSerial(jsonNode.path("cellSerial").toString().replaceAll("\"", ""));
|
daCellData.setCellModel(jsonNode.path("cellModel").toString().replaceAll("\"", ""));
|
daCellData.setGbCellCode(jsonNode.path("GBCellCode").toString().replaceAll("\"", ""));
|
daCellData.setGbModuleCode(jsonNode.path("GBModuleCode").toString().replaceAll("\"", ""));
|
daCellData.setCellItem(checkNode.path("cellItem").toString().replaceAll("\"", ""));
|
daCellData.setCellValue(checkNode.path("cellValue").toString().replaceAll("\"", ""));
|
daCellData.setCreateUser("工厂MES");
|
daCellData.setCreateTime(new Date());
|
daCellDataList.add(daCellData);
|
}
|
}
|
}
|
CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
|
logger.info("接收电芯开始执行异步方法");
|
daCellDataService.insertBatch(daCellDataList);
|
logger.info("接收电芯异步方法执行结束");
|
});
|
|
return AjaxResult.success("API调用成功");
|
}catch (Exception e){
|
return AjaxResult.error("API调用失败");
|
}
|
}
|
|
}
|