wu
2024-09-11 489b48ad9fad5ad17106b7e69d778c824df3df9d
提交合并代码
5个文件已修改
8个文件已添加
717 ■■■■■ 已修改文件
JiuMuMesParent/.idea/compiler.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/.idea/encodings.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/.idea/inspectionProfiles/Project_Default.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCRinse.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQR.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCTurn.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/moduleService/DeviceInteractionModule/src/test/java/com/mes/TaskingModuleApplicationTest.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
JiuMuMesParent/.idea/compiler.xml
@@ -7,8 +7,9 @@
        <sourceOutputDir name="target/generated-sources/annotations" />
        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
        <outputRelativeToContentRoot value="true" />
        <module name="servicebase" />
        <module name="springsecurity" />
        <module name="servicebase" />
        <module name="deviceInteraction" />
        <module name="gateway" />
        <module name="cacheGlass" />
      </profile>
@@ -25,6 +26,7 @@
    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
      <module name="cacheGlass" options="-parameters" />
      <module name="cacheVerticalGlass" options="-parameters" />
      <module name="deviceInteraction" options="-parameters" />
      <module name="gateway" options="-parameters" />
      <module name="glassStorage" options="-parameters" />
      <module name="loadGlass" options="-parameters" />
JiuMuMesParent/.idea/encodings.xml
@@ -8,6 +8,7 @@
    <file url="file://$PROJECT_DIR$/gateway/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/moduleService/CacheGlassModule/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/moduleService/CacheVerticalGlassModule/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/moduleService/DeviceInteractionModule/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/moduleService/GlassStorageModule/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/moduleService/LoadGlassModule/src/main/java" charset="UTF-8" />
    <file url="file://$PROJECT_DIR$/moduleService/TemperingGlassModule/src/main/java" charset="UTF-8" />
JiuMuMesParent/.idea/inspectionProfiles/Project_Default.xml
New file
@@ -0,0 +1,21 @@
<component name="InspectionProjectProfileManager">
  <profile version="1.0">
    <option name="myName" value="Project Default" />
    <inspection_tool class="AliAccessStaticViaInstance" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAbstractClassShouldStartWithAbstractNaming" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAvoidApacheBeanUtilsCopy" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAvoidCallStaticSimpleDateFormat" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAvoidComplexCondition" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAvoidNewDateGetTime" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAvoidPatternCompileInMethod" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaAvoidUseTimer" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaClassMustHaveAuthor" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaLockShouldWithTryFinally" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaMethodTooLong" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaPackageNaming" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaSneakyThrowsWithoutExceptionType" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaTestClassShouldEndWithTestNaming" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaTransactionMustHaveRollback" enabled="true" level="WARNING" enabled_by_default="true" />
    <inspection_tool class="AlibabaUseRightCaseForDateFormat" enabled="true" level="WARNING" enabled_by_default="true" />
  </profile>
</component>
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java
New file
@@ -0,0 +1,79 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author SNG-010
 */
@Component
@Slf4j
public class PLCEdging {
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Autowired
    TaskingService taskingService;
    @Scheduled(fixedDelay = 500)
    public void PLCEdging() {
        //磨边进片请求信号
        String edgingSign = plcParameterObject.getPlcParameter("edgingSign").getValue();
        if (!Objects.equals(edgingSign, "")){
            Tasking glass = new Tasking();
            glass.setWorkState("工作");
            glass.setCurrentCraft("磨边");
            glass.setState("线上");
            Tasking tasking =taskingService.selectTaskLoad(glass);
            //发送长宽厚尺寸
            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("length").getAddress(), Integer.parseInt(tasking.getLength().toString()));
            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("width").getAddress(), Integer.parseInt(tasking.getWidth().toString()));
            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("thickness").getAddress(), Integer.parseInt(tasking.getThickness().toString()));
        }
        //持续获取速度同步给下一个机器
        String edgingSpeed = plcParameterObject.getPlcParameter("edgingSpeed").getValue();
        if(!Objects.equals(edgingSpeed, "")){
            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("cleaningSpeed").getAddress(), Integer.parseInt(edgingSpeed));
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void edgingWeb() {
        //获取当前任务表最新的一块任务状态
        //获取报警状态
        String warning = plcParameterObject.getPlcParameter("warning").getValue();
        JSONObject jsonObject = new JSONObject();
        if (!Objects.equals(warning, "0")) {
            //log.info("报警信息:"+warning);
            jsonObject.append("warning", warning);
        }
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("scanQrCode");
        if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("Home is closed");
                }
            }
        }
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java
New file
@@ -0,0 +1,72 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author SNG-010
 */
@Component
@Slf4j
public class PLCMechanicalArm {
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Autowired
    TaskingService taskingService;
    @Scheduled(fixedDelay = 500)
    public void plcEdging() {
        //机械臂请求信号
        String request = plcParameterObject.getPlcParameter("request").getValue();
        if (!Objects.equals(request, "")){
            //当机械臂请求信号为1的时候,//判断当前任务是定制还是标准
            String status = plcParameterObject.getPlcParameter("Status").getValue();
                boolean tasking = taskingService.insertTasking(status);
                if(tasking){
                    S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("overGlass").getAddress(), Integer.parseInt("1"));
                    //发送上片完毕
                }
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void mechanicalAmWeb() {
        //获取当前任务表最新的一块任务状态
        //获取报警状态
        String warning = plcParameterObject.getPlcParameter("warning").getValue();
        JSONObject jsonObject = new JSONObject();
        if (!Objects.equals(warning, "0")) {
            //log.info("报警信息:"+warning);
            jsonObject.append("warning", warning);
        }
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("mechanicalAmWeb");
        if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("Home is closed");
                }
            }
        }
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCRinse.java
New file
@@ -0,0 +1,65 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author SNG-010
 */
@Component
@Slf4j
public class PLCRinse {
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Autowired
    TaskingService taskingService;
    @Scheduled(fixedDelay = 500)
    public void plcRinse() {
        //磨边线速度
        String edgingSpeed = plcParameterObject.getPlcParameter("edgingSpeed").getValue();
        if(!Objects.equals(edgingSpeed, "")){
            //给清洗机器发送磨边机速度
            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("rinseSpeed").getAddress(), Integer.parseInt(edgingSpeed));
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void edgingWeb() {
        //获取报警状态
        String warning = plcParameterObject.getPlcParameter("rinseWarning").getValue();
        JSONObject jsonObject = new JSONObject();
        if (!Objects.equals(warning, "0")) {
            //log.info("报警信息:"+warning);
            jsonObject.append("rinseWarning", warning);
        }
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rinse");
        if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("Home is closed");
                }
            }
        }
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQR.java
New file
@@ -0,0 +1,73 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.mes.device.PlcParameterObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author SNG-010
 */
@Component
@Slf4j
public class PLCScanQR {
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Autowired
    TaskingService taskingService;
    @Scheduled(fixedDelay = 500)
    public void pLCScanQR() {
        //获取当前任务表最新的一块任务状态
        //扫码线程
        //电气去根据上一个任务传递下来的状态自己判断需不需要扫码,如果需要扫码直接传输扫码id
        String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
        if(!Objects.equals(scanId, "")){
           boolean result = taskingService.insertTaskingPro(scanId);
           if (result){
               //添加成功时发送过片信号
               S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("scan").getAddress(), Integer.parseInt("1"));
           }
            log.info("扫描定制二维码:"+scanId);
        }else {
            log.info("标准模式扫描二维码:无");
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void scanQrCode() {
        //获取当前任务表最新的一块任务状态
        //获取报警状态
        String warning = plcParameterObject.getPlcParameter("warning").getValue();
        JSONObject jsonObject = new JSONObject();
        if (!Objects.equals(warning, "0")) {
            //log.info("报警信息:"+warning);
            jsonObject.append("warning", warning);
        }
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("scanQrCode");
        if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("Home is closed");
                }
            }
        }
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java
New file
@@ -0,0 +1,73 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.md.service.TaskingService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author SNG-010
 */
@Component
@Slf4j
public class PLCScanQRVerify {
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Autowired
    TaskingService taskingService;
    @Scheduled(fixedDelay = 500)
    public void plcScanQrVerify() {
        //获取当前任务表最新的一块任务状态
        //扫码确认线程
        //电气去根据上一个任务传递下来的状态自己判断需不需要扫码,如果需要扫码直接传输扫码id
        String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
        if(!Objects.equals(scanId, "")){
           boolean result = taskingService.updateTasking(scanId);
           if (result){
               //添加成功时发送过片信号
               S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("scan").getAddress(), Integer.parseInt("1"));
           }
            log.info("扫描定制二维码:"+scanId);
        }else {
            log.info("标准模式扫描二维码:无");
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void scanQrCode() {
        //获取当前任务表最新的一块任务状态
        //获取报警状态
        String warning = plcParameterObject.getPlcParameter("warning").getValue();
        JSONObject jsonObject = new JSONObject();
        if (!Objects.equals(warning, "0")) {
            //log.info("报警信息:"+warning);
            jsonObject.append("warning", warning);
        }
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ScanQrVerify");
        if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("Home is closed");
                }
            }
        }
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCTurn.java
New file
@@ -0,0 +1,65 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author SNG-010
 */
@Component
@Slf4j
public class PLCTurn {
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Autowired
    TaskingService taskingService;
    @Scheduled(fixedDelay = 500)
    public void plcTurn() {
        //清洗机速度
        String rinseSpeed = plcParameterObject.getPlcParameter("rinseSpeed").getValue();
        if(!Objects.equals(rinseSpeed, "")){
            //给翻片台发送磨边机速度
            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("turnSpeed").getAddress(), Integer.parseInt(rinseSpeed));
        }
    }
    @Scheduled(fixedDelay = 1000)
    public void turnWeb() {
        //获取报警状态
        String warning = plcParameterObject.getPlcParameter("turnWarning").getValue();
        JSONObject jsonObject = new JSONObject();
        if (!Objects.equals(warning, "0")) {
            //log.info("报警信息:"+warning);
            jsonObject.append("turnWarning", warning);
        }
        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("turn");
        if (sendwServer != null) {
            for (WebSocketServer webserver : sendwServer) {
                if (webserver != null) {
                    webserver.sendMessage(jsonObject.toString());
                    List<String> messages = webserver.getMessages();
                    if (!messages.isEmpty()) {
                        // // 将最后一个消息转换为整数类型的列表
                        webserver.clearMessages();
                    }
                } else {
                    log.info("Home is closed");
                }
            }
        }
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java
@@ -1,9 +1,14 @@
package com.mes.md.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import com.mes.utils.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * <p>
@@ -13,9 +18,52 @@
 * @author wu
 * @since 2024-08-28
 */
@RestController
@RequestMapping("/tasking")
public class TaskingController {
    @RestController
    @RequestMapping("/jiumumes/tasking")
    public class TaskingController {
        @Autowired
        private TaskingService taskingService;
        @ApiOperation("切换模式")
        @PostMapping("/updateLoadState") //切换模式"
        @ResponseBody
        public Result<Boolean> updateStatus(@RequestBody Integer state) {
            if(state == 1){
                boolean result =taskingService.updateStatus(state);
                return Result.build(1,"定制模式",result);
            }else {
                boolean result =taskingService.updateStatus(state);
                return Result.build(0,"标准模式",result);
            }
        }
        @ApiOperation("点击暂停设备")
        @PostMapping("/updateLoadStatus") //点击暂停设备
        @ResponseBody
        public Result<Boolean> updateLoadStatus(@RequestBody Integer state) {
            if(state == 1){
                boolean result =taskingService.updateLoadState(state);
                return Result.build(1,"成功",result);
            }else {
                boolean result =taskingService.updateLoadState(state);
                return Result.build(0,"成功",result);
            }
        }
        @ApiOperation("点击破损")
        @PostMapping("/updateDamage") //暂停上片任务
        @ResponseBody
        public Result<Tasking> updateDamage(@RequestBody Tasking tasking) {
            boolean result =taskingService.updateDamage(tasking);
            return Result.build(1,"定制模式",null);
        }
        @ApiOperation("查询当前模式过去的玻璃")
        @PostMapping("/selectTasking") //暂停上片任务
        @ResponseBody
        public Result<List<Tasking>> selectTasking() {
            List<Tasking> tasking =taskingService.selectTasking();
            return Result.build(1,"定制模式",tasking);
        }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java
@@ -2,7 +2,8 @@
import com.github.yulichang.base.MPJBaseService;
import com.mes.md.entity.Tasking;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
@@ -13,5 +14,44 @@
 * @since 2024-08-28
 */
public interface TaskingService extends MPJBaseService<Tasking> {
    /**
     * 更改上片模式
     * @return boolean
     */
    boolean updateStatus(Integer state);
    /**
     *更改联机状态
     * @return boolean
     */
    boolean updateLoadState(Integer state);
    /**
     * 点击破损
     * @return boolean
     */
    boolean updateDamage(Tasking tasking);
    /**
     * 查询当前模式过去的玻璃
     * @return List<Tasking>
     */
    List<Tasking> selectTasking();
    /**
     * 定制模式下将扫码出来id获取成玻璃数据赋值给当前最新的glassId
     * @return List<Tasking>
     */
    Boolean insertTaskingPro(String scanId);
    /**
     * 根据不同工艺查询即将上片的数据
     * @return List<Tasking>
     */
    Tasking selectTaskLoad(Tasking tasking);
    /**
     * 根据标准模式的任务顺序获取玻璃数据
     * @return List<Tasking>
     */
    Boolean insertTasking(String status);
    /**
     * 补全任务数据
     * @return List<Tasking>
     */
    boolean updateTasking(String scanId);
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
@@ -1,11 +1,20 @@
package com.mes.md.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.mes.common.S7object;
import com.mes.device.PlcParameterObject;
import com.mes.md.entity.GlassInfo;
import com.mes.md.entity.Tasking;
import com.mes.md.mapper.GlassInfoMapper;
import com.mes.md.mapper.TaskingMapper;
import com.mes.md.service.TaskingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -17,5 +26,99 @@
 */
@Service
public class TaskingServiceImpl extends MPJBaseServiceImpl<TaskingMapper, Tasking> implements TaskingService {
    @Resource
    GlassInfoMapper glassInfoMapper;
    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
    @Override
    public boolean updateStatus(Integer state) {
        //更改上片模式
        //向设备发送选择的状态
        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("Status").getAddress(), state);
        //发送后重新读取判断是否更改成功
        String loadStatus = plcParameterObject.getPlcParameter("Status").getValue();
        return state == Integer.parseInt(loadStatus);
    }
    @Override
    public boolean updateLoadState(Integer state) {
        //更改联机状态
        //向设备发送选择的状态
        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("loadState").getAddress(), state);
        //发送后重新读取判断是否更改成功
        String loadState = plcParameterObject.getPlcParameter("loadState").getValue();
        return state == Integer.parseInt(loadState);
    }
    @Override
    public boolean updateDamage(Tasking tasking) {
        UpdateWrapper<Tasking> queryWrapper = new UpdateWrapper<>();
        queryWrapper.eq("glass_id",tasking.getGlassId())
                .set("work_state",tasking.getWorkState());
        return this.update(queryWrapper);
    }
    @Override
    public List<Tasking> selectTasking() {
        QueryWrapper<Tasking> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByDesc("task_sequence");
        return list(queryWrapper);
    }
    @Override
    public Boolean insertTasking(String status) {
        Tasking tasking = new Tasking();
        if(Objects.equals(status, "1")){
        QueryWrapper <GlassInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("task_type","标准")
                    .eq("work_state","工作")
                    .orderByAsc("task_sequence");
        GlassInfo glassInfo =glassInfoMapper.selectOne(queryWrapper);
        if(glassInfo!=null){
            tasking.setBatchNumber(glassInfo.getBatchNumber());
            tasking.setScanId(glassInfo.getScanId());
            tasking.setProgramId(glassInfo.getProgramId());
            tasking.setTaskType(glassInfo.getTaskType());
            tasking.setTaskSequence(glassInfo.getTaskSequence());
            tasking.setTaskQuantity(glassInfo.getTaskQuantity());
            tasking.setLength(glassInfo.getLength());
            tasking.setWidth(glassInfo.getWidth());
            tasking.setThickness(glassInfo.getThickness());
            tasking.setDrawingGlue(glassInfo.getDrawingGlue());
            tasking.setDrawingMarking(glassInfo.getDrawingMarking());
            tasking.setSilkScreenX(glassInfo.getSilkScreenX());
            tasking.setSilkScreenY(glassInfo.getSilkScreenY());
            tasking.setIsMarking(glassInfo.getIsMarking());
            tasking.setIsSilkScreen(glassInfo.getIsSilkScreen());
            tasking.setCurrentCraft("上片");
        }
        }
        else {
            tasking.setTaskType("定制");
            tasking.setCurrentCraft("上片");
        }
        return save(tasking);
    }
    @Override
    public boolean updateTasking(String scanId) {
        return false;
    }
    @Override
    public Tasking selectTaskLoad(Tasking tasking) {
        QueryWrapper<Tasking> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("current_craft",tasking.getGlassId())
                .eq("state",tasking.getState())
                .eq("work_state",tasking.getWorkState())
                .orderByAsc("glass_id");
        return getOne(queryWrapper);
    }
    @Override
    public Boolean insertTaskingPro(String tasking) {
        return null;
    }
}
JiuMuMesParent/moduleService/DeviceInteractionModule/src/test/java/com/mes/TaskingModuleApplicationTest.java
New file
@@ -0,0 +1,57 @@
package com.mes;
import com.mes.md.entity.Tasking;
import com.mes.md.service.TaskingService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.List;
/**
 */
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DeviceInteractionModuleApplication.class)
public class TaskingModuleApplicationTest {
//    @Resource
//    private OptimizeProjectMapper optimizeProjectMapper;
    @Autowired
    private TaskingService taskingService;
    @Test
    public void test() {
//        List<OptimizeProject> list = optimizeProjectMapper.saveProject("P24032204");
//        log.info("list:{}", list);
    }
    @Test
    public void testFindPath() {
        log.info("完整路径:{}", Arrays.asList("123"));
    }
    @Test
    public void testFindPa() {
        Tasking task=new Tasking();
        task.setGlassId(1L);
        task.setWorkState("破损");
        boolean tasking= taskingService.updateDamage(task);
        log.info("更改暂停开始:{}", Arrays.asList(tasking));
    }
    @Test
    public void testFindPa2() {
        List<Tasking> tasking= taskingService.selectTasking();
        log.info("查询当前过去的任务:{}", Arrays.asList(tasking));
    }
}