严智鑫
2025-03-11 67cbfd8f7c2ed9598eef92470313f3cf31028ea1
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/plcTaskThread/MachineLoad.java
@@ -34,10 +34,12 @@
    PrimitiveTaskMapper primitiveTaskMapper;
    LineConfigurationService lineConfigurationService;
    public Long machineId = 2L;
    public Machine thisMachine;
    //public Long machineId = 2L;
    public List<Map> sendRecords = new ArrayList<>();
    public MachineLoad(TaskingMapper taskingMapper, MachineMapper machineMapper, TaskingService taskingService, PrimitiveTaskService primitiveTaskService, LineConfigurationService lineConfigurationService){
    public MachineLoad(Machine machine,PrimitiveTaskMapper primitiveTaskMapper,TaskingMapper taskingMapper, MachineMapper machineMapper, TaskingService taskingService, PrimitiveTaskService primitiveTaskService, LineConfigurationService lineConfigurationService){
        this.thisMachine = machine;
        this.primitiveTaskMapper = primitiveTaskMapper;
        this.taskingMapper = taskingMapper;
        this.machineMapper = machineMapper;
        this.taskingService = taskingService;
@@ -45,15 +47,23 @@
        this.lineConfigurationService = lineConfigurationService;
    }
    public void plcStart() {
        Machine machine=machineMapper.selectById(machineId);
        ModbusTcp modbusTcp1 =new ModbusTcp(machine.getIp(),machine.getPort(),"PlcLoad");
        Machine machine=machineMapper.selectById(thisMachine.getId());
        ModbusTcp modbusTcp1 =new ModbusTcp(machine.getIp(),machine.getPort(),machine.getFileName());
        modbusTcp1.connect();
        PlcAgreement plcAgreement=modbusTcp1.getPlcAgreement("PlcLoad");
        try {
            if(!modbusTcp1.read(plcAgreement)){
                log.info("通讯读取新数据失败");
                if(!"关机".equals(machine.getStatePowerOn())){
                    machine.setStatePowerOn("关机");
                    machineMapper.updateById(machine);
                }
                modbusTcp1.close();
                return;
            }
            if(!"开机".equals(machine.getStatePowerOn())){
                machine.setStatePowerOn("开机");
                machineMapper.updateById(machine);
            }
            PlcParameter plcRequest =plcAgreement.getPlcParameter("plcRequest");//请求字
            PlcParameter mesSend =plcAgreement.getPlcParameter("mesSend");//发送字
@@ -90,10 +100,13 @@
                        LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine);
                        List<PrimitiveTask> findPrimitiveTasking=primitiveTaskService.findPrimitiveTasking(machine,lineConfiguration.getLineId());
                        for(PrimitiveTask primitiveTask:findPrimitiveTasking){
                            primitiveTask.setReportCount(primitiveTask.getReportCount()+plcReportID.getValueInt());
                            primitiveTask.setLoadCount(primitiveTask.getLoadCount()+1);
                            primitiveTaskMapper.updateById(primitiveTask);
                            break;
                        }
                    }else if(machine.getMode()==3){
                        machine.setFinshCount(machine.getFinshCount()+plcReportID.getValueInt());
                        machineMapper.updateById(machine);
                    }
                    String send = HexUtil.intTo2ByteHex(1);
                    modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart()/ 2));
@@ -115,21 +128,18 @@
                    LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine);
                    List<PrimitiveTask> findPrimitiveTasking=primitiveTaskService.findPrimitiveTasking(machine,lineConfiguration.getLineId());
                    for(PrimitiveTask primitiveTask:findPrimitiveTasking){
                        //任务数>已上数量
                        List<Tasking> taskingTopList=taskingMapper.selectList(new QueryWrapper<Tasking>().lambda()
                                .eq(Tasking::getScanId,primitiveTask.getScanId())
                                .eq(Tasking::getState,"线上")
                                .eq(Tasking::getGlassState,"正常")
                        );
                        if (primitiveTask.getTaskQuantity()>primitiveTask.getReportCount()){
                            loadCount=primitiveTask.getTaskQuantity()-taskingTopList.size();
                            loadCount=(loadCount>0?loadCount:0);
                        //任务数-已上数量>0  返回1
                        if((primitiveTask.getTaskQuantity()-primitiveTask.getLoadCount())>0){
                            loadCount=1;
                        }
                        break;
                    }
                }else{
                }else if(machine.getMode()==2){
                    //定制模式
                    loadCount=1;
                }else if (machine.getMode()==3){
                    loadCount=machine.getTaskCount()-machine.getFinshCount();
                    loadCount=(loadCount>0?1:0);
                }
                if(loadCount>0){
                    log.info("4、发送任务  任务数据:{}, 设备状态:{}, ",loadCount,machine);