BOM
hdy
2024-11-26 f47bd7409609995c7eebb81a0b92b6e4aff0bdbf
BOM
已添加16个文件
已修改3个文件
1848 ■■■■■ 文件已修改
billion-main/src/main/java/com/billion/main/bs/controller/BsBomChildInfoController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/controller/BsBomInfoController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/mapper/BsBomChildInfoMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/mapper/BsBomInfoMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/bs/BsBomChildInfoMapper.xml 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/bs/BsBomInfoMapper.xml 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/api/main/bs/bomChildInfo.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/api/main/bs/bomInfo.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/router/index.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/bomChildInfo/index.vue 381 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/bomInfo/index.vue 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/sc/collectionParamConf/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/sc/opcConf/index.vue 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/controller/BsBomChildInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.bs.controller;
import com.billion.common.annotation.Log;
import com.billion.common.core.controller.BaseController;
import com.billion.common.core.domain.AjaxResult;
import com.billion.common.core.page.TableDataInfo;
import com.billion.common.enums.BusinessType;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.main.bs.domain.BsBomChildInfo;
import com.billion.main.bs.service.IBsBomChildInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * åŸºç¡€BOM子信息Controller
 *
 * @author HDY
 * @date 2024-11-25
 */
@RestController
@RequestMapping("/bs/bomChildInfo")
public class BsBomChildInfoController extends BaseController
{
    @Autowired
    private IBsBomChildInfoService bsBomChildInfoService;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bomChildInfo:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsBomChildInfo bsBomChildInfo)
    {
        startPage();
        List<BsBomChildInfo> list = bsBomChildInfoService.selectBsBomChildInfoList(bsBomChildInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºåŸºç¡€BOM子信息列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bomChildInfo:export')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsBomChildInfo bsBomChildInfo)
    {
        List<BsBomChildInfo> list = bsBomChildInfoService.selectBsBomChildInfoList(bsBomChildInfo);
        ExcelUtil<BsBomChildInfo> util = new ExcelUtil<BsBomChildInfo>(BsBomChildInfo.class);
        util.exportExcel(response, list, "基础BOM子信息数据");
    }
    /**
     * èŽ·å–基础BOM子信息详细信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomChildInfo:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsBomChildInfoService.selectBsBomChildInfoById(id));
    }
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomChildInfo:add')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsBomChildInfo bsBomChildInfo)
    {
        return toAjax(bsBomChildInfoService.insertBsBomChildInfo(bsBomChildInfo));
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomChildInfo:edit')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsBomChildInfo bsBomChildInfo)
    {
        return toAjax(bsBomChildInfoService.updateBsBomChildInfo(bsBomChildInfo));
    }
    /**
     * åˆ é™¤åŸºç¡€BOM子信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomChildInfo:remove')")
    @Log(title = "基础BOM子信息", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsBomChildInfoService.deleteBsBomChildInfoByIds(ids));
    }
}
billion-main/src/main/java/com/billion/main/bs/controller/BsBomInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.bs.controller;
import com.billion.common.annotation.Log;
import com.billion.common.core.controller.BaseController;
import com.billion.common.core.domain.AjaxResult;
import com.billion.common.core.page.TableDataInfo;
import com.billion.common.enums.BusinessType;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.main.bs.domain.BsBomInfo;
import com.billion.main.bs.service.IBsBomInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * åŸºç¡€BOMController
 *
 * @author HDY
 * @date 2024-11-25
 */
@RestController
@RequestMapping("/bs/bomInfo")
public class BsBomInfoController extends BaseController
{
    @Autowired
    private IBsBomInfoService bsBomInfoService;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bomInfo:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsBomInfo bsBomInfo)
    {
        startPage();
        List<BsBomInfo> list = bsBomInfoService.selectBsBomInfoList(bsBomInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºåŸºç¡€BOM列表
     */
    @PreAuthorize("@ss.hasPermi('bs:bomInfo:export')")
    @Log(title = "基础BOM", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsBomInfo bsBomInfo)
    {
        List<BsBomInfo> list = bsBomInfoService.selectBsBomInfoList(bsBomInfo);
        ExcelUtil<BsBomInfo> util = new ExcelUtil<BsBomInfo>(BsBomInfo.class);
        util.exportExcel(response, list, "基础BOM数据");
    }
    /**
     * èŽ·å–基础BOM详细信息
     */
    @PreAuthorize("@ss.hasPermi('bs:bomInfo:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsBomInfoService.selectBsBomInfoById(id));
    }
    /**
     * æ–°å¢žåŸºç¡€BOM
     */
    @PreAuthorize("@ss.hasPermi('bs:bomInfo:add')")
    @Log(title = "基础BOM", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsBomInfo bsBomInfo)
    {
        return toAjax(bsBomInfoService.insertBsBomInfo(bsBomInfo));
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     */
    @PreAuthorize("@ss.hasPermi('bs:bomInfo:edit')")
    @Log(title = "基础BOM", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsBomInfo bsBomInfo)
    {
        return toAjax(bsBomInfoService.updateBsBomInfo(bsBomInfo));
    }
    /**
     * åˆ é™¤åŸºç¡€BOM
     */
    @PreAuthorize("@ss.hasPermi('bs:bomInfo:remove')")
    @Log(title = "基础BOM", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsBomInfoService.deleteBsBomInfoByIds(ids));
    }
}
billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.billion.main.bs.domain;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
/**
 * åŸºç¡€BOM子信息对象 bs_bom_child_info
 *
 * @author HDY
 * @date 2024-11-25
 */
@Data
public class BsBomChildInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** äº§å“ç¼–码 */
    @Excel(name = "产品编码")
    private String productCode;
    /** äº§å“åç§° */
    @Excel(name = "产品名称")
    private String productName;
    /** å·¥ä½ç¼–码 */
    @Excel(name = "工位编码")
    private String locationCode;
    /** å·¥ä½åç§° */
    @Excel(name = "工位名称")
    private String locationName;
    /** ç‰©æ–™ç¼–码 */
    @Excel(name = "物料编码")
    private String materialCode;
    /** ç‰©æ–™åç§° */
    @Excel(name = "物料名称")
    private String materialName;
    /** å•è€— */
    @Excel(name = "单耗")
    private BigDecimal costQty;
    /** å•ä½ */
    @Excel(name = "单位")
    private String unit;
    /** BOM编码 */
    @Excel(name = "BOM编码")
    private String bomCode;
    /** å¤‡æ³¨ */
    @Excel(name = "备注")
    private String remark;
    /** é€»è¾‘删除 */
    private String delFlag;
}
billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.billion.main.bs.domain;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
import lombok.Data;
/**
 * åŸºç¡€BOM对象 bs_bom_info
 *
 * @author HDY
 * @date 2024-11-25
 */
@Data
public class BsBomInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** BOM编码 */
    @Excel(name = "BOM编码")
    private String bomCode;
    /** BOM名称 */
    @Excel(name = "BOM名称")
    private String bomName;
    /** äº§å“ç¼–码 */
    @Excel(name = "产品编码")
    private String productCode;
    /** äº§å“åç§° */
    @Excel(name = "产品名称")
    private String productName;
    /** ç‰ˆæœ¬ */
    @Excel(name = "版本")
    private String version;
    /** çŠ¶æ€(字典) */
    @Excel(name = "状态(字典)")
    private String status;
    /** åˆ›å»ºç”¨æˆ· */
    @Excel(name = "创建用户")
    private String createUser;
    /** æ›´æ”¹ç”¨æˆ· */
    @Excel(name = "更改用户")
    private String updateUser;
    /** æ•°æ®æ¥æº */
    @Excel(name = "数据来源")
    private String dataSource;
    /** å¤‡æ³¨ */
    @Excel(name = "备注")
    private String remark;
    /** é€»è¾‘删除 */
    private String delFlag;
}
billion-main/src/main/java/com/billion/main/bs/mapper/BsBomChildInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.bs.domain.BsBomChildInfo;
import java.util.List;
/**
 * åŸºç¡€BOM子信息Mapper接口
 *
 * @author HDY
 * @date 2024-11-25
 */
public interface BsBomChildInfoMapper extends BaseMapper<BsBomChildInfo>
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return åŸºç¡€BOM子信息
     */
    public BsBomChildInfo selectBsBomChildInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return åŸºç¡€BOM子信息集合
     */
    public List<BsBomChildInfo> selectBsBomChildInfoList(BsBomChildInfo bsBomChildInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int insertBsBomChildInfo(BsBomChildInfo bsBomChildInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int updateBsBomChildInfo(BsBomChildInfo bsBomChildInfo);
    /**
     * åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return ç»“æžœ
     */
    public int deleteBsBomChildInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteBsBomChildInfoByIds(Long[] ids);
}
billion-main/src/main/java/com/billion/main/bs/mapper/BsBomInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.bs.domain.BsBomInfo;
import java.util.List;
/**
 * åŸºç¡€BOMMapper接口
 *
 * @author HDY
 * @date 2024-11-25
 */
public interface BsBomInfoMapper extends BaseMapper<BsBomInfo>
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return åŸºç¡€BOM
     */
    public BsBomInfo selectBsBomInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return åŸºç¡€BOM集合
     */
    public List<BsBomInfo> selectBsBomInfoList(BsBomInfo bsBomInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int insertBsBomInfo(BsBomInfo bsBomInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int updateBsBomInfo(BsBomInfo bsBomInfo);
    /**
     * åˆ é™¤åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return ç»“æžœ
     */
    public int deleteBsBomInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM
     *
     * @param ids éœ€è¦åˆ é™¤çš„数据主键集合
     * @return ç»“æžœ
     */
    public int deleteBsBomInfoByIds(Long[] ids);
}
billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.bs.domain.BsBomChildInfo;
import java.util.List;
/**
 * åŸºç¡€BOM子信息Service接口
 *
 * @author HDY
 * @date 2024-11-25
 */
public interface IBsBomChildInfoService extends IService<BsBomChildInfo>
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return åŸºç¡€BOM子信息
     */
    public BsBomChildInfo selectBsBomChildInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return åŸºç¡€BOM子信息集合
     */
    public List<BsBomChildInfo> selectBsBomChildInfoList(BsBomChildInfo bsBomChildInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int insertBsBomChildInfo(BsBomChildInfo bsBomChildInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    public int updateBsBomChildInfo(BsBomChildInfo bsBomChildInfo);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM子信息主键集合
     * @return ç»“æžœ
     */
    public int deleteBsBomChildInfoByIds(Long[] ids);
    /**
     * åˆ é™¤åŸºç¡€BOM子信息信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return ç»“æžœ
     */
    public int deleteBsBomChildInfoById(Long id);
}
billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.bs.domain.BsBomInfo;
import java.util.List;
/**
 * åŸºç¡€BOMService接口
 *
 * @author HDY
 * @date 2024-11-25
 */
public interface IBsBomInfoService extends IService<BsBomInfo>
{
    /**
     * æŸ¥è¯¢åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return åŸºç¡€BOM
     */
    public BsBomInfo selectBsBomInfoById(Long id);
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return åŸºç¡€BOM集合
     */
    public List<BsBomInfo> selectBsBomInfoList(BsBomInfo bsBomInfo);
    /**
     * æ–°å¢žåŸºç¡€BOM
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int insertBsBomInfo(BsBomInfo bsBomInfo);
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    public int updateBsBomInfo(BsBomInfo bsBomInfo);
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM主键集合
     * @return ç»“æžœ
     */
    public int deleteBsBomInfoByIds(Long[] ids);
    /**
     * åˆ é™¤åŸºç¡€BOM信息
     *
     * @param id åŸºç¡€BOM主键
     * @return ç»“æžœ
     */
    public int deleteBsBomInfoById(Long id);
}
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package com.billion.main.bs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.main.bs.domain.BsBomChildInfo;
import com.billion.main.bs.mapper.BsBomChildInfoMapper;
import com.billion.main.bs.service.IBsBomChildInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * åŸºç¡€BOM子信息Service业务层处理
 *
 * @author HDY
 * @date 2024-11-25
 */
@Service
public class BsBomChildInfoServiceImpl extends ServiceImpl<BsBomChildInfoMapper, BsBomChildInfo> implements IBsBomChildInfoService
{
    @Autowired
    private BsBomChildInfoMapper bsBomChildInfoMapper;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return åŸºç¡€BOM子信息
     */
    @Override
    public BsBomChildInfo selectBsBomChildInfoById(Long id)
    {
        return bsBomChildInfoMapper.selectBsBomChildInfoById(id);
    }
    /**
     * æŸ¥è¯¢åŸºç¡€BOM子信息列表
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return åŸºç¡€BOM子信息
     */
    @Override
    public List<BsBomChildInfo> selectBsBomChildInfoList(BsBomChildInfo bsBomChildInfo)
    {
        return bsBomChildInfoMapper.selectBsBomChildInfoList(bsBomChildInfo);
    }
    /**
     * æ–°å¢žåŸºç¡€BOM子信息
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    @Override
    public int insertBsBomChildInfo(BsBomChildInfo bsBomChildInfo)
    {
        return bsBomChildInfoMapper.insertBsBomChildInfo(bsBomChildInfo);
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM子信息
     *
     * @param bsBomChildInfo åŸºç¡€BOM子信息
     * @return ç»“æžœ
     */
    @Override
    public int updateBsBomChildInfo(BsBomChildInfo bsBomChildInfo)
    {
        return bsBomChildInfoMapper.updateBsBomChildInfo(bsBomChildInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM子信息
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM子信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsBomChildInfoByIds(Long[] ids)
    {
        return bsBomChildInfoMapper.deleteBsBomChildInfoByIds(ids);
    }
    /**
     * åˆ é™¤åŸºç¡€BOM子信息信息
     *
     * @param id åŸºç¡€BOM子信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsBomChildInfoById(Long id)
    {
        return bsBomChildInfoMapper.deleteBsBomChildInfoById(id);
    }
}
billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.bs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.utils.DateUtils;
import com.billion.main.bs.domain.BsBomInfo;
import com.billion.main.bs.mapper.BsBomInfoMapper;
import com.billion.main.bs.service.IBsBomInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * åŸºç¡€BOMService业务层处理
 *
 * @author HDY
 * @date 2024-11-25
 */
@Service
public class BsBomInfoServiceImpl extends ServiceImpl<BsBomInfoMapper, BsBomInfo> implements IBsBomInfoService
{
    @Autowired
    private BsBomInfoMapper bsBomInfoMapper;
    /**
     * æŸ¥è¯¢åŸºç¡€BOM
     *
     * @param id åŸºç¡€BOM主键
     * @return åŸºç¡€BOM
     */
    @Override
    public BsBomInfo selectBsBomInfoById(Long id)
    {
        return bsBomInfoMapper.selectBsBomInfoById(id);
    }
    /**
     * æŸ¥è¯¢åŸºç¡€BOM列表
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return åŸºç¡€BOM
     */
    @Override
    public List<BsBomInfo> selectBsBomInfoList(BsBomInfo bsBomInfo)
    {
        return bsBomInfoMapper.selectBsBomInfoList(bsBomInfo);
    }
    /**
     * æ–°å¢žåŸºç¡€BOM
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    @Override
    public int insertBsBomInfo(BsBomInfo bsBomInfo)
    {
        bsBomInfo.setCreateTime(DateUtils.getNowDate());
        return bsBomInfoMapper.insertBsBomInfo(bsBomInfo);
    }
    /**
     * ä¿®æ”¹åŸºç¡€BOM
     *
     * @param bsBomInfo åŸºç¡€BOM
     * @return ç»“æžœ
     */
    @Override
    public int updateBsBomInfo(BsBomInfo bsBomInfo)
    {
        bsBomInfo.setUpdateTime(DateUtils.getNowDate());
        return bsBomInfoMapper.updateBsBomInfo(bsBomInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤åŸºç¡€BOM
     *
     * @param ids éœ€è¦åˆ é™¤çš„基础BOM主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsBomInfoByIds(Long[] ids)
    {
        return bsBomInfoMapper.deleteBsBomInfoByIds(ids);
    }
    /**
     * åˆ é™¤åŸºç¡€BOM信息
     *
     * @param id åŸºç¡€BOM主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsBomInfoById(Long id)
    {
        return bsBomInfoMapper.deleteBsBomInfoById(id);
    }
}
billion-main/src/main/resources/mapper/bs/BsBomChildInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.billion.main.bs.mapper.BsBomChildInfoMapper">
    <resultMap type="BsBomChildInfo" id="BsBomChildInfoResult">
        <result property="id"    column="id"    />
        <result property="productCode"    column="product_code"    />
        <result property="productName"    column="product_name"    />
        <result property="locationCode"    column="location_code"    />
        <result property="locationName"    column="location_name"    />
        <result property="materialCode"    column="material_code"    />
        <result property="materialName"    column="material_name"    />
        <result property="costQty"    column="cost_qty"    />
        <result property="unit"    column="unit"    />
        <result property="remark"    column="remark"    />
        <result property="bomCode"    column="bom_code"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
    <sql id="selectBsBomChildInfoVo">
        select id, product_code, product_name, location_code, location_name, material_code, material_name, cost_qty, unit, remark, bom_code, del_flag from bs_bom_child_info
    </sql>
    <select id="selectBsBomChildInfoList" parameterType="BsBomChildInfo" resultMap="BsBomChildInfoResult">
        <include refid="selectBsBomChildInfoVo"/>
        <where>
            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
            <if test="locationCode != null  and locationCode != ''"> and location_code = #{locationCode}</if>
            <if test="locationName != null  and locationName != ''"> and location_name like concat('%', #{locationName}, '%')</if>
            <if test="materialCode != null  and materialCode != ''"> and material_code = #{materialCode}</if>
            <if test="materialName != null  and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
            <if test="costQty != null "> and cost_qty = #{costQty}</if>
            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
            <if test="bomCode != null  and bomCode != ''"> and bom_code = #{bomCode}</if>
        </where>
    </select>
    <select id="selectBsBomChildInfoById" parameterType="Long" resultMap="BsBomChildInfoResult">
        <include refid="selectBsBomChildInfoVo"/>
        where id = #{id}
    </select>
    <insert id="insertBsBomChildInfo" parameterType="BsBomChildInfo">
        insert into bs_bom_child_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="productCode != null">product_code,</if>
            <if test="productName != null">product_name,</if>
            <if test="locationCode != null">location_code,</if>
            <if test="locationName != null">location_name,</if>
            <if test="materialCode != null">material_code,</if>
            <if test="materialName != null">material_name,</if>
            <if test="costQty != null">cost_qty,</if>
            <if test="unit != null">unit,</if>
            <if test="remark != null">remark,</if>
            <if test="bomCode != null">bom_code,</if>
            <if test="delFlag != null">del_flag,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="productCode != null">#{productCode},</if>
            <if test="productName != null">#{productName},</if>
            <if test="locationCode != null">#{locationCode},</if>
            <if test="locationName != null">#{locationName},</if>
            <if test="materialCode != null">#{materialCode},</if>
            <if test="materialName != null">#{materialName},</if>
            <if test="costQty != null">#{costQty},</if>
            <if test="unit != null">#{unit},</if>
            <if test="remark != null">#{remark},</if>
            <if test="bomCode != null">#{bomCode},</if>
            <if test="delFlag != null">#{delFlag},</if>
         </trim>
    </insert>
    <update id="updateBsBomChildInfo" parameterType="BsBomChildInfo">
        update bs_bom_child_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="productCode != null">product_code = #{productCode},</if>
            <if test="productName != null">product_name = #{productName},</if>
            <if test="locationCode != null">location_code = #{locationCode},</if>
            <if test="locationName != null">location_name = #{locationName},</if>
            <if test="materialCode != null">material_code = #{materialCode},</if>
            <if test="materialName != null">material_name = #{materialName},</if>
            <if test="costQty != null">cost_qty = #{costQty},</if>
            <if test="unit != null">unit = #{unit},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="bomCode != null">bom_code = #{bomCode},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsBomChildInfoById" parameterType="Long">
        delete from bs_bom_child_info where id = #{id}
    </delete>
    <delete id="deleteBsBomChildInfoByIds" parameterType="String">
        delete from bs_bom_child_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
billion-main/src/main/resources/mapper/bs/BsBomInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.billion.main.bs.mapper.BsBomInfoMapper">
    <resultMap type="BsBomInfo" id="BsBomInfoResult">
        <result property="id"    column="id"    />
        <result property="bomCode"    column="bom_code"    />
        <result property="bomName"    column="bom_name"    />
        <result property="productCode"    column="product_code"    />
        <result property="productName"    column="product_name"    />
        <result property="version"    column="version"    />
        <result property="status"    column="status"    />
        <result property="remark"    column="remark"    />
        <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="dataSource"    column="data_source"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
    <sql id="selectBsBomInfoVo">
        select id, bom_code, bom_name, product_code, product_name, version, status, remark, create_user, create_time, update_user, update_time, data_source, del_flag from bs_bom_info
    </sql>
    <select id="selectBsBomInfoList" parameterType="BsBomInfo" resultMap="BsBomInfoResult">
        <include refid="selectBsBomInfoVo"/>
        <where>
            <if test="bomCode != null  and bomCode != ''"> and bom_code = #{bomCode}</if>
            <if test="bomName != null  and bomName != ''"> and bom_name like concat('%', #{bomName}, '%')</if>
            <if test="productCode != null  and productCode != ''"> and product_code = #{productCode}</if>
            <if test="productName != null  and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
            <if test="version != null  and version != ''"> and version = #{version}</if>
            <if test="status != null  and status != ''"> and status = #{status}</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="dataSource != null  and dataSource != ''"> and data_source = #{dataSource}</if>
        </where>
    </select>
    <select id="selectBsBomInfoById" parameterType="Long" resultMap="BsBomInfoResult">
        <include refid="selectBsBomInfoVo"/>
        where id = #{id}
    </select>
    <insert id="insertBsBomInfo" parameterType="BsBomInfo">
        insert into bs_bom_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="bomCode != null">bom_code,</if>
            <if test="bomName != null">bom_name,</if>
            <if test="productCode != null">product_code,</if>
            <if test="productName != null">product_name,</if>
            <if test="version != null">version,</if>
            <if test="status != null">status,</if>
            <if test="remark != null">remark,</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="dataSource != null">data_source,</if>
            <if test="delFlag != null">del_flag,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="bomCode != null">#{bomCode},</if>
            <if test="bomName != null">#{bomName},</if>
            <if test="productCode != null">#{productCode},</if>
            <if test="productName != null">#{productName},</if>
            <if test="version != null">#{version},</if>
            <if test="status != null">#{status},</if>
            <if test="remark != null">#{remark},</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="dataSource != null">#{dataSource},</if>
            <if test="delFlag != null">#{delFlag},</if>
         </trim>
    </insert>
    <update id="updateBsBomInfo" parameterType="BsBomInfo">
        update bs_bom_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="bomCode != null">bom_code = #{bomCode},</if>
            <if test="bomName != null">bom_name = #{bomName},</if>
            <if test="productCode != null">product_code = #{productCode},</if>
            <if test="productName != null">product_name = #{productName},</if>
            <if test="version != null">version = #{version},</if>
            <if test="status != null">status = #{status},</if>
            <if test="remark != null">remark = #{remark},</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="dataSource != null">data_source = #{dataSource},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsBomInfoById" parameterType="Long">
        delete from bs_bom_info where id = #{id}
    </delete>
    <delete id="deleteBsBomInfoByIds" parameterType="String">
        delete from bs_bom_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
billion-ui/src/api/main/bs/bomChildInfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢åŸºç¡€BOM子信息列表
export function listBomChildInfo(query) {
  return request({
    url: '/bs/bomChildInfo/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢åŸºç¡€BOM子信息详细
export function getBomChildInfo(id) {
  return request({
    url: '/bs/bomChildInfo/' + id,
    method: 'get'
  })
}
// æ–°å¢žåŸºç¡€BOM子信息
export function addBomChildInfo(data) {
  return request({
    url: '/bs/bomChildInfo',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹åŸºç¡€BOM子信息
export function updateBomChildInfo(data) {
  return request({
    url: '/bs/bomChildInfo',
    method: 'put',
    data: data
  })
}
// åˆ é™¤åŸºç¡€BOM子信息
export function delBomChildInfo(id) {
  return request({
    url: '/bs/bomChildInfo/' + id,
    method: 'delete'
  })
}
billion-ui/src/api/main/bs/bomInfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢åŸºç¡€BOM列表
export function listBomInfo(query) {
  return request({
    url: '/bs/bomInfo/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢åŸºç¡€BOM详细
export function getBomInfo(id) {
  return request({
    url: '/bs/bomInfo/' + id,
    method: 'get'
  })
}
// æ–°å¢žåŸºç¡€BOM
export function addBomInfo(data) {
  return request({
    url: '/bs/bomInfo',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹åŸºç¡€BOM
export function updateBomInfo(data) {
  return request({
    url: '/bs/bomInfo',
    method: 'put',
    data: data
  })
}
// åˆ é™¤åŸºç¡€BOM
export function delBomInfo(id) {
  return request({
    url: '/bs/bomInfo/' + id,
    method: 'delete'
  })
}
billion-ui/src/router/index.js
@@ -149,6 +149,20 @@
    ]
  },
  {
    path: '/main/bom-data',
    component: Layout,
    hidden: true,
    permissions: ['bs:bomChildInfo:list'],
    children: [
      {
        path: 'index',
        component: () => import('@/views/main/bs/bomChildInfo/index'),
        name: 'Data',
        meta: { title: 'BOM子件信息', activeMenu: '/main/bs/bomChildInfo' }
      }
    ]
  },
  {
    path: '/monitor/job-log',
    component: Layout,
    hidden: true,
billion-ui/src/views/main/bs/bomChildInfo/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,381 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="工位编码" prop="locationCode">
        <el-input
          v-model="queryParams.locationCode"
          placeholder="请输入工位编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="工位名称" prop="locationName">
        <el-input
          v-model="queryParams.locationName"
          placeholder="请输入工位名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="物料编码" prop="materialCode">
        <el-input
          v-model="queryParams.materialCode"
          placeholder="请输入物料编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="物料名称" prop="materialName">
        <el-input
          v-model="queryParams.materialName"
          placeholder="请输入物料名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="单位" prop="unit">
        <el-input
          v-model="queryParams.unit"
          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 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="['bs:bomChildInfo: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="['bs:bomChildInfo: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="['bs:bomChildInfo: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="['bs:bomChildInfo:export']"
        >导出</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-close"
          size="mini"
          @click="handleClose"
        >关闭</el-button>
      </el-col>
    </el-row>
    <el-descriptions class="margin-top" :size="'medium'" border>
      <el-descriptions-item >
        <template slot="label">
          <i class="el-icon-user"></i>
          BOM编码
        </template>
          {{headerInformationData.bomCode}}
      </el-descriptions-item>
      <el-descriptions-item >
        <template slot="label">
          <i class="el-icon-location-outline"></i>
          äº§å“ç¼–码
        </template>
        {{headerInformationData.productCode}}
      </el-descriptions-item>
      <el-descriptions-item >
        <template slot="label">
          <i class="el-icon-tickets"></i>
          äº§å“åç§°
        </template>
        {{headerInformationData.productName}}
      </el-descriptions-item>
    </el-descriptions>
    <el-table border v-loading="loading" :data="bomChildInfoList" @selection-change="handleSelectionChange" v-if="bomChildInfoList.length > 0">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column show-overflow-tooltip="true" label="工位编码" align="center" prop="locationCode" />
      <el-table-column show-overflow-tooltip="true" label="工位名称" align="center" prop="locationName" />
      <el-table-column show-overflow-tooltip="true" label="物料编码" align="center" prop="materialCode" />
      <el-table-column show-overflow-tooltip="true" label="物料名称" align="center" prop="materialName" />
      <el-table-column show-overflow-tooltip="true" label="单耗" align="center" prop="costQty" />
      <el-table-column show-overflow-tooltip="true" label="单位" align="center" prop="unit" />
      <el-table-column show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
    </el-table>
    <el-empty v-else>
      <span slot="description">暂无数据</span>
    </el-empty>
    </el-card>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–修改基础BOM子信息对话框 -->
    <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="BOM编码" prop="bomCode">
          <el-input v-model="querybomCode" :disabled="true" />
        </el-form-item>
        <el-form-item label="工位编码" prop="locationCode">
          <el-input v-model="form.locationCode" placeholder="请输入工位编码" />
        </el-form-item>
        <el-form-item label="工位名称" prop="locationName">
          <el-input v-model="form.locationName" placeholder="请输入工位名称" />
        </el-form-item>
        <el-form-item label="物料编码" prop="materialCode">
          <el-input v-model="form.materialCode" placeholder="请输入物料编码" />
        </el-form-item>
        <el-form-item label="物料名称" prop="materialName">
          <el-input v-model="form.materialName" placeholder="请输入物料名称" />
        </el-form-item>
        <el-form-item label="单耗" prop="costQty">
          <el-input v-model="form.costQty" placeholder="请输入单耗" />
        </el-form-item>
        <el-form-item label="单位" prop="unit">
          <el-input v-model="form.unit" placeholder="请输入单位" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" 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 { listBomChildInfo, getBomChildInfo, delBomChildInfo, addBomChildInfo, updateBomChildInfo } from "@/api/main/bs/bomChildInfo";
import { listBomInfo } from "@/api/main/bs/bomInfo";
export default {
  name: "BomChildInfo",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      titleName: '',
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•ä¸ªç¦ç”¨
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // åŸºç¡€BOM子信息表格数据
      bomChildInfoList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      querybomCode: "",
      queryproductCode: "",
      queryproductName: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        productCode: null,
        productName: null,
        locationCode: null,
        locationName: null,
        materialCode: null,
        materialName: null,
        costQty: null,
        unit: null,
        bomCode: null,
      },
      headerInformationData:{
        bomCode: "",
        productCode: "",
        productName: ""
      },
      // è¡¨å•å‚æ•°
      form: {},
      // è¡¨å•æ ¡éªŒ
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    let bomCode = this.$route.query.bomCode;
    this.queryParams.bomCode = bomCode
    this.querybomCode = bomCode
    this.getList();
    this.headerInformation();
    this.getProcesses();
  },
  methods: {
    /** è¿”回按钮操作 */
    handleClose() {
      const obj = { path: "/main/bs/bomInfo" };
      this.$tab.closeOpenPage(obj);
    },
    /** BOM表头信息 */
    headerInformation() {
      listBomInfo(this.queryParams).then(response => {
        this.headerInformationData = response.rows[0];
      });
    },
    getProcesses() {
      listBomChildInfo(null).then(response => {
        this.options = response.rows;
      });
    },
    /** æŸ¥è¯¢åŸºç¡€BOM子信息列表 */
    getList() {
      this.loading = true;
      listBomChildInfo(this.queryParams).then(response => {
        this.bomChildInfoList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•é‡ç½®
    reset() {
      this.form = {
        id: null,
        productCode: null,
        productName: null,
        locationCode: null,
        locationName: null,
        materialCode: null,
        materialName: null,
        costQty: null,
        unit: null,
        remark: null,
        bomCode: null,
        delFlag: 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.title = "添加基础BOM子信息";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getBomChildInfo(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改基础BOM子信息";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.form.bomCode = this.querybomCode;
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateBomChildInfo(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addBomChildInfo(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除').then(function() {
        return delBomChildInfo(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/bomChildInfo/export', {
        ...this.queryParams
      }, `bomChildInfo_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
billion-ui/src/views/main/bs/bomInfo/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,298 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label-width="100px" label="BOM编码" prop="bomCode">
        <el-input
          v-model="queryParams.bomCode"
          placeholder="请输入BOM编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label-width="100px" label="BOM名称" prop="bomName">
        <el-input
          v-model="queryParams.bomName"
          placeholder="请输入BOM名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="产品编码" prop="productCode">
        <el-input
          v-model="queryParams.productCode"
          placeholder="请输入产品编码"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="产品名称" prop="productName">
        <el-input
          v-model="queryParams.productName"
          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-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="['bs:bomInfo: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="['bs:bomInfo: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="['bs:bomInfo: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="['bs:bomInfo:export']"
        >导出</el-button>
      </el-col>
    </el-row>
    <el-table border v-loading="loading" :data="bomInfoList" @selection-change="handleSelectionChange" v-if="bomInfoList.length > 0">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column  label="BOM编码" align="center" prop="bomCode" >
      <template slot-scope="scope">
        <router-link :to="{path: '/main/bom-data/index/', query: {bomCode: scope.row.bomCode} }" class="link-type">
          <span>{{ scope.row.bomCode }}</span>
        </router-link>
      </template>
      </el-table-column>
      <el-table-column show-overflow-tooltip="true" label="BOM名称" align="center" prop="bomName" />
      <el-table-column show-overflow-tooltip="true" label="产品编码" align="center" prop="productCode"/>
      <el-table-column show-overflow-tooltip="true" label="产品名称" align="center" prop="productName" />
      <el-table-column show-overflow-tooltip="true" label="版本" align="center" prop="version" />
      <el-table-column show-overflow-tooltip="true" label="状态" align="center" prop="status" />
      <el-table-column show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–修改基础BOM对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="BOM编码" prop="bomCode">
          <el-input v-model="form.bomCode" placeholder="请输入BOM编码" />
        </el-form-item>
        <el-form-item label="BOM名称" prop="bomName">
          <el-input v-model="form.bomName" placeholder="请输入BOM名称" />
        </el-form-item>
        <el-form-item label="产品编码" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请输入产品编码" />
        </el-form-item>
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" placeholder="请输入产品名称" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" type="textarea" 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 { listBomInfo, getBomInfo, delBomInfo, addBomInfo, updateBomInfo } from "@/api/main/bs/bomInfo";
export default {
  name: "BomInfo",
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•ä¸ªç¦ç”¨
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // åŸºç¡€BOM表格数据
      bomInfoList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        bomCode: null,
        bomName: null,
        productCode: null,
        productName: null,
        version: null,
        status: null,
        createUser: null,
        updateUser: null,
        dataSource: null,
      },
      // è¡¨å•å‚æ•°
      form: {},
      // è¡¨å•æ ¡éªŒ
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢åŸºç¡€BOM列表 */
    getList() {
      this.loading = true;
      listBomInfo(this.queryParams).then(response => {
        this.bomInfoList = response.rows;
        console.log(this.bomInfoList)
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•é‡ç½®
    reset() {
      this.form = {
        id: null,
        bomCode: null,
        bomName: null,
        productCode: null,
        productName: null,
        version: null,
        status: null,
        remark: null,
        createUser: null,
        createTime: null,
        updateUser: null,
        updateTime: null,
        dataSource: null,
        delFlag: 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.title = "添加基础BOM";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getBomInfo(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改基础BOM";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateBomInfo(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addBomInfo(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除').then(function() {
        return delBomInfo(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/bomInfo/export', {
        ...this.queryParams
      }, `bomInfo_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
billion-ui/src/views/main/sc/collectionParamConf/index.vue
@@ -17,7 +17,6 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item  label="采集地址" prop="node">
        <el-input
          v-model="queryParams.node"
@@ -122,8 +121,8 @@
      <el-table-column label="工位编码" align="center" prop="locationCode" />
      <el-table-column label="参数编码" align="center" prop="paramCode" />
      <el-table-column label="参数名称" align="center" prop="paramName" />
      <el-table-column label="参数集编码" align="center" prop="paramSetCode" />
      <el-table-column label="参数集名称" align="center" prop="paramSetName" />
      <el-table-column width="90px" label="参数集编码" align="center" prop="paramSetCode" />
      <el-table-column width="90px" label="参数集名称" align="center" prop="paramSetName" />
      <el-table-column label="采集地址" align="center" prop="node" />
      <el-table-column label="采集类型" align="center" prop="type" />
      <el-table-column label="单位" align="center" prop="unit" />
billion-ui/src/views/main/sc/opcConf/index.vue
@@ -26,12 +26,24 @@
        />
      </el-form-item>
      <el-form-item label="采集类型" prop="type">
        <el-input
          v-model="queryParams.node"
          placeholder="请输入采集类型"
          clearable
          @keyup.enter.native="handleQuery"
        />
        <el-select v-model="queryParams.type" placeholder="请选择订阅状态" clearable>
          <el-option
            v-for="dict in dict.type.collection_type"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="订阅" prop="subscribe">
        <el-select v-model="queryParams.subscribe" placeholder="请选择订阅状态" clearable>
          <el-option
            v-for="dict in dict.type.sys_yes_no"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item style="float: right" >
@@ -85,7 +97,6 @@
          v-hasPermi="['sc:opcConf:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" border :data="opcConfList" @selection-change="handleSelectionChange">
@@ -93,32 +104,14 @@
      <el-table-column label="工位编码" align="center" prop="locationCode" />
      <el-table-column label="工位名称" align="center" prop="locationName" />
      <el-table-column label="地址" align="center" prop="node" />
      <el-table-column label="采集类型" align="center" prop="type" />
      <el-table-column label="采集类型" align="center" prop="type" >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.collection_type" :value="scope.row.type"/>
        </template>
      </el-table-column>
      <el-table-column label="是否订阅" align="center" prop="subscribe" >
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.subscribe"/>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            style="width: 72px"
            type="success"
            plain
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['sc:opcConf:edit']"
          >修改</el-button>
          <el-button
            size="mini"
            style="width: 72px"
            type="danger"
            plain
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['sc:opcConf:remove']"
          >删除</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -144,7 +137,14 @@
          <el-input v-model="form.node" placeholder="请输入地址" />
        </el-form-item>
        <el-form-item label="采集类型" prop="type">
          <el-input v-model="form.type" placeholder="请输入采集类型" />
          <el-select v-model="form.type" placeholder="请选择采集类型" >
            <el-option
              v-for="dict in dict.type.collection_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="是否订阅" prop="subscribe">
          <el-radio-group v-model="form.subscribe">
@@ -169,7 +169,7 @@
export default {
  name: "OpcConf",
  dicts: ['sys_yes_no'],
  dicts: ['sys_yes_no','collection_type'],
  data() {
    return {
      advancedSearchVisible: false,
@@ -212,9 +212,11 @@
        locationName: [
          { required: true, message: "工位名称不能为空", trigger: "blur" },
        ],
        subscribe: [
          { required: true, message: "订阅不能为空", trigger: "blur" },
        ],
        node: [
          { required: true, message: "地址不能为空", trigger: "blur" },
          { pattern: /^[a-zA-Z0-9]*$/, message: "地址不能包含中文字符", trigger: "blur" }
        ],
      }
    };