-
admin
2024-06-21 d76bbaa8a9a70124045dc4c9753e5a868ac4e7d2
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -36,9 +36,12 @@
import com.jcdm.main.restful.qingYan.doman.ParentVO;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
@@ -47,6 +50,7 @@
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
@@ -55,9 +59,12 @@
 * @author yyt
 * @date 2023-12-13
 */
@Slf4j
@Service
public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
{
    private static final Logger logger = LoggerFactory.getLogger("sys-user");
    @Autowired
    private DaParamCollectionMapper daParamCollectionMapper;
@@ -119,6 +126,7 @@
        // ExecutorType.SIMPLE: 这个执行器类型不做特殊的事情。它为每个语句的执行创建一个新的预处理语句。
        // ExecutorType.REUSE: 这个执行器类型会复用预处理语句。
        // ExecutorType.BATCH: 这个执行器会批量执行所有更新语句,如果 SELECT 在它们中间执行还会标定它们是 必须的,来保证一个简单并易于理解的行为。
        logger.info("进入乐工批量方法saveBeachDaParamCollection");
        // 关闭session的自动提交
        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
@@ -128,6 +136,8 @@
            // 提交数据
            sqlSession.commit();
            sqlSession.rollback();
            logger.info("结束乐工批量方法saveBeachDaParamCollection");
        } catch (Exception e) {
            sqlSession.rollback();
        } finally {
@@ -236,6 +246,7 @@
                daParamCollectionTemp.setCollectionTime(new Date());
                daParamCollectionTemp.setSfcCode(daParamCollection.getProductBarcode());
                daParamCollectionTemp.setLocationCode(daParamCollection.getLocationCode());
                daParamCollectionTemp.setProductCode(daParamCollection.getProductCode());
                daParamCollectionTempService.save(daParamCollectionTemp);
            }
        }
@@ -453,6 +464,7 @@
    @Override
    public void pushGeelycvMesFeedback(String packID, String stationCode) {
        logger.info("进入人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        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";
@@ -507,23 +519,38 @@
            }
            parentVO.setCheckList(listChildVo);
            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
            List<Long> idsList = paramList.stream().map(DaParamCollectionTemp::getId).collect(Collectors.toList());
            Long[] array = idsList.toArray(new Long[0]);
            daParamCollectionTempService.deleteDaParamCollectionTempByIds(array);
            System.out.println(execute.body());
            try{
                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                    logger.info("开始执行异步方法");
                    HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
                    logger.info("异步方法执行结束");
                    logger.info("手动工位传工厂MES异步方法{}"+execute.body());
                    List<Long> idsList = paramList.stream().map(DaParamCollectionTemp::getId).collect(Collectors.toList());
                    Long[] array = idsList.toArray(new Long[0]);
                    int i = daParamCollectionTempService.deleteDaParamCollectionTempByIds(array);
                    logger.info("删除临时表数据条数{}-工位{}-pack码{}",i,stationCode,packID);
                });
            }catch (Exception e){
                System.out.println(e.getMessage());
            }
//            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
//            System.out.println(execute.body());
            System.out.println("-----------------------"+totalResult);
            logger.info("结束人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID);
        }
    }
    @Override
    public void automaticWorkstationPushGeelycvMesFeedback(String packID, String stationCode,List<DaParamCollection> paramList) {
        logger.info("进入工位{}-工厂MES推送数据方法automaticWorkstationPushGeelycvMesFeedback",stationCode);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        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";
        String totalResult = "0";
        if(paramList.size() > 0){
            logger.info("进入工位{}-拼数据",stationCode);
            ParentVO parentVO = new ParentVO();
            parentVO.setSiteCode("3983");
            parentVO.setRecordId(String.valueOf(Instant.now().toEpochMilli()));
@@ -571,10 +598,24 @@
                listChildVo.add(childVO);
            }
            parentVO.setCheckList(listChildVo);
            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
            System.out.println(execute.body());
            logger.info("结束工位{}-拼数据",stationCode);
            logger.info("进入工位{}-工厂MES推送数据方法HttpResponseSend",stationCode);
            try{
                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                    logger.info("开始执行异步方法");
                    HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
                    System.out.println(execute.body());
                    logger.info("异步方法执行结束");
                    logger.info("自动工位传工厂MES异步方法{}"+execute.body());
                });
            }catch (Exception e){
                System.out.println(e.getMessage());
            }
//            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
            logger.info("结束工位{}-工厂MES推送数据方法HttpResponseSend",stationCode);
            System.out.println("-----------------------"+totalResult);
        }
        logger.info("结束工位{}-工厂MES推送数据方法automaticWorkstationPushGeelycvMesFeedback",stationCode);
    }
    @Override
@@ -621,8 +662,18 @@
        parentVO.setTotalResult("1");
        parentVO.setCheckList(childVOList);
        HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
//        try{
//            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
//                logger.info("开始执行异步方法");
//                HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
//                System.out.println(execute.body());
//                logger.info("异步方法执行结束");
//                logger.info("称重异步方法{}",execute.body());
//            });
//        }catch (Exception e){
//            System.out.println(e.getMessage());
//        }
        RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"OP500",format.format(new Date()));
        System.out.println(execute.body());
    }
}