严智鑫
2025-04-03 f2a5a09c879849110b42c46297ab4c080500e61d
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);
@@ -137,14 +147,6 @@
                    modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesSend.getAddressStart()/2));
                    log.info("发送任务发送报文内容:{},发送起始地址:{}",send,HexUtil.intTo2ByteHex(mesSend.getAddressStart()/2));
                    modbusTcp1.close();
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    String sendRecord=df.format(new Date())+"  "+"1  "+ loadCount;
                    if (sendRecords.size()>7){
                        sendRecords.remove(0);
                    }
                    Map sendContentMap=new HashMap();
                    sendContentMap.put("sendContent",sendRecord);
                    sendRecords.add(sendContentMap);
                    return;
                }
            }