JAVA导入

JAVA导入

@ApiOperation("导入")
@PostMapping("/importExcel")
public ResponseEntity<Object> importExcel(@RequestParam("file") MultipartFile file) throws IOException {
return new ResponseEntity<>(fcCategoryservice.importExcel(file),HttpStatus.OK);
}

Map<String,String> importExcel(MultipartFile file) throws IOException;

FcProfessubDto  FcProfessub   实体类

@Override
public Map<String, String> importExcel(MultipartFile file) throws IOException {
Map<String, String> rtnMap = new HashMap<>();
if (file == null || file.isEmpty()) {
rtnMap.put("code", "401");
rtnMap.put("message", "Excel文件内容为空或不存在!");
return rtnMap;
}
InputStream inputStream = null;
Workbook workbook = null;

//获取输入流
inputStream = file.getInputStream();
//获取工作空间
if (file.getOriginalFilename().endsWith(".xls")) {
workbook = new HSSFWorkbook(inputStream);
} else if (file.getOriginalFilename().endsWith(".xlsx")) {
workbook = new XSSFWorkbook(inputStream);
} else {
rtnMap.put("code", "401");
rtnMap.put("message", "文件格式不符合!");
return rtnMap;
}
//取到excel中的工作表
Sheet sheet = workbook.getSheet("专业分包明细");
if (sheet == null) {
rtnMap.put("code", "401");
rtnMap.put("message", "未获取到工作表!");
return rtnMap;
}
//判断是不是正确模板
int cellTotal = sheet.getRow(1).getLastCellNum();
if (cellTotal != 37) {
rtnMap.put("code", "401");
rtnMap.put("message", "未能解析导入模板,请下载模板并使用正确的导入模板!");
return rtnMap;
}



int maxRow = sheet.getLastRowNum();
List<FcProfessubDto> list = new ArrayList<>();
List<FcProfessub> fcProfessubList = new ArrayList<>();
//默认机关
for (int row = 2; row <= maxRow; row++) {
Integer columnNumber = 1;
FcProfessubDto fcDto = new FcProfessubDto();
// 设置公共信息
IdentityInfo user = SecurityUtils.getIdentityInfo();
Date newDate = new Date();
fcDto.setId(IdUtil.simpleUUID());
fcDto.setCreateUserId(user.getId());
fcDto.setCreateUserCode(user.getUserCode2());
fcDto.setCreateUserName(user.getUsername());
fcDto.setCreateTime(newDate);
fcDto.setModifyUserId(user.getId());
fcDto.setModifyUserCode(user.getUserCode2());
fcDto.setModifyUserName(user.getUsername());
fcDto.setModifyTime(newDate);
fcDto.setDelflag("0");
fcDto.setBusinesscode(IdUtil.simpleUUID());
fcDto.setPeriod(FcUtils.getCurrentPeriod());
fcDto.setProjectName(user.getOrganizationIdBmName());
fcDto.setProjectId(user.getOrganizationIdBm());
fcDto.setProjectCode(user.getOrganizationBmCode());
fcDto.setPmscode(user.getPmsCode());
fcDto.setCompanyId(user.getCompanyId());
fcDto.setCompanyname(user.getCompanyName());
// 主键id
columnNumber++;
String id = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
fcDto.setId(id);
// 科目id
columnNumber++;
String cateGoryId = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if(!StringUtils.isEmpty(cateGoryId)) {
fcDto.setCategoryId(cateGoryId);
// 分包分项名称
columnNumber++;
String name = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (name.length() > 0) {
if (name.length() > 200) {
rtnMap.put("code", "401");
rtnMap.put("message", "导入失败,分包分项名称的长度不能超过200!");
return rtnMap;
}
fcDto.setName(name);
}
// 单位
columnNumber++;
String unit = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (unit.length() > 0) {
if (unit.length() > 200) {
rtnMap.put("code", "401");
rtnMap.put("message", "导入失败,单位的长度不能超过200!");
return rtnMap;
}
fcDto.setUnit(unit);
}
// 分包单位名称
columnNumber++;
String suborgName = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (suborgName.length() > 0) {
if (suborgName.length() > 1024) {
rtnMap.put("code", "401");
rtnMap.put("message", "导入失败,单位的长度不能超过200!");
return rtnMap;
}
fcDto.setSuborgName(suborgName);
}
// 特殊科目
columnNumber++;
String specialSubject = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (specialSubject.length() > 0) {
if (specialSubject.length() > 50) {
rtnMap.put("code", "401");
rtnMap.put("message", "导入失败,单位的长度不能超过200!");
return rtnMap;
}
fcDto.setSpecialSubject(specialSubject);
}
// 预计总收入-工程量
columnNumber++;
String contractQuantity = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (contractQuantity.length()>0) {
fcDto.setContractQuantity(new BigDecimal(contractQuantity));
} else {
fcDto.setContractQuantity(BigDecimal.ZERO);
}
// 预计总收入-单价
columnNumber++;
String allunitPrice = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (allunitPrice.length()>0) {
fcDto.setAllunitPrice(new BigDecimal(allunitPrice));
} else {
fcDto.setAllunitPrice(BigDecimal.ZERO);
}
// 预计总收入-合价
columnNumber++;
String total = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (total.length()>0) {
fcDto.setTotal(new BigDecimal(total));
} else {
fcDto.setTotal(BigDecimal.ZERO);
}
// 责任成本-合计
columnNumber++;
String dutyCost = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (dutyCost.length()>0) {
fcDto.setDutyCost(new BigDecimal(dutyCost));
} else {
fcDto.setDutyCost(BigDecimal.ZERO);
}
// 实际成本-单价
columnNumber++;
String totalRealityprice = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (totalRealityprice.length()>0) {
fcDto.setTotalRealityPrice(new BigDecimal(totalRealityprice));
} else {
fcDto.setTotalRealityPrice(BigDecimal.ZERO);
}
// 实际成本-合价
columnNumber++;
String totalRealityTotal = chkIsEmpty(sheet.getRow(row).getCell(columnNumber));
if (totalRealityTotal.length()>0) {
fcDto.setTotalRealityTotal(new BigDecimal(totalRealityTotal));
} else {
fcDto.setTotalRealityTotal(BigDecimal.ZERO);
}
}else {
fcDto.setName("合计");
}
list.add(fcDto);
}
for (FcProfessubDto fcDtos : list) {
FcProfessub fc = new FcProfessub();
BeanUtils.copyProperties(fcDtos,fc);
fcProfessubList.add(fc);
}
fcprofessubRepository.saveAll(fcProfessubList);
rtnMap.put("code","200");
rtnMap.put("message","导入成功!");
return rtnMap;
}

public String chkIsEmpty(Object value){
return ObjectUtil.isEmpty(value)? "":value.toString();
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值