blade-service/blade-mdm/pom.xml
@@ -31,7 +31,11 @@ <dependency> <groupId>org.springblade</groupId> <artifactId>blade-starter-mybatis</artifactId> </dependency> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-starter-excel</artifactId> </dependency> <dependency> blade-service/blade-mdm/src/main/java/org/springblade/mdm/MdmApplication.java
@@ -1,28 +1,4 @@ /** * BladeX Commercial License Agreement * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. * <p> * Use of this software is governed by the Commercial License Agreement * obtained after purchasing a license from BladeX. * <p> * 1. This software is for development use only under a valid license * from BladeX. * <p> * 2. Redistribution of this software's source code to any third party * without a commercial license is strictly prohibited. * <p> * 3. Licensees may copyright their own code but cannot use segments * from this software for such purposes. Copyright of this software * remains with BladeX. * <p> * Using this software signifies agreement to this License, and the software * must not be used for illegal purposes. * <p> * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is * not liable for any claims arising from secondary or illegal development. * <p> * Author: Chill Zhuang (bladejava@qq.com) */ package org.springblade.mdm; import org.springblade.core.cloud.client.BladeCloudApplication; @@ -30,8 +6,8 @@ //import org.springblade.core.launch.constant.AppConstant; /** * ç³»ç»æ¨¡åå¯å¨å¨ * @author Chill * mdm模åå¯å¨å¨ * @author yangys */ @BladeCloudApplication public class MdmApplication { blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
@@ -5,6 +5,7 @@ import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.machine.entity.Machine; import org.springblade.mdm.basesetting.machine.entity.MachineSpec; import org.springblade.mdm.basesetting.machine.mapper.MachineMapper; @@ -13,6 +14,14 @@ import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.FileSystemUtils; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.Paths; @Service public class MachineService extends BizServiceImpl<MachineMapper, Machine> { @@ -67,4 +76,60 @@ } return page; } /** * æ¥è¯¢è¯¦æ * @param id æºåºid * @return */ public MachineVO detail(long id) { Machine machine = this.getById(id); MachineVO vo = new MachineVO(); BeanUtil.copyProperties(machine, vo); return vo; } /** * äº§çæºåºåä¼ ç»ææ°æ® * @param id */ public void genMachineFileBackDirs(Long id) throws IOException { Machine machine = this.getById(id); if(Func.isNotBlank(machine.getProgReceiveDir())){ if(isLegalDirectoryPath(machine.getProgReceiveDir())) { Path path = Paths.get(machine.getProgReceiveDir()); Files.createDirectories(path); }else{ throw new RuntimeException("éæ³çç®å½æ ¼å¼"); } } } /** * 夿æ¯å¦æ¯åæ³çç®å½æ ¼å¼ * @param path * @return */ static boolean isLegalDirectoryPath(String path) { // åºç¡æ£æ¥ if (path == null || path.trim().isEmpty()) { return false; } // 使ç¨NIOæ£æ¥è·¯å¾æ ¼å¼ Path nioPath; try { nioPath = Paths.get(path); if (!nioPath.normalize().toString().equals(path)) { return false; // è·¯å¾ä¸è§è } } catch (InvalidPathException ex) { return false; } return true; } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java
@@ -1,21 +1,37 @@ package org.springblade.mdm.basesetting.machine.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.machine.MachineService; import org.springblade.mdm.basesetting.machine.vo.MachineExcelVO; import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO; import org.springblade.mdm.basesetting.machine.vo.MachineSaveVO; import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.system.pojo.entity.User; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.Map; @Slf4j @RestController @@ -40,11 +56,17 @@ /** * ä¿®æ¹ */ @Operation(summary = "ä¿®æ¹", description = "æºåºç»ä¿¡æ¯") @Operation(summary = "ä¿®æ¹", description = "æºåºä¿¡æ¯") @PostMapping("/update") public R<Boolean> update(@RequestBody MachineSaveVO vo) { return R.<Boolean>status(service.updateMachine(vo)); } @Operation(summary = "详æ ", description = "æ¥è¯¢æºåºè¯¦æ ") @GetMapping("/detail") public R<MachineVO> deatail(long id) { return R.data(service.detail(id)); } /** @@ -68,9 +90,37 @@ @Operation(summary = "å页æ¥è¯¢", description = "åç§°æç¼ç ") @GetMapping("/page") public R<IPage<MachineVO>> page(MachineQueryVO query) { IPage<MachineVO> pages = service.pageQuery(query); return R.data(pages); } @GetMapping("export") @ApiOperationSupport(order = 13) @Operation(summary = "å¯¼åºæºåº", description = "åç§°æç¼ç ") public void exportUser(MachineQueryVO query, HttpServletResponse response) { query.setCurrent(1); query.setSize(Integer.MAX_VALUE); IPage<MachineVO> pages = service.pageQuery(query); List<MachineExcelVO> list = new ArrayList<>(); pages.getRecords().forEach(m ->{ MachineExcelVO excelVO = new MachineExcelVO(); BeanUtils.copyProperties(m, excelVO); list.add(excelVO); }); ExcelUtil.export(response, "æºåºæ°æ®" + DateUtil.time(), "ç¨æ·æ°æ®è¡¨", list, MachineExcelVO.class); } @Operation(summary = "äº§çæºåºåä¼ ç»ææ ", description = "äº§çæºåºåä¼ ç»ææ ") @PostMapping("/gen-fileback-dirs") public R<Void> genFileBackDirs(@RequestParam Long id) { try { service.genMachineFileBackDirs(id); } catch (Exception e) { log.error("产çç®å½å¼å¸¸",e); return R.fail(e.getMessage()); } return R.status(true); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
@@ -14,7 +14,7 @@ <result column="is_deleted" property="isDeleted"/> </resultMap> <select id="pageQuery" resultType="org.springblade.mdm.basesetting.machine.vo.MachineVO"> select m.id,m.name,m.code,g.dict_value group_name,m.machine_spec,m.manufacturer,m.operator select m.id,m.name,m.code,g.dict_key machine_group_code,g.dict_value machine_group_name,m.machine_spec,m.manufacturer,m.operator from mdm_machine m join blade_dict_biz g on m.machine_group_code=g.dict_key and g.code='machine_group' and g.is_deleted=0 ${ew.customSqlSegment} </select> blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineExcelVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ package org.springblade.mdm.basesetting.machine.vo; import lombok.Data; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class MachineExcelVO { @ColumnWidth(20) @ExcelProperty("æºåºç¼å·") private String code; @ExcelProperty("æºåºåå·") private String name; @ExcelProperty("æºåºç»ç¼å·") private String machineGroupCode; /** * æºå¨è§æ ¼:01车åº/02é£åº,å¨ä¸å¡åå ¸é ç½®ï¼key=machine_specï¼ */ @ExcelProperty("æºåºè§æ ¼") private String machineSpec; @ExcelProperty("æä½å") private String operator; @ExcelProperty("æå±åä½ID") private Long ownerDept; @ExcelProperty("ç产å") private String manufacturer; @ExcelProperty("轮询æ¶é´") private Integer pollingHours; @ExcelProperty("æ§å¶ç³»ç»") private String controlSystem; @ExcelProperty("ç¨åºä¸åç®å½") private String progSendDir; @ExcelProperty("ç¨åºåä¼ ç®å½") private String progReceiveDir; @ExcelProperty("夿³¨") private String remark; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
@@ -8,36 +8,30 @@ @Setter @Getter public class MachineSaveVO extends BaseVO { @Schema(description = "æºåºç¼ç ") private String code; @Schema(description = "æºåºåå·") private String name; /** * æå±æºåºç»code,åå ¸machine_group */ @Schema(description = "æå±æºåºç»code,åå ¸machine_group") private String machineGroupCode; /** * æºå¨è§æ ¼:01车åº/02é£åº,å¨ä¸å¡åå ¸é ç½®ï¼key=machine_specï¼ */ @Schema(description = "æºå¨è§æ ¼,å¨ä¸å¡åå ¸é ç½®ï¼key=machine_specï¼") private String machineSpec; /** * æä½åï¼ææ¬å½å ¥ */ @Schema(description = "æä½å(ææ¬å½å ¥)") private String operator; /** * æå±åä½/ç»ç» */ @Schema(description = "æå±åä½") private Long ownerDept; /** * 'ç产å' */ @Schema(description = "ç产å") private String manufacturer; /** * æ£æ¥ç¨åºåä¼ ç轮询æ¶é´ï¼å°æ¶ï¼ */ @Schema(description = "轮询æ¶é´") private Integer pollingHours; /** * æ§å¶ç³»ç»ï¼å¦åé£ç§ï¼ï¼å¨ä¸å¡åå ¸é ç½®(key=machine_controll_system)ï¼ä½¿ç¨è±æåæ¯ */ @Schema(description = "æ§å¶ç³»ç»") private String controlSystem; /** * ç¨åºä¸åç®å½ blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
@@ -1,5 +1,6 @@ package org.springblade.mdm.basesetting.machine.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import org.springblade.mdm.commons.vo.BaseVO; @@ -11,42 +12,43 @@ private String code; private String name; /** * æå±æºåºç»ID * æå±æºåºç»code */ private Long machineGroupId; /** * æºå¨è§æ ¼:01车åº/02é£åº,å¨ä¸å¡åå ¸é ç½®ï¼key=machine_specï¼ */ private String machineSpec; @Schema(description = "æºåºç»ä»£ç ") private String machineGroupCode; @Schema(description = "æºåºç»åç§°") private String machineGroupName; @Schema(description = "è§æ ¼") private String machineSpec; @Schema(description = "è§æ ¼åç§°") private String machineSpecName; /** * æä½åï¼ææ¬å½å ¥ */ @Schema(description = "æä½åï¼ææ¬å½å ¥") private String operator; /** * æå±åä½/ç»ç» */ @Schema(description = "æå±åä½/ç»ç»") private Long ownerDept; /** * 'ç产å' */ @Schema(description = "ç产å") private String manufacturer; /** * æ£æ¥ç¨åºåä¼ ç轮询æ¶é´ï¼å°æ¶ï¼ */ @Schema(description = "轮询æ¶é´") private Integer pollingHours; /** * æ§å¶ç³»ç»ï¼å¦åé£ç§ï¼ï¼å¨ä¸å¡åå ¸é ç½®(key=machine_controll_system)ï¼ä½¿ç¨è±æåæ¯ */ @Schema(description = "æ§å¶ç³»ç»ï¼å¨ä¸å¡åå ¸é ç½®(key=machine_control_system)") private String controlSystem; /** * ç¨åºä¸åç®å½ */ @Schema(description = "ç¨åºä¸åç®å½") private String progSendDir; /** * ç¨åºåä¼ ç®å½', */ @Schema(description = "ç¨åºåä¼ ç®å½") private String progReceiveDir; @Schema(description = "夿³¨") private String remark; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/vo/BaseVO.java
@@ -11,5 +11,8 @@ private Long id; private Integer status; private Long createUser; private Date createTime; private Long updateUser; private Date updateTime; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,63 @@ package org.springblade.mdm.machineback.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.machine.MachineService; import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO; import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.mdm.machineback.service.MachineBackFileService; import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO; import org.springblade.mdm.machineback.vo.MachineBackFileVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @Slf4j @RestController @RequestMapping("/machineback/file") @Tag(name = "æºåºåä¼ æä»¶", description = "æºåºåä¼ æä»¶") public class MachineBackFileController { @Autowired private MachineBackFileService service; /** * æ¥æ¶ */ @Operation(summary = "æ¥æ¶", description = "æ¥æ¶æä»¶") @PostMapping("/accept") public R<Void> accept(String ids) { service.accept(ids); return R.success(); } /** *æç»ï¼å°±æ¯å é¤ */ @Operation(summary = "æç»", description = "æç»") @PostMapping("/reject") public R<Void> reject(@RequestParam String ids) { try { service.removeBatchByIds(Func.toLongList(ids)); } catch (Exception e) { log.error("å é¤å¼å¸¸",e); return R.fail(e.getMessage()); } return R.status(true); } /** * å页 */ @Operation(summary = "å页æ¥è¯¢", description = "åç§°æç¼ç ") @GetMapping("/page") public R<IPage<MachineBackFileVO>> page(MachineBackFileQueryVO query) { IPage<MachineBackFileVO> pages = service.pageQuery(query); return R.data(pages); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/entity/MachineBackFile.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package org.springblade.mdm.machineback.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Getter; import lombok.Setter; import org.springblade.core.mp.base.BizEntity; /** * æºåºåä¼ æä»¶ */ @Setter @Getter @TableName("mdm_machine_back_file") public class MachineBackFile extends BizEntity { public static int STATUS_ACCEPTED = 2; public static int STATUS_REJECTED = 2; private String filename; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package org.springblade.mdm.machineback.mapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; import org.springblade.core.mp.mapper.BladeMapper; import org.springblade.mdm.machineback.entity.MachineBackFile; import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO; import org.springblade.mdm.machineback.vo.MachineBackFileVO; public interface MachineBackFileMapper extends BladeMapper<MachineBackFile> { IPage<MachineBackFileVO> pageQuery(IPage<MachineBackFile> page, @Param("queryVO")MachineBackFileQueryVO queryVO); //pageMachine } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ <?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="org.springblade.mdm.machineback.mapper.MachineBackFileMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="org.springblade.mdm.machineback.entity.MachineBackFile"> <id column="id" property="id"/> <result column="filename" property="filename"/> <result column="status" property="status"/> <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> <result column="is_deleted" property="isDeleted"/> </resultMap> <select id="pageQuery" resultType="org.springblade.mdm.machineback.vo.MachineBackFileVO"> select f.id,f.filename,f.create_time,m.code machineCode,m.name machineName from mdm_machine_back_file f join mdm_machine m on f.machine_code=m.code ${ew.customSqlSegment} </select> <!-- <select id="parentTree" resultMap="treeNodeResultMap">--> <!-- select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict where is_deleted = 0 and parent_id = 0--> <!-- </select>--> </mapper> blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/MachineBackFileService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package org.springblade.mdm.machineback.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO; import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.mdm.machineback.entity.MachineBackFile; import org.springblade.mdm.machineback.mapper.MachineBackFileMapper; import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO; import org.springblade.mdm.machineback.vo.MachineBackFileVO; import org.springframework.stereotype.Service; import java.util.List; @Service public class MachineBackFileService extends BizServiceImpl<MachineBackFileMapper, MachineBackFile> { /* @Transactional public void save(MachineSaveVO vo){ //TODO Machine machine = new Machine(); BeanUtil.copyProperties(vo, machine); this.save(machine); } */ public void accept(String ids) { List<Long> idList = Func.toLongList(ids); for(Long id : idList){ MachineBackFile backFile = this.getById(id); backFile.setStatus(MachineBackFile.STATUS_ACCEPTED); this.updateById(backFile); } } public void reject(String ids) { List<Long> idList = Func.toLongList(ids); for(Long id : idList){ MachineBackFile backFile = this.getById(id); backFile.setStatus(MachineBackFile.STATUS_REJECTED); this.updateById(backFile); } } /** * æ¥è¯¢å页 * @param query æ¥è¯¢åæ° * @return åé¡µæ°æ® */ public IPage<MachineBackFileVO> pageQuery(MachineBackFileQueryVO query) { //LambdaQueryWrapper<Machine> queryWrapper = new LambdaQueryWrapper<>(); IPage<MachineBackFileVO> page = this.getBaseMapper().pageQuery(Condition.getPage(query),query); //MachineSpec.valueOf() /* for (MachineVO record : page.getRecords()) { if(record.getMachineSpec() != null){ MachineSpec spec = MachineSpec.valueOf(record.getMachineSpec()); record.setMachineSpecName(spec.getText()); } }*/ return page; } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileQueryVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package org.springblade.mdm.machineback.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import org.springblade.core.mp.support.Query; /** * å页æçº¿å¢ */ @Schema(description = "æºåºæ¥è¯¢å¯¹è±¡") @Setter @Getter public class MachineBackFileQueryVO extends Query { @Schema(description = "å ³é®å") private String keyword; @Schema(description = "è§æ ¼") private String machineSpec; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package org.springblade.mdm.machineback.vo; import lombok.Getter; import lombok.Setter; import org.springblade.mdm.commons.vo.BaseVO; @Setter @Getter public class MachineBackFileVO extends BaseVO { private String filename; }