package com.jcdm.main.bs.formulaChild.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
import java.util.stream.Collectors;
|
|
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.jcdm.common.core.domain.AjaxResult;
|
import com.jcdm.common.utils.DateUtils;
|
import com.jcdm.common.utils.StringUtils;
|
import com.jcdm.framework.websocket.WebSocketUsers;
|
import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
|
import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
|
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.paramCollectionTemp.domain.DaParamCollectionTemp;
|
import com.jcdm.main.da.paramCollectionTemp.service.IDaParamCollectionTempService;
|
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.da.testDeviceInterface.service.IDaTestDeviceInterfaceService;
|
import com.jcdm.main.plcserver.util.TimeUtil;
|
import com.kangaroohy.milo.model.ReadWriteEntity;
|
import com.kangaroohy.milo.service.MiloService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.aspectj.weaver.loadtime.Aj;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
|
import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
|
import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
|
|
import javax.websocket.Session;
|
|
/**
|
* 配方配置子信息Service业务层处理
|
*
|
* @author ruimin
|
* @date 2023-12-26
|
*/
|
@Service
|
@Slf4j
|
public class BsFormulaChildInfoServiceImpl extends ServiceImpl<BsFormulaChildInfoMapper,BsFormulaChildInfo> implements IBsFormulaChildInfoService
|
{
|
private static final Logger logger = LoggerFactory.getLogger("sys-user");
|
@Autowired
|
private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
|
|
@Autowired
|
private IBsFormulaChildInfoService bsFormulaChildInfoService;
|
|
@Autowired
|
private DaParamCollectionMapper daParamCollectionMapper;
|
|
@Autowired
|
private MiloService miloService;
|
|
@Autowired
|
private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
|
|
@Autowired
|
private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
|
|
@Autowired
|
private IDaParamCollectionService daParamCollectionService;
|
|
@Autowired
|
private IDaPassingStationCollectionService daPassingStationCollectionService;
|
|
@Autowired
|
private IDaParamCollectionTempService daParamCollectionTempService;
|
|
Map<String, Session> map = WebSocketUsers.getUsers();
|
|
@Autowired
|
private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService;
|
|
/**
|
* 查询配方配置子信息
|
*
|
* @param id 配方配置子信息主键
|
* @return 配方配置子信息
|
*/
|
@Override
|
public BsFormulaChildInfo selectBsFormulaChildInfoById(Long id)
|
{
|
return bsFormulaChildInfoMapper.selectBsFormulaChildInfoById(id);
|
}
|
|
/**
|
* 查询配方配置子信息列表
|
*
|
* @param bsFormulaChildInfo 配方配置子信息
|
* @return 配方配置子信息
|
*/
|
@Override
|
public List<BsFormulaChildInfo> selectBsFormulaChildInfoList(BsFormulaChildInfo bsFormulaChildInfo)
|
{
|
return bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
|
}
|
|
/**
|
* 新增配方配置子信息
|
*
|
* @param bsFormulaChildInfo 配方配置子信息
|
* @return 结果
|
*/
|
@Override
|
public int insertBsFormulaChildInfo(BsFormulaChildInfo bsFormulaChildInfo)
|
{
|
bsFormulaChildInfo.setCreateTime(DateUtils.getNowDate());
|
return bsFormulaChildInfoMapper.insertBsFormulaChildInfo(bsFormulaChildInfo);
|
}
|
|
/**
|
* 修改配方配置子信息
|
*
|
* @param bsFormulaChildInfo 配方配置子信息
|
* @return 结果
|
*/
|
@Override
|
public int updateBsFormulaChildInfo(BsFormulaChildInfo bsFormulaChildInfo)
|
{
|
bsFormulaChildInfo.setUpdateTime(DateUtils.getNowDate());
|
return bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
|
}
|
|
/**
|
* 批量删除配方配置子信息
|
*
|
* @param ids 需要删除的配方配置子信息主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteBsFormulaChildInfoByIds(Long[] ids)
|
{
|
return bsFormulaChildInfoMapper.deleteBsFormulaChildInfoByIds(ids);
|
}
|
|
/**
|
* 删除配方配置子信息信息
|
*
|
* @param id 配方配置子信息主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteBsFormulaChildInfoById(Long id)
|
{
|
return bsFormulaChildInfoMapper.deleteBsFormulaChildInfoById(id);
|
}
|
|
@Override
|
public BsFormulaChildInfo selectBsFormulaChildInfoByTypeTopOne(String type,String productCode,String processesCode) {
|
BsFormulaChildInfo info = new BsFormulaChildInfo();
|
info.setOperationType(type);
|
info.setProcessesCode(processesCode);
|
info.setProductCode(productCode);
|
return bsFormulaChildInfoMapper.selectBsFormulaChildInfoByTypeTopOne(info);
|
}
|
|
@Override
|
public BsFormulaChildInfo getCount(String productCode, String processesCode) {
|
BsFormulaChildInfo info = new BsFormulaChildInfo();
|
info.setProcessesCode(processesCode);
|
info.setProductCode(productCode);
|
return bsFormulaChildInfoMapper.getCount(info);
|
}
|
|
@Override
|
public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) {
|
String result = "";
|
List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
|
List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
|
.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
|
.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
|
.eq(BsFormulaChildInfo::getOperationType, "2")
|
);
|
List<String> newResultsList = infos.stream().map(s -> s.getCollectData()).collect(Collectors.toList());
|
if(newResultsList.stream().noneMatch(results -> results.equals(bsFormulaChildInfo.getScanBarcode()))){
|
for (BsFormulaChildInfo formulaChildInfo : infos) {
|
if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())) {
|
bsFormulaChildInfos.add(formulaChildInfo);
|
break;
|
}
|
}
|
}
|
// for (BsFormulaChildInfo formulaChildInfo : infos) {
|
// if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())) {
|
// bsFormulaChildInfos.add(formulaChildInfo);
|
// break;
|
// }
|
// }
|
if(bsFormulaChildInfos.size()>0){
|
String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
|
bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
|
bsFormulaChildInfos.get(0).setResults("OK");
|
bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
|
bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
|
bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
|
bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
|
addParameterCollection(bsFormulaChildInfo);
|
if (spareField4 != null && !spareField4.isEmpty()) {
|
// 执行操作
|
if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
|
try {
|
result = "3";
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|
}else {
|
result = "1";
|
}
|
return AjaxResult.success(result);
|
}
|
|
@Override
|
public AjaxResult yzUpdateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) {
|
Boolean b = true;
|
String result = "1";
|
// BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
|
// getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
|
// getMaterTwo.setOperationType("2");
|
// List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
|
// List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
|
// for (String s : collect) {
|
// if(s.equals("")){
|
//// return AjaxResult.success("扫描未完成,禁止拧紧操作!");
|
// }
|
// }
|
// BsFormulaChildInfo listQuery = new BsFormulaChildInfo();
|
// listQuery.setParamCode(bsFormulaChildInfo.getParamCode());
|
// listQuery.setProcessesCode(bsFormulaChildInfo.getLocationCode());
|
String paramData = bsFormulaChildInfo.getTightenTheArray();
|
if(paramData.contains("N")){
|
result = "3";
|
// List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
|
// bsFormulaChildInfos.get(0).setResults("NG");
|
// bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
|
// bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
|
this.updateTighteningData(bsFormulaChildInfo,"NG",paramData);
|
// return AjaxResult.success("扫描结果NG,请重新扫描!");
|
}else {
|
// List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
|
if(bsFormulaChildInfo.getSpareField2()!=null&&bsFormulaChildInfo.getSpareField3()!=null){
|
String tightenArray = bsFormulaChildInfo.getTightenTheArray().replace("[", "").replace("]", "").replace(" ", "");
|
String[] tightenDataParts = tightenArray.split(",");
|
b = TimeUtil.isNumberInRange(Double.parseDouble(tightenDataParts[0]),Double.parseDouble(bsFormulaChildInfo.getSpareField2()),Double.parseDouble(bsFormulaChildInfo.getSpareField3()));
|
}
|
if(b){
|
result = "3";
|
// bsFormulaChildInfos.get(0).setResults("OK");
|
// bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
|
// bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
|
this.updateTighteningData(bsFormulaChildInfo,"OK",paramData);
|
// logger.info("yzUpdateTighteningFormula--查询条件参数:"+listQuery);
|
// logger.info("yzUpdateTighteningFormula--查询结果:"+bsFormulaChildInfos.get(0));
|
Integer stepNumber = Integer.valueOf(bsFormulaChildInfo.getStepSort());
|
try {
|
miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
|
String spareField4 = bsFormulaChildInfo.getSpareField4();
|
if (spareField4 != null && !spareField4.isEmpty()) {
|
// 执行操作
|
if(bsFormulaChildInfo.getSpareField4().equals("1")){
|
try {
|
// WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT");
|
result = "2";
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|
}else {
|
result = "3";
|
// List<BsFormulaChildInfo> bsFormulaChildInfos1 = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
|
// bsFormulaChildInfos1.get(0).setResults("NG");
|
// String originalString = bsFormulaChildInfo.getTightenTheArray();
|
String modifiedString = paramData.replaceFirst("OK", "NG");
|
// bsFormulaChildInfos1.get(0).setCollectData(modifiedString);
|
// bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos1.get(0));
|
this.updateTighteningData(bsFormulaChildInfo,"NG",modifiedString);
|
// return AjaxResult.success("扫描结果NG,请重新扫描!");
|
}
|
}
|
return AjaxResult.success(result);
|
}
|
|
@Override
|
public AjaxResult updateTighteningData(BsFormulaChildInfo bsFormulaChildInfo,String result,String data) {
|
LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
|
updateWrapper.set(BsFormulaChildInfo::getCollectData, data);
|
updateWrapper.set(BsFormulaChildInfo::getResults, result);
|
updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
|
updateWrapper.eq(BsFormulaChildInfo::getParamCode, bsFormulaChildInfo.getParamCode());
|
boolean update = bsFormulaChildInfoService.update(new BsFormulaChildInfo(), updateWrapper);
|
return AjaxResult.success(update);
|
}
|
|
@Override
|
public AjaxResult jrmUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) {
|
String result = "";
|
List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
|
List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
|
.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
|
.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
|
.eq(BsFormulaChildInfo::getOperationType, "2")
|
).stream().filter(x -> StrUtil.isBlank(x.getCollectData())).collect(Collectors.toList());
|
|
|
for (BsFormulaChildInfo formulaChildInfo : infos) {
|
if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())){
|
bsFormulaChildInfos.add(formulaChildInfo);
|
break;
|
}
|
}
|
if(bsFormulaChildInfos.size()>0){
|
String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
|
bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
|
bsFormulaChildInfos.get(0).setResults("OK");
|
bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
|
bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
|
bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
|
bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
|
jrmAddParameterCollection(bsFormulaChildInfo);
|
|
if (spareField4 != null && !spareField4.isEmpty()) {
|
// 执行操作
|
if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
|
try {
|
result = "3";
|
// String strA = bsFormulaChildInfo.getLocationCode() + "A";
|
// String strB = bsFormulaChildInfo.getLocationCode() + "B";
|
// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
|
// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strB+".RecordDataDone").value(21).build());
|
String locationCode = bsFormulaChildInfo.getLocationCode();
|
WebSocketUsers.sendMessageToUserByText(map.get(locationCode), "OUT");
|
|
// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+locationCode+".RecordDataDone").value(21).build());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|
}else {
|
result = "1";
|
}
|
return AjaxResult.success(result);
|
}
|
|
@Override
|
public AjaxResult jrmWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
|
this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
|
daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
|
return AjaxResult.success();
|
}
|
|
@Override
|
public AjaxResult clearWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
|
this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
|
return AjaxResult.success();
|
}
|
|
@Override
|
public AjaxResult checkMaterialCode(BsFormulaChildInfo bsFormulaChildInfo) {
|
String result = "1";
|
BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
|
getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
|
getMaterTwo.setOperationType("2");
|
List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
|
List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
|
for (String s : collect) {
|
if(s.equals("")){
|
result = "2";
|
}
|
}
|
return AjaxResult.success(result);
|
}
|
|
@Override
|
public AjaxResult clearCollectDataAndResultsByProcessesCode(BsFormulaChildInfo bsFormulaChildInfo) {
|
LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
|
updateWrapper.set(BsFormulaChildInfo::getCollectData, "");
|
updateWrapper.set(BsFormulaChildInfo::getResults,"");
|
updateWrapper.set(BsFormulaChildInfo::getNgTimes,0);
|
updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
|
updateWrapper.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode());
|
BsFormulaChildInfo info = new BsFormulaChildInfo();
|
boolean update = this.update(info,updateWrapper);
|
return AjaxResult.success(update);
|
}
|
|
@Override
|
public BsFormulaChildInfo releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) {
|
return bsFormulaChildInfoMapper.releaseCheck(bsFormulaChildInfo);
|
}
|
|
//1-非本工位物料 2-正常扫描可继续下次 3-扫描结束已经是最后一位工步
|
@Override
|
public AjaxResult updateResults(BsFormulaChildInfo bsFormulaChildInfo) {
|
String result = "";
|
List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
|
List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
|
.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
|
.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
|
.eq(BsFormulaChildInfo::getOperationType, "2")
|
);
|
for (BsFormulaChildInfo formulaChildInfo : infos) {
|
if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())){
|
if(null != formulaChildInfo.getCollectData()){
|
if(!formulaChildInfo.getCollectData().equals(bsFormulaChildInfo.getScanBarcode())){
|
bsFormulaChildInfos.add(formulaChildInfo);
|
}else{
|
result = "2";
|
return AjaxResult.success(result);
|
}
|
}else{
|
bsFormulaChildInfos.add(formulaChildInfo);
|
}
|
break;
|
}
|
}
|
if(bsFormulaChildInfos.size()>0){
|
String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
|
bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
|
bsFormulaChildInfos.get(0).setResults("OK");
|
bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
|
bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
|
bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
|
bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
|
addParameterCollection(bsFormulaChildInfo);
|
|
// Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
|
// try {
|
// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".StepNumber").value(stepNumber).build());
|
// } catch (Exception e) {
|
// throw new RuntimeException(e);
|
// }
|
|
if (spareField4 != null && !spareField4.isEmpty()) {
|
// 执行操作
|
if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
|
try {
|
result = "3";
|
// miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".RecordDataDone").value(21).build());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|
}
|
return AjaxResult.success(result);
|
}
|
|
public void addParameterCollection(BsFormulaChildInfo bsFormulaChildInfo){
|
DaParamCollection daParamCollection = new DaParamCollection();
|
daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
|
daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
|
daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
|
daParamCollection.setParamValue(bsFormulaChildInfo.getParamValue());
|
daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
|
daParamCollection.setCollectionTime(new Date());
|
daParamCollection.setSfcCode(bsFormulaChildInfo.getSfcBarcode());
|
daParamCollectionMapper.insertDaParamCollection(daParamCollection);
|
|
DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
|
daParamCollectionTemp.setParamCode(bsFormulaChildInfo.getParamCode());
|
daParamCollectionTemp.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
|
daParamCollectionTemp.setLocationCode(bsFormulaChildInfo.getLocationCode());
|
daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
|
daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
|
daParamCollectionTemp.setCollectionTime(new Date());
|
daParamCollectionTemp.setSfcCode(bsFormulaChildInfo.getSfcBarcode());
|
daParamCollectionTempService.save(daParamCollectionTemp);
|
}
|
|
public void jrmAddParameterCollection(BsFormulaChildInfo bsFormulaChildInfo){
|
String scanBarCode = bsFormulaChildInfo.getSfcBarcode();
|
DaParamCollection daParamCollection = new DaParamCollection();
|
daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
|
daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
|
daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
|
daParamCollection.setParamValue(bsFormulaChildInfo.getParamValue());
|
daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
|
daParamCollection.setCollectionTime(new Date());
|
daParamCollection.setSfcCode(scanBarCode);
|
daParamCollectionMapper.insertDaParamCollection(daParamCollection);
|
|
DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
|
daParamCollectionTemp.setParamCode(bsFormulaChildInfo.getParamCode());
|
daParamCollectionTemp.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
|
daParamCollectionTemp.setLocationCode(bsFormulaChildInfo.getLocationCode());
|
daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
|
daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
|
daParamCollectionTemp.setCollectionTime(new Date());
|
daParamCollectionTemp.setSfcCode(scanBarCode);
|
|
boolean save = daParamCollectionTempService.save(daParamCollectionTemp);
|
System.out.println(save);
|
}
|
|
@Override
|
public AjaxResult workpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
|
this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
|
try {
|
daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
|
}catch (Exception e){
|
}
|
return AjaxResult.success();
|
}
|
|
@Override
|
public AjaxResult updateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) {
|
Boolean b = true;
|
BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
|
getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
|
getMaterTwo.setOperationType("2");
|
List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
|
List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
|
for (String s : collect) {
|
if(s.equals("")){
|
return AjaxResult.error("扫码未完成,禁止拧紧操作!");
|
}
|
}
|
|
//添加拧紧参数-参数采集表
|
DaParamCollection daParamCollection = new DaParamCollection();
|
daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
|
daParamCollection.setTightenTheArray(bsFormulaChildInfo.getTightenTheArray());
|
daParamCollection.setProductBarcode(bsFormulaChildInfo.getProductBarcode());
|
daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
|
daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
|
daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
|
daParamCollectionService.addTighteningParameters(daParamCollection);
|
|
String paramCode = bsFormulaChildInfo.getTightenTheArray();
|
if(paramCode.contains("NG")){
|
bsFormulaChildInfo.setResults("NG");
|
bsFormulaChildInfo.setCollectData(bsFormulaChildInfo.getTightenTheArray());
|
|
Integer ngTimes = bsFormulaChildInfo.getNgTimes();
|
bsFormulaChildInfo.setNgTimes(ngTimes+1);
|
bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
|
|
if(bsFormulaChildInfo.getNgTimes() > 3){
|
this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode(), bsFormulaChildInfo.getProductBarcode());
|
WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "NG");
|
return AjaxResult.error("超过三次拧紧 pack NG下线!");
|
}
|
return AjaxResult.error("拧紧结果NG,请重新拧紧!");
|
}else {
|
//List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
|
if(bsFormulaChildInfo.getSpareField2()!=null&&bsFormulaChildInfo.getSpareField3()!=null){
|
String tightenArray = bsFormulaChildInfo.getTightenTheArray().replace("[", "").replace("]", "").replace(" ", "");
|
String[] tightenDataParts = tightenArray.split(",");
|
b = TimeUtil.isNumberInRange(Double.parseDouble(tightenDataParts[0]),Double.parseDouble(bsFormulaChildInfo.getSpareField2()),Double.parseDouble(bsFormulaChildInfo.getSpareField3()));
|
}
|
if(b){
|
bsFormulaChildInfo.setResults("OK");
|
bsFormulaChildInfo.setCollectData(bsFormulaChildInfo.getTightenTheArray());
|
bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
|
|
Integer stepNumber = Integer.valueOf(bsFormulaChildInfo.getStepSort());
|
try {
|
miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
|
String spareField4 = bsFormulaChildInfo.getSpareField4();
|
if (spareField4 != null && !spareField4.isEmpty()) {
|
// 执行操作
|
if(spareField4.equals("1")){
|
try {
|
WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT");
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}
|
}else {
|
//List<BsFormulaChildInfo> bsFormulaChildInfos1 = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
|
bsFormulaChildInfo.setResults("NG");
|
String originalString = bsFormulaChildInfo.getTightenTheArray();
|
String modifiedString = originalString.replaceFirst("OK", "NG");
|
bsFormulaChildInfo.setCollectData(modifiedString);
|
// bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
|
|
Integer ngTimes = bsFormulaChildInfo.getNgTimes();
|
bsFormulaChildInfo.setNgTimes(ngTimes+1);
|
bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
|
|
if(bsFormulaChildInfo.getNgTimes() > 3){
|
this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode(), bsFormulaChildInfo.getProductBarcode());
|
WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "NG");
|
return AjaxResult.error("超过三次拧紧 pack NG下线!");
|
}
|
return AjaxResult.error("拧紧结果NG,请重新拧紧!");
|
}
|
|
}
|
|
|
return AjaxResult.success("拧紧成功!");
|
}
|
|
public void recordNgTighteningData(String locationCode,String productCode,String packId){
|
List<BsFormulaChildInfo> ngFormulaList = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
|
.eq(BsFormulaChildInfo::getProcessesCode, locationCode)
|
.eq(BsFormulaChildInfo::getProductCode, productCode)
|
);
|
List<BsFormulaChildInfo> filteredList = ngFormulaList.stream()
|
.filter(formula -> formula.getResults() != null && !formula.getResults().isEmpty())
|
.collect(Collectors.toList());
|
for (BsFormulaChildInfo childInfo : filteredList) {
|
BsFormulaChildInfoTemp childInfoTemp = new BsFormulaChildInfoTemp();
|
childInfoTemp.setCollectData(childInfo.getCollectData());
|
childInfoTemp.setResults(childInfo.getResults());
|
childInfoTemp.setSfcCode(packId);
|
childInfoTemp.setProcessesCode(childInfo.getProcessesCode());
|
childInfoTemp.setProductCode(childInfo.getProductCode());
|
childInfoTemp.setStepSort(childInfo.getStepSort());
|
childInfoTemp.setChildId(childInfo.getId());
|
bsFormulaChildInfoTempService.save(childInfoTemp);
|
}
|
}
|
|
|
|
|
}
|