提交 976a708b 作者: 李超杰

解决辅材审批模板

父级 927c5927
package com.starcharge.wios.Import;
import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.date.DateUtil;
import jxl.*;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ihidea.core.support.SpringContextLoader;
import com.ihidea.core.support.exception.ServiceException;
import com.ihidea.core.support.servlet.ServletHolderFilter;
import com.ihidea.core.util.FileUtilsEx;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jxl.*;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* excel导入控制类
......@@ -33,50 +30,50 @@ import io.swagger.annotations.ApiOperation;
@RestController
@Api(tags = "导入模块")
public class ImportController {
/**
* excel导入数据解析
*
* @param file excel 表格
* @param serviceName 服务类型名称
* @param needUpload 是否需要上传文件至oss
* @param storeName 上传文件存储bucket
* @param file excel 表格
* @param serviceName 服务类型名称
* @param needUpload 是否需要上传文件至oss
* @param storeName 上传文件存储bucket
* @param uploadFilePath 上传文件路径
* @return 导入异常信息
*/
@PostMapping(value = "import.do")
@ApiOperation(value = "导入excel")
@ApiImplicitParams({
@ApiImplicitParam(name = "serviceName", value = "service名称", dataType = "String", paramType = "query", required = true),})
@ApiImplicitParam(name = "serviceName", value = "service名称", dataType = "String", paramType = "query", required = true),})
public List<?> importCommon(HttpServletRequest request, String serviceName) {
Map<String, Object> param = ServletHolderFilter.getContext().getParamMap();
List<Object[]> fileList = new ArrayList<Object[]>();
for (String nameKey : param.keySet()) {
Object _obj = param.get(nameKey);
if (_obj != null && _obj instanceof List && ((List)_obj).size() > 0) {
Object fileItem = ((List)_obj).get(0);
if (_obj != null && _obj instanceof List && ((List) _obj).size() > 0) {
Object fileItem = ((List) _obj).get(0);
if (fileItem instanceof DiskFileItem) {
// 如果是servlet2上传的文件
List<DiskFileItem> diskFileItemList = (List<DiskFileItem>)_obj;
List<DiskFileItem> diskFileItemList = (List<DiskFileItem>) _obj;
for (DiskFileItem file : diskFileItemList) {
String fileName = FileUtilsEx.getFileNameByPath(file.getName());
byte[] fileContent = file.get();
fileList.add(new Object[]{fileName, fileContent});
}
}
}
}
Import importClass = null;
if (!StringUtils.isEmpty(serviceName)) {
// 获取serviceName对应的bean
......@@ -86,10 +83,10 @@ public class ImportController {
List<Object> list = new ArrayList<>();
// if (!file.isEmpty()) {
Workbook rwb = null;
try {
// 输入流获取对象
rwb = Workbook.getWorkbook(new ByteArrayInputStream((byte[])fileList.get(0)[1]));
rwb = Workbook.getWorkbook(new ByteArrayInputStream((byte[]) fileList.get(0)[1]));
// 获取页数数组
Sheet[] sheetArr = rwb.getSheets();
for (Sheet rs : sheetArr) {
......@@ -101,10 +98,10 @@ public class ImportController {
// 每行单元数组
Cell[] cells = rs.getRow(i);
for (Cell cell : cells) {
if(cell.getType() == CellType.DATE){
DateCell dc = (DateCell)cell;
if (cell.getType() == CellType.DATE) {
DateCell dc = (DateCell) cell;
cellList.add(DateUtil.date(dc.getDate()).toDateStr());
}else{
} else {
cellList.add(cell.getContents());
}
}
......@@ -137,4 +134,36 @@ public class ImportController {
return list;
}
}
public List<?> importCommon2(HttpServletRequest request, String serviceName) {
Map<String, Object> param = ServletHolderFilter.getContext().getParamMap();
List<Object[]> fileList = new ArrayList<>();
for (String nameKey : param.keySet()) {
Object _obj = param.get(nameKey);
if (_obj instanceof List && !((List<?>) _obj).isEmpty()) {
Object fileItem = ((List<?>) _obj).get(0);
if (fileItem instanceof DiskFileItem) {
// 如果是servlet2上传的文件
List<DiskFileItem> diskFileItemList = (List<DiskFileItem>) _obj;
for (DiskFileItem file : diskFileItemList) {
String fileName = FileUtilsEx.getFileNameByPath(file.getName());
byte[] fileContent = file.get();
fileList.add(new Object[]{fileName, fileContent});
}
}
}
}
return null;
}
}
package com.starcharge.wios.Import.impl;
import com.ihidea.core.support.exception.ServiceException;
import com.starcharge.wios.Import.Import;
import com.starcharge.wios.dao.entity.Tauxiliarymaterials;
import com.starcharge.wios.dao.mappers.TauxiliarymaterialsMapper;
......@@ -10,6 +9,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Objects;
/**
* @projectName:wios
......@@ -22,38 +22,47 @@ import java.util.List;
public class AuxiliarymaterialsCheckImport implements Import {
@Autowired
private TauxiliarymaterialsMapper tauxiliarymaterialsMapper;
@Override
public List<?> handle(List<Object> list) {
for(int i=1;i<list.size();i++){
List<String> rowdata = (List<String>)list.get(i);
for (int i = 1; i < list.size(); i++) {
List<String> rowdata = (List<String>) list.get(i);
if(rowdata.size()<2||StringUtils.isEmpty(rowdata.get(1))){
if (rowdata.size() < 2 || StringUtils.isEmpty(rowdata.get(1))) {
rowdata.add("error:批准数量不能为空");
continue;
}
try{
try {
Float.parseFloat(rowdata.get(1));
}catch (Exception e){
} catch (Exception e) {
rowdata.add("error:批准数量必须是数字");
continue;
}
if(StringUtils.isEmpty(rowdata.get(0))){
String s = rowdata.get(1);
rowdata.remove(1);
if (StringUtils.isEmpty(rowdata.get(0))) {
rowdata.add("error:申请单号不能为空");
continue;
}
Tauxiliarymaterials exist=this.tauxiliarymaterialsMapper.selectByApplyOrder(rowdata.get(0));
if(exist==null){
Tauxiliarymaterials exist = this.tauxiliarymaterialsMapper.selectByApplyOrder(rowdata.get(0));
if (Objects.isNull(exist)) {
rowdata.add("error:找不到辅材申请单");
continue;
}else if(TauxiliarymaterialStatusEnum.getEnumByName(0,exist.getApplyStatus()).getValue()!=1){
rowdata.add("error:辅材申请单:"+exist.getApplyOrder()+" 状态必须是已申请");
}
TauxiliarymaterialStatusEnum enumByName = TauxiliarymaterialStatusEnum.getEnumByName(0, exist.getApplyStatus());
if (Objects.nonNull(enumByName) && enumByName.getValue() != 1) {
rowdata.add("error:辅材申请单:" + exist.getApplyOrder() + " 状态必须是已申请");
continue;
}
if (Integer.parseInt(s) > Integer.parseInt(exist.getApplyQuantity())) {
rowdata.add("error:批准数量不能大于申请数量");
continue;
}
rowdata.add(exist.getMaterialCode());
rowdata.add(exist.getMaterialName());
rowdata.add(exist.getApprovedQuantity());
rowdata.add(exist.getApplyQuantity());
rowdata.add(s);
}
return list;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论