|
@@ -49,6 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
@@ -433,25 +434,38 @@ public class MachineNodeServiceImpl implements NodeOperationService {
|
|
|
else if ("3".equals(functionType)){
|
|
|
// 加工前写入工件坐标系 根据taskid查找工件三坐标测量的工件坐标系,可能存在装夹一次未果的情况,所以取最后一条数据
|
|
|
// TODO 工件坐标系根据机场不同系统,不同通讯协议调用不同的接口
|
|
|
- OrderQuality orderQuality = orderQualityMapper.selectOne(Wraps.<OrderQuality>lbQ().eq(OrderQuality::getProcedureId,task.getProcedureId()).eq(OrderQuality::getWorkpieceId,task.getCompleteBatchNo()));
|
|
|
+ // 工件坐标系检测 三坐标测量偏移量数据添加
|
|
|
+ BomProcedure procedure = bomProcedureService.getById(task.getProcedureId());
|
|
|
+ BBom bBom = bBomMapper.selectById(procedure.getBomId());
|
|
|
+ TWorkpiece tWorkpiece = workpieceMapper.selectOne(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getCompleteBatchNo, task.getCompleteBatchNo()));
|
|
|
+ // 根据库位id查询存储在此库位的信息工装夹具信息,查询工装所需要的检测程序名
|
|
|
+ List<StockInfo> list = stockInfoService.list(Wraps.<StockInfo>lbQ().eq(StockInfo::getStorgeId, tWorkpiece.getStorgeId()));
|
|
|
+ List<Long> getGoodsIds = list.stream().map(StockInfo::getGoodsId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<MToolClamp> mToolClamps = mToolClampService.listByIds(getGoodsIds);
|
|
|
+ // 拼接上传给plc的参数, 图号-零件号-源工序号-是否毛坯件-使用的检测程序
|
|
|
+ String toPlcPar = bBom.getDrawingNo()+"&"+tWorkpiece.getUniqueCode()+"&"+bBom.getNo()+"&"+"1"+"&"+mToolClamps.get(0).getDetectionProgram();
|
|
|
+
|
|
|
+ OrderQuality orderQuality = orderQualityMapper.selectOne(Wraps.<OrderQuality>lbQ().eq(OrderQuality::getDetectionCommand,toPlcPar));
|
|
|
+
|
|
|
if(null == orderQuality){
|
|
|
// 简单处理的方式,直接将坐标偏移全部设置成0
|
|
|
- queryMap.put("x", "0");
|
|
|
- queryMap.put("y", "0");
|
|
|
- queryMap.put("z", "0");
|
|
|
- queryMap.put("a", "0");
|
|
|
- queryMap.put("b", "0");
|
|
|
- queryMap.put("c", "0");
|
|
|
+ queryMap.put("exactXaxisOffset", "0");
|
|
|
+ queryMap.put("exactYaxisOffset", "0");
|
|
|
+ queryMap.put("exactZaxisOffset", "0");
|
|
|
+ queryMap.put("exactAaxisOffset", "0");
|
|
|
+ queryMap.put("exactBaxisOffset", "0");
|
|
|
+ queryMap.put("exactCaxisOffset", "0");
|
|
|
}else{
|
|
|
- queryMap.put("x", String.valueOf(orderQuality.getSketchyXaxisOffset()));
|
|
|
- queryMap.put("y", String.valueOf(orderQuality.getSketchyYaxisOffset()));
|
|
|
- queryMap.put("z", String.valueOf(orderQuality.getSketchyZaxisOffset()));
|
|
|
- queryMap.put("a", String.valueOf(orderQuality.getSketchyAaxisOffset()));
|
|
|
- queryMap.put("b", String.valueOf(orderQuality.getSketchyBaxisOffset()));
|
|
|
- queryMap.put("c", String.valueOf(orderQuality.getSketchyCaxisOffset()));
|
|
|
+ queryMap.put("exactXaxisOffset", String.valueOf(orderQuality.getExactXaxisOffset().setScale(5, RoundingMode.HALF_UP)));
|
|
|
+ queryMap.put("exactYaxisOffset", String.valueOf(orderQuality.getExactYaxisOffset().setScale(5, RoundingMode.HALF_UP)));
|
|
|
+ queryMap.put("exactZaxisOffset", String.valueOf(orderQuality.getExactZaxisOffset().setScale(5, RoundingMode.HALF_UP)));
|
|
|
+ queryMap.put("exactAaxisOffset", String.valueOf(orderQuality.getExactAaxisOffset().setScale(5, RoundingMode.HALF_UP)));
|
|
|
+ queryMap.put("exactBaxisOffset", String.valueOf(orderQuality.getExactBaxisOffset().setScale(5, RoundingMode.HALF_UP)));
|
|
|
+ queryMap.put("exactCaxisOffset", String.valueOf(orderQuality.getExactCaxisOffset().setScale(5, RoundingMode.HALF_UP)));
|
|
|
}
|
|
|
|
|
|
- map.put("method", "SendLinShift");
|
|
|
+ map.put("method", "SendOffsetSetting");
|
|
|
map.put("data", queryMap);
|
|
|
map.put("result", true);
|
|
|
}
|