-
admin
2024-04-25 5316c506119ad056a5640650e5e79babe4194d38
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -1,10 +1,15 @@
package com.jcdm.main.da.paramCollection.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.db.Db;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.main.bs.formula.service.IBsFormulaInfoService;
import com.jcdm.main.bs.formula.service.impl.BsFormulaInfoServiceImpl;
import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
@@ -13,11 +18,16 @@
import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper;
import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
import com.jcdm.main.plcserver.sub.OPCUaSubscription;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
/**
@@ -39,10 +49,19 @@
    private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
    @Autowired
    private IBsFormulaChildInfoService bsFormulaChildInfoService;
    @Autowired
    private MiloService miloService;
    @Autowired
    private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
    @Resource
    private SqlSessionFactory sqlSessionFactory;
    @Autowired
    private IDaParamCollectionService daParamCollectionService;
    /**
     * 查询设备产品过程参数采集
@@ -66,6 +85,27 @@
    public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection)
    {
        return daParamCollectionMapper.selectDaParamCollectionList(daParamCollection);
    }
    @Override
    public void saveBeachDaParamCollection(List<DaParamCollection> list) {
        // ExecutorType.SIMPLE: 这个执行器类型不做特殊的事情。它为每个语句的执行创建一个新的预处理语句。
        // ExecutorType.REUSE: 这个执行器类型会复用预处理语句。
        // ExecutorType.BATCH: 这个执行器会批量执行所有更新语句,如果 SELECT 在它们中间执行还会标定它们是 必须的,来保证一个简单并易于理解的行为。
        // 关闭session的自动提交
        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
        try {
            DaParamCollectionMapper userMapper = sqlSession.getMapper(DaParamCollectionMapper.class);
            list.stream().forEach(DaParamCollection -> userMapper.insertDaParamCollection(DaParamCollection));
            // 提交数据
            sqlSession.commit();
            sqlSession.rollback();
        } catch (Exception e) {
            sqlSession.rollback();
        } finally {
            sqlSession.close();
        }
    }
    /**
@@ -166,6 +206,18 @@
    @Override
    public void saveCampaignTimeParameters(DaParamCollection daParamCollection) {
        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
                .eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode())
                .eq(BsFormulaChildInfo::getSpareField4, "1")
        );
        if(!list.get(0).getResults().equals("OK")){
            try {
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            return;
        }
        BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
        bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
        bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
@@ -193,15 +245,43 @@
                //更新过站记录表出站时间
                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
                daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
                daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
                List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
                daPassingStationCollections.get(0).setOutboundTime(new Date());
                int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
//                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
                //给opc发21
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("OP."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
    @Override
    public void insertBatch(List<DaParamCollection> confList){
        try{
            this.saveBatch(confList);
        }catch (Exception e){
            return;
        }
    }
    @Override
    public void replaceAssemblyCode(DaParamCollection daParamCollection) {
        List<DaParamCollection> list = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>()
                .eq(DaParamCollection::getSfcCode, daParamCollection.getSfcCode())
                .eq(DaParamCollection::getLocationCode, daParamCollection.getLocationCode())
        );
        if(list.size() > 0){
            for (DaParamCollection paramCollection : list) {
                paramCollection.setSfcCode(daParamCollection.getYzSfcCode());
                daParamCollectionService.saveOrUpdate(paramCollection);
            }
        }
    }
}