|
...
|
...
|
@@ -44,6 +44,7 @@ import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; |
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.stream.Collectors;
|
|
...
|
...
|
@@ -168,7 +169,43 @@ public class TblTradeTenderInfoController extends JeecgController<TblTradeTender |
|
|
|
return super.exportXls(request, tblTradeTenderInfo, TblTradeTenderInfo.class, "贸易招标信息");
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
@RequestMapping(value = "/checkTenderNo", method = RequestMethod.POST)
|
|
|
|
public Result<?> checkTenderNo(@RequestParam("file") MultipartFile file) {
|
|
|
|
try {
|
|
|
|
// 解析文件获取标书号
|
|
|
|
String tenderNo = parseTenderNoFromFile(file);
|
|
|
|
|
|
|
|
// 检查数据库中是否已存在该标书号
|
|
|
|
QueryWrapper<TblTradeTenderInfo> queryWrapper = new QueryWrapper<>();
|
|
|
|
queryWrapper.eq("xjbswjh", tenderNo);
|
|
|
|
long count = tblTradeTenderInfoService.count(queryWrapper);
|
|
|
|
|
|
|
|
// 返回结果包含标书号和是否存在标志
|
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
|
result.put("exist", count > 0);
|
|
|
|
result.put("tenderNo", tenderNo);
|
|
|
|
|
|
|
|
return Result.ok(result);
|
|
|
|
} catch (Exception e) {
|
|
|
|
log.error("检查标书号失败", e);
|
|
|
|
return Result.error("解析文件失败: " + e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private String parseTenderNoFromFile(MultipartFile file) throws IOException {
|
|
|
|
try (Workbook workbook = WorkbookFactory.create(file.getInputStream())) {
|
|
|
|
Sheet sheet = workbook.getSheetAt(0);
|
|
|
|
// 假设标书号在第一行第二列
|
|
|
|
return sheet.getRow(0).getCell(1).getStringCellValue();
|
|
|
|
} catch (Exception e) {
|
|
|
|
throw new IOException("解析文件失败", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 导入
|
|
|
|
* @return
|
|
|
|
*/
|
...
|
...
|
|