wuyouming666
2024-04-18 e8d3676793d4194485afec7940aaf355af594901
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
@@ -1,160 +1,155 @@
package com.mes.downworkstation.service;
import com.mes.common.PLCAutoMes;
import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
import com.mes.downworkstation.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Data
@Service
public class DownGlassLogic {
    @Autowired
    private DownGlassInfo downGlassInfo;
    private DownWorkstation downWorkstation;
    private DownGlassInfoMapper downGlassInfoMapper;
    private DownGlassInfoService downGlassInfoService;
    private DownGlassTaskService downGlassTaskService;
    private DownWorkstationMapper downWorkstationMapper;
    private DownWorkstationService downWorkstationService;
    private DownWorkstationTaskService downWorkstationTaskService;
    PlcParameterObject plcread = PLCAutoMes.PlcReadObject;
    /**
     * // 机械手1PLC请求字
     */
    String robot1PLCrequestword = plcread.getPlcParameter("A01Position").getValue();
    /**
     * // 机械手2PLC请求字
     */
    String robot2PLCrequestword = plcread.getPlcParameter("A01Position").getValue();
    /**
     * // 玻璃id
     */
    String glassID = plcread.getPlcParameter("A01Position").getValue();
    String glasswidth = plcread.getPlcParameter("A01Position").getValue();
    String glassheight = plcread.getPlcParameter("A01Position").getValue();
    //
    String glassthickness = plcread.getPlcParameter("A01Position").getValue();
    String pLcwancheng = plcread.getPlcParameter("A01Position").getValue();
    /**
     * // 存放待处理的玻璃信息
     */
    private List<DownGlassInfo> glassList;
    /**
     * 存放玻璃放置在缓存笼中的详细信息
     */
    private List<DownStorageCageDetails> cageDetailsList;
    /**
     * //当下片任务表状态为1时候将数据插入到下片玻璃信息表
     */
    public void insertdownglassinfo() {
      downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
        downWorkstationService = WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
        downWorkstationTaskService = WebSocketServer.applicationContext.getBean(DownWorkstationTaskService.class);
        downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
      downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
        downGlassTaskService = WebSocketServer.applicationContext.getBean(DownGlassTaskService.class);
        List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
//
        if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
//
            for (DownGlassTask downGlassInfo : taskdownGlassInf) {
                // 创建新的 DownGlassInfo 对象并设置相关属性
                DownGlassInfo newdownGlassInfo = new DownGlassInfo();
                newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
                Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
                // 初始化顺序字段值
                int sequence = maxSequence != null ? maxSequence + 1 : 1;
                newdownGlassInfo.setWidth(downGlassInfo.getWidth());
                newdownGlassInfo.setHeight(downGlassInfo.getHeight());
                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
                // 设置顺序字段值
                newdownGlassInfo.setSequence(sequence);
                // 插入数据到下片玻璃信息表
                downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
                //插入数据到机械手任务表
                downWorkstationTaskService.insertdownWorkstationtask(newdownGlassInfo);
                //更新下片任务表状态为0
                downGlassTaskService.updateTaskStateToZero(downGlassInfo.getFlowCardId());
                sequence++; // 递增顺序字段值
            }
        }
    }
    /**
     * //当机械手任务表中状态为1,工位表流程卡绑定了架子 更新已经落架数量,并且把下片任务表的对应记录删掉
     */
    public void downWorkstation() {
        try {
            //查询下片工位表中架子是否绑定了流程卡号 工位表和任务表中状态为1的流程卡号和已落架数量
            List<DownWorkstation> taskdownWorkstation = downWorkstationMapper.selectdownWorkstationstate();
            if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
                //,如果已经绑定则更新已落架数量,并且删除下片任务表中的记录
                for (DownWorkstation downWorkstation : taskdownWorkstation) {
                    //更新下片工位表中已落架数量
                    downWorkstationService.updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation.getRacksnumber() + 1);
                    //更新机械任务表中状态为0
                    downWorkstationTaskService.updateTaskStateToZero(downWorkstation.getFlowCardId());
                    //删除下片任务表中的记录
                    downGlassTaskService.deleteTask(downWorkstation.getFlowCardId());
                }
            }
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 或者可以进行其他异常处理,比如记录日志或者返回特定的错误信息
        }
    }
    /**
     * @param downWorkstation // 满架拉走 清除流程卡信息
     */
//    public void clearFlowCardId(DownWorkstation downWorkstation) {
//
//        downWorkstationMapper.clearFlowCardId(downWorkstation);
//    }
package com.mes.downworkstation.service;
import com.mes.common.PLCAutoMes;
import com.mes.device.PlcParameterObject;
import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downglassinfo.entity.DownGlassTask;
import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
import com.mes.downglassinfo.service.DownGlassInfoService;
import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Data
@Service
public class DownGlassLogic {
    @Autowired
    private DownGlassInfo downGlassInfo;
    private DownWorkstation downWorkstation;
    private DownGlassInfoMapper downGlassInfoMapper;
    private DownGlassInfoService downGlassInfoService;
    private DownGlassTaskService downGlassTaskService;
    private DownWorkstationMapper downWorkstationMapper;
    private DownWorkstationService downWorkstationService;
    private DownWorkstationTaskService downWorkstationTaskService;
    PlcParameterObject plcread = PLCAutoMes.PlcReadObject;
    /**
     * // 机械手1PLC请求字
     */
    String robot1PLCrequestword = plcread.getPlcParameter("A01Position").getValue();
    /**
     * // 机械手2PLC请求字
     */
    String robot2PLCrequestword = plcread.getPlcParameter("A01Position").getValue();
    /**
     * // 玻璃id
     */
    String glassID = plcread.getPlcParameter("A01Position").getValue();
    String glasswidth = plcread.getPlcParameter("A01Position").getValue();
    String glassheight = plcread.getPlcParameter("A01Position").getValue();
    //
    String glassthickness = plcread.getPlcParameter("A01Position").getValue();
    String pLcwancheng = plcread.getPlcParameter("A01Position").getValue();
    /**
     * // 存放待处理的玻璃信息
     */
    private List<DownGlassInfo> glassList;
    /**
     * 存放玻璃放置在缓存笼中的详细信息
     */
    private List<DownStorageCageDetails> cageDetailsList;
    /**
     * //当下片任务表状态为1时候将数据插入到下片玻璃信息表
     */
    public void insertdownglassinfo() {
        downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
        downWorkstationService = WebSocketServer.applicationContext.getBean(DownWorkstationService.class);
        downWorkstationTaskService = WebSocketServer.applicationContext.getBean(DownWorkstationTaskService.class);
        downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
        downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
        downGlassTaskService = WebSocketServer.applicationContext.getBean(DownGlassTaskService.class);
        List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState();
//
        if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
//
            for (DownGlassTask downGlassInfo : taskdownGlassInf) {
                // 创建新的 DownGlassInfo 对象并设置相关属性
                DownGlassInfo newdownGlassInfo = new DownGlassInfo();
                newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
                Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
                // 初始化顺序字段值
                int sequence = maxSequence != null ? maxSequence + 1 : 1;
                newdownGlassInfo.setWidth(downGlassInfo.getWidth());
                newdownGlassInfo.setHeight(downGlassInfo.getHeight());
                newdownGlassInfo.setThickness(downGlassInfo.getThickness());
                newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
                // 设置顺序字段值
                newdownGlassInfo.setSequence(sequence);
                // 插入数据到下片玻璃信息表
                downGlassInfoService.insertDownGlassInfo(newdownGlassInfo);
                //插入数据到机械手任务表
                downWorkstationTaskService.insertdownWorkstationtask(newdownGlassInfo);
                //更新下片任务表状态为0
                downGlassTaskService.updateTaskStateToZero(downGlassInfo.getFlowCardId());
                sequence++; // 递增顺序字段值
            }
        }
    }
    /**
     * //当机械手任务表中状态为1,工位表流程卡绑定了架子 更新已经落架数量,并且把下片任务表的对应记录删掉
     */
    public void downWorkstation() {
        try {
            //查询下片工位表中架子是否绑定了流程卡号 工位表和任务表中状态为1的流程卡号和已落架数量
            List<DownWorkstation> taskdownWorkstation = downWorkstationMapper.selectdownWorkstationstate();
            if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
                //,如果已经绑定则更新已落架数量,并且删除下片任务表中的记录
                for (DownWorkstation downWorkstation : taskdownWorkstation) {
                    //更新下片工位表中已落架数量
                    downWorkstationService.updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation.getRacksnumber() + 1);
                    //更新机械任务表中状态为0
                    downWorkstationTaskService.updateTaskStateToZero(downWorkstation.getFlowCardId());
                    //删除下片任务表中的记录
                    downGlassTaskService.deleteTask(downWorkstation.getFlowCardId());
                }
            }
        } catch (Exception e) {
            // 打印异常信息
            e.printStackTrace();
            // 或者可以进行其他异常处理,比如记录日志或者返回特定的错误信息
        }
    }
    /**
     * @param downWorkstation // 满架拉走 清除流程卡信息
     */
//    public void clearFlowCardId(DownWorkstation downWorkstation) {
//
//        downWorkstationMapper.clearFlowCardId(downWorkstation);
//    }
}