-
懒羊羊
2024-03-23 e20d7373595960ad6be9bd6373a3c6f186e76e5c
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -1,13 +1,24 @@
package com.jcdm.main.da.paramCollection.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
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.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.*;
/**
 * 设备产品过程参数采集Service业务层处理
@@ -16,10 +27,22 @@
 * @date 2023-12-13
 */
@Service
public class DaParamCollectionServiceImpl implements IDaParamCollectionService
public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
{
    @Autowired
    private DaParamCollectionMapper daParamCollectionMapper;
    @Autowired
    private DaCollectionParamConfMapper daCollectionParamConfMapper;
    @Autowired
    private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
    @Autowired
    private MiloService miloService;
    @Autowired
    private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
    /**
     * 查询设备产品过程参数采集
@@ -94,4 +117,91 @@
    {
        return daParamCollectionMapper.deleteDaParamCollectionById(id);
    }
    @Override
    public void addBasicParameters(DaParamCollection daParamCollection) {
        // 假设这是从数据库或其他地方获取的参数数据
        Map<String, String> map = new HashMap<>();
        map.put("GC", "南浔工厂");
        map.put("CXBH", "Pack线");
        map.put("SBBH", "设备001");
        map.put("YGBH", "员工001");
        map.put("GDBH", daParamCollection.getWorkOrderNo());
        map.put("CPXH", daParamCollection.getModel());
        map.put("INT", DateUtil.formatDateTime(new Date()));
        map.forEach((key, value) -> {
            DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
            daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
            daCollectionParamConf.setCollectParameterId(key);
            List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
            DaParamCollection saveData = new DaParamCollection();
            saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
            saveData.setProductCode(daParamCollection.getProductCode());
            saveData.setLocationCode(daParamCollection.getLocationCode());
            saveData.setSfcCode(daParamCollection.getProductBarcode());
            saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
            saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
            saveData.setCollectionTime(new Date());
            saveData.setParamValue(value);
            daParamCollectionMapper.insertDaParamCollection(saveData);
        });
    }
    @Override
    public void addTighteningParameters(DaParamCollection daParamCollection) {
        String tightenData = daParamCollection.getTightenTheArray();
        tightenData = tightenData.replace("[", "").replace("]", "").replace(" ", "");
        String[] tightenDataParts = tightenData.split(",");
        String paramCode = daParamCollection.getParamCode();
        String[] paramCodeParts = paramCode.split(",");
        for (int i = 0; i < paramCodeParts.length; i++) {
            daParamCollection.setParamValue(tightenDataParts[i]);
            daParamCollection.setParamCode(paramCodeParts[i]);
            daParamCollection.setCollectionTime(new Date());
            daParamCollection.setSfcCode(daParamCollection.getProductBarcode());
            daParamCollectionMapper.insertDaParamCollection(daParamCollection);
        }
    }
    @Override
    public void saveCampaignTimeParameters(DaParamCollection daParamCollection) {
        BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
        bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
        bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
        bsFormulaChildInfo.setSpareField4("1");
        List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
        String result = bsFormulaChildInfos.get(0).getResults();
        if(result != null && !result.isEmpty()){
            try {
                //过站参数采集记录出站时间
                DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
                daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
                daCollectionParamConf.setCollectParameterId("OUTT");
                List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
                DaParamCollection saveData = new DaParamCollection();
                saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
                saveData.setProductCode(daParamCollection.getProductCode());
                saveData.setLocationCode(daParamCollection.getLocationCode());
                saveData.setSfcCode(daParamCollection.getProductBarcode());
                saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
                saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
                saveData.setCollectionTime(new Date());
                saveData.setParamValue(DateUtil.formatDateTime(new Date()));
                daParamCollectionMapper.insertDaParamCollection(saveData);
                //更新过站记录表出站时间
                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
                daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
                List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
                daPassingStationCollections.get(0).setOutboundTime(new Date());
                int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
                //给opc发21
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("OP."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
}