feat(management): 添加销齿链型号数据导入功能
- 新增 DefaultExcelListener、DefaultExcelResult、ExcelListener 和 ExcelResult 类用于处理 Excel 导入 - 在 PcRigidChainController 中添加 importVariableData 方法处理导入逻辑 - 在 PcRigidChainMapper 和 PcRigidChainServiceImpl 中添加批量更新方法支持导入数据的批量插入 - 优化了导入流程,支持根据文件名自动识别类型,并处理不同轴向的数据
This commit is contained in:
parent
05a4a7c062
commit
461a22564b
12
evo/pom.xml
12
evo/pom.xml
@ -35,6 +35,7 @@
|
|||||||
<poi.version>3.17</poi.version>
|
<poi.version>3.17</poi.version>
|
||||||
<oshi.version>3.9.1</oshi.version>
|
<oshi.version>3.9.1</oshi.version>
|
||||||
<velocity.version>1.7</velocity.version>
|
<velocity.version>1.7</velocity.version>
|
||||||
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -50,7 +51,16 @@
|
|||||||
<artifactId>poi-ooxml</artifactId>
|
<artifactId>poi-ooxml</artifactId>
|
||||||
<version>3.17</version>
|
<version>3.17</version>
|
||||||
</dependency> -->
|
</dependency> -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.26</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>easyexcel</artifactId>
|
||||||
|
<version>4.0.3</version>
|
||||||
|
</dependency>
|
||||||
<!-- 汉字转拼音 pinyin4j -->
|
<!-- 汉字转拼音 pinyin4j -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.belerweb</groupId>
|
<groupId>com.belerweb</groupId>
|
||||||
|
|||||||
29
evo/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java
Normal file
29
evo/src/main/java/com/ruoyi/common/utils/ValidatorUtils.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.ruoyi.common.utils;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.validation.ConstraintViolation;
|
||||||
|
import javax.validation.ConstraintViolationException;
|
||||||
|
import javax.validation.Validator;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validator 校验框架工具
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class ValidatorUtils {
|
||||||
|
|
||||||
|
private static final Validator VALID = SpringUtils.getBean(Validator.class);
|
||||||
|
|
||||||
|
public static <T> void validate(T object, Class<?>... groups) {
|
||||||
|
Set<ConstraintViolation<T>> validate = VALID.validate(object, groups);
|
||||||
|
if (!validate.isEmpty()) {
|
||||||
|
throw new ConstraintViolationException("参数校验异常", validate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,95 @@
|
|||||||
|
package com.ruoyi.common.utils.listener;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.excel.context.AnalysisContext;
|
||||||
|
import com.alibaba.excel.event.AnalysisEventListener;
|
||||||
|
import com.alibaba.excel.exception.ExcelAnalysisException;
|
||||||
|
import com.alibaba.excel.exception.ExcelDataConvertException;
|
||||||
|
import com.ruoyi.common.utils.ValidatorUtils;
|
||||||
|
import com.ruoyi.common.utils.sql.JsonUtils;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import javax.validation.ConstraintViolation;
|
||||||
|
import javax.validation.ConstraintViolationException;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
@Slf4j
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DefaultExcelListener<T> extends AnalysisEventListener<T> implements ExcelListener<T>{
|
||||||
|
/**
|
||||||
|
* 是否Validator检验,默认为是
|
||||||
|
*/
|
||||||
|
private Boolean isValidate = Boolean.TRUE;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* excel 表头数据
|
||||||
|
*/
|
||||||
|
private Map<Integer, String> headMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入回执
|
||||||
|
*/
|
||||||
|
private ExcelResult<T> excelResult;
|
||||||
|
|
||||||
|
|
||||||
|
public DefaultExcelListener(boolean isValidate) {
|
||||||
|
this.excelResult = new DefaultExcelResult<>();
|
||||||
|
this.isValidate = isValidate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onException(Exception exception, AnalysisContext context) throws Exception {
|
||||||
|
String errMsg = null;
|
||||||
|
if (exception instanceof ExcelDataConvertException) {
|
||||||
|
// 如果是某一个单元格的转换异常 能获取到具体行号
|
||||||
|
ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception;
|
||||||
|
Integer rowIndex = excelDataConvertException.getRowIndex();
|
||||||
|
Integer columnIndex = excelDataConvertException.getColumnIndex();
|
||||||
|
errMsg = StrUtil.format("第{}行-第{}列-表头{}: 解析异常<br/>",
|
||||||
|
rowIndex + 1, columnIndex + 1, headMap.get(columnIndex));
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
|
log.error(errMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (exception instanceof ConstraintViolationException) {
|
||||||
|
ConstraintViolationException constraintViolationException = (ConstraintViolationException) exception;
|
||||||
|
Set<ConstraintViolation<?>> constraintViolations = constraintViolationException.getConstraintViolations();
|
||||||
|
|
||||||
|
}
|
||||||
|
excelResult.getErrorList().add(errMsg);
|
||||||
|
throw new ExcelAnalysisException(errMsg);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
|
||||||
|
this.headMap = headMap;
|
||||||
|
log.debug("解析到一条表头数据: {}", JsonUtils.toJsonString(headMap));
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void invoke(T data, AnalysisContext context) {
|
||||||
|
if (isValidate) {
|
||||||
|
ValidatorUtils.validate(data);
|
||||||
|
}
|
||||||
|
excelResult.getList().add(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
||||||
|
log.debug("所有数据解析完成!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext(AnalysisContext context) {
|
||||||
|
return super.hasNext(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ExcelResult<T> getExcelResult() {
|
||||||
|
return excelResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,74 @@
|
|||||||
|
package com.ruoyi.common.utils.listener;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.ruoyi.common.utils.listener.ExcelResult;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 默认excel返回对象
|
||||||
|
*
|
||||||
|
* @author Yjoioooo
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
public class DefaultExcelResult<T> implements ExcelResult<T> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据对象list
|
||||||
|
*/
|
||||||
|
@Setter
|
||||||
|
private List<T> list;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误信息列表
|
||||||
|
*/
|
||||||
|
@Setter
|
||||||
|
private List<String> errorList;
|
||||||
|
|
||||||
|
public DefaultExcelResult() {
|
||||||
|
this.list = new ArrayList<>();
|
||||||
|
this.errorList = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultExcelResult(List<T> list, List<String> errorList) {
|
||||||
|
this.list = list;
|
||||||
|
this.errorList = errorList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultExcelResult(ExcelResult<T> excelResult) {
|
||||||
|
this.list = excelResult.getList();
|
||||||
|
this.errorList = excelResult.getErrorList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<T> getList() {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getErrorList() {
|
||||||
|
return errorList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取导入回执
|
||||||
|
*
|
||||||
|
* @return 导入回执
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getAnalysis() {
|
||||||
|
int successCount = list.size();
|
||||||
|
int errorCount = errorList.size();
|
||||||
|
if (successCount == 0) {
|
||||||
|
return "读取失败,未解析到数据";
|
||||||
|
} else {
|
||||||
|
if (errorCount == 0) {
|
||||||
|
return StrUtil.format("恭喜您,全部读取成功!共{}条", successCount);
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package com.ruoyi.common.utils.listener;
|
||||||
|
|
||||||
|
import com.alibaba.excel.read.listener.ReadListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Excel 导入监听
|
||||||
|
*
|
||||||
|
* @author tzy
|
||||||
|
*/
|
||||||
|
public interface ExcelListener<T> extends ReadListener<T> {
|
||||||
|
|
||||||
|
ExcelResult<T> getExcelResult();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.ruoyi.common.utils.listener;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* excel返回对象
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
public interface ExcelResult<T> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对象列表
|
||||||
|
*/
|
||||||
|
List<T> getList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 错误列表
|
||||||
|
*/
|
||||||
|
List<String> getErrorList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入回执
|
||||||
|
*/
|
||||||
|
String getAnalysis();
|
||||||
|
}
|
||||||
113
evo/src/main/java/com/ruoyi/common/utils/sql/JsonUtils.java
Normal file
113
evo/src/main/java/com/ruoyi/common/utils/sql/JsonUtils.java
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package com.ruoyi.common.utils.sql;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.Dict;
|
||||||
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSON 工具类
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class JsonUtils {
|
||||||
|
|
||||||
|
private static final ObjectMapper OBJECT_MAPPER = SpringUtils.getBean(ObjectMapper.class);
|
||||||
|
|
||||||
|
public static ObjectMapper getObjectMapper() {
|
||||||
|
return OBJECT_MAPPER;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String toJsonString(Object object) {
|
||||||
|
if (ObjectUtil.isNull(object)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.writeValueAsString(object);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T parseObject(String text, Class<T> clazz) {
|
||||||
|
if (StringUtils.isEmpty(text)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.readValue(text, clazz);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T parseObject(byte[] bytes, Class<T> clazz) {
|
||||||
|
if (ArrayUtil.isEmpty(bytes)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.readValue(bytes, clazz);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T parseObject(String text, TypeReference<T> typeReference) {
|
||||||
|
if (StringUtils.isBlank(text)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.readValue(text, typeReference);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dict parseMap(String text) {
|
||||||
|
if (StringUtils.isBlank(text)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructType(Dict.class));
|
||||||
|
} catch (MismatchedInputException e) {
|
||||||
|
// 类型不匹配说明不是json
|
||||||
|
return null;
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Dict> parseArrayMap(String text) {
|
||||||
|
if (StringUtils.isBlank(text)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, Dict.class));
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> List<T> parseArray(String text, Class<T> clazz) {
|
||||||
|
if (StringUtils.isEmpty(text)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return OBJECT_MAPPER.readValue(text, OBJECT_MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -4,6 +4,8 @@ import java.io.Serializable;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
|
||||||
@ -17,42 +19,53 @@ public class BaseEntity implements Serializable
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 搜索值 */
|
/** 搜索值 */
|
||||||
|
@ExcelIgnore
|
||||||
private String searchValue;
|
private String searchValue;
|
||||||
|
|
||||||
/** 创建者 */
|
/** 创建者 */
|
||||||
|
@ExcelIgnore
|
||||||
private String createBy;
|
private String createBy;
|
||||||
|
|
||||||
/** 创建时间 */
|
/** 创建时间 */
|
||||||
|
@ExcelIgnore
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/** 更新者 */
|
/** 更新者 */
|
||||||
|
@ExcelIgnore
|
||||||
private String updateBy;
|
private String updateBy;
|
||||||
|
|
||||||
/** 更新时间 */
|
/** 更新时间 */
|
||||||
|
@ExcelIgnore
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
/** 备注 */
|
/** 备注 */
|
||||||
|
@ExcelIgnore
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/** 开始时间 */
|
/** 开始时间 */
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
|
@ExcelIgnore
|
||||||
private String beginTime;
|
private String beginTime;
|
||||||
|
|
||||||
/** 结束时间 */
|
/** 结束时间 */
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
|
@ExcelIgnore
|
||||||
private String endTime;
|
private String endTime;
|
||||||
|
|
||||||
/** 开始时间 */
|
/** 开始时间 */
|
||||||
|
@ExcelIgnore
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private String beginTimeTwo;
|
private String beginTimeTwo;
|
||||||
|
|
||||||
/** 结束时间 */
|
/** 结束时间 */
|
||||||
|
@ExcelIgnore
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private String endTimeTwo;
|
private String endTimeTwo;
|
||||||
|
|
||||||
/** 请求参数 */
|
/** 请求参数 */
|
||||||
|
@ExcelIgnore
|
||||||
private Map<String, Object> params;
|
private Map<String, Object> params;
|
||||||
|
|
||||||
public String getSearchValue()
|
public String getSearchValue()
|
||||||
|
|||||||
@ -177,7 +177,7 @@ public class CwAttendanceRecordDetailController extends BaseController
|
|||||||
//判断list中最后一条数据,如果最后一条数据的打卡类型为 上班卡(单班制),上班卡(双班制),上班卡(三班制)和加班卡,则返回 下班卡权限和撤销权限
|
//判断list中最后一条数据,如果最后一条数据的打卡类型为 上班卡(单班制),上班卡(双班制),上班卡(三班制)和加班卡,则返回 下班卡权限和撤销权限
|
||||||
CwAttendanceRecordDetail attendanceRecordDetail = list.get(list.size()-1);
|
CwAttendanceRecordDetail attendanceRecordDetail = list.get(list.size()-1);
|
||||||
if(null!=attendanceRecordDetail&&null!=attendanceRecordDetail.getButtonType()&&(attendanceRecordDetail.getButtonType().equals("上班卡(单班制)")||attendanceRecordDetail.getButtonType().equals("上班卡(双班制)")||attendanceRecordDetail.getButtonType().equals("上班卡(三班制)")||attendanceRecordDetail.getButtonType().equals("加班卡"))){
|
if(null!=attendanceRecordDetail&&null!=attendanceRecordDetail.getButtonType()&&(attendanceRecordDetail.getButtonType().equals("上班卡(单班制)")||attendanceRecordDetail.getButtonType().equals("上班卡(双班制)")||attendanceRecordDetail.getButtonType().equals("上班卡(三班制)")||attendanceRecordDetail.getButtonType().equals("加班卡"))){
|
||||||
cardV.setResult(0);
|
cardV.setResult(0);
|
||||||
cardV.setMsg("验证通过");
|
cardV.setMsg("验证通过");
|
||||||
//下班卡和撤销权限
|
//下班卡和撤销权限
|
||||||
cardD.setButton("000011000");
|
cardD.setButton("000011000");
|
||||||
|
|||||||
@ -1,15 +1,31 @@
|
|||||||
package com.ruoyi.project.management.controller;
|
package com.ruoyi.project.management.controller;
|
||||||
|
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.*;
|
||||||
import java.io.File;
|
import java.util.*;
|
||||||
import java.io.FileOutputStream;
|
import java.util.stream.Collectors;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.ArrayList;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import java.util.List;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.excel.EasyExcel;
|
||||||
|
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
|
||||||
|
import com.alibaba.excel.read.metadata.ReadSheet;
|
||||||
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||||
|
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.common.utils.listener.DefaultExcelListener;
|
||||||
|
import com.ruoyi.common.utils.sql.JsonUtils;
|
||||||
import com.ruoyi.project.management.domain.*;
|
import com.ruoyi.project.management.domain.*;
|
||||||
|
import com.ruoyi.project.management.domain.vo.PcRigidChainVO;
|
||||||
|
import com.ruoyi.project.management.mapper.PcRigidChainMapper;
|
||||||
import com.ruoyi.project.management.service.IImMaterialGroupService;
|
import com.ruoyi.project.management.service.IImMaterialGroupService;
|
||||||
import com.ruoyi.project.management.service.IImMaterialTypeService;
|
import com.ruoyi.project.management.service.IImMaterialTypeService;
|
||||||
import com.ruoyi.project.management.service.IImMeteringUnitService;
|
import com.ruoyi.project.management.service.IImMeteringUnitService;
|
||||||
|
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||||
|
import org.apache.poi.openxml4j.opc.PackageAccess;
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -37,6 +53,8 @@ import com.ruoyi.common.utils.ServletUtils;
|
|||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
|
|
||||||
|
import javax.servlet.ReadListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 销齿链型号Controller
|
* 销齿链型号Controller
|
||||||
*
|
*
|
||||||
@ -45,8 +63,7 @@ import com.ruoyi.framework.web.page.TableDataInfo;
|
|||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/management/rigidChain")
|
@RequestMapping("/management/rigidChain")
|
||||||
public class PcRigidChainController extends BaseController
|
public class PcRigidChainController extends BaseController {
|
||||||
{
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPcRigidChainService pcRigidChainService;
|
private IPcRigidChainService pcRigidChainService;
|
||||||
//用户标识信息
|
//用户标识信息
|
||||||
@ -60,14 +77,15 @@ public class PcRigidChainController extends BaseController
|
|||||||
//物料分组
|
//物料分组
|
||||||
@Autowired
|
@Autowired
|
||||||
private IImMaterialGroupService imMaterialGroupService;
|
private IImMaterialGroupService imMaterialGroupService;
|
||||||
|
@Autowired
|
||||||
|
private PcRigidChainMapper pcRigidChainMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询销齿链型号列表(报价时查询,型号去重)
|
* 查询销齿链型号列表(报价时查询,型号去重)
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
||||||
@GetMapping("/getTypeList")
|
@GetMapping("/getTypeList")
|
||||||
public TableDataInfo getTypeList()
|
public TableDataInfo getTypeList() {
|
||||||
{
|
|
||||||
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainByTypeList();
|
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainByTypeList();
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
@ -77,8 +95,7 @@ public class PcRigidChainController extends BaseController
|
|||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
||||||
@GetMapping("/getJourneyList")
|
@GetMapping("/getJourneyList")
|
||||||
public TableDataInfo getJourneyList(String type)
|
public TableDataInfo getJourneyList(String type) {
|
||||||
{
|
|
||||||
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainByJourneyList(type);
|
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainByJourneyList(type);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
}
|
}
|
||||||
@ -88,8 +105,7 @@ public class PcRigidChainController extends BaseController
|
|||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
@PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(PcRigidChain pcRigidChain)
|
public TableDataInfo list(PcRigidChain pcRigidChain) {
|
||||||
{
|
|
||||||
startPage();
|
startPage();
|
||||||
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
@ -98,23 +114,123 @@ public class PcRigidChainController extends BaseController
|
|||||||
/**
|
/**
|
||||||
* 导出销齿链型号列表
|
* 导出销齿链型号列表
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('management:rigidChain:export')")
|
|
||||||
@Log(title = "销齿链型号", businessType = BusinessType.EXPORT)
|
@Log(title = "销齿链型号", businessType = BusinessType.EXPORT)
|
||||||
@GetMapping("/export")
|
@GetMapping("/export")
|
||||||
public AjaxResult export(PcRigidChain pcRigidChain)
|
public AjaxResult export(PcRigidChain pcRigidChain) {
|
||||||
{
|
|
||||||
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
||||||
ExcelUtil<PcRigidChain> util = new ExcelUtil<PcRigidChain>(PcRigidChain.class);
|
ExcelUtil<PcRigidChain> util = new ExcelUtil<>(PcRigidChain.class);
|
||||||
return util.exportExcel(list, "rigidChain");
|
return util.exportExcel(list, "rigidChain");
|
||||||
}
|
}
|
||||||
|
@PreAuthorize("@ss.hasPermi('management:rigidChain:importVariableData')")
|
||||||
|
@PostMapping("/importVariableData")
|
||||||
|
public AjaxResult importVariableData(@RequestParam("file") MultipartFile file) throws Exception {
|
||||||
|
if (file == null || file.isEmpty()) {
|
||||||
|
return AjaxResult.error("上传文件不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将输入流转为字节数组以便多次读取
|
||||||
|
byte[] fileBytes = file.getBytes();
|
||||||
|
String originalFilename = file.getOriginalFilename();
|
||||||
|
if (originalFilename == null || originalFilename.isEmpty()) {
|
||||||
|
return AjaxResult.error("文件名不能为空");
|
||||||
|
}
|
||||||
|
String type = "";
|
||||||
|
|
||||||
|
if (originalFilename.contains("30D")) {
|
||||||
|
type = "30D";
|
||||||
|
} else if (originalFilename.contains("30S")) {
|
||||||
|
type = "30S";
|
||||||
|
} else if (originalFilename.contains("35E_R")) {
|
||||||
|
type = "35E";
|
||||||
|
} else if (originalFilename.contains("40R")) {
|
||||||
|
type = "40R";
|
||||||
|
} else if (originalFilename.contains("40S")) {
|
||||||
|
type = "40S";
|
||||||
|
} else if (originalFilename.contains("60R")) {
|
||||||
|
type = "60R";
|
||||||
|
} else if (originalFilename.contains("80R")) {
|
||||||
|
type = "80R";
|
||||||
|
} else if (originalFilename.contains("100R")) {
|
||||||
|
type = "100R";
|
||||||
|
} else if (originalFilename.contains("125R")) {
|
||||||
|
type = "125R";
|
||||||
|
}
|
||||||
|
|
||||||
|
//每个产品都会有 左,右,左+右
|
||||||
|
List<String> AxialDirection = Arrays.asList("R", "L", "L+R");
|
||||||
|
ExcelReaderBuilder read = EasyExcel.read(new ByteArrayInputStream(fileBytes));
|
||||||
|
for (ReadSheet readSheet : read.build().excelExecutor().sheetList()) {
|
||||||
|
DefaultExcelListener<PcRigidChainVO> excelListener = new DefaultExcelListener<>(true);
|
||||||
|
EasyExcel.read(new ByteArrayInputStream(fileBytes), PcRigidChainVO.class, excelListener)
|
||||||
|
.excelType(ExcelTypeEnum.XLS)
|
||||||
|
.sheet(readSheet.getSheetNo())
|
||||||
|
.headRowNumber(4)
|
||||||
|
.doRead();
|
||||||
|
|
||||||
|
List<PcRigidChainVO> list = excelListener.getExcelResult().getList();
|
||||||
|
List<PcRigidChain> pcRigidChainsToUpdate = new ArrayList<>();
|
||||||
|
|
||||||
|
// 批量查询数据库中的记录
|
||||||
|
List<PcRigidChain> chains = pcRigidChainMapper.selectPcRigidChainByType(type);
|
||||||
|
Map<String, PcRigidChain> chainMap = chains.stream()
|
||||||
|
.collect(Collectors.toMap(c -> c.getTypeName() + "_" + c.getAxialDirection(), c -> c));
|
||||||
|
|
||||||
|
for (String s : AxialDirection) {
|
||||||
|
for (PcRigidChainVO pcRigidChainVO : list) {
|
||||||
|
Long vOne = pcRigidChainVO.getVOne();
|
||||||
|
String sheetName = readSheet.getSheetName();
|
||||||
|
String box = "";
|
||||||
|
if (sheetName != null && sheetName.contains("单层") ) {
|
||||||
|
box = "S";
|
||||||
|
} else if (sheetName != null && sheetName.contains("双层") ) {
|
||||||
|
box = "D";
|
||||||
|
} else if (sheetName != null && sheetName.contains("三层")) {
|
||||||
|
box = "T";
|
||||||
|
}
|
||||||
|
|
||||||
|
String typeName = type + "/" + s + "-" + vOne + "/" + box;
|
||||||
|
|
||||||
|
logger.debug("此物料的完整图号:=====================>{}", typeName);
|
||||||
|
|
||||||
|
// 从缓存中查找
|
||||||
|
PcRigidChain dbChain = chainMap.get(typeName + "_" + s);
|
||||||
|
if (dbChain != null) {
|
||||||
|
BeanUtil.copyProperties(pcRigidChainVO, dbChain,"id");
|
||||||
|
dbChain.setJourney(vOne);
|
||||||
|
dbChain.setTypeName(typeName);
|
||||||
|
dbChain.setType(type);
|
||||||
|
dbChain.setBox(box);
|
||||||
|
dbChain.setAxialDirection(s);
|
||||||
|
// dbChain.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
dbChain.setCreateTime(new Date());
|
||||||
|
pcRigidChainsToUpdate.add(dbChain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pcRigidChainsToUpdate.isEmpty()) {
|
||||||
|
|
||||||
|
for (PcRigidChain pcRigidChain : pcRigidChainsToUpdate) {
|
||||||
|
int i = pcRigidChainMapper.updatePcRigidChain(pcRigidChain);
|
||||||
|
if (i > 0) {
|
||||||
|
logger.debug("物料:{}更新成功!!", pcRigidChain.getTypeName());
|
||||||
|
} else {
|
||||||
|
logger.debug("物料:{}更新失败!!", pcRigidChain.getTypeName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("没有找到要更新的数据");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return AjaxResult.success("导入成功!!");
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 获取销齿链型号详细信息
|
* 获取销齿链型号详细信息
|
||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('management:rigidChain:query')")
|
// @PreAuthorize("@ss.hasPermi('management:rigidChain:query')")
|
||||||
@GetMapping(value = "/{id}")
|
@GetMapping(value = "/{id}")
|
||||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||||
{
|
|
||||||
return AjaxResult.success(pcRigidChainService.selectPcRigidChainById(id));
|
return AjaxResult.success(pcRigidChainService.selectPcRigidChainById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,27 +240,27 @@ public class PcRigidChainController extends BaseController
|
|||||||
@PreAuthorize("@ss.hasPermi('management:rigidChain:add')")
|
@PreAuthorize("@ss.hasPermi('management:rigidChain:add')")
|
||||||
@Log(title = "销齿链型号", businessType = BusinessType.INSERT)
|
@Log(title = "销齿链型号", businessType = BusinessType.INSERT)
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public AjaxResult add(@RequestBody PcRigidChain pcRigidChain){
|
public AjaxResult add(@RequestBody PcRigidChain pcRigidChain) {
|
||||||
//防止出现null指针异常
|
//防止出现null指针异常
|
||||||
if(null==pcRigidChain){
|
if (null == pcRigidChain) {
|
||||||
return AjaxResult.error(600,"参数不能为空,请传参");
|
return AjaxResult.error(600, "参数不能为空,请传参");
|
||||||
}
|
}
|
||||||
//型号名称为必填,校验非空
|
//型号名称为必填,校验非空
|
||||||
if(null==pcRigidChain.getTypeName()||"".equals(pcRigidChain.getTypeName())){
|
if (null == pcRigidChain.getTypeName() || "".equals(pcRigidChain.getTypeName())) {
|
||||||
return AjaxResult.error(10,"请输入型号名称");
|
return AjaxResult.error(10, "请输入型号名称");
|
||||||
}
|
}
|
||||||
//拼接型号全称
|
//拼接型号全称
|
||||||
// String typeName = pcRigidChain.getType()+"/"+pcRigidChain.getAxialDirection()+"-"+pcRigidChain.getJourney()+"/"+pcRigidChain.getBox();
|
// String typeName = pcRigidChain.getType()+"/"+pcRigidChain.getAxialDirection()+"-"+pcRigidChain.getJourney()+"/"+pcRigidChain.getBox();
|
||||||
//判断型号是否存在
|
//判断型号是否存在
|
||||||
PcRigidChain rigidChain = pcRigidChainService.selectPcRigidChainByTypeName(pcRigidChain.getTypeName());
|
PcRigidChain rigidChain = pcRigidChainService.selectPcRigidChainByTypeName(pcRigidChain.getTypeName());
|
||||||
if(null!=rigidChain){
|
if (null != rigidChain) {
|
||||||
return AjaxResult.error(11, "型号名称已存在");
|
return AjaxResult.error(11, "型号名称已存在");
|
||||||
}
|
}
|
||||||
//行程
|
//行程
|
||||||
pcRigidChain.setJourney(pcRigidChain.getvOne());
|
pcRigidChain.setJourney(pcRigidChain.getvOne());
|
||||||
//产品名称
|
//产品名称
|
||||||
//pcRigidChain.setProductName("销齿链");
|
//pcRigidChain.setProductName("销齿链");
|
||||||
pcRigidChain.setDelFlag(0L);
|
pcRigidChain.setDelFlag(0L);
|
||||||
return toAjax(pcRigidChainService.insertPcRigidChain(pcRigidChain));
|
return toAjax(pcRigidChainService.insertPcRigidChain(pcRigidChain));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,15 +270,15 @@ public class PcRigidChainController extends BaseController
|
|||||||
@PreAuthorize("@ss.hasPermi('management:rigidChain:edit')")
|
@PreAuthorize("@ss.hasPermi('management:rigidChain:edit')")
|
||||||
@Log(title = "销齿链型号", businessType = BusinessType.UPDATE)
|
@Log(title = "销齿链型号", businessType = BusinessType.UPDATE)
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public AjaxResult edit(@RequestBody PcRigidChain pcRigidChain){
|
public AjaxResult edit(@RequestBody PcRigidChain pcRigidChain) {
|
||||||
if(null==pcRigidChain.getTypeName()||"".equals(pcRigidChain.getTypeName())){
|
if (null == pcRigidChain.getTypeName() || "".equals(pcRigidChain.getTypeName())) {
|
||||||
return AjaxResult.error(10,"请输入型号名称");
|
return AjaxResult.error(10, "请输入型号名称");
|
||||||
}
|
}
|
||||||
//判断型号是否存在
|
//判断型号是否存在
|
||||||
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
||||||
if(list.size()>0){
|
if (list.size() > 0) {
|
||||||
return AjaxResult.error(11, "型号名称已存在");
|
return AjaxResult.error(11, "型号名称已存在");
|
||||||
}
|
}
|
||||||
return toAjax(pcRigidChainService.updatePcRigidChain(pcRigidChain));
|
return toAjax(pcRigidChainService.updatePcRigidChain(pcRigidChain));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,9 +287,8 @@ public class PcRigidChainController extends BaseController
|
|||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('management:rigidChain:remove')")
|
@PreAuthorize("@ss.hasPermi('management:rigidChain:remove')")
|
||||||
@Log(title = "销齿链型号", businessType = BusinessType.DELETE)
|
@Log(title = "销齿链型号", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
public AjaxResult remove(@PathVariable Long[] ids)
|
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||||
{
|
|
||||||
return toAjax(pcRigidChainService.deletePcRigidChainByIds(ids));
|
return toAjax(pcRigidChainService.deletePcRigidChainByIds(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,18 +299,18 @@ public class PcRigidChainController extends BaseController
|
|||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
||||||
@RequestMapping("/getRigidChain")
|
@RequestMapping("/getRigidChain")
|
||||||
public AjaxResult selectRigidChain(PcRigidChain pcRigidChain){
|
public AjaxResult selectRigidChain(PcRigidChain pcRigidChain) {
|
||||||
if(null==pcRigidChain){
|
if (null == pcRigidChain) {
|
||||||
return AjaxResult.error("参数不能为空,请传参");
|
return AjaxResult.error("参数不能为空,请传参");
|
||||||
}
|
}
|
||||||
if(null==pcRigidChain.getTypeName()||"".equals(pcRigidChain.getTypeName().trim())){
|
if (null == pcRigidChain.getTypeName() || "".equals(pcRigidChain.getTypeName().trim())) {
|
||||||
return AjaxResult.error("参数不能为空,请传参");
|
return AjaxResult.error("参数不能为空,请传参");
|
||||||
}
|
}
|
||||||
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
List<PcRigidChain> list = pcRigidChainService.selectPcRigidChainList(pcRigidChain);
|
||||||
if(list.size()>0){
|
if (list.size() > 0) {
|
||||||
return AjaxResult.error("型号名称已存在");
|
return AjaxResult.error("型号名称已存在");
|
||||||
}
|
}
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -204,16 +319,16 @@ public class PcRigidChainController extends BaseController
|
|||||||
*/
|
*/
|
||||||
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
// @PreAuthorize("@ss.hasPermi('management:rigidChain:list')")
|
||||||
@RequestMapping("/getPcRigidChainByTypeName")
|
@RequestMapping("/getPcRigidChainByTypeName")
|
||||||
public AjaxResult getPcRigidChainByTypeName(String typeName){
|
public AjaxResult getPcRigidChainByTypeName(String typeName) {
|
||||||
//获取当前登录用户信息,查询当前登录用户的vip等级
|
//获取当前登录用户信息,查询当前登录用户的vip等级
|
||||||
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
|
LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
|
||||||
SysUser user = loginUser.getUser();
|
SysUser user = loginUser.getUser();
|
||||||
//获取用户vip的等级
|
//获取用户vip的等级
|
||||||
double vipLevel = user.getVipLevel();
|
double vipLevel = user.getVipLevel();
|
||||||
//根据型号全称查询型号信息
|
//根据型号全称查询型号信息
|
||||||
PcRigidChain rigidChain = pcRigidChainService.selectPcRigidChainByTypeName(typeName);
|
PcRigidChain rigidChain = pcRigidChainService.selectPcRigidChainByTypeName(typeName);
|
||||||
if(null==rigidChain){
|
if (null == rigidChain) {
|
||||||
return AjaxResult.error("暂无此型号");
|
return AjaxResult.error("暂无此型号");
|
||||||
}
|
}
|
||||||
rigidChain.setVipLevel(vipLevel);
|
rigidChain.setVipLevel(vipLevel);
|
||||||
return AjaxResult.success(rigidChain);
|
return AjaxResult.success(rigidChain);
|
||||||
@ -224,41 +339,41 @@ public class PcRigidChainController extends BaseController
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("/uploadLableNumber")
|
@RequestMapping("/uploadLableNumber")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult uploadLableNumber(@RequestParam("file") MultipartFile filePath){
|
public AjaxResult uploadLableNumber(@RequestParam("file") MultipartFile filePath) {
|
||||||
String originalFilename = filePath.getOriginalFilename();
|
String originalFilename = filePath.getOriginalFilename();
|
||||||
//校验文件后缀
|
//校验文件后缀
|
||||||
String postfix = originalFilename.substring(originalFilename.length()-3);
|
String postfix = originalFilename.substring(originalFilename.length() - 3);
|
||||||
String substring = originalFilename.substring(originalFilename.length()-4);
|
String substring = originalFilename.substring(originalFilename.length() - 4);
|
||||||
//判断是否是xlsx文件或xls文件
|
//判断是否是xlsx文件或xls文件
|
||||||
if("xls".equals(postfix)||"xlsx".equals(substring)){
|
if ("xls".equals(postfix) || "xlsx".equals(substring)) {
|
||||||
try {
|
try {
|
||||||
InputStream is = filePath.getInputStream();
|
InputStream is = filePath.getInputStream();
|
||||||
byte[] bytes = new byte[is.available()];
|
byte[] bytes = new byte[is.available()];
|
||||||
is.read(bytes);
|
is.read(bytes);
|
||||||
File file = new File("D:/lableExcel/"+originalFilename);
|
File file = new File("D:/lableExcel/" + originalFilename);
|
||||||
FileOutputStream fos = new FileOutputStream(file);
|
FileOutputStream fos = new FileOutputStream(file);
|
||||||
BufferedOutputStream bos = new BufferedOutputStream(fos);
|
BufferedOutputStream bos = new BufferedOutputStream(fos);
|
||||||
bos.write(bytes);
|
bos.write(bytes);
|
||||||
bos.flush();
|
bos.flush();
|
||||||
is.close();
|
is.close();
|
||||||
fos.close();
|
fos.close();
|
||||||
bos.close();
|
bos.close();
|
||||||
File files = new File(file.getAbsolutePath());
|
File files = new File(file.getAbsolutePath());
|
||||||
ArrayList<ArrayList<Object>> result = ExcelU.readExcel(files);
|
ArrayList<ArrayList<Object>> result = ExcelU.readExcel(files);
|
||||||
for (int i = 1; i < result.size(); i++) {
|
for (int i = 1; i < result.size(); i++) {
|
||||||
for (int j = 1; j < result.get(i).size(); j++) {
|
for (int j = 1; j < result.get(i).size(); j++) {
|
||||||
PcRigidChain rigidChain = pcRigidChainService.selectPcRigidChainByTypeName("XCL"+result.get(i).get(1).toString());
|
PcRigidChain rigidChain = pcRigidChainService.selectPcRigidChainByTypeName("XCL" + result.get(i).get(1).toString());
|
||||||
if(null!=rigidChain){
|
if (null != rigidChain) {
|
||||||
rigidChain.setLableNumber(result.get(i).get(0).toString());
|
rigidChain.setLableNumber(result.get(i).get(0).toString());
|
||||||
pcRigidChainService.updatePcRigidChain(rigidChain);
|
pcRigidChainService.updatePcRigidChain(rigidChain);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return AjaxResult.success("文件上传成功");
|
return AjaxResult.success("文件上传成功");
|
||||||
}
|
}
|
||||||
return AjaxResult.error("非excel文件不允许上传");
|
return AjaxResult.error("非excel文件不允许上传");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2033,7 +2033,7 @@ public class PwProductionBillController extends BaseController {
|
|||||||
}else{
|
}else{
|
||||||
arr += "F:/20"+code.substring(2,4);
|
arr += "F:/20"+code.substring(2,4);
|
||||||
}
|
}
|
||||||
arr += "/product/";
|
arr += "/";
|
||||||
//删除目录和文件夹
|
//删除目录和文件夹
|
||||||
DeleteFile.deleteDirectory(arr+code+"/zip");
|
DeleteFile.deleteDirectory(arr+code+"/zip");
|
||||||
//创建打包的文件夹,如果存在,先删除再创建
|
//创建打包的文件夹,如果存在,先删除再创建
|
||||||
|
|||||||
@ -38,13 +38,6 @@ public class PcRigidChain extends BaseEntity
|
|||||||
@Excel(name = "物料编码")
|
@Excel(name = "物料编码")
|
||||||
private String materialCode;
|
private String materialCode;
|
||||||
|
|
||||||
public String getMaterialCode() {
|
|
||||||
return materialCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMaterialCode(String materialCode) {
|
|
||||||
this.materialCode = materialCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 轴向 */
|
/** 轴向 */
|
||||||
@Excel(name = "轴向")
|
@Excel(name = "轴向")
|
||||||
@ -207,6 +200,7 @@ public class PcRigidChain extends BaseEntity
|
|||||||
|
|
||||||
/** 导向条长度2数量 */
|
/** 导向条长度2数量 */
|
||||||
@Excel(name = "导向条长度2数量")
|
@Excel(name = "导向条长度2数量")
|
||||||
|
//@Excel(name = "导向条2数量")
|
||||||
private Long vThirteen;
|
private Long vThirteen;
|
||||||
|
|
||||||
/** 导向条长度3 */
|
/** 导向条长度3 */
|
||||||
@ -215,6 +209,7 @@ public class PcRigidChain extends BaseEntity
|
|||||||
|
|
||||||
/** 导向条长度3数量 */
|
/** 导向条长度3数量 */
|
||||||
@Excel(name = "导向条长度3数量")
|
@Excel(name = "导向条长度3数量")
|
||||||
|
//@Excel(name = "导向条3数量")
|
||||||
private Long vFifteen;
|
private Long vFifteen;
|
||||||
|
|
||||||
/** 孔位总长1 */
|
/** 孔位总长1 */
|
||||||
@ -370,11 +365,11 @@ public class PcRigidChain extends BaseEntity
|
|||||||
private Long vFiftyThree;
|
private Long vFiftyThree;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
// @Excel(name = "重量")
|
@Excel(name = "铝箱1重量")
|
||||||
private Double gOne;
|
private Double gOne;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
// @Excel(name = "重量")
|
@Excel(name = "铝箱2重量")
|
||||||
private Double gTwo;
|
private Double gTwo;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
@ -386,15 +381,15 @@ public class PcRigidChain extends BaseEntity
|
|||||||
private Double gFour;
|
private Double gFour;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
// @Excel(name = "重量")
|
@Excel(name = "导向条1单重")
|
||||||
private Double gFive;
|
private Double gFive;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
// @Excel(name = "重量")
|
@Excel(name = "导向条2单重")
|
||||||
private Double gSix;
|
private Double gSix;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
// @Excel(name = "重量")
|
@Excel(name = "导向条3单重")
|
||||||
private Double gSeven;
|
private Double gSeven;
|
||||||
|
|
||||||
/** 重量 */
|
/** 重量 */
|
||||||
@ -453,6 +448,13 @@ public class PcRigidChain extends BaseEntity
|
|||||||
private String spline;
|
private String spline;
|
||||||
private Long number;
|
private Long number;
|
||||||
|
|
||||||
|
public String getMaterialCode() {
|
||||||
|
return materialCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaterialCode(String materialCode) {
|
||||||
|
this.materialCode = materialCode;
|
||||||
|
}
|
||||||
public void setId(Long id)
|
public void setId(Long id)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|||||||
@ -0,0 +1,452 @@
|
|||||||
|
package com.ruoyi.project.management.domain.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.ruoyi.framework.web.domain.BaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销齿链型号对象 pc_rigid_chain
|
||||||
|
*
|
||||||
|
* @author zhukangchao
|
||||||
|
* @date 2020-10-22
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class PcRigidChainVO extends BaseEntity {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 主键 */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 类型 */
|
||||||
|
@ExcelProperty("类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/** 型号全称 */
|
||||||
|
@ExcelProperty("型号")
|
||||||
|
private String typeName;
|
||||||
|
|
||||||
|
/** 产品id */
|
||||||
|
@ExcelProperty("产品id")
|
||||||
|
private Long productId;
|
||||||
|
|
||||||
|
/** 产品名称 */
|
||||||
|
@ExcelProperty("产品名称")
|
||||||
|
private String productName;
|
||||||
|
|
||||||
|
/** 物料编码 */
|
||||||
|
@ExcelProperty("物料编码")
|
||||||
|
private String materialCode;
|
||||||
|
|
||||||
|
|
||||||
|
/** 轴向 */
|
||||||
|
@ExcelProperty("轴向")
|
||||||
|
private String axialDirection;
|
||||||
|
|
||||||
|
/** 箱体 */
|
||||||
|
@ExcelProperty("箱体")
|
||||||
|
private String box;
|
||||||
|
|
||||||
|
/** 行程(mm) */
|
||||||
|
//@ExcelProperty("{V1}")
|
||||||
|
private Long journey;
|
||||||
|
|
||||||
|
/** 标记号 */
|
||||||
|
@ExcelProperty("标记号")
|
||||||
|
private String lableNumber;
|
||||||
|
|
||||||
|
/** L1(mm) */
|
||||||
|
@ExcelProperty("L1")
|
||||||
|
private Long lOne;
|
||||||
|
|
||||||
|
/** L2(mm) */
|
||||||
|
@ExcelProperty("L2")
|
||||||
|
private Long lTwo;
|
||||||
|
|
||||||
|
/** L3(mm) */
|
||||||
|
@ExcelProperty("L3")
|
||||||
|
private Long lThree;
|
||||||
|
|
||||||
|
/** 总重量 */
|
||||||
|
@ExcelProperty("总重量")
|
||||||
|
private Long sumWeight;
|
||||||
|
|
||||||
|
/** 链条自重 */
|
||||||
|
@ExcelProperty("链条自重")
|
||||||
|
private Long chainWeight;
|
||||||
|
|
||||||
|
/** 动载荷(KN) */
|
||||||
|
@ExcelProperty("动载荷")
|
||||||
|
private Long dynamicLoad;
|
||||||
|
|
||||||
|
/** 静载荷(KN) */
|
||||||
|
@ExcelProperty("静载荷")
|
||||||
|
private Long deadLoad;
|
||||||
|
|
||||||
|
/** 每转上升高度(mm) */
|
||||||
|
@ExcelProperty("每转上升高度")
|
||||||
|
private Long riseInHeightPerRevolution;
|
||||||
|
|
||||||
|
/** 速度(mm/s) */
|
||||||
|
@ExcelProperty("速度")
|
||||||
|
private Double speed;
|
||||||
|
|
||||||
|
/** 系统效率(%) */
|
||||||
|
@ExcelProperty("系统效率")
|
||||||
|
private Long efficiency;
|
||||||
|
|
||||||
|
/** 链条节距(mm) */
|
||||||
|
@ExcelProperty("链条节距")
|
||||||
|
private Long chainPitch;
|
||||||
|
|
||||||
|
/** 节圆半径(mm) */
|
||||||
|
@ExcelProperty("节圆半径")
|
||||||
|
private Long pitchRadius;
|
||||||
|
|
||||||
|
/** 最低高度(mm) */
|
||||||
|
@ExcelProperty("最低高度")
|
||||||
|
private Long minimumAltitude;
|
||||||
|
|
||||||
|
/** 一米链条自重(Kg/m) */
|
||||||
|
@ExcelProperty("一米链条自重")
|
||||||
|
private Double singleMeterChainWeight;
|
||||||
|
|
||||||
|
/** 驱动箱重量(Kg) */
|
||||||
|
@ExcelProperty("驱动箱重量")
|
||||||
|
private Long drivingBoxWeight;
|
||||||
|
|
||||||
|
/** 链箱重量(Kg/m) */
|
||||||
|
@ExcelProperty("链箱重量")
|
||||||
|
private Double chainBoxWeight;
|
||||||
|
|
||||||
|
/** 单价 */
|
||||||
|
@ExcelProperty("单价")
|
||||||
|
private Double univalence;
|
||||||
|
|
||||||
|
/** 图片 */
|
||||||
|
@ExcelProperty("图片")
|
||||||
|
private String picture;
|
||||||
|
|
||||||
|
/** 部件id集合 */
|
||||||
|
@ExcelProperty("部件id集合")
|
||||||
|
private String partId;
|
||||||
|
|
||||||
|
/** 备用字段1 */
|
||||||
|
@ExcelProperty("备用字段1")
|
||||||
|
private String sparedOne;
|
||||||
|
|
||||||
|
/** 备用字段2 */
|
||||||
|
@ExcelProperty("备用字段2")
|
||||||
|
private String sparedTwo;
|
||||||
|
|
||||||
|
/** 备用字段3 */
|
||||||
|
@ExcelProperty("备用字段3")
|
||||||
|
private Long sparedThree;
|
||||||
|
|
||||||
|
/** 备用字段4 */
|
||||||
|
@ExcelProperty("备用字段4")
|
||||||
|
private Long sparedFour;
|
||||||
|
|
||||||
|
/** 删除标记(0:未删除,1:已删除) */
|
||||||
|
private Long delFlag;
|
||||||
|
|
||||||
|
/** 行程 */
|
||||||
|
@ExcelProperty("{V1}")
|
||||||
|
private Long vOne;
|
||||||
|
|
||||||
|
/** 设备总长 */
|
||||||
|
@ExcelProperty("{V2}")
|
||||||
|
private Long vTwo;
|
||||||
|
|
||||||
|
/** 地脚位置1 */
|
||||||
|
@ExcelProperty("{V3}")
|
||||||
|
private Long vThree;
|
||||||
|
|
||||||
|
/** 地脚位置2 */
|
||||||
|
@ExcelProperty("{V4}")
|
||||||
|
private Long vFour;
|
||||||
|
|
||||||
|
/** 箱体装配长度 */
|
||||||
|
@ExcelProperty("{V5}")
|
||||||
|
private Long vFive;
|
||||||
|
|
||||||
|
/** 箱体地脚位置1 */
|
||||||
|
@ExcelProperty("{V6}")
|
||||||
|
private Long vSix;
|
||||||
|
|
||||||
|
/** 箱体地脚位置2 */
|
||||||
|
@ExcelProperty("{V7}")
|
||||||
|
private Long vSeven;
|
||||||
|
|
||||||
|
/** 铝箱长度1 */
|
||||||
|
@ExcelProperty("{V8}")
|
||||||
|
private Long vEight;
|
||||||
|
|
||||||
|
/** 铝箱长度2 */
|
||||||
|
@ExcelProperty("{V9}")
|
||||||
|
private Long vNine;
|
||||||
|
|
||||||
|
/** 导向条长度1 */
|
||||||
|
@ExcelProperty("{V10}")
|
||||||
|
private Long vTen;
|
||||||
|
|
||||||
|
/** 导向条长度1数量 */
|
||||||
|
@ExcelProperty("{V11}")
|
||||||
|
private Long vEleven;
|
||||||
|
|
||||||
|
/** 导向条长度2 */
|
||||||
|
@ExcelProperty("{V12}")
|
||||||
|
private Long vTwelve;
|
||||||
|
|
||||||
|
/** 导向条长度2数量 */
|
||||||
|
@ExcelProperty("{V13}")
|
||||||
|
//@Excel(name = "导向条2数量")
|
||||||
|
private Long vThirteen;
|
||||||
|
|
||||||
|
/** 导向条长度3 */
|
||||||
|
@ExcelProperty("{V14}")
|
||||||
|
private Long vFourteen;
|
||||||
|
|
||||||
|
/** 导向条长度3数量 */
|
||||||
|
@ExcelProperty("{V15}")
|
||||||
|
//@Excel(name = "导向条3数量")
|
||||||
|
private Long vFifteen;
|
||||||
|
|
||||||
|
/** 孔位总长1 */
|
||||||
|
@ExcelProperty("{V16}")
|
||||||
|
private Long vSixteen;
|
||||||
|
|
||||||
|
/** 间隔数量1 */
|
||||||
|
@ExcelProperty("{V17}")
|
||||||
|
private Long vSeveteen;
|
||||||
|
|
||||||
|
/** 孔位总长2 */
|
||||||
|
@ExcelProperty("{V18}")
|
||||||
|
private Long vEighteen;
|
||||||
|
|
||||||
|
/** 间隔数量2 */
|
||||||
|
@ExcelProperty("{V19}")
|
||||||
|
private Long vNineteen;
|
||||||
|
|
||||||
|
/** 铆钉数量 */
|
||||||
|
@ExcelProperty("{V20}")
|
||||||
|
private Long vTwenty;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V21}")
|
||||||
|
private Long vTwentyOne;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V22}")
|
||||||
|
private Long vTwentyTwo;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V23}")
|
||||||
|
private Long vTwentyThree;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V24}")
|
||||||
|
private Long vTwentyFour;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V25}")
|
||||||
|
private Long vTwentyFive;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V26}")
|
||||||
|
private Long vTwentySix;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V27}")
|
||||||
|
private Long vTwentySeven;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V28}")
|
||||||
|
private Long vTwentyEight;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V29}")
|
||||||
|
private Long vTwentyNine;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V30}")
|
||||||
|
private Long vThirty;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V31}")
|
||||||
|
private Long vThirtyOne;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V32}")
|
||||||
|
private Long vThirtyTwo;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V33}")
|
||||||
|
private Long vThirtyThree;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V34}")
|
||||||
|
private Long vThirtyFour;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V35}")
|
||||||
|
private Long vThirtyFive;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V36}")
|
||||||
|
private Long vThirtySix;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V37}")
|
||||||
|
private Long vThirtySeven;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V38}")
|
||||||
|
private Long vThirtyEight;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V39}")
|
||||||
|
private Long vThirtyNine;
|
||||||
|
|
||||||
|
/** 待定义 */
|
||||||
|
@ExcelProperty("{V40}")
|
||||||
|
private Long vForty;
|
||||||
|
|
||||||
|
/** X1 */
|
||||||
|
@ExcelProperty("{V41}")
|
||||||
|
private Long vFortyOne;
|
||||||
|
|
||||||
|
/** X2 */
|
||||||
|
@ExcelProperty("{V42}")
|
||||||
|
private Long vFortyTwo;
|
||||||
|
|
||||||
|
/** X3 */
|
||||||
|
@ExcelProperty("{V43}")
|
||||||
|
private Long vFortyThree;
|
||||||
|
|
||||||
|
/** X4 */
|
||||||
|
@ExcelProperty("{V44}")
|
||||||
|
private Long vFortyFour;
|
||||||
|
|
||||||
|
/** X5 */
|
||||||
|
@ExcelProperty("{V45}")
|
||||||
|
private Long vFortyFive;
|
||||||
|
|
||||||
|
/** X6 */
|
||||||
|
@ExcelProperty("{V46}")
|
||||||
|
private Long vFortySix;
|
||||||
|
|
||||||
|
/** X7 */
|
||||||
|
@ExcelProperty("{V48}")
|
||||||
|
private Long vFortySeven;
|
||||||
|
|
||||||
|
/** X8 */
|
||||||
|
@ExcelProperty("V48")
|
||||||
|
private Long vFortyEight;
|
||||||
|
|
||||||
|
/** X9 */
|
||||||
|
@ExcelProperty("{V49}")
|
||||||
|
private Long vFortyNine;
|
||||||
|
|
||||||
|
/** X10 */
|
||||||
|
@ExcelProperty("{V50}")
|
||||||
|
private Long vFifty;
|
||||||
|
|
||||||
|
/** X11 */
|
||||||
|
@ExcelProperty("{V51}")
|
||||||
|
private Long vFiftyOne;
|
||||||
|
|
||||||
|
/** X12 */
|
||||||
|
@ExcelProperty("{V52}")
|
||||||
|
private Long vFiftyTwo;
|
||||||
|
|
||||||
|
/** X13 */
|
||||||
|
@ExcelProperty("{V53}")
|
||||||
|
private Long vFiftyThree;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G1}")
|
||||||
|
private Double gOne;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G2}")
|
||||||
|
private Double gTwo;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G3}")
|
||||||
|
private Double gThree;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G4}")
|
||||||
|
private Double gFour;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G5}")
|
||||||
|
private Double gFive;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G6}")
|
||||||
|
private Double gSix;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G7}")
|
||||||
|
private Double gSeven;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G8}")
|
||||||
|
private Double gEight;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G9}")
|
||||||
|
private Double gNine;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G10}")
|
||||||
|
private Double gTen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G11}")
|
||||||
|
private Double gEleven;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G12}")
|
||||||
|
private Double gTwelve;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G13}")
|
||||||
|
private Double gThirteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G14}")
|
||||||
|
private Double gFourteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G15}")
|
||||||
|
private Double gFifteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G16}")
|
||||||
|
private Double gSixteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G17}")
|
||||||
|
private Double gSeveteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G18}")
|
||||||
|
private Double gEighteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G19}")
|
||||||
|
private Double gNineteen;
|
||||||
|
|
||||||
|
/** 重量 */
|
||||||
|
@ExcelProperty("{G20}")
|
||||||
|
private Double gTwenty;
|
||||||
|
|
||||||
|
private Double vipLevel;
|
||||||
|
private String spline;
|
||||||
|
private Long number;
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@ package com.ruoyi.project.management.mapper;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.project.management.domain.PcRigidChain;
|
import com.ruoyi.project.management.domain.PcRigidChain;
|
||||||
|
import com.ruoyi.project.management.domain.vo.PcRigidChainVO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 销齿链型号Mapper接口
|
* 销齿链型号Mapper接口
|
||||||
@ -42,6 +43,7 @@ public interface PcRigidChainMapper
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int updatePcRigidChain(PcRigidChain pcRigidChain);
|
public int updatePcRigidChain(PcRigidChain pcRigidChain);
|
||||||
|
public int updatePcRigidChainVO(PcRigidChainVO pcRigidChain);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除销齿链型号
|
* 删除销齿链型号
|
||||||
@ -80,4 +82,6 @@ public interface PcRigidChainMapper
|
|||||||
public List<PcRigidChain> selectPcRigidChainByJourneyList(String type);
|
public List<PcRigidChain> selectPcRigidChainByJourneyList(String type);
|
||||||
|
|
||||||
public List<PcRigidChain> selectPcRigidChainByType(String type);
|
public List<PcRigidChain> selectPcRigidChainByType(String type);
|
||||||
|
|
||||||
|
int updateBatchById(List<PcRigidChain> pcRigidChainsToUpdate);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -78,4 +78,6 @@ public interface IPcRigidChainService
|
|||||||
public List<PcRigidChain> selectPcRigidChainByJourneyList(String type);
|
public List<PcRigidChain> selectPcRigidChainByJourneyList(String type);
|
||||||
|
|
||||||
public List<PcRigidChain> selectPcRigidChainByType(String type);
|
public List<PcRigidChain> selectPcRigidChainByType(String type);
|
||||||
|
|
||||||
|
int updateBatchById(List<PcRigidChain> pcRigidChainsToUpdate);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import com.ruoyi.project.management.service.IPcRigidChainService;
|
|||||||
* @date 2020-06-09
|
* @date 2020-06-09
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class PcRigidChainServiceImpl implements IPcRigidChainService
|
public class PcRigidChainServiceImpl implements IPcRigidChainService
|
||||||
{
|
{
|
||||||
@Autowired
|
@Autowired
|
||||||
private PcRigidChainMapper pcRigidChainMapper;
|
private PcRigidChainMapper pcRigidChainMapper;
|
||||||
@ -128,4 +128,10 @@ public class PcRigidChainServiceImpl implements IPcRigidChainService
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int updateBatchById(List<PcRigidChain> pcRigidChainsToUpdate) {
|
||||||
|
//批量更新
|
||||||
|
return pcRigidChainMapper.updateBatchById(pcRigidChainsToUpdate);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -652,5 +652,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<include refid="selectPcRigidChainVo" />
|
<include refid="selectPcRigidChainVo" />
|
||||||
where type = #{type} and del_flag = 0
|
where type = #{type} and del_flag = 0
|
||||||
</select>
|
</select>
|
||||||
|
<!--根据id 批量更新 -->
|
||||||
|
<update id="updateBatchById" parameterType="java.util.List">
|
||||||
|
update pc_rigid_chain
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user