From f47bd7409609995c7eebb81a0b92b6e4aff0bdbf Mon Sep 17 00:00:00 2001 From: hdy <1105738590@qq.com> Date: 星期二, 26 十一月 2024 16:16:48 +0800 Subject: [PATCH] BOM --- billion-ui/src/views/main/sc/opcConf/index.vue | 68 +- billion-main/src/main/java/com/billion/main/bs/mapper/BsBomInfoMapper.java | 63 ++ billion-ui/src/router/index.js | 14 billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java | 66 ++ billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java | 98 +++ billion-main/src/main/resources/mapper/bs/BsBomInfoMapper.xml | 114 +++ billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java | 67 ++ billion-main/src/main/resources/mapper/bs/BsBomChildInfoMapper.xml | 106 +++ billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java | 63 ++ billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java | 95 +++ billion-ui/src/views/main/sc/collectionParamConf/index.vue | 5 billion-main/src/main/java/com/billion/main/bs/mapper/BsBomChildInfoMapper.java | 63 ++ billion-ui/src/api/main/bs/bomChildInfo.js | 44 + billion-main/src/main/java/com/billion/main/bs/controller/BsBomChildInfoController.java | 98 +++ billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java | 63 ++ billion-ui/src/views/main/bs/bomInfo/index.vue | 298 +++++++++ billion-main/src/main/java/com/billion/main/bs/controller/BsBomInfoController.java | 98 +++ billion-ui/src/views/main/bs/bomChildInfo/index.vue | 381 ++++++++++++ billion-ui/src/api/main/bs/bomInfo.js | 44 + 19 files changed, 1,812 insertions(+), 36 deletions(-) diff --git a/billion-main/src/main/java/com/billion/main/bs/controller/BsBomChildInfoController.java b/billion-main/src/main/java/com/billion/main/bs/controller/BsBomChildInfoController.java new file mode 100644 index 0000000..c7470bd --- /dev/null +++ b/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瀛愪俊鎭疌ontroller + * + * @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)); + } +} diff --git a/billion-main/src/main/java/com/billion/main/bs/controller/BsBomInfoController.java b/billion-main/src/main/java/com/billion/main/bs/controller/BsBomInfoController.java new file mode 100644 index 0000000..2cd5e10 --- /dev/null +++ b/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)); + } +} diff --git a/billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java b/billion-main/src/main/java/com/billion/main/bs/domain/BsBomChildInfo.java new file mode 100644 index 0000000..aec9639 --- /dev/null +++ b/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; + + +} diff --git a/billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java b/billion-main/src/main/java/com/billion/main/bs/domain/BsBomInfo.java new file mode 100644 index 0000000..74bf867 --- /dev/null +++ b/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; + + + +} diff --git a/billion-main/src/main/java/com/billion/main/bs/mapper/BsBomChildInfoMapper.java b/billion-main/src/main/java/com/billion/main/bs/mapper/BsBomChildInfoMapper.java new file mode 100644 index 0000000..b38f4fa --- /dev/null +++ b/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瀛愪俊鎭疢apper鎺ュ彛 + * + * @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); +} diff --git a/billion-main/src/main/java/com/billion/main/bs/mapper/BsBomInfoMapper.java b/billion-main/src/main/java/com/billion/main/bs/mapper/BsBomInfoMapper.java new file mode 100644 index 0000000..ae1f312 --- /dev/null +++ b/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); +} diff --git a/billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java b/billion-main/src/main/java/com/billion/main/bs/service/IBsBomChildInfoService.java new file mode 100644 index 0000000..1c372c0 --- /dev/null +++ b/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瀛愪俊鎭疭ervice鎺ュ彛 + * + * @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); +} diff --git a/billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java b/billion-main/src/main/java/com/billion/main/bs/service/IBsBomInfoService.java new file mode 100644 index 0000000..3868075 --- /dev/null +++ b/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); +} diff --git a/billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java b/billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomChildInfoServiceImpl.java new file mode 100644 index 0000000..0c66a17 --- /dev/null +++ b/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瀛愪俊鎭疭ervice涓氬姟灞傚鐞� + * + * @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); + } +} diff --git a/billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java b/billion-main/src/main/java/com/billion/main/bs/service/impl/BsBomInfoServiceImpl.java new file mode 100644 index 0000000..db1421c --- /dev/null +++ b/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); + } +} diff --git a/billion-main/src/main/resources/mapper/bs/BsBomChildInfoMapper.xml b/billion-main/src/main/resources/mapper/bs/BsBomChildInfoMapper.xml new file mode 100644 index 0000000..57bd05d --- /dev/null +++ b/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> \ No newline at end of file diff --git a/billion-main/src/main/resources/mapper/bs/BsBomInfoMapper.xml b/billion-main/src/main/resources/mapper/bs/BsBomInfoMapper.xml new file mode 100644 index 0000000..9c97f83 --- /dev/null +++ b/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> \ No newline at end of file diff --git a/billion-ui/src/api/main/bs/bomChildInfo.js b/billion-ui/src/api/main/bs/bomChildInfo.js new file mode 100644 index 0000000..08ea408 --- /dev/null +++ b/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' + }) +} diff --git a/billion-ui/src/api/main/bs/bomInfo.js b/billion-ui/src/api/main/bs/bomInfo.js new file mode 100644 index 0000000..493b6cc --- /dev/null +++ b/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' + }) +} diff --git a/billion-ui/src/router/index.js b/billion-ui/src/router/index.js index 93cde3f..1849928 100644 --- a/billion-ui/src/router/index.js +++ b/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, diff --git a/billion-ui/src/views/main/bs/bomChildInfo/index.vue b/billion-ui/src/views/main/bs/bomChildInfo/index.vue new file mode 100644 index 0000000..e4bc548 --- /dev/null +++ b/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> diff --git a/billion-ui/src/views/main/bs/bomInfo/index.vue b/billion-ui/src/views/main/bs/bomInfo/index.vue new file mode 100644 index 0000000..0edc8f3 --- /dev/null +++ b/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="璇疯緭鍏OM缂栫爜" + 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="璇疯緭鍏OM鍚嶇О" + 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="璇疯緭鍏OM缂栫爜" /> + </el-form-item> + <el-form-item label="BOM鍚嶇О" prop="bomName"> + <el-input v-model="form.bomName" placeholder="璇疯緭鍏OM鍚嶇О" /> + </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> diff --git a/billion-ui/src/views/main/sc/collectionParamConf/index.vue b/billion-ui/src/views/main/sc/collectionParamConf/index.vue index 3907210..1bff8d2 100644 --- a/billion-ui/src/views/main/sc/collectionParamConf/index.vue +++ b/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" /> diff --git a/billion-ui/src/views/main/sc/opcConf/index.vue b/billion-ui/src/views/main/sc/opcConf/index.vue index 81bc419..24edab3 100644 --- a/billion-ui/src/views/main/sc/opcConf/index.vue +++ b/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" } ], } }; -- Gitblit v1.9.3