package com.mes.workstation.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.common.S7object; import com.mes.device.PlcParameterObject; import com.mes.engineering.entity.Engineering; import com.mes.uppattenusage.entity.UpPattenUsage; import com.mes.uppattenusage.mapper.UpPattenUsageMapper; import com.mes.workstation.entity.UpWorkstation; import com.mes.workstation.mapper.UpWorkstationMapper; import com.mes.workstation.service.UpWorkstationService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** *

* 服务实现类 *

* * @author zhoush * @since 2024-04-07 */ @Service @Slf4j public class UpWorkstationServiceImpl extends ServiceImpl implements UpWorkstationService { @Resource UpPattenUsageMapper upPattenUsageMapper; @Resource UpWorkstationMapper upWorkstationMapper; //判断优先吸片位置后发送出片任务 @Override public UpPattenUsage selectPriority(Engineering engineering) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("state", 0) .eq("engineering_id", engineering.getEngineerId()) .orderByAsc("layout_sequence") .last("limit 1"); return upPattenUsageMapper.selectOne(wrapper); } //判断工位是否有符合条件的玻璃 @Override public UpWorkstation selectWorkstation(UpPattenUsage upPattenUsage) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("pattern_width", upPattenUsage.getWidth()) .eq("pattern_height", upPattenUsage.getHeight()) .eq("pattern_thickness", upPattenUsage.getThickness()) .eq("films_id", upPattenUsage.getFilmsId()) .gt("number", 0) .orderByAsc("number") .last("limit 1"); return this.baseMapper.selectOne(wrapper); } @Override public void reduceWorkstationNumber(Integer upworkId) { UpdateWrapper wrapper = new UpdateWrapper<>(); wrapper.eq("id", upworkId) .setSql("number = number - 1"); boolean updateResult = upWorkstationMapper.update(null, wrapper) > 0; log.info("减少工位数量{}", updateResult); } /** * 增加人工输入的工位玻璃信息/删除人工搬走的玻璃信息 */ @Override public void updateGlassMessage(UpWorkstation upwork) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); if (upwork.getWorkstationId() == 1 || upwork.getWorkstationId() == 3) { updateWrapper.eq("workstation_id", upwork.getWorkstationId()); int update = this.baseMapper.update(upwork, updateWrapper); } else { if (upwork.getPatternHeight() > 2700 || upwork.getPatternHeight() == 0) { updateWrapper.eq("workstation_id", upwork.getWorkstationId()); int update = this.baseMapper.update(upwork, updateWrapper); } } } @Override public String updateMesInkageLoad(short inKageWord) { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; log.info("修改设备两栋请求为{}:0联线;1联动", inKageWord); S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("InkageStatus").getAddress(), inKageWord); return "success"; } }