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;
|
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.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.*;
|
|
/**
|
* 设备产品过程参数采集Service业务层处理
|
*
|
* @author yyt
|
* @date 2023-12-13
|
*/
|
@Service
|
public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
|
{
|
@Autowired
|
private DaParamCollectionMapper daParamCollectionMapper;
|
|
@Autowired
|
private DaCollectionParamConfMapper daCollectionParamConfMapper;
|
|
@Autowired
|
private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
|
|
@Autowired
|
private IBsFormulaChildInfoService bsFormulaChildInfoService;
|
|
@Autowired
|
private MiloService miloService;
|
|
@Autowired
|
private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
|
|
@Resource
|
private SqlSessionFactory sqlSessionFactory;
|
|
@Autowired
|
private IDaParamCollectionService daParamCollectionService;
|
|
/**
|
* 查询设备产品过程参数采集
|
*
|
* @param id 设备产品过程参数采集主键
|
* @return 设备产品过程参数采集
|
*/
|
@Override
|
public DaParamCollection selectDaParamCollectionById(Long id)
|
{
|
return daParamCollectionMapper.selectDaParamCollectionById(id);
|
}
|
|
/**
|
* 查询设备产品过程参数采集列表
|
*
|
* @param daParamCollection 设备产品过程参数采集
|
* @return 设备产品过程参数采集
|
*/
|
@Override
|
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();
|
}
|
}
|
|
/**
|
* 新增设备产品过程参数采集
|
*
|
* @param daParamCollection 设备产品过程参数采集
|
* @return 结果
|
*/
|
@Override
|
public int insertDaParamCollection(DaParamCollection daParamCollection)
|
{
|
daParamCollection.setCreateTime(DateUtils.getNowDate());
|
return daParamCollectionMapper.insertDaParamCollection(daParamCollection);
|
}
|
|
/**
|
* 修改设备产品过程参数采集
|
*
|
* @param daParamCollection 设备产品过程参数采集
|
* @return 结果
|
*/
|
@Override
|
public int updateDaParamCollection(DaParamCollection daParamCollection)
|
{
|
daParamCollection.setUpdateTime(DateUtils.getNowDate());
|
return daParamCollectionMapper.updateDaParamCollection(daParamCollection);
|
}
|
|
/**
|
* 批量删除设备产品过程参数采集
|
*
|
* @param ids 需要删除的设备产品过程参数采集主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteDaParamCollectionByIds(Long[] ids)
|
{
|
return daParamCollectionMapper.deleteDaParamCollectionByIds(ids);
|
}
|
|
/**
|
* 删除设备产品过程参数采集信息
|
*
|
* @param id 设备产品过程参数采集主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteDaParamCollectionById(Long id)
|
{
|
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) {
|
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());
|
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());
|
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("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.getYzSfcCode())
|
);
|
if(list.size() > 0){
|
for (DaParamCollection paramCollection : list) {
|
paramCollection.setSfcCode(daParamCollection.getSfcCode());
|
daParamCollectionService.saveOrUpdate(paramCollection);
|
}
|
}
|
|
}
|
|
@Override
|
public void yzAddBasicParameters(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 jrmSaveCampaignTimeParameters(DaParamCollection daParamCollection) {
|
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());
|
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
|
try {
|
// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
|
String strA = daParamCollection.getLocationCode() + "A";
|
String strB = daParamCollection.getLocationCode() + "B";
|
miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
|
miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strB+".RecordDataDone").value(21).build());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|