|
@@ -1,5 +1,7 @@
|
|
|
package org.jeecg.modules.saleCode.service.impl;
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
+import com.alibaba.excel.read.builder.ExcelReaderBuilder;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -10,6 +12,8 @@ import com.google.gson.JsonObject;
|
|
|
import io.micrometer.core.instrument.util.StringUtils;
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
|
import org.apache.logging.log4j.util.Strings;
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
+import org.apache.poi.ss.usermodel.*;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
@@ -42,12 +46,14 @@ import org.jeecg.modules.saleCode.vo.PdfCell;
|
|
|
import org.jeecg.modules.saleCode.vo.PdfTable;
|
|
|
import org.jeecg.modules.system.mapper.SysDictMapper;
|
|
|
import org.jeecgframework.poi.excel.annotation.Excel;
|
|
|
+import org.jeecgframework.poi.util.ExcelUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import java.io.InputStream;
|
|
|
import java.io.Serializable;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
@@ -560,6 +566,8 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
case "7" :
|
|
|
parseWarine(file);
|
|
|
break;
|
|
|
+ case "8" :
|
|
|
+ parseLemissoler(file);
|
|
|
case "9" :
|
|
|
parseTechnava(file);
|
|
|
break;
|
|
@@ -1169,6 +1177,78 @@ public class SaleInterfaceSyncServiceImpl extends ServiceImpl<SaleInterfaceSyncM
|
|
|
saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
}
|
|
|
|
|
|
+ public void parseLemissoler(MultipartFile file) throws Exception {
|
|
|
+ SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|
|
|
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ String id = UUIDGenerator.generate();
|
|
|
+ saleInterfaceSync.setId(id);
|
|
|
+ saleInterfaceSync.setCreateBy(sysUser.getUsername());
|
|
|
+ InputStream inputStream = file.getInputStream();
|
|
|
+ Workbook workbook = new HSSFWorkbook(inputStream);
|
|
|
+ Sheet sheet = workbook.getSheetAt(0);
|
|
|
+ List<String> fields = new ArrayList<>();
|
|
|
+ int headerNum = 0;
|
|
|
+ for(int index = 0; index <= sheet.getLastRowNum(); index ++) {
|
|
|
+ Row row = sheet.getRow(index);
|
|
|
+ for(int cellIndex = 0; cellIndex <= sheet.getLastRowNum(); cellIndex ++) {
|
|
|
+ Cell cell = row.getCell(cellIndex);
|
|
|
+ if(cell != null) {
|
|
|
+ cell.setCellType(CellType.STRING);
|
|
|
+ if("Ship Name".equals(cell.getStringCellValue())) {
|
|
|
+ if(row.getCell(cellIndex + 1) != null) {
|
|
|
+ saleInterfaceSync.setVesselImo(row.getCell(cellIndex + 1).getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if("HazMat Division".equals(cell.getStringCellValue())) {
|
|
|
+ headerNum = index;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Row headerRow = sheet.getRow(headerNum);
|
|
|
+ for(int i = 0; i < sheet.getLastRowNum() + 1; i ++) {
|
|
|
+ Cell cell = headerRow.getCell(i);
|
|
|
+ if(cell != null) {
|
|
|
+ cell.setCellType(CellType.STRING);
|
|
|
+ fields.add(i, cell.getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+
|
|
|
+ for(int index = headerNum + 1; index <= sheet.getLastRowNum(); index ++) {
|
|
|
+ Row row = sheet.getRow(index);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ for(int cellIndex = 0; cellIndex <= fields.size(); cellIndex ++) {
|
|
|
+ Cell cell = row.getCell(cellIndex);
|
|
|
+ if(cell != null) {
|
|
|
+ cell.setCellType(CellType.STRING);
|
|
|
+ jsonObject.put(fields.get(cellIndex), cell.getStringCellValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(Strings.isBlank(jsonObject.getString("Line No"))) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
+ }
|
|
|
+
|
|
|
+ for(Object node : jsonArray) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(String.valueOf(node));
|
|
|
+ if(jsonObject.size() >= 0) {
|
|
|
+ SaleInterfaceItem saleInterfaceItem = new SaleInterfaceItem();
|
|
|
+ saleInterfaceItem.setDescription(jsonObject.getString("Description"));
|
|
|
+ saleInterfaceItem.setQuantity(jsonObject.getString("Orig Qty"));
|
|
|
+ saleInterfaceItem.setComment(jsonObject.getString("Manufacturer"));
|
|
|
+ saleInterfaceItem.setHeadId(id);
|
|
|
+ saleInterfaceItemMapper.insert(saleInterfaceItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ saleInterfaceSyncMapper.insert(saleInterfaceSync);
|
|
|
+ inputStream.close();
|
|
|
+ }
|
|
|
|
|
|
public void parseTechnava(MultipartFile file) throws Exception{
|
|
|
SaleInterfaceSync saleInterfaceSync = new SaleInterfaceSync();
|