hdy
2025-03-29 1717a12c83db01e3b31ea9ed913e5bacaf9edbf3
billion-main/src/main/java/com/billion/main/da/service/impl/DaStationCollectionServiceImpl.java
@@ -1,13 +1,24 @@
package com.billion.main.da.service.impl;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.utils.http.HttpUtils;
import com.billion.main.constant.Constants;
import com.billion.main.da.domain.DaStationCollection;
import com.billion.main.da.domain.CollectTrack;
import com.billion.main.da.mapper.DaStationCollectionMapper;
import com.billion.main.da.service.IDaStationCollectionService;
import com.billion.main.om.domain.OmOrderScheduling;
import com.billion.main.om.service.IOmOrderSchedulingService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Objects;
/**
 * 过站采集Service业务层处理
@@ -15,12 +26,14 @@
 * @author HDY
 * @date 2025-02-12
 */
@Slf4j
@Service
public class DaStationCollectionServiceImpl extends ServiceImpl<DaStationCollectionMapper, DaStationCollection> implements IDaStationCollectionService
{
    @Autowired
    private DaStationCollectionMapper daStationCollectionMapper;
    @Autowired
    public IOmOrderSchedulingService omOrderSchedulingService;
    /**
     * 查询过站采集
     * 
@@ -51,9 +64,65 @@
     * @param daStationCollection 过站采集
     * @return 结果
     */
//    @Override
//    public int insertDaStationCollection(DaStationCollection daStationCollection)
//    {
////        EngineData engineData = new EngineData();
////        engineData.setEngineType("1");
////        String s = HttpUtils.sendPost("http://172.40.161.71:8080/prod-api/CollectTrack", JSONUtil.toJsonStr(engineData));
//        return daStationCollectionMapper.insertDaStationCollection(daStationCollection);
//    }
    @Override
    public int insertDaStationCollection(DaStationCollection daStationCollection)
    {
    public int insertDaStationCollection(DaStationCollection daStationCollection) {
        String url = "http://172.40.161.71:8890/Interaction/CollectTrack";
        OmOrderScheduling omOrderScheduling = new OmOrderScheduling();
        // 创建EngineData对象并设置字段值
        CollectTrack collectTrack = new CollectTrack();
        omOrderScheduling.setSfcCode(daStationCollection.getSfcCode());
        if(Objects.equals(daStationCollection.getLocationCode(), Constants.PLC1.toString()) ||
                Objects.equals(daStationCollection.getLocationCode(), Constants.C005) ||
                Objects.equals(daStationCollection.getLocationCode(), Constants.C060))
        {omOrderScheduling.setRemarks("Head");}
        else if(Objects.equals(daStationCollection.getLocationCode(), Constants.PLC2.toString()) ||
                Objects.equals(daStationCollection.getLocationCode(), Constants.OP005) ||
                Objects.equals(daStationCollection.getLocationCode(), Constants.OP310))
        {omOrderScheduling.setRemarks("Body");}
        else if(Objects.equals(daStationCollection.getLocationCode(), Constants.P010))
        {omOrderScheduling.setRemarks("Pre");}
        List<OmOrderScheduling> omOrderSchedulingList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling);
        collectTrack.setOrderNumber(omOrderSchedulingList.get(0).getWorkOrderNo());
        collectTrack.setStationName(daStationCollection.getLocationCode());
        // 处理日期时间字段
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        collectTrack.setInsertTime(sdf.format(daStationCollection.getInboundTime()));
        String factoryNumber = daStationCollection.getSfcCode();
        collectTrack.setFactoryNumber(factoryNumber);
        // EngineType设置为FactoryNumber去除后九位
        // 假设此处为取factoryNumber的前部分作为EngineType
        String engineType = daStationCollection.getSfcCode().length() > 9 ? daStationCollection.getSfcCode().substring(0, daStationCollection.getSfcCode().length() - 9) : daStationCollection.getSfcCode();
        collectTrack.setEngineType(engineType);
        // EngineNumber设置为FactoryNumber的后九位
        // 假设此处为取factoryNumber的后九位字符
        String engineNumber = daStationCollection.getSfcCode().length() >= 9 ? daStationCollection.getSfcCode().substring(daStationCollection.getSfcCode().length() - 9) : daStationCollection.getSfcCode();
        collectTrack.setEngineNumber(engineNumber);
        // CycleTime设置为outboundTime减去inboundTime的时间差(格式化为字符串)
        long cycleTimeMillis = daStationCollection.getOutboundTime().getTime() - daStationCollection.getInboundTime().getTime();
        long cycleTimeSeconds = cycleTimeMillis / 1000; // 假设以秒为单位
        collectTrack.setCycleTime(String.valueOf(cycleTimeSeconds));
        collectTrack.setFlag(Integer.parseInt(daStationCollection.getStatus()));
        // 发送POST请求
        try {
            HttpResponse response = HttpRequest.post(url).body(JSONUtil.toJsonStr(collectTrack)).execute();
            log.info("推送成功,响应报文: {}", response);
        } catch (Exception e) {
            // 记录日志
            log.error("推送失败, sfcCode: {}",collectTrack.getFactoryNumber());
        }
        // 无论推送成功与否,都继续执行数据库插入操作
        return daStationCollectionMapper.insertDaStationCollection(daStationCollection);
    }