-
admin
20 小时以前 41afb20b6b3776f1242ce2aba29d8e51fa8110d6
-
已添加8个文件
已删除2个文件
已修改10个文件
2137 ■■■■ 文件已修改
billion-main/src/main/java/com/billion/RuoYiApplication.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/api/service/impl/CollectQualityDataServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/controller/DaCollectionParamConfController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/controller/DaTightenCollectionController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/domain/DaCollectionParamConf.java 339 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/domain/DaTightenCollection.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/mapper/DaCollectionParamConfMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/mapper/DaTightenCollectionMapper.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/IDaCollectionParamConfService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/IDaTightenCollectionService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/impl/DaCollectionParamConfServiceImpl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/da/service/impl/DaTightenCollectionServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plc/CustomRunner.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plc/constant/Constants.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscription.java 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/da/DaCollectionParamConfMapper.xml 172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/da/DaTightenCollectionMapper.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/api/main/da/collectionParamConf.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/da/collectionParamConf/index.vue 449 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/da/tightenCollection/index.vue 310 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/RuoYiApplication.java
ÎļþÒÑɾ³ý
billion-main/src/main/java/com/billion/main/api/service/impl/CollectQualityDataServiceImpl.java
ÎļþÒÑɾ³ý
billion-main/src/main/java/com/billion/main/da/controller/DaCollectionParamConfController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.da.controller;
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.page.TableDataInfo;
import com.billion.common.enums.BusinessType;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.main.da.domain.DaCollectionParamConf;
import com.billion.main.da.service.IDaCollectionParamConfService;
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
 *
 * @author ruimin
 * @date 2023-12-25
 */
@RestController
@RequestMapping("/da/collectionParamConf")
public class DaCollectionParamConfController extends BaseController
{
    @Autowired
    private IDaCollectionParamConfService daCollectionParamConfService;
    /**
     * æŸ¥è¯¢é‡‡é›†å‚数配置列表
     */
    @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));
    }
}
billion-main/src/main/java/com/billion/main/da/controller/DaTightenCollectionController.java
@@ -1,34 +1,29 @@
package com.billion.main.da.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.core.page.TableDataInfo;
import com.billion.common.enums.BusinessType;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.main.da.domain.DaTightenCollection;
import com.billion.main.da.service.IDaTightenCollectionService;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.common.core.page.TableDataInfo;
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.*;
/**
 * æ‹§ç´§é‡‡é›†Controller
 * 
 * @author Billion-Yi
 * @date 2024-11-22
 * @author Yi
 * @date 2025-05-06
 */
@RestController
@RequestMapping("/da/tightenCollection")
    @RequestMapping("/da/tightenCollection")
public class DaTightenCollectionController extends BaseController
{
    @Autowired
billion-main/src/main/java/com/billion/main/da/domain/DaCollectionParamConf.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,339 @@
package com.billion.main.da.domain;
import com.billion.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
 * é‡‡é›†å‚数配置对象 da_collection_param_conf
 *
 * @author ruimin
 * @date 2023-12-25
 */
public class DaCollectionParamConf
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** å·¥åºç¼–号 */
    @Excel(name = "工序编号")
    private String processesCode;
    /** å‚数集编码 */
    @Excel(name = "参数集编码")
    private String parameterSetCode;
    /** å‚数集名称 */
    @Excel(name = "参数集名称")
    private String parameterSetName;
    /** é‡‡é›†å‚æ•°ID */
    @Excel(name = "采集参数ID")
    private String collectParameterId;
    /** é‡‡é›†å‚数名称 */
    @Excel(name = "采集参数名称")
    private String collectParameterName;
    /** æ˜¯å¦ä½œä¸ºå¯¹æ¯”参数 */
    @Excel(name = "是否作为对比参数")
    private String contrastParameterFlag;
    /** é‡‡é›†å‚数类型 */
    @Excel(name = "采集参数类型")
    private String collectParameterType;
    /** é‡‡é›†å‚数单位 */
    @Excel(name = "采集参数单位")
    private String collectParameterUnit;
    /** æ•°æ®æè¿° */
    @Excel(name = "数据描述")
    private String Descriptives;
    /** ä¸Šé™å€¼ */
    @Excel(name = "上限值")
    private String paramUpper;
    /** ä¸‹é™å€¼ */
    @Excel(name = "下限值")
    private String paramLower;
    /** ä¸­å¿ƒå€¼ */
    @Excel(name = "中心值")
    private String paramCentral;
    /** äº§å“ç¼–码 */
    @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;
    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 setCollectParameterId(String collectParameterId)
    {
        this.collectParameterId = collectParameterId;
    }
    public String getCollectParameterId()
    {
        return collectParameterId;
    }
    public void setCollectParameterName(String collectParameterName)
    {
        this.collectParameterName = collectParameterName;
    }
    public String getCollectParameterName()
    {
        return collectParameterName;
    }
    public void setContrastParameterFlag(String contrastParameterFlag)
    {
        this.contrastParameterFlag = contrastParameterFlag;
    }
    public String getContrastParameterFlag()
    {
        return contrastParameterFlag;
    }
    public void setCollectParameterType(String collectParameterType)
    {
        this.collectParameterType = collectParameterType;
    }
    public String getCollectParameterType()
    {
        return collectParameterType;
    }
    public void setCollectParameterUnit(String collectParameterUnit)
    {
        this.collectParameterUnit = collectParameterUnit;
    }
    public String getCollectParameterUnit()
    {
        return collectParameterUnit;
    }
    public void setDescriptives(String Descriptives)
    {
        this.Descriptives = Descriptives;
    }
    public String getDescriptives()
    {
        return Descriptives;
    }
    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 setParamCentral(String paramCentral)
    {
        this.paramCentral = paramCentral;
    }
    public String getParamCentral()
    {
        return paramCentral;
    }
    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("collectParameterId", getCollectParameterId())
            .append("collectParameterName", getCollectParameterName())
            .append("contrastParameterFlag", getContrastParameterFlag())
            .append("collectParameterType", getCollectParameterType())
            .append("collectParameterUnit", getCollectParameterUnit())
            .append("Descriptives", getDescriptives())
            .append("paramUpper", getParamUpper())
            .append("paramLower", getParamLower())
            .append("paramCentral", getParamCentral())
            .append("productCode", getProductCode())
            .append("gatherAddress", getGatherAddress())
            .append("gatherSequence", getGatherSequence())
            .append("remarks", getRemarks())
            .append("createUser", getCreateUser())
            .append("spareField1", getSpareField1())
            .append("spareField2", getSpareField2())
            .append("spareField3", getSpareField3())
            .append("spareField4", getSpareField4())
            .toString();
    }
}
billion-main/src/main/java/com/billion/main/da/domain/DaTightenCollection.java
@@ -1,23 +1,19 @@
package com.billion.main.da.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.billion.common.annotation.Excel;
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 java.util.Date;
/**
 * æ‹§ç´§é‡‡é›†å¯¹è±¡ da_tighten_collection
 * 
 * @author Billion-Yi
 * @date 2024-11-22
 * @author Yi
 * @date 2025-05-06
 */
@Data
public class DaTightenCollection extends BaseEntity
public class DaTightenCollection
{
    private static final long serialVersionUID = 1L;
@@ -61,13 +57,109 @@
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    @TableField(exist = false)
    private String[] timeQuery;
    public void setId(Long id)
    {
        this.id = id;
    }
    @TableField(exist = false)
    private String startTime;
    public Long getId()
    {
        return id;
    }
    public void setSfcCode(String sfcCode)
    {
        this.sfcCode = sfcCode;
    }
    @TableField(exist = false)
    private String stopTime;
    public String getSfcCode()
    {
        return sfcCode;
    }
    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }
    public String getLocationCode()
    {
        return locationCode;
    }
    public void setParamSetCode(String paramSetCode)
    {
        this.paramSetCode = paramSetCode;
    }
    public String getParamSetCode()
    {
        return paramSetCode;
    }
    public void setParamSetName(String paramSetName)
    {
        this.paramSetName = paramSetName;
    }
    public String getParamSetName()
    {
        return paramSetName;
    }
    public void setTorque(String torque)
    {
        this.torque = torque;
    }
    public String getTorque()
    {
        return torque;
    }
    public void setTorqueStatus(String torqueStatus)
    {
        this.torqueStatus = torqueStatus;
    }
    public String getTorqueStatus()
    {
        return torqueStatus;
    }
    public void setAngle(String angle)
    {
        this.angle = angle;
    }
    public String getAngle()
    {
        return angle;
    }
    public void setAngleStatus(String angleStatus)
    {
        this.angleStatus = angleStatus;
    }
    public String getAngleStatus()
    {
        return angleStatus;
    }
    public Date getCollectTime() {
        return collectTime;
    }
    public void setCollectTime(Date collectTime) {
        this.collectTime = collectTime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sfcCode", getSfcCode())
            .append("locationCode", getLocationCode())
            .append("paramSetCode", getParamSetCode())
            .append("paramSetName", getParamSetName())
            .append("torque", getTorque())
            .append("torqueStatus", getTorqueStatus())
            .append("angle", getAngle())
            .append("angleStatus", getAngleStatus())
            .append("collectTime", getCollectTime())
            .toString();
    }
}
billion-main/src/main/java/com/billion/main/da/mapper/DaCollectionParamConfMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
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);
    public List<DaCollectionParamConf> getSelectOption(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/DaTightenCollectionMapper.java
@@ -1,17 +1,17 @@
package com.billion.main.da.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.da.domain.DaTightenCollection;
import java.util.List;
/**
 * æ‹§ç´§é‡‡é›†Mapper接口
 * 
 * @author Billion-Yi
 * @date 2024-11-22
 * @author Yi
 * @date 2025-05-06
 */
public interface DaTightenCollectionMapper extends BaseMapper<DaTightenCollection>
public interface DaTightenCollectionMapper
{
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†
billion-main/src/main/java/com/billion/main/da/service/IDaCollectionParamConfService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.billion.main.da.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.da.domain.DaCollectionParamConf;
import com.billion.main.da.domain.DaParamCollection;
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);
    public List<DaCollectionParamConf> getSelectOption(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/IDaTightenCollectionService.java
@@ -1,17 +1,17 @@
package com.billion.main.da.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.da.domain.DaTightenCollection;
import java.util.List;
/**
 * æ‹§ç´§é‡‡é›†Service接口
 * 
 * @author Billion-Yi
 * @date 2024-11-22
 * @author Yi
 * @date 2025-05-06
 */
public interface IDaTightenCollectionService extends IService<DaTightenCollection>
public interface IDaTightenCollectionService
{
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†
@@ -60,4 +60,7 @@
     * @return ç»“æžœ
     */
    public int deleteDaTightenCollectionById(Long id);
    void saveBeachDaTightenCollection(List<DaTightenCollection> list);
}
billion-main/src/main/java/com/billion/main/da/service/impl/DaCollectionParamConfServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
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.domain.DaParamCollection;
import com.billion.main.da.mapper.DaCollectionParamConfMapper;
import com.billion.main.da.mapper.DaParamCollectionMapper;
import com.billion.main.da.service.IDaCollectionParamConfService;
import com.billion.main.da.service.IDaParamCollectionService;
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);
    }
    @Override
    public List<DaCollectionParamConf> getSelectOption(DaCollectionParamConf daCollectionParamConf) {
        return daCollectionParamConfMapper.getSelectOption(daCollectionParamConf);
    }
    /**
     * æ–°å¢žé‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    @Override
    public int insertDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf)
    {
        return daCollectionParamConfMapper.insertDaCollectionParamConf(daCollectionParamConf);
    }
    /**
     * ä¿®æ”¹é‡‡é›†å‚数配置
     *
     * @param daCollectionParamConf é‡‡é›†å‚数配置
     * @return ç»“æžœ
     */
    @Override
    public int updateDaCollectionParamConf(DaCollectionParamConf daCollectionParamConf)
    {
        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/DaTightenCollectionServiceImpl.java
@@ -1,25 +1,32 @@
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.main.da.domain.DaTightenCollection;
import com.billion.main.da.mapper.DaTightenCollectionMapper;
import com.billion.main.da.service.IDaTightenCollectionService;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.billion.main.da.mapper.DaTightenCollectionMapper;
import com.billion.main.da.domain.DaTightenCollection;
import com.billion.main.da.service.IDaTightenCollectionService;
import javax.annotation.Resource;
import java.util.List;
/**
 * æ‹§ç´§é‡‡é›†Service业务层处理
 * 
 * @author Billion-Yi
 * @date 2024-11-22
 * @author Yi
 * @date 2025-05-06
 */
@Service
public class DaTightenCollectionServiceImpl extends ServiceImpl<DaTightenCollectionMapper, DaTightenCollection> implements IDaTightenCollectionService
public class DaTightenCollectionServiceImpl implements IDaTightenCollectionService
{
    private static final Logger logger = LoggerFactory.getLogger(DaTightenCollectionServiceImpl.class);
    @Resource
    private SqlSessionFactory sqlSessionFactory;
    @Autowired
    private DaTightenCollectionMapper daTightenCollectionMapper;
@@ -44,10 +51,6 @@
    @Override
    public List<DaTightenCollection> selectDaTightenCollectionList(DaTightenCollection daTightenCollection)
    {
        if(ObjectUtil.isNotNull(daTightenCollection.getTimeQuery())){
            daTightenCollection.setStartTime(daTightenCollection.getTimeQuery()[0]);
            daTightenCollection.setStopTime(daTightenCollection.getTimeQuery()[1]);
        }
        return daTightenCollectionMapper.selectDaTightenCollectionList(daTightenCollection);
    }
@@ -60,7 +63,6 @@
    @Override
    public int insertDaTightenCollection(DaTightenCollection daTightenCollection)
    {
        daTightenCollection.setCollectTime(new Date());
        return daTightenCollectionMapper.insertDaTightenCollection(daTightenCollection);
    }
@@ -99,4 +101,20 @@
    {
        return daTightenCollectionMapper.deleteDaTightenCollectionById(id);
    }
    @Override
    public void saveBeachDaTightenCollection(List<DaTightenCollection> list) {
        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
        try {
            DaTightenCollectionMapper userMapper = sqlSession.getMapper(DaTightenCollectionMapper.class);
            list.stream().forEach(DaTightenCollection -> userMapper.insertDaTightenCollection(DaTightenCollection));
            // æäº¤æ•°æ®
            sqlSession.commit();
        } catch (Exception e) {
            logger.error("批量保存拧紧采集数据失败", e);
            sqlSession.rollback();
        } finally {
            sqlSession.close();
        }
    }
}
billion-main/src/main/java/com/billion/main/plc/CustomRunner.java
@@ -3,8 +3,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.billion.main.da.service.IDaCollectionParamConfService;
import com.billion.main.da.service.IDaParamCollectionService;
import com.billion.main.da.service.IDaStationCollectionService;
import com.billion.main.da.service.IDaTightenCollectionService;
import com.billion.main.plc.constant.Constants;
import com.billion.main.plc.sub.OPCUaSubscription;
import com.billion.main.sc.domain.ScOpcConf;
@@ -34,6 +36,10 @@
    private IDaParamCollectionService paramCollectionService;
    @Autowired
    private IDaStationCollectionService stationCollectionService;
    @Autowired
    private IDaCollectionParamConfService daCollectionParamConfService;
    @Autowired
    private IDaTightenCollectionService daTightenCollectionService;
    @Resource
    private SysNoticeServiceImpl sysNoticeService;
@@ -46,7 +52,9 @@
                collectionParamConfService,
                paramCollectionService,
                stationCollectionService,
                sysNoticeService);
                sysNoticeService,
                daCollectionParamConfService,
                daTightenCollectionService);
        List<String> lists = getSubList();
        System.out.println("订阅内容:"+lists);
billion-main/src/main/java/com/billion/main/plc/constant/Constants.java
@@ -1,9 +1,6 @@
package com.billion.main.plc.constant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
public class Constants {
@@ -96,11 +93,8 @@
    public static final Integer INT_THREE= 3;
    public static final Integer INT_FOUR= 4;
    public static final Integer INT_ZERO= 0;
//    public static final String FACTORY_EMS_UAT_GET_RUL = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/";
//    public static final String FACTORY_EMS_UAT_POST_RUL = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/interface/";
    public static final String FACTORY_EMS_UAT_GET_RUL = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/";
    public static final String FACTORY_EMS_UAT_POST_RUL = "https://imes-group.geelycv.com/api/mom-open/restful/interface/";
    public static final String FACTORY_EMS_SITE_CODE = "3983";
    public static final List LEAKAGEDETECTION_LIST = Arrays.asList("OP660","OP670"); //外漏检测
    public static final List OIL_FILLING_LIST = Arrays.asList("OP430"); //机油加注数据
    public static final List TIGHTENCOLLECTION_LIST = Arrays.asList("OP160", "OP220", "OP240", "OP390"); //拧紧数据
}
billion-main/src/main/java/com/billion/main/plc/sub/OPCUaSubscription.java
@@ -3,18 +3,16 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.sql.visitor.functions.Substring;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.billion.main.api.domain.StationST180;
import com.billion.main.da.domain.DaCollectionParamConf;
import com.billion.main.da.domain.DaParamCollection;
import com.billion.main.da.domain.DaStationCollection;
import com.billion.main.da.domain.DaTightenCollection;
import com.billion.main.da.service.IDaCollectionParamConfService;
import com.billion.main.da.service.IDaParamCollectionService;
import com.billion.main.da.service.IDaStationCollectionService;
import com.billion.main.da.service.IDaTightenCollectionService;
import com.billion.main.plc.constant.Constants;
import com.billion.main.sc.domain.ScCollectionParamConf;
import com.billion.main.sc.service.IScCollectionParamConfService;
@@ -24,8 +22,9 @@
import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
import com.kangaroohy.milo.service.MiloService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -38,22 +37,26 @@
@Slf4j
@Component
public class OPCUaSubscription implements SubscriptionCallback {
    private static final Logger logger = LoggerFactory.getLogger("sys-user");
    public static MiloService miloService;
    public static IScCollectionParamConfService collectionParamConfService;
    public static IDaParamCollectionService paramCollectionService;
    public static IDaStationCollectionService stationCollectionService;
    public static IDaCollectionParamConfService daCollectionParamConfService;
    public static IDaTightenCollectionService daTightenCollectionService;
    public static SysNoticeServiceImpl sysNoticeService;
    public OPCUaSubscription(MiloService miloService, IScCollectionParamConfService collectionParamConfService
            ,IDaParamCollectionService paramCollectionService,IDaStationCollectionService stationCollectionService,SysNoticeServiceImpl sysNoticeService) {
            ,IDaParamCollectionService paramCollectionService,IDaStationCollectionService stationCollectionService,SysNoticeServiceImpl sysNoticeService
            ,IDaCollectionParamConfService daCollectionParamConfService,IDaTightenCollectionService daTightenCollectionService) {
        OPCUaSubscription.miloService = miloService;
        OPCUaSubscription.collectionParamConfService = collectionParamConfService;
        OPCUaSubscription.paramCollectionService = paramCollectionService;
        OPCUaSubscription.stationCollectionService = stationCollectionService;
        OPCUaSubscription.sysNoticeService = sysNoticeService;
        OPCUaSubscription.daCollectionParamConfService = daCollectionParamConfService;
        OPCUaSubscription.daTightenCollectionService = daTightenCollectionService;
    }
    @Override
@@ -100,8 +103,8 @@
                    if (ObjUtil.isNotNull(SNCodeObject)){
                        String SnCode = SNCodeObject.toString();
                        if (StrUtil.isNotBlank(SnCode)){
                            savePassingStation(thoroughfare,device,"snCode");
                            saveParamCollection(device, "snCode", "stationStatus");
                            savePassingStation(thoroughfare,device,SnCode);
                            saveParamCollection(device, SnCode, "stationStatus");
                        }
                    }
                    Integer result = Constants.INTEGER_TWO_ONE;
@@ -185,16 +188,17 @@
    private static void saveParamCollection(String device, String snCode, String stationStatus) {
        try {
            // æŸ¥è¯¢å‚数配置表
            List<ScCollectionParamConf> list = collectionParamConfService.list(new LambdaQueryWrapper<ScCollectionParamConf>()
                    .eq(ScCollectionParamConf::getLocationCode, device)
                    .eq(ScCollectionParamConf::getSubscribe, Constants.ONE)
                    .orderByDesc(ScCollectionParamConf::getOrderNum)
            List<DaCollectionParamConf> list = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
                    .eq(DaCollectionParamConf::getProcessesCode, device)
                    .eq(DaCollectionParamConf::getRemarks, Constants.ONE)
                    .orderByAsc(DaCollectionParamConf::getGatherSequence)
            );
            if (CollUtil.isNotEmpty(list)) {
                // èŽ·å–å‚æ•°å€¼
                List<String> collect = list.stream()
                        .map(ScCollectionParamConf::getNode)
                        .map(DaCollectionParamConf::getGatherAddress)
                        .map(String::trim)
                        .collect(Collectors.toList());
                List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(collect);
@@ -220,19 +224,90 @@
     * ä¿å­˜é‡‡é›†æ•°æ®
     */
    private static void saveCollectionData(String device, String snCode,
            List<ScCollectionParamConf> list, List<ReadWriteEntity> readWriteEntityList) {
                                           List<DaCollectionParamConf> list, List<ReadWriteEntity> readWriteEntityList) {
        ArrayList<DaParamCollection> collectionList = new ArrayList<>();
        for (int i = 0; i < readWriteEntityList.size(); i++) {
            DaParamCollection daParamCollection = new DaParamCollection();
            daParamCollection.setSfcCode(snCode);
            daParamCollection.setLocationCode(device);
            daParamCollection.setParamCode(list.get(i).getParamCode());
            daParamCollection.setParamName(list.get(i).getParamName());
            daParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString());
            daParamCollection.setCollectTime(new Date());
            collectionList.add(daParamCollection);
        if(Constants.TIGHTENCOLLECTION_LIST.contains(device)){
            //存拧紧数据
            try {
                LinkedHashMap<String, Map<String, Object>> groupMap = new LinkedHashMap<>();
                for (int i = 0; i < list.size(); i += 3) {
                    try {
                        String groupKey = String.valueOf(i/3);
                        String paramSetName = list.get(i).getParameterSetName();
                        int secondSlash = paramSetName.indexOf("/", paramSetName.indexOf("/") + 1);
                        paramSetName = secondSlash > 0 ? paramSetName.substring(0, secondSlash) : paramSetName;
                        Map<String, Object> paramMap = new HashMap<>();
                        // èŽ·å–æ‰­çŸ©å€¼
                        Object torqueObj = readWriteEntityList.get(i).getValue();
                        String torqueValue = torqueObj == null ? null : torqueObj.toString();
                        if (torqueValue != null && !"0.0".equals(torqueValue)) {
                            paramMap.put("torque", Double.parseDouble(torqueValue));
                        }
                        // èŽ·å–è§’åº¦å€¼
                        Object angleObj = readWriteEntityList.get(i + 1).getValue();
                        String angleValue = angleObj == null ? null : angleObj.toString();
                        if (angleValue != null && !"0.0".equals(angleValue)) {
                            paramMap.put("angle", Double.parseDouble(angleValue));
                        }
                        // èŽ·å–çŠ¶æ€å€¼
                        Object statusObj = readWriteEntityList.get(i + 2).getValue();
                        String statusValue = statusObj == null ? null : statusObj.toString();
                        if (statusValue != null && !"0.0".equals(statusValue)) {
                            paramMap.put("angleStatus", statusValue);
                            paramMap.put("paramSetName", paramSetName);
                            groupMap.put(groupKey, paramMap);
                        }
                    } catch (Exception e) {
                        logger.error("{}发动机拧紧数据第{}组处理失败: {}", snCode, i/3, e.getMessage());
                    }
                }
                List<DaTightenCollection> tightenList = new ArrayList<>();
                for (Map<String, Object> paramMap : groupMap.values()) {
                    try {
                        DaTightenCollection tighten = new DaTightenCollection();
                        tighten.setSfcCode(snCode);
                        tighten.setLocationCode(device);
                        tighten.setParamSetName((String) paramMap.get("paramSetName"));
                        tighten.setTorque(paramMap.get("torque") != null ? paramMap.get("torque").toString() : null);
                        tighten.setAngle(paramMap.get("angle") != null ? paramMap.get("angle").toString() : null);
                        tighten.setAngleStatus((String) paramMap.get("angleStatus"));
                        tighten.setCollectTime(new Date());
                        tightenList.add(tighten);
                    } catch (Exception e) {
                        logger.error("{}发动机拧紧数据对象转换失败: {}", snCode, e.getMessage());
                    }
                }
                if(tightenList.size()>0){
                    try {
                        daTightenCollectionService.saveBeachDaTightenCollection(tightenList);
                        logger.info("{}发动机存拧紧数据保存完成",snCode);
                    } catch (Exception e) {
                        logger.error("{}发动机拧紧数据批量保存失败: {}", snCode, e.getMessage());
                    }
                }
            } catch (Exception e) {
                logger.error("{}发动机拧紧数据处理异常: {}", snCode, e.getMessage());
            }
        }else {
            for (int i = 0; i < readWriteEntityList.size(); i++) {
                DaParamCollection daParamCollection = new DaParamCollection();
                daParamCollection.setSfcCode(snCode);
                daParamCollection.setLocationCode(device);
                daParamCollection.setParamCode(list.get(i).getParameterSetCode());
                daParamCollection.setParamName(list.get(i).getParameterSetName());
                daParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString());
                daParamCollection.setCollectTime(new Date());
                collectionList.add(daParamCollection);
            }
            paramCollectionService.insertBatch(collectionList);
        }
        paramCollectionService.insertBatch(collectionList);
    }
    /**
billion-main/src/main/resources/mapper/da/DaCollectionParamConfMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,172 @@
<?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="collectParameterId"    column="collect_parameter_id"    />
        <result property="collectParameterName"    column="collect_parameter_name"    />
        <result property="contrastParameterFlag"    column="contrast_parameter_flag"    />
        <result property="collectParameterType"    column="collect_parameter_type"    />
        <result property="collectParameterUnit"    column="collect_parameter_unit"    />
        <result property="Descriptives"    column="Descriptives"    />
        <result property="paramUpper"    column="param_upper"    />
        <result property="paramLower"    column="param_lower"    />
        <result property="paramCentral"    column="param_Central"    />
        <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_field_1"    />
        <result property="spareField2"    column="spare_field_2"    />
        <result property="spareField3"    column="spare_field_3"    />
        <result property="spareField4"    column="spare_field_4"    />
    </resultMap>
    <sql id="selectDaCollectionParamConfVo">
        select id, processes_code, parameter_set_code, parameter_set_name, collect_parameter_id, collect_parameter_name, contrast_parameter_flag, collect_parameter_type, collect_parameter_unit, Descriptives, param_upper, param_lower, param_Central, product_code, gather_address, gather_sequence, remarks, create_user, create_time, update_user, update_time, spare_field_1, spare_field_2, spare_field_3, spare_field_4 from da_collection_param_conf
    </sql>
    <sql id="selectOptionVo">
        select id, processes_code, parameter_set_code, parameter_set_name, collect_parameter_id, collect_parameter_name, remarks 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="collectParameterId != null  and collectParameterId != ''"> and collect_parameter_id like concat('%', #{collectParameterId}, '%')</if>
            <if test="collectParameterName != null  and collectParameterName != ''"> and collect_parameter_name like concat('%', #{collectParameterName}, '%')</if>
            <if test="contrastParameterFlag != null  and contrastParameterFlag != ''"> and contrast_parameter_flag like concat('%', #{contrastParameterFlag}, '%')</if>
            <if test="collectParameterType != null  and collectParameterType != ''"> and collect_parameter_type like concat('%', #{collectParameterType}, '%')</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>
            <if test="remarks != null  and remarks != ''"> and remarks = #{remarks}</if>
        </where>
    </select>
    <select id="selectDaCollectionParamConfById" parameterType="Long" resultMap="DaCollectionParamConfResult">
        <include refid="selectDaCollectionParamConfVo"/>
        where id = #{id}
    </select>
    <select id="getSelectOption"
            resultMap="DaCollectionParamConfResult">
        <include refid="selectOptionVo"/>
        <where>
            remarks = '1' and collect_parameter_name in ('角度','扭矩')
            <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="collectParameterName != null  and collectParameterName != ''"> and collect_parameter_name like concat('%', #{collectParameterName}, '%')</if>
        </where>
    </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="collectParameterId != null">collect_parameter_id,</if>
            <if test="collectParameterName != null">collect_parameter_name,</if>
            <if test="contrastParameterFlag != null">contrast_parameter_flag,</if>
            <if test="collectParameterType != null">collect_parameter_type,</if>
            <if test="collectParameterUnit != null">collect_parameter_unit,</if>
            <if test="Descriptives != null">Descriptives,</if>
            <if test="paramUpper != null">param_upper,</if>
            <if test="paramLower != null">param_lower,</if>
            <if test="paramCentral != null">param_Central,</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_field_1,</if>
            <if test="spareField2 != null">spare_field_2,</if>
            <if test="spareField3 != null">spare_field_3,</if>
            <if test="spareField4 != null">spare_field_4,</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="collectParameterId != null">#{collectParameterId},</if>
            <if test="collectParameterName != null">#{collectParameterName},</if>
            <if test="contrastParameterFlag != null">#{contrastParameterFlag},</if>
            <if test="collectParameterType != null">#{collectParameterType},</if>
            <if test="collectParameterUnit != null">#{collectParameterUnit},</if>
            <if test="Descriptives != null">#{Descriptives},</if>
            <if test="paramUpper != null">#{paramUpper},</if>
            <if test="paramLower != null">#{paramLower},</if>
            <if test="paramCentral != null">#{paramCentral},</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="collectParameterId != null">collect_parameter_id = #{collectParameterId},</if>
            <if test="collectParameterName != null">collect_parameter_name = #{collectParameterName},</if>
            <if test="contrastParameterFlag != null">contrast_parameter_flag = #{contrastParameterFlag},</if>
            <if test="collectParameterType != null">collect_parameter_type = #{collectParameterType},</if>
            <if test="collectParameterUnit != null">collect_parameter_unit = #{collectParameterUnit},</if>
            <if test="Descriptives != null">Descriptives = #{Descriptives},</if>
            <if test="paramUpper != null">param_upper = #{paramUpper},</if>
            <if test="paramLower != null">param_lower = #{paramLower},</if>
            <if test="paramCentral != null">param_Central = #{paramCentral},</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_field_1 = #{spareField1},</if>
            <if test="spareField2 != null">spare_field_2 = #{spareField2},</if>
            <if test="spareField3 != null">spare_field_3 = #{spareField3},</if>
            <if test="spareField4 != null">spare_field_4 = #{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>
billion-main/src/main/resources/mapper/da/DaTightenCollectionMapper.xml
@@ -8,29 +8,24 @@
        <result property="id"    column="id"    />
        <result property="sfcCode"    column="sfc_code"    />
        <result property="locationCode"    column="location_code"    />
        <result property="paramSetCode"    column="param_set_code"    />
        <result property="paramSetName"    column="param_set_name"    />
        <result property="torque"    column="torque"    />
        <result property="torqueStatus"    column="torque_status"    />
        <result property="angle"    column="angle"    />
        <result property="angleStatus"    column="angle_status"    />
        <result property="collectTime"    column="collect_time"    />
    </resultMap>
    <sql id="selectDaTightenCollectionVo">
        select id, sfc_code, location_code, param_set_code, param_set_name, torque, torque_status, angle, angle_status, collect_time from da_tighten_collection
        select id, sfc_code, location_code, param_set_name, torque, angle, angle_status, collect_time from da_tighten_collection
    </sql>
    <select id="selectDaTightenCollectionList" parameterType="DaTightenCollection" resultMap="DaTightenCollectionResult">
        <include refid="selectDaTightenCollectionVo"/>
        <where>  
            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
            <if test="locationCode != null  and locationCode != ''"> and location_code like concat('%', #{locationCode}, '%')</if>
            <if test="paramSetCode != null  and paramSetCode != ''"> and param_set_code like concat('%', #{paramSetCode}, '%')</if>
            <if test="locationCode != null  and locationCode != ''"> and location_code = #{locationCode}</if>
            <if test="paramSetName != null  and paramSetName != ''"> and param_set_name like concat('%', #{paramSetName}, '%')</if>
            <if test="torqueStatus != null  and torqueStatus != ''"> and torque_status = #{torqueStatus}</if>
            <if test="angleStatus != null  and angleStatus != ''"> and angle_status = #{angleStatus}</if>
            <if test="startTime != null"> and collect_time BETWEEN #{startTime} and #{stopTime}</if>
        </where>
    </select>
    
@@ -38,27 +33,25 @@
        <include refid="selectDaTightenCollectionVo"/>
        where id = #{id}
    </select>
    <insert id="insertDaTightenCollection" parameterType="DaTightenCollection" useGeneratedKeys="true" keyProperty="id">
    <insert id="insertDaTightenCollection" parameterType="DaTightenCollection">
        insert into da_tighten_collection
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="sfcCode != null">sfc_code,</if>
            <if test="locationCode != null">location_code,</if>
            <if test="paramSetCode != null">param_set_code,</if>
            <if test="paramSetName != null">param_set_name,</if>
            <if test="torque != null">torque,</if>
            <if test="torqueStatus != null">torque_status,</if>
            <if test="angle != null">angle,</if>
            <if test="angleStatus != null">angle_status,</if>
            <if test="collectTime != null">collect_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="sfcCode != null">#{sfcCode},</if>
            <if test="locationCode != null">#{locationCode},</if>
            <if test="paramSetCode != null">#{paramSetCode},</if>
            <if test="paramSetName != null">#{paramSetName},</if>
            <if test="torque != null">#{torque},</if>
            <if test="torqueStatus != null">#{torqueStatus},</if>
            <if test="angle != null">#{angle},</if>
            <if test="angleStatus != null">#{angleStatus},</if>
            <if test="collectTime != null">#{collectTime},</if>
@@ -70,10 +63,8 @@
        <trim prefix="SET" suffixOverrides=",">
            <if test="sfcCode != null">sfc_code = #{sfcCode},</if>
            <if test="locationCode != null">location_code = #{locationCode},</if>
            <if test="paramSetCode != null">param_set_code = #{paramSetCode},</if>
            <if test="paramSetName != null">param_set_name = #{paramSetName},</if>
            <if test="torque != null">torque = #{torque},</if>
            <if test="torqueStatus != null">torque_status = #{torqueStatus},</if>
            <if test="angle != null">angle = #{angle},</if>
            <if test="angleStatus != null">angle_status = #{angleStatus},</if>
            <if test="collectTime != null">collect_time = #{collectTime},</if>
billion-ui/src/api/main/da/collectionParamConf.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢é‡‡é›†å‚数配置列表
export function listCollectionParamConf(query) {
  return request({
    url: '/da/collectionParamConf/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢é‡‡é›†å‚数配置详细
export function getCollectionParamConf(id) {
  return request({
    url: '/da/collectionParamConf/' + id,
    method: 'get'
  })
}
// æ–°å¢žé‡‡é›†å‚数配置
export function addCollectionParamConf(data) {
  return request({
    url: '/da/collectionParamConf',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹é‡‡é›†å‚数配置
export function updateCollectionParamConf(data) {
  return request({
    url: '/da/collectionParamConf',
    method: 'put',
    data: data
  })
}
// åˆ é™¤é‡‡é›†å‚数配置
export function delCollectionParamConf(id) {
  return request({
    url: '/da/collectionParamConf/' + id,
    method: 'delete'
  })
}
billion-ui/src/views/main/da/collectionParamConf/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,449 @@
<template>
  <div class="app-container">
    <el-card class="box-card">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
          <el-form-item label="工序编号" prop="processesCode">
            <el-input
              v-model="queryParams.processesCode"
              placeholder="请输入工序编号"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="产品编码" prop="productCode">
            <el-input
              v-model="queryParams.productCode"
              placeholder="请输入产品编码"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item style="float: right">
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
          </el-form-item>
        </el-form>
    </el-card>
    <el-card style="margin-top: 10px" class="box-card">
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
            <el-button
              type="primary"
              plain
              icon="el-icon-plus"
              size="mini"
              @click="handleAdd"
              v-hasPermi="['da:collectionParamConf:add']"
            >新增</el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button
              type="success"
              plain
              icon="el-icon-edit"
              size="mini"
              :disabled="single"
              @click="handleUpdate"
              v-hasPermi="['da:collectionParamConf:edit']"
            >修改</el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button
              type="danger"
              plain
              icon="el-icon-delete"
              size="mini"
              :disabled="multiple"
              @click="handleDelete"
              v-hasPermi="['da:collectionParamConf:remove']"
            >删除</el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button
              type="warning"
              plain
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              v-hasPermi="['da:collectionParamConf:export']"
            >导出</el-button>
          </el-col>
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
        <el-table border v-loading="loading" :data="collectionParamConfList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center" />
<!--          <el-table-column label="主键id" align="center" prop="id" />-->
          <el-table-column label="产品编码" align="center" width="150" prop="productCode">
          </el-table-column>
          <el-table-column label="工序编号" align="center" width="80" prop="processesCode">
          </el-table-column>
          <el-table-column label="参数集编码" align="center" width="130" prop="parameterSetCode">
          </el-table-column>
          <el-table-column label="参数集名称" align="center" width="160" prop="parameterSetName">
          </el-table-column>
          <el-table-column label="参数编码" align="center" width="130" prop="collectParameterId">
          </el-table-column>
          <el-table-column label="参数名称" align="center" width="160" prop="collectParameterName">
          </el-table-column>
          <el-table-column label="采集地址" align="center" width="180" prop="gatherAddress">
          </el-table-column>
          <el-table-column label="采集顺序" align="center" width="80" prop="gatherSequence">
          </el-table-column>
          <el-table-column label="参数类型" align="center" width="130" prop="collectParameterType">
          </el-table-column>
          <el-table-column label="单位" align="center" width="80" prop="collectParameterUnit">
          </el-table-column>
          <el-table-column label="上限值" align="center" prop="paramUpper">
          </el-table-column>
          <el-table-column label="下限值" align="center" prop="paramLower">
          </el-table-column>
          <el-table-column label="中心值" align="center" prop="paramCentral">
          </el-table-column>
          <el-table-column label="备注" align="center" width="160" prop="remarks">
          </el-table-column>
          <el-table-column label="是否作为采集参数类型" align="center" width="160" prop="contrastParameterFlag">
            <template slot-scope="scope">
              <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.contrastParameterFlag"/>
            </template>
          </el-table-column>
          <el-table-column fixed="right" width="200" label="操作" align="center" class-name="small-padding fixed-width">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="success"
                plain
                style="width: 72px"
                icon="el-icon-edit"
                @click="handleUpdate(scope.row)"
                v-hasPermi="['da:collectionParamConf:edit']"
              >修改</el-button>
              <el-button
                size="mini"
                type="danger"
                plain
                style="width: 72px"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['da:collectionParamConf:remove']"
              >删除</el-button>
            </template>
          </el-table-column>
        </el-table>
    </el-card>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–ä¿®æ”¹é‡‡é›†å‚æ•°é…ç½®å¯¹è¯æ¡† -->
    <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body>
      <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
      </span>
      <el-form ref="form" inline :model="form" :rules="rules"  label-width="200px" >
        <el-form-item label="工序编号" prop="processesCode">
          <el-select style="width: 100%" @change="handleSelectChangeprocessesCode(form.processesCode)" v-model="form.processesCode" placeholder="请选择工序编号">
            <el-option
              v-for="item in options"
              :key="item.processesCode"
              :label="item.processesCode"
              :value="item.processesCode">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="参数集编码" prop="parameterSetCode">
          <el-input v-model="form.parameterSetCode" placeholder="请输入参数集编码" />
        </el-form-item>
        <el-form-item label="参数集名称" prop="parameterSetName">
          <el-input v-model="form.parameterSetName" placeholder="请输入参数集名称" />
        </el-form-item>
        <el-form-item label="采集参数ID" prop="collectParameterId">
          <el-input v-model="form.collectParameterId" placeholder="请输入采集参数ID" />
        </el-form-item>
        <el-form-item label="采集参数名称" prop="collectParameterName">
          <el-input v-model="form.collectParameterName" placeholder="请输入采集参数名称" />
        </el-form-item>
        <el-form-item label="是否作为对比参数"  prop="contrastParameterFlag" >
          <el-select v-model="form.contrastParameterFlag" placeholder="请选择是否作为对比参数">
            <el-option
              v-for="dict in dict.type.sys_yes_no"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="采集参数单位" prop="collectParameterUnit">
          <el-input v-model="form.collectParameterUnit" placeholder="请输入采集参数单位" />
        </el-form-item>
        <el-form-item label="数据描述" prop="Descriptives">
          <el-input v-model="form.Descriptives" placeholder="请输入数据描述" />
        </el-form-item>
        <el-form-item label="上限值" prop="paramUpper">
          <el-input v-model="form.paramUpper" placeholder="请输入上限值" />
        </el-form-item>
        <el-form-item label="下限值" prop="paramLower">
          <el-input v-model="form.paramLower" placeholder="请输入下限值" />
        </el-form-item>
        <el-form-item label="中心值" prop="paramCentral">
          <el-input v-model="form.paramCentral" placeholder="请输入中心值" />
        </el-form-item>
        <el-form-item label="产品编码" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请输入产品编码" />
        </el-form-item>
        <el-form-item label="采集地址" prop="gatherAddress">
          <el-input v-model="form.gatherAddress" placeholder="请输入采集地址" />
        </el-form-item>
        <el-form-item label="采集顺序" prop="gatherSequence">
          <el-input v-model="form.gatherSequence" placeholder="请输入采集顺序" />
        </el-form-item>
        <el-form-item label="备注" prop="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listCollectionParamConf, getCollectionParamConf, delCollectionParamConf, addCollectionParamConf, updateCollectionParamConf } from "@/api/main/da/collectionParamConf";
export default {
  name: "CollectionParamConf",
  dicts: ['subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable'],
  data() {
    return {
      options: [],
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // é‡‡é›†å‚数配置表格数据
      collectionParamConfList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        processesCode: null,
        parameterSetCode: null,
        parameterSetName: null,
        collectParameterId: null,
        collectParameterName: null,
        contrastParameterFlag: null,
        collectParameterType: null,
        productCode: null,
      },
      processesCodeQueryParams:{
        pageNum: 1,
        pageSize: 10,
        processesCode: null,
        processesName: null,
        processesType: null,
        ipAddress: null,
        spareField1: null,
        spareField2: null,
        spareField3: null,
        spareField4: null,
        createUser: null,
        updateUser: null,
        remarks: null
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
        processesCode: [
          { required: true, message: "工序编号不能为空", trigger: "blur" }
        ],
        parameterSetCode: [
          { required: true, message: "参数集编码不能为空", trigger: "blur" }
        ],
        parameterSetName: [
          { required: true, message: "参数集名称不能为空", trigger: "blur" }
        ],
        collectParameterId: [
          { required: true, message: "采集参数ID不能为空", trigger: "blur" }
        ],
        collectParameterName: [
          { required: true, message: "采集参数名称不能为空", trigger: "blur" }
        ],
        collectParameterUnit: [
          { required: true, message: "采集参数单位不能为空", trigger: "blur" }
        ],
        gatherAddress: [
          { required: true, message: "采集地址不能为空", trigger: "blur" }
        ],
        gatherSequence: [
          { required: true, message: "采集顺序不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
    this.initProcesses()
  },
  methods: {
    handleSelectChangeprocessesCode(selectedOption) {
      this.processesCodeQueryParams.processesCode = selectedOption;
      listProcesses(this.processesCodeQueryParams).then(response => {
        this.form.collectParameterName = response.rows[0].collectParameterName;
      });
    },
    initProcesses(){
      listProcesses(this.queryParams).then(response => {
        this.options = response.rows;
      });
    },
    /** æŸ¥è¯¢é‡‡é›†å‚数配置列表 */
    getList() {
      this.loading = true;
      listCollectionParamConf(this.queryParams).then(response => {
        this.collectionParamConfList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        processesCode: null,
        parameterSetCode: null,
        parameterSetName: null,
        collectParameterId: null,
        collectParameterName: null,
        contrastParameterFlag: null,
        collectParameterType: null,
        collectParameterUnit: null,
        Descriptives: null,
        paramUpper: null,
        paramLower: null,
        paramCentral: null,
        productCode: null,
        gatherAddress: null,
        gatherSequence: null,
        remarks: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        spareField1: null,
        spareField2: null,
        spareField3: null,
        spareField4: null
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.titleName = "添加采集参数配置";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getCollectionParamConf(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.titleName = "修改采集参数配置";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateCollectionParamConf(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addCollectionParamConf(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除采集参数配置编号为"' + ids + '"的数据项?').then(function() {
        return delCollectionParamConf(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('da/collectionParamConf/export', {
        ...this.queryParams
      }, `collectionParamConf_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
billion-ui/src/views/main/da/tightenCollection/index.vue
@@ -1,43 +1,11 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label-width="120" label="总成序列号" prop="sfcCode">
        <el-input
          v-model="queryParams.sfcCode"
          placeholder="请输入总成序列号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label-width="120" label="采集时间" prop="timeQuery">
        <el-date-picker
          v-model="queryParams.timeQuery"
          type="datetimerange"
          range-separator="至"
          value-format="yyyy-MM-dd HH:mm:ss"
          start-placeholder="开始日期"
          end-placeholder="结束日期">
        </el-date-picker>
      </el-form-item>
      <el-form-item style="float: right">
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button icon="el-icon-setting" size="mini" @click="toggleAdvancedSearch">高级查询</el-button>
      </el-form-item>
      <transition name="fade">
        <div v-if="advancedSearchVisible" class="advanced-search">
          <el-form-item label-width="100" label="参数集编码" prop="paramSetCode">
    <el-card class="box-card">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
          <el-form-item label="总成序列号" prop="sfcCode">
            <el-input
              v-model="queryParams.paramSetCode"
              placeholder="请输入参数集编码"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label-width="100" label="参数集名称" prop="paramSetName">
            <el-input
              v-model="queryParams.paramSetName"
              placeholder="请输入参数集名称"
              v-model="queryParams.sfcCode"
              placeholder="请输入总成序列号"
              clearable
              @keyup.enter.native="handleQuery"
            />
@@ -50,75 +18,137 @@
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-row>
            <el-col :span="24" style="text-align: right;">
              <el-button type="primary" icon="el-icon-close" size="mini" @click="toggleAdvancedSearch">关闭</el-button>
            </el-col>
          </el-row>
        </div>
      </transition>
    </el-form>
          <el-form-item label="参数集编码" prop="paramSetCode">
            <el-input
              v-model="queryParams.paramSetCode"
              placeholder="请输入参数集编码"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="参数集名称" prop="paramSetName">
            <el-input
              v-model="queryParams.paramSetName"
              placeholder="请输入参数集名称"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
<!--          <el-form-item label="扭矩状态" prop="torqueStatus">-->
<!--            <el-select v-model="queryParams.torqueStatus" placeholder="请选择扭矩状态" clearable>-->
<!--              <el-option-->
<!--                v-for="dict in dict.type.${dictType}"-->
<!--                :key="dict.value"-->
<!--                :label="dict.label"-->
<!--                :value="dict.value"-->
<!--              />-->
<!--            </el-select>-->
<!--          </el-form-item>-->
<!--          <el-form-item label="角度状态" prop="angleStatus">-->
<!--            <el-select v-model="queryParams.angleStatus" placeholder="请选择角度状态" clearable>-->
<!--              <el-option-->
<!--                v-for="dict in dict.type.${dictType}"-->
<!--                :key="dict.value"-->
<!--                :label="dict.label"-->
<!--                :value="dict.value"-->
<!--              />-->
<!--            </el-select>-->
<!--          </el-form-item>-->
          <el-form-item style="float: right">
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
          </el-form-item>
        </el-form>
    </el-card>
    <el-row :gutter="10" class="mb8">
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="primary"-->
<!--          plain-->
<!--          icon="el-icon-plus"-->
<!--          size="mini"-->
<!--          @click="handleAdd"-->
<!--          v-hasPermi="['da:tightenCollection:add']"-->
<!--        >新增</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="success"-->
<!--          plain-->
<!--          icon="el-icon-edit"-->
<!--          size="mini"-->
<!--          :disabled="single"-->
<!--          @click="handleUpdate"-->
<!--          v-hasPermi="['da:tightenCollection:edit']"-->
<!--        >修改</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="danger"-->
<!--          plain-->
<!--          icon="el-icon-delete"-->
<!--          size="mini"-->
<!--          :disabled="multiple"-->
<!--          @click="handleDelete"-->
<!--          v-hasPermi="['da:tightenCollection:remove']"-->
<!--        >删除</el-button>-->
<!--      </el-col>-->
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['da:tightenCollection:export']"
        >导出</el-button>
      </el-col>
<!--      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
    </el-row>
    <el-card style="margin-top: 10px" class="box-card">
        <el-row :gutter="10" class="mb8">
<!--          <el-col :span="1.5">-->
<!--            <el-button-->
<!--              type="primary"-->
<!--              plain-->
<!--              icon="el-icon-plus"-->
<!--              size="mini"-->
<!--              @click="handleAdd"-->
<!--              v-hasPermi="['da:tightenCollection:add']"-->
<!--            >新增</el-button>-->
<!--          </el-col>-->
<!--          <el-col :span="1.5">-->
<!--            <el-button-->
<!--              type="success"-->
<!--              plain-->
<!--              icon="el-icon-edit"-->
<!--              size="mini"-->
<!--              :disabled="single"-->
<!--              @click="handleUpdate"-->
<!--              v-hasPermi="['da:tightenCollection:edit']"-->
<!--            >修改</el-button>-->
<!--          </el-col>-->
<!--          <el-col :span="1.5">-->
<!--            <el-button-->
<!--              type="danger"-->
<!--              plain-->
<!--              icon="el-icon-delete"-->
<!--              size="mini"-->
<!--              :disabled="multiple"-->
<!--              @click="handleDelete"-->
<!--              v-hasPermi="['da:tightenCollection:remove']"-->
<!--            >删除</el-button>-->
<!--          </el-col>-->
          <el-col :span="1.5">
            <el-button
              type="warning"
              plain
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              v-hasPermi="['da:tightenCollection:export']"
            >导出</el-button>
          </el-col>
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
    <el-table border v-loading="loading" :data="tightenCollectionList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
<!--      <el-table-column label="主键id" align="center" prop="id" />-->
      <el-table-column label="总成序列号" align="center" prop="sfcCode" />
      <el-table-column label="工位编码" align="center" prop="locationCode" />
      <el-table-column label="参数集编码" align="center" prop="paramSetCode" />
      <el-table-column label="参数集名称" align="center" prop="paramSetName" />
      <el-table-column label="扭矩值" align="center" prop="torque" />
      <el-table-column label="扭矩状态" align="center" prop="torqueStatus" />
      <el-table-column label="角度值" align="center" prop="angle" />
      <el-table-column label="角度状态" align="center" prop="angleStatus" />
      <el-table-column label="采集时间" align="center" prop="collectTime" width="180">
      </el-table-column>
    </el-table>
        <el-table border v-loading="loading" :data="tightenCollectionList" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="主键id" align="center" prop="id" />
          <el-table-column label="总成序列号" align="center" prop="sfcCode">
          </el-table-column>
          <el-table-column label="工位编码" align="center" prop="locationCode">
          </el-table-column>
          <el-table-column label="参数集名称" align="center" prop="paramSetName">
          </el-table-column>
          <el-table-column label="扭矩值" align="center" prop="torque">
          </el-table-column>
          <el-table-column label="角度值" align="center" prop="angle">
          </el-table-column>
          <el-table-column label="角度状态" align="center" prop="angleStatus">
          </el-table-column>
          <el-table-column label="采集时间" align="center" prop="collectTime">
          </el-table-column>
<!--          <el-table-column fixed="right" width="200" label="操作" align="center" class-name="small-padding fixed-width">-->
<!--            <template slot-scope="scope">-->
<!--              <el-button-->
<!--                size="mini"-->
<!--                type="success"-->
<!--                plain-->
<!--                style="width: 72px"-->
<!--                icon="el-icon-edit"-->
<!--                @click="handleUpdate(scope.row)"-->
<!--                v-hasPermi="['da:tightenCollection:edit']"-->
<!--              >修改</el-button>-->
<!--              <el-button-->
<!--                size="mini"-->
<!--                type="danger"-->
<!--                plain-->
<!--                style="width: 72px"-->
<!--                icon="el-icon-delete"-->
<!--                @click="handleDelete(scope.row)"-->
<!--                v-hasPermi="['da:tightenCollection:remove']"-->
<!--              >删除</el-button>-->
<!--            </template>-->
<!--          </el-table-column>-->
        </el-table>
    </el-card>
    <pagination
      v-show="total>0"
@@ -129,8 +159,12 @@
    />
    <!-- æ·»åŠ æˆ–ä¿®æ”¹æ‹§ç´§é‡‡é›†å¯¹è¯æ¡† -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
    <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body>
      <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
      </span>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="总成序列号" prop="sfcCode">
          <el-input v-model="form.sfcCode" placeholder="请输入总成序列号" />
        </el-form-item>
@@ -146,9 +180,27 @@
        <el-form-item label="扭矩值" prop="torque">
          <el-input v-model="form.torque" placeholder="请输入扭矩值" />
        </el-form-item>
<!--        <el-form-item label="扭矩状态" prop="torqueStatus">-->
<!--          <el-radio-group v-model="form.torqueStatus">-->
<!--            <el-radio-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.value"-->
<!--            >{{dict.label}}</el-radio>-->
<!--          </el-radio-group>-->
<!--        </el-form-item>-->
        <el-form-item label="角度值" prop="angle">
          <el-input v-model="form.angle" placeholder="请输入角度值" />
        </el-form-item>
<!--        <el-form-item label="角度状态" prop="angleStatus">-->
<!--          <el-radio-group v-model="form.angleStatus">-->
<!--            <el-radio-->
<!--              v-for="dict in dict.type.${dictType}"-->
<!--              :key="dict.value"-->
<!--              :label="dict.value"-->
<!--            >{{dict.label}}</el-radio>-->
<!--          </el-radio-group>-->
<!--        </el-form-item>-->
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
@@ -165,9 +217,9 @@
  name: "TightenCollection",
  data() {
    return {
      advancedSearchVisible: false,
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
@@ -194,13 +246,14 @@
        paramSetName: null,
        torqueStatus: null,
        angleStatus: null,
        collectTime: null,
        timeQuery: []
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
@@ -208,9 +261,6 @@
    this.getList();
  },
  methods: {
    toggleAdvancedSearch() {
      this.advancedSearchVisible = !this.advancedSearchVisible;
    },
    /** æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表 */
    getList() {
      this.loading = true;
@@ -245,11 +295,9 @@
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
      this.advancedSearchVisible = false
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.clearQueryParams()
      this.resetForm("queryForm");
      this.handleQuery();
    },
@@ -259,16 +307,11 @@
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    clearQueryParams(){
      this.queryParams.paramSetName = null
      this.queryParams.paramSetName = null
      this.queryParams.locationCode = null
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加拧紧采集";
      this.titleName = "添加拧紧采集";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
@@ -277,7 +320,7 @@
      getTightenCollection(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改拧紧采集";
        this.titleName = "修改拧紧采集";
      });
    },
    /** æäº¤æŒ‰é’® */
@@ -319,28 +362,3 @@
  }
};
</script>
<style scoped>.fade-enter-active, .fade-leave-active {
  transition: opacity 0.3s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
  opacity: 0;
}
.advanced-search {
  position: absolute;
  background: #FFFFFF; /* è®¾ç½®ä¸ºä¸Žé¡µé¢èƒŒæ™¯è‰²ç›¸åŒæˆ–相近的颜色 */
  border-left: 1px solid #dcdfe6;
  border-right: 1px solid #dcdfe6;
  border-bottom: 1px solid #dcdfe6;
  /*border: none;*/
  box-shadow: none; /* ç§»é™¤é˜´å½± */
  padding: 10px;
  z-index: 1000; /* ç¡®ä¿æµ®åŠ¨åœ¨å…¶ä»–å…ƒç´ ä¹‹ä¸Š */
  top: 70px; /* è°ƒæ•´é¡¶éƒ¨ä½ç½®ï¼Œä½¿å…¶ä¸Žé¡µé¢å…¶ä»–元素更协调 */
  left: 20px; /* è°ƒæ•´å·¦ä¾§ä½ç½® */
  width: 97%; /* è°ƒæ•´å®½åº¦ */
  /*max-width: 1296px; !* æœ€å¤§å®½åº¦ *!*/
  /*max-width: 1296px; !* æœ€å¤§å®½åº¦ *!*/
  margin: 0 auto; /* å±…中对齐 */
}
</style>