导入物料
This commit is contained in:
@@ -16,6 +16,7 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@@ -101,4 +102,12 @@ public class MaterialbaseController {
|
||||
public ResponseEntity<Object> getProductSeries() {
|
||||
return new ResponseEntity<>(materialBaseService.getProductSeries("1527572574832300032"), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("导入物料信息")
|
||||
@ApiOperation("导入物料信息")
|
||||
@PostMapping("/excelImport")
|
||||
public ResponseEntity<Object> excelImport(@RequestBody MultipartFile file) {
|
||||
materialBaseService.excelImport(file);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.basedata.service.dto.MaterialbaseDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -94,4 +95,5 @@ public interface MaterialbaseService {
|
||||
JSONArray getProductSeries(String parent_class_id);
|
||||
|
||||
|
||||
void excelImport(MultipartFile file);
|
||||
}
|
||||
|
||||
@@ -7,12 +7,17 @@ import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelReader;
|
||||
import com.alibaba.excel.read.metadata.ReadSheet;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.common.utils.FileUtil;
|
||||
import org.nl.modules.common.utils.SecurityUtils;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
@@ -21,10 +26,15 @@ import org.nl.wms.basedata.eum.MaterOptTypeEnum;
|
||||
import org.nl.wms.basedata.service.ClassstandardService;
|
||||
import org.nl.wms.basedata.service.MaterialbaseService;
|
||||
import org.nl.wms.basedata.service.dto.MaterialbaseDto;
|
||||
import org.nl.wms.util.CommonUtils;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -240,4 +250,49 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
||||
return newParentArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void excelImport(MultipartFile multipartFile) {
|
||||
File file = FileUtil.toFile(multipartFile);
|
||||
String type = FileUtil.getType(file);
|
||||
if (!"xlsx".equals(type) && !"xls".equals(type)) {
|
||||
throw new BadRequestException("只能上传 xls 或 xlsx 文件");
|
||||
}
|
||||
ExcelReader excelReader = EasyExcel.read(file).build();
|
||||
List<ReadSheet> sheets = excelReader.excelExecutor().sheetList();
|
||||
|
||||
WQLObject materialTable = WQLObject.getWQLObject("md_me_materialbase");
|
||||
JSONObject material = new JSONObject();
|
||||
Long userId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
for (ReadSheet sheet : sheets) {
|
||||
List<Map<Integer, String>> materials = EasyExcel.read(file).sheet(sheet.getSheetNo()).doReadSync();
|
||||
for (Map<Integer, String> materialMap : materials) {
|
||||
material.put("material_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
String material_code = materialMap.get(1);
|
||||
material.put("material_code", material_code);
|
||||
material.put("material_name", materialMap.get(2));
|
||||
material.put("base_unit", materialMap.get(3));
|
||||
material.put("pack_qty", materialMap.get(4) == null ? 0 : Double.parseDouble(materialMap.get(4)));
|
||||
|
||||
material.put("is_used", '1');
|
||||
material.put("is_delete", '0');
|
||||
if (ObjectUtil.isNotEmpty(materialTable.query("material_code = '" + material_code + "'").uniqueResult(0))) {
|
||||
material.put("update_optid", userId);
|
||||
material.put("update_optname", nickName);
|
||||
material.put("update_time", now);
|
||||
materialTable.update(material);
|
||||
} else {
|
||||
material.put("create_id", userId);
|
||||
material.put("create_name", nickName);
|
||||
material.put("create_time", now);
|
||||
material.put("update_optid", userId);
|
||||
material.put("update_optname", nickName);
|
||||
material.put("update_time", now);
|
||||
materialTable.insert(material);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user