hdy
2025-02-27 bf5dcc46de28c2ca664be4c6c3566e0a82c1ecd6
修改
已修改9个文件
已添加7个文件
1453 ■■■■■ 文件已修改
billion-main/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/config/RestTemplateConfig.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/controller/DaCollectionParamConfController.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/controller/DaParamCollectionController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/domain/DaCollectionParamConf.java 357 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/domain/DaParamCollection.java 336 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/mapper/DaCollectionParamConfMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/mapper/DaParamCollectionMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/IDaCollectionParamConfService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/IDaParamCollectionService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/impl/DaCollectionParamConfServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/da/DaCollectionParamConfMapper.xml 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/pom.xml
@@ -66,6 +66,11 @@
            <version>3.0.5</version>
        </dependency>
        <!-- opc end-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
billion-main/src/main/java/com/billion/main/api/service/impl/WorkOrdersInfoServiceImpl.java
@@ -49,7 +49,7 @@
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date startTime = sdf.parse(workOrdersInfo.getStartTime());
            omProductionOrderInfo.setPlanStartTime(startTime);
            omProductionOrderInfo.setRemarks(workOrdersInfo.getDescription());
            omProductionOrderInfo.setRemarks(Long.valueOf(workOrdersInfo.getDescription()));
            omProductionOrderInfo.setOrderStatus(workOrdersInfo.getState());
            omProductionOrderInfo.setFlag(workOrdersInfo.getFLAG());
            omProductionOrderInfoService.save(omProductionOrderInfo);
billion-main/src/main/java/com/billion/main/config/RestTemplateConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.billion.main.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
    /**
     * æ²¡æœ‰å®žä¾‹åŒ–RestTemplate时,初始化RestTemplate
     * @return
     */
    @ConditionalOnMissingBean(RestTemplate.class)
    @Bean
    public RestTemplate restTemplate(){
        RestTemplate restTemplate = new RestTemplate();
        return restTemplate;
    }
}
billion-main/src/main/java/com/billion/main/da/controller/DaCollectionParamConfController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
package com.billion.main.da.controller;
import cn.hutool.json.JSONObject;
import com.billion.common.annotation.Log;
import com.billion.common.core.controller.BaseController;
import com.billion.common.core.domain.AjaxResult;
import com.billion.common.core.domain.R;
import com.billion.common.core.page.TableDataInfo;
import com.billion.common.enums.BusinessType;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.main.config.RestTemplateConfig;
import com.billion.main.da.domain.DaCollectionParamConf;
import com.billion.main.da.service.IDaCollectionParamConfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
 * é‡‡é›†å‚数配置Controller
 *
 * @author ruimin
 * @date 2023-12-25
 */
@RestController
@RequestMapping("/da/collectionParamConf")
public class DaCollectionParamConfController extends BaseController
{
    @Autowired
    private IDaCollectionParamConfService daCollectionParamConfService;
    @Resource
    private RestTemplateConfig restTemplateConfig;
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置列表
     */
    @PreAuthorize("@ss.hasPermi('da:collectionParamConf:list')")
    @GetMapping("/list")
    public TableDataInfo list(DaCollectionParamConf daCollectionParamConf)
    {
        startPage();
        List<DaCollectionParamConf> list = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºé‡‡é›†å‚数配置列表
     */
    @PreAuthorize("@ss.hasPermi('da:collectionParamConf:export')")
    @Log(title = "采集参数配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, DaCollectionParamConf daCollectionParamConf)
    {
        List<DaCollectionParamConf> list = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        ExcelUtil<DaCollectionParamConf> util = new ExcelUtil<DaCollectionParamConf>(DaCollectionParamConf.class);
        util.exportExcel(response, list, "采集参数配置数据");
    }
    /**
     * èŽ·å–采集参数配置详细信息
     */
    @PreAuthorize("@ss.hasPermi('da:collectionParamConf:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(daCollectionParamConfService.selectDaCollectionParamConfById(id));
    }
    /**
     * æ–°å¢žé‡‡é›†å‚数配置
     */
    @PreAuthorize("@ss.hasPermi('da:collectionParamConf:add')")
    @Log(title = "采集参数配置", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DaCollectionParamConf daCollectionParamConf)
    {
        return toAjax(daCollectionParamConfService.insertDaCollectionParamConf(daCollectionParamConf));
    }
    /**
     * ä¿®æ”¹é‡‡é›†å‚数配置
     */
    @PreAuthorize("@ss.hasPermi('da:collectionParamConf:edit')")
    @Log(title = "采集参数配置", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DaCollectionParamConf daCollectionParamConf)
    {
        return toAjax(daCollectionParamConfService.updateDaCollectionParamConf(daCollectionParamConf));
    }
    /**
     * åˆ é™¤é‡‡é›†å‚数配置
     */
    @PreAuthorize("@ss.hasPermi('da:collectionParamConf:remove')")
    @Log(title = "采集参数配置", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(daCollectionParamConfService.deleteDaCollectionParamConfByIds(ids));
    }
    /**
     * æµ‹è¯•ä½¿ç”¨resttemplate实现接口对接
     * @return R
     */
    @GetMapping("/testHttpClientConnect")
    public R testHttpClientConnect(){
//        String url = "http://localhost:81/dev-api/system/dict/data/type/{param}";
//        String param = "sys_user_sex";
//        ResponseEntity<JSONObject> forEntity = restTemplateConfig.restTemplate().getForEntity(url, JSONObject.class,param);
//        JSONObject body = forEntity.getBody();
//        System.out.println(body.toString());
        String url = "http://localhost:81/dev-api/bs/formulaChild/getProductProcess";
        HashMap<String,String> map = new HashMap<>();
        map.put("productCode","2V91");
        ResponseEntity<JSONObject> jsonObjectResponseEntity = restTemplateConfig.restTemplate().postForEntity(url, map, JSONObject.class);
        System.out.println(Objects.requireNonNull(jsonObjectResponseEntity.getBody()));
        return R.ok();
    }
}
billion-main/src/main/java/com/billion/main/da/controller/DaParamCollectionController.java
@@ -1,26 +1,20 @@
package com.billion.main.da.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.billion.main.da.service.IDaParamCollectionService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.billion.common.annotation.Log;
import com.billion.common.core.controller.BaseController;
import com.billion.common.core.domain.AjaxResult;
import com.billion.common.enums.BusinessType;
import com.billion.main.da.domain.DaParamCollection;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.common.core.page.TableDataInfo;
import com.billion.common.enums.BusinessType;
import com.billion.common.utils.DateUtils;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.main.da.domain.DaParamCollection;
import com.billion.main.da.service.IDaParamCollectionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * å‚数采集Controller
@@ -78,6 +72,8 @@
    @PostMapping
    public AjaxResult add(@RequestBody DaParamCollection daParamCollection)
    {
        daParamCollection.setCreateBy(getUsername());
        daParamCollection.setCreateTime(DateUtils.getNowDate());
        return toAjax(daParamCollectionService.insertDaParamCollection(daParamCollection));
    }
@@ -89,6 +85,8 @@
    @PutMapping
    public AjaxResult edit(@RequestBody DaParamCollection daParamCollection)
    {
        daParamCollection.setUpdateBy(getUsername());
        daParamCollection.setUpdateTime(DateUtils.getNowDate());
        return toAjax(daParamCollectionService.updateDaParamCollection(daParamCollection));
    }
billion-main/src/main/java/com/billion/main/da/domain/DaCollectionParamConf.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,357 @@
package com.billion.main.da.domain;
import com.billion.common.annotation.Excel;
import com.billion.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
 * é‡‡é›†å‚数配置对象 da_collection_param_conf
 *
 * @author ruimin
 * @date 2023-12-25
 */
@Data
public class DaCollectionParamConf extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    private Integer keyNum;
    /** å·¥åºç¼–号 */
    @Excel(name = "工序编号")
    private String processesCode;
    /** å‚数集编码 */
    @Excel(name = "参数集编码")
    private String parameterSetCode;
    /** å‚数集名称 */
    @Excel(name = "参数集名称")
    private String parameterSetName;
    /** æ•°æ®æè¿° */
    @Excel(name = "数据描述")
    private String descriptive;
    /** äº§å“ç¼–码 */
    @Excel(name = "产品编码")
    private String productCode;
    /** é‡‡é›†åœ°å€ */
    @Excel(name = "采集地址")
    private String gatherAddress;
    /** é‡‡é›†é¡ºåº */
    @Excel(name = "采集顺序")
    private String gatherSequence;
    /** å¤‡æ³¨ */
    @Excel(name = "备注")
    private String remarks;
    /** åˆ›å»ºç”¨æˆ· */
    @Excel(name = "创建用户")
    private String createUser;
    /** æ›´æ”¹ç”¨æˆ· */
    @Excel(name = "更改用户")
    private String updateUser;
    /** é¢„留字段1 */
    private String spareField1;
    /** é¢„留字段2 */
    private String spareField2;
    /** é¢„留字段3 */
    private String spareField3;
    /** é¢„留字段4 */
    private String spareField4;
    /** å·¥åºåç§° */
    @Excel(name = "工序名称")
    private String processesName;
    /** è®¾å¤‡ */
    @Excel(name = "设备")
    private String device;
    /** é¡¹ç›® */
    @Excel(name = "项目")
    private String project;
    /** ç²¾åº¦ */
    @Excel(name = "精度")
    private Long accuracy;
    /** æ•°ç»„长度 */
    @Excel(name = "数组长度")
    private Long arrayLength;
    /** é‡‡é›†é¢‘率 */
    @Excel(name = "采集频率")
    private String acquisitionFrequency;
    /** ä¸šåŠ¡éœ€æ±‚部门 */
    @Excel(name = "业务需求部门")
    private String demandDepartment;
    /** æ˜¯å¦é‡‡é›† */
    @Excel(name = "是否采集")
    private String whetherToCollect;
    /** é»˜è®¤å€¼ */
    @Excel(name = "默认值")
    private String defaultValue;
    /** äº§å“åž‹å· */
    @Excel(name = "产品型号")
    private String productModel;
    public String getProductModel() {
        return productModel;
    }
    public void setProductModel(String productModel) {
        this.productModel = productModel;
    }
    public String getProcessesName() {
        return processesName;
    }
    public void setProcessesName(String processesName) {
        this.processesName = processesName;
    }
    public String getDevice() {
        return device;
    }
    public void setDevice(String device) {
        this.device = device;
    }
    public String getProject() {
        return project;
    }
    public void setProject(String project) {
        this.project = project;
    }
    public Long getAccuracy() {
        return accuracy;
    }
    public void setAccuracy(Long accuracy) {
        this.accuracy = accuracy;
    }
    public Long getArrayLength() {
        return arrayLength;
    }
    public void setArrayLength(Long arrayLength) {
        this.arrayLength = arrayLength;
    }
    public String getAcquisitionFrequency() {
        return acquisitionFrequency;
    }
    public void setAcquisitionFrequency(String acquisitionFrequency) {
        this.acquisitionFrequency = acquisitionFrequency;
    }
    public String getDemandDepartment() {
        return demandDepartment;
    }
    public void setDemandDepartment(String demandDepartment) {
        this.demandDepartment = demandDepartment;
    }
    public String getWhetherToCollect() {
        return whetherToCollect;
    }
    public void setWhetherToCollect(String whetherToCollect) {
        this.whetherToCollect = whetherToCollect;
    }
    public String getDefaultValue() {
        return defaultValue;
    }
    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setProcessesCode(String processesCode)
    {
        this.processesCode = processesCode;
    }
    public String getProcessesCode()
    {
        return processesCode;
    }
    public void setParameterSetCode(String parameterSetCode)
    {
        this.parameterSetCode = parameterSetCode;
    }
    public String getParameterSetCode()
    {
        return parameterSetCode;
    }
    public void setParameterSetName(String parameterSetName)
    {
        this.parameterSetName = parameterSetName;
    }
    public String getParameterSetName()
    {
        return parameterSetName;
    }
    public void setDescriptive(String descriptive)
    {
        this.descriptive = descriptive;
    }
    public String getDescriptive()
    {
        return descriptive;
    }
    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }
    public String getProductCode()
    {
        return productCode;
    }
    public void setGatherAddress(String gatherAddress)
    {
        this.gatherAddress = gatherAddress;
    }
    public String getGatherAddress()
    {
        return gatherAddress;
    }
    public void setGatherSequence(String gatherSequence)
    {
        this.gatherSequence = gatherSequence;
    }
    public String getGatherSequence()
    {
        return gatherSequence;
    }
    public void setRemarks(String remarks)
    {
        this.remarks = remarks;
    }
    public String getRemarks()
    {
        return remarks;
    }
    public void setCreateUser(String createUser)
    {
        this.createUser = createUser;
    }
    public String getCreateUser()
    {
        return createUser;
    }
    public void setUpdateUser(String updateUser)
    {
        this.updateUser = updateUser;
    }
    public String getUpdateUser()
    {
        return updateUser;
    }
    public void setSpareField1(String spareField1)
    {
        this.spareField1 = spareField1;
    }
    public String getSpareField1()
    {
        return spareField1;
    }
    public void setSpareField2(String spareField2)
    {
        this.spareField2 = spareField2;
    }
    public String getSpareField2()
    {
        return spareField2;
    }
    public void setSpareField3(String spareField3)
    {
        this.spareField3 = spareField3;
    }
    public String getSpareField3()
    {
        return spareField3;
    }
    public void setSpareField4(String spareField4)
    {
        this.spareField4 = spareField4;
    }
    public String getSpareField4()
    {
        return spareField4;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("processesCode", getProcessesCode())
            .append("parameterSetCode", getParameterSetCode())
            .append("parameterSetName", getParameterSetName())
            .append("descriptive", getDescriptive())
            .append("productCode", getProductCode())
            .append("gatherAddress", getGatherAddress())
            .append("gatherSequence", getGatherSequence())
            .append("remarks", getRemarks())
            .append("createUser", getCreateUser())
            .append("createTime", getCreateTime())
            .append("updateUser", getUpdateUser())
            .append("updateTime", getUpdateTime())
            .append("spareField1", getSpareField1())
            .append("spareField2", getSpareField2())
            .append("spareField3", getSpareField3())
            .append("spareField4", getSpareField4())
            .toString();
    }
}
billion-main/src/main/java/com/billion/main/da/domain/DaParamCollection.java
@@ -1,14 +1,18 @@
package com.billion.main.da.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * å‚数采集对象 da_param_collection
@@ -17,6 +21,10 @@
 * @date 2024-11-20
 */
@Data
@ExcelIgnoreUnannotated
@ColumnWidth(16)
@HeadRowHeight(14)
@HeadFontStyle(fontHeightInPoints = 11)
public class DaParamCollection extends BaseEntity
{
    private static final long serialVersionUID = 1L;
@@ -24,39 +32,329 @@
    /** ä¸»é”®id */
    private Long id;
    /** å·¥å•ç¼–号 */
    @Excel(name = "工单编号")
    private String workOrderNo;
    private String repairFlag;
    /** æ€»æˆåºåˆ—号 */
    @Excel(name = "总成序列号")
    @Excel(name = "箱体编码")
    private String sfcCode;
    /** å·¥ä½ç¼–码 */
    @Excel(name = "工位编码")
    /** äº§å“ç¼–号 */
    @Excel(name = "产品编号")
    private String productCode;
    /** äº§çº¿ç¼–号 */
    @Excel(name = "产线编号")
    private String productionLine;
    /** å·¥ä½ç¼–号 */
    @Excel(name = "工位编号")
    private String locationCode;
    /** è®¾å¤‡ç¼–号 */
    @Excel(name = "设备编号")
    private String equipmentNo;
    /** å‚数编码 */
    @Excel(name = "参数编码")
    private String paramCode;
    /** å‚数名称 */
    @Excel(name = "参数名称")
    private String paramName;
    /** å‚数值 */
    @Excel(name = "参数值")
    private String paramValue;
    /** å‚数上限 */
    @Excel(name = "参数上限")
    private String paramUpper;
    /** å‚数下限 */
    @Excel(name = "参数下限")
    private String paramLower;
    /** æ ‡å‡†å€¼ */
    @Excel(name = "标准值")
    private String paramStandard;
    /** é‡‡é›†æ—¶é—´ */
    @Excel(name = "采集时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    private Date collectionTime;
    @TableField(exist = false)
    private String[] timeQuery;
    /** é¢„留字段1 */
    private String spareField1;
    @TableField(exist = false)
    /** é¢„留字段2 */
    private String spareField2;
    /** åˆ›å»ºç”¨æˆ· */
    private String createUser;
    /** æ›´æ”¹ç”¨æˆ· */
    private String updateUser;
    /** çŠ¶æ€ï¼ˆ1合格、2不合格) */
    @Excel(name = "状态", readConverterExp = "1=合格、2不合格")
    private String state;
    /** å‚数名称 */
    @Excel(name = "参数名称")
    private String paramName;
    /** å•ä½ */
    @Excel(name = "单位")
    private String unit;
    /** ç±»åž‹ */
    @Excel(name = "类型")
    private String type;
    private String[] dateConditions;
    private String startTime;
    @TableField(exist = false)
    private String stopTime;
    private String endTime;
    public String[] getDateConditions() {
        return dateConditions;
    }
    public void setDateConditions(String[] dateConditions) {
        this.dateConditions = dateConditions;
    }
    public String getStartTime() {return startTime;}
    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }
    public String getEndTime() {
        return endTime;
    }
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setWorkOrderNo(String workOrderNo)
    {
        this.workOrderNo = workOrderNo;
    }
    public String getWorkOrderNo()
    {
        return workOrderNo;
    }
    public void setSfcCode(String sfcCode)
    {
        this.sfcCode = sfcCode;
    }
    public String getSfcCode()
    {
        return sfcCode;
    }
    public void setProductCode(String productCode)
    {
        this.productCode = productCode;
    }
    public String getProductCode()
    {
        return productCode;
    }
    public void setProductionLine(String productionLine)
    {
        this.productionLine = productionLine;
    }
    public String getProductionLine()
    {
        return productionLine;
    }
    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }
    public String getLocationCode()
    {
        return locationCode;
    }
    public void setEquipmentNo(String equipmentNo)
    {
        this.equipmentNo = equipmentNo;
    }
    public String getEquipmentNo()
    {
        return equipmentNo;
    }
    public void setParamCode(String paramCode)
    {
        this.paramCode = paramCode;
    }
    public String getParamCode()
    {
        return paramCode;
    }
    public void setParamValue(String paramValue)
    {
        this.paramValue = paramValue;
    }
    public String getParamValue()
    {
        return paramValue;
    }
    public void setParamUpper(String paramUpper)
    {
        this.paramUpper = paramUpper;
    }
    public String getParamUpper()
    {
        return paramUpper;
    }
    public void setParamLower(String paramLower)
    {
        this.paramLower = paramLower;
    }
    public String getParamLower()
    {
        return paramLower;
    }
    public void setParamStandard(String paramStandard)
    {
        this.paramStandard = paramStandard;
    }
    public String getParamStandard()
    {
        return paramStandard;
    }
    public void setCollectionTime(Date collectionTime)
    {
        this.collectionTime = collectionTime;
    }
    public Date getCollectionTime()
    {
        return collectionTime;
    }
    public void setSpareField1(String spareField1)
    {
        this.spareField1 = spareField1;
    }
    public String getSpareField1()
    {
        return spareField1;
    }
    public void setSpareField2(String spareField2)
    {
        this.spareField2 = spareField2;
    }
    public String getSpareField2()
    {
        return spareField2;
    }
    public void setCreateUser(String createUser)
    {
        this.createUser = createUser;
    }
    public String getCreateUser()
    {
        return createUser;
    }
    public void setUpdateUser(String updateUser)
    {
        this.updateUser = updateUser;
    }
    public String getUpdateUser()
    {
        return updateUser;
    }
    public void setState(String state)
    {
        this.state = state;
    }
    public String getState()
    {
        return state;
    }
    public void setParamName(String paramName)
    {
        this.paramName = paramName;
    }
    public String getParamName()
    {
        return paramName;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }
    public String getUnit()
    {
        return unit;
    }
    public void setType(String type)
    {
        this.type = type;
    }
    public String getType()
    {
        return type;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("workOrderNo", getWorkOrderNo())
                .append("sfcCode", getSfcCode())
                .append("productCode", getProductCode())
                .append("productionLine", getProductionLine())
                .append("locationCode", getLocationCode())
                .append("equipmentNo", getEquipmentNo())
                .append("paramCode", getParamCode())
                .append("paramValue", getParamValue())
                .append("paramUpper", getParamUpper())
                .append("paramLower", getParamLower())
                .append("paramStandard", getParamStandard())
                .append("collectionTime", getCollectionTime())
                .append("spareField1", getSpareField1())
                .append("spareField2", getSpareField2())
                .append("createUser", getCreateUser())
                .append("createTime", getCreateTime())
                .append("updateUser", getUpdateUser())
                .append("updateTime", getUpdateTime())
                .append("state", getState())
                .append("paramName", getParamName())
                .append("unit", getUnit())
                .append("type", getType())
                .toString();
    }
}
billion-main/src/main/java/com/billion/main/da/mapper/DaCollectionParamConfMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.da.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.da.domain.DaCollectionParamConf;
import java.util.List;
/**
 * é‡‡é›†å‚数配置Mapper接口
 *
 * @author ruimin
 * @date 2023-12-25
 */
public interface DaCollectionParamConfMapper extends BaseMapper<DaCollectionParamConf>
{
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置
     *
     * @param id é‡‡é›†å‚数配置主键
     * @return é‡‡é›†å‚数配置
     */
    public DaCollectionParamConf selectDaCollectionParamConfById(Long id);
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置列表
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return é‡‡é›†å‚数配置集合
     */
    public List<DaCollectionParamConf> selectDaCollectionParamConfList(DaCollectionParamConf daCollectionParamConf);
    /**
     * æ–°å¢žé‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    public int insertDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf);
    /**
     * ä¿®æ”¹é‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    public int updateDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf);
    /**
     * åˆ é™¤é‡‡é›†å‚数配置
     *
     * @param id é‡‡é›†å‚数配置主键
     * @return ç»“æžœ
     */
    public int deleteDaCollectionParamConfById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤é‡‡é›†å‚数配置
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteDaCollectionParamConfByIds(Long[] ids);
}
billion-main/src/main/java/com/billion/main/da/mapper/DaParamCollectionMapper.java
@@ -1,9 +1,10 @@
package com.billion.main.da.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.da.domain.DaParamCollection;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * å‚数采集Mapper接口
@@ -29,6 +30,8 @@
     */
    public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection);
    public List<DaParamCollection> getListBySfcCode(@Param("engineNoList") List<String> engineNoList);
    /**
     * æ–°å¢žå‚数采集
     * 
billion-main/src/main/java/com/billion/main/da/service/IDaCollectionParamConfService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.da.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.da.domain.DaCollectionParamConf;
import java.util.List;
/**
 * é‡‡é›†å‚数配置Service接口
 *
 * @author ruimin
 * @date 2023-12-25
 */
public interface IDaCollectionParamConfService extends IService<DaCollectionParamConf>
{
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置
     *
     * @param id é‡‡é›†å‚数配置主键
     * @return é‡‡é›†å‚数配置
     */
    public DaCollectionParamConf selectDaCollectionParamConfById(Long id);
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置列表
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return é‡‡é›†å‚数配置集合
     */
    public List<DaCollectionParamConf> selectDaCollectionParamConfList(DaCollectionParamConf daCollectionParamConf);
    /**
     * æ–°å¢žé‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    public int insertDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf);
    /**
     * ä¿®æ”¹é‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    public int updateDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf);
    /**
     * æ‰¹é‡åˆ é™¤é‡‡é›†å‚数配置
     *
     * @param ids éœ€è¦åˆ é™¤çš„采集参数配置主键集合
     * @return ç»“æžœ
     */
    public int deleteDaCollectionParamConfByIds(Long[] ids);
    /**
     * åˆ é™¤é‡‡é›†å‚数配置信息
     *
     * @param id é‡‡é›†å‚数配置主键
     * @return ç»“æžœ
     */
    public int deleteDaCollectionParamConfById(Long id);
}
billion-main/src/main/java/com/billion/main/da/service/IDaParamCollectionService.java
@@ -1,9 +1,8 @@
package com.billion.main.da.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.da.domain.DaParamCollection;
import java.util.List;
/**
 * å‚数采集Service接口
@@ -11,7 +10,7 @@
 * @author Billion-Yi
 * @date 2024-11-20
 */
public interface IDaParamCollectionService extends IService<DaParamCollection>
public interface IDaParamCollectionService
{
    /**
     * æŸ¥è¯¢å‚数采集
@@ -60,4 +59,11 @@
     * @return ç»“æžœ
     */
    public int deleteDaParamCollectionById(Long id);
    /**
     * ä½¿ç”¨sqlSessionFactory实现批量插入数据
     *
     * @param list è®¾å¤‡äº§å“è¿‡ç¨‹å‚数采集主键
     * @return ç»“æžœ
     */
    void saveBeachDaParamCollection(List<DaParamCollection> list);
}
billion-main/src/main/java/com/billion/main/da/service/impl/DaCollectionParamConfServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.da.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.utils.DateUtils;
import com.billion.main.da.domain.DaCollectionParamConf;
import com.billion.main.da.mapper.DaCollectionParamConfMapper;
import com.billion.main.da.service.IDaCollectionParamConfService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * é‡‡é›†å‚数配置Service业务层处理
 *
 * @author ruimin
 * @date 2023-12-25
 */
@Service
public class DaCollectionParamConfServiceImpl extends ServiceImpl<DaCollectionParamConfMapper,DaCollectionParamConf> implements IDaCollectionParamConfService
{
    @Autowired
    private DaCollectionParamConfMapper daCollectionParamConfMapper;
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置
     *
     * @param id é‡‡é›†å‚数配置主键
     * @return é‡‡é›†å‚数配置
     */
    @Override
    public DaCollectionParamConf selectDaCollectionParamConfById(Long id)
    {
        return daCollectionParamConfMapper.selectDaCollectionParamConfById(id);
    }
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置列表
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return é‡‡é›†å‚数配置
     */
    @Override
    public List<DaCollectionParamConf> selectDaCollectionParamConfList(DaCollectionParamConf daCollectionParamConf)
    {
        return daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
    }
    /**
     * æ–°å¢žé‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    @Override
    public int insertDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf)
    {
        daCollectionParamConf.setCreateTime(DateUtils.getNowDate());
        return daCollectionParamConfMapper.insertDaCollectionParamConf(daCollectionParamConf);
    }
    /**
     * ä¿®æ”¹é‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    @Override
    public int updateDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf)
    {
        daCollectionParamConf.setUpdateTime(DateUtils.getNowDate());
        return daCollectionParamConfMapper.updateDaCollectionParamConf(daCollectionParamConf);
    }
    /**
     * æ‰¹é‡åˆ é™¤é‡‡é›†å‚数配置
     *
     * @param ids éœ€è¦åˆ é™¤çš„采集参数配置主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaCollectionParamConfByIds(Long[] ids)
    {
        return daCollectionParamConfMapper.deleteDaCollectionParamConfByIds(ids);
    }
    /**
     * åˆ é™¤é‡‡é›†å‚数配置信息
     *
     * @param id é‡‡é›†å‚数配置主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaCollectionParamConfById(Long id)
    {
        return daCollectionParamConfMapper.deleteDaCollectionParamConfById(id);
    }
}
billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java
@@ -1,18 +1,17 @@
package com.billion.main.da.service.impl;
import java.util.Date;
import java.util.List;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.utils.SecurityUtils;
import com.billion.common.utils.DateUtils;
import com.billion.main.da.domain.DaParamCollection;
import com.billion.main.da.mapper.DaParamCollectionMapper;
import com.billion.main.da.service.IDaParamCollectionService;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.billion.main.da.mapper.DaParamCollectionMapper;
import com.billion.main.da.domain.DaParamCollection;
import com.billion.main.da.service.IDaParamCollectionService;
import static org.apache.commons.lang3.SystemUtils.getUserName;
import javax.annotation.Resource;
import java.util.List;
/**
 * å‚数采集Service业务层处理
@@ -21,10 +20,18 @@
 * @date 2024-11-20
 */
@Service
public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper, DaParamCollection> implements IDaParamCollectionService
public class DaParamCollectionServiceImpl implements IDaParamCollectionService
{
    @Autowired
    private DaParamCollectionMapper daParamCollectionMapper;
    @Autowired
    private IDaParamCollectionService daParamCollectionService;
    @Resource
    private SqlSessionFactory sqlSessionFactory;
    /**
     * æŸ¥è¯¢å‚数采集
@@ -47,9 +54,10 @@
    @Override
    public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection)
    {
        if(ObjectUtil.isNotNull(daParamCollection.getTimeQuery())){
            daParamCollection.setStartTime(daParamCollection.getTimeQuery()[0]);
            daParamCollection.setStopTime(daParamCollection.getTimeQuery()[1]);
        if(daParamCollection.getDateConditions()!=null){
            String[] conditions = daParamCollection.getDateConditions();
            daParamCollection.setStartTime(conditions[0]);
            daParamCollection.setEndTime(conditions[1]);
        }
        return daParamCollectionMapper.selectDaParamCollectionList(daParamCollection);
    }
@@ -63,8 +71,7 @@
    @Override
    public int insertDaParamCollection(DaParamCollection daParamCollection)
    {
        daParamCollection.setCollectTime(new Date());
        daParamCollection.setCreateBy(getUserName());
        daParamCollection.setCreateTime(DateUtils.getNowDate());
        return daParamCollectionMapper.insertDaParamCollection(daParamCollection);
    }
@@ -103,4 +110,24 @@
    {
        return daParamCollectionMapper.deleteDaParamCollectionById(id);
    }
    @Override
    public void saveBeachDaParamCollection(List<DaParamCollection> list) {
        // ExecutorType.SIMPLE: è¿™ä¸ªæ‰§è¡Œå™¨ç±»åž‹ä¸åšç‰¹æ®Šçš„事情。它为每个语句的执行创建一个新的预处理语句。
        // ExecutorType.REUSE: è¿™ä¸ªæ‰§è¡Œå™¨ç±»åž‹ä¼šå¤ç”¨é¢„处理语句。
        // ExecutorType.BATCH: è¿™ä¸ªæ‰§è¡Œå™¨ä¼šæ‰¹é‡æ‰§è¡Œæ‰€æœ‰æ›´æ–°è¯­å¥,如果 SELECT åœ¨å®ƒä»¬ä¸­é—´æ‰§è¡Œè¿˜ä¼šæ ‡å®šå®ƒä»¬æ˜¯ å¿…须的,来保证一个简单并易于理解的行为。
        // å…³é—­session的自动提交
        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
        try {
            DaParamCollectionMapper userMapper = sqlSession.getMapper(DaParamCollectionMapper.class);
            list.stream().forEach(DaParamCollection -> userMapper.insertDaParamCollection(DaParamCollection));
            // æäº¤æ•°æ®
            sqlSession.commit();
            sqlSession.rollback();
        } catch (Exception e) {
            sqlSession.rollback();
        } finally {
            sqlSession.close();
        }
    }
}
billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java
@@ -2,6 +2,8 @@
import com.billion.main.bs.service.IBsBomChildInfoService;
import com.billion.main.constant.Constants;
import com.billion.main.da.service.IDaCollectionParamConfService;
import com.billion.main.da.service.IDaMaterialCollectionService;
import com.billion.main.da.service.IDaParamCollectionService;
import com.billion.main.da.service.IDaStationCollectionService;
import com.billion.main.om.service.IOmOrderSchedulingService;
@@ -31,7 +33,11 @@
    @Autowired
    public IOmOrderSchedulingService omOrderSchedulingService;
    @Autowired
    public IBsBomChildInfoService bomChildInfoService;
    public IBsBomChildInfoService bsBomChildInfoService;
    @Autowired
    public IDaCollectionParamConfService daCollectionParamConfService;
    @Autowired
    public IDaMaterialCollectionService daMaterialCollectionService;
    @Override
@@ -94,7 +100,9 @@
                daStationCollectionService,
                omProductionOrderInfoService,
                omOrderSchedulingService,
                bomChildInfoService);
                bsBomChildInfoService,
                daCollectionParamConfService,
                daMaterialCollectionService);
        List<String> lists = getList();
        System.out.println("订阅内容:"+lists);
billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
@@ -1,8 +1,14 @@
package com.billion.main.plcServer.sub;
import com.billion.common.utils.StringUtils;
import com.billion.main.bs.domain.BsBomChildInfo;
import com.billion.main.bs.service.IBsBomChildInfoService;
import com.billion.main.constant.Constants;
import com.billion.main.da.domain.DaCollectionParamConf;
import com.billion.main.da.domain.DaMaterialCollection;
import com.billion.main.da.domain.DaParamCollection;
import com.billion.main.da.domain.DaStationCollection;
import com.billion.main.da.service.IDaCollectionParamConfService;
import com.billion.main.da.service.IDaMaterialCollectionService;
import com.billion.main.da.service.IDaParamCollectionService;
import com.billion.main.da.service.IDaStationCollectionService;
import com.billion.main.om.domain.OmOrderScheduling;
@@ -14,9 +20,9 @@
import com.kangaroohy.milo.service.MiloService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@Slf4j
@@ -27,21 +33,28 @@
    public IDaStationCollectionService daStationCollectionService;
    public IOmProductionOrderInfoService omProductionOrderInfoService;
    public IOmOrderSchedulingService omOrderSchedulingService;
    public IBsBomChildInfoService bomChildInfoService;
    public IBsBomChildInfoService bsBomChildInfoService;
    public IDaCollectionParamConfService daCollectionParamConfService;
    public IDaMaterialCollectionService daMaterialCollectionService;
    public OPCUaSubscription(MiloService miloService,
                             IDaParamCollectionService daParamCollectionService,
                             IDaStationCollectionService daStationCollectionService,
                             IOmProductionOrderInfoService omProductionOrderInfoService,
                             IOmOrderSchedulingService omOrderSchedulingService,
                             IBsBomChildInfoService bomChildInfoService
                             IBsBomChildInfoService bsBomChildInfoService,
                             IDaCollectionParamConfService daCollectionParamConfService,
                             IDaMaterialCollectionService daMaterialCollectionService
                             ) {
        OPCUaSubscription.miloService = miloService;
        this.daParamCollectionService = daParamCollectionService;
        this.daStationCollectionService = daStationCollectionService;
        this.omProductionOrderInfoService = omProductionOrderInfoService;
        this.omOrderSchedulingService = omOrderSchedulingService;
        this.bomChildInfoService = bomChildInfoService;
        this.bsBomChildInfoService = bsBomChildInfoService;
        this.daCollectionParamConfService = daCollectionParamConfService;
        this.daMaterialCollectionService = daMaterialCollectionService;
    }
    @Override
    public void onSubscribe(String identifier, Object value) {
@@ -113,11 +126,103 @@
                        omOrderScheduling.setSfcCode(SFCCode.toString());
                        omOrderSchedulinglist.add(omOrderScheduling);
                        omOrderSchedulingService.saveBatch(omOrderSchedulinglist);
                        // ç¼ºå°‘保存数据的方法
                        //查询descriptive字段等于1的采集项保存到扫码保存到da_material_collection表里
                        DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf();
                        daCollectionParamConf1.setProcessesCode(device);
                        daCollectionParamConf1.setDescriptive("1");
                        List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1);
                        for (DaCollectionParamConf conf : daCollectionParamConfList1) {
                            String gatherAddress = conf.getGatherAddress();
                            Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // èŽ·å–原始值对象‌:ml-citation{ref="4" data="citationList"}
                            if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) {
                                log.warn("采集地址{}返回空值,跳过存储", gatherAddress);
                                continue; // ç»ˆæ­¢å½“前循环迭代‌:ml-citation{ref="1,2" data="citationList"}
                            }
                                DaMaterialCollection materialCollection = new DaMaterialCollection();
                                materialCollection.setSfcCode(SFCCode.toString());
                                materialCollection.setLocationCode(device);
                                materialCollection.setParamName(conf.getParameterSetName());
                                materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue());
                                materialCollection.setCollectTime(new Date());
                                daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
                        }
                        //查询descriptive字段等于2的采集项保存到扫码保存到da_param_collection表里
                        DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf();
                        daCollectionParamConf2.setProcessesCode(device);
                        daCollectionParamConf2.setDescriptive("2");
                        List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2);
                        for (DaCollectionParamConf conf : daCollectionParamConfList2) {
                            String gatherAddress = conf.getGatherAddress();
                            Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // èŽ·å–原始值对象‌:ml-citation{ref="4" data="citationList"}
                            if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) {
                                log.warn("采集地址{}返回空值,跳过存储", gatherAddress);
                                continue; // ç»ˆæ­¢å½“前循环迭代‌:ml-citation{ref="1,2" data="citationList"}
                            }
                                DaParamCollection paramCollection = new DaParamCollection();
                                paramCollection.setSfcCode(SFCCode.toString());
                                paramCollection.setLocationCode(device);
                                paramCollection.setParamName(conf.getParameterSetName());
                                paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue());
                                paramCollection.setCollectionTime(new Date());
                                daParamCollectionService.insertDaParamCollection(paramCollection);
                        }
                        DaStationCollection daStationCollection = new DaStationCollection();
                        daStationCollection.setLocationCode(device);
                        daStationCollection.setSfcCode(SFCCode.toString());
                        daStationCollection.setInboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime").getValue());
                        daStationCollection.setOutboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime").getValue());
                        daStationCollectionService.insertDaStationCollection(daStationCollection);
                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("21").build());
                    }else if(Constants.PLC.contains(device) && Constants.OP310.contains(device)){
                        Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue();
                        //查询descriptive字段等于1的采集项保存到扫码保存到da_material_collection表里
                        DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf();
                        daCollectionParamConf1.setProcessesCode(device);
                        daCollectionParamConf1.setDescriptive("1");
                        List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1);
                        for (DaCollectionParamConf conf : daCollectionParamConfList1) {
                            String gatherAddress = conf.getGatherAddress();
                            Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // èŽ·å–原始值对象‌:ml-citation{ref="4" data="citationList"}
                            if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) {
                                log.warn("采集地址{}返回空值,跳过存储", gatherAddress);
                                continue; // ç»ˆæ­¢å½“前循环迭代‌:ml-citation{ref="1,2" data="citationList"}
                            }
                            DaMaterialCollection materialCollection = new DaMaterialCollection();
                            materialCollection.setSfcCode(SFCCode.toString());
                            materialCollection.setLocationCode(device);
                            materialCollection.setParamName(conf.getParameterSetName());
                            materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue());
                            materialCollection.setCollectTime(new Date());
                            daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
                        }
                        //查询descriptive字段等于2的采集项保存到扫码保存到da_param_collection表里
                        DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf();
                        daCollectionParamConf2.setProcessesCode(device);
                        daCollectionParamConf2.setDescriptive("2");
                        List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2);
                        for (DaCollectionParamConf conf : daCollectionParamConfList2) {
                            String gatherAddress = conf.getGatherAddress();
                            Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // èŽ·å–原始值对象‌:ml-citation{ref="4" data="citationList"}
                            if (valueObj == null || StringUtils.isEmpty(valueObj.toString())) {
                                log.warn("采集地址{}返回空值,跳过存储", gatherAddress);
                                continue; // ç»ˆæ­¢å½“前循环迭代‌:ml-citation{ref="1,2" data="citationList"}
                            }
                            DaParamCollection paramCollection = new DaParamCollection();
                            paramCollection.setSfcCode(SFCCode.toString());
                            paramCollection.setLocationCode(device);
                            paramCollection.setParamName(conf.getParameterSetName());
                            paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue());
                            paramCollection.setCollectionTime(new Date());
                            daParamCollectionService.insertDaParamCollection(paramCollection);
                        }
                        DaStationCollection daStationCollection = new DaStationCollection();
                        daStationCollection.setLocationCode(device);
                        daStationCollection.setSfcCode(SFCCode.toString());
                        daStationCollection.setInboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime").getValue());
                        daStationCollection.setOutboundTime((Date) miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime").getValue());
                        daStationCollectionService.insertDaStationCollection(daStationCollection);
                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value("21").build());
                    }
                }
            }
@@ -131,6 +236,7 @@
    public void plackWorkOrder(String thoroughfare, String device, String tab, String valueString) {
    try {
        if (Constants.WorkOrderRequest.equals(tab)) {
            if(Constants.OP010.equals(device)){
            if (Constants.ZERO.equals(valueString)) {
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value("0").build());
            } else if (Constants.ONE.equals(valueString)) {
@@ -216,6 +322,10 @@
                    }
                }
            }
            } else if (Constants.C005.equals(device)) {
            }
        }
    } catch (Exception e) {
        log.error(e.getMessage());
@@ -224,7 +334,7 @@
    //发下工艺配方方法
    private void formula(String thoroughfare, String device, BsBomChildInfo bsbomChildInfo) throws Exception {
        List<BsBomChildInfo> bomChildList = bomChildInfoService.selectBsBomChildInfoList(bsbomChildInfo);
        List<BsBomChildInfo> bomChildList = bsBomChildInfoService.selectBsBomChildInfoList(bsbomChildInfo);
        for (int i = 1; i <= bomChildList.size(); i++) {
            // ç”Ÿæˆ MaterialCode èŠ‚点
            miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".Material1Code"+ i).value(bomChildList.get(i-1).getMaterialCode()).build());
billion-main/src/main/resources/mapper/da/DaCollectionParamConfMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.billion.main.da.mapper.DaCollectionParamConfMapper">
    <resultMap type="DaCollectionParamConf" id="DaCollectionParamConfResult">
        <result property="id"    column="id"    />
        <result property="processesCode"    column="processes_code"    />
        <result property="parameterSetCode"    column="parameter_set_code"    />
        <result property="parameterSetName"    column="parameter_set_name"    />
        <result property="descriptive"    column="descriptive"    />
        <result property="productCode"    column="product_code"    />
        <result property="gatherAddress"    column="gather_address"    />
        <result property="gatherSequence"    column="gather_sequence"    />
        <result property="remarks"    column="remarks"    />
        <result property="createUser"    column="create_user"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateUser"    column="update_user"    />
        <result property="updateTime"    column="update_time"    />
        <result property="spareField1"    column="spare_field1"    />
        <result property="spareField2"    column="spare_field2"    />
        <result property="spareField3"    column="spare_field3"    />
        <result property="spareField4"    column="spare_field4"    />
    </resultMap>
    <sql id="selectDaCollectionParamConfVo">
        select id, processes_code, parameter_set_code, parameter_set_name, descriptive, product_code, gather_address, gather_sequence, remarks, create_user, create_time, update_user, update_time, spare_field1, spare_field2, spare_field3, spare_field4 from da_collection_param_conf
    </sql>
    <select id="selectDaCollectionParamConfList" parameterType="DaCollectionParamConf" resultMap="DaCollectionParamConfResult">
        <include refid="selectDaCollectionParamConfVo"/>
        <where>
            <if test="processesCode != null  and processesCode != ''"> and processes_code like concat('%', #{processesCode}, '%')</if>
            <if test="parameterSetCode != null  and parameterSetCode != ''"> and parameter_set_code like concat('%', #{parameterSetCode}, '%')</if>
            <if test="parameterSetName != null  and parameterSetName != ''"> and parameter_set_name like concat('%', #{parameterSetName}, '%')</if>
            <if test="productCode != null  and productCode != ''"> and product_code like concat('%', #{productCode}, '%')</if>
            <if test="gatherAddress != null  and gatherAddress != ''"> and gather_address like concat('%', #{gatherAddress}, '%')</if>
        </where>
    </select>
    <select id="selectDaCollectionParamConfById" parameterType="Long" resultMap="DaCollectionParamConfResult">
        <include refid="selectDaCollectionParamConfVo"/>
        where id = #{id}
    </select>
    <insert id="insertDaCollectionParamConf" parameterType="DaCollectionParamConf">
        insert into da_collection_param_conf
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="processesCode != null">processes_code,</if>
            <if test="parameterSetCode != null">parameter_set_code,</if>
            <if test="parameterSetName != null">parameter_set_name,</if>
            <if test="descriptive != null">descriptive,</if>
            <if test="productCode != null">product_code,</if>
            <if test="gatherAddress != null">gather_address,</if>
            <if test="gatherSequence != null">gather_sequence,</if>
            <if test="remarks != null">remarks,</if>
            <if test="createUser != null">create_user,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateUser != null">update_user,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="spareField1 != null">spare_field1,</if>
            <if test="spareField2 != null">spare_field2,</if>
            <if test="spareField3 != null">spare_field3,</if>
            <if test="spareField4 != null">spare_field4,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="processesCode != null">#{processesCode},</if>
            <if test="parameterSetCode != null">#{parameterSetCode},</if>
            <if test="parameterSetName != null">#{parameterSetName},</if>
            <if test="descriptive != null">#{descriptive},</if>
            <if test="productCode != null">#{productCode},</if>
            <if test="gatherAddress != null">#{gatherAddress},</if>
            <if test="gatherSequence != null">#{gatherSequence},</if>
            <if test="remarks != null">#{remarks},</if>
            <if test="createUser != null">#{createUser},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateUser != null">#{updateUser},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="spareField1 != null">#{spareField1},</if>
            <if test="spareField2 != null">#{spareField2},</if>
            <if test="spareField3 != null">#{spareField3},</if>
            <if test="spareField4 != null">#{spareField4},</if>
        </trim>
    </insert>
    <update id="updateDaCollectionParamConf" parameterType="DaCollectionParamConf">
        update da_collection_param_conf
        <trim prefix="SET" suffixOverrides=",">
            <if test="processesCode != null">processes_code = #{processesCode},</if>
            <if test="parameterSetCode != null">parameter_set_code = #{parameterSetCode},</if>
            <if test="parameterSetName != null">parameter_set_name = #{parameterSetName},</if>
            <if test="descriptive != null">descriptive = #{descriptive},</if>
            <if test="productCode != null">product_code = #{productCode},</if>
            <if test="gatherAddress != null">gather_address = #{gatherAddress},</if>
            <if test="gatherSequence != null">gather_sequence = #{gatherSequence},</if>
            <if test="remarks != null">remarks = #{remarks},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="spareField1 != null">spare_field1 = #{spareField1},</if>
            <if test="spareField2 != null">spare_field2 = #{spareField2},</if>
            <if test="spareField3 != null">spare_field3 = #{spareField3},</if>
            <if test="spareField4 != null">spare_field4 = #{spareField4},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteDaCollectionParamConfById" parameterType="Long">
        delete from da_collection_param_conf where id = #{id}
    </delete>
    <delete id="deleteDaCollectionParamConfByIds" parameterType="String">
        delete from da_collection_param_conf where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>