|
@@ -17,6 +17,10 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
import org.apache.poi.ss.usermodel.CellType;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -318,13 +322,13 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
inputStream.close();
|
|
|
outputStream.close();
|
|
|
//解析表格
|
|
|
- HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
|
|
|
+ XSSFWorkbook workbook = new XSSFWorkbook(file);
|
|
|
//我们只需要第一个sheet
|
|
|
- HSSFSheet sheet = workbook.getSheetAt(0);
|
|
|
+ XSSFSheet sheet = workbook.getSheetAt(0);
|
|
|
//由于第一行需要指明列对应的标题
|
|
|
int rowNum = sheet.getLastRowNum();
|
|
|
//获取当前表单模板 校验规则
|
|
|
- SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCode, "Product").eq(SysForm::getCompanyId, companyId).eq(SysForm::getIsCurrent, 1));
|
|
|
+ SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCode, "Order").eq(SysForm::getCompanyId, companyId).eq(SysForm::getIsCurrent, 1));
|
|
|
if(sysForm==null){
|
|
|
msg.setError("当前模块未配置自定义模板,需先完成配置");
|
|
|
return msg;
|
|
@@ -354,7 +358,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
List<String> userNameList=new ArrayList<>();
|
|
|
HttpRespMsg respMsg=new HttpRespMsg();
|
|
|
for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
|
|
|
- HSSFRow row = sheet.getRow(rowIndex);
|
|
|
+ XSSFRow row = sheet.getRow(rowIndex);
|
|
|
if (row == null) {
|
|
|
continue;
|
|
|
}
|
|
@@ -366,19 +370,19 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
int cellNum = row.getLastCellNum();
|
|
|
for (int i = 0; i < cellNum; i++) {
|
|
|
String modelName = modelNameList.get(i);
|
|
|
- HSSFCell cell = row.getCell(i);
|
|
|
+ XSSFCell cell = row.getCell(i);
|
|
|
if(modelName.equals("inchargerId")){
|
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
userNameList.add(cell.getStringCellValue());
|
|
|
}
|
|
|
}
|
|
|
if(modelName.equals("customSigner")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
userNameList.add(cell.getStringCellValue());
|
|
|
}
|
|
|
}
|
|
|
if(modelName.equals("companySigner")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
userNameList.add(cell.getStringCellValue());
|
|
|
}
|
|
|
}
|
|
@@ -395,7 +399,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
List<User> targetUserList= (List<User>) respMsg.data;
|
|
|
for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
|
|
|
- HSSFRow row = sheet.getRow(rowIndex);
|
|
|
+ XSSFRow row = sheet.getRow(rowIndex);
|
|
|
if (row == null) {
|
|
|
continue;
|
|
|
}
|
|
@@ -427,7 +431,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
String className = modelName.substring(0, 1).toUpperCase() + modelName.substring(1);
|
|
|
String getter="get"+className;
|
|
|
String setter="set"+className;
|
|
|
- HSSFCell cell = row.getCell(i);
|
|
|
+ XSSFCell cell = row.getCell(i);
|
|
|
if(cell!=null){
|
|
|
switch (item.getString("type")){
|
|
|
// case "time":cell.setCellType(CellType.NUMERIC);
|
|
@@ -446,7 +450,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
}
|
|
|
if(modelName.equals("orderCode")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
//系统中同公司已存在的订单编码 更新
|
|
|
Optional<SalesOrder> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
|
|
|
if(first.isPresent()){
|
|
@@ -466,7 +470,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
}
|
|
|
} else if(modelName.equals("businessOpportunityId")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
//系统中同公司已存在的订单编码 更新
|
|
|
BusinessOpportunity one = businessOpportunityService.getOne(new LambdaQueryWrapper<BusinessOpportunity>().eq(BusinessOpportunity::getCompanyId, companyId).eq(BusinessOpportunity::getName, cell.getStringCellValue()));
|
|
|
if(one!=null){
|
|
@@ -477,19 +481,19 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
}
|
|
|
} else if(modelName.equals("price")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
order.setPrice(new BigDecimal(cell.getStringCellValue()));
|
|
|
}
|
|
|
} else if(modelName.equals("receivedPayment")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
order.setReceivedPayment(new BigDecimal(cell.getStringCellValue()));
|
|
|
}
|
|
|
} else if(modelName.equals("unReceivedPayment")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
order.setUnReceivedPayment(new BigDecimal(cell.getStringCellValue()));
|
|
|
}
|
|
|
}else if(modelName.equals("type")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
Optional<SysDict> first = sysDictOfOrderType.stream().filter(s -> s.getName().equals(cell.getStringCellValue())).findFirst();
|
|
|
if(first.isPresent()){
|
|
|
order.setType(first.get().getId());
|
|
@@ -499,19 +503,32 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
}
|
|
|
}else if(modelName.equals("placeTime")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
- order.setPlaceTime(LocalDate.parse(cell.getStringCellValue(),df));
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ try {
|
|
|
+ int count = Integer.parseInt(cell.getStringCellValue());
|
|
|
+ // Excel中的日期序列号的基准日期是1900年1月1日
|
|
|
+ LocalDate baseDate = LocalDate.of(1900, 1, 1);
|
|
|
+ LocalDate date = baseDate.plusDays(count - 2);
|
|
|
+
|
|
|
+ // 将 ZonedDateTime 转换为 Date
|
|
|
+ order.setPlaceTime(date);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("日期时间格式不正确,应该是yyyy/MM/dd" );
|
|
|
+ msg.setError("日期时间格式不正确,应该是yyyy/MM/dd");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
}
|
|
|
}else if(modelName.equals("orderStartDate")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
order.setOrderStartDate(LocalDate.parse(cell.getStringCellValue(),df));
|
|
|
}
|
|
|
}else if(modelName.equals("orderEndDate")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
order.setOrderEndDate(LocalDate.parse(cell.getStringCellValue(),df));
|
|
|
}
|
|
|
}else if(modelName.equals("inchargerId")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
String userName = cell.getStringCellValue();
|
|
|
Optional<User> first;
|
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
@@ -528,7 +545,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
}
|
|
|
}else if(modelName.equals("customSigner")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
String userName = cell.getStringCellValue();
|
|
|
Optional<User> first;
|
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
@@ -545,7 +562,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
|
}
|
|
|
}
|
|
|
}else if(modelName.equals("companySigner")){
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
+ if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
String userName = cell.getStringCellValue();
|
|
|
Optional<User> first;
|
|
|
if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|