春风项目四线(合箱线、总装线)
yyt
2024-01-24 87ebb286373e365b4bb427177b26cf00dda1e2f3
Merge remote-tracking branch 'origin/master'
已修改9个文件
已添加9个文件
1685 ■■■■ 文件已修改
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/domain/DaTileMatchRules.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/mapper/DaTileMatchRulesMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/IDaTileMatchRulesService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/impl/DaTileMatchRulesServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/dashboard/PanelGroup.vue 368 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/da/tileMatchRules/index.vue 473 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/domain/BsOrderScheduling.java
@@ -1,11 +1,17 @@
package com.jcdm.main.bs.orderScheduling.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jcdm.common.annotation.Excel;
import com.jcdm.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
 * è®¢å•æŽ’产对象 bs_order_scheduling
@@ -13,6 +19,7 @@
 * @author jiang
 * @date 2024-01-13
 */
@Data
public class BsOrderScheduling extends BaseEntity
{
    private static final long serialVersionUID = 1L;
@@ -146,6 +153,19 @@
    @Excel(name = "CVT下线时间")
    private Date cvtOfflineTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startQuery;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endQuery;
    @TableField(exist = false)
    private String queryField;
    public Date getBoxClosingOnlineTime() {
        return boxClosingOnlineTime;
    }
jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/mapper/BsOrderSchedulingMapper.java
@@ -29,6 +29,9 @@
     */
    public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling);
    public Integer getProduceNumToday(BsOrderScheduling bsOrderScheduling);
    /**
     * æŸ¥è¯¢åˆç®±ä¸Šçº¿åˆ—表
     *
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
package com.jcdm.main.da.passingStationCollection.common;
public final class Constants {
}
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java
@@ -3,7 +3,9 @@
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.jcdm.common.core.domain.R;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -48,6 +50,14 @@
        return getDataTable(list);
    }
    @PreAuthorize("@ss.hasPermi('da:passingStationCollection:list')")
    @GetMapping("/getProduceNumToday")
    public R getProduceNumToday(String fieldName)
    {
        Integer num = daPassingStationCollectionService.getProduceNumToday(fieldName);
        return R.ok(num);
    }
    /**
     * æŸ¥è¯¢äº§å“è¿‡ç«™é‡‡é›†åˆ—表
     */
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java
@@ -1,5 +1,6 @@
package com.jcdm.main.da.passingStationCollection.service;
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
import java.util.List;
@@ -28,6 +29,14 @@
     */
    public List<DaPassingStationCollection> selectDaPassingStationCollectionList(DaPassingStationCollection daPassingStationCollection);
    /**
     * èŽ·å–首页单日累计量产数据
     * @param fieldName bs
     * @return list
     */
    public Integer getProduceNumToday(String fieldName);
    /**
     * æ–°å¢žäº§å“è¿‡ç«™é‡‡é›†
     * 
jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java
@@ -1,13 +1,23 @@
package com.jcdm.main.da.passingStationCollection.service.impl;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import com.jcdm.common.constant.Constants;
import com.jcdm.common.utils.DateUtils;
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper;
import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper;
import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord;
import com.jcdm.main.rm.repairRecord.mapper.RmRepairRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Service;
/**
@@ -24,6 +34,12 @@
    @Autowired
    private RmRepairRecordMapper rmRepairRecordMapper;
    @Autowired
    private BsOrderSchedulingMapper bsOrderSchedulingMapper;
    @Autowired
    private IBsOrderSchedulingService bsOrderSchedulingService;
    /**
     * æŸ¥è¯¢äº§å“è¿‡ç«™é‡‡é›†
@@ -50,6 +66,26 @@
    }
    /**
     * èŽ·å–首页单日累计量产数据
     * @param fieldName bs
     * @return list
     */
    @Override
    public Integer getProduceNumToday(String fieldName) {
        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
        bsOrderScheduling.setQueryField(fieldName);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime startTime = LocalDate.now().atStartOfDay();
        LocalDateTime endTime = LocalDate.now().plusDays(1).atStartOfDay();
        String s1 = startTime.format(formatter);
        String s2 = endTime.format(formatter);
        bsOrderScheduling.setStartTime(s1);
        bsOrderScheduling.setEndTime(s2);
        return bsOrderSchedulingMapper.getProduceNumToday(bsOrderScheduling);
    }
    /**
     * æ–°å¢žäº§å“è¿‡ç«™é‡‡é›†
     * 
     * @param daPassingStationCollection äº§å“è¿‡ç«™é‡‡é›†
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.jcdm.main.da.tileMatchRules.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.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.main.da.tileMatchRules.domain.DaTileMatchRules;
import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
/**
 * é…ç“¦è§„则Controller
 *
 * @author jiang
 * @date 2024-01-24
 */
@RestController
@RequestMapping("/da/tileMatchRules")
public class DaTileMatchRulesController extends BaseController
{
    @Autowired
    private IDaTileMatchRulesService daTileMatchRulesService;
    /**
     * æŸ¥è¯¢é…ç“¦è§„则列表
     */
    @PreAuthorize("@ss.hasPermi('da:tileMatchRules:list')")
    @GetMapping("/list")
    public TableDataInfo list(DaTileMatchRules daTileMatchRules)
    {
        startPage();
        List<DaTileMatchRules> list = daTileMatchRulesService.selectDaTileMatchRulesList(daTileMatchRules);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºé…ç“¦è§„则列表
     */
    @PreAuthorize("@ss.hasPermi('da:tileMatchRules:export')")
    @Log(title = "配瓦规则", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, DaTileMatchRules daTileMatchRules)
    {
        List<DaTileMatchRules> list = daTileMatchRulesService.selectDaTileMatchRulesList(daTileMatchRules);
        ExcelUtil<DaTileMatchRules> util = new ExcelUtil<DaTileMatchRules>(DaTileMatchRules.class);
        util.exportExcel(response, list, "配瓦规则数据");
    }
    /**
     * èŽ·å–配瓦规则详细信息
     */
    @PreAuthorize("@ss.hasPermi('da:tileMatchRules:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(daTileMatchRulesService.selectDaTileMatchRulesById(id));
    }
    /**
     * æ–°å¢žé…ç“¦è§„则
     */
    @PreAuthorize("@ss.hasPermi('da:tileMatchRules:add')")
    @Log(title = "配瓦规则", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DaTileMatchRules daTileMatchRules)
    {
        return toAjax(daTileMatchRulesService.insertDaTileMatchRules(daTileMatchRules));
    }
    /**
     * ä¿®æ”¹é…ç“¦è§„则
     */
    @PreAuthorize("@ss.hasPermi('da:tileMatchRules:edit')")
    @Log(title = "配瓦规则", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DaTileMatchRules daTileMatchRules)
    {
        return toAjax(daTileMatchRulesService.updateDaTileMatchRules(daTileMatchRules));
    }
    /**
     * åˆ é™¤é…ç“¦è§„则
     */
    @PreAuthorize("@ss.hasPermi('da:tileMatchRules:remove')")
    @Log(title = "配瓦规则", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(daTileMatchRulesService.deleteDaTileMatchRulesByIds(ids));
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/domain/DaTileMatchRules.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,235 @@
package com.jcdm.main.da.tileMatchRules.domain;
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_tile_match_rules
 *
 * @author jiang
 * @date 2024-01-24
 */
public class DaTileMatchRules extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** äº§å“ç³»åˆ— */
    @Excel(name = "产品系列")
    private String productSeries;
    /** æ‰«ç å¯¹è±¡1 */
    @Excel(name = "扫码对象1")
    private String scanObject1;
    /** æ‰«ç å¯¹è±¡2 */
    @Excel(name = "扫码对象2")
    private String scanObject2;
    /** è½´åç§° */
    @Excel(name = "轴名称")
    private String axisName;
    /** é¢ˆåç§° */
    @Excel(name = "颈名称")
    private String neckName;
    /** ç“¦åç§° */
    @Excel(name = "瓦名称")
    private String tileName;
    /** è½´å‚数数位置 */
    @Excel(name = "轴参数数位置")
    private Long axisParameterNoPosition;
    /** é¢ˆå‚数数位置 */
    @Excel(name = "颈参数数位置")
    private Long neckParameterPosition;
    /** è½´å€¼ */
    @Excel(name = "轴值")
    private String axisValue;
    /** é¢ˆå€¼ */
    @Excel(name = "颈值")
    private String neckValue;
    /** ç“¦é¢œè‰² */
    @Excel(name = "瓦颜色")
    private String tileColor;
    /** åˆ›å»ºç”¨æˆ· */
    @Excel(name = "创建用户")
    private String createUser;
    /** æ›´æ”¹ç”¨æˆ· */
    @Excel(name = "更改用户")
    private String updateUser;
    /** çŠ¶æ€ï¼ˆ1合格、2不合格) */
    @Excel(name = "状态", readConverterExp = "1=合格、2不合格")
    private String state;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setProductSeries(String productSeries)
    {
        this.productSeries = productSeries;
    }
    public String getProductSeries()
    {
        return productSeries;
    }
    public void setScanObject1(String scanObject1)
    {
        this.scanObject1 = scanObject1;
    }
    public String getScanObject1()
    {
        return scanObject1;
    }
    public void setScanObject2(String scanObject2)
    {
        this.scanObject2 = scanObject2;
    }
    public String getScanObject2()
    {
        return scanObject2;
    }
    public void setAxisName(String axisName)
    {
        this.axisName = axisName;
    }
    public String getAxisName()
    {
        return axisName;
    }
    public void setNeckName(String neckName)
    {
        this.neckName = neckName;
    }
    public String getNeckName()
    {
        return neckName;
    }
    public void setTileName(String tileName)
    {
        this.tileName = tileName;
    }
    public String getTileName()
    {
        return tileName;
    }
    public void setAxisParameterNoPosition(Long axisParameterNoPosition)
    {
        this.axisParameterNoPosition = axisParameterNoPosition;
    }
    public Long getAxisParameterNoPosition()
    {
        return axisParameterNoPosition;
    }
    public void setNeckParameterPosition(Long neckParameterPosition)
    {
        this.neckParameterPosition = neckParameterPosition;
    }
    public Long getNeckParameterPosition()
    {
        return neckParameterPosition;
    }
    public void setAxisValue(String axisValue)
    {
        this.axisValue = axisValue;
    }
    public String getAxisValue()
    {
        return axisValue;
    }
    public void setNeckValue(String neckValue)
    {
        this.neckValue = neckValue;
    }
    public String getNeckValue()
    {
        return neckValue;
    }
    public void setTileColor(String tileColor)
    {
        this.tileColor = tileColor;
    }
    public String getTileColor()
    {
        return tileColor;
    }
    public void setCreateUser(String createUser)
    {
        this.createUser = createUser;
    }
    public String getCreateUser()
    {
        return createUser;
    }
    public void setUpdateUser(String updateUser)
    {
        this.updateUser = updateUser;
    }
    public String getUpdateUser()
    {
        return updateUser;
    }
    public void setState(String state)
    {
        this.state = state;
    }
    public String getState()
    {
        return state;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productSeries", getProductSeries())
            .append("scanObject1", getScanObject1())
            .append("scanObject2", getScanObject2())
            .append("axisName", getAxisName())
            .append("neckName", getNeckName())
            .append("tileName", getTileName())
            .append("axisParameterNoPosition", getAxisParameterNoPosition())
            .append("neckParameterPosition", getNeckParameterPosition())
            .append("axisValue", getAxisValue())
            .append("neckValue", getNeckValue())
            .append("tileColor", getTileColor())
            .append("createUser", getCreateUser())
            .append("createTime", getCreateTime())
            .append("updateUser", getUpdateUser())
            .append("updateTime", getUpdateTime())
            .append("state", getState())
            .toString();
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/mapper/DaTileMatchRulesMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.jcdm.main.da.tileMatchRules.mapper;
import java.util.List;
import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules;
/**
 * é…ç“¦è§„则Mapper接口
 *
 * @author jiang
 * @date 2024-01-24
 */
public interface DaTileMatchRulesMapper
{
    /**
     * æŸ¥è¯¢é…ç“¦è§„则
     *
     * @param id é…ç“¦è§„则主键
     * @return é…ç“¦è§„则
     */
    public DaTileMatchRules selectDaTileMatchRulesById(Long id);
    /**
     * æŸ¥è¯¢é…ç“¦è§„则列表
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return é…ç“¦è§„则集合
     */
    public List<DaTileMatchRules> selectDaTileMatchRulesList(DaTileMatchRules daTileMatchRules);
    /**
     * æ–°å¢žé…ç“¦è§„则
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return ç»“æžœ
     */
    public int insertDaTileMatchRules(DaTileMatchRules daTileMatchRules);
    /**
     * ä¿®æ”¹é…ç“¦è§„则
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return ç»“æžœ
     */
    public int updateDaTileMatchRules(DaTileMatchRules daTileMatchRules);
    /**
     * åˆ é™¤é…ç“¦è§„则
     *
     * @param id é…ç“¦è§„则主键
     * @return ç»“æžœ
     */
    public int deleteDaTileMatchRulesById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤é…ç“¦è§„则
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteDaTileMatchRulesByIds(Long[] ids);
}
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/IDaTileMatchRulesService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.jcdm.main.da.tileMatchRules.service;
import java.util.List;
import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules;
/**
 * é…ç“¦è§„则Service接口
 *
 * @author jiang
 * @date 2024-01-24
 */
public interface IDaTileMatchRulesService
{
    /**
     * æŸ¥è¯¢é…ç“¦è§„则
     *
     * @param id é…ç“¦è§„则主键
     * @return é…ç“¦è§„则
     */
    public DaTileMatchRules selectDaTileMatchRulesById(Long id);
    /**
     * æŸ¥è¯¢é…ç“¦è§„则列表
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return é…ç“¦è§„则集合
     */
    public List<DaTileMatchRules> selectDaTileMatchRulesList(DaTileMatchRules daTileMatchRules);
    /**
     * æ–°å¢žé…ç“¦è§„则
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return ç»“æžœ
     */
    public int insertDaTileMatchRules(DaTileMatchRules daTileMatchRules);
    /**
     * ä¿®æ”¹é…ç“¦è§„则
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return ç»“æžœ
     */
    public int updateDaTileMatchRules(DaTileMatchRules daTileMatchRules);
    /**
     * æ‰¹é‡åˆ é™¤é…ç“¦è§„则
     *
     * @param ids éœ€è¦åˆ é™¤çš„配瓦规则主键集合
     * @return ç»“æžœ
     */
    public int deleteDaTileMatchRulesByIds(Long[] ids);
    /**
     * åˆ é™¤é…ç“¦è§„则信息
     *
     * @param id é…ç“¦è§„则主键
     * @return ç»“æžœ
     */
    public int deleteDaTileMatchRulesById(Long id);
}
jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/impl/DaTileMatchRulesServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
package com.jcdm.main.da.tileMatchRules.service.impl;
import java.util.List;
import com.jcdm.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.jcdm.main.da.tileMatchRules.mapper.DaTileMatchRulesMapper;
import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules;
import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService;
/**
 * é…ç“¦è§„则Service业务层处理
 *
 * @author jiang
 * @date 2024-01-24
 */
@Service
public class DaTileMatchRulesServiceImpl implements IDaTileMatchRulesService
{
    @Autowired
    private DaTileMatchRulesMapper daTileMatchRulesMapper;
    /**
     * æŸ¥è¯¢é…ç“¦è§„则
     *
     * @param id é…ç“¦è§„则主键
     * @return é…ç“¦è§„则
     */
    @Override
    public DaTileMatchRules selectDaTileMatchRulesById(Long id)
    {
        return daTileMatchRulesMapper.selectDaTileMatchRulesById(id);
    }
    /**
     * æŸ¥è¯¢é…ç“¦è§„则列表
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return é…ç“¦è§„则
     */
    @Override
    public List<DaTileMatchRules> selectDaTileMatchRulesList(DaTileMatchRules daTileMatchRules)
    {
        return daTileMatchRulesMapper.selectDaTileMatchRulesList(daTileMatchRules);
    }
    /**
     * æ–°å¢žé…ç“¦è§„则
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return ç»“æžœ
     */
    @Override
    public int insertDaTileMatchRules(DaTileMatchRules daTileMatchRules)
    {
        daTileMatchRules.setCreateTime(DateUtils.getNowDate());
        return daTileMatchRulesMapper.insertDaTileMatchRules(daTileMatchRules);
    }
    /**
     * ä¿®æ”¹é…ç“¦è§„则
     *
     * @param daTileMatchRules é…ç“¦è§„则
     * @return ç»“æžœ
     */
    @Override
    public int updateDaTileMatchRules(DaTileMatchRules daTileMatchRules)
    {
        daTileMatchRules.setUpdateTime(DateUtils.getNowDate());
        return daTileMatchRulesMapper.updateDaTileMatchRules(daTileMatchRules);
    }
    /**
     * æ‰¹é‡åˆ é™¤é…ç“¦è§„则
     *
     * @param ids éœ€è¦åˆ é™¤çš„配瓦规则主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaTileMatchRulesByIds(Long[] ids)
    {
        return daTileMatchRulesMapper.deleteDaTileMatchRulesByIds(ids);
    }
    /**
     * åˆ é™¤é…ç“¦è§„则信息
     *
     * @param id é…ç“¦è§„则主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteDaTileMatchRulesById(Long id)
    {
        return daTileMatchRulesMapper.deleteDaTileMatchRulesById(id);
    }
}
jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml
@@ -99,6 +99,10 @@
            </if>
        </where>
    </select>
    <select id="getProduceNumToday" resultType="java.lang.Integer">
        select count(*) from bs_order_scheduling
        where ${queryField} BETWEEN #{startTime} AND #{endTime}
    </select>
    <insert id="insertBsOrderScheduling" parameterType="BsOrderScheduling" useGeneratedKeys="true" keyProperty="id">
jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,129 @@
<?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.tileMatchRules.mapper.DaTileMatchRulesMapper">
    <resultMap type="DaTileMatchRules" id="DaTileMatchRulesResult">
        <result property="id"    column="id"    />
        <result property="productSeries"    column="product_series"    />
        <result property="scanObject1"    column="scan_object1"    />
        <result property="scanObject2"    column="scan_object2"    />
        <result property="axisName"    column="axis_name"    />
        <result property="neckName"    column="neck_name"    />
        <result property="tileName"    column="tile_name"    />
        <result property="axisParameterNoPosition"    column="axis_parameter_no_position"    />
        <result property="neckParameterPosition"    column="neck_parameter_position"    />
        <result property="axisValue"    column="axis_value"    />
        <result property="neckValue"    column="neck_value"    />
        <result property="tileColor"    column="tile_color"    />
        <result property="createUser"    column="create_user"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateUser"    column="update_user"    />
        <result property="updateTime"    column="update_time"    />
        <result property="state"    column="state"    />
    </resultMap>
    <sql id="selectDaTileMatchRulesVo">
        select id, product_series, scan_object1, scan_object2, axis_name, neck_name, tile_name, axis_parameter_no_position, neck_parameter_position, axis_value, neck_value, tile_color, create_user, create_time, update_user, update_time, state from da_tile_match_rules
    </sql>
    <select id="selectDaTileMatchRulesList" parameterType="DaTileMatchRules" resultMap="DaTileMatchRulesResult">
        <include refid="selectDaTileMatchRulesVo"/>
        <where>
            <if test="productSeries != null  and productSeries != ''"> and product_series = #{productSeries}</if>
            <if test="scanObject1 != null  and scanObject1 != ''"> and scan_object1 = #{scanObject1}</if>
            <if test="scanObject2 != null  and scanObject2 != ''"> and scan_object2 = #{scanObject2}</if>
            <if test="axisName != null  and axisName != ''"> and axis_name like concat('%', #{axisName}, '%')</if>
            <if test="neckName != null  and neckName != ''"> and neck_name like concat('%', #{neckName}, '%')</if>
            <if test="tileName != null  and tileName != ''"> and tile_name like concat('%', #{tileName}, '%')</if>
            <if test="axisParameterNoPosition != null "> and axis_parameter_no_position = #{axisParameterNoPosition}</if>
            <if test="neckParameterPosition != null "> and neck_parameter_position = #{neckParameterPosition}</if>
            <if test="axisValue != null  and axisValue != ''"> and axis_value = #{axisValue}</if>
            <if test="neckValue != null  and neckValue != ''"> and neck_value = #{neckValue}</if>
            <if test="tileColor != null  and tileColor != ''"> and tile_color = #{tileColor}</if>
            <if test="createUser != null  and createUser != ''"> and create_user = #{createUser}</if>
            <if test="updateUser != null  and updateUser != ''"> and update_user = #{updateUser}</if>
            <if test="state != null  and state != ''"> and state = #{state}</if>
        </where>
    </select>
    <select id="selectDaTileMatchRulesById" parameterType="Long" resultMap="DaTileMatchRulesResult">
        <include refid="selectDaTileMatchRulesVo"/>
        where id = #{id}
    </select>
    <insert id="insertDaTileMatchRules" parameterType="DaTileMatchRules" useGeneratedKeys="true" keyProperty="id">
        insert into da_tile_match_rules
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="productSeries != null">product_series,</if>
            <if test="scanObject1 != null">scan_object1,</if>
            <if test="scanObject2 != null">scan_object2,</if>
            <if test="axisName != null">axis_name,</if>
            <if test="neckName != null">neck_name,</if>
            <if test="tileName != null">tile_name,</if>
            <if test="axisParameterNoPosition != null">axis_parameter_no_position,</if>
            <if test="neckParameterPosition != null">neck_parameter_position,</if>
            <if test="axisValue != null">axis_value,</if>
            <if test="neckValue != null">neck_value,</if>
            <if test="tileColor != null">tile_color,</if>
            <if test="createUser != null">create_user,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateUser != null">update_user,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="state != null">state,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="productSeries != null">#{productSeries},</if>
            <if test="scanObject1 != null">#{scanObject1},</if>
            <if test="scanObject2 != null">#{scanObject2},</if>
            <if test="axisName != null">#{axisName},</if>
            <if test="neckName != null">#{neckName},</if>
            <if test="tileName != null">#{tileName},</if>
            <if test="axisParameterNoPosition != null">#{axisParameterNoPosition},</if>
            <if test="neckParameterPosition != null">#{neckParameterPosition},</if>
            <if test="axisValue != null">#{axisValue},</if>
            <if test="neckValue != null">#{neckValue},</if>
            <if test="tileColor != null">#{tileColor},</if>
            <if test="createUser != null">#{createUser},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateUser != null">#{updateUser},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="state != null">#{state},</if>
         </trim>
    </insert>
    <update id="updateDaTileMatchRules" parameterType="DaTileMatchRules">
        update da_tile_match_rules
        <trim prefix="SET" suffixOverrides=",">
            <if test="productSeries != null">product_series = #{productSeries},</if>
            <if test="scanObject1 != null">scan_object1 = #{scanObject1},</if>
            <if test="scanObject2 != null">scan_object2 = #{scanObject2},</if>
            <if test="axisName != null">axis_name = #{axisName},</if>
            <if test="neckName != null">neck_name = #{neckName},</if>
            <if test="tileName != null">tile_name = #{tileName},</if>
            <if test="axisParameterNoPosition != null">axis_parameter_no_position = #{axisParameterNoPosition},</if>
            <if test="neckParameterPosition != null">neck_parameter_position = #{neckParameterPosition},</if>
            <if test="axisValue != null">axis_value = #{axisValue},</if>
            <if test="neckValue != null">neck_value = #{neckValue},</if>
            <if test="tileColor != null">tile_color = #{tileColor},</if>
            <if test="createUser != null">create_user = #{createUser},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateUser != null">update_user = #{updateUser},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="state != null">state = #{state},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteDaTileMatchRulesById" parameterType="Long">
        delete from da_tile_match_rules where id = #{id}
    </delete>
    <delete id="deleteDaTileMatchRulesByIds" parameterType="String">
        delete from da_tile_match_rules where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢é…ç“¦è§„则列表
export function listTileMatchRules(query) {
  return request({
    url: '/da/tileMatchRules/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢é…ç“¦è§„则详细
export function getTileMatchRules(id) {
  return request({
    url: '/da/tileMatchRules/' + id,
    method: 'get'
  })
}
// æ–°å¢žé…ç“¦è§„则
export function addTileMatchRules(data) {
  return request({
    url: '/da/tileMatchRules',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹é…ç“¦è§„则
export function updateTileMatchRules(data) {
  return request({
    url: '/da/tileMatchRules',
    method: 'put',
    data: data
  })
}
// åˆ é™¤é…ç“¦è§„则
export function delTileMatchRules(id) {
  return request({
    url: '/da/tileMatchRules/' + id,
    method: 'delete'
  })
}
jcdm-ui/src/api/main/da/passingStationCollection/passingStationCollection.js
@@ -9,6 +9,15 @@
  })
}
// èŽ·å–首页单日累计量产数据
export function getProduceNumToday(query) {
  return request({
    url: '/da/passingStationCollection/getProduceNumToday',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢äº§å“è¿‡ç«™é‡‡é›†åˆ—表
export function insertRepairRecordByIds(query) {
  return request({
jcdm-ui/src/views/dashboard/PanelGroup.vue
@@ -1,234 +1,202 @@
<template>
    <el-card class="box-card">
  <el-row :gutter="40" class="panel-group">
    <el-card class="bottom-card">
      <div slot="header" class="clearfix">
        <span class="top2">单日累计产量</span>
        <span style="font-size: 20px;font-weight: bold">单日累计产量</span>
      </div>
      <el-row :gutter="40" class="panel-group">
    <el-col  :span="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
        <div class="card-panel-icon-wrapper icon-people">
          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            åˆç®±ä¸Šçº¿
          </div>
          <count-to :start-val="0" :end-val="10200" :duration="2600" class="card-panel-num" />
        </div>
      </div>
    </el-col>
    <el-col  :span="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('messages')">
        <div class="card-panel-icon-wrapper icon-message">
          <svg-icon icon-class="message" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            åˆç®±ä¸‹çº¿
          </div>
          <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
        </div>
      </div>
    </el-col>
    <el-col  :span="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('purchases')">
        <div class="card-panel-icon-wrapper icon-money">
          <svg-icon icon-class="money" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            æ€»è£…上线
          </div>
          <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
        </div>
      </div>
    </el-col>
    <el-col :span="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
        <div class="card-panel-icon-wrapper icon-shopping">
          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            æ€»è£…下线
          </div>
          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
        </div>
      </div>
    </el-col>
    <el-col  :span="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
        <div class="card-panel-icon-wrapper icon-shopping">
          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            CVT上线
      <div style="display: flex; margin-top: 20px; height: 80px;">
        <div class="transition-box" style="background-color: limegreen">
          <i class="el-icon-notebook-1"></i>
          <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider>
          <div>
            <span style="margin-left: 20px" class="nextLine">合箱上线</span>
            <span class="nextLine">{{data1}}</span>
          </div>
          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
        </div>
        <div class="transition-box" style="background-color: cornflowerblue">
          <i class="el-icon-setting"></i>
          <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider>
          <div>
            <span style="margin-left: 20px" class="nextLine">合箱下线</span>
            <span class="nextLine">{{data2}}</span>
          </div>
        </div>
        <div class="transition-box" style="background-color: mediumpurple">
          <i class="el-icon-s-unfold"></i>
          <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider>
          <div>
            <span style="margin-left: 20px">总装上线</span>
            <span class="nextLine">{{data3}}</span>
          </div>
        </div>
        <div class="transition-box" style="background-color: green">
          <i class="el-icon-cpu"></i>
          <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider>
          <div>
            <span style="margin-left: 20px">总装下线</span>
            <span class="nextLine">{{data4}}</span>
          </div>
        </div>
        <div class="transition-box" style="background-color: orange">
          <i class="el-icon-upload2"></i>
          <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider>
          <div>
            <span style="margin-left: 20px">CVT上线</span>
            <span class="nextLine">{{data5}}</span>
          </div>
        </div>
        <div class="transition-box" style="background-color: darkslategray">
          <i class="el-icon-finished"></i>
          <el-divider direction="vertical" content-position="left" style="height: 20px"></el-divider>
          <div>
            <span style="margin-left: 20px">CVT下线</span>
            <span class="nextLine">{{data6}}</span>
          </div>
        </div>
      </div>
    </el-col>
    <el-col  :span="4" class="card-panel-col">
      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
        <div class="card-panel-icon-wrapper icon-shopping">
          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
        </div>
        <div class="card-panel-description">
          <div class="card-panel-text">
            CVT下线
          </div>
          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
        </div>
      </div>
    </el-col>
      </el-row>
    </el-card>
  </el-row>
</template>
<script>
import CountTo from 'vue-count-to'
import { getProduceNumToday } from '@/api/main/da/passingStationCollection/passingStationCollection'
export default {
  components: {
    CountTo
  },
  data(){
    return{
      query1:'box_closing_online_time',
      data1:'',
      query2:'closing_box_offline_time',
      data2:'',
      query3:'final_assembly_launch_time',
      data3:'',
      query4:'final_assembly_offline_time',
      data4:'',
      query5:'cvt_launch_time',
      data5:'',
      query6:'cvt_offline_time',
      data6:'',
    }
  },
  methods: {
    handleSetLineChartData(type) {
      this.$emit('handleSetLineChartData', type)
    },
    getData1(){
      getProduceNumToday({fieldName:this.query1}).then(response => {
        this.data1 = response.data;
      });
    },
    getData2(){
      getProduceNumToday({fieldName:this.query2}).then(response => {
        this.data2 = response.data;
      });
    },
    getData3(){
      getProduceNumToday({fieldName:this.query3}).then(response => {
        this.data3 = response.data;
      });
    },
    getData4(){
      getProduceNumToday({fieldName:this.query4}).then(response => {
        this.data4 = response.data;
      });
    },
    getData5(){
      getProduceNumToday({fieldName:this.query5}).then(response => {
        this.data5 = response.data;
      });
    },
    getData6(){
      getProduceNumToday({fieldName:this.query6}).then(response => {
        this.data6 = response.data;
      });
    }
  },
  mounted() {
    this.getData1(),
    this.getData2(),
    this.getData3(),
    this.getData4(),
    this.getData5(),
    this.getData6()
  }
}
</script>
<style lang="scss" scoped>
//.bottom-card{
//  padding: 15px 20px 20px 20px;
//  height: auto;
//  width: 1272px;
//  margin-left: 20px;
//  justify-content: center;
//  column-width: max-content;
//}
.top2{
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 0px;
.transition-box {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  width: 200px;
  height: 80px;
  border-radius: 4px;
  text-align: center;
  color: #fff;
  padding: 40px 20px;
  box-sizing: border-box;
  margin-right: 10px;
}
.panel-group {
  width: 1442px;
  .card-panel-col {
    margin-bottom: 15px;
  }
  .card-panel {
    margin-left: -13px;
    width: 220px;
    height: 108px;
    cursor: pointer;
    font-size: 12px;
    position: relative;
    overflow: hidden;
    color: #666;
    background: #fff;
    box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
    border-color: rgba(0, 0, 0, .05);
    &:hover {
      .card-panel-icon-wrapper {
        color: #fff;
      }
      .icon-people {
        background: #40c9c6;
      }
      .icon-message {
        background: #36a3f7;
      }
      .icon-money {
        background: #f4516c;
      }
      .icon-shopping {
        background: #34bfa3
      }
    }
    .icon-people {
      color: #40c9c6;
    }
    .icon-message {
      color: #36a3f7;
    }
    .icon-money {
      color: #f4516c;
    }
    .icon-shopping {
      color: #34bfa3
    }
    .card-panel-icon-wrapper {
      float: left;
      margin: 14px 0 0 10px;
      padding: 16px;
      transition: all 0.38s ease-out;
      border-radius: 6px;
    }
    .card-panel-icon {
      float: left;
      font-size: 48px;
    }
    .card-panel-description {
      float: right;
      font-weight: bold;
      margin: 15px 30px 0 0;
      //margin-left: 0px;
      padding: 15px 15px;
      .card-panel-text {
        line-height: 14px;
        color: rgba(0, 0, 0, 0.45);
        font-size: 12px;
        margin-bottom: 9px;
      }
      .card-panel-num {
        font-size: 18px;
      }
    }
  }
.bottom-card{
  padding: 0px 10px 20px 10px;
  height: auto;
  width: 1292px;
  margin-left: 20px;
  justify-content: center;
  column-width: max-content;
}
.el-icon-notebook-1{
  font-size: 40px;
  display: flex;
  justify-content: left;
}
.el-icon-setting{
  font-size: 40px;
  display: flex;
  justify-content: left;
}
.el-icon-s-unfold{
  font-size: 40px;
  display: flex;
  justify-content: left;
}
.el-icon-cpu{
  font-size: 40px;
  display: flex;
  justify-content: left;
}
.el-icon-upload2 {
  font-size: 40px;
  display: flex;
  justify-content: left;
}
.el-icon-finished{
  font-size: 40px;
  display: flex;
  justify-content: left;
}
.el-divider--vertical{
  width:2px;
  height:40px;        //更改竖向分割线长度
  vertical-align:middle;
  position:relative;
}
.nextLine{
  display: block;
  margin-left: 20px;
}
@media (max-width:550px) {
  .card-panel-description {
    display: none;
  }
  .card-panel-icon-wrapper {
    float: none !important;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    .svg-icon {
      display: block;
      margin: 14px auto !important;
      float: none !important;
    }
  }
}
</style>
jcdm-ui/src/views/index.vue
@@ -1,23 +1,19 @@
<template>
  <div class="dashboard-editor-container">
    <panel-group @handleSetLineChartData="handleSetLineChartData" />
    <el-row style="margin-top: 12px" >
    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
    <panel-group style="margin-bottom: 10px" @handleSetLineChartData="handleSetLineChartData" />
    <el-row style="background:#fff;padding:16px 16px 0; width: 1292px">
      <el-col :xs="24" :sm="12">
        <el-card>
          <pie-chart />
        </el-card>
        <pie-chart />
      </el-col>
      <el-col :xs="24" :sm="12">
        <el-card>
          <line-chart :chart-data="lineChartData" />
        </el-card>
        <line-chart :chart-data="lineChartData" />
      </el-col>
    </el-row>
    </el-row>
  </div>
</template>
@@ -73,7 +69,7 @@
<style lang="scss" scoped>
.dashboard-editor-container {
  padding: 32px;
  padding: 20px;
  background-color: rgb(240, 242, 245);
  position: relative;
jcdm-ui/src/views/main/da/tileMatchRules/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,473 @@
<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="productSeries">
          <el-input
            v-model="queryParams.productSeries"
            placeholder="请输入产品系列"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
<!--        <el-form-item label="扫码对象1" prop="scanObject1">-->
<!--          <el-input-->
<!--            v-model="queryParams.scanObject1"-->
<!--            placeholder="请输入扫码对象1"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="扫码对象2" prop="scanObject2">-->
<!--          <el-input-->
<!--            v-model="queryParams.scanObject2"-->
<!--            placeholder="请输入扫码对象2"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="轴名称" prop="axisName">-->
<!--          <el-input-->
<!--            v-model="queryParams.axisName"-->
<!--            placeholder="请输入轴名称"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="颈名称" prop="neckName">-->
<!--          <el-input-->
<!--            v-model="queryParams.neckName"-->
<!--            placeholder="请输入颈名称"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
        <el-form-item label="瓦名称" prop="tileName">
          <el-input
            v-model="queryParams.tileName"
            placeholder="请输入瓦名称"
            clearable
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
<!--        <el-form-item label="轴参数数位置" prop="axisParameterNoPosition">-->
<!--          <el-input-->
<!--            v-model="queryParams.axisParameterNoPosition"-->
<!--            placeholder="请输入轴参数数位置"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="颈参数数位置" prop="neckParameterPosition">-->
<!--          <el-input-->
<!--            v-model="queryParams.neckParameterPosition"-->
<!--            placeholder="请输入颈参数数位置"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="轴值" prop="axisValue">-->
<!--          <el-input-->
<!--            v-model="queryParams.axisValue"-->
<!--            placeholder="请输入轴值"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="颈值" prop="neckValue">-->
<!--          <el-input-->
<!--            v-model="queryParams.neckValue"-->
<!--            placeholder="请输入颈值"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="瓦颜色" prop="tileColor">-->
<!--          <el-input-->
<!--            v-model="queryParams.tileColor"-->
<!--            placeholder="请输入瓦颜色"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="创建用户" prop="createUser">-->
<!--          <el-input-->
<!--            v-model="queryParams.createUser"-->
<!--            placeholder="请输入创建用户"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
<!--        <el-form-item label="更改用户" prop="updateUser">-->
<!--          <el-input-->
<!--            v-model="queryParams.updateUser"-->
<!--            placeholder="请输入更改用户"-->
<!--            clearable-->
<!--            @keyup.enter.native="handleQuery"-->
<!--          />-->
<!--        </el-form-item>-->
        <el-form-item label="状态" prop="state">
          <el-input
            v-model="queryParams.state"
            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:tileMatchRules: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:tileMatchRules: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:tileMatchRules: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:tileMatchRules:export']"
          >导出</el-button>
        </el-col>
        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      </el-row>
      <el-table border v-loading="loading" :data="tileMatchRulesList" @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="productSeries">
        </el-table-column>
        <el-table-column label="扫码对象1" align="center" prop="scanObject1" width="100">
        </el-table-column>
        <el-table-column label="扫码对象2" align="center" prop="scanObject2" width="100">
        </el-table-column>
        <el-table-column label="轴名称" align="center" prop="axisName">
        </el-table-column>
        <el-table-column label="颈名称" align="center" prop="neckName">
        </el-table-column>
        <el-table-column label="瓦名称" align="center" prop="tileName">
        </el-table-column>
        <el-table-column label="轴参数位置" align="center" prop="axisParameterNoPosition" width="100">
        </el-table-column>
        <el-table-column label="颈参数位置" align="center" prop="neckParameterPosition" width="100">
        </el-table-column>
        <el-table-column label="轴值" align="center" prop="axisValue">
        </el-table-column>
        <el-table-column label="颈值" align="center" prop="neckValue">
        </el-table-column>
        <el-table-column label="瓦颜色" align="center" prop="tileColor">
        </el-table-column>
<!--        <el-table-column label="创建用户" align="center" prop="createUser">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="更改用户" align="center" prop="updateUser">-->
<!--        </el-table-column>-->
        <el-table-column label="状态" align="center" prop="state">
        </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:tileMatchRules:edit']"
            >修改</el-button>
            <el-button
              size="mini"
              type="danger"
              plain
              style="width: 72px"
              icon="el-icon-delete"
              @click="handleDelete(scope.row)"
              v-hasPermi="['da:tileMatchRules: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="productSeries">
          <el-input v-model="form.productSeries" placeholder="请输入产品系列" />
        </el-form-item>
        <el-form-item label="扫码对象1" prop="scanObject1">
          <el-input v-model="form.scanObject1" placeholder="请输入扫码对象1" />
        </el-form-item>
        <el-form-item label="扫码对象2" prop="scanObject2">
          <el-input v-model="form.scanObject2" placeholder="请输入扫码对象2" />
        </el-form-item>
        <el-form-item label="轴名称" prop="axisName">
          <el-input v-model="form.axisName" placeholder="请输入轴名称" />
        </el-form-item>
        <el-form-item label="颈名称" prop="neckName">
          <el-input v-model="form.neckName" placeholder="请输入颈名称" />
        </el-form-item>
        <el-form-item label="瓦名称" prop="tileName">
          <el-input v-model="form.tileName" placeholder="请输入瓦名称" />
        </el-form-item>
        <el-form-item label="轴参数位置" prop="axisParameterNoPosition">
          <el-input v-model="form.axisParameterNoPosition" placeholder="请输入轴参数位置" />
        </el-form-item>
        <el-form-item label="颈参数位置" prop="neckParameterPosition">
          <el-input v-model="form.neckParameterPosition" placeholder="请输入颈参数位置" />
        </el-form-item>
        <el-form-item label="轴值" prop="axisValue">
          <el-input v-model="form.axisValue" placeholder="请输入轴值" />
        </el-form-item>
        <el-form-item label="颈值" prop="neckValue">
          <el-input v-model="form.neckValue" placeholder="请输入颈值" />
        </el-form-item>
        <el-form-item label="瓦颜色" prop="tileColor">
          <el-input v-model="form.tileColor" placeholder="请输入瓦颜色" />
        </el-form-item>
        <el-form-item label="创建用户" prop="createUser">
          <el-input v-model="form.createUser" placeholder="请输入创建用户" />
        </el-form-item>
        <el-form-item label="更改用户" prop="updateUser">
          <el-input v-model="form.updateUser" placeholder="请输入更改用户" />
        </el-form-item>
        <el-form-item label="状态" prop="state">
          <el-input v-model="form.state" 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 { listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules } from "@/api/main/bs/tileMatchRules/tileMatchRules";
export default {
  name: "TileMatchRules",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      titleName: "",
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•ä¸ªç¦ç”¨
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // é…ç“¦è§„则表格数据
      tileMatchRulesList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        productSeries: null,
        scanObject1: null,
        scanObject2: null,
        axisName: null,
        neckName: null,
        tileName: null,
        axisParameterNoPosition: null,
        neckParameterPosition: null,
        axisValue: null,
        neckValue: null,
        tileColor: null,
        createUser: null,
        updateUser: null,
        state: null
      },
      // è¡¨å•å‚æ•°
      form: {},
      // è¡¨å•æ ¡éªŒ
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢é…ç“¦è§„则列表 */
    getList() {
      this.loading = true;
      listTileMatchRules(this.queryParams).then(response => {
        this.tileMatchRulesList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•é‡ç½®
    reset() {
      this.form = {
        id: null,
        productSeries: null,
        scanObject1: null,
        scanObject2: null,
        axisName: null,
        neckName: null,
        tileName: null,
        axisParameterNoPosition: null,
        neckParameterPosition: null,
        axisValue: null,
        neckValue: null,
        tileColor: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        state: 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
      getTileMatchRules(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) {
            updateTileMatchRules(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addTileMatchRules(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 delTileMatchRules(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('da/tileMatchRules/export', {
        ...this.queryParams
      }, `tileMatchRules_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>