Fixiaobai
2023-11-13 8e17ffd131c99250f648c73c6c839c5088717951
Changes11
已修改7个文件
已添加2个文件
246 ■■■■■ 文件已修改
mes-aps/src/main/java/com/chinaztt/mes/aps/controller/CapabilityController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PartController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/BasicParamTemplateServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-common/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-common/src/main/java/com/chinaztt/mes/common/aop/MybatisPlusDeleteAspect.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-common/src/main/java/com/chinaztt/mes/common/config/WebSocketConfig.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-common/src/main/java/com/chinaztt/mes/common/server/WebSocketServer.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-web/src/main/java/com/chinaztt/mes/App.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-web/src/main/resources/bootstrap.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-aps/src/main/java/com/chinaztt/mes/aps/controller/CapabilityController.java
@@ -47,7 +47,7 @@
    @ApiOperation(value = "查询所有能力", notes = "查询所有能力")
    @GetMapping("/all")
    @PreAuthorize("@pms.hasPermission('aps_capability_view')")
    //@PreAuthorize("@pms.hasPermission('aps_capability_view')")
    public R getAllCapability() {
        return R.ok(capabilityService.list());
    }
mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PartController.java
@@ -86,6 +86,7 @@
    @ApiOperation(value = "触发零件", notes = "触发零件")
    @SysLog("触发零件")
    @PostMapping("/triggerAdd")
    @Inner(value = false)
    public R triggerAdd(@RequestBody PartVo partVo) {
        return R.ok(partService.triggerAdd(partVo));
    }
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/BasicParamTemplateServiceImpl.java
@@ -214,12 +214,18 @@
                Map second = JsonUtil.jsonToPojo(JsonUtil.jsonToString(s), Map.class);
                List<ParamJoinTemplate> collectSecond = paramJoinTemplates.stream().filter(p -> Objects.equals(s.getId(), p.getTechnologyOperationParamId())).collect(Collectors.toList());
                if(collectSecond.size()>0){
                    second.put("paramValue",collectSecond.get(0).getDefaultValue());
                    s.setParamValue(String.valueOf(second.get("paramValue")));
                    System.out.println("第二层遍历前=====》"+collectSecond.get(0).getDefaultValue());
                    if(!org.springframework.util.StringUtils.hasText(collectSecond.get(0).getDefaultValue())){
                        s.setParamValue("");
                    }else {
                        second.put("paramValue",collectSecond.get(0).getDefaultValue());
                        s.setParamValue(collectSecond.get(0).getDefaultValue());
                    }
                }else {
                    second.put("paramValue","");
                    s.setParamValue(String.valueOf(second.get("paramValue")));
                    s.setParamValue("");
                }
                System.out.println("第二层遍历后=====》"+s.getParamValue());
                Optional.ofNullable(second.get("type")).ifPresent(o->{
                    List<SysDictItem> collect1 = dict.stream().filter(d -> Objects.equals(String.valueOf(d.getValue()), second.get("type"))).collect(Collectors.toList());
                    if(collect1.size()>0){
@@ -235,6 +241,8 @@
                queryWrapperThird.lambda().eq(ParamJoinTemplate::getParentId,Long.valueOf(String.valueOf(s.getId())));
                List<ParamJoinTemplate> paramJoinTemplates2 = paramJoinTemplateMapper.selectList(queryWrapperThird);
                third.removeIf(t -> paramJoinTemplates2.stream().noneMatch(p->Objects.equals(p.getTechnologyOperationParamId(),t.getId())));
                System.out.println("=11111111111111111==========================================>"+Objects.equals(s.getParamValue(),"null"));
                boolean thirdIsNull =third.isEmpty();
                if(third.isEmpty()){
                    Param p = new Param();
                    p.setType(s.getType());
@@ -246,6 +254,9 @@
                    third.add(p);
                }
                third.forEach(t->{
                    if(thirdIsNull){
                        System.out.println("第二层到第三层======》"+t.getParamValue());
                    }
                    Optional.ofNullable(t.getType()).ifPresent(o->{
                        List<SysDictItem> collect1 = dict.stream().filter(d -> Objects.equals(String.valueOf(d.getValue()), t.getType())).collect(Collectors.toList());
                        if(collect1.size()>0){
@@ -254,10 +265,17 @@
                    });
                    Map<String,Object> allMap = new HashMap<>();
                    List<ParamJoinTemplate> collectThird = paramJoinTemplates.stream().filter(p -> Objects.equals(t.getId(), p.getTechnologyOperationParamId())).collect(Collectors.toList());
                    if(collectThird.size()>0){
                        allMap.put("paramValue",collectThird.get(0).getDefaultValue());
                    if(collectThird.size()>0&&!thirdIsNull){
                        System.out.println("第三层====================》"+collectThird.get(0));
                        if(!org.springframework.util.StringUtils.hasText(collectThird.get(0).getDefaultValue())){
                            t.setParamValue("");
                        }else {
                            t.setParamValue(collectThird.get(0).getDefaultValue());
                        }
                    }else {
                        allMap.put("paramValue","");
                        if(!thirdIsNull) {
                            t.setParamValue("");
                        }
                    }
                    allMap.put("code",pojo.get("code"));
                    allMap.put("paramItem", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("parameterItem"),""));
@@ -270,7 +288,7 @@
                    //allMap.put("paramFormat", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getParameterFormat(),""));
                    allMap.put("unit", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getUnit(),""));
                    allMap.put("parentId",t.getParentId());
                    allMap.put("paramValue",t.getParamValue());
                    allMap.put("paramValue",com.chinaztt.mes.common.util.StringUtils.defaultString(t.getParamValue(),""));
                    all.add(allMap);
                });
            });
mes-common/pom.xml
@@ -26,6 +26,11 @@
            <artifactId>commons-text</artifactId>
            <version>1.3</version>
        </dependency>
        <!-- å¼•å…¥websocket -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
mes-common/src/main/java/com/chinaztt/mes/common/aop/MybatisPlusDeleteAspect.java
@@ -140,6 +140,7 @@
        sql = String.format(LINK_COUNT_SQL,
                linkTableInfo.getTableName(),
                appendSql, linkTableInfo.getLogicDeleteSql(true, true));
        System.out.println("执行sql=============================>"+sql);
        Long count = jdbcTemplate.queryForObject(sql, Long.class, valList.toArray());
        if (count > 0) {
            String ex = String.format(EXCEPTION_STR, linkFieldInfo.getSourceTable(), linkFieldInfo.getSourceField(), linkFieldInfo.getLinkedTable(), linkFieldInfo.getLinkedField());
mes-common/src/main/java/com/chinaztt/mes/common/config/WebSocketConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.chinaztt.mes.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
 * @Author å¼ å®¾
 * @Date 2023/11/13
 */
@Configuration
public class WebSocketConfig {
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}
mes-common/src/main/java/com/chinaztt/mes/common/server/WebSocketServer.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
//package com.chinaztt.mes.common.server;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.stereotype.Component;
//
//import javax.websocket.*;
//import javax.websocket.server.PathParam;
//import javax.websocket.server.ServerEndpoint;
//import java.io.IOException;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.concurrent.ConcurrentHashMap;
///**
// * @Author å¼ å®¾
// * @Date 2023/11/13
// * @Params: WebSocketServer.sendInfo(使用JSON,用户名);
// * @Return
// */
////@ServerEndpoint("/websocket/{userId}")
//@Component
//@Slf4j
//public class WebSocketServer {
//
//    /**静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。*/
//    private static int onlineCount = 0;
//    /**concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。*/
//    private static ConcurrentHashMap<String, WebSocketServer> webSocketMap = new ConcurrentHashMap<>();
//    /**与某个客户端的连接会话,需要通过它来给客户端发送数据*/
//    private Session session;
//    /**接收userId*/
//    private String userId="";
//
//    /**
//     * è¿žæŽ¥å»ºç«‹æˆåŠŸè°ƒç”¨çš„æ–¹æ³•
//     * */
//    @OnOpen
//    public void onOpen(Session session, @PathParam("userId") String userId) {
//        this.session = session;
//        this.userId=userId;
//        if(webSocketMap.containsKey(userId)){
//            webSocketMap.remove(userId);
//            //加入set中
//        }else{
//            webSocketMap.put(userId,this);
//            //加入set中
//            addOnlineCount();
//            //在线数加1
//        }
//
//        log.info("用户连接:"+userId+",当前在线人数为:" + getOnlineCount());
//
//        try {
//            HashMap<Object, Object> map = new HashMap<>();
//            map.put("key","连接成功");
//            sendMessage(JSON.toJSONString(map));
//        } catch (IOException e) {
//            log.error("用户:"+userId+",网络异常!!!!!!");
//        }
//    }
//
//    /**
//     * è¿žæŽ¥å…³é—­è°ƒç”¨çš„æ–¹æ³•
//     */
//    @OnClose
//    public void onClose() {
//        if(webSocketMap.containsKey(userId)){
//            webSocketMap.remove(userId);
//            //从set中删除
//            subOnlineCount();
//        }
//        log.info("用户退出:"+userId+",当前在线人数为:" + getOnlineCount());
//    }
//
//    /**
//     * æ”¶åˆ°å®¢æˆ·ç«¯æ¶ˆæ¯åŽè°ƒç”¨çš„æ–¹æ³•
//     *
//     * @param message å®¢æˆ·ç«¯å‘送过来的消息*/
//    @OnMessage
//    public void onMessage(String message, Session session) {
//        log.info("用户消息:"+userId+",报文:"+message);
//        //可以群发消息
//        //消息保存到数据库、redis
//        if(StringUtils.isNotBlank(message)){
//            try {
//                //解析发送的报文
//                JSONObject jsonObject = JSONObject.parseObject(message);
//                //追加发送人(防止串改)
//                jsonObject.put("fromUserId",this.userId);
//                String fromUserId=jsonObject.getString("fromUserId");
//                //传送给对应toUserId用户的websocket
//                if(StringUtils.isNotBlank(fromUserId) && webSocketMap.containsKey(fromUserId)){
//                    webSocketMap.get(fromUserId).sendMessage(jsonObject.toJSONString());
//                    //自定义-业务处理
//
////                    DeviceLocalThread.paramData.put(jsonObject.getString("group"),jsonObject.toJSONString());
//                }else{
//                    log.error("请求的userId:"+fromUserId+"不在该服务器上");
//                    //否则不在这个服务器上,发送到mysql或者redis
//                }
//            }catch (Exception e){
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     *  å‘生错误时候
//     * @param session
//     * @param error
//     */
//    @OnError
//    public void onError(Session session, Throwable error) {
//        log.error("用户错误:"+this.userId+",原因:"+error.getMessage());
//        error.printStackTrace();
//    }
//    /**
//     * å®žçŽ°æœåŠ¡å™¨ä¸»åŠ¨æŽ¨é€
//     */
//    public void sendMessage(String message) throws IOException {
//        //加入线程锁
//        synchronized (session){
//            try {
//                //同步发送信息
//                this.session.getBasicRemote().sendText(message);
//            } catch (IOException e) {
//                log.error("服务器推送失败:"+e.getMessage());
//            }
//        }
//    }
//
//
//    /**
//     * å‘送自定义消息
//     * */
//    /**
//     * å‘送自定义消息
//     * @param message å‘送的信息
//     * @param toUserId  å¦‚果为null默认发送所有
//     * @throws IOException
//     */
//    public static void sendInfo(String message,String toUserId) throws IOException {
//        //如果userId为空,向所有群体发送
//        if(StringUtils.isEmpty(toUserId)) {
//            //向所有用户发送信息
//            Iterator<String> itera = webSocketMap.keySet().iterator();
//            while (itera.hasNext()) {
//                String keys = itera.next();
//                WebSocketServer item = webSocketMap.get(keys);
//                item.sendMessage(message);
//            }
//        }
//        //如果不为空,则发送指定用户信息
//        else if(webSocketMap.containsKey(toUserId)){
//            WebSocketServer item = webSocketMap.get(toUserId);
//            item.sendMessage(message);
//        }else{
//            log.error("请求的userId:"+toUserId+"不在该服务器上");
//        }
//    }
//
//    public static synchronized int getOnlineCount() {
//        return onlineCount;
//    }
//
//    public static synchronized void addOnlineCount() {
//        WebSocketServer.onlineCount++;
//    }
//
//    public static synchronized void subOnlineCount() {
//        WebSocketServer.onlineCount--;
//    }
//
//    public static synchronized ConcurrentHashMap<String, WebSocketServer> getWebSocketMap(){
//        return WebSocketServer.webSocketMap;
//    }
//}
mes-web/src/main/java/com/chinaztt/mes/App.java
@@ -7,6 +7,7 @@
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
/**
 * @author ztt archetype
@@ -19,6 +20,7 @@
@EnableZttFeignClients(basePackages = {"com.chinaztt.**"})
@EnableZttResourceServer
@EnableZttXxlJob
@EnableWebSocket
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
mes-web/src/main/resources/bootstrap.yml
@@ -6,9 +6,9 @@
    druid:
      username: postgres
      #      password: postgres123
      password: root2022
      password: zsAdmin123!
      #      å°„频开发数据库
      url: jdbc:postgresql://106.13.194.57:9015/postgres
      url: jdbc:postgresql://127.0.0.1:5432/postgres
  application:
    name: ztt-mes
  cloud:
@@ -17,7 +17,7 @@
      #      password: nacos
      password: zttZTT123!
      discovery:
        server-addr: 106.13.194.57:8848
        server-addr: 127.0.0.1:8848
        metadata:
          #          VERSION: 10.88.15.224
          VERSION: 127.0.0.1