From d3409e53d656dff668c12a335bcb6f367ca63fdb Mon Sep 17 00:00:00 2001 From: 懒羊羊 <15939171744@163.com> Date: 星期四, 25 一月 2024 09:03:10 +0800 Subject: [PATCH] opcua迁移 --- jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/OpcusConfigInit.java | 48 jcdm-ui/src/views/main/da/passingStationCollection/index.vue | 35 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/mapper/DaTileMatchRulesMapper.java | 62 + jcdm-main/pom.xml | 32 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java | 10 jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/impl/DaOpcuaConfigServiceImpl.java | 94 + jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/mapper/DaOpcuaConfigMapper.java | 62 + jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/KeyStoreLoader.java | 127 ++ jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/IDaOpcuaConfigService.java | 62 + jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/domain/DaParamCollection.java | 60 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java | 59 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java | 53 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java | 5 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/impl/DaTileMatchRulesServiceImpl.java | 97 + jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml | 129 ++ jcdm-ui/src/views/main/da/opcuaconfig/index.vue | 491 ++++---- jcdm-ui/src/views/main/da/tileMatchRules/index.vue | 483 +++++++ jcdm-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml | 24 jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/IDaCollectionParamConfService.java | 3 jcdm-ui/dist.rar | 0 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/IDaTileMatchRulesService.java | 62 + jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java | 92 + jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java | 295 ++++ jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/DaOpcuaConfig.java | 149 ++ jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/BeanUtils.java | 30 jcdm-ui/src/views/main/kb/stationTerminal/index.vue | 43 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java | 98 + jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/domain/DaTileMatchRules.java | 235 +++ jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/mapper/DaCollectionParamConfMapper.java | 3 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java | 3 jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/Properties.java | 57 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java | 29 jcdm-main/src/main/resources/mapper/da/passingStationCollection/DaPassingStationCollectionMapper.xml | 3 jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/domain/DaCollectionParamConf.java | 4 jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/controller/DaCollectionParamConfController.java | 22 jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java | 98 + jcdm-ui/src/views/main/da/paramCollection/index.vue | 151 - jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientRunner.java | 146 ++ jcdm-ui/src/views/main/da/collectionParamConf/index.vue | 4 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/domain/DaPassingStationCollection.java | 32 jcdm-main/src/main/resources/mapper/da/opcuaconfig/DaOpcuaConfigMapper.xml | 86 + jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/NodeEntity.java | 19 jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/impl/DaCollectionParamConfServiceImpl.java | 9 43 files changed, 3,054 insertions(+), 552 deletions(-) diff --git a/jcdm-main/pom.xml b/jcdm-main/pom.xml index 655ff30..6c58209 100644 --- a/jcdm-main/pom.xml +++ b/jcdm-main/pom.xml @@ -58,6 +58,38 @@ <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> + + <!--Server SDK渚濊禆--> + <dependency> + <groupId>org.eclipse.milo</groupId> + <artifactId>sdk-server</artifactId> + <version>0.3.6</version> + </dependency> + + <!--Client SDK渚濊禆--> + <dependency> + <groupId>org.eclipse.milo</groupId> + <artifactId>sdk-client</artifactId> + <version>0.3.6</version> + </dependency> + + <dependency> + <groupId>org.eclipse.milo</groupId> + <artifactId>stack-client</artifactId> + <version>0.3.6</version> + </dependency> + + <dependency> + <groupId>org.eclipse.milo</groupId> + <artifactId>stack-client</artifactId> + <version>0.3.6</version> + </dependency> + + <dependency> + <groupId>org.eclipse.milo</groupId> + <artifactId>stack-server</artifactId> + <version>0.3.6</version> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/controller/DaCollectionParamConfController.java b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/controller/DaCollectionParamConfController.java index ae622fe..93dc5c6 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/controller/DaCollectionParamConfController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/controller/DaCollectionParamConfController.java @@ -1,25 +1,19 @@ package com.jcdm.main.da.collectionParamConf.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.jcdm.common.annotation.Log; import com.jcdm.common.core.controller.BaseController; import com.jcdm.common.core.domain.AjaxResult; +import com.jcdm.common.core.page.TableDataInfo; import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; -import com.jcdm.common.utils.poi.ExcelUtil; -import com.jcdm.common.core.page.TableDataInfo; +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; /** * 閲囬泦鍙傛暟閰嶇疆Controller diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/domain/DaCollectionParamConf.java b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/domain/DaCollectionParamConf.java index 7d9f1e2..5e85836 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/domain/DaCollectionParamConf.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/domain/DaCollectionParamConf.java @@ -1,9 +1,9 @@ package com.jcdm.main.da.collectionParamConf.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; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; /** * 閲囬泦鍙傛暟閰嶇疆瀵硅薄 da_collection_param_conf diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/mapper/DaCollectionParamConfMapper.java b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/mapper/DaCollectionParamConfMapper.java index 56baedd..eec648d 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/mapper/DaCollectionParamConfMapper.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/mapper/DaCollectionParamConfMapper.java @@ -1,8 +1,9 @@ package com.jcdm.main.da.collectionParamConf.mapper; -import java.util.List; import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; +import java.util.List; + /** * 閲囬泦鍙傛暟閰嶇疆Mapper鎺ュ彛 * diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/IDaCollectionParamConfService.java b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/IDaCollectionParamConfService.java index 0d268b1..8ea5aad 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/IDaCollectionParamConfService.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/IDaCollectionParamConfService.java @@ -1,8 +1,9 @@ package com.jcdm.main.da.collectionParamConf.service; -import java.util.List; import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; +import java.util.List; + /** * 閲囬泦鍙傛暟閰嶇疆Service鎺ュ彛 * diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/impl/DaCollectionParamConfServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/impl/DaCollectionParamConfServiceImpl.java index ffb43c0..fc64873 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/impl/DaCollectionParamConfServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/collectionParamConf/service/impl/DaCollectionParamConfServiceImpl.java @@ -1,12 +1,13 @@ package com.jcdm.main.da.collectionParamConf.service.impl; -import java.util.List; import com.jcdm.common.utils.DateUtils; +import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; +import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper; +import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper; -import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; -import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; + +import java.util.List; /** * 閲囬泦鍙傛暟閰嶇疆Service涓氬姟灞傚鐞� diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/KeyStoreLoader.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/KeyStoreLoader.java new file mode 100644 index 0000000..9b6a4e0 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/KeyStoreLoader.java @@ -0,0 +1,127 @@ +package com.jcdm.main.da.opcuaconfig.cert; + +import org.eclipse.milo.opcua.sdk.server.util.HostnameUtil; +import org.eclipse.milo.opcua.stack.core.util.SelfSignedCertificateBuilder; +import org.eclipse.milo.opcua.stack.core.util.SelfSignedCertificateGenerator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.*; +import java.security.cert.X509Certificate; +import java.util.regex.Pattern; + +/** + * @ClassName: KeyStoreLoader + * @Description: KeyStoreLoader + * @author yyt + * @date 2023骞�10鏈�13鏃� + */ +@Component +public class KeyStoreLoader { + + private static final Pattern IP_ADDR_PATTERN = Pattern + .compile("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); + + // 璇佷功鍒悕 + private static final String CLIENT_ALIAS = "jlclient-ai"; + // 鑾峰彇绉侀挜鐨勫瘑鐮� + private static final char[] PASSWORD = "yyt@8888888888".toCharArray(); + + private final Logger logger = LoggerFactory.getLogger(getClass()); + + // 璇佷功瀵硅薄 + private X509Certificate clientCertificate; + // 瀵嗛挜瀵瑰璞� + private KeyPair clientKeyPair; + + /** + * @MethodName: load + * @Description: load + * @param baseDir + * @return + * @throws Exception + * @CreateTime 2023骞�10鏈�13鏃� + */ + public KeyStoreLoader load(Path baseDir) throws Exception { + // 鍒涘缓涓�涓娇鐢╜PKCS12`鍔犲瘑鏍囧噯鐨凨eyStore銆侹eyStore鍦ㄥ悗闈㈠皢浣滀负璇诲彇鍜岀敓鎴愯瘉涔︾殑瀵硅薄銆� + KeyStore keyStore = KeyStore.getInstance("PKCS12"); + + // PKCS12鐨勫姞瀵嗘爣鍑嗙殑鏂囦欢鍚庣紑鏄�.pfx锛屽叾涓寘鍚簡鍏挜鍜岀閽ャ�� + // 鑰屽叾浠栧.der绛夌殑鏍煎紡鍙寘鍚叕閽ワ紝绉侀挜鍦ㄥ彟澶栫殑鏂囦欢涓�� + Path serverKeyStore = baseDir.resolve("OPCUA-client.pfx"); + + logger.info("Loading KeyStore at {}", serverKeyStore); + + // 濡傛灉鏂囦欢涓嶅瓨鍦ㄥ垯鍒涘缓.pfx璇佷功鏂囦欢銆� + if (!Files.exists(serverKeyStore)) { + keyStore.load(null, PASSWORD); + + // 鐢�2048浣嶇殑RAS绠楁硶銆俙SelfSignedCertificateGenerator`涓篗ilo搴撶殑瀵硅薄銆� + KeyPair keyPair = SelfSignedCertificateGenerator.generateRsaKeyPair(2048); + + // `SelfSignedCertificateBuilder`涔熸槸Milo搴撶殑瀵硅薄锛岀敤鏉ョ敓鎴愯瘉涔︺�� + // 涓棿鎵�璁剧疆鐨勮瘉涔﹀睘鎬у彲浠ヨ嚜琛屼慨鏀广�� + SelfSignedCertificateBuilder builder = new SelfSignedCertificateBuilder(keyPair) + .setCommonName("UaClient@Jellyleo") + .setOrganization("JL") + .setOrganizationalUnit("per") + .setLocalityName("jl") + .setStateName("JiangSu") + .setCountryCode("CN") + .setApplicationUri("urn:Yyt_PC:UnifiedAutomation:UaExpert") + .addDnsName("Yyt_PC") + .addIpAddress("127.0.0.1"); + + // Get as many hostnames and IP addresses as we can listed in the certificate. + for (String hostname : HostnameUtil.getHostnames("0.0.0.0")) { + if (IP_ADDR_PATTERN.matcher(hostname).matches()) { + builder.addIpAddress(hostname); + } else { + builder.addDnsName(hostname); + } + } + // 鍒涘缓璇佷功 + X509Certificate certificate = builder.build(); + + // 璁剧疆瀵瑰簲绉侀挜鐨勫埆鍚嶏紝瀵嗙爜锛岃瘉涔﹂摼 + keyStore.setKeyEntry(CLIENT_ALIAS, keyPair.getPrivate(), PASSWORD, new X509Certificate[] { certificate }); + try (OutputStream out = Files.newOutputStream(serverKeyStore)) { + // 淇濆瓨璇佷功鍒拌緭鍑烘祦 + keyStore.store(out, PASSWORD); + } + } else { + try (InputStream in = Files.newInputStream(serverKeyStore)) { + // 濡傛灉鏂囦欢瀛樺湪鍒欒鍙� + keyStore.load(in, PASSWORD); + } + } + + // 鐢ㄥ瘑鐮佽幏鍙栧搴斿埆鍚嶇殑绉侀挜銆� + Key serverPrivateKey = keyStore.getKey(CLIENT_ALIAS, PASSWORD); + if (serverPrivateKey instanceof PrivateKey) { + // 鑾峰彇瀵瑰簲鍒悕鐨勮瘉涔﹀璞°�� + clientCertificate = (X509Certificate) keyStore.getCertificate(CLIENT_ALIAS); + // 鑾峰彇鍏挜 + PublicKey serverPublicKey = clientCertificate.getPublicKey(); + // 鍒涘缓Keypair瀵硅薄銆� + clientKeyPair = new KeyPair(serverPublicKey, (PrivateKey) serverPrivateKey); + } + + return this; + } + + // 杩斿洖璇佷功 + public X509Certificate getClientCertificate() { + return clientCertificate; + } + + // 杩斿洖瀵嗛挜瀵� + public KeyPair getClientKeyPair() { + return clientKeyPair; + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java new file mode 100644 index 0000000..2959b26 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java @@ -0,0 +1,92 @@ +package com.jcdm.main.da.opcuaconfig.cert; + +import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf; +import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; +import com.jcdm.main.da.opcuaconfig.client.ClientHandler; +import com.jcdm.main.da.opcuaconfig.domain.NodeEntity; +import com.jcdm.main.da.opcuaconfig.init.BeanUtils; +import com.jcdm.main.da.paramCollection.domain.DaParamCollection; +import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; +import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; +import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue; +import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +import static com.jcdm.main.da.opcuaconfig.client.ClientHandler.readValues; + +@Slf4j +public class MethodName { + private IDaCollectionParamConfService collectionParamConfService = BeanUtils.getBean(IDaCollectionParamConfService.class); + private IDaParamCollectionService daParamCollectionService = BeanUtils.getBean(IDaParamCollectionService.class); + private IDaPassingStationCollectionService daPassingStationCollectionService = BeanUtils.getBean(IDaPassingStationCollectionService.class); + private List<DataValue> s=null; + public void getSn(String Node, String value) throws Exception { + log.info(Node+":"+value); + String[] parts = Node.split("[.]"); + ClientHandler clientHandler=new ClientHandler(); + NodeEntity SN_node= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".SNCode").value("").type("").build(); + String SNCode=clientHandler.read(SN_node); + log.info("璇诲彇鑺傜偣:{},缁撴灉:{}", SN_node.getIdentifier(),SNCode); + switch (value) { + case "0": //鍒濆 + NodeEntity node= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("0").type("short").build(); + Boolean out=clientHandler.write(node); + log.info("鑺傜偣:{},鍝嶅簲缁撴灉:{}", node.getIdentifier(),out); + break; + case "1": //璇锋眰涓嬪彂杩涚珯鐘舵�� + NodeEntity node1= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("11").type("short").build(); + Boolean out1=clientHandler.write(node1); + DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection(); + PassingStationCollection.setSfcCode(SNCode); + PassingStationCollection.setLocationCode(parts[1]); + PassingStationCollection.setInboundTime(new Date()); + daPassingStationCollectionService.insertDaPassingStationCollection(PassingStationCollection); + log.info("鑺傜偣:{},鍝嶅簲缁撴灉:{}", node1.getIdentifier(),out1); + break; + case "2": //璇锋眰璁板綍宸ヤ綅鏁版嵁 + List<DaCollectionParamConf> b; + DaCollectionParamConf daCollectionParamConf=new DaCollectionParamConf(); + daCollectionParamConf.setGatherAddress(parts[0]+"."+parts[1]); + b=collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf); + + List<NodeId> nodeId = b.stream().map(info -> { + NodeId nodeid = new NodeId(2,info.getGatherAddress()); + return nodeid; + }).collect(Collectors.toList()); + List<DataValue> s=readValues(nodeId); + //淇濆瓨PLC閲囬泦鏁版嵁 + for(int i=0;i<nodeId.size();i++) + { + DaParamCollection Config=new DaParamCollection(); + Config.setParamCode(nodeId.get(i).getIdentifier().toString().split("[.]")[2]); + Config.setLocationCode(nodeId.get(i).getIdentifier().toString().split("[.]")[1]); + Config.setParamValue(s.get(i).getValue().getValue().toString()); + Config.setSfcCode(SNCode); + Config.setParamName(b.get(i).getGatherAddress()); + daParamCollectionService.insertDaParamCollection(Config); + } + //鏇存柊鍑虹珯鏃堕棿锛岃绠楄妭鎷嶃�� + DaPassingStationCollection PSC=new DaPassingStationCollection(); + PSC.setSfcCode(SNCode); + List<DaPassingStationCollection> LPSC=daPassingStationCollectionService.selectDaPassingStationCollectionList(PSC); + if(LPSC != null && LPSC.size() > 0){ + LPSC.get(0).setOutboundTime(new Date()); + LPSC.get(0).setCollectionTime(new Date()); + LPSC.get(0).setBeatTime(Long.toString(Math.abs(new Date().getTime() - LPSC.get(0).getInboundTime().getTime()))); + daPassingStationCollectionService.updateDaPassingStationCollection(LPSC.get(0)); + } + //鏇存柊PLC鑺傜偣鐘舵�� + NodeEntity node2= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("21").type("short").build(); + Boolean out2=clientHandler.write(node2); + log.info("鑺傜偣:{},鍝嶅簲缁撴灉:{}", node2.getIdentifier(),out2); + break; + default: + break; + } + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java new file mode 100644 index 0000000..a6e01b5 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java @@ -0,0 +1,295 @@ +package com.jcdm.main.da.opcuaconfig.client; + +import com.google.common.collect.ImmutableList; +import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; +import com.jcdm.main.da.opcuaconfig.domain.NodeEntity; +import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.milo.opcua.sdk.client.OpcUaClient; +import org.eclipse.milo.opcua.sdk.client.api.nodes.VariableNode; +import org.eclipse.milo.opcua.sdk.client.api.subscriptions.UaSubscription; +import org.eclipse.milo.opcua.stack.core.AttributeId; +import org.eclipse.milo.opcua.stack.core.BuiltinDataType; +import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue; +import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId; +import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode; +import org.eclipse.milo.opcua.stack.core.types.builtin.Variant; +import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned; +import org.eclipse.milo.opcua.stack.core.types.enumerated.MonitoringMode; +import org.eclipse.milo.opcua.stack.core.types.enumerated.TimestampsToReturn; +import org.eclipse.milo.opcua.stack.core.types.structured.MonitoredItemCreateRequest; +import org.eclipse.milo.opcua.stack.core.types.structured.MonitoringParameters; +import org.eclipse.milo.opcua.stack.core.types.structured.ReadValueId; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ExecutionException; + +/** + * @ClassName: ClientHandler + * @Description: 瀹㈡埛绔鐞� + * @author Jellyleo + * @date 2019骞�12鏈�12鏃� + */ +@Slf4j +@Service +public class ClientHandler { + + // 瀹㈡埛绔疄渚� + public static OpcUaClient client = null; + + public List<DaOpcuaConfig> b = null; + + @Autowired + private ClientRunner clientRunner; + + @Autowired + private IDaOpcuaConfigService daOpcuaConfigService; + + + /** + * + * @MethodName: connect + * @Description: connect + * @throws Exception + * @CreateTime 2019骞�12鏈�18鏃� 涓婂崍10:41:09 + */ + public String connect() throws Exception { + + if (client != null) { + return "瀹㈡埛绔凡鍒涘缓"; + } + + client = clientRunner.run(); + + if (client == null) { + return "瀹㈡埛绔厤缃疄渚嬪寲澶辫触"; + } + + // 鍒涘缓杩炴帴 + client.connect().get(); + return "鍒涘缓杩炴帴鎴愬姛"; + } + + /** + * @MethodName: disconnect + * @Description: 鏂紑杩炴帴 + * @return + * @throws Exception + * @CreateTime 2019骞�12鏈�18鏃� 涓婂崍10:45:21 + */ + public String disconnect() throws Exception { + + if (client == null) { + return "杩炴帴宸叉柇寮�"; + } + + // 鏂紑杩炴帴 + clientRunner.getFuture().complete(client); + client = null; + return "鏂紑杩炴帴鎴愬姛"; + } + + /** + * @MethodName: subscribe + * @Description: 璁㈤槄鑺傜偣鍙橀噺 + * @throws Exception + * @CreateTime 2019骞�12鏈�18鏃� 涓婂崍10:38:11 + */ + public String subscribe(List<NodeEntity> nodes) throws Exception { + + if (client == null) { + return "鎵句笉鍒板鎴风锛屾搷浣滃け璐�"; + } + + // 鏌ヨ璁㈤槄瀵硅薄锛屾病鏈夊垯鍒涘缓 + UaSubscription subscription = null; + ImmutableList<UaSubscription> subscriptionList = client.getSubscriptionManager().getSubscriptions(); + if (CollectionUtils.isEmpty(subscriptionList)) { + subscription = client.getSubscriptionManager().createSubscription(1000.0).get(); + } else { + subscription = subscriptionList.get(0); + } + + // 鐩戞帶椤硅姹傚垪琛� + List<MonitoredItemCreateRequest> requests = new ArrayList<>(); + + if (!CollectionUtils.isEmpty(nodes)) { + for (NodeEntity node : nodes) { + // 鍒涘缓鐩戞帶鐨勫弬鏁� + MonitoringParameters parameters = new MonitoringParameters(subscription.nextClientHandle(), 1000.0, // sampling + // interval + null, // filter, null means use default + Unsigned.uint(10), // queue size + true // discard oldest + ); + // 鍒涘缓璁㈤槄鐨勫彉閲忥紝 鍒涘缓鐩戞帶椤硅 姹� + MonitoredItemCreateRequest request = new MonitoredItemCreateRequest( + new ReadValueId(new NodeId(node.getIndex(), node.getIdentifier()), AttributeId.Value.uid(), + null, null), + MonitoringMode.Reporting, parameters); + requests.add(request); + } + } + + // 鍒涘缓鐩戞帶椤癸紝骞朵笖娉ㄥ唽鍙橀噺鍊兼敼鍙樻椂鍊欑殑鍥炶皟鍑芥暟 + subscription.createMonitoredItems(TimestampsToReturn.Both, requests, (item, id) -> { + item.setValueConsumer((i, v) -> { + handle(i.getReadValueId().getNodeId(), v.getValue()); + }); + }).get(); + + return "璁㈤槄鎴愬姛"; + } + + /** + * * @MethodName: write + * @Description: 鍥炶皟鍑芥暟 + * @CreateTime 2023骞�10鏈�13鏃� + */ + public void handle(NodeId id, Variant value){ + if (b == null || 0 > b.size()) { + DaOpcuaConfig opcuaConfParam=new DaOpcuaConfig(); + opcuaConfParam.setSubscribe("Y"); + b=daOpcuaConfigService.selectDaOpcuaConfigList(opcuaConfParam); + } + //浣跨敤Stream API鍦↙ist<T>涓煡鎵惧厓绱� + DaOpcuaConfig daOpcuaConfig = b.stream() + .filter(customer ->id.getIdentifier().toString().equals(customer.getNode())) + .findAny() + .orElse(null); + try { + Class<?> clazz = Class.forName("com.jcdm.main.da.opcuaconfig.cert.MethodName"); + Method method = clazz.getMethod(daOpcuaConfig.getrFunction(), new Class[] { String.class, String.class }); + method.invoke(clazz.newInstance(),new Object[] { + new String(id.getIdentifier().toString()), new String(value.getValue().toString()) }); + } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException | + InvocationTargetException e) { + e.printStackTrace(); + } + } + + + /** + * @MethodName: write + * @Description: 鍙樿妭鐐归噺鍐欏叆 + * @param node + * @throws Exception + * @CreateTime 2019骞�12鏈�18鏃� 涓婂崍9:51:40 + */ + public static Boolean write(NodeEntity node) throws Exception { + + if (client == null) { + log.info("鎵句笉鍒板鎴风锛屾搷浣滃け璐�"); + return false; + } + + NodeId nodeId = new NodeId(node.getIndex(), node.getIdentifier()); + Variant value = null; + switch (node.getType()) { + case "int": + value = new Variant(Integer.parseInt(node.getValue().toString())); + break; + case "boolean": + value = new Variant(Boolean.parseBoolean(node.getValue().toString())); + break; + case "short": + value = new Variant(Short.parseShort(node.getValue().toString())); + break; + case "long": + value = new Variant(Long.parseLong(node.getValue().toString())); + break; + case "string": + value = new Variant(node.getValue().toString()); + break; + case "char": + value = new Variant(node.getValue().toString().charAt(0)); + break; + } + DataValue dataValue = new DataValue(value, null, null); + + StatusCode statusCode = client.writeValue(nodeId, dataValue).get(); + + return statusCode.isGood(); + } + + /** + * 鏂规硶鎻忚堪: 璇诲彇澶氫釜鐐逛綅鐨勫�� + * + * @param nodeIdList 鐐逛綅闆嗗悎 + * @return {@link List<DataValue>} + * @throws + */ + public static List<DataValue> readValues(List<NodeId> nodeIdList){ + try { + List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get(); + return dataValues; + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + return null; + } + + /** + * @MethodName: read + * @Description: 璇诲彇 + * @param node + * @return + * @throws Exception + * @CreateTime 2019骞�12鏈�19鏃� 涓嬪崍2:40:34 + */ + public String read(NodeEntity node) throws Exception { + + if (client == null) { + return "鎵句笉鍒板鎴风锛屾搷浣滃け璐�"; + } + + NodeId nodeId = new NodeId(node.getIndex(), node.getIdentifier()); + VariableNode vnode = client.getAddressSpace().createVariableNode(nodeId); + DataValue value = vnode.readValue().get(); + log.info("Value={}", value); + + Variant variant = value.getValue(); + log.info("Variant={}", variant.getValue()); + + log.info("BackingClass={}", BuiltinDataType.getBackingClass(variant.getDataType().get())); + + return variant.getValue().toString(); + } + + + /** + * 鏂规硶鎻忚堪: 鍐欏叆澶氫釜鑺傜偣鐨勫�� + * + * @param keys 鑺傜偣闆嗗悎 + * @param values 鍊奸泦鍚� + * @param client 瀹㈡埛绔� + * @return {@link Object} + * @throws + */ + public static Object writeValues(Set<String> keys, List<Object> values, OpcUaClient client){ + List<NodeId> nodeIs=new ArrayList<>(keys.size()); + keys.forEach(e->{ + NodeId nodeId = new NodeId(2, e); + nodeIs.add(nodeId); + }); + List<DataValue> dataValues=new ArrayList<>(values.size()); + values.forEach(e->{ + Variant value=new Variant(Double.parseDouble(e.toString())); + DataValue dataValue=new DataValue(value); + dataValues.add(dataValue); + }); + try { + client.writeValues(nodeIs,dataValues).get(); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientRunner.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientRunner.java new file mode 100644 index 0000000..513a6dd --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientRunner.java @@ -0,0 +1,146 @@ +package com.jcdm.main.da.opcuaconfig.client; + +import com.jcdm.main.da.opcuaconfig.cert.KeyStoreLoader; +import com.jcdm.main.da.opcuaconfig.init.Properties; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.milo.opcua.sdk.client.OpcUaClient; +import org.eclipse.milo.opcua.sdk.client.api.config.OpcUaClientConfig; +import org.eclipse.milo.opcua.sdk.client.api.identity.AnonymousProvider; +import org.eclipse.milo.opcua.stack.client.DiscoveryClient; +import org.eclipse.milo.opcua.stack.core.Stack; +import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy; +import org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText; +import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned; +import org.eclipse.milo.opcua.stack.core.types.structured.EndpointDescription; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.function.Predicate; + +/** + * @ClassName: ClientRunner + * @Description: 瀹㈡埛绔惎鍔ㄧ被 + * @author yyt + * @date 2023骞�10鏈�13鏃� + */ +@Slf4j +@Component +public class ClientRunner { + + private final CompletableFuture<OpcUaClient> future = new CompletableFuture<>(); + + @Autowired + private Properties properties; + + @Autowired + private KeyStoreLoader keyStoreLoader; + + /** + * @MethodName: run + * @Description: 鍚姩 + * @return + * @throws Exception + * @CreateTime 2023骞�10鏈�13鏃� + */ + public OpcUaClient run() throws Exception { + + OpcUaClient client = createClient(); + + future.whenCompleteAsync((c, ex) -> { + if (ex != null) { + log.error("Error running example: {}", ex.getMessage(), ex); + } + + try { + c.disconnect().get(); + Stack.releaseSharedResources(); + } catch (InterruptedException | ExecutionException e) { + log.error("Error disconnecting:", e.getMessage(), e); + } + }); + + return client; + } + + /** + * @MethodName: createClient + * @Description: 鍒涘缓瀹㈡埛绔� + * @return + * @throws Exception + * @CreateTime 2023骞�10鏈�13鏃� + */ + private OpcUaClient createClient() throws Exception { + + Path securityTempDir = Paths.get(properties.getCertPath(), "security"); + Files.createDirectories(securityTempDir); + if (!Files.exists(securityTempDir)) { + log.error("unable to create security dir: " + securityTempDir); + return null; + } + + KeyStoreLoader loader = keyStoreLoader.load(securityTempDir); + + // 鎼滅储OPC鑺傜偣 + List<EndpointDescription> endpoints = null; + try { + //鑾峰彇瀹夊叏绛栫暐 + endpoints = DiscoveryClient.getEndpoints(properties.getEndpointUrl()).get(); + } catch (Throwable e) { + // try the explicit discovery endpoint as well + String discoveryUrl = properties.getEndpointUrl(); + + if (!discoveryUrl.endsWith("/")) { + discoveryUrl += "/"; + } + discoveryUrl += "discovery"; + + log.info("Trying explicit discovery URL: {}", discoveryUrl); + endpoints = DiscoveryClient.getEndpoints(discoveryUrl).get(); + } + + EndpointDescription endpoint = endpoints.stream() + .filter(e -> e.getSecurityPolicyUri().equals(SecurityPolicy.None.getUri())).filter(endpointFilter()) + .findFirst().orElseThrow(() -> new Exception("no desired endpoints returned")); + + OpcUaClientConfig config = OpcUaClientConfig.builder() + // opc ua鑷畾涔夌殑鍚嶇О + .setApplicationName(LocalizedText.english("plc")) + // 鍦板潃 + .setApplicationUri(properties.getEndpointUrl()) + .setCertificate(loader.getClientCertificate()).setKeyPair(loader.getClientKeyPair()) + // 瀹夊叏绛栫暐绛夐厤缃� + //.setEndpoint(endpoint).setIdentityProvider(new UsernameProvider("OPCUA", "yyt@8888888888")) + .setEndpoint(endpoint) + // 鍖垮悕楠岃瘉 + .setIdentityProvider(new AnonymousProvider()) + //绛夊緟鏃堕棿 + .setRequestTimeout(Unsigned.uint(5000)).build(); + + return OpcUaClient.create(config); + + } + + /** + * @MethodName: endpointFilter + * @Description: endpointFilter + * @return + * @CreateTime 2023骞�10鏈�13鏃� + */ + private Predicate<EndpointDescription> endpointFilter() { + return e -> true; + } + + /** + * @return the future + */ + public CompletableFuture<OpcUaClient> getFuture() { + return future; + } + +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java new file mode 100644 index 0000000..b052a20 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java @@ -0,0 +1,98 @@ +package com.jcdm.main.da.opcuaconfig.controller; + +import com.jcdm.common.annotation.Log; +import com.jcdm.common.core.controller.BaseController; +import com.jcdm.common.core.domain.AjaxResult; +import com.jcdm.common.core.page.TableDataInfo; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; +import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; +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; + +/** + * 浜や簰淇″彿閰嶇疆Controller + * + * @author yyt + * @date 2024-01-23 + */ +@RestController +@RequestMapping("/da/opcuaconfig") +public class DaOpcuaConfigController extends BaseController +{ + @Autowired + private IDaOpcuaConfigService daOpcuaConfigService; + + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:opcuaconfig:list')") + @GetMapping("/list") + public TableDataInfo list(DaOpcuaConfig daOpcuaConfig) + { + startPage(); + List<DaOpcuaConfig> list = daOpcuaConfigService.selectDaOpcuaConfigList(daOpcuaConfig); + return getDataTable(list); + } + + /** + * 瀵煎嚭浜や簰淇″彿閰嶇疆鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:opcuaconfig:export')") + @Log(title = "浜や簰淇″彿閰嶇疆", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DaOpcuaConfig daOpcuaConfig) + { + List<DaOpcuaConfig> list = daOpcuaConfigService.selectDaOpcuaConfigList(daOpcuaConfig); + ExcelUtil<DaOpcuaConfig> util = new ExcelUtil<DaOpcuaConfig>(DaOpcuaConfig.class); + util.exportExcel(response, list, "浜や簰淇″彿閰嶇疆鏁版嵁"); + } + + /** + * 鑾峰彇浜や簰淇″彿閰嶇疆璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('da:opcuaconfig:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(daOpcuaConfigService.selectDaOpcuaConfigById(id)); + } + + /** + * 鏂板浜や簰淇″彿閰嶇疆 + */ + @PreAuthorize("@ss.hasPermi('da:opcuaconfig:add')") + @Log(title = "浜や簰淇″彿閰嶇疆", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DaOpcuaConfig daOpcuaConfig) + { + return toAjax(daOpcuaConfigService.insertDaOpcuaConfig(daOpcuaConfig)); + } + + /** + * 淇敼浜や簰淇″彿閰嶇疆 + */ + @PreAuthorize("@ss.hasPermi('da:opcuaconfig:edit')") + @Log(title = "浜や簰淇″彿閰嶇疆", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DaOpcuaConfig daOpcuaConfig) + { + return toAjax(daOpcuaConfigService.updateDaOpcuaConfig(daOpcuaConfig)); + } + + /** + * 鍒犻櫎浜や簰淇″彿閰嶇疆 + */ + @PreAuthorize("@ss.hasPermi('da:opcuaconfig:remove')") + @Log(title = "浜や簰淇″彿閰嶇疆", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(daOpcuaConfigService.deleteDaOpcuaConfigByIds(ids)); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/DaOpcuaConfig.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/DaOpcuaConfig.java new file mode 100644 index 0000000..f9ea5ac --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/DaOpcuaConfig.java @@ -0,0 +1,149 @@ +package com.jcdm.main.da.opcuaconfig.domain; + +import com.jcdm.common.annotation.Excel; +import com.jcdm.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 浜や簰淇″彿閰嶇疆瀵硅薄 da_opcua_config + * + * @author yyt + * @date 2024-01-23 + */ +public class DaOpcuaConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 鑺傜偣 */ + @Excel(name = "鑺傜偣") + private String node; + + /** 鏁版嵁绫诲瀷 */ + @Excel(name = "鏁版嵁绫诲瀷") + private String sysTypes; + + /** 鏄惁璁㈤槄 */ + @Excel(name = "鏄惁璁㈤槄") + private String subscribe; + + /** 璁㈤槄绫诲瀷 */ + @Excel(name = "璁㈤槄绫诲瀷") + private String rFunction; + + /** 澶囨敞 */ + @Excel(name = "澶囨敞") + private String remarks; + + /** 宸ュ簭鍚嶇О */ + @Excel(name = "宸ュ簭鍚嶇О") + private String processName; + + /** 宸ュ簭缂栫爜 */ + @Excel(name = "宸ュ簭缂栫爜") + private String process; + + /** 鐘舵�� */ + @Excel(name = "鐘舵��") + private Long state; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setNode(String node) + { + this.node = node; + } + + public String getNode() + { + return node; + } + public void setSysTypes(String sysTypes) + { + this.sysTypes = sysTypes; + } + + public String getSysTypes() + { + return sysTypes; + } + public void setSubscribe(String subscribe) + { + this.subscribe = subscribe; + } + + public String getSubscribe() + { + return subscribe; + } + public void setrFunction(String rFunction) + { + this.rFunction = rFunction; + } + + public String getrFunction() + { + return rFunction; + } + public void setRemarks(String remarks) + { + this.remarks = remarks; + } + + public String getRemarks() + { + return remarks; + } + public void setProcessName(String processName) + { + this.processName = processName; + } + + public String getProcessName() + { + return processName; + } + public void setProcess(String process) + { + this.process = process; + } + + public String getProcess() + { + return process; + } + public void setState(Long state) + { + this.state = state; + } + + public Long getState() + { + return state; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("node", getNode()) + .append("sysTypes", getSysTypes()) + .append("subscribe", getSubscribe()) + .append("rFunction", getrFunction()) + .append("remarks", getRemarks()) + .append("processName", getProcessName()) + .append("process", getProcess()) + .append("state", getState()) + .toString(); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/NodeEntity.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/NodeEntity.java new file mode 100644 index 0000000..8d4ba5d --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/domain/NodeEntity.java @@ -0,0 +1,19 @@ +package com.jcdm.main.da.opcuaconfig.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder(toBuilder = true) +@AllArgsConstructor +@NoArgsConstructor +public class NodeEntity { + + private Integer index; + private String identifier; + private Object value; + private String type; + private Integer clientHandle; +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/BeanUtils.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/BeanUtils.java new file mode 100644 index 0000000..b61e3b5 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/BeanUtils.java @@ -0,0 +1,30 @@ +package com.jcdm.main.da.opcuaconfig.init; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class BeanUtils implements ApplicationContextAware { + protected static ApplicationContext applicationContext ; + + @Override + public void setApplicationContext(ApplicationContext arg0) throws BeansException { + if (applicationContext == null) { + applicationContext = arg0; + } + + } + public static Object getBean(String name) { + //name琛ㄧず鍏朵粬瑕佹敞鍏ョ殑娉ㄨВname鍚� + return applicationContext.getBean(name); + } + + /** + * 鎷垮埌ApplicationContext瀵硅薄瀹炰緥鍚庡氨鍙互鎵嬪姩鑾峰彇Bean鐨勬敞鍏ュ疄渚嬪璞� + */ + public static <T> T getBean(Class<T> clazz) { + return applicationContext.getBean(clazz); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/OpcusConfigInit.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/OpcusConfigInit.java new file mode 100644 index 0000000..2404567 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/OpcusConfigInit.java @@ -0,0 +1,48 @@ +package com.jcdm.main.da.opcuaconfig.init; + +import com.google.common.collect.Lists; +import com.jcdm.main.da.opcuaconfig.client.ClientHandler; +import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; +import com.jcdm.main.da.opcuaconfig.domain.NodeEntity; +import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +@Slf4j +public class OpcusConfigInit implements CommandLineRunner { + + @Autowired + private ClientHandler clientHandler; + + @Autowired + private IDaOpcuaConfigService daOpcuaConfigService; + + @Override + public void run(String... args) throws Exception { + try { + DaOpcuaConfig daOpcuaConfig=new DaOpcuaConfig(); + daOpcuaConfig.setSubscribe("Y"); //璁剧疆鏌ヨ鏉′欢锛屾槸鍚﹁闃呯姸鎬佷负Y鐨勬墍鏈夋暟鎹�. + List<DaOpcuaConfig> nodeslist=daOpcuaConfigService.selectDaOpcuaConfigList(daOpcuaConfig); + clientHandler.connect(); + if (nodeslist != null && nodeslist.size() > 0) { + List<NodeEntity> NodeList = Lists.transform(nodeslist, (DaOpcuaConfig) -> { + NodeEntity nodeEntity = new NodeEntity(); + nodeEntity.setIndex(2); + nodeEntity.setIdentifier(DaOpcuaConfig.getNode()); + return nodeEntity; + }); + clientHandler.subscribe(NodeList); + log.info("鍒濆鍖朞PC璁㈤槄" + nodeslist.size() + "鏉★紒"); + } + log.info("绯荤粺鎻愮ず锛孫PCUA璁㈤槄鎴愬姛锛�"); + } catch (Exception e) { + e.printStackTrace(); + log.info("绯荤粺鎻愮ず锛孫PCUA璁㈤槄澶辫触锛�"); + } + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/Properties.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/Properties.java new file mode 100644 index 0000000..fc06c6b --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/init/Properties.java @@ -0,0 +1,57 @@ +/** + * Created by Jellyleo on 2019骞�12鏈�19鏃� + * Copyright 漏 2019 jellyleo.com + * All rights reserved. + */ +package com.jcdm.main.da.opcuaconfig.init; + +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +/** + * @ClassName: Properties + * @Description: OpcUa鍙傛暟 + * @author yyt + * @date 2023骞�10鏈�13鏃� + */ +@Getter +@Configuration +@PropertySource("classpath:opcua.properties") +public class Properties { + @Value("${opcua.server.endpoint.url}") + private String endpointUrl; + @Value("${opcua.server.idp.username}") + private String idpUsername; + @Value("${opcua.server.idp.password}") + private String idpPassword; + @Value("${opcua.client.app.name}") + private String appName; + @Value("${opcua.client.app.uri}") + private String appUri; + @Value("${opcua.client.cert.path}") + private String certPath; + @Value("${opcua.client.cert.file}") + private String certFile; + @Value("${opcua.client.cert.alias}") + private String certAlias; + @Value("${opcua.client.cert.common.name}") + private String commonName; + @Value("${opcua.client.cert.organization}") + private String organization; + @Value("${opcua.client.cert.organization.unit}") + private String orgUnit; + @Value("${opcua.client.cert.locality.name}") + private String localityName; + @Value("${opcua.client.cert.state.name}") + private String stateName; + @Value("${opcua.client.cert.country.code}") + private String countryCode; + @Value("${opcua.client.cert.dns.name}") + private String dnsName; + @Value("${opcua.client.cert.ip.address}") + private String ipAddress; + @Value("${opcua.client.cert.keystore.password}") + private String keyPassword; +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/mapper/DaOpcuaConfigMapper.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/mapper/DaOpcuaConfigMapper.java new file mode 100644 index 0000000..7feb41d --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/mapper/DaOpcuaConfigMapper.java @@ -0,0 +1,62 @@ +package com.jcdm.main.da.opcuaconfig.mapper; + +import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; + +import java.util.List; + +/** + * 浜や簰淇″彿閰嶇疆Mapper鎺ュ彛 + * + * @author yyt + * @date 2024-01-23 + */ +public interface DaOpcuaConfigMapper +{ + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆 + * + * @param id 浜や簰淇″彿閰嶇疆涓婚敭 + * @return 浜や簰淇″彿閰嶇疆 + */ + public DaOpcuaConfig selectDaOpcuaConfigById(Long id); + + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆鍒楄〃 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 浜や簰淇″彿閰嶇疆闆嗗悎 + */ + public List<DaOpcuaConfig> selectDaOpcuaConfigList(DaOpcuaConfig daOpcuaConfig); + + /** + * 鏂板浜や簰淇″彿閰嶇疆 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 缁撴灉 + */ + public int insertDaOpcuaConfig(DaOpcuaConfig daOpcuaConfig); + + /** + * 淇敼浜や簰淇″彿閰嶇疆 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 缁撴灉 + */ + public int updateDaOpcuaConfig(DaOpcuaConfig daOpcuaConfig); + + /** + * 鍒犻櫎浜や簰淇″彿閰嶇疆 + * + * @param id 浜や簰淇″彿閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + public int deleteDaOpcuaConfigById(Long id); + + /** + * 鎵归噺鍒犻櫎浜や簰淇″彿閰嶇疆 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteDaOpcuaConfigByIds(Long[] ids); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/IDaOpcuaConfigService.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/IDaOpcuaConfigService.java new file mode 100644 index 0000000..13fbdfa --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/IDaOpcuaConfigService.java @@ -0,0 +1,62 @@ +package com.jcdm.main.da.opcuaconfig.service; + +import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; + +import java.util.List; + +/** + * 浜や簰淇″彿閰嶇疆Service鎺ュ彛 + * + * @author yyt + * @date 2024-01-23 + */ +public interface IDaOpcuaConfigService +{ + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆 + * + * @param id 浜や簰淇″彿閰嶇疆涓婚敭 + * @return 浜や簰淇″彿閰嶇疆 + */ + public DaOpcuaConfig selectDaOpcuaConfigById(Long id); + + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆鍒楄〃 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 浜や簰淇″彿閰嶇疆闆嗗悎 + */ + public List<DaOpcuaConfig> selectDaOpcuaConfigList(DaOpcuaConfig daOpcuaConfig); + + /** + * 鏂板浜や簰淇″彿閰嶇疆 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 缁撴灉 + */ + public int insertDaOpcuaConfig(DaOpcuaConfig daOpcuaConfig); + + /** + * 淇敼浜や簰淇″彿閰嶇疆 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 缁撴灉 + */ + public int updateDaOpcuaConfig(DaOpcuaConfig daOpcuaConfig); + + /** + * 鎵归噺鍒犻櫎浜や簰淇″彿閰嶇疆 + * + * @param ids 闇�瑕佸垹闄ょ殑浜や簰淇″彿閰嶇疆涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteDaOpcuaConfigByIds(Long[] ids); + + /** + * 鍒犻櫎浜や簰淇″彿閰嶇疆淇℃伅 + * + * @param id 浜や簰淇″彿閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + public int deleteDaOpcuaConfigById(Long id); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/impl/DaOpcuaConfigServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/impl/DaOpcuaConfigServiceImpl.java new file mode 100644 index 0000000..02e9c42 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/service/impl/DaOpcuaConfigServiceImpl.java @@ -0,0 +1,94 @@ +package com.jcdm.main.da.opcuaconfig.service.impl; + +import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; +import com.jcdm.main.da.opcuaconfig.mapper.DaOpcuaConfigMapper; +import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 浜や簰淇″彿閰嶇疆Service涓氬姟灞傚鐞� + * + * @author yyt + * @date 2024-01-23 + */ +@Service +public class DaOpcuaConfigServiceImpl implements IDaOpcuaConfigService +{ + @Autowired + private DaOpcuaConfigMapper daOpcuaConfigMapper; + + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆 + * + * @param id 浜や簰淇″彿閰嶇疆涓婚敭 + * @return 浜や簰淇″彿閰嶇疆 + */ + @Override + public DaOpcuaConfig selectDaOpcuaConfigById(Long id) + { + return daOpcuaConfigMapper.selectDaOpcuaConfigById(id); + } + + /** + * 鏌ヨ浜や簰淇″彿閰嶇疆鍒楄〃 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 浜や簰淇″彿閰嶇疆 + */ + @Override + public List<DaOpcuaConfig> selectDaOpcuaConfigList(DaOpcuaConfig daOpcuaConfig) + { + return daOpcuaConfigMapper.selectDaOpcuaConfigList(daOpcuaConfig); + } + + /** + * 鏂板浜や簰淇″彿閰嶇疆 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 缁撴灉 + */ + @Override + public int insertDaOpcuaConfig(DaOpcuaConfig daOpcuaConfig) + { + return daOpcuaConfigMapper.insertDaOpcuaConfig(daOpcuaConfig); + } + + /** + * 淇敼浜や簰淇″彿閰嶇疆 + * + * @param daOpcuaConfig 浜や簰淇″彿閰嶇疆 + * @return 缁撴灉 + */ + @Override + public int updateDaOpcuaConfig(DaOpcuaConfig daOpcuaConfig) + { + return daOpcuaConfigMapper.updateDaOpcuaConfig(daOpcuaConfig); + } + + /** + * 鎵归噺鍒犻櫎浜や簰淇″彿閰嶇疆 + * + * @param ids 闇�瑕佸垹闄ょ殑浜や簰淇″彿閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteDaOpcuaConfigByIds(Long[] ids) + { + return daOpcuaConfigMapper.deleteDaOpcuaConfigByIds(ids); + } + + /** + * 鍒犻櫎浜や簰淇″彿閰嶇疆淇℃伅 + * + * @param id 浜や簰淇″彿閰嶇疆涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteDaOpcuaConfigById(Long id) + { + return daOpcuaConfigMapper.deleteDaOpcuaConfigById(id); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java index cd73dbd..082011e 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/controller/DaParamCollectionController.java @@ -1,27 +1,20 @@ package com.jcdm.main.da.paramCollection.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import com.jcdm.common.utils.DateUtils; -import com.jcdm.main.da.paramCollection.domain.DaParamCollection; -import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.jcdm.common.annotation.Log; import com.jcdm.common.core.controller.BaseController; import com.jcdm.common.core.domain.AjaxResult; -import com.jcdm.common.enums.BusinessType; -import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.common.core.page.TableDataInfo; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.utils.DateUtils; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.main.da.paramCollection.domain.DaParamCollection; +import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; +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; /** * 璁惧浜у搧杩囩▼鍙傛暟閲囬泦Controller diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/domain/DaParamCollection.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/domain/DaParamCollection.java index ad11ae4..05d7528 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/domain/DaParamCollection.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/domain/DaParamCollection.java @@ -1,11 +1,11 @@ package com.jcdm.main.da.paramCollection.domain; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.jcdm.common.annotation.Excel; import com.jcdm.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; /** * 璁惧浜у搧杩囩▼鍙傛暟閲囬泦瀵硅薄 da_param_collection @@ -65,8 +65,7 @@ private String paramStandard; /** 閲囬泦鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "閲囬泦鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd") + @Excel(name = "閲囬泦鏃堕棿") private Date collectionTime; /** 棰勭暀瀛楁1 */ @@ -96,15 +95,6 @@ /** 绫诲瀷 */ @Excel(name = "绫诲瀷") private String type; - @Excel(name = "鍙傛暟闆嗙紪鐮�") - private String parameterSetCode; - @Excel(name = "鍙傛暟闆嗗悕绉�") - private String parameterSetName; - @Excel(name = "宸ュ簭缂栧彿") - private String processesCode; - @Excel(name = "宸ュ簭鍚嶇О") - private String processesName; - public void setId(Long id) { @@ -295,42 +285,6 @@ { return type; } - public void setParameterSetCode(String parameterSetCode) - { - this.parameterSetCode = parameterSetCode; - } - - public String getParameterSetCode() - { - return parameterSetCode; - } - public void setParameterSetName(String parameterSetName) - { - this.parameterSetName = parameterSetName; - } - - public String getParameterSetName() - { - return parameterSetName; - } - public void setProcessesCode(String processesCode) - { - this.processesCode = processesCode; - } - - public String getProcessesCode() - { - return processesCode; - } - public void setProcessesName(String processesName) - { - this.processesName = processesName; - } - - public String getProcessesName() - { - return processesName; - } @Override public String toString() { @@ -358,10 +312,6 @@ .append("paramName", getParamName()) .append("unit", getUnit()) .append("type", getType()) - .append("parameterSetCode", getParameterSetCode()) - .append("parameterSetName", getParameterSetName()) - .append("processesCode", getProcessesCode()) - .append("processesName", getProcessesName()) .toString(); } } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java index 2c3a908..54b40a6 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java @@ -1,6 +1,5 @@ package com.jcdm.main.da.paramCollection.service.impl; -import java.util.List; import com.jcdm.common.utils.DateUtils; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; @@ -8,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 璁惧浜у搧杩囩▼鍙傛暟閲囬泦Service涓氬姟灞傚鐞� * diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java new file mode 100644 index 0000000..5b0d40e --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/common/Constants.java @@ -0,0 +1,5 @@ +package com.jcdm.main.da.passingStationCollection.common; + +public final class Constants { + +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java index 999b8e7..4e655a7 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/controller/DaPassingStationCollectionController.java @@ -1,27 +1,21 @@ package com.jcdm.main.da.passingStationCollection.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import com.jcdm.common.utils.DateUtils; -import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; -import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.jcdm.common.annotation.Log; import com.jcdm.common.core.controller.BaseController; import com.jcdm.common.core.domain.AjaxResult; -import com.jcdm.common.enums.BusinessType; -import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.common.core.domain.R; import com.jcdm.common.core.page.TableDataInfo; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.utils.DateUtils; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; +import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; +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; /** * 浜у搧杩囩珯閲囬泦Controller @@ -49,6 +43,35 @@ } /** + * 鏌ヨ浜у搧杩囩珯閲囬泦鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:passingStationCollection:list')") + @GetMapping("/noPageList") + public TableDataInfo noPageList(DaPassingStationCollection daPassingStationCollection) + { + List<DaPassingStationCollection> list = daPassingStationCollectionService.selectDaPassingStationCollectionList(daPassingStationCollection); + return getDataTable(list); + } + +// @PreAuthorize("@ss.hasPermi('da:passingStationCollection:list')") +// @GetMapping("/getProduceNumToday") +// public R getProduceNumToday(String fieldName) +// { +// Integer num = daPassingStationCollectionService.getProduceNumToday(fieldName); +// return R.ok(num); +// } + + /** + * 鏌ヨ浜у搧杩囩珯閲囬泦鍒楄〃 + */ + @GetMapping("/insertRepairRecordByIds") + public AjaxResult insertRepairRecordByIds(DaPassingStationCollection daPassingStationCollection) + { + daPassingStationCollectionService.insertRepairRecordByIds(daPassingStationCollection); + return AjaxResult.success(); + } + + /** * 瀵煎嚭浜у搧杩囩珯閲囬泦鍒楄〃 */ @PreAuthorize("@ss.hasPermi('da:passingStationCollection:export')") diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/domain/DaPassingStationCollection.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/domain/DaPassingStationCollection.java index faf27ba..f6ce656 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/domain/DaPassingStationCollection.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/domain/DaPassingStationCollection.java @@ -1,11 +1,11 @@ package com.jcdm.main.da.passingStationCollection.domain; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.jcdm.common.annotation.Excel; import com.jcdm.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; /** * 浜у搧杩囩珯閲囬泦瀵硅薄 da_passing_station_collection @@ -45,13 +45,13 @@ private String equipmentNo; /** 鍏ョ珯鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "鍏ョ珯鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd") +// @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "鍏ョ珯鏃堕棿") private Date inboundTime; /** 鍑虹珯鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "鍑虹珯鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd") +// @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "鍑虹珯鏃堕棿") private Date outboundTime; /** 鍏ョ珯鏄惁鍚堟牸 */ @@ -71,8 +71,8 @@ private String outMsgSign; /** 閲囬泦鏃堕棿 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "閲囬泦鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd") +// @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "閲囬泦鏃堕棿") private Date collectionTime; /** 棰勭暀瀛楁1 */ @@ -91,7 +91,17 @@ @Excel(name = "鑺傛媿鏃堕棿") private String beatTime; - public void setId(Long id) + private Long[] ids; + + public Long[] getIds() { + return ids; + } + + public void setIds(Long[] ids) { + this.ids = ids; + } + + public void setId(Long id) { this.id = id; } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java index e251e00..f3cd0ca 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java @@ -28,6 +28,14 @@ */ public List<DaPassingStationCollection> selectDaPassingStationCollectionList(DaPassingStationCollection daPassingStationCollection); + +// /** +// * 鑾峰彇棣栭〉鍗曟棩绱閲忎骇鏁版嵁 +// * @param fieldName bs +// * @return list +// */ +// public Integer getProduceNumToday(String fieldName); + /** * 鏂板浜у搧杩囩珯閲囬泦 * @@ -59,4 +67,6 @@ * @return 缁撴灉 */ public int deleteDaPassingStationCollectionById(Long id); + + void insertRepairRecordByIds(DaPassingStationCollection daPassingStationCollection); } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java index c5d10a9..a45c08e 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java @@ -1,12 +1,21 @@ package com.jcdm.main.da.passingStationCollection.service.impl; -import java.util.List; import com.jcdm.common.utils.DateUtils; +//import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; +//import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; +//import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; +import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord; +import com.jcdm.main.rm.repairRecord.mapper.RmRepairRecordMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; /** * 浜у搧杩囩珯閲囬泦Service涓氬姟灞傚鐞� @@ -19,6 +28,15 @@ { @Autowired private DaPassingStationCollectionMapper daPassingStationCollectionMapper; + + @Autowired + private RmRepairRecordMapper rmRepairRecordMapper; + +// @Autowired +// private BsOrderSchedulingMapper bsOrderSchedulingMapper; +// +// @Autowired +// private IBsOrderSchedulingService bsOrderSchedulingService; /** * 鏌ヨ浜у搧杩囩珯閲囬泦 @@ -43,6 +61,26 @@ { return daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); } + +// /** +// * 鑾峰彇棣栭〉鍗曟棩绱閲忎骇鏁版嵁 +// * @param fieldName bs +// * @return list +// */ +// @Override +// public Integer getProduceNumToday(String fieldName) { +// +// BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); +// bsOrderScheduling.setQueryField(fieldName); +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// LocalDateTime startTime = LocalDate.now().atStartOfDay(); +// LocalDateTime endTime = LocalDate.now().plusDays(1).atStartOfDay(); +// String s1 = startTime.format(formatter); +// String s2 = endTime.format(formatter); +// bsOrderScheduling.setStartTime(s1); +// bsOrderScheduling.setEndTime(s2); +// return bsOrderSchedulingMapper.getProduceNumToday(bsOrderScheduling); +// } /** * 鏂板浜у搧杩囩珯閲囬泦 @@ -93,4 +131,17 @@ { return daPassingStationCollectionMapper.deleteDaPassingStationCollectionById(id); } + + @Override + public void insertRepairRecordByIds(DaPassingStationCollection daPassingStationCollection) { + Long[] conditions = daPassingStationCollection.getIds(); + for (int i = 0; i < conditions.length; i++) { + DaPassingStationCollection result = daPassingStationCollectionMapper.selectDaPassingStationCollectionById(conditions[i]); + RmRepairRecord rmRepairRecord = new RmRepairRecord(); + rmRepairRecord.setBoxCode(result.getSfcCode()); + rmRepairRecord.setProcessesCode(result.getLocationCode()); + rmRepairRecord.setOriginalResult(result.getOutRsSign()); + rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord); + } + } } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java new file mode 100644 index 0000000..bbb88e9 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java @@ -0,0 +1,98 @@ +package com.jcdm.main.da.tileMatchRules.controller; + +import com.jcdm.common.annotation.Log; +import com.jcdm.common.core.controller.BaseController; +import com.jcdm.common.core.domain.AjaxResult; +import com.jcdm.common.core.page.TableDataInfo; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; +import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService; +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; + +/** + * 閰嶇摝瑙勫垯Controller + * + * @author jiang + * @date 2024-01-24 + */ +@RestController +@RequestMapping("/da/tileMatchRules") +public class DaTileMatchRulesController extends BaseController +{ + @Autowired + private IDaTileMatchRulesService daTileMatchRulesService; + + /** + * 鏌ヨ閰嶇摝瑙勫垯鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:list')") + @GetMapping("/list") + public TableDataInfo list(DaTileMatchRules daTileMatchRules) + { + startPage(); + List<DaTileMatchRules> list = daTileMatchRulesService.selectDaTileMatchRulesList(daTileMatchRules); + return getDataTable(list); + } + + /** + * 瀵煎嚭閰嶇摝瑙勫垯鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:export')") + @Log(title = "閰嶇摝瑙勫垯", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DaTileMatchRules daTileMatchRules) + { + List<DaTileMatchRules> list = daTileMatchRulesService.selectDaTileMatchRulesList(daTileMatchRules); + ExcelUtil<DaTileMatchRules> util = new ExcelUtil<DaTileMatchRules>(DaTileMatchRules.class); + util.exportExcel(response, list, "閰嶇摝瑙勫垯鏁版嵁"); + } + + /** + * 鑾峰彇閰嶇摝瑙勫垯璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(daTileMatchRulesService.selectDaTileMatchRulesById(id)); + } + + /** + * 鏂板閰嶇摝瑙勫垯 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:add')") + @Log(title = "閰嶇摝瑙勫垯", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DaTileMatchRules daTileMatchRules) + { + return toAjax(daTileMatchRulesService.insertDaTileMatchRules(daTileMatchRules)); + } + + /** + * 淇敼閰嶇摝瑙勫垯 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:edit')") + @Log(title = "閰嶇摝瑙勫垯", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DaTileMatchRules daTileMatchRules) + { + return toAjax(daTileMatchRulesService.updateDaTileMatchRules(daTileMatchRules)); + } + + /** + * 鍒犻櫎閰嶇摝瑙勫垯 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:remove')") + @Log(title = "閰嶇摝瑙勫垯", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(daTileMatchRulesService.deleteDaTileMatchRulesByIds(ids)); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/domain/DaTileMatchRules.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/domain/DaTileMatchRules.java new file mode 100644 index 0000000..91822ac --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/domain/DaTileMatchRules.java @@ -0,0 +1,235 @@ +package com.jcdm.main.da.tileMatchRules.domain; + +import com.jcdm.common.annotation.Excel; +import com.jcdm.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 閰嶇摝瑙勫垯瀵硅薄 da_tile_match_rules + * + * @author jiang + * @date 2024-01-24 + */ +public class DaTileMatchRules extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 涓婚敭id */ + private Long id; + + /** 浜у搧绯诲垪 */ + @Excel(name = "浜у搧绯诲垪") + private String productSeries; + + /** 鎵爜瀵硅薄1 */ + @Excel(name = "鎵爜瀵硅薄1") + private String scanObject1; + + /** 鎵爜瀵硅薄2 */ + @Excel(name = "鎵爜瀵硅薄2") + private String scanObject2; + + /** 杞村悕绉� */ + @Excel(name = "杞村悕绉�") + private String axisName; + + /** 棰堝悕绉� */ + @Excel(name = "棰堝悕绉�") + private String neckName; + + /** 鐡﹀悕绉� */ + @Excel(name = "鐡﹀悕绉�") + private String tileName; + + /** 杞村弬鏁版暟浣嶇疆 */ + @Excel(name = "杞村弬鏁版暟浣嶇疆") + private Long axisParameterNoPosition; + + /** 棰堝弬鏁版暟浣嶇疆 */ + @Excel(name = "棰堝弬鏁版暟浣嶇疆") + private Long neckParameterPosition; + + /** 杞村�� */ + @Excel(name = "杞村��") + private String axisValue; + + /** 棰堝�� */ + @Excel(name = "棰堝��") + private String neckValue; + + /** 鐡﹂鑹� */ + @Excel(name = "鐡﹂鑹�") + private String tileColor; + + /** 鍒涘缓鐢ㄦ埛 */ + @Excel(name = "鍒涘缓鐢ㄦ埛") + private String createUser; + + /** 鏇存敼鐢ㄦ埛 */ + @Excel(name = "鏇存敼鐢ㄦ埛") + private String updateUser; + + /** 鐘舵�侊紙1鍚堟牸銆�2涓嶅悎鏍硷級 */ + @Excel(name = "鐘舵��", readConverterExp = "1=鍚堟牸銆�2涓嶅悎鏍�") + private String state; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setProductSeries(String productSeries) + { + this.productSeries = productSeries; + } + + public String getProductSeries() + { + return productSeries; + } + public void setScanObject1(String scanObject1) + { + this.scanObject1 = scanObject1; + } + + public String getScanObject1() + { + return scanObject1; + } + public void setScanObject2(String scanObject2) + { + this.scanObject2 = scanObject2; + } + + public String getScanObject2() + { + return scanObject2; + } + public void setAxisName(String axisName) + { + this.axisName = axisName; + } + + public String getAxisName() + { + return axisName; + } + public void setNeckName(String neckName) + { + this.neckName = neckName; + } + + public String getNeckName() + { + return neckName; + } + public void setTileName(String tileName) + { + this.tileName = tileName; + } + + public String getTileName() + { + return tileName; + } + public void setAxisParameterNoPosition(Long axisParameterNoPosition) + { + this.axisParameterNoPosition = axisParameterNoPosition; + } + + public Long getAxisParameterNoPosition() + { + return axisParameterNoPosition; + } + public void setNeckParameterPosition(Long neckParameterPosition) + { + this.neckParameterPosition = neckParameterPosition; + } + + public Long getNeckParameterPosition() + { + return neckParameterPosition; + } + public void setAxisValue(String axisValue) + { + this.axisValue = axisValue; + } + + public String getAxisValue() + { + return axisValue; + } + public void setNeckValue(String neckValue) + { + this.neckValue = neckValue; + } + + public String getNeckValue() + { + return neckValue; + } + public void setTileColor(String tileColor) + { + this.tileColor = tileColor; + } + + public String getTileColor() + { + return tileColor; + } + public void setCreateUser(String createUser) + { + this.createUser = createUser; + } + + public String getCreateUser() + { + return createUser; + } + public void setUpdateUser(String updateUser) + { + this.updateUser = updateUser; + } + + public String getUpdateUser() + { + return updateUser; + } + public void setState(String state) + { + this.state = state; + } + + public String getState() + { + return state; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("productSeries", getProductSeries()) + .append("scanObject1", getScanObject1()) + .append("scanObject2", getScanObject2()) + .append("axisName", getAxisName()) + .append("neckName", getNeckName()) + .append("tileName", getTileName()) + .append("axisParameterNoPosition", getAxisParameterNoPosition()) + .append("neckParameterPosition", getNeckParameterPosition()) + .append("axisValue", getAxisValue()) + .append("neckValue", getNeckValue()) + .append("tileColor", getTileColor()) + .append("createUser", getCreateUser()) + .append("createTime", getCreateTime()) + .append("updateUser", getUpdateUser()) + .append("updateTime", getUpdateTime()) + .append("state", getState()) + .toString(); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/mapper/DaTileMatchRulesMapper.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/mapper/DaTileMatchRulesMapper.java new file mode 100644 index 0000000..0dec29b --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/mapper/DaTileMatchRulesMapper.java @@ -0,0 +1,62 @@ +package com.jcdm.main.da.tileMatchRules.mapper; + +import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; + +import java.util.List; + +/** + * 閰嶇摝瑙勫垯Mapper鎺ュ彛 + * + * @author jiang + * @date 2024-01-24 + */ +public interface DaTileMatchRulesMapper +{ + /** + * 鏌ヨ閰嶇摝瑙勫垯 + * + * @param id 閰嶇摝瑙勫垯涓婚敭 + * @return 閰嶇摝瑙勫垯 + */ + public DaTileMatchRules selectDaTileMatchRulesById(Long id); + + /** + * 鏌ヨ閰嶇摝瑙勫垯鍒楄〃 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 閰嶇摝瑙勫垯闆嗗悎 + */ + public List<DaTileMatchRules> selectDaTileMatchRulesList(DaTileMatchRules daTileMatchRules); + + /** + * 鏂板閰嶇摝瑙勫垯 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 缁撴灉 + */ + public int insertDaTileMatchRules(DaTileMatchRules daTileMatchRules); + + /** + * 淇敼閰嶇摝瑙勫垯 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 缁撴灉 + */ + public int updateDaTileMatchRules(DaTileMatchRules daTileMatchRules); + + /** + * 鍒犻櫎閰嶇摝瑙勫垯 + * + * @param id 閰嶇摝瑙勫垯涓婚敭 + * @return 缁撴灉 + */ + public int deleteDaTileMatchRulesById(Long id); + + /** + * 鎵归噺鍒犻櫎閰嶇摝瑙勫垯 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteDaTileMatchRulesByIds(Long[] ids); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/IDaTileMatchRulesService.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/IDaTileMatchRulesService.java new file mode 100644 index 0000000..63254f1 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/IDaTileMatchRulesService.java @@ -0,0 +1,62 @@ +package com.jcdm.main.da.tileMatchRules.service; + +import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; + +import java.util.List; + +/** + * 閰嶇摝瑙勫垯Service鎺ュ彛 + * + * @author jiang + * @date 2024-01-24 + */ +public interface IDaTileMatchRulesService +{ + /** + * 鏌ヨ閰嶇摝瑙勫垯 + * + * @param id 閰嶇摝瑙勫垯涓婚敭 + * @return 閰嶇摝瑙勫垯 + */ + public DaTileMatchRules selectDaTileMatchRulesById(Long id); + + /** + * 鏌ヨ閰嶇摝瑙勫垯鍒楄〃 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 閰嶇摝瑙勫垯闆嗗悎 + */ + public List<DaTileMatchRules> selectDaTileMatchRulesList(DaTileMatchRules daTileMatchRules); + + /** + * 鏂板閰嶇摝瑙勫垯 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 缁撴灉 + */ + public int insertDaTileMatchRules(DaTileMatchRules daTileMatchRules); + + /** + * 淇敼閰嶇摝瑙勫垯 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 缁撴灉 + */ + public int updateDaTileMatchRules(DaTileMatchRules daTileMatchRules); + + /** + * 鎵归噺鍒犻櫎閰嶇摝瑙勫垯 + * + * @param ids 闇�瑕佸垹闄ょ殑閰嶇摝瑙勫垯涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteDaTileMatchRulesByIds(Long[] ids); + + /** + * 鍒犻櫎閰嶇摝瑙勫垯淇℃伅 + * + * @param id 閰嶇摝瑙勫垯涓婚敭 + * @return 缁撴灉 + */ + public int deleteDaTileMatchRulesById(Long id); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/impl/DaTileMatchRulesServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/impl/DaTileMatchRulesServiceImpl.java new file mode 100644 index 0000000..862b696 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/service/impl/DaTileMatchRulesServiceImpl.java @@ -0,0 +1,97 @@ +package com.jcdm.main.da.tileMatchRules.service.impl; + +import com.jcdm.common.utils.DateUtils; +import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; +import com.jcdm.main.da.tileMatchRules.mapper.DaTileMatchRulesMapper; +import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 閰嶇摝瑙勫垯Service涓氬姟灞傚鐞� + * + * @author jiang + * @date 2024-01-24 + */ +@Service +public class DaTileMatchRulesServiceImpl implements IDaTileMatchRulesService +{ + @Autowired + private DaTileMatchRulesMapper daTileMatchRulesMapper; + + /** + * 鏌ヨ閰嶇摝瑙勫垯 + * + * @param id 閰嶇摝瑙勫垯涓婚敭 + * @return 閰嶇摝瑙勫垯 + */ + @Override + public DaTileMatchRules selectDaTileMatchRulesById(Long id) + { + return daTileMatchRulesMapper.selectDaTileMatchRulesById(id); + } + + /** + * 鏌ヨ閰嶇摝瑙勫垯鍒楄〃 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 閰嶇摝瑙勫垯 + */ + @Override + public List<DaTileMatchRules> selectDaTileMatchRulesList(DaTileMatchRules daTileMatchRules) + { + return daTileMatchRulesMapper.selectDaTileMatchRulesList(daTileMatchRules); + } + + /** + * 鏂板閰嶇摝瑙勫垯 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 缁撴灉 + */ + @Override + public int insertDaTileMatchRules(DaTileMatchRules daTileMatchRules) + { + daTileMatchRules.setCreateTime(DateUtils.getNowDate()); + return daTileMatchRulesMapper.insertDaTileMatchRules(daTileMatchRules); + } + + /** + * 淇敼閰嶇摝瑙勫垯 + * + * @param daTileMatchRules 閰嶇摝瑙勫垯 + * @return 缁撴灉 + */ + @Override + public int updateDaTileMatchRules(DaTileMatchRules daTileMatchRules) + { + daTileMatchRules.setUpdateTime(DateUtils.getNowDate()); + return daTileMatchRulesMapper.updateDaTileMatchRules(daTileMatchRules); + } + + /** + * 鎵归噺鍒犻櫎閰嶇摝瑙勫垯 + * + * @param ids 闇�瑕佸垹闄ょ殑閰嶇摝瑙勫垯涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteDaTileMatchRulesByIds(Long[] ids) + { + return daTileMatchRulesMapper.deleteDaTileMatchRulesByIds(ids); + } + + /** + * 鍒犻櫎閰嶇摝瑙勫垯淇℃伅 + * + * @param id 閰嶇摝瑙勫垯涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteDaTileMatchRulesById(Long id) + { + return daTileMatchRulesMapper.deleteDaTileMatchRulesById(id); + } +} diff --git a/jcdm-main/src/main/resources/mapper/da/opcuaconfig/DaOpcuaConfigMapper.xml b/jcdm-main/src/main/resources/mapper/da/opcuaconfig/DaOpcuaConfigMapper.xml new file mode 100644 index 0000000..9832bf4 --- /dev/null +++ b/jcdm-main/src/main/resources/mapper/da/opcuaconfig/DaOpcuaConfigMapper.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.jcdm.main.da.opcuaconfig.mapper.DaOpcuaConfigMapper"> + <resultMap type="DaOpcuaConfig" id="DaOpcuaConfigResult"> + <result property="id" column="id" /> + <result property="node" column="node" /> + <result property="sysTypes" column="sys_types" /> + <result property="subscribe" column="subscribe" /> + <result property="rFunction" column="r_function" /> + <result property="remarks" column="remarks" /> + <result property="processName" column="process_name" /> + <result property="process" column="process" /> + <result property="state" column="state" /> + </resultMap> + + <sql id="selectDaOpcuaConfigVo"> + select id, node, sys_types, subscribe, r_function, remarks, process_name, process, state from da_opcua_config + </sql> + + <select id="selectDaOpcuaConfigList" parameterType="DaOpcuaConfig" resultMap="DaOpcuaConfigResult"> + <include refid="selectDaOpcuaConfigVo"/> + <where> + <if test="node != null and node != ''"> and node = #{node}</if> + <if test="rFunction != null and rFunction != ''"> and r_function = #{rFunction}</if> + <if test="process != null and process != ''"> and process = #{process}</if> + <if test="state != null "> and state = #{state}</if> + </where> + </select> + + <select id="selectDaOpcuaConfigById" parameterType="Long" resultMap="DaOpcuaConfigResult"> + <include refid="selectDaOpcuaConfigVo"/> + where id = #{id} + </select> + + <insert id="insertDaOpcuaConfig" parameterType="DaOpcuaConfig" useGeneratedKeys="true" keyProperty="id"> + insert into da_opcua_config + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="node != null">node,</if> + <if test="sysTypes != null">sys_types,</if> + <if test="subscribe != null">subscribe,</if> + <if test="rFunction != null">r_function,</if> + <if test="remarks != null">remarks,</if> + <if test="processName != null">process_name,</if> + <if test="process != null">process,</if> + <if test="state != null">state,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="node != null">#{node},</if> + <if test="sysTypes != null">#{sysTypes},</if> + <if test="subscribe != null">#{subscribe},</if> + <if test="rFunction != null">#{rFunction},</if> + <if test="remarks != null">#{remarks},</if> + <if test="processName != null">#{processName},</if> + <if test="process != null">#{process},</if> + <if test="state != null">#{state},</if> + </trim> + </insert> + + <update id="updateDaOpcuaConfig" parameterType="DaOpcuaConfig"> + update da_opcua_config + <trim prefix="SET" suffixOverrides=","> + <if test="node != null">node = #{node},</if> + <if test="sysTypes != null">sys_types = #{sysTypes},</if> + <if test="subscribe != null">subscribe = #{subscribe},</if> + <if test="rFunction != null">r_function = #{rFunction},</if> + <if test="remarks != null">remarks = #{remarks},</if> + <if test="processName != null">process_name = #{processName},</if> + <if test="process != null">process = #{process},</if> + <if test="state != null">state = #{state},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteDaOpcuaConfigById" parameterType="Long"> + delete from da_opcua_config where id = #{id} + </delete> + + <delete id="deleteDaOpcuaConfigByIds" parameterType="String"> + delete from da_opcua_config 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-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml b/jcdm-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml index 43adf79..f8bfd29 100644 --- a/jcdm-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml +++ b/jcdm-main/src/main/resources/mapper/da/paramCollection/DaParamCollectionMapper.xml @@ -28,27 +28,19 @@ <result property="paramName" column="param_name" /> <result property="unit" column="unit" /> <result property="type" column="type" /> - <result property="parameterSetCode" column="parameter_set_code" /> - <result property="parameterSetName" column="parameter_set_name" /> - <result property="processesCode" column="processes_code" /> - <result property="processesName" column="processes_name" /> - </resultMap> <sql id="selectDaParamCollectionVo"> - select id, work_order_no, sfc_code,processes_name,processes_code, parameter_set_code ,parameter_set_name, product_code, production_line, location_code, equipment_no, param_code, param_value, param_upper, param_lower, param_standard, collection_time, spare_field_1, spare_field_2, create_user, create_time, update_user, update_time, state, param_name, unit, type from da_param_collection + select id, work_order_no, sfc_code, product_code, production_line, location_code, equipment_no, param_code, param_value, param_upper, param_lower, param_standard, collection_time, spare_field_1, spare_field_2, create_user, create_time, update_user, update_time, state, param_name, unit, type from da_param_collection </sql> <select id="selectDaParamCollectionList" parameterType="DaParamCollection" resultMap="DaParamCollectionResult"> <include refid="selectDaParamCollectionVo"/> <where> <if test="workOrderNo != null and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if> + <if test="type != null and type != ''"> and type = #{type}</if> <if test="sfcCode != null and sfcCode != ''"> and sfc_code = #{sfcCode}</if> <if test="productCode != null and productCode != ''"> and product_code = #{productCode}</if> - <if test="parameterSetCode != null and parameterSetCode != ''"> and parameter_set_code = #{parameterSetCode}</if> - <if test="parameterSetName != null and parameterSetName != ''"> and parameter_set_name = #{parameterSetName}</if> - <if test="processesCode != null and processesCode != ''"> and processes_code = #{processesCode}</if> - <if test="processesName != null and processesName != ''"> and processes_name = #{processesName}</if> <if test="productionLine != null and productionLine != ''"> and production_line = #{productionLine}</if> <if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if> <if test="equipmentNo != null and equipmentNo != ''"> and equipment_no = #{equipmentNo}</if> @@ -70,10 +62,6 @@ <if test="productCode != null and productCode != ''">product_code,</if> <if test="productionLine != null and productionLine != ''">production_line,</if> <if test="locationCode != null and locationCode != ''">location_code,</if> - <if test="parameterSetCode != null and parameterSetCode != ''">parameter_set_code,</if> - <if test="parameterSetName != null and parameterSetName != ''">parameter_set_name,</if> - <if test="processesCode != null and processesCode != ''">processes_code,</if> - <if test="processesName != null and processesName != ''">processes_name,</if> <if test="equipmentNo != null">equipment_no,</if> <if test="paramCode != null and paramCode != ''">param_code,</if> <if test="paramValue != null and paramValue != ''">param_value,</if> @@ -99,10 +87,6 @@ <if test="productCode != null and productCode != ''">#{productCode},</if> <if test="productionLine != null and productionLine != ''">#{productionLine},</if> <if test="locationCode != null and locationCode != ''">#{locationCode},</if> - <if test="parameterSetCode != null and parameterSetCode != ''">#{parameter_set_code},</if> - <if test="parameterSetName != null and parameterSetName != ''">#{parameter_set_name},</if> - <if test="processesCode != null and processesCode != ''">#{processes_code},</if> - <if test="processesName != null and processesName != ''">#{processes_name},</if> <if test="equipmentNo != null">#{equipmentNo},</if> <if test="paramCode != null and paramCode != ''">#{paramCode},</if> <if test="paramValue != null and paramValue != ''">#{paramValue},</if> @@ -131,10 +115,6 @@ <if test="productCode != null and productCode != ''">product_code = #{productCode},</if> <if test="productionLine != null and productionLine != ''">production_line = #{productionLine},</if> <if test="locationCode != null and locationCode != ''">location_code = #{locationCode},</if> - <if test="parameterSetCode != null and parameterSetCode != ''">parameter_set_code = #{parameterSetCode},</if> - <if test="parameterSetName != null and parameterSetName != ''">parameter_set_name = #{parameterSetName},</if> - <if test="processesCode != null and processesCode != ''">processes_code = #{processesCode},</if> - <if test="processesName != null and processesName != ''">processes_name = #{processesName},</if> <if test="equipmentNo != null">equipment_no = #{equipmentNo},</if> <if test="paramCode != null and paramCode != ''">param_code = #{paramCode},</if> <if test="paramValue != null and paramValue != ''">param_value = #{paramValue},</if> diff --git a/jcdm-main/src/main/resources/mapper/da/passingStationCollection/DaPassingStationCollectionMapper.xml b/jcdm-main/src/main/resources/mapper/da/passingStationCollection/DaPassingStationCollectionMapper.xml index 3b26b5c..3eca8e2 100644 --- a/jcdm-main/src/main/resources/mapper/da/passingStationCollection/DaPassingStationCollectionMapper.xml +++ b/jcdm-main/src/main/resources/mapper/da/passingStationCollection/DaPassingStationCollectionMapper.xml @@ -43,6 +43,9 @@ <if test="equipmentNo != null and equipmentNo != ''"> and equipment_no = #{equipmentNo}</if> <if test="inboundTime != null "> and inbound_time = #{inboundTime}</if> <if test="outboundTime != null "> and outbound_time = #{outboundTime}</if> + <if test="outRsSign != null "> and out_rs_sign = #{outRsSign}</if> + <if test="outRsSign != null "> and out_rs_sign = #{outRsSign}</if> + </where> </select> diff --git a/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml b/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml new file mode 100644 index 0000000..3de08c8 --- /dev/null +++ b/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.jcdm.main.da.tileMatchRules.mapper.DaTileMatchRulesMapper"> + + <resultMap type="DaTileMatchRules" id="DaTileMatchRulesResult"> + <result property="id" column="id" /> + <result property="productSeries" column="product_series" /> + <result property="scanObject1" column="scan_object1" /> + <result property="scanObject2" column="scan_object2" /> + <result property="axisName" column="axis_name" /> + <result property="neckName" column="neck_name" /> + <result property="tileName" column="tile_name" /> + <result property="axisParameterNoPosition" column="axis_parameter_no_position" /> + <result property="neckParameterPosition" column="neck_parameter_position" /> + <result property="axisValue" column="axis_value" /> + <result property="neckValue" column="neck_value" /> + <result property="tileColor" column="tile_color" /> + <result property="createUser" column="create_user" /> + <result property="createTime" column="create_time" /> + <result property="updateUser" column="update_user" /> + <result property="updateTime" column="update_time" /> + <result property="state" column="state" /> + </resultMap> + + <sql id="selectDaTileMatchRulesVo"> + select id, product_series, scan_object1, scan_object2, axis_name, neck_name, tile_name, axis_parameter_no_position, neck_parameter_position, axis_value, neck_value, tile_color, create_user, create_time, update_user, update_time, state from da_tile_match_rules + </sql> + + <select id="selectDaTileMatchRulesList" parameterType="DaTileMatchRules" resultMap="DaTileMatchRulesResult"> + <include refid="selectDaTileMatchRulesVo"/> + <where> + <if test="productSeries != null and productSeries != ''"> and product_series = #{productSeries}</if> + <if test="scanObject1 != null and scanObject1 != ''"> and scan_object1 = #{scanObject1}</if> + <if test="scanObject2 != null and scanObject2 != ''"> and scan_object2 = #{scanObject2}</if> + <if test="axisName != null and axisName != ''"> and axis_name like concat('%', #{axisName}, '%')</if> + <if test="neckName != null and neckName != ''"> and neck_name like concat('%', #{neckName}, '%')</if> + <if test="tileName != null and tileName != ''"> and tile_name like concat('%', #{tileName}, '%')</if> + <if test="axisParameterNoPosition != null "> and axis_parameter_no_position = #{axisParameterNoPosition}</if> + <if test="neckParameterPosition != null "> and neck_parameter_position = #{neckParameterPosition}</if> + <if test="axisValue != null and axisValue != ''"> and axis_value = #{axisValue}</if> + <if test="neckValue != null and neckValue != ''"> and neck_value = #{neckValue}</if> + <if test="tileColor != null and tileColor != ''"> and tile_color = #{tileColor}</if> + <if test="createUser != null and createUser != ''"> and create_user = #{createUser}</if> + <if test="updateUser != null and updateUser != ''"> and update_user = #{updateUser}</if> + <if test="state != null and state != ''"> and state = #{state}</if> + </where> + </select> + + <select id="selectDaTileMatchRulesById" parameterType="Long" resultMap="DaTileMatchRulesResult"> + <include refid="selectDaTileMatchRulesVo"/> + where id = #{id} + </select> + + <insert id="insertDaTileMatchRules" parameterType="DaTileMatchRules" useGeneratedKeys="true" keyProperty="id"> + insert into da_tile_match_rules + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="productSeries != null">product_series,</if> + <if test="scanObject1 != null">scan_object1,</if> + <if test="scanObject2 != null">scan_object2,</if> + <if test="axisName != null">axis_name,</if> + <if test="neckName != null">neck_name,</if> + <if test="tileName != null">tile_name,</if> + <if test="axisParameterNoPosition != null">axis_parameter_no_position,</if> + <if test="neckParameterPosition != null">neck_parameter_position,</if> + <if test="axisValue != null">axis_value,</if> + <if test="neckValue != null">neck_value,</if> + <if test="tileColor != null">tile_color,</if> + <if test="createUser != null">create_user,</if> + <if test="createTime != null">create_time,</if> + <if test="updateUser != null">update_user,</if> + <if test="updateTime != null">update_time,</if> + <if test="state != null">state,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="productSeries != null">#{productSeries},</if> + <if test="scanObject1 != null">#{scanObject1},</if> + <if test="scanObject2 != null">#{scanObject2},</if> + <if test="axisName != null">#{axisName},</if> + <if test="neckName != null">#{neckName},</if> + <if test="tileName != null">#{tileName},</if> + <if test="axisParameterNoPosition != null">#{axisParameterNoPosition},</if> + <if test="neckParameterPosition != null">#{neckParameterPosition},</if> + <if test="axisValue != null">#{axisValue},</if> + <if test="neckValue != null">#{neckValue},</if> + <if test="tileColor != null">#{tileColor},</if> + <if test="createUser != null">#{createUser},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateUser != null">#{updateUser},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="state != null">#{state},</if> + </trim> + </insert> + + <update id="updateDaTileMatchRules" parameterType="DaTileMatchRules"> + update da_tile_match_rules + <trim prefix="SET" suffixOverrides=","> + <if test="productSeries != null">product_series = #{productSeries},</if> + <if test="scanObject1 != null">scan_object1 = #{scanObject1},</if> + <if test="scanObject2 != null">scan_object2 = #{scanObject2},</if> + <if test="axisName != null">axis_name = #{axisName},</if> + <if test="neckName != null">neck_name = #{neckName},</if> + <if test="tileName != null">tile_name = #{tileName},</if> + <if test="axisParameterNoPosition != null">axis_parameter_no_position = #{axisParameterNoPosition},</if> + <if test="neckParameterPosition != null">neck_parameter_position = #{neckParameterPosition},</if> + <if test="axisValue != null">axis_value = #{axisValue},</if> + <if test="neckValue != null">neck_value = #{neckValue},</if> + <if test="tileColor != null">tile_color = #{tileColor},</if> + <if test="createUser != null">create_user = #{createUser},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateUser != null">update_user = #{updateUser},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="state != null">state = #{state},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteDaTileMatchRulesById" parameterType="Long"> + delete from da_tile_match_rules where id = #{id} + </delete> + + <delete id="deleteDaTileMatchRulesByIds" parameterType="String"> + delete from da_tile_match_rules where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/jcdm-ui/dist.rar b/jcdm-ui/dist.rar new file mode 100644 index 0000000..fd52725 --- /dev/null +++ b/jcdm-ui/dist.rar Binary files differ diff --git a/jcdm-ui/src/views/main/da/collectionParamConf/index.vue b/jcdm-ui/src/views/main/da/collectionParamConf/index.vue index 5c342fc..79e1b0e 100644 --- a/jcdm-ui/src/views/main/da/collectionParamConf/index.vue +++ b/jcdm-ui/src/views/main/da/collectionParamConf/index.vue @@ -202,12 +202,12 @@ /> <!-- 娣诲姞鎴栦慨鏀归噰闆嗗弬鏁伴厤缃璇濇 --> - <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> + <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="700px" 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="120px"> + <el-form ref="form" inline :model="form" :rules="rules" label-width="120px"> <el-form-item label="宸ュ簭缂栧彿" prop="processesCode"> <el-input v-model="form.processesCode" placeholder="璇疯緭鍏ュ伐搴忕紪鍙�" /> </el-form-item> diff --git a/jcdm-ui/src/views/main/da/opcuaconfig/index.vue b/jcdm-ui/src/views/main/da/opcuaconfig/index.vue index 6be8c27..17215a4 100644 --- a/jcdm-ui/src/views/main/da/opcuaconfig/index.vue +++ b/jcdm-ui/src/views/main/da/opcuaconfig/index.vue @@ -1,206 +1,163 @@ <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="module"> - <el-input - v-model="queryParams.module" - placeholder="璇疯緭鍏ユ墍灞炴ā鍧�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鑺傜偣" prop="node"> - <el-input - v-model="queryParams.node" - placeholder="璇疯緭鍏ヨ妭鐐�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="闀垮害" prop="length"> - <el-input - v-model="queryParams.length" - placeholder="璇疯緭鍏ラ暱搴�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="绫诲瀷" prop="sysTypes"> - <el-select v-model="queryParams.sysTypes" placeholder="璇烽�夋嫨绫诲瀷" clearable> -<!-- <el-option--> -<!-- v-for="dict in dict.type.${dictType}"--> -<!-- :key="dict.value"--> -<!-- :label="dict.label"--> -<!-- :value="dict.value"--> -<!-- />--> - </el-select> - </el-form-item> - <el-form-item style="float: right"> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">楂樼骇鏌ヨ</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px"> - <el-form-item label="璁㈤槄鍝嶅簲妯″潡" prop="rModule"> - <el-input - v-model="queryParams.rModule" - placeholder="璇疯緭鍏ヨ闃呭搷搴旀ā鍧�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="璁㈤槄鍝嶅簲鍑芥暟" prop="rFunction"> - <el-input - v-model="queryParams.rFunction" - placeholder="璇疯緭鍏ヨ闃呭搷搴斿嚱鏁�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍔熻兘璇存槑" prop="functionality"> - <el-input - v-model="queryParams.functionality" - placeholder="璇疯緭鍏ュ姛鑳借鏄�" - clearable - @keyup.enter.native="handleQuery" - /> - </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.${dictType}"--> - <!-- :key="dict.value"--> - <!-- :label="dict.label"--> - <!-- :value="dict.value"--> - <!-- />--> - </el-select> - </el-form-item> - </el-form> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="鑺傜偣" prop="node"> + <el-input + v-model="queryParams.node" + placeholder="璇疯緭鍏ヨ妭鐐�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="璁㈤槄绫诲瀷" prop="rFunction"> + <el-select v-model="queryParams.rFunction" placeholder="璇烽�夋嫨璁㈤槄绫诲瀷" clearable> + <el-option + v-for="dict in dict.type.subscription_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item label="宸ュ簭缂栫爜" prop="process"> + <el-input + v-model="queryParams.process" + placeholder="璇疯緭鍏ュ伐搴忕紪鐮�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="state"> + <el-select v-model="queryParams.state" placeholder="璇烽�夋嫨鐘舵��" clearable> + <el-option + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item style="float: right"> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> </el-card> <el-card style="margin-top: 10px" class="box-card"> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['da:opcuaconfig:add']" - >鏂板</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['da:opcuaconfig:edit']" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - v-hasPermi="['da:opcuaconfig:remove']" - >鍒犻櫎</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['da:opcuaconfig:export']" - >瀵煎嚭</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['da:opcuaconfig:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['da:opcuaconfig:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['da:opcuaconfig: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="['main:opcuaconfig:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> - <el-table v-loading="loading" border :data="opcuaconfigList" @selection-change="handleSelectionChange" v-if="opcuaconfigList.length > 0"> - <el-table-column type="selection" width="55" align="center" /> -<!-- <el-table-column label="ID" align="center" prop="id" />--> - <el-table-column label="鎵�灞炴ā鍧�" align="center" prop="module"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.module"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="鑺傜偣" align="center" prop="node"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.node"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="闀垮害" align="center" prop="length"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.length"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="绫诲瀷" align="center" prop="sysTypes"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.sysTypes"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="鍔熻兘璇存槑" align="center" prop="functionality"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.functionality"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="鏄惁璁㈤槄" align="center" prop="subscribe"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.subscribe"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="璁㈤槄鍝嶅簲妯″潡" align="center" prop="rModule"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.rModule"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="璁㈤槄鍝嶅簲鍑芥暟" align="center" prop="rFunction"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.rFunction"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column label="澶囨敞" align="center" prop="remarks"> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.remarks"/>--> -<!-- </template>--> - </el-table-column> - <el-table-column fixed="right" label="鎿嶄綔" width="200" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="success" - plain - style="width: 72px" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['da:opcuaconfig:edit']" - >淇敼</el-button> - <el-button - size="mini" - type="danger" - plain - style="width: 72px" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['da:opcuaconfig:remove']" - >鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> - <el-empty v-else> - <span slot="description">鏆傛棤鏁版嵁</span> - </el-empty> + <el-table border v-loading="loading" :data="opcuaconfigList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> +<!-- <el-table-column label="ID" align="center" prop="id" />--> + <el-table-column label="宸ュ簭鍚嶇О" align="center" prop="processName"> + <!-- <template slot-scope="scope">--> + <!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.processName"/>--> + <!-- </template>--> + </el-table-column> + <el-table-column label="宸ュ簭缂栫爜" align="center" prop="process"> + <!-- <template slot-scope="scope">--> + <!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.process"/>--> + <!-- </template>--> + </el-table-column> + <el-table-column label="浜や簰鑺傜偣" align="center" prop="node"> +<!-- <template slot-scope="scope">--> +<!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.node"/>--> +<!-- </template>--> + </el-table-column> + <el-table-column label="鏁版嵁绫诲瀷" align="center" prop="sysTypes"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.data_type" :value="scope.row.sysTypes"/> + </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" prop="rFunction"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.subscription_type" :value="scope.row.rFunction"/> + </template> + </el-table-column> + <el-table-column label="鐘舵��" align="center" prop="state"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.state"/> + </template> + </el-table-column> + <el-table-column label="澶囨敞" align="center" prop="remarks"> + <!-- <template slot-scope="scope">--> + <!-- <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.remarks"/>--> + <!-- </template>--> + </el-table-column> + <el-table-column fixed="right" width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="success" + plain + style="width: 72px" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['main:opcuaconfig:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="danger" + plain + style="width: 72px" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['main:opcuaconfig:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> </el-card> <pagination @@ -211,46 +168,74 @@ @pagination="getList" /> - <!-- 娣诲姞鎴栦慨鏀筄PCUA鍙傛暟璁剧疆瀵硅瘽妗� --> + <!-- 娣诲姞鎴栦慨鏀逛氦浜掍俊鍙烽厤缃璇濇 --> <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="module"> - <el-input v-model="form.module" placeholder="璇疯緭鍏ユ墍灞炴ā鍧�" /> - </el-form-item> - <el-form-item label="鑺傜偣" prop="node"> + <el-form-item label="浜や簰鑺傜偣" prop="node"> <el-input v-model="form.node" placeholder="璇疯緭鍏ヨ妭鐐�" /> </el-form-item> - <el-form-item label="闀垮害" prop="length"> - <el-input v-model="form.length" placeholder="璇疯緭鍏ラ暱搴�" /> - </el-form-item> - <el-form-item label="绫诲瀷" prop="sysTypes"> - <el-select v-model="form.sysTypes" placeholder="璇烽�夋嫨绫诲瀷"> -<!-- <el-option--> -<!-- v-for="dict in dict.type.${dictType}"--> -<!-- :key="dict.value"--> -<!-- :label="dict.label"--> -<!-- :value="dict.value"--> -<!-- ></el-option>--> + <el-form-item label="鏁版嵁绫诲瀷" prop="sysTypes"> + <el-select v-model="form.sysTypes" placeholder="璇烽�夋嫨鏁版嵁绫诲瀷"> + <el-option + v-for="dict in dict.type.data_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> - </el-form-item> - <el-form-item label="鍔熻兘璇存槑" prop="functionality"> - <el-input v-model="form.functionality" placeholder="璇疯緭鍏ュ姛鑳借鏄�" /> </el-form-item> <el-form-item label="鏄惁璁㈤槄" prop="subscribe"> <el-select v-model="form.subscribe" placeholder="璇烽�夋嫨鏄惁璁㈤槄"> -<!-- <el-option--> -<!-- v-for="dict in dict.type.${dictType}"--> -<!-- :key="dict.value"--> -<!-- :label="dict.label"--> -<!-- :value="parseInt(dict.value)"--> -<!-- ></el-option>--> + <el-option + v-for="dict in dict.type.sys_yes_no" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> </el-select> </el-form-item> - <el-form-item label="璁㈤槄鍝嶅簲妯″潡" prop="rModule"> - <el-input v-model="form.rModule" placeholder="璇疯緭鍏ヨ闃呭搷搴旀ā鍧�" /> + <el-form-item label="璁㈤槄绫诲瀷" prop="rFunction"> + <el-select v-model="form.rFunction" placeholder="璇烽�夋嫨璁㈤槄绫诲瀷"> + <el-option + v-for="dict in dict.type.subscription_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> </el-form-item> - <el-form-item label="璁㈤槄鍝嶅簲鍑芥暟" prop="rFunction"> - <el-input v-model="form.rFunction" placeholder="璇疯緭鍏ヨ闃呭搷搴斿嚱鏁�" /> +<!-- <el-form-item label="宸ュ簭鍚嶇О" prop="processName">--> +<!-- <el-input v-model="form.processName" placeholder="璇疯緭鍏ュ伐搴忓悕绉�" />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="宸ュ簭缂栫爜" prop="process">--> +<!-- <el-input v-model="form.process" placeholder="璇疯緭鍏ュ伐搴忕紪鐮�" />--> +<!-- </el-form-item>--> + <el-form-item label="宸ュ簭缂栫爜" prop="process"> + <el-select style="width: 100%" @change="handleSelectChange(form.process)" v-model="form.process" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.processesCode" + :label="item.processesCode" + :value="item.processesCode"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="宸ュ簭鍚嶇О" prop="processName"> + <el-input disabled v-model="form.processName" placeholder="璇疯緭鍏ュ伐搴忓悕绉�" /> + </el-form-item> + <el-form-item label="鐘舵��" prop="state"> + <el-select v-model="form.state" placeholder="璇烽�夋嫨鐘舵��"> + <el-option + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="parseInt(dict.value)" + ></el-option> + </el-select> </el-form-item> <el-form-item label="澶囨敞" prop="remarks"> <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" /> @@ -266,13 +251,17 @@ <script> import { listOpcuaconfig, getOpcuaconfig, delOpcuaconfig, addOpcuaconfig, updateOpcuaconfig } from "@/api/main/da/opcuaconfig/opcuaconfig"; +import {listProcesses} from "@/api/main/bs/processes/processes"; export default { name: "Opcuaconfig", + dicts: ['subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable'], data() { return { + options: [], // 閬僵灞� loading: true, + titleName: "", // 閫変腑鏁扮粍 ids: [], // 闈炲崟涓鐢� @@ -283,9 +272,8 @@ showSearch: true, // 鎬绘潯鏁� total: 0, - // OPCUA鍙傛暟璁剧疆琛ㄦ牸鏁版嵁 + // 浜や簰淇″彿閰嶇疆琛ㄦ牸鏁版嵁 opcuaconfigList: [], - advancedShowSearch: false, // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -294,14 +282,18 @@ queryParams: { pageNum: 1, pageSize: 10, - module: null, node: null, - length: null, - sysTypes: null, - functionality: null, - subscribe: null, - rModule: null, rFunction: null, + process: null, + state: null + }, + ProcessesqueryParams: { + pageNum: 1, + pageSize: 10, + process: null, + processName: null, + keyProcessesFlag: null, + routeCode: undefined, }, // 琛ㄥ崟鍙傛暟 form: {}, @@ -315,12 +307,24 @@ }, created() { this.getList(); + this.getProcessesList(); + }, methods: { - advancedQuery(){ - this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true; + /** 鏌ヨ宸ュ簭淇℃伅鍒楄〃 */ + getProcessesList() { + this.loading = true; + listProcesses(this.queryParams).then(response => { + this.options = response.rows; + }); }, - /** 鏌ヨOPCUA鍙傛暟璁剧疆鍒楄〃 */ + handleSelectChange(selectedOption) { + this.ProcessesqueryParams.process = selectedOption; + listProcesses(this.ProcessesqueryParams).then(response => { + this.form.processName = response.rows[0].processesName; + }); + }, + /** 鏌ヨ浜や簰淇″彿閰嶇疆鍒楄〃 */ getList() { this.loading = true; listOpcuaconfig(this.queryParams).then(response => { @@ -338,15 +342,14 @@ reset() { this.form = { id: null, - module: null, node: null, - length: null, sysTypes: null, - functionality: null, subscribe: null, - rModule: null, rFunction: null, - remarks: null + remarks: null, + processName: null, + process: null, + state: null }; this.resetForm("form"); }, @@ -370,7 +373,7 @@ handleAdd() { this.reset(); this.open = true; - this.title = "娣诲姞OPCUA鍙傛暟璁剧疆"; + this.titleName = "娣诲姞浜や簰淇″彿閰嶇疆"; }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -379,7 +382,7 @@ getOpcuaconfig(id).then(response => { this.form = response.data; this.open = true; - this.title = "淇敼OPCUA鍙傛暟璁剧疆"; + this.titleName = "淇敼浜や簰淇″彿閰嶇疆"; }); }, /** 鎻愪氦鎸夐挳 */ @@ -405,7 +408,7 @@ /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { const ids = row.id || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎OPCUA鍙傛暟璁剧疆缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + this.$modal.confirm('鏄惁纭鍒犻櫎浜や簰淇″彿閰嶇疆缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { return delOpcuaconfig(ids); }).then(() => { this.getList(); diff --git a/jcdm-ui/src/views/main/da/paramCollection/index.vue b/jcdm-ui/src/views/main/da/paramCollection/index.vue index 4c028d8..c4cded5 100644 --- a/jcdm-ui/src/views/main/da/paramCollection/index.vue +++ b/jcdm-ui/src/views/main/da/paramCollection/index.vue @@ -1,71 +1,28 @@ <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="100px"> - <el-form-item label="鎬绘垚搴忓垪鍙�" prop="sfcCode"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="浜у搧缂栫爜" prop="productCode"> <el-input - v-model="queryParams.sfcCode" - placeholder="璇疯緭鍏ユ�绘垚搴忓垪鍙�" + v-model="queryParams.productCode" + placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" clearable @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="宸ュ崟缂栧彿" prop="workOrderNo"> + <el-form-item label="浜у搧鍚嶇О" prop="productName"> <el-input - v-model="queryParams.workOrderNo" - placeholder="璇疯緭鍏ュ伐鍗曠紪鍙�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="宸ュ簭缂栧彿" prop="processesCode"> - <el-input - v-model="queryParams.processesCode" - placeholder="璇疯緭鍏ュ伐搴忕紪鍙�" + 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 type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">楂樼骇鏌ヨ</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> </el-form-item> </el-form> - <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="100px"> - <el-form-item label="鍙傛暟闆嗙紪鐮�" prop="parameterSetCode"> - <el-input - v-model="queryParams.parameterSetCode" - placeholder="璇疯緭鍏ュ弬鏁伴泦缂栫爜" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍙傛暟缂栫爜" prop="paramCode"> - <el-input - v-model="queryParams.paramCode" - placeholder="璇疯緭鍏ュ弬鏁扮紪鐮�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍙傛暟绫诲瀷" prop="type"> - <el-input - v-model="queryParams.type" - placeholder="璇疯緭鍏ュ弬鏁扮被鍨�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="閲囬泦鏃堕棿" prop="collectionTime"> - <el-date-picker clearable - v-model="queryParams.collectionTime" - type="date" - value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨閲囬泦鏃堕棿"> - </el-date-picker> - </el-form-item> - </el-form> </el-card> <el-card style="margin-top: 10px" class="box-card"> <el-row :gutter="10" class="mb8"> @@ -116,46 +73,31 @@ <el-table v-loading="loading" border :data="paramCollectionList" @selection-change="handleSelectionChange" v-if="paramCollectionList.length > 0"> <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="宸ュ崟缂栧彿" align="center" prop="workOrderNo"> - </el-table-column> - <el-table-column label="鎬绘垚搴忓垪鍙�" align="center" width="100" prop="sfcCode"> - </el-table-column> - <el-table-column label="浜у搧缂栧彿" align="center" prop="productCode"> - </el-table-column> - <el-table-column label="浜х嚎缂栧彿" align="center" prop="productionLine"> - </el-table-column> - <el-table-column label="宸ュ簭缂栧彿" align="center" prop="processesCode"> - </el-table-column> - <el-table-column label="璁惧缂栧彿" align="center" prop="equipmentNo"> - </el-table-column> - <el-table-column label="鍙傛暟缂栫爜" align="center" prop="paramCode"> - </el-table-column> - <el-table-column label="鍙傛暟鍊�" align="center" prop="paramValue"> - </el-table-column> - <el-table-column label="鍙傛暟涓婇檺" align="center" prop="paramUpper"> - </el-table-column> - <el-table-column label="鍙傛暟涓嬮檺" align="center" prop="paramLower"> - </el-table-column> - <el-table-column label="鏍囧噯鍊�" align="center" prop="paramStandard"> - </el-table-column> - <el-table-column label="閲囬泦鏃堕棿" align="center" prop="collectionTime" width="180"> + <el-table-column label="宸ュ崟缂栧彿" align="center" prop="workOrderNo"></el-table-column> + <el-table-column label="鎬绘垚搴忓垪鍙�" align="center" width="140" prop="sfcCode" ></el-table-column> + <el-table-column label="浜у搧缂栧彿" align="center" prop="productCode"></el-table-column> + <el-table-column label="浜х嚎缂栧彿" align="center" prop="productionLine"></el-table-column> + <el-table-column label="宸ヤ綅缂栧彿" align="center" prop="locationCode"></el-table-column> + <el-table-column label="璁惧缂栧彿" align="center" prop="equipmentNo"></el-table-column> + <el-table-column label="鍙傛暟缂栫爜" align="center" prop="paramCode"></el-table-column> + <el-table-column label="鍙傛暟鍊�" align="center" prop="paramValue"></el-table-column> + <el-table-column label="鍙傛暟涓婇檺" align="center" prop="paramUpper"></el-table-column> + <el-table-column label="鍙傛暟涓嬮檺" align="center" prop="paramLower"></el-table-column> + <el-table-column label="閲囬泦鏃堕棿" align="center" prop="collectionTime" width="160"> <template slot-scope="scope"> - <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d}') }}</span> + <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> </template> </el-table-column> - <el-table-column label="鐘舵��" align="center" prop="state"> - </el-table-column> - <el-table-column label="鍙傛暟鍚嶇О" align="center" prop="paramName"> - </el-table-column> - <el-table-column label="鍗曚綅" align="center" prop="unit"> - </el-table-column> - <el-table-column label="鍙傛暟绫诲瀷" align="center" prop="type"> - </el-table-column> - <el-table-column fixed="right" label="鎿嶄綔" width="200" align="center" class-name="small-padding fixed-width"> + <el-table-column label="鐘舵��" align="center" prop="state"></el-table-column> + <el-table-column label="鍙傛暟鍚嶇О" align="center" prop="paramName" width="150" ></el-table-column> + <el-table-column label="鍗曚綅" align="center" prop="unit"></el-table-column> + <el-table-column label="绫诲瀷" align="center" prop="type"></el-table-column> + <el-table-column fixed="right" width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width" > <template slot-scope="scope"> <el-button size="mini" type="success" + plain style="width: 72px" icon="el-icon-edit" @click="handleUpdate(scope.row)" @@ -164,6 +106,7 @@ <el-button size="mini" type="danger" + plain style="width: 72px" icon="el-icon-delete" @click="handleDelete(scope.row)" @@ -186,48 +129,40 @@ /> <!-- 娣诲姞鎴栦慨鏀硅澶囦骇鍝佽繃绋嬪弬鏁伴噰闆嗗璇濇 --> - <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="600px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> + <el-dialog v-dialogpop-up :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="宸ュ崟缂栧彿" prop="workOrderNo"> - <el-input v-model="form.workOrderNo" placeholder="璇疯緭鍏ュ伐鍗曠紪鍙�" /> + <el-input v-model="form.workOrderNo" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鎬绘垚搴忓垪鍙�" prop="sfcCode"> - <el-input v-model="form.sfcCode" placeholder="璇疯緭鍏ユ�绘垚搴忓垪鍙�" /> + <el-input v-model="form.sfcCode" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="浜у搧缂栧彿" prop="productCode"> - <el-input v-model="form.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" /> + <el-input v-model="form.productCode" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="浜х嚎缂栧彿" prop="productionLine"> - <el-input v-model="form.productionLine" placeholder="璇疯緭鍏ヤ骇绾跨紪鍙�" /> + <el-input v-model="form.productionLine" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> - <el-form-item label="宸ュ簭缂栧彿" prop="processesCode"> - <el-input v-model="form.processesCode" placeholder="璇疯緭鍏ュ伐搴忕紪鍙�" /> + <el-form-item label="宸ヤ綅缂栧彿" prop="locationCode"> + <el-input v-model="form.locationCode" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="璁惧缂栧彿" prop="equipmentNo"> - <el-input v-model="form.equipmentNo" placeholder="璇疯緭鍏ヨ澶囩紪鍙�" /> + <el-input v-model="form.equipmentNo" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鍙傛暟缂栫爜" prop="paramCode"> - <el-input v-model="form.paramCode" placeholder="璇疯緭鍏ュ弬鏁扮紪鐮�" /> + <el-input v-model="form.paramCode" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鍙傛暟鍊�" prop="paramValue"> - <el-input v-model="form.paramValue" placeholder="璇疯緭鍏ュ弬鏁板��" /> + <el-input v-model="form.paramValue" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鍙傛暟涓婇檺" prop="paramUpper"> - <el-input v-model="form.paramUpper" placeholder="璇疯緭鍏ュ弬鏁颁笂闄�" /> + <el-input v-model="form.paramUpper" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鍙傛暟涓嬮檺" prop="paramLower"> - <el-input v-model="form.paramLower" placeholder="璇疯緭鍏ュ弬鏁颁笅闄�" /> + <el-input v-model="form.paramLower" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鏍囧噯鍊�" prop="paramStandard"> - <el-input v-model="form.paramStandard" placeholder="璇疯緭鍏ユ爣鍑嗗��" /> - </el-form-item> - <el-form-item label="閲囬泦鏃堕棿" prop="collectionTime"> - <el-date-picker clearable - v-model="form.collectionTime" - type="date" - value-format="yyyy-MM-dd" - placeholder="璇烽�夋嫨閲囬泦鏃堕棿"> - </el-date-picker> + <el-input v-model="form.paramStandard" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> <el-form-item label="鐘舵��" prop="state"> <el-input v-model="form.state" placeholder="璇疯緭鍏ョ姸鎬�" /> @@ -238,7 +173,7 @@ <el-form-item label="鍗曚綅" prop="unit"> <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" /> </el-form-item> - <el-form-item label="鍙傛暟绫诲瀷" prop="type"> + <el-form-item label="绫诲瀷" prop="type"> <el-select v-model="form.type" placeholder="璇烽�夋嫨绫诲瀷"> </el-select> </el-form-item> @@ -272,7 +207,6 @@ total: 0, // 璁惧浜у搧杩囩▼鍙傛暟閲囬泦琛ㄦ牸鏁版嵁 paramCollectionList: [], - advancedShowSearch: false, // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -324,9 +258,6 @@ this.getList(); }, methods: { - advancedQuery(){ - this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true; - }, /** 鏌ヨ璁惧浜у搧杩囩▼鍙傛暟閲囬泦鍒楄〃 */ getList() { this.loading = true; diff --git a/jcdm-ui/src/views/main/da/passingStationCollection/index.vue b/jcdm-ui/src/views/main/da/passingStationCollection/index.vue index d4f1e1e..9918df7 100644 --- a/jcdm-ui/src/views/main/da/passingStationCollection/index.vue +++ b/jcdm-ui/src/views/main/da/passingStationCollection/index.vue @@ -83,29 +83,24 @@ </el-table-column> <el-table-column label="宸ヤ綅缂栧彿" align="center" prop="locationCode"> </el-table-column> -<!-- <el-table-column label="璁惧缂栧彿" align="center" prop="equipmentNo"> - </el-table-column>--> <el-table-column label="鍏ョ珯鏃堕棿" align="center" prop="inboundTime" width="100"> <template slot-scope="scope"> - <span>{{ parseTime(scope.row.inboundTime, '{y}-{m}-{d}') }}</span> + <span>{{ parseTime(scope.row.inboundTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> </template> </el-table-column> <el-table-column label="鍑虹珯鏃堕棿" align="center" prop="outboundTime" width="100"> <template slot-scope="scope"> - <span>{{ parseTime(scope.row.outboundTime, '{y}-{m}-{d}') }}</span> + <span>{{ parseTime(scope.row.outboundTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> </template> </el-table-column> -<!-- <el-table-column label="鍏ョ珯鏄惁鍚堟牸" align="center" prop="inRsSign"> - </el-table-column> - <el-table-column label="鍏ョ珯NG鍘熷洜" align="center" prop="inMsgSign"> - </el-table-column>--> + <el-table-column label="鏄惁鍚堟牸" align="center" prop="outRsSign"> </el-table-column> <el-table-column label="NG鍘熷洜" align="center" prop="outMsgSign"> </el-table-column> <el-table-column label="閲囬泦鏃堕棿" align="center" prop="collectionTime" width="180"> <template slot-scope="scope"> - <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d}') }}</span> + <span>{{ parseTime(scope.row.collectionTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> </template> </el-table-column> <el-table-column label="鑺傛媿鏃堕棿" align="center" prop="beatTime"> @@ -147,8 +142,8 @@ /> <!-- 娣诲姞鎴栦慨鏀逛骇鍝佽繃绔欓噰闆嗗璇濇 --> - <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="120px"> + <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body> + <el-form ref="form" inline :model="form" :rules="rules" label-width="120px"> <el-form-item label="宸ュ崟缂栧彿" prop="workOrderNo"> <el-input v-model="form.workOrderNo" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> </el-form-item> @@ -183,12 +178,6 @@ placeholder="璇烽�夋嫨鍑虹珯鏃堕棿"> </el-date-picker> </el-form-item> -<!-- <el-form-item label="鍏ョ珯鏄惁鍚堟牸" prop="inRsSign"> - <el-input v-model="form.inRsSign" placeholder="璇疯緭鍏ュ叆绔欐槸鍚﹀悎鏍�" /> - </el-form-item> - <el-form-item label="鍏ョ珯NG鍘熷洜" prop="inMsgSign"> - <el-input v-model="form.inMsgSign" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" /> - </el-form-item>--> <el-form-item label="鏄惁鍚堟牸" prop="outRsSign"> <el-input v-model="form.outRsSign" placeholder="璇疯緭鍏ュ嚭绔欐槸鍚﹀悎鏍�" /> </el-form-item> @@ -203,18 +192,6 @@ placeholder="璇烽�夋嫨閲囬泦鏃堕棿"> </el-date-picker> </el-form-item> -<!-- <el-form-item label="棰勭暀瀛楁1" prop="spareField1">--> -<!-- <el-input v-model="form.spareField1" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />--> -<!-- </el-form-item>--> -<!-- <el-form-item label="棰勭暀瀛楁2" prop="spareField2">--> -<!-- <el-input v-model="form.spareField2" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />--> -<!-- </el-form-item>--> -<!-- <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser">--> -<!-- <el-input v-model="form.createUser" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />--> -<!-- </el-form-item>--> -<!-- <el-form-item label="鏇存敼鐢ㄦ埛" prop="updateUser">--> -<!-- <el-input v-model="form.updateUser" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />--> -<!-- </el-form-item>--> <el-form-item label="鑺傛媿鏃堕棿" prop="beatTime"> <el-input v-model="form.beatTime" placeholder="璇疯緭鍏ヨ妭鎷嶆椂闂�" /> </el-form-item> diff --git a/jcdm-ui/src/views/main/da/tileMatchRules/index.vue b/jcdm-ui/src/views/main/da/tileMatchRules/index.vue new file mode 100644 index 0000000..e8ec77e --- /dev/null +++ b/jcdm-ui/src/views/main/da/tileMatchRules/index.vue @@ -0,0 +1,483 @@ +<template> + <div class="app-container"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="浜у搧绯诲垪" prop="productSeries"> + <el-input + v-model="queryParams.productSeries" + placeholder="璇疯緭鍏ヤ骇鍝佺郴鍒�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> +<!-- <el-form-item label="鎵爜瀵硅薄1" prop="scanObject1">--> +<!-- <el-input--> +<!-- v-model="queryParams.scanObject1"--> +<!-- placeholder="璇疯緭鍏ユ壂鐮佸璞�1"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="鎵爜瀵硅薄2" prop="scanObject2">--> +<!-- <el-input--> +<!-- v-model="queryParams.scanObject2"--> +<!-- placeholder="璇疯緭鍏ユ壂鐮佸璞�2"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="杞村悕绉�" prop="axisName">--> +<!-- <el-input--> +<!-- v-model="queryParams.axisName"--> +<!-- placeholder="璇疯緭鍏ヨ酱鍚嶇О"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="棰堝悕绉�" prop="neckName">--> +<!-- <el-input--> +<!-- v-model="queryParams.neckName"--> +<!-- placeholder="璇疯緭鍏ラ鍚嶇О"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> + <el-form-item label="鐡﹀悕绉�" prop="tileName"> + <el-input + v-model="queryParams.tileName" + placeholder="璇疯緭鍏ョ摝鍚嶇О" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> +<!-- <el-form-item label="杞村弬鏁版暟浣嶇疆" prop="axisParameterNoPosition">--> +<!-- <el-input--> +<!-- v-model="queryParams.axisParameterNoPosition"--> +<!-- placeholder="璇疯緭鍏ヨ酱鍙傛暟鏁颁綅缃�"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="棰堝弬鏁版暟浣嶇疆" prop="neckParameterPosition">--> +<!-- <el-input--> +<!-- v-model="queryParams.neckParameterPosition"--> +<!-- placeholder="璇疯緭鍏ラ鍙傛暟鏁颁綅缃�"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="杞村��" prop="axisValue">--> +<!-- <el-input--> +<!-- v-model="queryParams.axisValue"--> +<!-- placeholder="璇疯緭鍏ヨ酱鍊�"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="棰堝��" prop="neckValue">--> +<!-- <el-input--> +<!-- v-model="queryParams.neckValue"--> +<!-- placeholder="璇疯緭鍏ラ鍊�"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="鐡﹂鑹�" prop="tileColor">--> +<!-- <el-input--> +<!-- v-model="queryParams.tileColor"--> +<!-- placeholder="璇疯緭鍏ョ摝棰滆壊"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser">--> +<!-- <el-input--> +<!-- v-model="queryParams.createUser"--> +<!-- placeholder="璇疯緭鍏ュ垱寤虹敤鎴�"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="鏇存敼鐢ㄦ埛" prop="updateUser">--> +<!-- <el-input--> +<!-- v-model="queryParams.updateUser"--> +<!-- placeholder="璇疯緭鍏ユ洿鏀圭敤鎴�"--> +<!-- clearable--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-form-item>--> + <el-form-item label="鐘舵��" prop="state"> + <el-input + v-model="queryParams.state" + placeholder="璇疯緭鍏ョ姸鎬�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item style="float: right"> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + </el-card> + + <el-card style="margin-top: 10px" class="box-card"> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['da:tileMatchRules:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['da:tileMatchRules:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['da:tileMatchRules:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['da:tileMatchRules:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table border v-loading="loading" :data="tileMatchRulesList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> +<!-- <el-table-column label="涓婚敭id" align="center" prop="id" />--> + <el-table-column label="浜у搧绯诲垪" align="center" prop="productSeries"> + + </el-table-column> + <el-table-column label="鎵爜瀵硅薄1" align="center" prop="scanObject1" width="100"> + + </el-table-column> + <el-table-column label="鎵爜瀵硅薄2" align="center" prop="scanObject2" width="100"> + + </el-table-column> + <el-table-column label="杞村悕绉�" align="center" prop="axisName"> + + </el-table-column> + <el-table-column label="棰堝悕绉�" align="center" prop="neckName"> + + </el-table-column> + <el-table-column label="鐡﹀悕绉�" align="center" prop="tileName"> + + </el-table-column> + <el-table-column label="杞村弬鏁颁綅缃�" align="center" prop="axisParameterNoPosition" width="100"> + + </el-table-column> + <el-table-column label="棰堝弬鏁颁綅缃�" align="center" prop="neckParameterPosition" width="100"> + + </el-table-column> + <el-table-column label="杞村��" align="center" prop="axisValue"> + + </el-table-column> + <el-table-column label="棰堝��" align="center" prop="neckValue"> + + </el-table-column> + <el-table-column label="鐡﹂鑹�" align="center" prop="tileColor"> + + </el-table-column> +<!-- <el-table-column label="鍒涘缓鐢ㄦ埛" align="center" prop="createUser">--> + +<!-- </el-table-column>--> +<!-- <el-table-column label="鏇存敼鐢ㄦ埛" align="center" prop="updateUser">--> + +<!-- </el-table-column>--> + <el-table-column label="鐘舵��" align="center" prop="state"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.state"/> + </template> + </el-table-column> + <el-table-column fixed="right" width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="success" + plain + style="width: 72px" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['da:tileMatchRules:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="danger" + plain + style="width: 72px" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['da:tileMatchRules:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-card> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀归厤鐡﹁鍒欏璇濇 --> + <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="1000px" append-to-body> + <span slot="title"> + <i class="el-icon-s-order"></i> + {{titleName}} + </span> + <el-form ref="form" inline :model="form" :rules="rules" label-width="80px"> + <el-form-item label="浜у搧绯诲垪" prop="productSeries"> + <el-input v-model="form.productSeries" placeholder="璇疯緭鍏ヤ骇鍝佺郴鍒�" /> + </el-form-item> + <el-form-item label="鎵爜瀵硅薄1" prop="scanObject1"> + <el-input v-model="form.scanObject1" placeholder="璇疯緭鍏ユ壂鐮佸璞�1" /> + </el-form-item> + <el-form-item label="鎵爜瀵硅薄2" prop="scanObject2"> + <el-input v-model="form.scanObject2" placeholder="璇疯緭鍏ユ壂鐮佸璞�2" /> + </el-form-item> + <el-form-item label="杞村悕绉�" prop="axisName"> + <el-input v-model="form.axisName" placeholder="璇疯緭鍏ヨ酱鍚嶇О" /> + </el-form-item> + <el-form-item label="棰堝悕绉�" prop="neckName"> + <el-input v-model="form.neckName" placeholder="璇疯緭鍏ラ鍚嶇О" /> + </el-form-item> + <el-form-item label="鐡﹀悕绉�" prop="tileName"> + <el-input v-model="form.tileName" placeholder="璇疯緭鍏ョ摝鍚嶇О" /> + </el-form-item> + <el-form-item label="杞村弬鏁颁綅缃�" prop="axisParameterNoPosition"> + <el-input v-model="form.axisParameterNoPosition" placeholder="璇疯緭鍏ヨ酱鍙傛暟浣嶇疆" /> + </el-form-item> + <el-form-item label="棰堝弬鏁颁綅缃�" prop="neckParameterPosition"> + <el-input v-model="form.neckParameterPosition" placeholder="璇疯緭鍏ラ鍙傛暟浣嶇疆" /> + </el-form-item> + <el-form-item label="杞村��" prop="axisValue"> + <el-input v-model="form.axisValue" placeholder="璇疯緭鍏ヨ酱鍊�" /> + </el-form-item> + <el-form-item label="棰堝��" prop="neckValue"> + <el-input v-model="form.neckValue" placeholder="璇疯緭鍏ラ鍊�" /> + </el-form-item> + <el-form-item label="鐡﹂鑹�" prop="tileColor"> + <el-input v-model="form.tileColor" placeholder="璇疯緭鍏ョ摝棰滆壊" /> + </el-form-item> + <el-form-item label="鍒涘缓鐢ㄦ埛" prop="createUser"> + <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤虹敤鎴�" /> + </el-form-item> + <el-form-item label="鏇存敼鐢ㄦ埛" prop="updateUser"> + <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏀圭敤鎴�" /> + </el-form-item> + <el-form-item label="鐘舵��" prop="state"> + <el-select v-model="form.state" placeholder="璇烽�夋嫨鐘舵��" > + <el-option + v-for="dict in dict.type.sys_normal_disable" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules } from "@/api/main/bs/tileMatchRules/tileMatchRules"; + +export default { + name: "TileMatchRules", + dicts: ['subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable'], + data() { + return { + // 閬僵灞� + loading: true, + titleName: "", + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 閰嶇摝瑙勫垯琛ㄦ牸鏁版嵁 + tileMatchRulesList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + productSeries: null, + scanObject1: null, + scanObject2: null, + axisName: null, + neckName: null, + tileName: null, + axisParameterNoPosition: null, + neckParameterPosition: null, + axisValue: null, + neckValue: null, + tileColor: null, + createUser: null, + updateUser: null, + state: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + id: [ + { required: true, message: "涓婚敭id涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ閰嶇摝瑙勫垯鍒楄〃 */ + getList() { + this.loading = true; + listTileMatchRules(this.queryParams).then(response => { + this.tileMatchRulesList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + productSeries: null, + scanObject1: null, + scanObject2: null, + axisName: null, + neckName: null, + tileName: null, + axisParameterNoPosition: null, + neckParameterPosition: null, + axisValue: null, + neckValue: null, + tileColor: null, + createUser: null, + createTime: null, + updateUser: null, + updateTime: null, + state: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.titleName = "娣诲姞閰嶇摝瑙勫垯"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids + getTileMatchRules(id).then(response => { + this.form = response.data; + this.open = true; + this.titleName = "淇敼閰嶇摝瑙勫垯"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateTileMatchRules(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addTileMatchRules(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎閰嶇摝瑙勫垯缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delTileMatchRules(ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('da/tileMatchRules/export', { + ...this.queryParams + }, `tileMatchRules_${new Date().getTime()}.xlsx`) + } + } +}; +</script> diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue index 87e0d4c..2ea6b1f 100644 --- a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue +++ b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue @@ -90,24 +90,14 @@ <el-tab-pane name="first"> <span slot="label"> <a class="el-icon-date"></a>棣栭〉</span> <el-col :span="8"> - <el-table> - <el-table-column label="搴忓彿" align="center" prop="repairIdentification" width="50px"/> - <el-table-column label="鎿嶄綔鍐呭" align="center" prop="boxCode" width="300px"/> + <el-table :data="formulaChildList"> + <el-table-column label="鎺掑簭" width="60" align="center" prop="stepSort"> + </el-table-column> + <el-table-column label="鎿嶄綔鍐呭" :show-overflow-tooltip='true' align="center" prop="operationSteps"> + </el-table-column> </el-table> </el-col> <el-col :span="16"> -<!-- <el-input v-model="url" type="text" style="width: 20%" /> --> -<!-- <el-button @click="join" type="primary">杩炴帴</el-button>--> -<!-- <el-button @click="exit" type="danger">鏂紑</el-button>--> - -<!-- <br />--> -<!-- <el-input type="textarea" v-model="message" :rows="9" />--> -<!-- <el-button type="info" @click="send">鍙戦�佹秷鎭�</el-button>--> -<!-- <br />--> -<!-- <br />--> -<!-- <el-input type="textarea" v-model="text_content" :rows="9" /> 杩斿洖鍐呭--> -<!-- <br />--> -<!-- <br />--> <el-image style="height: 520px;width: 100%" :src="imgSrc"></el-image> </el-col> </el-tab-pane> @@ -143,11 +133,20 @@ <script> import {listWorkReport} from "@/api/main/om/workReport/workReport"; import {listStationConf,getIpv4} from "@/api/main/sc/stationConf"; +import {listFormulaChild} from "@/api/main/bs/formulaChild/formulaChild"; export default { name: "stationTerminal", data() { return { + // 鏌ヨ鍙傛暟 + formulaChildParams: { + pageNum: 1, + pageSize: 10, + productCode: null, + }, + // 閰嶆柟閰嶇疆瀛愪俊鎭〃鏍兼暟鎹� + formulaChildList: [], ipAddress: '', imgSrc: '', headContent: { @@ -188,16 +187,13 @@ message: "", text_content: "", ws: null, + inputValue: '9' } }, beforeDestroy() { this.exit(); }, created() { - this.getStationConfList(); - this.connectWebsocket(); - - this.initStation(); // this.getStationConfList(); // setTimeout(() => { @@ -208,6 +204,14 @@ }, methods: { + /** 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� */ + getListFormulaChild() { + this.formulaChildParams.productCode = this.workpieceInformation.productCode + listFormulaChild(this.formulaChildParams).then(response => { + console.log(this.formulaChildList) + this.formulaChildList = response.rows; + }); + }, changeMenu(tab, event) { console.log(tab, event); }, @@ -220,6 +224,7 @@ this.headContent.sfcCode = this.content this.queryParams.sfcCode = this.content this.getList() + this.getListFormulaChild() this.cakeLamp.scanFinish = 1 }, /** 鏌ヨ鎶ュ伐璁板綍 琛ㄥ垪琛� */ -- Gitblit v1.9.3