cl
2024-07-04 ef58b9f5268fb32189123bc39d8c69e41612befb
修改参数采集
已修改4个文件
95 ■■■■ 文件已修改
jcdm-admin/src/main/resources/application-druid.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-admin/src/main/resources/application-druid.yml
@@ -17,11 +17,11 @@
            # 主库数据源
            master:
#                url: jdbc:sqlserver://192.168.0.189:1433;DataBaseName=Jcdm042-Mes
                url: jdbc:sqlserver://183.134.244.158:1433;DataBaseName=Jcdm042-Mes-Module-One
#                url: jdbc:sqlserver://192.168.10.100:1433;DataBaseName=Jcdm042-Mes-Module-One
#                url: jdbc:sqlserver://183.134.244.158:1433;DataBaseName=Jcdm042-Mes-Module-Two
                url: jdbc:sqlserver://192.168.10.100:1433;DataBaseName=Jcdm042-Mes-Module-One
                username: sa
                password: JCDM@2023
#                password: admin@123
#                password: JCDM@2023
                password: admin@123
#                password: 1!deshine
#                password: 123456
jcdm-admin/src/main/resources/application.yml
@@ -1,7 +1,7 @@
# 项目相关配置
ruoyi:
  # 名称
  name: RuoYi
  name: JCDM
  # 版本
  version: 3.8.6
  # 版权年份
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -309,21 +309,21 @@
                //给opc发21
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("MOZU1."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
                if(daParamCollection.getLocationCode().equals("OP240")){
                if(daParamCollection.getLocationCode().equals("M1OP100-1") || daParamCollection.getLocationCode().equals("M1OP100-2") ){
                    try{
                        CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                            logger.info("OP230报工开始-工厂MES异步方法");
                            String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "OP230", format.format(new Date()));
                            logger.info("OP100报工开始-工厂MES异步方法");
                            String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), daParamCollection.getLocationCode(), format.format(new Date()));
                            JSONObject jsonObject = new JSONObject(reportResult);
                            String code = jsonObject.getStr("code");
                            if("success".equals(code)){
                                //如果成功,执行报工成功方法,修改是否报工为1,添加报工时间
                                omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"OP230");
                                omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),daParamCollection.getLocationCode());
                            }else{
                                //解析工厂mes返回结果,如果失败,执行报工失败方法,修改是否报工为2,添加报工时间
                                omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"OP230");
                                omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),daParamCollection.getLocationCode());
                            }
                            logger.info("OP230报工结束-工厂MES异步方法{}"+reportResult);
                            logger.info("OP100报工结束-工厂MES异步方法{}"+reportResult);
                        });
                    }catch (Exception e){
                        System.out.println(e.getMessage());
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -6,8 +6,10 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.framework.websocket.WebSocketUsers;
import com.jcdm.main.constant.Constants;
import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
@@ -21,6 +23,7 @@
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import com.jcdm.main.plcserver.util.TimeUtil;
import com.jcdm.main.restful.factoryMes.service.RestfulService;
import com.jcdm.main.restful.qingYan.doman.ChildVO;
import com.jcdm.main.restful.qingYan.doman.ParentVO;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -29,6 +32,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import javax.websocket.Session;
import java.text.SimpleDateFormat;
@@ -107,7 +111,7 @@
                    }
                }else if (Constants.RECORD_SN.equals(tab)){//求下发模组码请9
                    if (Constants.ONE.equals(valueString)){
                        if (Constants.OP100_1.equals(device) || Constants.OP100_2.equals(device) ){
                        /*if (Constants.OP100_1.equals(device) || Constants.OP100_2.equals(device) ){
                            //查询要生产的工单
                            List<OmProductionOrdeInfo> orderList = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>()
                                    .eq(OmProductionOrdeInfo::getOrderStatus, Constants.ONE));//工单状态
@@ -118,7 +122,7 @@
                                //下发产品模组码
                                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_ModuleCode").value(productNum).build());
                                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_WorkOrderNumber").value(productNum).build());
                                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_ProductType").value(productNum).build());
                                //miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_ProductType").value(productNum).build());
                                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordSNDone").value(1).build());
                                //更新工单状态为执行中
@@ -133,7 +137,9 @@
                            }else{
                                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordSNDone").value(2).build());//没有要生产的工单
                            }
                        }
                        }*/
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordSNDone").value(2).build());//没有要生产的工单
                    }
                }else if (Constants.RECORD_DATA.equals(tab)){//出入站
                    if (Constants.ONE.equals(valueString)){//入站
@@ -149,7 +155,25 @@
                                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build());
                                log.info("写入到工位{}的RecordDataDone数据:{}",device,12);
                            }
                        } else {
                        } else if(Constants.OP100_1.equals(device) || Constants.OP100_2.equals(device)){
                            //1、进站PLC给产品类型,MES读取产品类型
                            ReadWriteEntity productTypeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".MES_ProductType");//产品类型
                            if (ObjectUtil.isNotNull(productTypeRead.getValue())){
                                String productType = productTypeRead.getValue().toString();
                                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                                    //调用工厂MES,保存到数据库,并且将工单传给PLC
                                    receivingWorkOrders(thoroughfare, device);
                                });
                                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build());
                                log.info("写入到工位{}的RecordDataDone数据:{}",device,11);
                            }else{
                                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build());
                            }
                        }else {
                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build());
                            log.info("写入到工位{}的RecordDataDone数据:{}",device,11);
                        }
@@ -210,6 +234,47 @@
    }
    public void receivingWorkOrders(String thoroughfare ,String device)
    {
        String paramProductNum = "";
        try {
            // 查询最新的工单信息
            List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().orderByAsc(OmProductionOrdeInfo::getCreateTime));
            if(list.size() > 0){
                paramProductNum = list.get(list.size()-1).getProductNum();
            }
            String orderJsonString = RestfulService.getProductionWorkOrderRequest(paramProductNum, "OP230");
            JSONObject jsonObject = new JSONObject(orderJsonString);
            // 从JSONObject中获取data对象
            JSONObject dataObject = jsonObject.getJSONObject("data");
            String code = jsonObject.getStr("code");
            // 判断接单是否成功
            if(code.equals("success")) {
                log.info("请求工厂MES工单:入参pack{}出参pack:{}", paramProductNum, dataObject.getStr("productNum"));
                OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo();
                omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum"));
                omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum"));
                omProductionOrdeInfo.setStationCode(dataObject.getStr("stationCode"));
                omProductionOrdeInfo.setMaterialCode(dataObject.getStr("materialCode"));
                omProductionOrdeInfo.setOnlineCompletionMark("0");
                omProductionOrdeInfo.setSfResult("0");
                omProductionOrdeInfo.setProductCode(dataObject.getStr("model"));
                omProductionOrdeInfo.setCreateTime(new Date());
                omProductionOrdeInfo.setCreateUser("工厂MES");
                omProductionOrdeInfoService.save(omProductionOrdeInfo);
                //发送给前台
                WebSocketUsers.sendMessageToUserByText(map.get(device), dataObject.getStr("productNum"));
                //写PLC
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_ModuleCode").value(dataObject.getStr("productNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 读取电芯码