Pre Merge pull request !342 from Chengjx/origin
This commit is contained in:
commit
60b287f044
6
pom.xml
6
pom.xml
@ -205,6 +205,11 @@
|
|||||||
<version>${ruoyi.version}</version>
|
<version>${ruoyi.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-mongodb</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
@ -215,6 +220,7 @@
|
|||||||
<module>ruoyi-quartz</module>
|
<module>ruoyi-quartz</module>
|
||||||
<module>ruoyi-generator</module>
|
<module>ruoyi-generator</module>
|
||||||
<module>ruoyi-common</module>
|
<module>ruoyi-common</module>
|
||||||
|
<module>productManager</module>
|
||||||
</modules>
|
</modules>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
44
productManager/pom.xml
Normal file
44
productManager/pom.xml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>ruoyi</artifactId>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>productManager</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-web</artifactId>
|
||||||
|
<version>5.3.10</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger</groupId>
|
||||||
|
<artifactId>swagger-annotations</artifactId>
|
||||||
|
<version>1.6.2</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-test</artifactId>
|
||||||
|
<version>RELEASE</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
|
<artifactId>httpcore</artifactId>
|
||||||
|
<version>4.4.8</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,112 @@
|
|||||||
|
package com.ruoyi.productionManager.domain;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 试验标准管理对象 standard_info
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-13
|
||||||
|
*/
|
||||||
|
public class StandardInfo extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 标准id */
|
||||||
|
private Long standardId;
|
||||||
|
|
||||||
|
/** 区域分类 */
|
||||||
|
@Excel(name = "区域分类")
|
||||||
|
private String areaCategory;
|
||||||
|
|
||||||
|
/** 标准名称 */
|
||||||
|
@Excel(name = "标准名称")
|
||||||
|
private String standardName;
|
||||||
|
|
||||||
|
/** 标准类型 */
|
||||||
|
@Excel(name = "标准类型")
|
||||||
|
private String standardCategory;
|
||||||
|
|
||||||
|
/** 实施日期 */
|
||||||
|
@Excel(name = "实施日期")
|
||||||
|
private String standardBeginDate;
|
||||||
|
|
||||||
|
/** 标准状态 */
|
||||||
|
@Excel(name = "标准状态")
|
||||||
|
private String standardStatus;
|
||||||
|
|
||||||
|
public void setStandardId(Long standardId)
|
||||||
|
{
|
||||||
|
this.standardId = standardId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getStandardId()
|
||||||
|
{
|
||||||
|
return standardId;
|
||||||
|
}
|
||||||
|
public void setAreaCategory(String areaCategory)
|
||||||
|
{
|
||||||
|
this.areaCategory = areaCategory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAreaCategory()
|
||||||
|
{
|
||||||
|
return areaCategory;
|
||||||
|
}
|
||||||
|
public void setStandardName(String standardName)
|
||||||
|
{
|
||||||
|
this.standardName = standardName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStandardName()
|
||||||
|
{
|
||||||
|
return standardName;
|
||||||
|
}
|
||||||
|
public void setStandardCategory(String standardCategory)
|
||||||
|
{
|
||||||
|
this.standardCategory = standardCategory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStandardCategory()
|
||||||
|
{
|
||||||
|
return standardCategory;
|
||||||
|
}
|
||||||
|
public void setStandardBeginDate(String standardBeginDate)
|
||||||
|
{
|
||||||
|
this.standardBeginDate = standardBeginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStandardBeginDate()
|
||||||
|
{
|
||||||
|
return standardBeginDate;
|
||||||
|
}
|
||||||
|
public void setStandardStatus(String standardStatus)
|
||||||
|
{
|
||||||
|
this.standardStatus = standardStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStandardStatus()
|
||||||
|
{
|
||||||
|
return standardStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("standardId", getStandardId())
|
||||||
|
.append("areaCategory", getAreaCategory())
|
||||||
|
.append("standardName", getStandardName())
|
||||||
|
.append("standardCategory", getStandardCategory())
|
||||||
|
.append("standardBeginDate", getStandardBeginDate())
|
||||||
|
.append("standardStatus", getStandardStatus())
|
||||||
|
.append("createBy", getCreateBy())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("updateBy", getUpdateBy())
|
||||||
|
.append("updateTime", getUpdateTime())
|
||||||
|
.append("remark", getRemark())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
package com.ruoyi.productionManager.domain;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准信息文件对象 standard_info_details
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-18
|
||||||
|
*/
|
||||||
|
public class StandardInfoDetails extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 标准明细ID */
|
||||||
|
private Long detailsId;
|
||||||
|
|
||||||
|
/** 标准id */
|
||||||
|
private Long standardId;
|
||||||
|
|
||||||
|
/** 文件名称 */
|
||||||
|
@Excel(name = "文件名称")
|
||||||
|
private String fileName;
|
||||||
|
|
||||||
|
/** 文件路径 */
|
||||||
|
@Excel(name = "文件路径")
|
||||||
|
private String fileUrl;
|
||||||
|
|
||||||
|
public void setDetailsId(Long detailsId)
|
||||||
|
{
|
||||||
|
this.detailsId = detailsId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getDetailsId()
|
||||||
|
{
|
||||||
|
return detailsId;
|
||||||
|
}
|
||||||
|
public void setStandardId(Long standardId)
|
||||||
|
{
|
||||||
|
this.standardId = standardId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getStandardId()
|
||||||
|
{
|
||||||
|
return standardId;
|
||||||
|
}
|
||||||
|
public void setFileName(String fileName)
|
||||||
|
{
|
||||||
|
this.fileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFileName()
|
||||||
|
{
|
||||||
|
return fileName;
|
||||||
|
}
|
||||||
|
public void setFileUrl(String fileUrl)
|
||||||
|
{
|
||||||
|
this.fileUrl = fileUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFileUrl()
|
||||||
|
{
|
||||||
|
return fileUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("detailsId", getDetailsId())
|
||||||
|
.append("standardId", getStandardId())
|
||||||
|
.append("fileName", getFileName())
|
||||||
|
.append("fileUrl", getFileUrl())
|
||||||
|
.append("createBy", getCreateBy())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("updateBy", getUpdateBy())
|
||||||
|
.append("updateTime", getUpdateTime())
|
||||||
|
.append("remark", getRemark())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package com.ruoyi.productionManager.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfoDetails;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准信息文件Mapper接口
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-18
|
||||||
|
*/
|
||||||
|
public interface StandardInfoDetailsMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsId 标准信息文件主键
|
||||||
|
* @return 标准信息文件
|
||||||
|
*/
|
||||||
|
public StandardInfoDetails selectStandardInfoDetailsByDetailsId(Long detailsId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件列表
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 标准信息文件集合
|
||||||
|
*/
|
||||||
|
public List<StandardInfoDetails> selectStandardInfoDetailsList(StandardInfoDetails standardInfoDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增标准信息文件
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertStandardInfoDetails(StandardInfoDetails standardInfoDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改标准信息文件
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateStandardInfoDetails(StandardInfoDetails standardInfoDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsId 标准信息文件主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoDetailsByDetailsId(Long detailsId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsIds 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoDetailsByDetailsIds(Long[] detailsIds);
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package com.ruoyi.productionManager.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 试验标准管理Mapper接口
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-13
|
||||||
|
*/
|
||||||
|
public interface StandardInfoMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardId 试验标准管理主键
|
||||||
|
* @return 试验标准管理
|
||||||
|
*/
|
||||||
|
public StandardInfo selectStandardInfoByStandardId(Long standardId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理列表
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 试验标准管理集合
|
||||||
|
*/
|
||||||
|
public List<StandardInfo> selectStandardInfoList(StandardInfo standardInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertStandardInfo(StandardInfo standardInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateStandardInfo(StandardInfo standardInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardId 试验标准管理主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoByStandardId(Long standardId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardIds 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoByStandardIds(Long[] standardIds);
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package com.ruoyi.productionManager.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfoDetails;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准信息文件Service接口
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-18
|
||||||
|
*/
|
||||||
|
public interface IStandardInfoDetailsService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsId 标准信息文件主键
|
||||||
|
* @return 标准信息文件
|
||||||
|
*/
|
||||||
|
public StandardInfoDetails selectStandardInfoDetailsByDetailsId(Long detailsId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件列表
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 标准信息文件集合
|
||||||
|
*/
|
||||||
|
public List<StandardInfoDetails> selectStandardInfoDetailsList(StandardInfoDetails standardInfoDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增标准信息文件
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertStandardInfoDetails(StandardInfoDetails standardInfoDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改标准信息文件
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateStandardInfoDetails(StandardInfoDetails standardInfoDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsIds 需要删除的标准信息文件主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoDetailsByDetailsIds(Long[] detailsIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标准信息文件信息
|
||||||
|
*
|
||||||
|
* @param detailsId 标准信息文件主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoDetailsByDetailsId(Long detailsId);
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.ruoyi.productionManager.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfo;
|
||||||
|
import com.ruoyi.productionManager.vo.StandardManagerVO;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 试验标准管理Service接口
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-13
|
||||||
|
*/
|
||||||
|
public interface IStandardInfoService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardId 试验标准管理主键
|
||||||
|
* @return 试验标准管理
|
||||||
|
*/
|
||||||
|
public StandardInfo selectStandardInfoByStandardId(Long standardId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理列表
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 试验标准管理集合
|
||||||
|
*/
|
||||||
|
public List<StandardInfo> selectStandardInfoList(StandardInfo standardInfo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertStandardInfo(StandardManagerVO standardManagerVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateStandardInfo(StandardManagerVO standardManagerVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardIds 需要删除的试验标准管理主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoByStandardIds(Long[] standardIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除试验标准管理信息
|
||||||
|
*
|
||||||
|
* @param standardId 试验标准管理主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteStandardInfoByStandardId(Long standardId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传文件
|
||||||
|
* @param file
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String uploadFile(MultipartFile file);
|
||||||
|
}
|
@ -0,0 +1,96 @@
|
|||||||
|
package com.ruoyi.productionManager.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.productionManager.mapper.StandardInfoDetailsMapper;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfoDetails;
|
||||||
|
import com.ruoyi.productionManager.service.IStandardInfoDetailsService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准信息文件Service业务层处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-18
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class StandardInfoDetailsServiceImpl implements IStandardInfoDetailsService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private StandardInfoDetailsMapper standardInfoDetailsMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsId 标准信息文件主键
|
||||||
|
* @return 标准信息文件
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public StandardInfoDetails selectStandardInfoDetailsByDetailsId(Long detailsId)
|
||||||
|
{
|
||||||
|
return standardInfoDetailsMapper.selectStandardInfoDetailsByDetailsId(detailsId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件列表
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 标准信息文件
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<StandardInfoDetails> selectStandardInfoDetailsList(StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
return standardInfoDetailsMapper.selectStandardInfoDetailsList(standardInfoDetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增标准信息文件
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertStandardInfoDetails(StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
standardInfoDetails.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return standardInfoDetailsMapper.insertStandardInfoDetails(standardInfoDetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改标准信息文件
|
||||||
|
*
|
||||||
|
* @param standardInfoDetails 标准信息文件
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateStandardInfoDetails(StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
standardInfoDetails.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return standardInfoDetailsMapper.updateStandardInfoDetails(standardInfoDetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除标准信息文件
|
||||||
|
*
|
||||||
|
* @param detailsIds 需要删除的标准信息文件主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteStandardInfoDetailsByDetailsIds(Long[] detailsIds)
|
||||||
|
{
|
||||||
|
return standardInfoDetailsMapper.deleteStandardInfoDetailsByDetailsIds(detailsIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标准信息文件信息
|
||||||
|
*
|
||||||
|
* @param detailsId 标准信息文件主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteStandardInfoDetailsByDetailsId(Long detailsId)
|
||||||
|
{
|
||||||
|
return standardInfoDetailsMapper.deleteStandardInfoDetailsByDetailsId(detailsId);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,231 @@
|
|||||||
|
package com.ruoyi.productionManager.service.impl;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
|
import com.ruoyi.common.constant.Constants;
|
||||||
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.common.utils.file.FileTypeUtils;
|
||||||
|
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||||
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfoDetails;
|
||||||
|
import com.ruoyi.productionManager.service.IStandardInfoDetailsService;
|
||||||
|
import com.ruoyi.productionManager.vo.StandardManagerVO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.productionManager.mapper.StandardInfoMapper;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfo;
|
||||||
|
import com.ruoyi.productionManager.service.IStandardInfoService;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 试验标准管理Service业务层处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-13
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class StandardInfoServiceImpl implements IStandardInfoService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private StandardInfoMapper standardInfoMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IStandardInfoDetailsService standardInfoDetailsService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardId 试验标准管理主键
|
||||||
|
* @return 试验标准管理
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public StandardInfo selectStandardInfoByStandardId(Long standardId)
|
||||||
|
{
|
||||||
|
return standardInfoMapper.selectStandardInfoByStandardId(standardId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理列表
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 试验标准管理
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<StandardInfo> selectStandardInfoList(StandardInfo standardInfo)
|
||||||
|
{
|
||||||
|
return standardInfoMapper.selectStandardInfoList(standardInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardManagerVO 试验标准管理
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertStandardInfo(StandardManagerVO standardManagerVO)
|
||||||
|
{
|
||||||
|
String filePath = RuoYiConfig.getUploadPath();
|
||||||
|
// 取出缓存数据
|
||||||
|
String name = "";
|
||||||
|
String fileName = "";
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
Assert.notNull(standardManagerVO.getPath(),"文件未上传!");
|
||||||
|
// String s:standardManagerVO.getPath().split("/",9)
|
||||||
|
String[] str = standardManagerVO.getPath().split("/",6);
|
||||||
|
for(int i=0;i<str.length;i++){
|
||||||
|
if(i>=2){
|
||||||
|
sb.append("/");
|
||||||
|
sb.append(str[i]);
|
||||||
|
}
|
||||||
|
name = str[i];
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
byte[] bytes = redisCache.getCacheObject(Constants.UPLOAD_FILE+name);
|
||||||
|
String s = redisCache.getCacheObject(Constants.UPLOAD_FILE_NAME+name);
|
||||||
|
InputStream inputStream = new ByteArrayInputStream(bytes);
|
||||||
|
// String fileType = FileTypeUtils.getType(bytes);
|
||||||
|
MultipartFile files = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
|
||||||
|
fileName = sb.toString();
|
||||||
|
File desc = FileUploadUtils.getAbsoluteFile(filePath, fileName);
|
||||||
|
files.transferTo(desc);
|
||||||
|
standardManagerVO.setCreateTime(DateUtils.getNowDate());
|
||||||
|
|
||||||
|
standardInfoMapper.insertStandardInfo(standardManagerVO);
|
||||||
|
StandardInfoDetails standardInfoDetails = new StandardInfoDetails();
|
||||||
|
standardInfoDetails.setFileUrl(filePath+fileName);
|
||||||
|
standardInfoDetails.setFileName(s);
|
||||||
|
standardInfoDetails.setStandardId(standardManagerVO.getStandardId());
|
||||||
|
standardInfoDetails.setCreateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
|
redisCache.deleteObject(Constants.UPLOAD_FILE+name);
|
||||||
|
redisCache.deleteObject(Constants.UPLOAD_FILE_NAME+name);
|
||||||
|
return standardInfoDetailsService.insertStandardInfoDetails(standardInfoDetails);
|
||||||
|
}catch (NullPointerException e){
|
||||||
|
throw new ServiceException("新增失败:文件已过期重新上传!");
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new ServiceException("新增失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardInfo 试验标准管理
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateStandardInfo(StandardManagerVO standardManagerVO)
|
||||||
|
{
|
||||||
|
String filePath = RuoYiConfig.getUploadPath();
|
||||||
|
// 取出缓存数据
|
||||||
|
String name = "";
|
||||||
|
String fileName = "";
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
Assert.notNull(standardManagerVO.getPath(),"文件未上传!");
|
||||||
|
// String s:standardManagerVO.getPath().split("/",9)
|
||||||
|
String[] str = standardManagerVO.getPath().split("/",6);
|
||||||
|
for(int i=0;i<str.length;i++){
|
||||||
|
if(i>=2){
|
||||||
|
sb.append("/");
|
||||||
|
sb.append(str[i]);
|
||||||
|
}
|
||||||
|
name = str[i];
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
byte[] bytes = redisCache.getCacheObject(Constants.UPLOAD_FILE+name);
|
||||||
|
InputStream inputStream = new ByteArrayInputStream(bytes);
|
||||||
|
// String fileType = FileTypeUtils.getType(bytes);
|
||||||
|
MultipartFile files = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
|
||||||
|
fileName = sb.toString();
|
||||||
|
File desc = FileUploadUtils.getAbsoluteFile(filePath, fileName);
|
||||||
|
files.transferTo(desc);
|
||||||
|
|
||||||
|
standardManagerVO.setUpdateBy(SecurityUtils.getLoginUser().getUsername());
|
||||||
|
standardManagerVO.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return standardInfoMapper.updateStandardInfo(standardManagerVO);
|
||||||
|
}catch (NullPointerException e){
|
||||||
|
throw new ServiceException("修改失败:文件已过期重新上传!");
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new ServiceException("修改失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除试验标准管理
|
||||||
|
*
|
||||||
|
* @param standardIds 需要删除的试验标准管理主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteStandardInfoByStandardIds(Long[] standardIds)
|
||||||
|
{
|
||||||
|
return standardInfoMapper.deleteStandardInfoByStandardIds(standardIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除试验标准管理信息
|
||||||
|
*
|
||||||
|
* @param standardId 试验标准管理主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteStandardInfoByStandardId(Long standardId)
|
||||||
|
{
|
||||||
|
return standardInfoMapper.deleteStandardInfoByStandardId(standardId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadFile(MultipartFile file) {
|
||||||
|
try {
|
||||||
|
String filePath = RuoYiConfig.getUploadPath();
|
||||||
|
// 上传并返回新文件名称
|
||||||
|
String fileName = FileUploadUtils.upload(filePath, file);
|
||||||
|
String name ="";
|
||||||
|
for(String s:fileName.split("/",9)){
|
||||||
|
System.out.println("path>>>"+s);
|
||||||
|
name = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] data = file.getBytes();
|
||||||
|
// Byte[] data = new Byte[file.getResource().getInputStream().available()];
|
||||||
|
|
||||||
|
redisCache.setCacheObject(Constants.UPLOAD_FILE+name,
|
||||||
|
data, 30, TimeUnit.MINUTES);
|
||||||
|
redisCache.setCacheObject(Constants.UPLOAD_FILE_NAME+name,file.getOriginalFilename(),30,TimeUnit.MINUTES);
|
||||||
|
// byte[] bytes = redisCache.getCacheObject(Constants.UPLOAD_FILE+name);
|
||||||
|
// InputStream inputStream = new ByteArrayInputStream(bytes);
|
||||||
|
// String fileType = FileTypeUtils.getType(bytes);
|
||||||
|
// MultipartFile testFiles = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
|
||||||
|
// File desc = FileUploadUtils.getAbsoluteFile(filePath, name);
|
||||||
|
// testFiles.transferTo(desc);
|
||||||
|
return fileName;
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new ServiceException("上传失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 设置cache key
|
||||||
|
*
|
||||||
|
* @param fileName 参数键
|
||||||
|
* @return 缓存键key
|
||||||
|
*/
|
||||||
|
private String getCacheKey(String fileName)
|
||||||
|
{
|
||||||
|
return Constants.UPLOAD_FILE + fileName;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.ruoyi.productionManager.vo;
|
||||||
|
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfo;
|
||||||
|
|
||||||
|
public class StandardManagerVO extends StandardInfo {
|
||||||
|
private static final long serialVersionUID = -5124848255962397905L;
|
||||||
|
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
public void setPath(String path) {
|
||||||
|
this.path = path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPath() {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "StandardManagerVO{" +
|
||||||
|
"path='" + path + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,85 @@
|
|||||||
|
<?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.ruoyi.productionManager.mapper.StandardInfoDetailsMapper">
|
||||||
|
|
||||||
|
<resultMap type="StandardInfoDetails" id="StandardInfoDetailsResult">
|
||||||
|
<result property="detailsId" column="details_id" />
|
||||||
|
<result property="standardId" column="standard_id" />
|
||||||
|
<result property="fileName" column="file_name" />
|
||||||
|
<result property="fileUrl" column="file_url" />
|
||||||
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateBy" column="update_by" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectStandardInfoDetailsVo">
|
||||||
|
select details_id, standard_id, file_name, file_url, create_by, create_time, update_by, update_time, remark from standard_info_details
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectStandardInfoDetailsList" parameterType="StandardInfoDetails" resultMap="StandardInfoDetailsResult">
|
||||||
|
<include refid="selectStandardInfoDetailsVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="fileName != null and fileName != ''"> and file_name like concat('%', #{fileName}, '%')</if>
|
||||||
|
<if test="fileUrl != null and fileUrl != ''"> and file_url = #{fileUrl}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectStandardInfoDetailsByDetailsId" parameterType="Long" resultMap="StandardInfoDetailsResult">
|
||||||
|
<include refid="selectStandardInfoDetailsVo"/>
|
||||||
|
where details_id = #{detailsId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertStandardInfoDetails" parameterType="StandardInfoDetails" useGeneratedKeys="true" keyProperty="detailsId">
|
||||||
|
insert into standard_info_details
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="standardId != null">standard_id,</if>
|
||||||
|
<if test="fileName != null and fileName != ''">file_name,</if>
|
||||||
|
<if test="fileUrl != null and fileUrl != ''">file_url,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="standardId != null">#{standardId},</if>
|
||||||
|
<if test="fileName != null and fileName != ''">#{fileName},</if>
|
||||||
|
<if test="fileUrl != null and fileUrl != ''">#{fileUrl},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateStandardInfoDetails" parameterType="StandardInfoDetails">
|
||||||
|
update standard_info_details
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="standardId != null">standard_id = #{standardId},</if>
|
||||||
|
<if test="fileName != null and fileName != ''">file_name = #{fileName},</if>
|
||||||
|
<if test="fileUrl != null and fileUrl != ''">file_url = #{fileUrl},</if>
|
||||||
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
</trim>
|
||||||
|
where details_id = #{detailsId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteStandardInfoDetailsByDetailsId" parameterType="Long">
|
||||||
|
delete from standard_info_details where details_id = #{detailsId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteStandardInfoDetailsByDetailsIds" parameterType="String">
|
||||||
|
delete from standard_info_details where details_id in
|
||||||
|
<foreach item="detailsId" collection="array" open="(" separator="," close=")">
|
||||||
|
#{detailsId}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
@ -0,0 +1,101 @@
|
|||||||
|
<?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.ruoyi.productionManager.mapper.StandardInfoMapper">
|
||||||
|
|
||||||
|
<resultMap type="StandardInfo" id="StandardInfoResult">
|
||||||
|
<result property="standardId" column="standard_id" />
|
||||||
|
<result property="areaCategory" column="area_category" />
|
||||||
|
<result property="standardName" column="standard_name" />
|
||||||
|
<result property="standardCategory" column="standard_category" />
|
||||||
|
<result property="standardBeginDate" column="standard_begin_date" />
|
||||||
|
<result property="standardStatus" column="standard_status" />
|
||||||
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateBy" column="update_by" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
<result property="remark" column="remark" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectStandardInfoVo">
|
||||||
|
select standard_id, area_category, standard_name, standard_category, standard_begin_date, standard_status, create_by, create_time, update_by, update_time, remark from standard_info
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectStandardInfoList" parameterType="StandardInfo" resultMap="StandardInfoResult">
|
||||||
|
<include refid="selectStandardInfoVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="areaCategory != null and areaCategory != ''"> and area_category = #{areaCategory}</if>
|
||||||
|
<if test="standardName != null and standardName != ''"> and standard_name like concat('%', #{standardName}, '%')</if>
|
||||||
|
<if test="standardCategory != null and standardCategory != ''"> and standard_category = #{standardCategory}</if>
|
||||||
|
<if test="standardBeginDate != null and standardBeginDate != ''"> and standard_begin_date = #{standardBeginDate}</if>
|
||||||
|
<if test="standardStatus != null and standardStatus != ''"> and standard_status = #{standardStatus}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectStandardInfoByStandardId" parameterType="Long" resultMap="StandardInfoResult">
|
||||||
|
<include refid="selectStandardInfoVo"/>
|
||||||
|
where standard_id = #{standardId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertStandardInfo"
|
||||||
|
parameterType="StandardInfo" useGeneratedKeys="true" keyProperty="standardId">
|
||||||
|
<selectKey resultType="java.lang.Long" keyProperty="standardId" order="AFTER" >
|
||||||
|
SELECT LAST_INSERT_ID()
|
||||||
|
</selectKey>
|
||||||
|
insert into standard_info
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<!--<if test="standardId != null and standardId != ''">standard_id,</if>-->
|
||||||
|
<if test="areaCategory != null and areaCategory != ''">area_category,</if>
|
||||||
|
<if test="standardName != null and standardName != ''">standard_name,</if>
|
||||||
|
<if test="standardCategory != null and standardCategory != ''">standard_category,</if>
|
||||||
|
<if test="standardBeginDate != null">standard_begin_date,</if>
|
||||||
|
<if test="standardStatus != null and standardStatus != ''">standard_status,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="remark != null">remark,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="areaCategory != null and areaCategory != ''">#{areaCategory},</if>
|
||||||
|
<if test="standardName != null and standardName != ''">#{standardName},</if>
|
||||||
|
<if test="standardCategory != null and standardCategory != ''">#{standardCategory},</if>
|
||||||
|
<if test="standardBeginDate != null">#{standardBeginDate},</if>
|
||||||
|
<if test="standardStatus != null and standardStatus != ''">#{standardStatus},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="remark != null">#{remark},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateStandardInfo" parameterType="StandardInfo">
|
||||||
|
update standard_info
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="areaCategory != null and areaCategory != ''">area_category = #{areaCategory},</if>
|
||||||
|
<if test="standardName != null and standardName != ''">standard_name = #{standardName},</if>
|
||||||
|
<if test="standardCategory != null and standardCategory != ''">standard_category = #{standardCategory},</if>
|
||||||
|
<if test="standardBeginDate != null">standard_begin_date = #{standardBeginDate},</if>
|
||||||
|
<if test="standardStatus != null and standardStatus != ''">standard_status = #{standardStatus},</if>
|
||||||
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
</trim>
|
||||||
|
where standard_id = #{standardId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteStandardInfoByStandardId" parameterType="Long">
|
||||||
|
delete from standard_info where standard_id = #{standardId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteStandardInfoByStandardIds" parameterType="String">
|
||||||
|
delete from standard_info where standard_id in
|
||||||
|
<foreach item="standardId" collection="array" open="(" separator="," close=")">
|
||||||
|
#{standardId}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
@ -60,6 +60,12 @@
|
|||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
<artifactId>ruoyi-generator</artifactId>
|
<artifactId>ruoyi-generator</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>productManager</artifactId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
@ -0,0 +1,135 @@
|
|||||||
|
package com.ruoyi.web.controller.productionManager;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
|
import com.ruoyi.common.constant.Constants;
|
||||||
|
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||||
|
import com.ruoyi.framework.config.ServerConfig;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfo;
|
||||||
|
import com.ruoyi.productionManager.vo.StandardManagerVO;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
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.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.productionManager.service.IStandardInfoService;
|
||||||
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 试验标准管理Controller
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-13
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/productionManager/standard")
|
||||||
|
public class StandardInfoController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IStandardInfoService standardInfoService;
|
||||||
|
@Autowired
|
||||||
|
private ServerConfig serverConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询试验标准管理列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:standard:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(StandardInfo standardInfo)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<StandardInfo> list = standardInfoService.selectStandardInfoList(standardInfo);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出试验标准管理列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:standard:export')")
|
||||||
|
@Log(title = "试验标准管理", businessType = BusinessType.EXPORT)
|
||||||
|
@GetMapping("/export")
|
||||||
|
public AjaxResult export(StandardInfo standardInfo)
|
||||||
|
{
|
||||||
|
List<StandardInfo> list = standardInfoService.selectStandardInfoList(standardInfo);
|
||||||
|
ExcelUtil<StandardInfo> util = new ExcelUtil<StandardInfo>(StandardInfo.class);
|
||||||
|
return util.exportExcel(list, "试验标准管理数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取试验标准管理详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:standard:query')")
|
||||||
|
@GetMapping(value = "/{standardId}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("standardId") Long standardId)
|
||||||
|
{
|
||||||
|
return AjaxResult.success(standardInfoService.selectStandardInfoByStandardId(standardId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增试验标准管理
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:standard:add')")
|
||||||
|
@Log(title = "试验标准管理", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody StandardManagerVO standardInfo)
|
||||||
|
{
|
||||||
|
standardInfo.setCreateBy(getUsername());
|
||||||
|
return toAjax(standardInfoService.insertStandardInfo(standardInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改试验标准管理
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:standard:edit')")
|
||||||
|
@Log(title = "试验标准管理", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody StandardManagerVO standardInfo)
|
||||||
|
{
|
||||||
|
return toAjax(standardInfoService.updateStandardInfo(standardInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除试验标准管理
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:standard:remove')")
|
||||||
|
@Log(title = "试验标准管理", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{standardIds}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] standardIds)
|
||||||
|
{
|
||||||
|
return toAjax(standardInfoService.deleteStandardInfoByStandardIds(standardIds));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/upload")
|
||||||
|
public AjaxResult getFiles(@Param("file") MultipartFile file){
|
||||||
|
// String filePath = RuoYiConfig.getUploadPath();
|
||||||
|
// // 上传并返回新文件名称
|
||||||
|
// String fileName = FileUploadUtils.upload(filePath, file);
|
||||||
|
String fileName = standardInfoService.uploadFile(file);
|
||||||
|
String url = serverConfig.getUrl() + fileName;
|
||||||
|
AjaxResult ajax = AjaxResult.success();
|
||||||
|
ajax.put("fileName", fileName);
|
||||||
|
url.split("/");
|
||||||
|
String path ="";
|
||||||
|
for(String s:url.split("/",4)){
|
||||||
|
System.out.println("path>>>"+s);
|
||||||
|
path = s;
|
||||||
|
}
|
||||||
|
ajax.put("url", path);
|
||||||
|
return ajax;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
package com.ruoyi.web.controller.productionManager;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
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.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.productionManager.domain.StandardInfoDetails;
|
||||||
|
import com.ruoyi.productionManager.service.IStandardInfoDetailsService;
|
||||||
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准信息文件Controller
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
* @date 2021-10-18
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/productionManager/details")
|
||||||
|
public class StandardInfoDetailsController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IStandardInfoDetailsService standardInfoDetailsService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询标准信息文件列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:details:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<StandardInfoDetails> list = standardInfoDetailsService.selectStandardInfoDetailsList(standardInfoDetails);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出标准信息文件列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:details:export')")
|
||||||
|
@Log(title = "标准信息文件", businessType = BusinessType.EXPORT)
|
||||||
|
@GetMapping("/export")
|
||||||
|
public AjaxResult export(StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
List<StandardInfoDetails> list = standardInfoDetailsService.selectStandardInfoDetailsList(standardInfoDetails);
|
||||||
|
ExcelUtil<StandardInfoDetails> util = new ExcelUtil<StandardInfoDetails>(StandardInfoDetails.class);
|
||||||
|
return util.exportExcel(list, "标准信息文件数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取标准信息文件详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:details:query')")
|
||||||
|
@GetMapping(value = "/{detailsId}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("detailsId") Long detailsId)
|
||||||
|
{
|
||||||
|
return AjaxResult.success(standardInfoDetailsService.selectStandardInfoDetailsByDetailsId(detailsId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增标准信息文件
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:details:add')")
|
||||||
|
@Log(title = "标准信息文件", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
return toAjax(standardInfoDetailsService.insertStandardInfoDetails(standardInfoDetails));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改标准信息文件
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:details:edit')")
|
||||||
|
@Log(title = "标准信息文件", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody StandardInfoDetails standardInfoDetails)
|
||||||
|
{
|
||||||
|
return toAjax(standardInfoDetailsService.updateStandardInfoDetails(standardInfoDetails));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除标准信息文件
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('productionManager:details:remove')")
|
||||||
|
@Log(title = "标准信息文件", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{detailsIds}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] detailsIds)
|
||||||
|
{
|
||||||
|
return toAjax(standardInfoDetailsService.deleteStandardInfoDetailsByDetailsIds(detailsIds));
|
||||||
|
}
|
||||||
|
}
|
@ -6,9 +6,9 @@ spring:
|
|||||||
druid:
|
druid:
|
||||||
# 主库数据源
|
# 主库数据源
|
||||||
master:
|
master:
|
||||||
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
url: jdbc:mysql://localhost:3306/szsyb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||||
username: root
|
username: root
|
||||||
password: password
|
password: root
|
||||||
# 从库数据源
|
# 从库数据源
|
||||||
slave:
|
slave:
|
||||||
# 从数据源开关/默认关闭
|
# 从数据源开关/默认关闭
|
||||||
|
@ -57,6 +57,11 @@ spring:
|
|||||||
# 热部署开关
|
# 热部署开关
|
||||||
enabled: true
|
enabled: true
|
||||||
# redis 配置
|
# redis 配置
|
||||||
|
# mongodb:
|
||||||
|
# host: localhost # mongodb的连接地址
|
||||||
|
# port: 27017 # mongodb的连接端口号
|
||||||
|
# database: ruoyi # mongodb的连接的数据库
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
# 地址
|
# 地址
|
||||||
host: localhost
|
host: localhost
|
||||||
@ -65,7 +70,7 @@ spring:
|
|||||||
# 数据库索引
|
# 数据库索引
|
||||||
database: 0
|
database: 0
|
||||||
# 密码
|
# 密码
|
||||||
password:
|
password: chengjiaxing123
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
lettuce:
|
lettuce:
|
||||||
|
@ -148,4 +148,14 @@ public class Constants
|
|||||||
* LDAP 远程方法调用
|
* LDAP 远程方法调用
|
||||||
*/
|
*/
|
||||||
public static final String LOOKUP_LDAP = "ldap://";
|
public static final String LOOKUP_LDAP = "ldap://";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
*/
|
||||||
|
public static final String UPLOAD_FILE = "file:";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
*/
|
||||||
|
public static final String UPLOAD_FILE_NAME = "filename:";
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.common.utils.file;
|
package com.ruoyi.common.utils.file;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,6 +12,42 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
*/
|
*/
|
||||||
public class FileTypeUtils
|
public class FileTypeUtils
|
||||||
{
|
{
|
||||||
|
// 缓存文件头信息-文件头信息
|
||||||
|
public static final HashMap<String, String> FILE_TYPE_MAP= new HashMap<>();
|
||||||
|
static {
|
||||||
|
FILE_TYPE_MAP.put("jpg", "FFD8FF"); //JPEG (jpg)
|
||||||
|
FILE_TYPE_MAP.put("png", "89504E47"); //PNG (png)
|
||||||
|
FILE_TYPE_MAP.put("gif", "47494638"); //GIF (gif)
|
||||||
|
FILE_TYPE_MAP.put("tif", "49492A00"); //TIFF (tif)
|
||||||
|
FILE_TYPE_MAP.put("bmp", "424D"); //Windows Bitmap (bmp)
|
||||||
|
FILE_TYPE_MAP.put("dwg", "41433130"); //CAD (dwg)
|
||||||
|
FILE_TYPE_MAP.put("html", "68746D6C3E"); //HTML (html)
|
||||||
|
FILE_TYPE_MAP.put("rtf", "7B5C727466"); //Rich Text Format (rtf)
|
||||||
|
FILE_TYPE_MAP.put("xml", "3C3F786D6C");
|
||||||
|
FILE_TYPE_MAP.put("zip", "504B0304");
|
||||||
|
FILE_TYPE_MAP.put("rar", "52617221");
|
||||||
|
FILE_TYPE_MAP.put("psd", "38425053"); //Photoshop (psd)
|
||||||
|
FILE_TYPE_MAP.put("eml", "44656C69766572792D646174653A"); //Email [thorough only] (eml)
|
||||||
|
FILE_TYPE_MAP.put("dbx", "CFAD12FEC5FD746F"); //Outlook Express (dbx)
|
||||||
|
FILE_TYPE_MAP.put("pst", "2142444E"); //Outlook (pst)
|
||||||
|
FILE_TYPE_MAP.put("xls", "D0CF11E0"); //MS Word
|
||||||
|
FILE_TYPE_MAP.put("doc", "D0CF11E0"); //MS Excel 注意:word 和 excel的文件头一样
|
||||||
|
FILE_TYPE_MAP.put("mdb", "5374616E64617264204A"); //MS Access (mdb)
|
||||||
|
FILE_TYPE_MAP.put("wpd", "FF575043"); //WordPerfect (wpd)
|
||||||
|
FILE_TYPE_MAP.put("eps", "252150532D41646F6265");
|
||||||
|
FILE_TYPE_MAP.put("ps", "252150532D41646F6265");
|
||||||
|
FILE_TYPE_MAP.put("pdf", "255044462D312E"); //Adobe Acrobat (pdf)
|
||||||
|
FILE_TYPE_MAP.put("qdf", "AC9EBD8F"); //Quicken (qdf)
|
||||||
|
FILE_TYPE_MAP.put("pwl", "E3828596"); //Windows Password (pwl)
|
||||||
|
FILE_TYPE_MAP.put("wav", "57415645"); //Wave (wav)
|
||||||
|
FILE_TYPE_MAP.put("avi", "41564920");
|
||||||
|
FILE_TYPE_MAP.put("ram", "2E7261FD"); //Real Audio (ram)
|
||||||
|
FILE_TYPE_MAP.put("rm", "2E524D46"); //Real Media (rm)
|
||||||
|
FILE_TYPE_MAP.put("mpg", "000001BA"); //
|
||||||
|
FILE_TYPE_MAP.put("mov", "6D6F6F76"); //Quicktime (mov)
|
||||||
|
FILE_TYPE_MAP.put("asf", "3026B2758E66CF11"); //Windows Media (asf)
|
||||||
|
FILE_TYPE_MAP.put("mid", "4D546864"); //MIDI (mid)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 获取文件类型
|
* 获取文件类型
|
||||||
* <p>
|
* <p>
|
||||||
@ -73,4 +111,58 @@ public class FileTypeUtils
|
|||||||
}
|
}
|
||||||
return strFileExtendName;
|
return strFileExtendName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 方法描述:将要读取文件头信息的文件的byte数组转换成string类型表示
|
||||||
|
*
|
||||||
|
* 要读取文件头信息的文件的byte数组
|
||||||
|
*
|
||||||
|
* @return 文件头信息
|
||||||
|
* @param src
|
||||||
|
* @return
|
||||||
|
* @author:chengjx
|
||||||
|
* @createTime:2021年10月18日 下午5:08:23
|
||||||
|
*/
|
||||||
|
public static String bytesToHexString(byte[] src) {
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
if (src == null || src.length <= 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
String hv;
|
||||||
|
for (int i = 0; i < src.length; i++) {
|
||||||
|
// 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写
|
||||||
|
hv = Integer.toHexString(src[i] & 0xFF).toUpperCase();
|
||||||
|
if (hv.length() < 2) {
|
||||||
|
builder.append(0);
|
||||||
|
}
|
||||||
|
builder.append(hv);
|
||||||
|
}
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getType(byte[] bytes){
|
||||||
|
String s = bytesToHexString(bytes);
|
||||||
|
s = s.toUpperCase();
|
||||||
|
String type;
|
||||||
|
if (s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("jpg"))) {
|
||||||
|
type = "jpg";
|
||||||
|
} else if (s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("png"))) {
|
||||||
|
type = "png";
|
||||||
|
} else if (s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("gif"))) {
|
||||||
|
type = "gif";
|
||||||
|
} else if (s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("tif"))) {
|
||||||
|
type = "tif";
|
||||||
|
} else if(s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("bmp"))){
|
||||||
|
type = "bmp";
|
||||||
|
} else if(s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("pdf"))){
|
||||||
|
type = "pdf";
|
||||||
|
} else if(s.startsWith(FileTypeUtils.FILE_TYPE_MAP.get("xml"))){
|
||||||
|
type = "xml";
|
||||||
|
}else {
|
||||||
|
type = "undefined";
|
||||||
|
}
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -2,7 +2,12 @@ package com.ruoyi.common.utils.file;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Base64;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import com.ruoyi.common.config.RuoYiConfig;
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
@ -12,6 +17,7 @@ import com.ruoyi.common.exception.file.InvalidExtensionException;
|
|||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||||
|
import sun.misc.BASE64Encoder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传工具类
|
* 文件上传工具类
|
||||||
@ -20,6 +26,7 @@ import com.ruoyi.common.utils.uuid.IdUtils;
|
|||||||
*/
|
*/
|
||||||
public class FileUploadUtils
|
public class FileUploadUtils
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认大小 50M
|
* 默认大小 50M
|
||||||
*/
|
*/
|
||||||
@ -110,8 +117,8 @@ public class FileUploadUtils
|
|||||||
|
|
||||||
String fileName = extractFilename(file);
|
String fileName = extractFilename(file);
|
||||||
|
|
||||||
File desc = getAbsoluteFile(baseDir, fileName);
|
// File desc = getAbsoluteFile(baseDir, fileName);
|
||||||
file.transferTo(desc);
|
// file.transferTo(desc);
|
||||||
String pathFileName = getPathFileName(baseDir, fileName);
|
String pathFileName = getPathFileName(baseDir, fileName);
|
||||||
return pathFileName;
|
return pathFileName;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ gen:
|
|||||||
# 作者
|
# 作者
|
||||||
author: ruoyi
|
author: ruoyi
|
||||||
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
|
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
|
||||||
packageName: com.ruoyi.system
|
packageName: com.ruoyi.productionManager
|
||||||
# 自动去除表前缀,默认是false
|
# 自动去除表前缀,默认是false
|
||||||
autoRemovePre: false
|
autoRemovePre: false
|
||||||
# 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
|
# 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
|
||||||
|
53
ruoyi-ui/src/api/productionManager/standard.js
Normal file
53
ruoyi-ui/src/api/productionManager/standard.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询试验标准管理列表
|
||||||
|
export function listStandard(query) {
|
||||||
|
return request({
|
||||||
|
url: '/productionManager/standard/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询试验标准管理详细
|
||||||
|
export function getStandard(standardId) {
|
||||||
|
return request({
|
||||||
|
url: '/productionManager/standard/' + standardId,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增试验标准管理
|
||||||
|
export function addStandard(data) {
|
||||||
|
return request({
|
||||||
|
url: '/productionManager/standard',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改试验标准管理
|
||||||
|
export function updateStandard(data) {
|
||||||
|
return request({
|
||||||
|
url: '/productionManager/standard',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除试验标准管理
|
||||||
|
export function delStandard(standardId) {
|
||||||
|
return request({
|
||||||
|
url: '/productionManager/standard/' + standardId,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出试验标准管理
|
||||||
|
export function exportStandard(query) {
|
||||||
|
return request({
|
||||||
|
url: '/productionManager/standard/export',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-upload
|
<el-upload :action="uploadUrl"
|
||||||
:action="uploadUrl"
|
|
||||||
:before-upload="handleBeforeUpload"
|
:before-upload="handleBeforeUpload"
|
||||||
:on-success="handleUploadSuccess"
|
:on-success="handleUploadSuccess"
|
||||||
:on-error="handleUploadError"
|
:on-error="handleUploadError"
|
||||||
@ -10,10 +9,11 @@
|
|||||||
:headers="headers"
|
:headers="headers"
|
||||||
style="display: none"
|
style="display: none"
|
||||||
ref="upload"
|
ref="upload"
|
||||||
v-if="this.type == 'url'"
|
v-if="this.type == 'url'">
|
||||||
>
|
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<div class="editor" ref="editor" :style="styles"></div>
|
<div class="editor"
|
||||||
|
ref="editor"
|
||||||
|
:style="styles"></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ export default {
|
|||||||
default: "url",
|
default: "url",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data () {
|
||||||
return {
|
return {
|
||||||
uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
|
uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
|
||||||
headers: {
|
headers: {
|
||||||
@ -91,7 +91,7 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
styles() {
|
styles () {
|
||||||
let style = {};
|
let style = {};
|
||||||
if (this.minHeight) {
|
if (this.minHeight) {
|
||||||
style.minHeight = `${this.minHeight}px`;
|
style.minHeight = `${this.minHeight}px`;
|
||||||
@ -104,7 +104,7 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
value: {
|
value: {
|
||||||
handler(val) {
|
handler (val) {
|
||||||
if (val !== this.currentValue) {
|
if (val !== this.currentValue) {
|
||||||
this.currentValue = val === null ? "" : val;
|
this.currentValue = val === null ? "" : val;
|
||||||
if (this.Quill) {
|
if (this.Quill) {
|
||||||
@ -115,14 +115,14 @@ export default {
|
|||||||
immediate: true,
|
immediate: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted () {
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy () {
|
||||||
this.Quill = null;
|
this.Quill = null;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init () {
|
||||||
const editor = this.$refs.editor;
|
const editor = this.$refs.editor;
|
||||||
this.Quill = new Quill(editor, this.options);
|
this.Quill = new Quill(editor, this.options);
|
||||||
// 如果设置了上传地址则自定义图片上传事件
|
// 如果设置了上传地址则自定义图片上传事件
|
||||||
@ -157,7 +157,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 上传前校检格式和大小
|
// 上传前校检格式和大小
|
||||||
handleBeforeUpload(file) {
|
handleBeforeUpload (file) {
|
||||||
// 校检文件大小
|
// 校检文件大小
|
||||||
if (this.fileSize) {
|
if (this.fileSize) {
|
||||||
const isLt = file.size / 1024 / 1024 < this.fileSize;
|
const isLt = file.size / 1024 / 1024 < this.fileSize;
|
||||||
@ -168,7 +168,7 @@ export default {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
handleUploadSuccess(res, file) {
|
handleUploadSuccess (res, file) {
|
||||||
// 获取富文本组件实例
|
// 获取富文本组件实例
|
||||||
let quill = this.Quill;
|
let quill = this.Quill;
|
||||||
// 如果上传成功
|
// 如果上传成功
|
||||||
@ -183,7 +183,7 @@ export default {
|
|||||||
this.$message.error("图片插入失败");
|
this.$message.error("图片插入失败");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleUploadError() {
|
handleUploadError () {
|
||||||
this.$message.error("图片插入失败");
|
this.$message.error("图片插入失败");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -191,7 +191,8 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.editor, .ql-toolbar {
|
.editor,
|
||||||
|
.ql-toolbar {
|
||||||
white-space: pre-wrap !important;
|
white-space: pre-wrap !important;
|
||||||
line-height: normal !important;
|
line-height: normal !important;
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
|
<div class="sidebar-logo-container"
|
||||||
|
:class="{'collapse':collapse}"
|
||||||
|
:style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
|
||||||
<transition name="sidebarLogoFade">
|
<transition name="sidebarLogoFade">
|
||||||
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
|
<router-link v-if="collapse"
|
||||||
<img v-if="logo" :src="logo" class="sidebar-logo" />
|
key="collapse"
|
||||||
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
|
class="sidebar-logo-link"
|
||||||
|
to="/">
|
||||||
|
<img v-if="logo"
|
||||||
|
:src="logo"
|
||||||
|
class="sidebar-logo" />
|
||||||
|
<h1 v-else
|
||||||
|
class="sidebar-title"
|
||||||
|
:style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
|
||||||
</router-link>
|
</router-link>
|
||||||
<router-link v-else key="expand" class="sidebar-logo-link" to="/">
|
<router-link v-else
|
||||||
<img v-if="logo" :src="logo" class="sidebar-logo" />
|
key="expand"
|
||||||
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
|
class="sidebar-logo-link"
|
||||||
|
to="/">
|
||||||
|
<img v-if="logo"
|
||||||
|
:src="logo"
|
||||||
|
class="sidebar-logo" />
|
||||||
|
<h1 class="sidebar-title"
|
||||||
|
:style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
|
||||||
</router-link>
|
</router-link>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
@ -26,16 +41,16 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
variables() {
|
variables () {
|
||||||
return variables;
|
return variables;
|
||||||
},
|
},
|
||||||
sideTheme() {
|
sideTheme () {
|
||||||
return this.$store.state.settings.sideTheme
|
return this.$store.state.settings.sideTheme
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data () {
|
||||||
return {
|
return {
|
||||||
title: '若依管理系统',
|
title: '云度信息系统',
|
||||||
logo: logoImg
|
logo: logoImg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
544
ruoyi-ui/src/views/productionManager/standard/index.vue
Normal file
544
ruoyi-ui/src/views/productionManager/standard/index.vue
Normal file
@ -0,0 +1,544 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams"
|
||||||
|
ref="queryForm"
|
||||||
|
:inline="true"
|
||||||
|
v-show="showSearch"
|
||||||
|
label-width="68px">
|
||||||
|
<el-form-item label="区域分类"
|
||||||
|
prop="areaCategory">
|
||||||
|
<el-input v-model="queryParams.areaCategory"
|
||||||
|
placeholder="请输入区域分类"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标准名称"
|
||||||
|
prop="standardName">
|
||||||
|
<el-input v-model="queryParams.standardName"
|
||||||
|
placeholder="请输入标准名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
@keyup.enter.native="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标准类型"
|
||||||
|
prop="standardCategory">
|
||||||
|
<el-select v-model="queryParams.standardCategory"
|
||||||
|
placeholder="请选择标准类型"
|
||||||
|
clearable
|
||||||
|
size="small">
|
||||||
|
<el-option v-for="dict in dict.type.pro_standard_category"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="实施日期"
|
||||||
|
prop="standardBeginDate">
|
||||||
|
<el-date-picker clearable
|
||||||
|
size="small"
|
||||||
|
v-model="queryParams.standardBeginDate"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="选择实施日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标准状态"
|
||||||
|
prop="standardStatus">
|
||||||
|
<el-select v-model="queryParams.standardStatus"
|
||||||
|
placeholder="请选择标准状态"
|
||||||
|
clearable
|
||||||
|
size="small">
|
||||||
|
<el-option v-for="dict in dict.type.pro_standard_status"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary"
|
||||||
|
icon="el-icon-search"
|
||||||
|
size="mini"
|
||||||
|
@click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh"
|
||||||
|
size="mini"
|
||||||
|
@click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10"
|
||||||
|
class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['productionManager:standard: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="['productionManager:standard: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="['productionManager:standard:remove']">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
:loading="exportLoading"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['productionManager:standard:export']">导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch"
|
||||||
|
@queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading"
|
||||||
|
:data="standardList"
|
||||||
|
@selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection"
|
||||||
|
width="55"
|
||||||
|
align="center" />
|
||||||
|
<el-table-column label="标准id"
|
||||||
|
align="center"
|
||||||
|
prop="standardId"
|
||||||
|
v-if="false" />
|
||||||
|
<el-table-column label="区域分类"
|
||||||
|
align="center"
|
||||||
|
prop="areaCategory" />
|
||||||
|
<el-table-column label="标准名称"
|
||||||
|
align="center"
|
||||||
|
prop="standardName" />
|
||||||
|
<el-table-column label="标准类型"
|
||||||
|
align="center"
|
||||||
|
prop="standardCategory">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.pro_standard_category"
|
||||||
|
:value="scope.row.standardCategory" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="实施日期"
|
||||||
|
align="center"
|
||||||
|
prop="standardBeginDate"
|
||||||
|
width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.standardBeginDate, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="标准状态"
|
||||||
|
align="center"
|
||||||
|
prop="standardStatus">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.pro_standard_status"
|
||||||
|
:value="scope.row.standardStatus" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="备注"
|
||||||
|
align="center"
|
||||||
|
prop="remark" />
|
||||||
|
<el-table-column label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['productionManager:standard:edit']">修改</el-button>
|
||||||
|
<el-button size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['productionManager:standard:remove']">删除</el-button>
|
||||||
|
<el-button size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="downloadFile(scope.row)"
|
||||||
|
v-hasPermi="['productionManager:standard:remove']">下载</el-button>
|
||||||
|
<el-dropdown size="mini"
|
||||||
|
@command="(command) => handleCommand(command, scope.row)"
|
||||||
|
v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
|
||||||
|
<span class="el-dropdown-link">
|
||||||
|
<i class="el-icon-d-arrow-right el-icon--right"></i>更多
|
||||||
|
</span>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<!-- <el-dropdown-item command="handleResetPwd"
|
||||||
|
icon="el-icon-key"
|
||||||
|
v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
|
||||||
|
<el-dropdown-item command="handleAuthRole"
|
||||||
|
icon="el-icon-circle-check"
|
||||||
|
v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item> -->
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList" />
|
||||||
|
|
||||||
|
<!-- 添加或修改试验标准管理对话框 -->
|
||||||
|
<el-dialog :title="title"
|
||||||
|
:visible.sync="open"
|
||||||
|
width="500px"
|
||||||
|
append-to-body>
|
||||||
|
<el-form ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="80px">
|
||||||
|
<el-form-item label="区域分类"
|
||||||
|
prop="areaCategory">
|
||||||
|
<el-input v-model="form.areaCategory"
|
||||||
|
placeholder="请输入区域分类" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标准名称"
|
||||||
|
prop="standardName">
|
||||||
|
<el-input v-model="form.standardName"
|
||||||
|
placeholder="请输入标准名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="PDF文件"
|
||||||
|
prop="pdfFiles">
|
||||||
|
</el-form-item> -->
|
||||||
|
|
||||||
|
<el-form-item label="上传"
|
||||||
|
prop="path">
|
||||||
|
<el-input v-model="form.path"
|
||||||
|
placeholder="请选择上传文件"
|
||||||
|
:disabled="true" />
|
||||||
|
<!-- accept=".jpg, .png" -->
|
||||||
|
<el-upload ref="upload"
|
||||||
|
:limit="1"
|
||||||
|
:action="upload.url"
|
||||||
|
:headers="upload.headers"
|
||||||
|
:file-list="upload.fileList"
|
||||||
|
:on-progress="handleFileUploadProgress"
|
||||||
|
:on-success="handleFileSuccess"
|
||||||
|
:auto-upload="false">
|
||||||
|
<el-button slot="trigger"
|
||||||
|
size="small"
|
||||||
|
type="primary">选取文件</el-button>
|
||||||
|
<el-button style="margin-left: 10px;"
|
||||||
|
size="small"
|
||||||
|
type="success"
|
||||||
|
:loading="upload.isUploading"
|
||||||
|
@click="submitUpload">上传到服务器</el-button>
|
||||||
|
<!-- <div slot="tip"
|
||||||
|
class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> -->
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item size="large">
|
||||||
|
<el-button type="primary"
|
||||||
|
@click="submitForm">提交</el-button>
|
||||||
|
<el-button @click="resetForm">重置</el-button>
|
||||||
|
</el-form-item> -->
|
||||||
|
|
||||||
|
<el-form-item label="标准类型">
|
||||||
|
<el-radio-group v-model="form.standardCategory">
|
||||||
|
<el-radio v-for="dict in dict.type.pro_standard_category"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value">{{dict.label}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="实施日期"
|
||||||
|
prop="standardBeginDate">
|
||||||
|
<el-date-picker clearable
|
||||||
|
size="small"
|
||||||
|
v-model="form.standardBeginDate"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="选择实施日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标准状态">
|
||||||
|
<el-radio-group v-model="form.standardStatus">
|
||||||
|
<el-radio v-for="dict in dict.type.pro_standard_status"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value">{{dict.label}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注"
|
||||||
|
prop="remark">
|
||||||
|
<el-input v-model="form.remark"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer"
|
||||||
|
class="dialog-footer">
|
||||||
|
<el-button type="primary"
|
||||||
|
@click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listStandard, getStandard, delStandard, addStandard, updateStandard, exportStandard } from "@/api/productionManager/standard";
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// pdf文件导入参数
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
name: "Standard",
|
||||||
|
dicts: ['pro_standard_category', 'pro_standard_status'],
|
||||||
|
data () {
|
||||||
|
var validatorPath = (rule, value, callback) => {
|
||||||
|
if (value === '') {
|
||||||
|
callback(new Error('请上传文件'));
|
||||||
|
} else {
|
||||||
|
// if (this.form.path !== '') {
|
||||||
|
// this.$refs.ruleForm.validateField('checkPass');
|
||||||
|
// }
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
//导入相关参数 process.env.VUE_APP_BASE_API + "/productionManager/standard/upload"
|
||||||
|
// 上传参数
|
||||||
|
upload: {
|
||||||
|
// 是否禁用上传
|
||||||
|
isUploading: false,
|
||||||
|
// 设置上传的请求头部
|
||||||
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
|
// 上传的地址
|
||||||
|
url: process.env.VUE_APP_BASE_API + "/productionManager/standard/upload",
|
||||||
|
// 上传的文件列表
|
||||||
|
fileList: [],
|
||||||
|
filePath: ""
|
||||||
|
|
||||||
|
},
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 导出遮罩层
|
||||||
|
exportLoading: false,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 试验标准管理表格数据
|
||||||
|
standardList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
areaCategory: null,
|
||||||
|
standardName: null,
|
||||||
|
standardCategory: null,
|
||||||
|
standardBeginDate: null,
|
||||||
|
standardStatus: null,
|
||||||
|
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
areaCategory: [
|
||||||
|
{ required: true, message: "区域分类不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
standardName: [
|
||||||
|
{ required: true, message: "标准名称不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
standardCategory: [
|
||||||
|
{ required: true, message: "标准类型不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
standardStatus: [
|
||||||
|
{ required: true, message: "标准状态不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
// path: [
|
||||||
|
// { required: true, message: "文件不能为空", trigger: ["blur"] }
|
||||||
|
// ],
|
||||||
|
// path: [
|
||||||
|
// { required: true, validator: validatorPath, trigger: ["blur", "change"] }
|
||||||
|
// ],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// pdf导入相关方法
|
||||||
|
// submitForm () {
|
||||||
|
// this.$refs['elForm'].validate(valid => {
|
||||||
|
// if (!valid) return
|
||||||
|
// // TODO 提交表单
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
// resetForm () {
|
||||||
|
// this.$refs['elForm'].resetFields()
|
||||||
|
// },
|
||||||
|
|
||||||
|
|
||||||
|
pdffileBeforeUpload (file) {
|
||||||
|
let isRightSize = file.size / 1024 / 1024 < 20
|
||||||
|
if (!isRightSize) {
|
||||||
|
this.$message.error('文件大小超过 20MB')
|
||||||
|
}
|
||||||
|
let isAccept = new RegExp('.pdf').test(file.type)
|
||||||
|
if (!isAccept) {
|
||||||
|
this.$message.error('应该选择.pdf类型的文件')
|
||||||
|
}
|
||||||
|
return isRightSize && isAccept
|
||||||
|
},
|
||||||
|
// 文件提交处理
|
||||||
|
submitUpload () {
|
||||||
|
this.$refs.upload.submit();
|
||||||
|
},
|
||||||
|
// 文件上传中处理
|
||||||
|
handleFileUploadProgress (event, file, fileList) {
|
||||||
|
this.upload.isUploading = true;
|
||||||
|
},
|
||||||
|
// 文件上传成功处理
|
||||||
|
handleFileSuccess (response, file, fileList) {
|
||||||
|
this.upload.isUploading = false;
|
||||||
|
this.upload.filePath = response.url;
|
||||||
|
console.log("filepath>>>" + this.upload.filePath)
|
||||||
|
this.form.path = response.url;
|
||||||
|
this.$modal.msgSuccess(response.msg);
|
||||||
|
// this.$nextTick(() => this.$refs.form.clearValidate())
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/** 查询试验标准管理列表 */
|
||||||
|
getList () {
|
||||||
|
this.loading = true;
|
||||||
|
listStandard(this.queryParams).then(response => {
|
||||||
|
this.standardList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel () {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset () {
|
||||||
|
this.form = {
|
||||||
|
standardId: null,
|
||||||
|
areaCategory: null,
|
||||||
|
standardName: null,
|
||||||
|
standardCategory: "0",
|
||||||
|
standardBeginDate: null,
|
||||||
|
standardStatus: "0",
|
||||||
|
createBy: null,
|
||||||
|
createTime: null,
|
||||||
|
updateBy: null,
|
||||||
|
updateTime: null,
|
||||||
|
remark: 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.standardId)
|
||||||
|
this.single = selection.length !== 1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd () {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.upload.fileList = [];
|
||||||
|
this.title = "添加试验标准管理";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate (row) {
|
||||||
|
this.reset();
|
||||||
|
const standardId = row.standardId || this.ids
|
||||||
|
getStandard(standardId).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改试验标准管理";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm () {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.standardId != null) {
|
||||||
|
updateStandard(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addStandard(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete (row) {
|
||||||
|
const standardIds = row.standardId || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除试验标准管理编号为"' + standardIds + '"的数据项?').then(function () {
|
||||||
|
return delStandard(standardIds);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => { });
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport () {
|
||||||
|
const queryParams = this.queryParams;
|
||||||
|
this.$modal.confirm('是否确认导出所有试验标准管理数据项?').then(() => {
|
||||||
|
this.exportLoading = true;
|
||||||
|
return exportStandard(queryParams);
|
||||||
|
}).then(response => {
|
||||||
|
this.$download.name(response.msg);
|
||||||
|
this.exportLoading = false;
|
||||||
|
}).catch(() => { });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.el-upload__tip {
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
</style>
|
@ -686,3 +686,35 @@ create table gen_table_column (
|
|||||||
update_time datetime comment '更新时间',
|
update_time datetime comment '更新时间',
|
||||||
primary key (column_id)
|
primary key (column_id)
|
||||||
) engine=innodb auto_increment=1 comment = '代码生成业务表字段';
|
) engine=innodb auto_increment=1 comment = '代码生成业务表字段';
|
||||||
|
|
||||||
|
-- 添加业务表
|
||||||
|
drop table if exists STANDARD_INFO;
|
||||||
|
create table STANDARD_INFO (
|
||||||
|
standard_id bigint(20) not null auto_increment comment '标准id',
|
||||||
|
area_category varchar(120) not null comment '区域分类',
|
||||||
|
standard_name varchar(200) not null comment '标准名称',
|
||||||
|
standard_category varchar(200) not null comment '标准类型',
|
||||||
|
standard_begin_date varchar(250) null comment '标准实施日期',
|
||||||
|
standard_status varchar(20) not null comment '标准状态',
|
||||||
|
create_by varchar(64) default '' comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by varchar(64) default '' comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (standard_id)
|
||||||
|
) engine=innodb comment = '标准信息表';
|
||||||
|
|
||||||
|
|
||||||
|
drop table if exists STANDARD_INFO_DETAILS;
|
||||||
|
create table STANDARD_INFO_DETAILS (
|
||||||
|
details_id bigint(20) not null auto_increment comment '标准明细ID',
|
||||||
|
standard_id bigint(20) not null comment '标准id',
|
||||||
|
file_name varchar(200) not null comment '文件名称',
|
||||||
|
file_url varchar(200) not null comment '文件路径',
|
||||||
|
create_by varchar(64) default '' comment '创建者',
|
||||||
|
create_time datetime comment '创建时间',
|
||||||
|
update_by varchar(64) default '' comment '更新者',
|
||||||
|
update_time datetime comment '更新时间',
|
||||||
|
remark varchar(500) default null comment '备注',
|
||||||
|
primary key (details_id,standard_id)
|
||||||
|
) engine=innodb comment = '标准信息文件表';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user