From 8b389601ea23deddb3318a8a70d0c80e7b6b994c Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期四, 20 二月 2025 13:34:59 +0800 Subject: [PATCH] -工单物料配置表 --- jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/domain/ScMaterialConf.java | 151 ++++++++ jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/impl/ScMaterialConfServiceImpl.java | 101 +++++ jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/controller/ScMaterialConfController.java | 120 +++++++ jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java | 19 + jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/mapper/ScMaterialConfMapper.java | 63 +++ jcdm-main/src/main/resources/mapper/sc/materialConf/ScMaterialConfMapper.xml | 103 ++++++ jcdm-ui/src/api/main/sc/materialConf/materialConf.js | 56 +++ jcdm-ui/src/views/main/sc/materialConf/index.vue | 342 ++++++++++++++++++++ jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/IScMaterialConfService.java | 63 +++ 9 files changed, 1,016 insertions(+), 2 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java index 8a46925..dd4713c 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jcdm.main.constant.Constants; import com.jcdm.main.da.cellData.service.IDaCellDataService; import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; @@ -13,6 +14,8 @@ import com.jcdm.main.da.testDeviceInterfaceTemp.service.IDaTestDeviceInterfaceTempService; import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService; import com.jcdm.main.plcserver.sub.OPCUaSubscription; +import com.jcdm.main.sc.materialConf.domain.ScMaterialConf; +import com.jcdm.main.sc.materialConf.service.IScMaterialConfService; import com.kangaroohy.milo.service.MiloService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; @@ -52,12 +55,16 @@ private IDaCellDataService daCellDataService; @Autowired private IDaPsConfService daPsConfService; + @Autowired + private IScMaterialConfService materialConfService; + @Override public void run(ApplicationArguments args) throws Exception { //PLC鍒癕ES鐗╂枡杞崲 - Constants.materialMap.put("1","9900199052A"); - Constants.materialMap.put("2","9900199053B"); + initMaterialConf(); +// Constants.materialMap.put("1","9900199052A"); +// Constants.materialMap.put("2","9900199053B"); // Constants.materialMap.put("3","9900236569"); // Constants.materialMap.put("4","9900236570"); // Constants.materialMap.put("1","9900236569"); @@ -106,6 +113,14 @@ } + public void initMaterialConf(){ + List<ScMaterialConf> materialConfList = materialConfService.list(new LambdaQueryWrapper<ScMaterialConf>().eq(ScMaterialConf::getStatus, Constants.USE_ING)); + for (ScMaterialConf materialConf : materialConfList) { + Constants.materialMap.put(materialConf.getModelCode(),materialConf.getMaterialCode()); + } + System.out.println("鍒濆鍖栫墿鏂欒浆鎹細"+Constants.materialMap); + } + /** * 璁㈤槄鍐呭 */ diff --git a/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/controller/ScMaterialConfController.java b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/controller/ScMaterialConfController.java new file mode 100644 index 0000000..caf2cb1 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/controller/ScMaterialConfController.java @@ -0,0 +1,120 @@ +package com.jcdm.main.sc.materialConf.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.jcdm.common.core.domain.entity.SysRole; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.jcdm.common.annotation.Log; +import com.jcdm.common.core.controller.BaseController; +import com.jcdm.common.core.domain.AjaxResult; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.main.sc.materialConf.domain.ScMaterialConf; +import com.jcdm.main.sc.materialConf.service.IScMaterialConfService; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.common.core.page.TableDataInfo; + +/** + * 宸ュ崟鐗╂枡閰嶇疆Controller + * + * @author ruoyi + * @date 2025-02-19 + */ +@RestController +@RequestMapping("/sc/materialConf") +public class ScMaterialConfController extends BaseController +{ + @Autowired + private IScMaterialConfService scMaterialConfService; + + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('sc:materialConf:list')") + @GetMapping("/list") + public TableDataInfo list(ScMaterialConf scMaterialConf) + { + startPage(); + List<ScMaterialConf> list = scMaterialConfService.selectScMaterialConfList(scMaterialConf); + return getDataTable(list); + } + + /** + * 瀵煎嚭宸ュ崟鐗╂枡閰嶇疆鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('sc:materialConf:export')") + @Log(title = "宸ュ崟鐗╂枡閰嶇疆", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ScMaterialConf scMaterialConf) + { + List<ScMaterialConf> list = scMaterialConfService.selectScMaterialConfList(scMaterialConf); + ExcelUtil<ScMaterialConf> util = new ExcelUtil<ScMaterialConf>(ScMaterialConf.class); + util.exportExcel(response, list, "宸ュ崟鐗╂枡閰嶇疆鏁版嵁"); + } + + /** + * 鑾峰彇宸ュ崟鐗╂枡閰嶇疆璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('sc:materialConf:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(scMaterialConfService.selectScMaterialConfById(id)); + } + + /** + * 鏂板宸ュ崟鐗╂枡閰嶇疆 + */ + @PreAuthorize("@ss.hasPermi('sc:materialConf:add')") + @Log(title = "宸ュ崟鐗╂枡閰嶇疆", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ScMaterialConf scMaterialConf) + { + return toAjax(scMaterialConfService.insertScMaterialConf(scMaterialConf)); + } + + /** + * 淇敼宸ュ崟鐗╂枡閰嶇疆 + */ + @PreAuthorize("@ss.hasPermi('sc:materialConf:edit')") + @Log(title = "宸ュ崟鐗╂枡閰嶇疆", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ScMaterialConf scMaterialConf) + { + return toAjax(scMaterialConfService.updateScMaterialConf(scMaterialConf)); + } + + /** + * 鍒犻櫎宸ュ崟鐗╂枡閰嶇疆 + */ + @PreAuthorize("@ss.hasPermi('sc:materialConf:remove')") + @Log(title = "宸ュ崟鐗╂枡閰嶇疆", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(scMaterialConfService.deleteScMaterialConfByIds(ids)); + } + + /** + * 鐘舵�佷慨鏀� + */ + @PutMapping("/changeMaterialStatus") + public AjaxResult changeMaterialStatus(@RequestBody ScMaterialConf scMaterialConf) + { + UpdateWrapper<ScMaterialConf> updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id",scMaterialConf.getId()); + updateWrapper.set("status",scMaterialConf.getStatus()); + return toAjax(scMaterialConfService.update(updateWrapper)); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/domain/ScMaterialConf.java b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/domain/ScMaterialConf.java new file mode 100644 index 0000000..5e9193c --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/domain/ScMaterialConf.java @@ -0,0 +1,151 @@ +package com.jcdm.main.sc.materialConf.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.jcdm.common.annotation.Excel; +import com.jcdm.common.core.domain.BaseEntity; + +/** + * 宸ュ崟鐗╂枡閰嶇疆瀵硅薄 sc_material_conf + * + * @author ruoyi + * @date 2025-02-19 + */ +public class ScMaterialConf extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 涓婚敭id */ + private Long id; + + /** 鐗╂枡缂栫爜 */ + @Excel(name = "鐗╂枡缂栫爜") + private String materialCode; + + /** 鐗╂枡鍚嶇О */ + @Excel(name = "鐗╂枡鍚嶇О") + private String materialName; + + /** 棰勭暀瀛楁1 */ + @Excel(name = "棰勭暀瀛楁1") + private String sparefield1; + + /** 棰勭暀瀛楁2 */ + @Excel(name = "棰勭暀瀛楁2") + private String sparefield2; + + /** 鍒涘缓鐢ㄦ埛 */ + @Excel(name = "鍒涘缓鐢ㄦ埛") + private String createUser; + + /** 鏇存敼鐢ㄦ埛 */ + @Excel(name = "鏇存敼鐢ㄦ埛") + private String updateUser; + + /** 鐘舵�� */ + @Excel(name = "鐘舵��") + private String status; + + /** 妯$粍绫诲瀷 */ + @Excel(name = "妯$粍绫诲瀷") + private String modelCode; + public void setModelCode(String modelCode) + { + this.modelCode = modelCode; + } + + public String getModelCode() + { + return modelCode; + } + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setMaterialCode(String materialCode) + { + this.materialCode = materialCode; + } + + public String getMaterialCode() + { + return materialCode; + } + public void setMaterialName(String materialName) + { + this.materialName = materialName; + } + + public String getMaterialName() + { + return materialName; + } + public void setSparefield1(String sparefield1) + { + this.sparefield1 = sparefield1; + } + + public String getSparefield1() + { + return sparefield1; + } + public void setSparefield2(String sparefield2) + { + this.sparefield2 = sparefield2; + } + + public String getSparefield2() + { + return sparefield2; + } + public void setCreateUser(String createUser) + { + this.createUser = createUser; + } + + public String getCreateUser() + { + return createUser; + } + public void setUpdateUser(String updateUser) + { + this.updateUser = updateUser; + } + + public String getUpdateUser() + { + return updateUser; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("remark", getRemark()) + .append("sparefield1", getSparefield1()) + .append("sparefield2", getSparefield2()) + .append("createUser", getCreateUser()) + .append("createTime", getCreateTime()) + .append("updateUser", getUpdateUser()) + .append("updateTime", getUpdateTime()) + .append("status", getStatus()) + .toString(); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/mapper/ScMaterialConfMapper.java b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/mapper/ScMaterialConfMapper.java new file mode 100644 index 0000000..6e75772 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/mapper/ScMaterialConfMapper.java @@ -0,0 +1,63 @@ +package com.jcdm.main.sc.materialConf.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jcdm.main.sc.materialConf.domain.ScMaterialConf; + +/** + * 宸ュ崟鐗╂枡閰嶇疆Mapper鎺ュ彛 + * + * @author ruoyi + * @date 2025-02-19 + */ +public interface ScMaterialConfMapper extends BaseMapper<ScMaterialConf> +{ + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆 + * + * @param id 宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 宸ュ崟鐗╂枡閰嶇疆 + */ + public ScMaterialConf selectScMaterialConfById(Long id); + + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆鍒楄〃 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 宸ュ崟鐗╂枡閰嶇疆闆嗗悎 + */ + public List<ScMaterialConf> selectScMaterialConfList(ScMaterialConf scMaterialConf); + + /** + * 鏂板宸ュ崟鐗╂枡閰嶇疆 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 缁撴灉 + */ + public int insertScMaterialConf(ScMaterialConf scMaterialConf); + + /** + * 淇敼宸ュ崟鐗╂枡閰嶇疆 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 缁撴灉 + */ + public int updateScMaterialConf(ScMaterialConf scMaterialConf); + + /** + * 鍒犻櫎宸ュ崟鐗╂枡閰嶇疆 + * + * @param id 宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + public int deleteScMaterialConfById(Long id); + + /** + * 鎵归噺鍒犻櫎宸ュ崟鐗╂枡閰嶇疆 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteScMaterialConfByIds(Long[] ids); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/IScMaterialConfService.java b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/IScMaterialConfService.java new file mode 100644 index 0000000..d0f3d2d --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/IScMaterialConfService.java @@ -0,0 +1,63 @@ +package com.jcdm.main.sc.materialConf.service; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jcdm.main.sc.materialConf.domain.ScMaterialConf; + +/** + * 宸ュ崟鐗╂枡閰嶇疆Service鎺ュ彛 + * + * @author ruoyi + * @date 2025-02-19 + */ +public interface IScMaterialConfService extends IService<ScMaterialConf> +{ + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆 + * + * @param id 宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 宸ュ崟鐗╂枡閰嶇疆 + */ + public ScMaterialConf selectScMaterialConfById(Long id); + + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆鍒楄〃 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 宸ュ崟鐗╂枡閰嶇疆闆嗗悎 + */ + public List<ScMaterialConf> selectScMaterialConfList(ScMaterialConf scMaterialConf); + + /** + * 鏂板宸ュ崟鐗╂枡閰嶇疆 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 缁撴灉 + */ + public int insertScMaterialConf(ScMaterialConf scMaterialConf); + + /** + * 淇敼宸ュ崟鐗╂枡閰嶇疆 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 缁撴灉 + */ + public int updateScMaterialConf(ScMaterialConf scMaterialConf); + + /** + * 鎵归噺鍒犻櫎宸ュ崟鐗╂枡閰嶇疆 + * + * @param ids 闇�瑕佸垹闄ょ殑宸ュ崟鐗╂枡閰嶇疆涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteScMaterialConfByIds(Long[] ids); + + /** + * 鍒犻櫎宸ュ崟鐗╂枡閰嶇疆淇℃伅 + * + * @param id 宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + public int deleteScMaterialConfById(Long id); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/impl/ScMaterialConfServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/impl/ScMaterialConfServiceImpl.java new file mode 100644 index 0000000..d950694 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/sc/materialConf/service/impl/ScMaterialConfServiceImpl.java @@ -0,0 +1,101 @@ +package com.jcdm.main.sc.materialConf.service.impl; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jcdm.common.utils.DateUtils; +import com.jcdm.main.sc.stationConf.domain.ScStationConf; +import com.jcdm.main.sc.stationConf.mapper.ScStationConfMapper; +import com.jcdm.main.sc.stationConf.service.IScStationConfService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.jcdm.main.sc.materialConf.mapper.ScMaterialConfMapper; +import com.jcdm.main.sc.materialConf.domain.ScMaterialConf; +import com.jcdm.main.sc.materialConf.service.IScMaterialConfService; + +/** + * 宸ュ崟鐗╂枡閰嶇疆Service涓氬姟灞傚鐞� + * + * @author ruoyi + * @date 2025-02-19 + */ +@Service +public class ScMaterialConfServiceImpl extends ServiceImpl<ScMaterialConfMapper, ScMaterialConf> implements IScMaterialConfService +{ + @Autowired + private ScMaterialConfMapper scMaterialConfMapper; + + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆 + * + * @param id 宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 宸ュ崟鐗╂枡閰嶇疆 + */ + @Override + public ScMaterialConf selectScMaterialConfById(Long id) + { + return scMaterialConfMapper.selectScMaterialConfById(id); + } + + /** + * 鏌ヨ宸ュ崟鐗╂枡閰嶇疆鍒楄〃 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 宸ュ崟鐗╂枡閰嶇疆 + */ + @Override + public List<ScMaterialConf> selectScMaterialConfList(ScMaterialConf scMaterialConf) + { + return scMaterialConfMapper.selectScMaterialConfList(scMaterialConf); + } + + /** + * 鏂板宸ュ崟鐗╂枡閰嶇疆 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 缁撴灉 + */ + @Override + public int insertScMaterialConf(ScMaterialConf scMaterialConf) + { + scMaterialConf.setCreateTime(DateUtils.getNowDate()); + return scMaterialConfMapper.insertScMaterialConf(scMaterialConf); + } + + /** + * 淇敼宸ュ崟鐗╂枡閰嶇疆 + * + * @param scMaterialConf 宸ュ崟鐗╂枡閰嶇疆 + * @return 缁撴灉 + */ + @Override + public int updateScMaterialConf(ScMaterialConf scMaterialConf) + { + scMaterialConf.setUpdateTime(DateUtils.getNowDate()); + return scMaterialConfMapper.updateScMaterialConf(scMaterialConf); + } + + /** + * 鎵归噺鍒犻櫎宸ュ崟鐗╂枡閰嶇疆 + * + * @param ids 闇�瑕佸垹闄ょ殑宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteScMaterialConfByIds(Long[] ids) + { + return scMaterialConfMapper.deleteScMaterialConfByIds(ids); + } + + /** + * 鍒犻櫎宸ュ崟鐗╂枡閰嶇疆淇℃伅 + * + * @param id 宸ュ崟鐗╂枡閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteScMaterialConfById(Long id) + { + return scMaterialConfMapper.deleteScMaterialConfById(id); + } +} diff --git a/jcdm-main/src/main/resources/mapper/sc/materialConf/ScMaterialConfMapper.xml b/jcdm-main/src/main/resources/mapper/sc/materialConf/ScMaterialConfMapper.xml new file mode 100644 index 0000000..e187e46 --- /dev/null +++ b/jcdm-main/src/main/resources/mapper/sc/materialConf/ScMaterialConfMapper.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.jcdm.main.sc.materialConf.mapper.ScMaterialConfMapper"> + + <resultMap type="ScMaterialConf" id="ScMaterialConfResult"> + <result property="id" column="id" /> + <result property="materialCode" column="material_code" /> + <result property="materialName" column="material_name" /> + <result property="remark" column="remark" /> + <result property="sparefield1" column="sparefield1" /> + <result property="sparefield2" column="sparefield2" /> + <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="status" column="status" /> + <result property="modelCode" column="model_code" /> + </resultMap> + + <sql id="selectScMaterialConfVo"> + select id, material_code, material_name, remark, sparefield1, sparefield2, create_user, create_time, update_user, update_time, status, model_code from sc_material_conf + </sql> + + <select id="selectScMaterialConfList" parameterType="ScMaterialConf" resultMap="ScMaterialConfResult"> + <include refid="selectScMaterialConfVo"/> + <where> + <if test="materialCode != null and materialCode != ''"> and material_code like concat('%', #{materialCode}, '%')</if> + <if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if> + <if test="sparefield1 != null and sparefield1 != ''"> and sparefield1 = #{sparefield1}</if> + <if test="sparefield2 != null and sparefield2 != ''"> and sparefield2 = #{sparefield2}</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="status != null and status != ''"> and status = #{status}</if> + <if test="modelCode != null and modelCode != ''"> and model_code = #{modelCode}</if> + </where> + </select> + + <select id="selectScMaterialConfById" parameterType="Long" resultMap="ScMaterialConfResult"> + <include refid="selectScMaterialConfVo"/> + where id = #{id} + </select> + + <insert id="insertScMaterialConf" parameterType="ScMaterialConf" useGeneratedKeys="true" keyProperty="id"> + insert into sc_material_conf + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="materialCode != null">material_code,</if> + <if test="materialName != null">material_name,</if> + <if test="remark != null">remark,</if> + <if test="sparefield1 != null">sparefield1,</if> + <if test="sparefield2 != null">sparefield2,</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="status != null">status,</if> + <if test="modelCode != null">model_code,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="materialCode != null">#{materialCode},</if> + <if test="materialName != null">#{materialName},</if> + <if test="remark != null">#{remark},</if> + <if test="sparefield1 != null">#{sparefield1},</if> + <if test="sparefield2 != null">#{sparefield2},</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="status != null">#{status},</if> + <if test="modelCode != null">#{modelCode},</if> + </trim> + </insert> + + <update id="updateScMaterialConf" parameterType="ScMaterialConf"> + update sc_material_conf + <trim prefix="SET" suffixOverrides=","> + <if test="materialCode != null">material_code = #{materialCode},</if> + <if test="materialName != null">material_name = #{materialName},</if> + <if test="remark != null">remark = #{remark},</if> + <if test="sparefield1 != null">sparefield1 = #{sparefield1},</if> + <if test="sparefield2 != null">sparefield2 = #{sparefield2},</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="status != null">status = #{status},</if> + <if test="modelCode != null">model_code = #{modelCode},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteScMaterialConfById" parameterType="Long"> + delete from sc_material_conf where id = #{id} + </delete> + + <delete id="deleteScMaterialConfByIds" parameterType="String"> + delete from sc_material_conf where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/jcdm-ui/src/api/main/sc/materialConf/materialConf.js b/jcdm-ui/src/api/main/sc/materialConf/materialConf.js new file mode 100644 index 0000000..6b8a060 --- /dev/null +++ b/jcdm-ui/src/api/main/sc/materialConf/materialConf.js @@ -0,0 +1,56 @@ +import request from '@/utils/request' + +// 鏌ヨ宸ュ崟鐗╂枡閰嶇疆鍒楄〃 +export function listMaterialConf(query) { + return request({ + url: '/sc/materialConf/list', + method: 'get', + params: query + }) +} + +export function changeMaterialStatus(id, status) { + const data = { + id, + status + } + return request({ + url: '/sc/materialConf/changeMaterialStatus', + method: 'put', + data: data + }) +} + +// 鏌ヨ宸ュ崟鐗╂枡閰嶇疆璇︾粏 +export function getMaterialConf(id) { + return request({ + url: '/sc/materialConf/' + id, + method: 'get' + }) +} + +// 鏂板宸ュ崟鐗╂枡閰嶇疆 +export function addMaterialConf(data) { + return request({ + url: '/sc/materialConf', + method: 'post', + data: data + }) +} + +// 淇敼宸ュ崟鐗╂枡閰嶇疆 +export function updateMaterialConf(data) { + return request({ + url: '/sc/materialConf', + method: 'put', + data: data + }) +} + +// 鍒犻櫎宸ュ崟鐗╂枡閰嶇疆 +export function delMaterialConf(id) { + return request({ + url: '/sc/materialConf/' + id, + method: 'delete' + }) +} diff --git a/jcdm-ui/src/views/main/sc/materialConf/index.vue b/jcdm-ui/src/views/main/sc/materialConf/index.vue new file mode 100644 index 0000000..e6096b3 --- /dev/null +++ b/jcdm-ui/src/views/main/sc/materialConf/index.vue @@ -0,0 +1,342 @@ +<template> + <div class="app-container"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="鐗╂枡缂栫爜" prop="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 style="float: right"> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + </el-card> + + <el-card style="margin-top: 10px" class="box-card"> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['sc:materialConf: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="['sc:materialConf: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="['sc:materialConf: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="['sc:materialConf:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table border v-loading="loading" :data="materialConfList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="鐗╂枡缂栫爜" align="center" prop="materialCode"> + </el-table-column> + <el-table-column label="鐗╂枡鍚嶇О" align="center" prop="materialName"> + </el-table-column> + <el-table-column label="妯$粍绫诲瀷" align="center" prop="modelCode"> + </el-table-column> + <el-table-column label="鐘舵��" align="center" width="100"> + <template slot-scope="scope"> + <el-switch + v-model="scope.row.status" + active-value="0" + inactive-value="1" + @change="handleStatusChange(scope.row)" + ></el-switch> + </template> + </el-table-column> + <el-table-column label="澶囨敞" align="center" prop="remark"> + </el-table-column> + <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUser"> + </el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime"> + </el-table-column> + <el-table-column label="鏇存敼鐢ㄦ埛" align="center" prop="updateUser"> + </el-table-column> + <el-table-column label="鏇存敼鏃堕棿" align="center" prop="updateTime"> + </el-table-column> + <el-table-column width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="success" + plain + style="width: 72px" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['sc:materialConf:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="danger" + plain + style="width: 72px" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['sc:materialConf:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-card> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀瑰伐鍗曠墿鏂欓厤缃璇濇 --> + <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> + <span slot="title"> + <i class="el-icon-s-order"></i> + {{titleName}} + </span> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="鐗╂枡缂栫爜" prop="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="modelCode"> + <el-input v-model="form.modelCode" 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 { + listMaterialConf, + getMaterialConf, + delMaterialConf, + addMaterialConf, + updateMaterialConf, + changeMaterialStatus +} from "@/api/main/sc/materialConf/materialConf"; +import {changeRoleStatus} from "@/api/system/role"; + +export default { + name: "MaterialConf", + data() { + return { + // 閬僵灞� + loading: true, + titleName: "", + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 宸ュ崟鐗╂枡閰嶇疆琛ㄦ牸鏁版嵁 + materialConfList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + materialCode: null, + materialName: null, + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + id: [ + { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + handleStatusChange(row) { + let text = row.status === "0" ? "鍚敤" : "鍋滅敤"; + // 璁$畻鐘舵�佷负1鐨勭墿鏂欐暟閲� + const activeMaterialCount = this.materialConfList.filter(material => material.status === "0").length; + // 濡傛灉瑕佸惎鐢ㄧ墿鏂欙紝妫�鏌ョ姸鎬佷负1鐨勭墿鏂欐暟閲忔槸鍚﹀ぇ浜�2 + if (activeMaterialCount > 2) { + // 鎭㈠鐘舵�� + row.status = "1"; // 鍋囪鍘熷鐘舵�佹槸1 + this.$modal.msgWarning("宸茬粡鏈変袱涓墿鏂欏浜庡惎鐢ㄧ姸鎬侊紝涓嶈兘鍚敤鏇村鐗╂枡銆�"); + return; + } + + this.$modal.confirm('纭瑕�"' + text + '""' + row.materialCode + '"鐗╂枡鍚楋紵').then(function() { + return changeMaterialStatus(row.id, row.status); + }).then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }).catch(function() { + row.status = row.status === "0" ? "1" : "0"; + }); + }, + /** 鏌ヨ宸ュ崟鐗╂枡閰嶇疆鍒楄〃 */ + getList() { + this.loading = true; + listMaterialConf(this.queryParams).then(response => { + this.materialConfList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + materialCode: null, + materialName: null, + remark: null, + sparefield1: null, + sparefield2: null, + createUser: null, + createTime: null, + updateUser: null, + updateTime: null, + status: null, + modelCode: null + + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.titleName = "娣诲姞宸ュ崟鐗╂枡閰嶇疆"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids + getMaterialConf(id).then(response => { + this.form = response.data; + this.open = true; + this.titleName = "淇敼宸ュ崟鐗╂枡閰嶇疆"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateMaterialConf(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addMaterialConf(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎宸ュ崟鐗╂枡閰嶇疆缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delMaterialConf(ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('sc/materialConf/export', { + ...this.queryParams + }, `materialConf_${new Date().getTime()}.xlsx`) + } + } +}; +</script> -- Gitblit v1.9.3