春风项目四线(合箱线、总装线)
admin
20 小时以前 ed8d46af267e455c9ff1096585d16c3cd0f4bb0c
采集数据分表存储
已添加33个文件
已修改4个文件
5378 ■■■■■ 文件已修改
jcdm-framework/src/main/java/com/jcdm/framework/config/SecurityConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/controller/DaCameraResultsController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/domain/DaCameraResults.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/mapper/DaCameraResultsMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/service/IDaCameraResultsService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/service/impl/DaCameraResultsServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/controller/DaLeakageDetectionController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/domain/DaLeakageDetection.java 334 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/mapper/DaLeakageDetectionMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/service/IDaLeakageDetectionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/service/impl/DaLeakageDetectionServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/controller/DaOilFillingController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/domain/DaOilFilling.java 362 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/mapper/DaOilFillingMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/service/IDaOilFillingService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/service/impl/DaOilFillingServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/controller/DaTightenCollectionController.java 467 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/domain/DaTightenCollection.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/mapper/DaTightenCollectionMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/service/IDaTightenCollectionService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/service/impl/DaTightenCollectionServiceImpl.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/cameraResults/DaCameraResultsMapper.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/leakageDetection/DaLeakageDetectionMapper.xml 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/oilFilling/DaOilFillingMapper.xml 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/tightenCollection/DaTightenCollectionMapper.xml 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/da/cameraResults/cameraResults.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/da/leakageDetection/leakageDetection.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/da/oilFilling/oilFilling.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/da/tightenCollection/tightenCollection.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/cfkb/fuelNozzle/index.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/cameraResults/index.vue 316 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/leakageDetection/index.vue 404 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/oilFilling/index.vue 392 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/tightenCollection/index.vue 364 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-framework/src/main/java/com/jcdm/framework/config/SecurityConfig.java
@@ -117,6 +117,7 @@
                .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
                .antMatchers("/bs/technologyRouteChild/ttest").permitAll()
                .antMatchers("/bs/orderScheduling/engine-report").permitAll()
                .antMatchers("/da/tightenCollection/**").permitAll()
                .antMatchers("/websocket/**").anonymous()
                // é™¤ä¸Šé¢å¤–的所有请求全部需要鉴权认证
                .anyRequest().authenticated()
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/controller/DaCameraResultsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.jcdm.main.da.cameraResults.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.da.cameraResults.domain.DaCameraResults;
import com.jcdm.main.da.cameraResults.service.IDaCameraResultsService;
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.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * ç›¸æœºç»“æžœController
 *
 * @author Yi
 * @date 2025-05-07
 */
@RestController
@RequestMapping("/da/cameraResults")
public class DaCameraResultsController extends BaseController
{
    @Autowired
    private IDaCameraResultsService daCameraResultsService;
    /**
     * æŸ¥è¯¢ç›¸æœºç»“果列表
     */
    @PreAuthorize("@ss.hasPermi('da:cameraResults:list')")
    @GetMapping("/list")
    public TableDataInfo list(DaCameraResults daCameraResults)
    {
        startPage();
        List<DaCameraResults> list = daCameraResultsService.selectDaCameraResultsList(daCameraResults);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºç›¸æœºç»“果列表
     */
    @PreAuthorize("@ss.hasPermi('da:cameraResults:export')")
    @Log(title = "相机结果", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, DaCameraResults daCameraResults)
    {
        List<DaCameraResults> list = daCameraResultsService.selectDaCameraResultsList(daCameraResults);
        ExcelUtil<DaCameraResults> util = new ExcelUtil<DaCameraResults>(DaCameraResults.class);
        util.exportExcel(response, list, "相机结果数据");
    }
    /**
     * èŽ·å–ç›¸æœºç»“æžœè¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('da:cameraResults:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(daCameraResultsService.selectDaCameraResultsById(id));
    }
    /**
     * æ–°å¢žç›¸æœºç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('da:cameraResults:add')")
    @Log(title = "相机结果", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DaCameraResults daCameraResults)
    {
        return toAjax(daCameraResultsService.insertDaCameraResults(daCameraResults));
    }
    /**
     * ä¿®æ”¹ç›¸æœºç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('da:cameraResults:edit')")
    @Log(title = "相机结果", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DaCameraResults daCameraResults)
    {
        return toAjax(daCameraResultsService.updateDaCameraResults(daCameraResults));
    }
    /**
     * åˆ é™¤ç›¸æœºç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('da:cameraResults:remove')")
    @Log(title = "相机结果", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(daCameraResultsService.deleteDaCameraResultsByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/domain/DaCameraResults.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
package com.jcdm.main.da.cameraResults.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
/**
 * ç›¸æœºç»“果对象 da_camera_results
 *
 * @author Yi
 * @date 2025-05-07
 */
public class DaCameraResults
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** æ€»æˆåºåˆ—号 */
    @Excel(name = "总成序列号")
    private String sfcCode;
    /** å·¥ä½ç¼–码 */
    @Excel(name = "工位编码")
    private String locationCode;
    /** æè¿° */
    @Excel(name = "描述")
    private String describe;
    /** ç›¸æœº1结果 */
    @Excel(name = "相机1结果")
    private String ResultData0;
    /** ç›¸æœº2结果 */
    @Excel(name = "相机2结果")
    private String ResultData1;
    /** ç›¸æœº3结果 */
    @Excel(name = "相机3结果")
    private String ResultData2;
    /** ç›¸æœº4结果 */
    @Excel(name = "相机4结果")
    private String ResultData3;
    /** ç›¸æœº5结果 */
    @Excel(name = "相机5结果")
    private String ResultData4;
    /** é‡‡é›†æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setSfcCode(String sfcCode)
    {
        this.sfcCode = sfcCode;
    }
    public String getSfcCode()
    {
        return sfcCode;
    }
    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }
    public String getLocationCode()
    {
        return locationCode;
    }
    public void setDescribe(String describe)
    {
        this.describe = describe;
    }
    public String getDescribe()
    {
        return describe;
    }
    public void setResultData0(String ResultData0)
    {
        this.ResultData0 = ResultData0;
    }
    public String getResultData0()
    {
        return ResultData0;
    }
    public void setResultData1(String ResultData1)
    {
        this.ResultData1 = ResultData1;
    }
    public String getResultData1()
    {
        return ResultData1;
    }
    public void setResultData2(String ResultData2)
    {
        this.ResultData2 = ResultData2;
    }
    public String getResultData2()
    {
        return ResultData2;
    }
    public void setResultData3(String ResultData3)
    {
        this.ResultData3 = ResultData3;
    }
    public String getResultData3()
    {
        return ResultData3;
    }
    public void setResultData4(String ResultData4)
    {
        this.ResultData4 = ResultData4;
    }
    public String getResultData4()
    {
        return ResultData4;
    }
    public void setCollectTime(Date collectTime)
    {
        this.collectTime = collectTime;
    }
    public Date getCollectTime()
    {
        return collectTime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sfcCode", getSfcCode())
            .append("locationCode", getLocationCode())
            .append("describe", getDescribe())
            .append("ResultData0", getResultData0())
            .append("ResultData1", getResultData1())
            .append("ResultData2", getResultData2())
            .append("ResultData3", getResultData3())
            .append("ResultData4", getResultData4())
            .append("collectTime", getCollectTime())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/mapper/DaCameraResultsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.cameraResults.mapper;
import com.jcdm.main.da.cameraResults.domain.DaCameraResults;
import java.util.List;
/**
 * ç›¸æœºç»“æžœMapper接口
 *
 * @author Yi
 * @date 2025-05-07
 */
public interface DaCameraResultsMapper
{
    /**
     * æŸ¥è¯¢ç›¸æœºç»“æžœ
     *
     * @param id ç›¸æœºç»“果主键
     * @return ç›¸æœºç»“æžœ
     */
    public DaCameraResults selectDaCameraResultsById(Long id);
    /**
     * æŸ¥è¯¢ç›¸æœºç»“果列表
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç›¸æœºç»“果集合
     */
    public List<DaCameraResults> selectDaCameraResultsList(DaCameraResults daCameraResults);
    /**
     * æ–°å¢žç›¸æœºç»“æžœ
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç»“æžœ
     */
    public int insertDaCameraResults(DaCameraResults daCameraResults);
    /**
     * ä¿®æ”¹ç›¸æœºç»“æžœ
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç»“æžœ
     */
    public int updateDaCameraResults(DaCameraResults daCameraResults);
    /**
     * åˆ é™¤ç›¸æœºç»“æžœ
     *
     * @param id ç›¸æœºç»“果主键
     * @return ç»“æžœ
     */
    public int deleteDaCameraResultsById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤ç›¸æœºç»“æžœ
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteDaCameraResultsByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/service/IDaCameraResultsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.cameraResults.service;
import com.jcdm.main.da.cameraResults.domain.DaCameraResults;
import java.util.List;
/**
 * ç›¸æœºç»“æžœService接口
 *
 * @author Yi
 * @date 2025-05-07
 */
public interface IDaCameraResultsService
{
    /**
     * æŸ¥è¯¢ç›¸æœºç»“æžœ
     *
     * @param id ç›¸æœºç»“果主键
     * @return ç›¸æœºç»“æžœ
     */
    public DaCameraResults selectDaCameraResultsById(Long id);
    /**
     * æŸ¥è¯¢ç›¸æœºç»“果列表
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç›¸æœºç»“果集合
     */
    public List<DaCameraResults> selectDaCameraResultsList(DaCameraResults daCameraResults);
    /**
     * æ–°å¢žç›¸æœºç»“æžœ
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç»“æžœ
     */
    public int insertDaCameraResults(DaCameraResults daCameraResults);
    /**
     * ä¿®æ”¹ç›¸æœºç»“æžœ
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç»“æžœ
     */
    public int updateDaCameraResults(DaCameraResults daCameraResults);
    /**
     * æ‰¹é‡åˆ é™¤ç›¸æœºç»“æžœ
     *
     * @param ids éœ€è¦åˆ é™¤çš„相机结果主键集合
     * @return ç»“æžœ
     */
    public int deleteDaCameraResultsByIds(Long[] ids);
    /**
     * åˆ é™¤ç›¸æœºç»“果信息
     *
     * @param id ç›¸æœºç»“果主键
     * @return ç»“æžœ
     */
    public int deleteDaCameraResultsById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/da/cameraResults/service/impl/DaCameraResultsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.jcdm.main.da.cameraResults.service.impl;
import java.util.List;
import com.jcdm.main.da.cameraResults.domain.DaCameraResults;
import com.jcdm.main.da.cameraResults.mapper.DaCameraResultsMapper;
import com.jcdm.main.da.cameraResults.service.IDaCameraResultsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * ç›¸æœºç»“æžœService业务层处理
 *
 * @author Yi
 * @date 2025-05-07
 */
@Service
public class DaCameraResultsServiceImpl implements IDaCameraResultsService
{
    @Autowired
    private DaCameraResultsMapper daCameraResultsMapper;
    /**
     * æŸ¥è¯¢ç›¸æœºç»“æžœ
     *
     * @param id ç›¸æœºç»“果主键
     * @return ç›¸æœºç»“æžœ
     */
    @Override
    public DaCameraResults selectDaCameraResultsById(Long id)
    {
        return daCameraResultsMapper.selectDaCameraResultsById(id);
    }
    /**
     * æŸ¥è¯¢ç›¸æœºç»“果列表
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç›¸æœºç»“æžœ
     */
    @Override
    public List<DaCameraResults> selectDaCameraResultsList(DaCameraResults daCameraResults)
    {
        return daCameraResultsMapper.selectDaCameraResultsList(daCameraResults);
    }
    /**
     * æ–°å¢žç›¸æœºç»“æžœ
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç»“æžœ
     */
    @Override
    public int insertDaCameraResults(DaCameraResults daCameraResults)
    {
        return daCameraResultsMapper.insertDaCameraResults(daCameraResults);
    }
    /**
     * ä¿®æ”¹ç›¸æœºç»“æžœ
     *
     * @param daCameraResults ç›¸æœºç»“æžœ
     * @return ç»“æžœ
     */
    @Override
    public int updateDaCameraResults(DaCameraResults daCameraResults)
    {
        return daCameraResultsMapper.updateDaCameraResults(daCameraResults);
    }
    /**
     * æ‰¹é‡åˆ é™¤ç›¸æœºç»“æžœ
     *
     * @param ids éœ€è¦åˆ é™¤çš„相机结果主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaCameraResultsByIds(Long[] ids)
    {
        return daCameraResultsMapper.deleteDaCameraResultsByIds(ids);
    }
    /**
     * åˆ é™¤ç›¸æœºç»“果信息
     *
     * @param id ç›¸æœºç»“果主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaCameraResultsById(Long id)
    {
        return daCameraResultsMapper.deleteDaCameraResultsById(id);
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/controller/DaLeakageDetectionController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.jcdm.main.da.leakageDetection.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.da.leakageDetection.domain.DaLeakageDetection;
import com.jcdm.main.da.leakageDetection.service.IDaLeakageDetectionService;
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.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * å¤–漏检测Controller
 *
 * @author Yi
 * @date 2025-05-07
 */
@RestController
@RequestMapping("/da/leakageDetection")
public class DaLeakageDetectionController extends BaseController
{
    @Autowired
    private IDaLeakageDetectionService daLeakageDetectionService;
    /**
     * æŸ¥è¯¢å¤–漏检测列表
     */
    @PreAuthorize("@ss.hasPermi('da:leakageDetection:list')")
    @GetMapping("/list")
    public TableDataInfo list(DaLeakageDetection daLeakageDetection)
    {
        startPage();
        List<DaLeakageDetection> list = daLeakageDetectionService.selectDaLeakageDetectionList(daLeakageDetection);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºå¤–漏检测列表
     */
    @PreAuthorize("@ss.hasPermi('da:leakageDetection:export')")
    @Log(title = "外漏检测", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, DaLeakageDetection daLeakageDetection)
    {
        List<DaLeakageDetection> list = daLeakageDetectionService.selectDaLeakageDetectionList(daLeakageDetection);
        ExcelUtil<DaLeakageDetection> util = new ExcelUtil<DaLeakageDetection>(DaLeakageDetection.class);
        util.exportExcel(response, list, "外漏检测数据");
    }
    /**
     * èŽ·å–å¤–æ¼æ£€æµ‹è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('da:leakageDetection:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(daLeakageDetectionService.selectDaLeakageDetectionById(id));
    }
    /**
     * æ–°å¢žå¤–漏检测
     */
    @PreAuthorize("@ss.hasPermi('da:leakageDetection:add')")
    @Log(title = "外漏检测", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DaLeakageDetection daLeakageDetection)
    {
        return toAjax(daLeakageDetectionService.insertDaLeakageDetection(daLeakageDetection));
    }
    /**
     * ä¿®æ”¹å¤–漏检测
     */
    @PreAuthorize("@ss.hasPermi('da:leakageDetection:edit')")
    @Log(title = "外漏检测", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DaLeakageDetection daLeakageDetection)
    {
        return toAjax(daLeakageDetectionService.updateDaLeakageDetection(daLeakageDetection));
    }
    /**
     * åˆ é™¤å¤–漏检测
     */
    @PreAuthorize("@ss.hasPermi('da:leakageDetection:remove')")
    @Log(title = "外漏检测", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(daLeakageDetectionService.deleteDaLeakageDetectionByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/domain/DaLeakageDetection.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,334 @@
package com.jcdm.main.da.leakageDetection.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
/**
 * å¤–漏检测对象 da_leakage_detection
 *
 * @author Yi
 * @date 2025-05-07
 */
public class DaLeakageDetection
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** æ€»æˆåºåˆ—号 */
    @Excel(name = "总成序列号")
    private String sfcCode;
    /** å·¥ä½ç¼–码 */
    @Excel(name = "工位编码")
    private String locationCode;
    /** å‚数集编码 */
    @Excel(name = "参数集编码")
    private String paramSetCode;
    /** å‚数集名称 */
    @Excel(name = "参数集名称")
    private String paramSetName;
    /** æè¿° */
    @Excel(name = "描述")
    private String describe;
    /** åŽ‹åŠ›å€¼ */
    @Excel(name = "压力值")
    private String pressureValue;
    /** æ³„露率 */
    @Excel(name = "泄露率")
    private String leakageRate;
    /** ç»“æžœ */
    @Excel(name = "结果")
    private String result;
    /** æ°´é“互漏泄漏量 */
    @Excel(name = "水道互漏泄漏量")
    private String Leakrate1;
    /** æ°´é“外漏泄漏量 */
    @Excel(name = "水道外漏泄漏量")
    private String Leakrate2;
    /** é½¿è½®ç®±å¤–漏泄漏量 */
    @Excel(name = "齿轮箱外漏泄漏量")
    private String Leakrate3;
    /** æ²¹é“外漏泄漏量 */
    @Excel(name = "油道外漏泄漏量")
    private String Leakrate4;
    /** æ°´é“互漏压力 */
    @Excel(name = "水道互漏压力")
    private String Press1;
    /** æ°´é“外漏压力 */
    @Excel(name = "水道外漏压力")
    private String Press2;
    /** é½¿è½®ç®±å¤–漏压力 */
    @Excel(name = "齿轮箱外漏压力")
    private String Press3;
    /** æ²¹é“外漏压力 */
    @Excel(name = "油道外漏压力")
    private String Press4;
    /** æ°´é“互漏结果状态:1OK 2NG */
    @Excel(name = "水道互漏结果状态:1OK 2NG")
    private String Status1;
    /** æ°´é“外漏结果状态:1OK 2NG */
    @Excel(name = "水道外漏结果状态:1OK 2NG")
    private String Status2;
    /** é½¿è½®ç®±å¤–漏结果状态:1OK 2NG */
    @Excel(name = "齿轮箱外漏结果状态:1OK 2NG")
    private String Status3;
    /** æ²¹é“外漏结果状态:1OK 2NG */
    @Excel(name = "油道外漏结果状态:1OK 2NG")
    private String Status4;
    /** é‡‡é›†æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setSfcCode(String sfcCode)
    {
        this.sfcCode = sfcCode;
    }
    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 setDescribe(String describe)
    {
        this.describe = describe;
    }
    public String getDescribe()
    {
        return describe;
    }
    public void setPressureValue(String pressureValue)
    {
        this.pressureValue = pressureValue;
    }
    public String getPressureValue()
    {
        return pressureValue;
    }
    public void setLeakageRate(String leakageRate)
    {
        this.leakageRate = leakageRate;
    }
    public String getLeakageRate()
    {
        return leakageRate;
    }
    public void setResult(String result)
    {
        this.result = result;
    }
    public String getResult()
    {
        return result;
    }
    public void setLeakrate1(String Leakrate1)
    {
        this.Leakrate1 = Leakrate1;
    }
    public String getLeakrate1()
    {
        return Leakrate1;
    }
    public void setLeakrate2(String Leakrate2)
    {
        this.Leakrate2 = Leakrate2;
    }
    public String getLeakrate2()
    {
        return Leakrate2;
    }
    public void setLeakrate3(String Leakrate3)
    {
        this.Leakrate3 = Leakrate3;
    }
    public String getLeakrate3()
    {
        return Leakrate3;
    }
    public void setLeakrate4(String Leakrate4)
    {
        this.Leakrate4 = Leakrate4;
    }
    public String getLeakrate4()
    {
        return Leakrate4;
    }
    public void setPress1(String Press1)
    {
        this.Press1 = Press1;
    }
    public String getPress1()
    {
        return Press1;
    }
    public void setPress2(String Press2)
    {
        this.Press2 = Press2;
    }
    public String getPress2()
    {
        return Press2;
    }
    public void setPress3(String Press3)
    {
        this.Press3 = Press3;
    }
    public String getPress3()
    {
        return Press3;
    }
    public void setPress4(String Press4)
    {
        this.Press4 = Press4;
    }
    public String getPress4()
    {
        return Press4;
    }
    public void setStatus1(String Status1)
    {
        this.Status1 = Status1;
    }
    public String getStatus1()
    {
        return Status1;
    }
    public void setStatus2(String Status2)
    {
        this.Status2 = Status2;
    }
    public String getStatus2()
    {
        return Status2;
    }
    public void setStatus3(String Status3)
    {
        this.Status3 = Status3;
    }
    public String getStatus3()
    {
        return Status3;
    }
    public void setStatus4(String Status4)
    {
        this.Status4 = Status4;
    }
    public String getStatus4()
    {
        return Status4;
    }
    public void setCollectTime(Date collectTime)
    {
        this.collectTime = collectTime;
    }
    public Date getCollectTime()
    {
        return 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("describe", getDescribe())
            .append("pressureValue", getPressureValue())
            .append("leakageRate", getLeakageRate())
            .append("result", getResult())
            .append("Leakrate1", getLeakrate1())
            .append("Leakrate2", getLeakrate2())
            .append("Leakrate3", getLeakrate3())
            .append("Leakrate4", getLeakrate4())
            .append("Press1", getPress1())
            .append("Press2", getPress2())
            .append("Press3", getPress3())
            .append("Press4", getPress4())
            .append("Status1", getStatus1())
            .append("Status2", getStatus2())
            .append("Status3", getStatus3())
            .append("Status4", getStatus4())
            .append("collectTime", getCollectTime())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/mapper/DaLeakageDetectionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.leakageDetection.mapper;
import com.jcdm.main.da.leakageDetection.domain.DaLeakageDetection;
import java.util.List;
/**
 * å¤–漏检测Mapper接口
 *
 * @author Yi
 * @date 2025-05-07
 */
public interface DaLeakageDetectionMapper
{
    /**
     * æŸ¥è¯¢å¤–漏检测
     *
     * @param id å¤–漏检测主键
     * @return å¤–漏检测
     */
    public DaLeakageDetection selectDaLeakageDetectionById(Long id);
    /**
     * æŸ¥è¯¢å¤–漏检测列表
     *
     * @param daLeakageDetection å¤–漏检测
     * @return å¤–漏检测集合
     */
    public List<DaLeakageDetection> selectDaLeakageDetectionList(DaLeakageDetection daLeakageDetection);
    /**
     * æ–°å¢žå¤–漏检测
     *
     * @param daLeakageDetection å¤–漏检测
     * @return ç»“æžœ
     */
    public int insertDaLeakageDetection(DaLeakageDetection daLeakageDetection);
    /**
     * ä¿®æ”¹å¤–漏检测
     *
     * @param daLeakageDetection å¤–漏检测
     * @return ç»“æžœ
     */
    public int updateDaLeakageDetection(DaLeakageDetection daLeakageDetection);
    /**
     * åˆ é™¤å¤–漏检测
     *
     * @param id å¤–漏检测主键
     * @return ç»“æžœ
     */
    public int deleteDaLeakageDetectionById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤å¤–漏检测
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteDaLeakageDetectionByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/service/IDaLeakageDetectionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.leakageDetection.service;
import com.jcdm.main.da.leakageDetection.domain.DaLeakageDetection;
import java.util.List;
/**
 * å¤–漏检测Service接口
 *
 * @author Yi
 * @date 2025-05-07
 */
public interface IDaLeakageDetectionService
{
    /**
     * æŸ¥è¯¢å¤–漏检测
     *
     * @param id å¤–漏检测主键
     * @return å¤–漏检测
     */
    public DaLeakageDetection selectDaLeakageDetectionById(Long id);
    /**
     * æŸ¥è¯¢å¤–漏检测列表
     *
     * @param daLeakageDetection å¤–漏检测
     * @return å¤–漏检测集合
     */
    public List<DaLeakageDetection> selectDaLeakageDetectionList(DaLeakageDetection daLeakageDetection);
    /**
     * æ–°å¢žå¤–漏检测
     *
     * @param daLeakageDetection å¤–漏检测
     * @return ç»“æžœ
     */
    public int insertDaLeakageDetection(DaLeakageDetection daLeakageDetection);
    /**
     * ä¿®æ”¹å¤–漏检测
     *
     * @param daLeakageDetection å¤–漏检测
     * @return ç»“æžœ
     */
    public int updateDaLeakageDetection(DaLeakageDetection daLeakageDetection);
    /**
     * æ‰¹é‡åˆ é™¤å¤–漏检测
     *
     * @param ids éœ€è¦åˆ é™¤çš„外漏检测主键集合
     * @return ç»“æžœ
     */
    public int deleteDaLeakageDetectionByIds(Long[] ids);
    /**
     * åˆ é™¤å¤–漏检测信息
     *
     * @param id å¤–漏检测主键
     * @return ç»“æžœ
     */
    public int deleteDaLeakageDetectionById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/da/leakageDetection/service/impl/DaLeakageDetectionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.jcdm.main.da.leakageDetection.service.impl;
import java.util.List;
import com.jcdm.main.da.leakageDetection.domain.DaLeakageDetection;
import com.jcdm.main.da.leakageDetection.mapper.DaLeakageDetectionMapper;
import com.jcdm.main.da.leakageDetection.service.IDaLeakageDetectionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * å¤–漏检测Service业务层处理
 *
 * @author Yi
 * @date 2025-05-07
 */
@Service
public class DaLeakageDetectionServiceImpl implements IDaLeakageDetectionService
{
    @Autowired
    private DaLeakageDetectionMapper daLeakageDetectionMapper;
    /**
     * æŸ¥è¯¢å¤–漏检测
     *
     * @param id å¤–漏检测主键
     * @return å¤–漏检测
     */
    @Override
    public DaLeakageDetection selectDaLeakageDetectionById(Long id)
    {
        return daLeakageDetectionMapper.selectDaLeakageDetectionById(id);
    }
    /**
     * æŸ¥è¯¢å¤–漏检测列表
     *
     * @param daLeakageDetection å¤–漏检测
     * @return å¤–漏检测
     */
    @Override
    public List<DaLeakageDetection> selectDaLeakageDetectionList(DaLeakageDetection daLeakageDetection)
    {
        return daLeakageDetectionMapper.selectDaLeakageDetectionList(daLeakageDetection);
    }
    /**
     * æ–°å¢žå¤–漏检测
     *
     * @param daLeakageDetection å¤–漏检测
     * @return ç»“æžœ
     */
    @Override
    public int insertDaLeakageDetection(DaLeakageDetection daLeakageDetection)
    {
        return daLeakageDetectionMapper.insertDaLeakageDetection(daLeakageDetection);
    }
    /**
     * ä¿®æ”¹å¤–漏检测
     *
     * @param daLeakageDetection å¤–漏检测
     * @return ç»“æžœ
     */
    @Override
    public int updateDaLeakageDetection(DaLeakageDetection daLeakageDetection)
    {
        return daLeakageDetectionMapper.updateDaLeakageDetection(daLeakageDetection);
    }
    /**
     * æ‰¹é‡åˆ é™¤å¤–漏检测
     *
     * @param ids éœ€è¦åˆ é™¤çš„外漏检测主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaLeakageDetectionByIds(Long[] ids)
    {
        return daLeakageDetectionMapper.deleteDaLeakageDetectionByIds(ids);
    }
    /**
     * åˆ é™¤å¤–漏检测信息
     *
     * @param id å¤–漏检测主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaLeakageDetectionById(Long id)
    {
        return daLeakageDetectionMapper.deleteDaLeakageDetectionById(id);
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/controller/DaOilFillingController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.jcdm.main.da.oilFilling.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.main.da.oilFilling.domain.DaOilFilling;
import com.jcdm.main.da.oilFilling.service.IDaOilFillingService;
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.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * æœºæ²¹åŠ æ³¨Controller
 *
 * @author Yi
 * @date 2025-05-07
 */
@RestController
@RequestMapping("/da/oilFilling")
public class DaOilFillingController extends BaseController
{
    @Autowired
    private IDaOilFillingService daOilFillingService;
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('da:oilFilling:list')")
    @GetMapping("/list")
    public TableDataInfo list(DaOilFilling daOilFilling)
    {
        startPage();
        List<DaOilFilling> list = daOilFillingService.selectDaOilFillingList(daOilFilling);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºæœºæ²¹åŠ æ³¨åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('da:oilFilling:export')")
    @Log(title = "机油加注", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, DaOilFilling daOilFilling)
    {
        List<DaOilFilling> list = daOilFillingService.selectDaOilFillingList(daOilFilling);
        ExcelUtil<DaOilFilling> util = new ExcelUtil<DaOilFilling>(DaOilFilling.class);
        util.exportExcel(response, list, "机油加注数据");
    }
    /**
     * èŽ·å–æœºæ²¹åŠ æ³¨è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('da:oilFilling:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(daOilFillingService.selectDaOilFillingById(id));
    }
    /**
     * æ–°å¢žæœºæ²¹åŠ æ³¨
     */
    @PreAuthorize("@ss.hasPermi('da:oilFilling:add')")
    @Log(title = "机油加注", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DaOilFilling daOilFilling)
    {
        return toAjax(daOilFillingService.insertDaOilFilling(daOilFilling));
    }
    /**
     * ä¿®æ”¹æœºæ²¹åŠ æ³¨
     */
    @PreAuthorize("@ss.hasPermi('da:oilFilling:edit')")
    @Log(title = "机油加注", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DaOilFilling daOilFilling)
    {
        return toAjax(daOilFillingService.updateDaOilFilling(daOilFilling));
    }
    /**
     * åˆ é™¤æœºæ²¹åŠ æ³¨
     */
    @PreAuthorize("@ss.hasPermi('da:oilFilling:remove')")
    @Log(title = "机油加注", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(daOilFillingService.deleteDaOilFillingByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/domain/DaOilFilling.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,362 @@
package com.jcdm.main.da.oilFilling.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
/**
 * æœºæ²¹åŠ æ³¨å¯¹è±¡ da_oil_filling
 *
 * @author Yi
 * @date 2025-05-07
 */
public class DaOilFilling
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** æ€»æˆåºåˆ—号 */
    @Excel(name = "总成序列号")
    private String sfcCode;
    /** å·¥ä½ç¼–码 */
    @Excel(name = "工位编码")
    private String locationCode;
    /** æè¿° */
    @Excel(name = "描述")
    private String describe;
    /** è®¾å®šåŠ æ²¹é‡ */
    @Excel(name = "设定加油量")
    private String setFuelVolume;
    /** å®žé™…加油量 */
    @Excel(name = "实际加油量")
    private String actualFuelConsumption;
    /** åŠ æ²¹è€—æ—¶ */
    @Excel(name = "加油耗时")
    private String refuelingTime;
    /** åŠ æ²¹çŠ¶æ€ */
    @Excel(name = "加油状态")
    private String result;
    /** ä¸€å·æžªå®žé™…加油量(L) */
    @Excel(name = "一号枪实际加油量(L)")
    private String actualOilvolume1;
    /** äºŒå·æžªå®žé™…加油量(L) */
    @Excel(name = "二号枪实际加油量(L)")
    private String actualOilvolume2;
    /** ä¸‰å·æžªå®žé™…加油量(L) */
    @Excel(name = "三号枪实际加油量(L)")
    private String actualOilvolume3;
    /** ä¸€å·æžªåŠ æ²¹ç±»åž‹ */
    @Excel(name = "一号枪加油类型")
    private String OilModel1;
    /** äºŒå·æžªåŠ æ²¹ç±»åž‹ */
    @Excel(name = "二号枪加油类型")
    private String OilModel2;
    /** ä¸‰å·æžªåŠ æ²¹ç±»åž‹ */
    @Excel(name = "三号枪加油类型")
    private String OilModel3;
    /** ä¸€å·æžªé¢„计加油量(L) */
    @Excel(name = "一号枪预计加油量(L)")
    private String setOilvolume1;
    /** äºŒå·æžªé¢„计加油量(L) */
    @Excel(name = "二号枪预计加油量(L)")
    private String setOilvolume2;
    /** ä¸‰å·æžªé¢„计加油量(L) */
    @Excel(name = "三号枪预计加油量(L)")
    private String setOilvolume3;
    /** ä¸€å·æžªåŠ æ²¹çŠ¶æ€1OK;2NG */
    @Excel(name = "一号枪加油状态1OK;2NG")
    private String Status1;
    /** äºŒå·æžªåŠ æ²¹çŠ¶æ€1OK;2NG */
    @Excel(name = "二号枪加油状态1OK;2NG")
    private String Status2;
    /** ä¸‰å·æžªåŠ æ²¹çŠ¶æ€1OK;2NG */
    @Excel(name = "三号枪加油状态1OK;2NG")
    private String Status3;
    /** ä¸€å·æžªåŠ æ²¹æ—¶é—´ï¼ˆS) */
    @Excel(name = "一号枪加油时间", readConverterExp = "S=")
    private String Time1;
    /** äºŒå·æžªåŠ æ²¹æ—¶é—´ï¼ˆS) */
    @Excel(name = "二号枪加油时间", readConverterExp = "S=")
    private String Time2;
    /** ä¸‰å·æžªåŠ æ²¹æ—¶é—´ï¼ˆS) */
    @Excel(name = "三号枪加油时间", readConverterExp = "S=")
    private String Time3;
    /** é‡‡é›†æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setSfcCode(String sfcCode)
    {
        this.sfcCode = sfcCode;
    }
    public String getSfcCode()
    {
        return sfcCode;
    }
    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }
    public String getLocationCode()
    {
        return locationCode;
    }
    public void setDescribe(String describe)
    {
        this.describe = describe;
    }
    public String getDescribe()
    {
        return describe;
    }
    public void setSetFuelVolume(String setFuelVolume)
    {
        this.setFuelVolume = setFuelVolume;
    }
    public String getSetFuelVolume()
    {
        return setFuelVolume;
    }
    public void setActualFuelConsumption(String actualFuelConsumption)
    {
        this.actualFuelConsumption = actualFuelConsumption;
    }
    public String getActualFuelConsumption()
    {
        return actualFuelConsumption;
    }
    public void setRefuelingTime(String refuelingTime)
    {
        this.refuelingTime = refuelingTime;
    }
    public String getRefuelingTime()
    {
        return refuelingTime;
    }
    public void setResult(String result)
    {
        this.result = result;
    }
    public String getResult()
    {
        return result;
    }
    public void setActualOilvolume1(String actualOilvolume1)
    {
        this.actualOilvolume1 = actualOilvolume1;
    }
    public String getActualOilvolume1()
    {
        return actualOilvolume1;
    }
    public void setActualOilvolume2(String actualOilvolume2)
    {
        this.actualOilvolume2 = actualOilvolume2;
    }
    public String getActualOilvolume2()
    {
        return actualOilvolume2;
    }
    public void setActualOilvolume3(String actualOilvolume3)
    {
        this.actualOilvolume3 = actualOilvolume3;
    }
    public String getActualOilvolume3()
    {
        return actualOilvolume3;
    }
    public void setOilModel1(String OilModel1)
    {
        this.OilModel1 = OilModel1;
    }
    public String getOilModel1()
    {
        return OilModel1;
    }
    public void setOilModel2(String OilModel2)
    {
        this.OilModel2 = OilModel2;
    }
    public String getOilModel2()
    {
        return OilModel2;
    }
    public void setOilModel3(String OilModel3)
    {
        this.OilModel3 = OilModel3;
    }
    public String getOilModel3()
    {
        return OilModel3;
    }
    public void setSetOilvolume1(String setOilvolume1)
    {
        this.setOilvolume1 = setOilvolume1;
    }
    public String getSetOilvolume1()
    {
        return setOilvolume1;
    }
    public void setSetOilvolume2(String setOilvolume2)
    {
        this.setOilvolume2 = setOilvolume2;
    }
    public String getSetOilvolume2()
    {
        return setOilvolume2;
    }
    public void setSetOilvolume3(String setOilvolume3)
    {
        this.setOilvolume3 = setOilvolume3;
    }
    public String getSetOilvolume3()
    {
        return setOilvolume3;
    }
    public void setStatus1(String Status1)
    {
        this.Status1 = Status1;
    }
    public String getStatus1()
    {
        return Status1;
    }
    public void setStatus2(String Status2)
    {
        this.Status2 = Status2;
    }
    public String getStatus2()
    {
        return Status2;
    }
    public void setStatus3(String Status3)
    {
        this.Status3 = Status3;
    }
    public String getStatus3()
    {
        return Status3;
    }
    public void setTime1(String Time1)
    {
        this.Time1 = Time1;
    }
    public String getTime1()
    {
        return Time1;
    }
    public void setTime2(String Time2)
    {
        this.Time2 = Time2;
    }
    public String getTime2()
    {
        return Time2;
    }
    public void setTime3(String Time3)
    {
        this.Time3 = Time3;
    }
    public String getTime3()
    {
        return Time3;
    }
    public void setCollectTime(Date collectTime)
    {
        this.collectTime = collectTime;
    }
    public Date getCollectTime()
    {
        return collectTime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sfcCode", getSfcCode())
            .append("locationCode", getLocationCode())
            .append("describe", getDescribe())
            .append("setFuelVolume", getSetFuelVolume())
            .append("actualFuelConsumption", getActualFuelConsumption())
            .append("refuelingTime", getRefuelingTime())
            .append("result", getResult())
            .append("actualOilvolume1", getActualOilvolume1())
            .append("actualOilvolume2", getActualOilvolume2())
            .append("actualOilvolume3", getActualOilvolume3())
            .append("OilModel1", getOilModel1())
            .append("OilModel2", getOilModel2())
            .append("OilModel3", getOilModel3())
            .append("setOilvolume1", getSetOilvolume1())
            .append("setOilvolume2", getSetOilvolume2())
            .append("setOilvolume3", getSetOilvolume3())
            .append("Status1", getStatus1())
            .append("Status2", getStatus2())
            .append("Status3", getStatus3())
            .append("Time1", getTime1())
            .append("Time2", getTime2())
            .append("Time3", getTime3())
            .append("collectTime", getCollectTime())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/mapper/DaOilFillingMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.oilFilling.mapper;
import com.jcdm.main.da.oilFilling.domain.DaOilFilling;
import java.util.List;
/**
 * æœºæ²¹åŠ æ³¨Mapper接口
 *
 * @author Yi
 * @date 2025-05-07
 */
public interface DaOilFillingMapper
{
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨
     *
     * @param id æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return æœºæ²¹åŠ æ³¨
     */
    public DaOilFilling selectDaOilFillingById(Long id);
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨åˆ—è¡¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return æœºæ²¹åŠ æ³¨é›†åˆ
     */
    public List<DaOilFilling> selectDaOilFillingList(DaOilFilling daOilFilling);
    /**
     * æ–°å¢žæœºæ²¹åŠ æ³¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return ç»“æžœ
     */
    public int insertDaOilFilling(DaOilFilling daOilFilling);
    /**
     * ä¿®æ”¹æœºæ²¹åŠ æ³¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return ç»“æžœ
     */
    public int updateDaOilFilling(DaOilFilling daOilFilling);
    /**
     * åˆ é™¤æœºæ²¹åŠ æ³¨
     *
     * @param id æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteDaOilFillingById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤æœºæ²¹åŠ æ³¨
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteDaOilFillingByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/service/IDaOilFillingService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.oilFilling.service;
import com.jcdm.main.da.oilFilling.domain.DaOilFilling;
import java.util.List;
/**
 * æœºæ²¹åŠ æ³¨Service接口
 *
 * @author Yi
 * @date 2025-05-07
 */
public interface IDaOilFillingService
{
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨
     *
     * @param id æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return æœºæ²¹åŠ æ³¨
     */
    public DaOilFilling selectDaOilFillingById(Long id);
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨åˆ—è¡¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return æœºæ²¹åŠ æ³¨é›†åˆ
     */
    public List<DaOilFilling> selectDaOilFillingList(DaOilFilling daOilFilling);
    /**
     * æ–°å¢žæœºæ²¹åŠ æ³¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return ç»“æžœ
     */
    public int insertDaOilFilling(DaOilFilling daOilFilling);
    /**
     * ä¿®æ”¹æœºæ²¹åŠ æ³¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return ç»“æžœ
     */
    public int updateDaOilFilling(DaOilFilling daOilFilling);
    /**
     * æ‰¹é‡åˆ é™¤æœºæ²¹åŠ æ³¨
     *
     * @param ids éœ€è¦åˆ é™¤çš„æœºæ²¹åŠ æ³¨ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteDaOilFillingByIds(Long[] ids);
    /**
     * åˆ é™¤æœºæ²¹åŠ æ³¨ä¿¡æ¯
     *
     * @param id æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteDaOilFillingById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/da/oilFilling/service/impl/DaOilFillingServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.jcdm.main.da.oilFilling.service.impl;
import java.util.List;
import com.jcdm.main.da.oilFilling.domain.DaOilFilling;
import com.jcdm.main.da.oilFilling.mapper.DaOilFillingMapper;
import com.jcdm.main.da.oilFilling.service.IDaOilFillingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * æœºæ²¹åŠ æ³¨Service业务层处理
 *
 * @author Yi
 * @date 2025-05-07
 */
@Service
public class DaOilFillingServiceImpl implements IDaOilFillingService
{
    @Autowired
    private DaOilFillingMapper daOilFillingMapper;
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨
     *
     * @param id æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return æœºæ²¹åŠ æ³¨
     */
    @Override
    public DaOilFilling selectDaOilFillingById(Long id)
    {
        return daOilFillingMapper.selectDaOilFillingById(id);
    }
    /**
     * æŸ¥è¯¢æœºæ²¹åŠ æ³¨åˆ—è¡¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return æœºæ²¹åŠ æ³¨
     */
    @Override
    public List<DaOilFilling> selectDaOilFillingList(DaOilFilling daOilFilling)
    {
        return daOilFillingMapper.selectDaOilFillingList(daOilFilling);
    }
    /**
     * æ–°å¢žæœºæ²¹åŠ æ³¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return ç»“æžœ
     */
    @Override
    public int insertDaOilFilling(DaOilFilling daOilFilling)
    {
        return daOilFillingMapper.insertDaOilFilling(daOilFilling);
    }
    /**
     * ä¿®æ”¹æœºæ²¹åŠ æ³¨
     *
     * @param daOilFilling æœºæ²¹åŠ æ³¨
     * @return ç»“æžœ
     */
    @Override
    public int updateDaOilFilling(DaOilFilling daOilFilling)
    {
        return daOilFillingMapper.updateDaOilFilling(daOilFilling);
    }
    /**
     * æ‰¹é‡åˆ é™¤æœºæ²¹åŠ æ³¨
     *
     * @param ids éœ€è¦åˆ é™¤çš„æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaOilFillingByIds(Long[] ids)
    {
        return daOilFillingMapper.deleteDaOilFillingByIds(ids);
    }
    /**
     * åˆ é™¤æœºæ²¹åŠ æ³¨ä¿¡æ¯
     *
     * @param id æœºæ²¹åŠ æ³¨ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaOilFillingById(Long id)
    {
        return daOilFillingMapper.deleteDaOilFillingById(id);
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/controller/DaTightenCollectionController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,467 @@
package com.jcdm.main.da.tightenCollection.controller;
import java.util.*;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.ObjectUtil;
import com.jcdm.main.da.cameraResults.domain.DaCameraResults;
import com.jcdm.main.da.cameraResults.service.IDaCameraResultsService;
import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
import com.jcdm.main.da.leakageDetection.domain.DaLeakageDetection;
import com.jcdm.main.da.leakageDetection.service.IDaLeakageDetectionService;
import com.jcdm.main.da.oilFilling.domain.DaOilFilling;
import com.jcdm.main.da.oilFilling.service.IDaOilFillingService;
import com.jcdm.main.da.tightenCollection.domain.DaTightenCollection;
import com.jcdm.main.da.tightenCollection.service.IDaTightenCollectionService;
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.jcdm.common.annotation.Log;
import com.jcdm.common.core.controller.BaseController;
import com.jcdm.common.core.domain.AjaxResult;
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * æ‹§ç´§é‡‡é›†Controller
 *
 * @author Yi
 * @date 2025-05-06
 */
@RestController
    @RequestMapping("/da/tightenCollection")
public class DaTightenCollectionController extends BaseController
{
    @Autowired
    private IDaTightenCollectionService daTightenCollectionService;
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('da:tightenCollection:list')")
    @GetMapping("/list")
    public TableDataInfo list(DaTightenCollection daTightenCollection)
    {
        startPage();
        List<DaTightenCollection> list = daTightenCollectionService.selectDaTightenCollectionList(daTightenCollection);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºæ‹§ç´§é‡‡é›†åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('da:tightenCollection:export')")
    @Log(title = "拧紧采集", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, DaTightenCollection daTightenCollection)
    {
        List<DaTightenCollection> list = daTightenCollectionService.selectDaTightenCollectionList(daTightenCollection);
        ExcelUtil<DaTightenCollection> util = new ExcelUtil<DaTightenCollection>(DaTightenCollection.class);
        util.exportExcel(response, list, "拧紧采集数据");
    }
    /**
     * èŽ·å–æ‹§ç´§é‡‡é›†è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('da:tightenCollection:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(daTightenCollectionService.selectDaTightenCollectionById(id));
    }
    /**
     * æ–°å¢žæ‹§ç´§é‡‡é›†
     */
    @PreAuthorize("@ss.hasPermi('da:tightenCollection:add')")
    @Log(title = "拧紧采集", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DaTightenCollection daTightenCollection)
    {
        return toAjax(daTightenCollectionService.insertDaTightenCollection(daTightenCollection));
    }
    /**
     * ä¿®æ”¹æ‹§ç´§é‡‡é›†
     */
    @PreAuthorize("@ss.hasPermi('da:tightenCollection:edit')")
    @Log(title = "拧紧采集", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DaTightenCollection daTightenCollection)
    {
        return toAjax(daTightenCollectionService.updateDaTightenCollection(daTightenCollection));
    }
    /**
     * åˆ é™¤æ‹§ç´§é‡‡é›†
     */
    @PreAuthorize("@ss.hasPermi('da:tightenCollection:remove')")
    @Log(title = "拧紧采集", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(daTightenCollectionService.deleteDaTightenCollectionByIds(ids));
    }
    @Autowired
    private IDaCollectionParamConfService collectionParamConfService;
    @PostMapping("/test")
    public AjaxResult test()
    {
        List<DaCollectionParamConf> list = new ArrayList<>();
        DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
        daCollectionParamConf.setGatherAddress("CFL4ZZ.OP240");
        daCollectionParamConf.setRemarks("1");
        list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        List readWriteEntityList = new ArrayList<>();
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("32");
        readWriteEntityList.add("23.4");
        readWriteEntityList.add("2");
        readWriteEntityList.add("78");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("11");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("40");
        readWriteEntityList.add("87.4");
        readWriteEntityList.add("1");
        readWriteEntityList.add("33");
        readWriteEntityList.add("11.4");
        readWriteEntityList.add("22");
        readWriteEntityList.add("0.0");
        readWriteEntityList.add("0.0");
        readWriteEntityList.add("0.0");
        LinkedHashMap<String, Map<String, Object>> groupMap = new LinkedHashMap<>();
        for (int i = 0; i < list.size(); i += 3) {
            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);
            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);
            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);
            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);
            }
        }
        List<DaTightenCollection> tightenList = new ArrayList<>();
        for (Map<String, Object> paramMap : groupMap.values()) {
            DaTightenCollection tighten = new DaTightenCollection();
            tighten.setSfcCode("1234");
            tighten.setLocationCode("OP070");
            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);
        }
        daTightenCollectionService.saveBeachDaTightenCollection(tightenList);
        return AjaxResult.success(tightenList);
    }
    @Autowired
    private IDaCameraResultsService cameraResultsService;
    @PostMapping("/testCameraResults")
    public AjaxResult testCameraResults()
    {
        List<DaCollectionParamConf> list = new ArrayList<>();
        DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
        daCollectionParamConf.setGatherAddress("CFL4ZZ.OP230");
        daCollectionParamConf.setRemarks("1");
        list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        List readWriteEntityList = new ArrayList<>();
        readWriteEntityList.add("1");
        readWriteEntityList.add("22");
        readWriteEntityList.add("333");
        readWriteEntityList.add("4444");
        readWriteEntityList.add("55555");
        DaCameraResults cameraResults = new DaCameraResults();
        cameraResults.setSfcCode("1234");
        cameraResults.setLocationCode("OP070");
        cameraResults.setCollectTime(new Date());
        for (int i = 0; i < list.size(); i++) {
            String paramCode = list.get(i).getParameterSetCode();
            String value = readWriteEntityList.get(i).toString();
            switch (paramCode) {
                case "ResultData0":
                    cameraResults.setResultData0(value);
                    break;
                case "ResultData1":
                    cameraResults.setResultData1(value);
                    break;
                case "ResultData2":
                    cameraResults.setResultData2(value);
                    break;
                case "ResultData3":
                    cameraResults.setResultData3(value);
                    break;
                case "ResultData4":
                    cameraResults.setResultData4(value);
                    break;
            }
        }
        cameraResultsService.insertDaCameraResults(cameraResults);
        return AjaxResult.success(cameraResults);
    }
    @Autowired
    private IDaLeakageDetectionService leakageDetectionService;
    //  å¤–漏检测测试
    @PostMapping("/testLeakageDetection")
    public AjaxResult testLeakageDetection()
    {
        List<DaCollectionParamConf> list = new ArrayList<>();
        DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
        daCollectionParamConf.setGatherAddress("CFL4ZZ.OP670");
        daCollectionParamConf.setRemarks("1");
        list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        List readWriteEntityList = new ArrayList<>();
        readWriteEntityList.add("1");
        readWriteEntityList.add("22");
        readWriteEntityList.add("333");
        readWriteEntityList.add("4444");
        readWriteEntityList.add("55555");
        readWriteEntityList.add("1");
        readWriteEntityList.add("22");
        readWriteEntityList.add("333");
        readWriteEntityList.add("4444");
        readWriteEntityList.add("55555");
        readWriteEntityList.add("89");
        readWriteEntityList.add("23");
        DaLeakageDetection leakageDetection = new DaLeakageDetection();
        leakageDetection.setSfcCode("1234");
        leakageDetection.setLocationCode("OP070");
        leakageDetection.setCollectTime(new Date());
        for (int i = 0; i < list.size(); i++) {
            String paramCode = list.get(i).getParameterSetCode();
            String value = readWriteEntityList.get(i).toString();
            switch (paramCode) {
                case "Leakrate1":
                    leakageDetection.setLeakrate1(value);
                    break;
                case "Leakrate2":
                    leakageDetection.setLeakrate2(value);
                    break;
                case "Leakrate3":
                    leakageDetection.setLeakrate3(value);
                    break;
                case "Leakrate4":
                    leakageDetection.setLeakrate4(value);
                    break;
                case "Press1":
                    leakageDetection.setPress1(value);
                    break;
                case "Press2":
                    leakageDetection.setPress2(value);
                    break;
                case "Press3":
                    leakageDetection.setPress3(value);
                    break;
                case "Press4":
                    leakageDetection.setPress4(value);
                    break;
                case "Status1":
                    leakageDetection.setStatus1(value);
                    break;
                case "Status2":
                    leakageDetection.setStatus2(value);
                    break;
                case "Status3":
                    leakageDetection.setStatus3(value);
                    break;
                case "Status4":
                    leakageDetection.setStatus4(value);
                    break;
            }
        }
        leakageDetectionService.insertDaLeakageDetection(leakageDetection);
        return AjaxResult.success(leakageDetection);
    }
    @Autowired
    private IDaOilFillingService oilFillingService;
    //  æœºæ²¹åŠ æ³¨
    @PostMapping("/testOilFilling")
    public AjaxResult testOilFilling()
    {
        List<DaCollectionParamConf> list = new ArrayList<>();
        DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
        daCollectionParamConf.setGatherAddress("CFL4ZZ.OP730");
        daCollectionParamConf.setRemarks("1");
        list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
        List readWriteEntityList = new ArrayList<>();
        readWriteEntityList.add("1");
        readWriteEntityList.add("22");
        readWriteEntityList.add("333");
        readWriteEntityList.add("4444");
        readWriteEntityList.add("55555");
        readWriteEntityList.add("1");
        readWriteEntityList.add("22");
        readWriteEntityList.add("333");
        readWriteEntityList.add("4444");
        readWriteEntityList.add("55555");
        readWriteEntityList.add("89");
        readWriteEntityList.add("23");
        readWriteEntityList.add("55555");
        readWriteEntityList.add("89");
        readWriteEntityList.add("23");
        DaOilFilling oilFilling = new DaOilFilling();
        oilFilling.setSfcCode("1234");
        oilFilling.setLocationCode("OP730");
        oilFilling.setCollectTime(new Date());
        for (int i = 0; i < list.size(); i++) {
            String paramCode = list.get(i).getParameterSetCode();
            String value = readWriteEntityList.get(i).toString();
            switch (paramCode) {
                case "Actual_OilVolume1":
                    oilFilling.setActualOilvolume1(value);
                    break;
                case "Actual_OilVolume2":
                    oilFilling.setActualOilvolume2(value);
                    break;
                case "Actual_OilVolume3":
                    oilFilling.setActualOilvolume3(value);
                    break;
                case "OilModel1":
                    oilFilling.setOilModel1(value);
                    break;
                case "OilModel2":
                    oilFilling.setOilModel2(value);
                    break;
                case "OilModel3":
                    oilFilling.setOilModel3(value);
                    break;
                case "Set_OilVolume1":
                    oilFilling.setSetOilvolume1(value);
                    break;
                case "Set_OilVolume2":
                    oilFilling.setSetOilvolume2(value);
                    break;
                case "Set_OilVolume3":
                    oilFilling.setSetOilvolume3(value);
                    break;
                case "Status1":
                    oilFilling.setStatus1(value);
                    break;
                case "Status2":
                    oilFilling.setStatus2(value);
                    break;
                case "Status3":
                    oilFilling.setStatus3(value);
                    break;
                case "Time1":
                    oilFilling.setTime1(value);
                    break;
                case "Time2":
                    oilFilling.setTime2(value);
                    break;
                case "Time3":
                    oilFilling.setTime3(value);
                    break;
            }
        }
        oilFillingService.insertDaOilFilling(oilFilling);
        return AjaxResult.success(oilFilling);
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/domain/DaTightenCollection.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
package com.jcdm.main.da.tightenCollection.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
import java.util.Date;
/**
 * æ‹§ç´§é‡‡é›†å¯¹è±¡ da_tighten_collection
 *
 * @author Yi
 * @date 2025-05-06
 */
public class DaTightenCollection
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** æ€»æˆåºåˆ—号 */
    @Excel(name = "总成序列号")
    private String sfcCode;
    /** å·¥ä½ç¼–码 */
    @Excel(name = "工位编码")
    private String locationCode;
    /** å‚数集编码 */
    @Excel(name = "参数集编码")
    private String paramSetCode;
    /** å‚数集名称 */
    @Excel(name = "参数集名称")
    private String paramSetName;
    /** æ‰­çŸ©å€¼ */
    @Excel(name = "扭矩值")
    private String torque;
    /** æ‰­çŸ©çŠ¶æ€ */
    @Excel(name = "扭矩状态")
    private String torqueStatus;
    /** è§’度值 */
    @Excel(name = "角度值")
    private String angle;
    /** è§’度状态 */
    @Excel(name = "角度状态")
    private String angleStatus;
    /** é‡‡é›†æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date collectTime;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setSfcCode(String sfcCode)
    {
        this.sfcCode = sfcCode;
    }
    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();
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/mapper/DaTightenCollectionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.jcdm.main.da.tightenCollection.mapper;
import com.jcdm.main.da.tightenCollection.domain.DaTightenCollection;
import java.util.List;
/**
 * æ‹§ç´§é‡‡é›†Mapper接口
 *
 * @author Yi
 * @date 2025-05-06
 */
public interface DaTightenCollectionMapper
{
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†
     *
     * @param id æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return æ‹§ç´§é‡‡é›†
     */
    public DaTightenCollection selectDaTightenCollectionById(Long id);
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return æ‹§ç´§é‡‡é›†é›†åˆ
     */
    public List<DaTightenCollection> selectDaTightenCollectionList(DaTightenCollection daTightenCollection);
    /**
     * æ–°å¢žæ‹§ç´§é‡‡é›†
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return ç»“æžœ
     */
    public int insertDaTightenCollection(DaTightenCollection daTightenCollection);
    /**
     * ä¿®æ”¹æ‹§ç´§é‡‡é›†
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return ç»“æžœ
     */
    public int updateDaTightenCollection(DaTightenCollection daTightenCollection);
    /**
     * åˆ é™¤æ‹§ç´§é‡‡é›†
     *
     * @param id æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteDaTightenCollectionById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤æ‹§ç´§é‡‡é›†
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteDaTightenCollectionByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/service/IDaTightenCollectionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.jcdm.main.da.tightenCollection.service;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.tightenCollection.domain.DaTightenCollection;
import java.util.List;
/**
 * æ‹§ç´§é‡‡é›†Service接口
 *
 * @author Yi
 * @date 2025-05-06
 */
public interface IDaTightenCollectionService
{
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†
     *
     * @param id æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return æ‹§ç´§é‡‡é›†
     */
    public DaTightenCollection selectDaTightenCollectionById(Long id);
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return æ‹§ç´§é‡‡é›†é›†åˆ
     */
    public List<DaTightenCollection> selectDaTightenCollectionList(DaTightenCollection daTightenCollection);
    /**
     * æ–°å¢žæ‹§ç´§é‡‡é›†
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return ç»“æžœ
     */
    public int insertDaTightenCollection(DaTightenCollection daTightenCollection);
    /**
     * ä¿®æ”¹æ‹§ç´§é‡‡é›†
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return ç»“æžœ
     */
    public int updateDaTightenCollection(DaTightenCollection daTightenCollection);
    /**
     * æ‰¹é‡åˆ é™¤æ‹§ç´§é‡‡é›†
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ‹§ç´§é‡‡é›†ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteDaTightenCollectionByIds(Long[] ids);
    /**
     * åˆ é™¤æ‹§ç´§é‡‡é›†ä¿¡æ¯
     *
     * @param id æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteDaTightenCollectionById(Long id);
    void saveBeachDaTightenCollection(List<DaTightenCollection> list);
}
jcdm-main/src/main/java/com/jcdm/main/da/tightenCollection/service/impl/DaTightenCollectionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
package com.jcdm.main.da.tightenCollection.service.impl;
import java.util.List;
import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
import com.jcdm.main.da.tightenCollection.domain.DaTightenCollection;
import com.jcdm.main.da.tightenCollection.mapper.DaTightenCollectionMapper;
import com.jcdm.main.da.tightenCollection.service.IDaTightenCollectionService;
import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
/**
 * æ‹§ç´§é‡‡é›†Service业务层处理
 *
 * @author Yi
 * @date 2025-05-06
 */
@Service
public class DaTightenCollectionServiceImpl implements IDaTightenCollectionService
{
    private static final Logger logger = LoggerFactory.getLogger(DaTightenCollectionServiceImpl.class);
    @Resource
    private SqlSessionFactory sqlSessionFactory;
    @Autowired
    private DaTightenCollectionMapper daTightenCollectionMapper;
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†
     *
     * @param id æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return æ‹§ç´§é‡‡é›†
     */
    @Override
    public DaTightenCollection selectDaTightenCollectionById(Long id)
    {
        return daTightenCollectionMapper.selectDaTightenCollectionById(id);
    }
    /**
     * æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return æ‹§ç´§é‡‡é›†
     */
    @Override
    public List<DaTightenCollection> selectDaTightenCollectionList(DaTightenCollection daTightenCollection)
    {
        return daTightenCollectionMapper.selectDaTightenCollectionList(daTightenCollection);
    }
    /**
     * æ–°å¢žæ‹§ç´§é‡‡é›†
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return ç»“æžœ
     */
    @Override
    public int insertDaTightenCollection(DaTightenCollection daTightenCollection)
    {
        return daTightenCollectionMapper.insertDaTightenCollection(daTightenCollection);
    }
    /**
     * ä¿®æ”¹æ‹§ç´§é‡‡é›†
     *
     * @param daTightenCollection æ‹§ç´§é‡‡é›†
     * @return ç»“æžœ
     */
    @Override
    public int updateDaTightenCollection(DaTightenCollection daTightenCollection)
    {
        return daTightenCollectionMapper.updateDaTightenCollection(daTightenCollection);
    }
    /**
     * æ‰¹é‡åˆ é™¤æ‹§ç´§é‡‡é›†
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaTightenCollectionByIds(Long[] ids)
    {
        return daTightenCollectionMapper.deleteDaTightenCollectionByIds(ids);
    }
    /**
     * åˆ é™¤æ‹§ç´§é‡‡é›†ä¿¡æ¯
     *
     * @param id æ‹§ç´§é‡‡é›†ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaTightenCollectionById(Long id)
    {
        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();
        }
    }
}
jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
@@ -3,12 +3,16 @@
import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
import com.jcdm.main.bs.technologyRouteChild.service.IBsTechnologyRouteChildInfoService;
import com.jcdm.main.da.cameraResults.service.IDaCameraResultsService;
import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
import com.jcdm.main.da.leakageDetection.service.IDaLeakageDetectionService;
import com.jcdm.main.da.oilFilling.service.IDaOilFillingService;
import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig;
import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
import com.jcdm.main.da.passingStationCollection.service.ProductNewPassStationService;
import com.jcdm.main.da.passingStationCollection.service.impl.DaPassingStationCollectionServiceImpl;
import com.jcdm.main.da.tightenCollection.service.IDaTightenCollectionService;
import com.jcdm.main.plcserver.sub.OPCUaSubscription;
import com.jcdm.main.rm.repairRecord.service.IRmRepairRecordService;
import com.kangaroohy.milo.service.MiloService;
@@ -51,6 +55,18 @@
    @Resource
    private ProductNewPassStationService productNewPassStationService;
    @Resource
    private IDaCameraResultsService daCameraResultsService;
    @Resource
    private IDaLeakageDetectionService daLeakageDetectionService;
    @Resource
    private IDaOilFillingService daOilFillingService;
    @Resource
    private IDaTightenCollectionService daTightenCollectionService;
    @Override
    public void run(ApplicationArguments args) throws Exception {
@@ -65,7 +81,12 @@
                lists,
                rmRepairRecordService,
                bsTechnologyRouteChildInfoService,
                productNewPassStationService);
                productNewPassStationService,
                daCameraResultsService,
                daLeakageDetectionService,
                daOilFillingService,
                daTightenCollectionService
        );
        miloService.subscriptionFromOpcUa(collect,100,opcUaSubscription);
    }
jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java
@@ -1,6 +1,8 @@
package com.jcdm.main.plcserver.conf;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
/**
 * @ClassName: OPCElement
@@ -78,4 +80,39 @@
    public static final String OP001_SAVE_REQUEST = "CFL4HX.OP001.SaveRequest";
    public static final String OP002_SAVE_REQUEST = "CFL4HX.OP002.SaveRequest";
    public static final List CAMERA_RESULTS_LIST = Arrays.asList("OP230","OP490"); //相机结果
    public static final List LEAKAGEDETECTION_LIST = Arrays.asList("OP660","OP670"); //外漏检测
    public static final List OIL_FILLING_LIST = Arrays.asList("OP730"); //机油加注数据
    public static final List TIGHTENCOLLECTION_LIST = Arrays.asList(
            "HOP110",
            "OP060",
            "OP070",
            "OP080",
            "OP090",
            "OP110",
            "OP120",
            "OP140",
            "OP160",
            "OP170",
            "OP180",
            "OP240",
            "OP270",
            "OP280",
            "OP330",
            "OP350",
            "OP390",
            "OP430",
            "OP450",
            "OP460",
            "OP520",
            "OP590",
            "OP600",
            "OP620",
            "OP710",
            "OP760",
            "OP770"
    ); //拧紧数据
}
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -8,8 +8,14 @@
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
import com.jcdm.main.bs.technologyRouteChild.service.IBsTechnologyRouteChildInfoService;
import com.jcdm.main.da.cameraResults.domain.DaCameraResults;
import com.jcdm.main.da.cameraResults.service.IDaCameraResultsService;
import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
import com.jcdm.main.da.leakageDetection.domain.DaLeakageDetection;
import com.jcdm.main.da.leakageDetection.service.IDaLeakageDetectionService;
import com.jcdm.main.da.oilFilling.domain.DaOilFilling;
import com.jcdm.main.da.oilFilling.service.IDaOilFillingService;
import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
@@ -17,6 +23,8 @@
import com.jcdm.main.da.passingStationCollection.domain.ProductNewPassStation;
import com.jcdm.main.da.passingStationCollection.service.ProductNewPassStationService;
import com.jcdm.main.da.passingStationCollection.service.impl.DaPassingStationCollectionServiceImpl;
import com.jcdm.main.da.tightenCollection.domain.DaTightenCollection;
import com.jcdm.main.da.tightenCollection.service.IDaTightenCollectionService;
import com.jcdm.main.plcserver.conf.OPCElement;
import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord;
import com.jcdm.main.rm.repairRecord.service.IRmRepairRecordService;
@@ -29,6 +37,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.sql.Time;
import java.time.LocalDateTime;
@@ -63,6 +72,14 @@
    public HashMap<String,List<DaCollectionParamConf>> allCollectParamList = new HashMap<>();
    private IDaCameraResultsService daCameraResultsService;
    private IDaLeakageDetectionService daLeakageDetectionService;
    private IDaOilFillingService daOilFillingService;
    private IDaTightenCollectionService daTightenCollectionService;
    public OPCUaSubscription(MiloService miloService,
                             IDaCollectionParamConfService collectionParamConfService,
                             IDaParamCollectionService daParamCollectionService,
@@ -71,7 +88,11 @@
                             List<DaOpcuaConfig> lists,
                             IRmRepairRecordService rmRepairRecordService,
                             IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService,
                             ProductNewPassStationService productNewPassStationService) {
                             ProductNewPassStationService productNewPassStationService,
                             IDaCameraResultsService daCameraResultsService,
                             IDaLeakageDetectionService daLeakageDetectionService,
                             IDaOilFillingService daOilFillingService,
                             IDaTightenCollectionService daTightenCollectionService) {
        OPCUaSubscription.miloService = miloService;
        this.collectionParamConfService = collectionParamConfService;
        this.daParamCollectionService = daParamCollectionService;
@@ -81,6 +102,10 @@
        this.rmRepairRecordService = rmRepairRecordService;
        this.bsTechnologyRouteChildInfoService = bsTechnologyRouteChildInfoService;
        this.productNewPassStationService = productNewPassStationService;
        this.daCameraResultsService = daCameraResultsService;
        this.daLeakageDetectionService = daLeakageDetectionService;
        this.daOilFillingService = daOilFillingService;
        this.daTightenCollectionService = daTightenCollectionService;
    }
@@ -629,32 +654,286 @@
                BsOrderScheduling bsOrderScheduling=bsOrderSchedulingService.selectBsOrderSchedulingSNCode(SNCode);
                List<DaParamCollection> daParamCollectionlist = new ArrayList<>();
                if (CollUtil.isNotEmpty(nodeIdList)){
                    for(int i=0;i<nodeIdList.size();i++){
                        if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue()) && !readWriteEntityList.get(i).getValue().toString().equals("0.0")){
                            DaParamCollection ParamCollection = new DaParamCollection();
                            ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]);
                            ParamCollection.setLocationCode(parts[1]);
                            if (readWriteEntityList.get(i) == null){
                                ParamCollection.setParamValue("0");
                            }else {
                                ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString());
//                if (CollUtil.isNotEmpty(nodeIdList)){
//                    for(int i=0;i<nodeIdList.size();i++){
//                        if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue()) && !readWriteEntityList.get(i).getValue().toString().equals("0.0")){
//                            DaParamCollection ParamCollection = new DaParamCollection();
//                            ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]);
//                            ParamCollection.setLocationCode(parts[1]);
//                            if (readWriteEntityList.get(i) == null){
//                                ParamCollection.setParamValue("0");
//                            }else {
//                                ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString());
//                            }
//                            ParamCollection.setSfcCode(SNCode);
//                            ParamCollection.setParamName(list.get(i).getParameterSetName());
//                            ParamCollection.setParamUpper(list.get(i).getParamUpper());
//                            ParamCollection.setParamLower(list.get(i).getParamLower());
//                            ParamCollection.setUnit(list.get(i).getCollectParameterUnit());
//                            ParamCollection.setState("合格");
//                            ParamCollection.setType(list.get(i).getCollectParameterType());
//                            ParamCollection.setCollectionTime(new Date());
//                            ParamCollection.setWorkOrderNo(bsOrderScheduling.getOrderNo());
//                            daParamCollectionlist.add(ParamCollection);
//                        }
//                    }
//                    daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
//                    logger.info("{}发动机({})采集数据保存完成",SNCode,Node);
//                }
            //新加的 å¼€å§‹
            String locationCode = parts[1];
            if(OPCElement.CAMERA_RESULTS_LIST.contains(locationCode)){
                //存相机数据
                try {
                    if (CollUtil.isNotEmpty(nodeIdList)){
                        for(int i=0;i<nodeIdList.size();i++){
                            try {
                                if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue()) && !readWriteEntityList.get(i).getValue().toString().equals("0.0")){
                                    DaCameraResults cameraResults = new DaCameraResults();
                                    cameraResults.setSfcCode(SNCode);
                                    cameraResults.setLocationCode(locationCode);
                                    cameraResults.setCollectTime(new Date());
                                    if (readWriteEntityList.get(i) == null){
                                        cameraResults.setResultData0("0");
                                    }else {
                                        cameraResults.setResultData0(readWriteEntityList.get(i).getValue().toString());
                                    }
                                    daCameraResultsService.insertDaCameraResults(cameraResults);
                                    logger.info("{}发动机({})采集相机数据保存完成",SNCode,Node);
                                }
                            } catch (Exception e) {
                                logger.error("{}发动机({})采集相机数据第{}条保存失败: {}", SNCode, Node, i, e.getMessage());
                            }
                            ParamCollection.setSfcCode(SNCode);
                            ParamCollection.setParamName(list.get(i).getParameterSetName());
                            ParamCollection.setParamUpper(list.get(i).getParamUpper());
                            ParamCollection.setParamLower(list.get(i).getParamLower());
                            ParamCollection.setUnit(list.get(i).getCollectParameterUnit());
                            ParamCollection.setState("合格");
                            ParamCollection.setType(list.get(i).getCollectParameterType());
                            ParamCollection.setCollectionTime(new Date());
                            ParamCollection.setWorkOrderNo(bsOrderScheduling.getOrderNo());
                            daParamCollectionlist.add(ParamCollection);
                        }
                    }
                    daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
                    logger.info("{}发动机({})采集数据保存完成",SNCode,Node);
                } catch (Exception e) {
                    logger.error("{}发动机({})采集相机数据处理异常: {}", SNCode, Node, e.getMessage());
                }
            }
            if(OPCElement.LEAKAGEDETECTION_LIST.contains(locationCode)){
                //存外漏检测数据
                try {
                    if (CollUtil.isNotEmpty(nodeIdList)){
                        DaLeakageDetection leakageDetection = new DaLeakageDetection();
                        for(int i=0;i<nodeIdList.size();i++){
                            try {
                                if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue()) && !readWriteEntityList.get(i).getValue().toString().equals("0.0")){
                                    leakageDetection.setSfcCode(SNCode);
                                    leakageDetection.setLocationCode(locationCode);
                                    leakageDetection.setCollectTime(new Date());
                                    String paramCode = list.get(i).getParameterSetCode();
                                    String value = "0";
                                    if (readWriteEntityList.get(i) != null){
                                        value = readWriteEntityList.get(i).getValue().toString();
                                    }
                                    switch (paramCode) {
                                        case "Leakrate1":
                                            leakageDetection.setLeakrate1(value);
                                            break;
                                        case "Leakrate2":
                                            leakageDetection.setLeakrate2(value);
                                            break;
                                        case "Leakrate3":
                                            leakageDetection.setLeakrate3(value);
                                            break;
                                        case "Leakrate4":
                                            leakageDetection.setLeakrate4(value);
                                            break;
                                        case "Press1":
                                            leakageDetection.setPress1(value);
                                            break;
                                        case "Press2":
                                            leakageDetection.setPress2(value);
                                            break;
                                        case "Press3":
                                            leakageDetection.setPress3(value);
                                            break;
                                        case "Press4":
                                            leakageDetection.setPress4(value);
                                            break;
                                        case "Status1":
                                            leakageDetection.setStatus1(value);
                                            break;
                                        case "Status2":
                                            leakageDetection.setStatus2(value);
                                            break;
                                        case "Status3":
                                            leakageDetection.setStatus3(value);
                                            break;
                                        case "Status4":
                                            leakageDetection.setStatus4(value);
                                            break;
                                    }
                                }
                            } catch (Exception e) {
                                logger.error("{}发动机({})外漏检测数据第{}条处理失败: {}", SNCode, Node, i, e.getMessage());
                            }
                        }
                        try {
                            daLeakageDetectionService.insertDaLeakageDetection(leakageDetection);
                            logger.info("{}发动机({})存外漏检测数据保存完成",SNCode,Node);
                        } catch (Exception e) {
                            logger.error("{}发动机({})外漏检测数据保存失败: {}", SNCode, Node, e.getMessage());
                        }
                    }
                } catch (Exception e) {
                    logger.error("{}发动机({})外漏检测数据处理异常: {}", SNCode, Node, e.getMessage());
                }
            }
            if(OPCElement.OIL_FILLING_LIST.contains(locationCode)){
                //存机油加注数据
                try {
                    if (CollUtil.isNotEmpty(nodeIdList)){
                        DaOilFilling oilFilling = new DaOilFilling();
                        for(int i=0;i<nodeIdList.size();i++){
                            try {
                                if(ObjectUtil.isNotEmpty(readWriteEntityList.get(i).getValue()) && !readWriteEntityList.get(i).getValue().toString().equals("0.0")){
                                    oilFilling.setSfcCode(SNCode);
                                    oilFilling.setLocationCode(locationCode);
                                    oilFilling.setCollectTime(new Date());
                                    String paramCode = list.get(i).getParameterSetCode();
                                    String value = "0";
                                    if (readWriteEntityList.get(i).getValue() != null){
                                        value = readWriteEntityList.get(i).getValue().toString();
                                    }
                                    switch (paramCode) {
                                        case "Actual_OilVolume1":
                                            oilFilling.setActualOilvolume1(value);
                                            break;
                                        case "Actual_OilVolume2":
                                            oilFilling.setActualOilvolume2(value);
                                            break;
                                        case "Actual_OilVolume3":
                                            oilFilling.setActualOilvolume3(value);
                                            break;
                                        case "OilModel1":
                                            oilFilling.setOilModel1(value);
                                            break;
                                        case "OilModel2":
                                            oilFilling.setOilModel2(value);
                                            break;
                                        case "OilModel3":
                                            oilFilling.setOilModel3(value);
                                            break;
                                        case "Set_OilVolume1":
                                            oilFilling.setSetOilvolume1(value);
                                            break;
                                        case "Set_OilVolume2":
                                            oilFilling.setSetOilvolume2(value);
                                            break;
                                        case "Set_OilVolume3":
                                            oilFilling.setSetOilvolume3(value);
                                            break;
                                        case "Status1":
                                            oilFilling.setStatus1(value);
                                            break;
                                        case "Status2":
                                            oilFilling.setStatus2(value);
                                            break;
                                        case "Status3":
                                            oilFilling.setStatus3(value);
                                            break;
                                        case "Time1":
                                            oilFilling.setTime1(value);
                                            break;
                                        case "Time2":
                                            oilFilling.setTime2(value);
                                            break;
                                        case "Time3":
                                            oilFilling.setTime3(value);
                                            break;
                                    }
                                }
                            } catch (Exception e) {
                                logger.error("{}发动机({})机油加注数据第{}条处理失败: {}", SNCode, Node, i, e.getMessage());
                            }
                        }
                        try {
                            daOilFillingService.insertDaOilFilling(oilFilling);
                            logger.info("{}发动机({})存机油加注数据保存完成",SNCode,Node);
                        } catch (Exception e) {
                            logger.error("{}发动机({})机油加注数据保存失败: {}", SNCode, Node, e.getMessage());
                        }
                    }
                } catch (Exception e) {
                    logger.error("{}发动机({})机油加注数据处理异常: {}", SNCode, Node, e.getMessage());
                }
            }
            if(OPCElement.TIGHTENCOLLECTION_LIST.contains(locationCode)){
                //存拧紧数据
                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, Node, 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(locationCode);
                            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, Node, e.getMessage());
                        }
                    }
                    if(tightenList.size()>0){
                        try {
                            daTightenCollectionService.saveBeachDaTightenCollection(tightenList);
                            logger.info("{}发动机({})存拧紧数据保存完成",SNCode,Node);
                        } catch (Exception e) {
                            logger.error("{}发动机({})拧紧数据批量保存失败: {}", SNCode, Node, e.getMessage());
                        }
                    }
                } catch (Exception e) {
                    logger.error("{}发动机({})拧紧数据处理异常: {}", SNCode, Node, e.getMessage());
                }
            }
            //新加的 ç»“束
            Object ProductStatus = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".ProductStatus").getValue();
            String str1="合格" ;
jcdm-main/src/main/resources/mapper/da/cameraResults/DaCameraResultsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
<?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.jcdm.main.da.cameraResults.mapper.DaCameraResultsMapper">
    <resultMap type="DaCameraResults" id="DaCameraResultsResult">
        <result property="id"    column="id"    />
        <result property="sfcCode"    column="sfc_code"    />
        <result property="locationCode"    column="location_code"    />
        <result property="describe"    column="describe"    />
        <result property="ResultData0"    column="ResultData0"    />
        <result property="ResultData1"    column="ResultData1"    />
        <result property="ResultData2"    column="ResultData2"    />
        <result property="ResultData3"    column="ResultData3"    />
        <result property="ResultData4"    column="ResultData4"    />
        <result property="collectTime"    column="collect_time"    />
    </resultMap>
    <sql id="selectDaCameraResultsVo">
        select id, sfc_code, location_code, describe, ResultData0, ResultData1, ResultData2, ResultData3, ResultData4, collect_time from da_camera_results
    </sql>
    <select id="selectDaCameraResultsList" parameterType="DaCameraResults" resultMap="DaCameraResultsResult">
        <include refid="selectDaCameraResultsVo"/>
        <where>
            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
            <if test="locationCode != null  and locationCode != ''"> and location_code = #{locationCode}</if>
        </where>
    </select>
    <select id="selectDaCameraResultsById" parameterType="Long" resultMap="DaCameraResultsResult">
        <include refid="selectDaCameraResultsVo"/>
        where id = #{id}
    </select>
    <insert id="insertDaCameraResults" parameterType="DaCameraResults">
        insert into da_camera_results
        <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="describe != null">describe,</if>
            <if test="ResultData0 != null">ResultData0,</if>
            <if test="ResultData1 != null">ResultData1,</if>
            <if test="ResultData2 != null">ResultData2,</if>
            <if test="ResultData3 != null">ResultData3,</if>
            <if test="ResultData4 != null">ResultData4,</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="describe != null">#{describe},</if>
            <if test="ResultData0 != null">#{ResultData0},</if>
            <if test="ResultData1 != null">#{ResultData1},</if>
            <if test="ResultData2 != null">#{ResultData2},</if>
            <if test="ResultData3 != null">#{ResultData3},</if>
            <if test="ResultData4 != null">#{ResultData4},</if>
            <if test="collectTime != null">#{collectTime},</if>
         </trim>
    </insert>
    <update id="updateDaCameraResults" parameterType="DaCameraResults">
        update da_camera_results
        <trim prefix="SET" suffixOverrides=",">
            <if test="sfcCode != null">sfc_code = #{sfcCode},</if>
            <if test="locationCode != null">location_code = #{locationCode},</if>
            <if test="describe != null">describe = #{describe},</if>
            <if test="ResultData0 != null">ResultData0 = #{ResultData0},</if>
            <if test="ResultData1 != null">ResultData1 = #{ResultData1},</if>
            <if test="ResultData2 != null">ResultData2 = #{ResultData2},</if>
            <if test="ResultData3 != null">ResultData3 = #{ResultData3},</if>
            <if test="ResultData4 != null">ResultData4 = #{ResultData4},</if>
            <if test="collectTime != null">collect_time = #{collectTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteDaCameraResultsById" parameterType="Long">
        delete from da_camera_results where id = #{id}
    </delete>
    <delete id="deleteDaCameraResultsByIds" parameterType="String">
        delete from da_camera_results where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-main/src/main/resources/mapper/da/leakageDetection/DaLeakageDetectionMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,142 @@
<?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.jcdm.main.da.leakageDetection.mapper.DaLeakageDetectionMapper">
    <resultMap type="DaLeakageDetection" id="DaLeakageDetectionResult">
        <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="describe"    column="describe"    />
        <result property="pressureValue"    column="pressure_value"    />
        <result property="leakageRate"    column="leakage_rate"    />
        <result property="result"    column="result"    />
        <result property="Leakrate1"    column="Leakrate1"    />
        <result property="Leakrate2"    column="Leakrate2"    />
        <result property="Leakrate3"    column="Leakrate3"    />
        <result property="Leakrate4"    column="Leakrate4"    />
        <result property="Press1"    column="Press1"    />
        <result property="Press2"    column="Press2"    />
        <result property="Press3"    column="Press3"    />
        <result property="Press4"    column="Press4"    />
        <result property="Status1"    column="Status1"    />
        <result property="Status2"    column="Status2"    />
        <result property="Status3"    column="Status3"    />
        <result property="Status4"    column="Status4"    />
        <result property="collectTime"    column="collect_time"    />
    </resultMap>
    <sql id="selectDaLeakageDetectionVo">
        select id, sfc_code, location_code, param_set_code, param_set_name, describe, pressure_value, leakage_rate, result, Leakrate1, Leakrate2, Leakrate3, Leakrate4, Press1, Press2, Press3, Press4, Status1, Status2, Status3, Status4, collect_time from da_leakage_detection
    </sql>
    <select id="selectDaLeakageDetectionList" parameterType="DaLeakageDetection" resultMap="DaLeakageDetectionResult">
        <include refid="selectDaLeakageDetectionVo"/>
        <where>
            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
            <if test="locationCode != null  and locationCode != ''"> and location_code = #{locationCode}</if>
            <if test="paramSetCode != null  and paramSetCode != ''"> and param_set_code = #{paramSetCode}</if>
            <if test="paramSetName != null  and paramSetName != ''"> and param_set_name like concat('%', #{paramSetName}, '%')</if>
            <if test="result != null  and result != ''"> and result = #{result}</if>
        </where>
    </select>
    <select id="selectDaLeakageDetectionById" parameterType="Long" resultMap="DaLeakageDetectionResult">
        <include refid="selectDaLeakageDetectionVo"/>
        where id = #{id}
    </select>
    <insert id="insertDaLeakageDetection" parameterType="DaLeakageDetection">
        insert into da_leakage_detection
        <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="describe != null">describe,</if>
            <if test="pressureValue != null">pressure_value,</if>
            <if test="leakageRate != null">leakage_rate,</if>
            <if test="result != null">result,</if>
            <if test="Leakrate1 != null">Leakrate1,</if>
            <if test="Leakrate2 != null">Leakrate2,</if>
            <if test="Leakrate3 != null">Leakrate3,</if>
            <if test="Leakrate4 != null">Leakrate4,</if>
            <if test="Press1 != null">Press1,</if>
            <if test="Press2 != null">Press2,</if>
            <if test="Press3 != null">Press3,</if>
            <if test="Press4 != null">Press4,</if>
            <if test="Status1 != null">Status1,</if>
            <if test="Status2 != null">Status2,</if>
            <if test="Status3 != null">Status3,</if>
            <if test="Status4 != null">Status4,</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="describe != null">#{describe},</if>
            <if test="pressureValue != null">#{pressureValue},</if>
            <if test="leakageRate != null">#{leakageRate},</if>
            <if test="result != null">#{result},</if>
            <if test="Leakrate1 != null">#{Leakrate1},</if>
            <if test="Leakrate2 != null">#{Leakrate2},</if>
            <if test="Leakrate3 != null">#{Leakrate3},</if>
            <if test="Leakrate4 != null">#{Leakrate4},</if>
            <if test="Press1 != null">#{Press1},</if>
            <if test="Press2 != null">#{Press2},</if>
            <if test="Press3 != null">#{Press3},</if>
            <if test="Press4 != null">#{Press4},</if>
            <if test="Status1 != null">#{Status1},</if>
            <if test="Status2 != null">#{Status2},</if>
            <if test="Status3 != null">#{Status3},</if>
            <if test="Status4 != null">#{Status4},</if>
            <if test="collectTime != null">#{collectTime},</if>
         </trim>
    </insert>
    <update id="updateDaLeakageDetection" parameterType="DaLeakageDetection">
        update da_leakage_detection
        <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="describe != null">describe = #{describe},</if>
            <if test="pressureValue != null">pressure_value = #{pressureValue},</if>
            <if test="leakageRate != null">leakage_rate = #{leakageRate},</if>
            <if test="result != null">result = #{result},</if>
            <if test="Leakrate1 != null">Leakrate1 = #{Leakrate1},</if>
            <if test="Leakrate2 != null">Leakrate2 = #{Leakrate2},</if>
            <if test="Leakrate3 != null">Leakrate3 = #{Leakrate3},</if>
            <if test="Leakrate4 != null">Leakrate4 = #{Leakrate4},</if>
            <if test="Press1 != null">Press1 = #{Press1},</if>
            <if test="Press2 != null">Press2 = #{Press2},</if>
            <if test="Press3 != null">Press3 = #{Press3},</if>
            <if test="Press4 != null">Press4 = #{Press4},</if>
            <if test="Status1 != null">Status1 = #{Status1},</if>
            <if test="Status2 != null">Status2 = #{Status2},</if>
            <if test="Status3 != null">Status3 = #{Status3},</if>
            <if test="Status4 != null">Status4 = #{Status4},</if>
            <if test="collectTime != null">collect_time = #{collectTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteDaLeakageDetectionById" parameterType="Long">
        delete from da_leakage_detection where id = #{id}
    </delete>
    <delete id="deleteDaLeakageDetectionByIds" parameterType="String">
        delete from da_leakage_detection where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-main/src/main/resources/mapper/da/oilFilling/DaOilFillingMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
<?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.jcdm.main.da.oilFilling.mapper.DaOilFillingMapper">
    <resultMap type="DaOilFilling" id="DaOilFillingResult">
        <result property="id"    column="id"    />
        <result property="sfcCode"    column="sfc_code"    />
        <result property="locationCode"    column="location_code"    />
        <result property="describe"    column="describe"    />
        <result property="setFuelVolume"    column="set_fuel_volume"    />
        <result property="actualFuelConsumption"    column="actual_fuel_consumption"    />
        <result property="refuelingTime"    column="refueling_time"    />
        <result property="result"    column="result"    />
        <result property="actualOilvolume1"    column="Actual_OilVolume1"    />
        <result property="actualOilvolume2"    column="Actual_OilVolume2"    />
        <result property="actualOilvolume3"    column="Actual_OilVolume3"    />
        <result property="OilModel1"    column="OilModel1"    />
        <result property="OilModel2"    column="OilModel2"    />
        <result property="OilModel3"    column="OilModel3"    />
        <result property="setOilvolume1"    column="Set_OilVolume1"    />
        <result property="setOilvolume2"    column="Set_OilVolume2"    />
        <result property="setOilvolume3"    column="Set_OilVolume3"    />
        <result property="Status1"    column="Status1"    />
        <result property="Status2"    column="Status2"    />
        <result property="Status3"    column="Status3"    />
        <result property="Time1"    column="Time1"    />
        <result property="Time2"    column="Time2"    />
        <result property="Time3"    column="Time3"    />
        <result property="collectTime"    column="collect_time"    />
    </resultMap>
    <sql id="selectDaOilFillingVo">
        select id, sfc_code, location_code, set_fuel_volume, actual_fuel_consumption, refueling_time, Actual_OilVolume1, Actual_OilVolume2, Actual_OilVolume3, OilModel1, OilModel2, OilModel3, Set_OilVolume1, Set_OilVolume2, Set_OilVolume3, Status1, Status2, Status3, Time1, Time2, Time3, collect_time from da_oil_filling
    </sql>
    <select id="selectDaOilFillingList" parameterType="DaOilFilling" resultMap="DaOilFillingResult">
        <include refid="selectDaOilFillingVo"/>
        <where>
            <if test="sfcCode != null  and sfcCode != ''"> and sfc_code = #{sfcCode}</if>
            <if test="locationCode != null  and locationCode != ''"> and location_code = #{locationCode}</if>
        </where>
    </select>
    <select id="selectDaOilFillingById" parameterType="Long" resultMap="DaOilFillingResult">
        <include refid="selectDaOilFillingVo"/>
        where id = #{id}
    </select>
    <insert id="insertDaOilFilling" parameterType="DaOilFilling">
        insert into da_oil_filling
        <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="describe != null">describe,</if>
            <if test="setFuelVolume != null">set_fuel_volume,</if>
            <if test="actualFuelConsumption != null">actual_fuel_consumption,</if>
            <if test="refuelingTime != null">refueling_time,</if>
            <if test="result != null">result,</if>
            <if test="actualOilvolume1 != null">Actual_OilVolume1,</if>
            <if test="actualOilvolume2 != null">Actual_OilVolume2,</if>
            <if test="actualOilvolume3 != null">Actual_OilVolume3,</if>
            <if test="OilModel1 != null">OilModel1,</if>
            <if test="OilModel2 != null">OilModel2,</if>
            <if test="OilModel3 != null">OilModel3,</if>
            <if test="setOilvolume1 != null">Set_OilVolume1,</if>
            <if test="setOilvolume2 != null">Set_OilVolume2,</if>
            <if test="setOilvolume3 != null">Set_OilVolume3,</if>
            <if test="Status1 != null">Status1,</if>
            <if test="Status2 != null">Status2,</if>
            <if test="Status3 != null">Status3,</if>
            <if test="Time1 != null">Time1,</if>
            <if test="Time2 != null">Time2,</if>
            <if test="Time3 != null">Time3,</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="describe != null">#{describe},</if>
            <if test="setFuelVolume != null">#{setFuelVolume},</if>
            <if test="actualFuelConsumption != null">#{actualFuelConsumption},</if>
            <if test="refuelingTime != null">#{refuelingTime},</if>
            <if test="result != null">#{result},</if>
            <if test="actualOilvolume1 != null">#{actualOilvolume1},</if>
            <if test="actualOilvolume2 != null">#{actualOilvolume2},</if>
            <if test="actualOilvolume3 != null">#{actualOilvolume3},</if>
            <if test="OilModel1 != null">#{OilModel1},</if>
            <if test="OilModel2 != null">#{OilModel2},</if>
            <if test="OilModel3 != null">#{OilModel3},</if>
            <if test="setOilvolume1 != null">#{setOilvolume1},</if>
            <if test="setOilvolume2 != null">#{setOilvolume2},</if>
            <if test="setOilvolume3 != null">#{setOilvolume3},</if>
            <if test="Status1 != null">#{Status1},</if>
            <if test="Status2 != null">#{Status2},</if>
            <if test="Status3 != null">#{Status3},</if>
            <if test="Time1 != null">#{Time1},</if>
            <if test="Time2 != null">#{Time2},</if>
            <if test="Time3 != null">#{Time3},</if>
            <if test="collectTime != null">#{collectTime},</if>
         </trim>
    </insert>
    <update id="updateDaOilFilling" parameterType="DaOilFilling">
        update da_oil_filling
        <trim prefix="SET" suffixOverrides=",">
            <if test="sfcCode != null">sfc_code = #{sfcCode},</if>
            <if test="locationCode != null">location_code = #{locationCode},</if>
            <if test="describe != null">describe = #{describe},</if>
            <if test="setFuelVolume != null">set_fuel_volume = #{setFuelVolume},</if>
            <if test="actualFuelConsumption != null">actual_fuel_consumption = #{actualFuelConsumption},</if>
            <if test="refuelingTime != null">refueling_time = #{refuelingTime},</if>
            <if test="result != null">result = #{result},</if>
            <if test="actualOilvolume1 != null">Actual_OilVolume1 = #{actualOilvolume1},</if>
            <if test="actualOilvolume2 != null">Actual_OilVolume2 = #{actualOilvolume2},</if>
            <if test="actualOilvolume3 != null">Actual_OilVolume3 = #{actualOilvolume3},</if>
            <if test="OilModel1 != null">OilModel1 = #{OilModel1},</if>
            <if test="OilModel2 != null">OilModel2 = #{OilModel2},</if>
            <if test="OilModel3 != null">OilModel3 = #{OilModel3},</if>
            <if test="setOilvolume1 != null">Set_OilVolume1 = #{setOilvolume1},</if>
            <if test="setOilvolume2 != null">Set_OilVolume2 = #{setOilvolume2},</if>
            <if test="setOilvolume3 != null">Set_OilVolume3 = #{setOilvolume3},</if>
            <if test="Status1 != null">Status1 = #{Status1},</if>
            <if test="Status2 != null">Status2 = #{Status2},</if>
            <if test="Status3 != null">Status3 = #{Status3},</if>
            <if test="Time1 != null">Time1 = #{Time1},</if>
            <if test="Time2 != null">Time2 = #{Time2},</if>
            <if test="Time3 != null">Time3 = #{Time3},</if>
            <if test="collectTime != null">collect_time = #{collectTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteDaOilFillingById" parameterType="Long">
        delete from da_oil_filling where id = #{id}
    </delete>
    <delete id="deleteDaOilFillingByIds" parameterType="String">
        delete from da_oil_filling where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-main/src/main/resources/mapper/da/tightenCollection/DaTightenCollectionMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
<?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.jcdm.main.da.tightenCollection.mapper.DaTightenCollectionMapper">
    <resultMap type="DaTightenCollection" id="DaTightenCollectionResult">
        <result property="id"    column="id"    />
        <result property="sfcCode"    column="sfc_code"    />
        <result property="locationCode"    column="location_code"    />
        <result property="paramSetName"    column="param_set_name"    />
        <result property="torque"    column="torque"    />
        <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_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 = #{locationCode}</if>
            <if test="paramSetName != null  and paramSetName != ''"> and param_set_name like concat('%', #{paramSetName}, '%')</if>
            <if test="angleStatus != null  and angleStatus != ''"> and angle_status = #{angleStatus}</if>
        </where>
    </select>
    <select id="selectDaTightenCollectionById" parameterType="Long" resultMap="DaTightenCollectionResult">
        <include refid="selectDaTightenCollectionVo"/>
        where id = #{id}
    </select>
    <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="paramSetName != null">param_set_name,</if>
            <if test="torque != null">torque,</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="paramSetName != null">#{paramSetName},</if>
            <if test="torque != null">#{torque},</if>
            <if test="angle != null">#{angle},</if>
            <if test="angleStatus != null">#{angleStatus},</if>
            <if test="collectTime != null">#{collectTime},</if>
         </trim>
    </insert>
    <update id="updateDaTightenCollection" parameterType="DaTightenCollection">
        update da_tighten_collection
        <trim prefix="SET" suffixOverrides=",">
            <if test="sfcCode != null">sfc_code = #{sfcCode},</if>
            <if test="locationCode != null">location_code = #{locationCode},</if>
            <if test="paramSetName != null">param_set_name = #{paramSetName},</if>
            <if test="torque != null">torque = #{torque},</if>
            <if test="angle != null">angle = #{angle},</if>
            <if test="angleStatus != null">angle_status = #{angleStatus},</if>
            <if test="collectTime != null">collect_time = #{collectTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteDaTightenCollectionById" parameterType="Long">
        delete from da_tighten_collection where id = #{id}
    </delete>
    <delete id="deleteDaTightenCollectionByIds" parameterType="String">
        delete from da_tighten_collection where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-ui/src/api/main/da/cameraResults/cameraResults.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢ç›¸æœºç»“果列表
export function listCameraResults(query) {
  return request({
    url: '/da/cameraResults/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢ç›¸æœºç»“果详细
export function getCameraResults(id) {
  return request({
    url: '/da/cameraResults/' + id,
    method: 'get'
  })
}
// æ–°å¢žç›¸æœºç»“æžœ
export function addCameraResults(data) {
  return request({
    url: '/da/cameraResults',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹ç›¸æœºç»“æžœ
export function updateCameraResults(data) {
  return request({
    url: '/da/cameraResults',
    method: 'put',
    data: data
  })
}
// åˆ é™¤ç›¸æœºç»“æžœ
export function delCameraResults(id) {
  return request({
    url: '/da/cameraResults/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/api/main/da/leakageDetection/leakageDetection.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢å¤–漏检测列表
export function listLeakageDetection(query) {
  return request({
    url: '/da/leakageDetection/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢å¤–漏检测详细
export function getLeakageDetection(id) {
  return request({
    url: '/da/leakageDetection/' + id,
    method: 'get'
  })
}
// æ–°å¢žå¤–漏检测
export function addLeakageDetection(data) {
  return request({
    url: '/da/leakageDetection',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹å¤–漏检测
export function updateLeakageDetection(data) {
  return request({
    url: '/da/leakageDetection',
    method: 'put',
    data: data
  })
}
// åˆ é™¤å¤–漏检测
export function delLeakageDetection(id) {
  return request({
    url: '/da/leakageDetection/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/api/main/da/oilFilling/oilFilling.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢æœºæ²¹åŠ æ³¨åˆ—è¡¨
export function listOilFilling(query) {
  return request({
    url: '/da/oilFilling/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢æœºæ²¹åŠ æ³¨è¯¦ç»†
export function getOilFilling(id) {
  return request({
    url: '/da/oilFilling/' + id,
    method: 'get'
  })
}
// æ–°å¢žæœºæ²¹åŠ æ³¨
export function addOilFilling(data) {
  return request({
    url: '/da/oilFilling',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹æœºæ²¹åŠ æ³¨
export function updateOilFilling(data) {
  return request({
    url: '/da/oilFilling',
    method: 'put',
    data: data
  })
}
// åˆ é™¤æœºæ²¹åŠ æ³¨
export function delOilFilling(id) {
  return request({
    url: '/da/oilFilling/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/api/main/da/tightenCollection/tightenCollection.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表
export function listTightenCollection(query) {
  return request({
    url: '/da/tightenCollection/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢æ‹§ç´§é‡‡é›†è¯¦ç»†
export function getTightenCollection(id) {
  return request({
    url: '/da/tightenCollection/' + id,
    method: 'get'
  })
}
// æ–°å¢žæ‹§ç´§é‡‡é›†
export function addTightenCollection(data) {
  return request({
    url: '/da/tightenCollection',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹æ‹§ç´§é‡‡é›†
export function updateTightenCollection(data) {
  return request({
    url: '/da/tightenCollection',
    method: 'put',
    data: data
  })
}
// åˆ é™¤æ‹§ç´§é‡‡é›†
export function delTightenCollection(id) {
  return request({
    url: '/da/tightenCollection/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/views/main/cfkb/fuelNozzle/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
<template>
  <div class="app-container">
    <div class="scan-container">
      <div class="input-group">
        <label class="input-label">发动机码:</label>
        <input
          type="text"
          v-model="engineCode"
          class="engine-input"
          @keyup.enter="handleScan"
          placeholder="请扫描发动机码"
        />
      </div>
      <div class="result-display" v-if="fuelAmount" :class="{ 'highlight': isHighlighted }">
        <div class="result-title">加油量</div>
        <div class="result-value">{{ fuelAmount }}升</div>
        <div class="scan-time">{{ lastScanTime }}</div>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      engineCode: '',
      fuelAmount: null,
      isHighlighted: false,
      lastScanTime: ''
    }
  },
  mounted() {
  },
  methods: {
    handleScan() {
      if (this.engineCode) {
        const prefix = this.engineCode.substring(0, 4);
        if (prefix === '380Y') {
          this.fuelAmount = 380;
        } else if (prefix === '280Y') {
          this.fuelAmount = 280;
        } else {
          this.fuelAmount = null;
        }
        // æ·»åŠ é«˜äº®æ•ˆæžœ
        this.isHighlighted = true;
        setTimeout(() => {
          this.isHighlighted = false;
        }, 1000);
        // æ›´æ–°æ—¶é—´
        const now = new Date();
        this.lastScanTime = `扫描时间:${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}`;
        // æ¸…空输入框,准备下一次扫描
        this.engineCode = '';
      }
    }
  },
}
</script>
<style scoped>
.scan-container {
  padding: 60px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1);
  margin: 40px;
  min-height: 400px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.input-group {
  display: flex;
  align-items: center;
  margin-bottom: 40px;
  width: 100%;
  justify-content: center;
}
.input-label {
  font-size: 24px;
  font-weight: bold;
  margin-right: 20px;
  min-width: 120px;
}
.engine-input {
  width: 300px;
  height: 50px;
  font-size: 24px;
  padding: 0 15px;
  border: 2px solid #409EFF;
  border-radius: 4px;
  outline: none;
}
.engine-input:focus {
  border-color: #66b1ff;
}
.result-display {
  font-size: 48px;
  color: #409EFF;
  font-weight: bold;
  margin-top: 50px;
  padding: 40px;
  background: #f5f7fa;
  border-radius: 8px;
  text-align: center;
  border: 3px solid #409EFF;
  box-shadow: 0 4px 12px rgba(64, 158, 255, 0.2);
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  transition: all 0.3s ease;
}
.result-display.highlight {
  transform: scale(1.05);
  background: #ecf5ff;
  border-color: #66b1ff;
  box-shadow: 0 0 20px rgba(64, 158, 255, 0.4);
}
.result-title {
  font-size: 32px;
  margin-bottom: 20px;
  color: #606266;
}
.result-value {
  font-size: 72px;
  color: #409EFF;
  margin: 20px 0;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}
.scan-time {
  font-size: 24px;
  color: #909399;
  margin-top: 20px;
}
@keyframes highlight {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
</style>
jcdm-ui/src/views/main/da/cameraResults/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,316 @@
<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="sfcCode">
            <el-input
              v-model="queryParams.sfcCode"
              placeholder="请输入总成序列号"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="工位编码" prop="locationCode">
            <el-input
              v-model="queryParams.locationCode"
              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:cameraResults: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:cameraResults: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:cameraResults: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:cameraResults:export']"
            >导出</el-button>
          </el-col>
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
        <el-table border v-loading="loading" :data="cameraResultsList" @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="describe">
          </el-table-column>
          <el-table-column label="相机1结果" align="center" prop="ResultData0">
          </el-table-column>
          <el-table-column label="相机2结果" align="center" prop="ResultData1">
          </el-table-column>
          <el-table-column label="相机3结果" align="center" prop="ResultData2">
          </el-table-column>
          <el-table-column label="相机4结果" align="center" prop="ResultData3">
          </el-table-column>
          <el-table-column label="相机5结果" align="center" prop="ResultData4">
          </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:cameraResults:edit']"
              >修改</el-button>
              <el-button
                size="mini"
                type="danger"
                plain
                style="width: 72px"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['da:cameraResults: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="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>
        <el-form-item label="工位编码" prop="locationCode">
          <el-input v-model="form.locationCode" placeholder="请输入工位编码" />
        </el-form-item>
        <el-form-item label="描述" prop="describe">
          <el-input v-model="form.describe" placeholder="请输入描述" />
        </el-form-item>
        <el-form-item label="相机1结果" prop="ResultData0">
          <el-input v-model="form.ResultData0" placeholder="请输入相机1结果" />
        </el-form-item>
        <el-form-item label="相机2结果" prop="ResultData1">
          <el-input v-model="form.ResultData1" placeholder="请输入相机2结果" />
        </el-form-item>
        <el-form-item label="相机3结果" prop="ResultData2">
          <el-input v-model="form.ResultData2" placeholder="请输入相机3结果" />
        </el-form-item>
        <el-form-item label="相机4结果" prop="ResultData3">
          <el-input v-model="form.ResultData3" placeholder="请输入相机4结果" />
        </el-form-item>
        <el-form-item label="相机5结果" prop="ResultData4">
          <el-input v-model="form.ResultData4" placeholder="请输入相机5结果" />
        </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 { listCameraResults, getCameraResults, delCameraResults, addCameraResults, updateCameraResults } from "@/api/main/da/cameraResults/cameraResults";
export default {
  name: "CameraResults",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // ç›¸æœºç»“果表格数据
      cameraResultsList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sfcCode: null,
        locationCode: null,
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢ç›¸æœºç»“果列表 */
    getList() {
      this.loading = true;
      listCameraResults(this.queryParams).then(response => {
        this.cameraResultsList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        sfcCode: null,
        locationCode: null,
        describe: null,
        ResultData0: null,
        ResultData1: null,
        ResultData2: null,
        ResultData3: null,
        ResultData4: null,
        collectTime: 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
      getCameraResults(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) {
            updateCameraResults(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addCameraResults(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 delCameraResults(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('da/cameraResults/export', {
        ...this.queryParams
      }, `cameraResults_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
jcdm-ui/src/views/main/da/leakageDetection/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,404 @@
<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="sfcCode">
            <el-input
              v-model="queryParams.sfcCode"
              placeholder="请输入总成序列号"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="工位编码" prop="locationCode">
            <el-input
              v-model="queryParams.locationCode"
              placeholder="请输入工位编码"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <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 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:leakageDetection: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:leakageDetection: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:leakageDetection: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:leakageDetection:export']"
            >导出</el-button>
          </el-col>
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
        <el-table border v-loading="loading" :data="leakageDetectionList" @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="paramSetCode">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="参数集名称" align="center" prop="paramSetName">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="描述" align="center" prop="describe">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="压力值" align="center" prop="pressureValue">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="泄露率" align="center" prop="leakageRate">-->
<!--          </el-table-column>-->
<!--          <el-table-column label="结果" align="center" prop="result">-->
<!--          </el-table-column>-->
          <el-table-column label="水道互漏泄漏量" align="center" prop="leakrate1">
          </el-table-column>
          <el-table-column label="水道外漏泄漏量" align="center" prop="leakrate2">
          </el-table-column>
          <el-table-column label="齿轮箱外漏泄漏量" align="center" prop="leakrate3">
          </el-table-column>
          <el-table-column label="油道外漏泄漏量" align="center" prop="leakrate4">
          </el-table-column>
          <el-table-column label="水道互漏压力" align="center" prop="press1">
          </el-table-column>
          <el-table-column label="水道外漏压力" align="center" prop="press2">
          </el-table-column>
          <el-table-column label="齿轮箱外漏压力" align="center" prop="press3">
          </el-table-column>
          <el-table-column label="油道外漏压力" align="center" prop="press4">
          </el-table-column>
          <el-table-column label="水道互漏结果状态:1OK 2NG" align="center" prop="status1">
          </el-table-column>
          <el-table-column label="水道外漏结果状态:1OK 2NG" align="center" prop="status2">
          </el-table-column>
          <el-table-column label="齿轮箱外漏结果状态:1OK 2NG" align="center" prop="status3">
          </el-table-column>
          <el-table-column label="油道外漏结果状态:1OK 2NG" align="center" prop="status4">
          </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:leakageDetection:edit']"-->
<!--              >修改</el-button>-->
<!--              <el-button-->
<!--                size="mini"-->
<!--                type="danger"-->
<!--                plain-->
<!--                style="width: 72px"-->
<!--                icon="el-icon-delete"-->
<!--                @click="handleDelete(scope.row)"-->
<!--                v-hasPermi="['da:leakageDetection: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="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>
        <el-form-item label="工位编码" prop="locationCode">
          <el-input v-model="form.locationCode" placeholder="请输入工位编码" />
        </el-form-item>
        <el-form-item label="参数集编码" prop="paramSetCode">
          <el-input v-model="form.paramSetCode" placeholder="请输入参数集编码" />
        </el-form-item>
        <el-form-item label="参数集名称" prop="paramSetName">
          <el-input v-model="form.paramSetName" placeholder="请输入参数集名称" />
        </el-form-item>
        <el-form-item label="描述" prop="describe">
          <el-input v-model="form.describe" placeholder="请输入描述" />
        </el-form-item>
        <el-form-item label="压力值" prop="pressureValue">
          <el-input v-model="form.pressureValue" placeholder="请输入压力值" />
        </el-form-item>
        <el-form-item label="泄露率" prop="leakageRate">
          <el-input v-model="form.leakageRate" placeholder="请输入泄露率" />
        </el-form-item>
        <el-form-item label="水道互漏泄漏量" prop="Leakrate1">
          <el-input v-model="form.Leakrate1" placeholder="请输入水道互漏泄漏量" />
        </el-form-item>
        <el-form-item label="水道外漏泄漏量" prop="Leakrate2">
          <el-input v-model="form.Leakrate2" placeholder="请输入水道外漏泄漏量" />
        </el-form-item>
        <el-form-item label="齿轮箱外漏泄漏量" prop="Leakrate3">
          <el-input v-model="form.Leakrate3" placeholder="请输入齿轮箱外漏泄漏量" />
        </el-form-item>
        <el-form-item label="油道外漏泄漏量" prop="Leakrate4">
          <el-input v-model="form.Leakrate4" placeholder="请输入油道外漏泄漏量" />
        </el-form-item>
        <el-form-item label="水道互漏压力" prop="Press1">
          <el-input v-model="form.Press1" placeholder="请输入水道互漏压力" />
        </el-form-item>
        <el-form-item label="水道外漏压力" prop="Press2">
          <el-input v-model="form.Press2" placeholder="请输入水道外漏压力" />
        </el-form-item>
        <el-form-item label="齿轮箱外漏压力" prop="Press3">
          <el-input v-model="form.Press3" placeholder="请输入齿轮箱外漏压力" />
        </el-form-item>
        <el-form-item label="油道外漏压力" prop="Press4">
          <el-input v-model="form.Press4" placeholder="请输入油道外漏压力" />
        </el-form-item>
        <el-form-item label="水道互漏结果状态:1OK 2NG" prop="Status1">
          <el-input v-model="form.Status1" placeholder="请输入水道互漏结果状态:1OK 2NG" />
        </el-form-item>
        <el-form-item label="水道外漏结果状态:1OK 2NG" prop="Status2">
          <el-input v-model="form.Status2" placeholder="请输入水道外漏结果状态:1OK 2NG" />
        </el-form-item>
        <el-form-item label="齿轮箱外漏结果状态:1OK 2NG" prop="Status3">
          <el-input v-model="form.Status3" placeholder="请输入齿轮箱外漏结果状态:1OK 2NG" />
        </el-form-item>
        <el-form-item label="油道外漏结果状态:1OK 2NG" prop="Status4">
          <el-input v-model="form.Status4" placeholder="请输入油道外漏结果状态:1OK 2NG" />
        </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 { listLeakageDetection, getLeakageDetection, delLeakageDetection, addLeakageDetection, updateLeakageDetection } from "@/api/main/da/leakageDetection/leakageDetection";
export default {
  name: "LeakageDetection",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // å¤–漏检测表格数据
      leakageDetectionList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sfcCode: null,
        locationCode: null,
        paramSetCode: null,
        paramSetName: null,
        result: null,
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢å¤–漏检测列表 */
    getList() {
      this.loading = true;
      listLeakageDetection(this.queryParams).then(response => {
        this.leakageDetectionList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        sfcCode: null,
        locationCode: null,
        paramSetCode: null,
        paramSetName: null,
        describe: null,
        pressureValue: null,
        leakageRate: null,
        result: null,
        Leakrate1: null,
        Leakrate2: null,
        Leakrate3: null,
        Leakrate4: null,
        Press1: null,
        Press2: null,
        Press3: null,
        Press4: null,
        Status1: null,
        Status2: null,
        Status3: null,
        Status4: null,
        collectTime: 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
      getLeakageDetection(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) {
            updateLeakageDetection(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addLeakageDetection(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 delLeakageDetection(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('da/leakageDetection/export', {
        ...this.queryParams
      }, `leakageDetection_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
jcdm-ui/src/views/main/da/oilFilling/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,392 @@
<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="sfcCode">
            <el-input
              v-model="queryParams.sfcCode"
              placeholder="请输入总成序列号"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="工位编码" prop="locationCode">
            <el-input
              v-model="queryParams.locationCode"
              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:oilFilling: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:oilFilling: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:oilFilling: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:oilFilling:export']"
            >导出</el-button>
          </el-col>
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
        <el-table border v-loading="loading" :data="oilFillingList" @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="一号枪实际加油量(L)" align="center" prop="actualOilvolume1">
          </el-table-column>
          <el-table-column label="二号枪实际加油量(L)" align="center" prop="actualOilvolume2">
          </el-table-column>
          <el-table-column label="三号枪实际加油量(L)" align="center" prop="actualOilvolume3">
          </el-table-column>
          <el-table-column label="一号枪加油类型" align="center" prop="oilModel1">
          </el-table-column>
          <el-table-column label="二号枪加油类型" align="center" prop="oilModel2">
          </el-table-column>
          <el-table-column label="三号枪加油类型" align="center" prop="oilModel3">
          </el-table-column>
          <el-table-column label="一号枪预计加油量(L)" align="center" prop="setOilvolume1">
          </el-table-column>
          <el-table-column label="二号枪预计加油量(L)" align="center" prop="setOilvolume2">
          </el-table-column>
          <el-table-column label="三号枪预计加油量(L)" align="center" prop="setOilvolume3">
          </el-table-column>
          <el-table-column label="一号枪加油状态1OK;2NG" align="center" prop="status1">
          </el-table-column>
          <el-table-column label="二号枪加油状态1OK;2NG" align="center" prop="status2">
          </el-table-column>
          <el-table-column label="三号枪加油状态1OK;2NG" align="center" prop="status3">
          </el-table-column>
          <el-table-column label="一号枪加油时间" align="center" prop="time1">
          </el-table-column>
          <el-table-column label="二号枪加油时间" align="center" prop="time2">
          </el-table-column>
          <el-table-column label="三号枪加油时间" align="center" prop="time3">
          </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:oilFilling:edit']"-->
<!--              >修改</el-button>-->
<!--              <el-button-->
<!--                size="mini"-->
<!--                type="danger"-->
<!--                plain-->
<!--                style="width: 72px"-->
<!--                icon="el-icon-delete"-->
<!--                @click="handleDelete(scope.row)"-->
<!--                v-hasPermi="['da:oilFilling: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="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>
        <el-form-item label="工位编码" prop="locationCode">
          <el-input v-model="form.locationCode" placeholder="请输入工位编码" />
        </el-form-item>
        <el-form-item label="描述" prop="describe">
          <el-input v-model="form.describe" placeholder="请输入描述" />
        </el-form-item>
        <el-form-item label="设定加油量" prop="setFuelVolume">
          <el-input v-model="form.setFuelVolume" placeholder="请输入设定加油量" />
        </el-form-item>
        <el-form-item label="实际加油量" prop="actualFuelConsumption">
          <el-input v-model="form.actualFuelConsumption" placeholder="请输入实际加油量" />
        </el-form-item>
        <el-form-item label="加油耗时" prop="refuelingTime">
          <el-input v-model="form.refuelingTime" placeholder="请输入加油耗时" />
        </el-form-item>
        <el-form-item label="加油状态" prop="result">
          <el-input v-model="form.result" placeholder="请输入加油状态" />
        </el-form-item>
        <el-form-item label="一号枪实际加油量(L)" prop="actualOilvolume1">
          <el-input v-model="form.actualOilvolume1" placeholder="请输入一号枪实际加油量(L)" />
        </el-form-item>
        <el-form-item label="二号枪实际加油量(L)" prop="actualOilvolume2">
          <el-input v-model="form.actualOilvolume2" placeholder="请输入二号枪实际加油量(L)" />
        </el-form-item>
        <el-form-item label="三号枪实际加油量(L)" prop="actualOilvolume3">
          <el-input v-model="form.actualOilvolume3" placeholder="请输入三号枪实际加油量(L)" />
        </el-form-item>
        <el-form-item label="一号枪加油类型" prop="OilModel1">
          <el-input v-model="form.OilModel1" placeholder="请输入一号枪加油类型" />
        </el-form-item>
        <el-form-item label="二号枪加油类型" prop="OilModel2">
          <el-input v-model="form.OilModel2" placeholder="请输入二号枪加油类型" />
        </el-form-item>
        <el-form-item label="三号枪加油类型" prop="OilModel3">
          <el-input v-model="form.OilModel3" placeholder="请输入三号枪加油类型" />
        </el-form-item>
        <el-form-item label="一号枪预计加油量(L)" prop="setOilvolume1">
          <el-input v-model="form.setOilvolume1" placeholder="请输入一号枪预计加油量(L)" />
        </el-form-item>
        <el-form-item label="二号枪预计加油量(L)" prop="setOilvolume2">
          <el-input v-model="form.setOilvolume2" placeholder="请输入二号枪预计加油量(L)" />
        </el-form-item>
        <el-form-item label="三号枪预计加油量(L)" prop="setOilvolume3">
          <el-input v-model="form.setOilvolume3" placeholder="请输入三号枪预计加油量(L)" />
        </el-form-item>
        <el-form-item label="一号枪加油状态1OK;2NG" prop="Status1">
          <el-input v-model="form.Status1" placeholder="请输入一号枪加油状态1OK;2NG" />
        </el-form-item>
        <el-form-item label="二号枪加油状态1OK;2NG" prop="Status2">
          <el-input v-model="form.Status2" placeholder="请输入二号枪加油状态1OK;2NG" />
        </el-form-item>
        <el-form-item label="三号枪加油状态1OK;2NG" prop="Status3">
          <el-input v-model="form.Status3" placeholder="请输入三号枪加油状态1OK;2NG" />
        </el-form-item>
        <el-form-item label="一号枪加油时间" prop="Time1">
          <el-input v-model="form.Time1" placeholder="请输入一号枪加油时间" />
        </el-form-item>
        <el-form-item label="二号枪加油时间" prop="Time2">
          <el-input v-model="form.Time2" placeholder="请输入二号枪加油时间" />
        </el-form-item>
        <el-form-item label="三号枪加油时间" prop="Time3">
          <el-input v-model="form.Time3" 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 { listOilFilling, getOilFilling, delOilFilling, addOilFilling, updateOilFilling } from "@/api/main/da/oilFilling/oilFilling";
export default {
  name: "OilFilling",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // æœºæ²¹åŠ æ³¨è¡¨æ ¼æ•°æ®
      oilFillingList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sfcCode: null,
        locationCode: null,
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢æœºæ²¹åŠ æ³¨åˆ—è¡¨ */
    getList() {
      this.loading = true;
      listOilFilling(this.queryParams).then(response => {
        this.oilFillingList = response.rows;
        console.log(response.rows)
        console.log(this.oilFillingList)
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        sfcCode: null,
        locationCode: null,
        describe: null,
        setFuelVolume: null,
        actualFuelConsumption: null,
        refuelingTime: null,
        result: null,
        actualOilvolume1: null,
        actualOilvolume2: null,
        actualOilvolume3: null,
        OilModel1: null,
        OilModel2: null,
        OilModel3: null,
        setOilvolume1: null,
        setOilvolume2: null,
        setOilvolume3: null,
        Status1: null,
        Status2: null,
        Status3: null,
        Time1: null,
        Time2: null,
        Time3: null,
        collectTime: 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
      getOilFilling(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) {
            updateOilFilling(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addOilFilling(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 delOilFilling(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('da/oilFilling/export', {
        ...this.queryParams
      }, `oilFilling_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
jcdm-ui/src/views/main/da/tightenCollection/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,364 @@
<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="sfcCode">
            <el-input
              v-model="queryParams.sfcCode"
              placeholder="请输入总成序列号"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="工位编码" prop="locationCode">
            <el-input
              v-model="queryParams.locationCode"
              placeholder="请输入工位编码"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <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-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>
          <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"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–ä¿®æ”¹æ‹§ç´§é‡‡é›†å¯¹è¯æ¡† -->
    <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>
        <el-form-item label="工位编码" prop="locationCode">
          <el-input v-model="form.locationCode" placeholder="请输入工位编码" />
        </el-form-item>
        <el-form-item label="参数集编码" prop="paramSetCode">
          <el-input v-model="form.paramSetCode" placeholder="请输入参数集编码" />
        </el-form-item>
        <el-form-item label="参数集名称" prop="paramSetName">
          <el-input v-model="form.paramSetName" placeholder="请输入参数集名称" />
        </el-form-item>
        <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>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listTightenCollection, getTightenCollection, delTightenCollection, addTightenCollection, updateTightenCollection } from "@/api/main/da/tightenCollection/tightenCollection";
export default {
  name: "TightenCollection",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // æ‹§ç´§é‡‡é›†è¡¨æ ¼æ•°æ®
      tightenCollectionList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        sfcCode: null,
        locationCode: null,
        paramSetCode: null,
        paramSetName: null,
        torqueStatus: null,
        angleStatus: null,
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢æ‹§ç´§é‡‡é›†åˆ—表 */
    getList() {
      this.loading = true;
      listTightenCollection(this.queryParams).then(response => {
        this.tightenCollectionList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        sfcCode: null,
        locationCode: null,
        paramSetCode: null,
        paramSetName: null,
        torque: null,
        torqueStatus: null,
        angle: null,
        angleStatus: null,
        collectTime: 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
      getTightenCollection(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) {
            updateTightenCollection(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addTightenCollection(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 delTightenCollection(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('da/tightenCollection/export', {
        ...this.queryParams
      }, `tightenCollection_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>