| ¶Ô±ÈÐÂÎļþ |
| | |
| | | CREATE TABLE `eip_cable_test_data` ( |
| | | `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主é®', |
| | | `cable_type` VARCHAR(50) DEFAULT NULL COMMENT '线ç¼ç±»åç¼ç ', |
| | | `cable_type_name` VARCHAR(100) DEFAULT NULL COMMENT '线ç¼ç±»ååç§°', |
| | | `sample_code` VARCHAR(100) DEFAULT NULL COMMENT 'æ ·åç¼å·', |
| | | `product_name` VARCHAR(200) DEFAULT NULL COMMENT '产ååç§°', |
| | | `spec_model` VARCHAR(200) DEFAULT NULL COMMENT 'è§æ ¼åå·', |
| | | `test_type` VARCHAR(100) DEFAULT NULL COMMENT 'è¯éªç±»å', |
| | | `test_result` VARCHAR(100) DEFAULT NULL COMMENT 'è¯éªç»æ', |
| | | `raw_material` VARCHAR(500) DEFAULT NULL COMMENT 'åææ', |
| | | `process_inspection` VARCHAR(500) DEFAULT NULL COMMENT 'è¿ç¨æ£', |
| | | `final_inspection` VARCHAR(500) DEFAULT NULL COMMENT 'æåæ£', |
| | | `test_date` DATE DEFAULT NULL COMMENT 'è¯éªæ¶é´', |
| | | `source_system` VARCHAR(100) DEFAULT NULL COMMENT 'æ¥æºç³»ç»', |
| | | `sync_batch_no` VARCHAR(100) DEFAULT NULL COMMENT 'åæ¥æ¹æ¬¡å·', |
| | | `sync_status` TINYINT DEFAULT '1' COMMENT 'åæ¥ç¶æï¼0失败ï¼1æå', |
| | | `remark` VARCHAR(500) DEFAULT NULL COMMENT '夿³¨', |
| | | `create_by` VARCHAR(100) DEFAULT NULL COMMENT 'å建人', |
| | | `update_by` VARCHAR(100) DEFAULT NULL COMMENT 'ä¿®æ¹äºº', |
| | | `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´', |
| | | `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´', |
| | | PRIMARY KEY (`id`), |
| | | KEY `idx_cable_type` (`cable_type`), |
| | | KEY `idx_sample_code` (`sample_code`), |
| | | KEY `idx_test_date` (`test_date`) |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='EIP线ç¼è¯éªæ°æ®è¡¨'; |
| | | |
| | | INSERT INTO `sys_menu` |
| | | (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `route_name`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`) |
| | | VALUES |
| | | ('EIP线ç¼å¯¹æ¥', 0, 14, 'quality-eip-cable', 'quality/eipCable/index', NULL, 'QualityEipCable', '1', '0', 'C', '0', '0', 'quality:eipCable:list', 'guide', 'admin', NOW(), 'è´¨é管ç-线ç¼ç±»EIP对æ¥'); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.constant; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * EIP 线ç¼ç±»å常é |
| | | */ |
| | | public final class EipCableTypeConstants { |
| | | |
| | | private EipCableTypeConstants() { |
| | | } |
| | | |
| | | public static final String HIGH_VOLTAGE = "highVoltage"; |
| | | public static final String MEDIUM_VOLTAGE = "mediumVoltage"; |
| | | public static final String LOW_VOLTAGE = "lowVoltage"; |
| | | public static final String MAIN_NETWORK = "mainNetwork"; |
| | | public static final String DISTRIBUTION = "distribution"; |
| | | public static final String OPTICAL_FIBER = "opticalFiber"; |
| | | public static final String OPGW = "opgw"; |
| | | public static final String ADSS = "adss"; |
| | | |
| | | public static List<String> allTypes() { |
| | | return Arrays.asList( |
| | | HIGH_VOLTAGE, |
| | | MEDIUM_VOLTAGE, |
| | | LOW_VOLTAGE, |
| | | MAIN_NETWORK, |
| | | DISTRIBUTION, |
| | | OPTICAL_FIBER, |
| | | OPGW, |
| | | ADSS |
| | | ); |
| | | } |
| | | |
| | | public static String getTypeName(String type) { |
| | | switch (type) { |
| | | case HIGH_VOLTAGE: |
| | | return "é«åçµåçµç¼"; |
| | | case MEDIUM_VOLTAGE: |
| | | return "ä¸åçµåçµç¼"; |
| | | case LOW_VOLTAGE: |
| | | return "ä½å线ç¼"; |
| | | case MAIN_NETWORK: |
| | | return "主ç½å¯¼å°çº¿"; |
| | | case DISTRIBUTION: |
| | | return "é
ç½å¯¼å°çº¿"; |
| | | case OPTICAL_FIBER: |
| | | return "å
ç¼"; |
| | | case OPGW: |
| | | return "OPGWå
ç¼"; |
| | | case ADSS: |
| | | return "ADSSå
ç¼"; |
| | | default: |
| | | return type; |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ruoyi.basic.constant.EipCableTypeConstants; |
| | | import com.ruoyi.basic.dto.EipCableQueryDto; |
| | | import com.ruoyi.basic.dto.EipSyncDto; |
| | | import com.ruoyi.basic.pojo.EipCableTestData; |
| | | import com.ruoyi.basic.service.EipCableService; |
| | | import com.ruoyi.common.core.domain.Result; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * EIP 线ç¼å¯¹æ¥æ§å¶å¨ |
| | | */ |
| | | @Api(tags = "EIP线ç¼å¯¹æ¥") |
| | | @RestController |
| | | @RequestMapping("/eip") |
| | | public class EipCableController { |
| | | |
| | | @Resource |
| | | private EipCableService eipCableService; |
| | | |
| | | @ApiOperation("å页æ¥è¯¢é«åçµåçµç¼è¯éªæ°æ®") |
| | | @GetMapping("/highVoltageCable/page") |
| | | public Result<IPage<EipCableTestData>> pageHighVoltageCable(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.HIGH_VOLTAGE, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢ä¸åçµåçµç¼è¯éªæ°æ®") |
| | | @GetMapping("/mediumVoltageCable/page") |
| | | public Result<IPage<EipCableTestData>> pageMediumVoltageCable(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.MEDIUM_VOLTAGE, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢ä½å线ç¼è¯éªæ°æ®") |
| | | @GetMapping("/lowVoltageCable/page") |
| | | public Result<IPage<EipCableTestData>> pageLowVoltageCable(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.LOW_VOLTAGE, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢ä¸»ç½å¯¼å°çº¿è¯éªæ°æ®") |
| | | @GetMapping("/mainNetworkGroundWire/page") |
| | | public Result<IPage<EipCableTestData>> pageMainNetworkGroundWire(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.MAIN_NETWORK, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢é
ç½å¯¼å°çº¿è¯éªæ°æ®") |
| | | @GetMapping("/distributionGroundWire/page") |
| | | public Result<IPage<EipCableTestData>> pageDistributionGroundWire(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.DISTRIBUTION, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢å
ç¼è¯éªæ°æ®") |
| | | @GetMapping("/opticalFiber/page") |
| | | public Result<IPage<EipCableTestData>> pageOpticalFiber(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.OPTICAL_FIBER, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢ OPGW å
ç¼è¯éªæ°æ®") |
| | | @GetMapping("/opgwOpticalFiber/page") |
| | | public Result<IPage<EipCableTestData>> pageOPGWOpticalFiber(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.OPGW, query)); |
| | | } |
| | | |
| | | @ApiOperation("å页æ¥è¯¢ ADSS å
ç¼è¯éªæ°æ®") |
| | | @GetMapping("/adssOpticalFiber/page") |
| | | public Result<IPage<EipCableTestData>> pageADSSOpticalFiber(Long page, Long size, EipCableQueryDto query) { |
| | | return Result.success(pageCableData(page, size, EipCableTypeConstants.ADSS, query)); |
| | | } |
| | | |
| | | @ApiOperation("忥 EIP 线ç¼è¯éªæ°æ®") |
| | | @PostMapping("/sync") |
| | | public Result<Integer> sync(@RequestBody EipSyncDto dto) { |
| | | return Result.success(eipCableService.syncCableData(dto.getCableType())); |
| | | } |
| | | |
| | | private IPage<EipCableTestData> pageCableData(Long page, Long size, String cableType, EipCableQueryDto query) { |
| | | long current = page == null || page < 1 ? 1L : page; |
| | | long pageSize = size == null || size < 1 ? 20L : size; |
| | | return eipCableService.pageByCableType(current, pageSize, cableType, query == null ? new EipCableQueryDto() : query); |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.dto; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDate; |
| | | |
| | | /** |
| | | * EIP 线ç¼è¯éªæ°æ®æ¥è¯¢åæ° |
| | | */ |
| | | @Data |
| | | public class EipCableQueryDto { |
| | | |
| | | @ApiModelProperty("æ ·åç¼å·") |
| | | private String sampleCode; |
| | | |
| | | @ApiModelProperty("è¯éªç±»å") |
| | | private String testType; |
| | | |
| | | @ApiModelProperty("è¯éªæ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private LocalDate testDate; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.dto; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * EIP æ°æ®åæ¥åæ° |
| | | */ |
| | | @Data |
| | | public class EipSyncDto { |
| | | |
| | | @ApiModelProperty("线ç¼ç±»å") |
| | | private String cableType; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.basic.pojo.EipCableTestData; |
| | | |
| | | /** |
| | | * EIP 线ç¼è¯éªæ°æ® Mapper |
| | | */ |
| | | public interface EipCableTestDataMapper extends BaseMapper<EipCableTestData> { |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.pojo; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * EIP 线ç¼è¯éªæ°æ® |
| | | */ |
| | | @Data |
| | | @TableName("eip_cable_test_data") |
| | | public class EipCableTestData implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | private Long id; |
| | | |
| | | @ApiModelProperty("线ç¼ç±»åç¼ç ") |
| | | private String cableType; |
| | | |
| | | @ApiModelProperty("线ç¼ç±»ååç§°") |
| | | private String cableTypeName; |
| | | |
| | | @ApiModelProperty("æ ·åç¼å·") |
| | | private String sampleCode; |
| | | |
| | | @ApiModelProperty("产ååç§°") |
| | | private String productName; |
| | | |
| | | @ApiModelProperty("è§æ ¼åå·") |
| | | private String specModel; |
| | | |
| | | @ApiModelProperty("è¯éªç±»å") |
| | | private String testType; |
| | | |
| | | @ApiModelProperty("è¯éªç»æ") |
| | | private String testResult; |
| | | |
| | | @ApiModelProperty("åææ") |
| | | private String rawMaterial; |
| | | |
| | | @ApiModelProperty("è¿ç¨æ£") |
| | | private String processInspection; |
| | | |
| | | @ApiModelProperty("æåæ£") |
| | | private String finalInspection; |
| | | |
| | | @ApiModelProperty("è¯éªæ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private LocalDate testDate; |
| | | |
| | | @ApiModelProperty("æ¥æºç³»ç»") |
| | | private String sourceSystem; |
| | | |
| | | @ApiModelProperty("åæ¥æ¹æ¬¡å·") |
| | | private String syncBatchNo; |
| | | |
| | | @ApiModelProperty("åæ¥ç¶æ") |
| | | private Integer syncStatus; |
| | | |
| | | @ApiModelProperty("夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty("å建人") |
| | | private String createBy; |
| | | |
| | | @ApiModelProperty("ä¿®æ¹äºº") |
| | | private String updateBy; |
| | | |
| | | @ApiModelProperty("å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private LocalDateTime createTime; |
| | | |
| | | @ApiModelProperty("æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private LocalDateTime updateTime; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ruoyi.basic.dto.EipCableQueryDto; |
| | | import com.ruoyi.basic.pojo.EipCableTestData; |
| | | |
| | | /** |
| | | * EIP 线ç¼å¯¹æ¥ Service |
| | | */ |
| | | public interface EipCableService { |
| | | |
| | | IPage<EipCableTestData> pageByCableType(long pageNum, long pageSize, String cableType, EipCableQueryDto query); |
| | | |
| | | int syncCableData(String cableType); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.basic.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.basic.constant.EipCableTypeConstants; |
| | | import com.ruoyi.basic.dto.EipCableQueryDto; |
| | | import com.ruoyi.basic.mapper.EipCableTestDataMapper; |
| | | import com.ruoyi.basic.pojo.EipCableTestData; |
| | | import com.ruoyi.basic.service.EipCableService; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * EIP 线ç¼å¯¹æ¥ Service å®ç° |
| | | */ |
| | | @Service |
| | | public class EipCableServiceImpl implements EipCableService { |
| | | |
| | | @Resource |
| | | private EipCableTestDataMapper eipCableTestDataMapper; |
| | | |
| | | @Override |
| | | public IPage<EipCableTestData> pageByCableType(long pageNum, long pageSize, String cableType, EipCableQueryDto query) { |
| | | validateCableType(cableType); |
| | | Page<EipCableTestData> page = new Page<>(pageNum, pageSize); |
| | | LambdaQueryWrapper<EipCableTestData> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(EipCableTestData::getCableType, cableType) |
| | | .like(query.getSampleCode() != null && !query.getSampleCode().trim().isEmpty(), |
| | | EipCableTestData::getSampleCode, query.getSampleCode()) |
| | | .like(query.getTestType() != null && !query.getTestType().trim().isEmpty(), |
| | | EipCableTestData::getTestType, query.getTestType()) |
| | | .eq(query.getTestDate() != null, EipCableTestData::getTestDate, query.getTestDate()) |
| | | .orderByDesc(EipCableTestData::getTestDate) |
| | | .orderByDesc(EipCableTestData::getId); |
| | | return eipCableTestDataMapper.selectPage(page, wrapper); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int syncCableData(String cableType) { |
| | | validateCableType(cableType); |
| | | String username = resolveUsername(); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | String batchNo = "EIP" + now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); |
| | | List<EipCableTestData> dataList = buildDemoData(cableType, batchNo, username, now); |
| | | int count = 0; |
| | | for (EipCableTestData data : dataList) { |
| | | count += eipCableTestDataMapper.insert(data); |
| | | } |
| | | return count; |
| | | } |
| | | |
| | | private List<EipCableTestData> buildDemoData(String cableType, String batchNo, String username, LocalDateTime now) { |
| | | String cableTypeName = EipCableTypeConstants.getTypeName(cableType); |
| | | List<EipCableTestData> list = new ArrayList<>(); |
| | | list.add(buildData(cableType, cableTypeName, batchNo, username, now, 1, |
| | | "忿坼ä½çµé»è¯éª", "åæ ¼", "é导ä½åæææ¹æ¬¡A", "导ä½ç»åè¿ç¨æ½æ£", "æååºåä¾è¡æ£éª")); |
| | | list.add(buildData(cableType, cableTypeName, batchNo, username, now, 2, |
| | | "åææç»ç¼ååº¦æ£æµ", "åæ ¼", "ç»ç¼ææ¹æ¬¡B", "ç»ç¼æ¤åºè¿ç¨æ½æ£", "æåè忣éª")); |
| | | list.add(buildData(cableType, cableTypeName, batchNo, username, now, 3, |
| | | "è¿ç¨èåè¯éª", "åæ ¼", "æ¤å¥ææ¹æ¬¡C", "æç¼è¿ç¨å·¡æ£", "æåç»æå°ºå¯¸æ£éª")); |
| | | list.add(buildData(cableType, cableTypeName, batchNo, username, now, 4, |
| | | "èåæ§è½è¯éª", "åæ ¼", "å±è½æææ¹æ¬¡D", "ç«è±è¯éªè¿ç¨æ£", "æåèåæ§è½æ£éª")); |
| | | list.add(buildData(cableType, cableTypeName, batchNo, username, now, 5, |
| | | "æåä¾è¡è¯éª", "åæ ¼", "è¾
ææ¹æ¬¡E", "å
è£
åç»æ£", "æåä¾è¡æ¾è¡æ£éª")); |
| | | return list; |
| | | } |
| | | |
| | | private EipCableTestData buildData(String cableType, String cableTypeName, String batchNo, String username, |
| | | LocalDateTime now, int index, String testType, String testResult, |
| | | String rawMaterial, String processInspection, String finalInspection) { |
| | | EipCableTestData data = new EipCableTestData(); |
| | | data.setCableType(cableType); |
| | | data.setCableTypeName(cableTypeName); |
| | | data.setSampleCode(cableType.toUpperCase() + "-" + now.format(DateTimeFormatter.ofPattern("yyyyMMdd")) + "-" + index); |
| | | data.setProductName(cableTypeName + "æ ·å" + index); |
| | | data.setSpecModel("ZC-" + (10 + index) + "kV-" + index + "*120"); |
| | | data.setTestType(testType); |
| | | data.setTestResult(testResult); |
| | | data.setRawMaterial(rawMaterial); |
| | | data.setProcessInspection(processInspection); |
| | | data.setFinalInspection(finalInspection); |
| | | data.setTestDate(LocalDate.now().minusDays(index - 1L)); |
| | | data.setSourceSystem("å½ç½çº¿ç¼ç±»ç©èè¯éªå¹³å°(模æ)"); |
| | | data.setSyncBatchNo(batchNo); |
| | | data.setSyncStatus(1); |
| | | data.setRemark("模æåæ¥æ°æ®ï¼ç¨äºå端èè°"); |
| | | data.setCreateBy(username); |
| | | data.setUpdateBy(username); |
| | | data.setCreateTime(now); |
| | | data.setUpdateTime(now); |
| | | return data; |
| | | } |
| | | |
| | | private void validateCableType(String cableType) { |
| | | if (!EipCableTypeConstants.allTypes().contains(cableType)) { |
| | | throw new RuntimeException("䏿¯æç线ç¼ç±»å: " + cableType); |
| | | } |
| | | } |
| | | |
| | | private String resolveUsername() { |
| | | try { |
| | | String username = SecurityUtils.getUsername(); |
| | | return username == null || username.trim().isEmpty() ? "system" : username; |
| | | } catch (Exception e) { |
| | | return "system"; |
| | | } |
| | | } |
| | | } |